google-cloud-redis 0.2.3 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (30) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +2 -0
  3. data/AUTHENTICATION.md +199 -0
  4. data/README.md +1 -2
  5. data/lib/google/cloud/redis.rb +3 -4
  6. data/lib/google/cloud/redis/v1.rb +3 -4
  7. data/lib/google/cloud/redis/v1/cloud_redis_client.rb +117 -23
  8. data/lib/google/cloud/redis/v1/cloud_redis_client_config.json +5 -0
  9. data/lib/google/cloud/redis/v1/cloud_redis_pb.rb +14 -0
  10. data/lib/google/cloud/redis/v1/cloud_redis_services_pb.rb +6 -2
  11. data/lib/google/cloud/redis/v1/credentials.rb +1 -1
  12. data/lib/google/cloud/redis/v1/doc/google/cloud/redis/v1/cloud_redis.rb +33 -3
  13. data/lib/google/cloud/redis/v1/doc/google/longrunning/operations.rb +2 -44
  14. data/lib/google/cloud/redis/v1/doc/google/protobuf/any.rb +3 -2
  15. data/lib/google/cloud/redis/v1/doc/google/protobuf/field_mask.rb +19 -27
  16. data/lib/google/cloud/redis/v1/doc/google/protobuf/timestamp.rb +16 -14
  17. data/lib/google/cloud/redis/v1/doc/google/rpc/status.rb +18 -15
  18. data/lib/google/cloud/redis/v1beta1.rb +2 -3
  19. data/lib/google/cloud/redis/v1beta1/cloud_redis_client.rb +123 -28
  20. data/lib/google/cloud/redis/v1beta1/cloud_redis_client_config.json +5 -0
  21. data/lib/google/cloud/redis/v1beta1/cloud_redis_pb.rb +15 -0
  22. data/lib/google/cloud/redis/v1beta1/cloud_redis_services_pb.rb +6 -2
  23. data/lib/google/cloud/redis/v1beta1/credentials.rb +1 -1
  24. data/lib/google/cloud/redis/v1beta1/doc/google/cloud/redis/v1beta1/cloud_redis.rb +79 -25
  25. data/lib/google/cloud/redis/v1beta1/doc/google/longrunning/operations.rb +2 -44
  26. data/lib/google/cloud/redis/v1beta1/doc/google/protobuf/any.rb +3 -2
  27. data/lib/google/cloud/redis/v1beta1/doc/google/protobuf/field_mask.rb +19 -27
  28. data/lib/google/cloud/redis/v1beta1/doc/google/protobuf/timestamp.rb +16 -14
  29. data/lib/google/cloud/redis/v1beta1/doc/google/rpc/status.rb +18 -15
  30. metadata +26 -6
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -88,28 +88,17 @@ module Google
88
88
  self::GRPC_INTERCEPTORS = CloudRedisClient::GRPC_INTERCEPTORS
89
89
  end
90
90
 
91
- LOCATION_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
92
- "projects/{project}/locations/{location}"
93
- )
94
-
95
- private_constant :LOCATION_PATH_TEMPLATE
96
-
97
91
  INSTANCE_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
98
92
  "projects/{project}/locations/{location}/instances/{instance}"
99
93
  )
100
94
 
101
95
  private_constant :INSTANCE_PATH_TEMPLATE
102
96
 
103
- # Returns a fully-qualified location resource name string.
104
- # @param project [String]
105
- # @param location [String]
106
- # @return [String]
107
- def self.location_path project, location
108
- LOCATION_PATH_TEMPLATE.render(
109
- :"project" => project,
110
- :"location" => location
111
- )
112
- end
97
+ LOCATION_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
98
+ "projects/{project}/locations/{location}"
99
+ )
100
+
101
+ private_constant :LOCATION_PATH_TEMPLATE
113
102
 
114
103
  # Returns a fully-qualified instance resource name string.
115
104
  # @param project [String]
@@ -124,6 +113,17 @@ module Google
124
113
  )
125
114
  end
126
115
 
116
+ # Returns a fully-qualified location resource name string.
117
+ # @param project [String]
118
+ # @param location [String]
119
+ # @return [String]
120
+ def self.location_path project, location
121
+ LOCATION_PATH_TEMPLATE.render(
122
+ :"project" => project,
123
+ :"location" => location
124
+ )
125
+ end
126
+
127
127
  # @param credentials [Google::Auth::Credentials, String, Hash, GRPC::Core::Channel, GRPC::Core::ChannelCredentials, Proc]
128
128
  # Provides the means for authenticating requests made by the client. This parameter can
129
129
  # be many types.
@@ -239,27 +239,50 @@ module Google
239
239
  @list_instances = Google::Gax.create_api_call(
240
240
  @cloud_redis_stub.method(:list_instances),
241
241
  defaults["list_instances"],
242
- exception_transformer: exception_transformer
242
+ exception_transformer: exception_transformer,
243
+ params_extractor: proc do |request|
244
+ {'parent' => request.parent}
245
+ end
243
246
  )
244
247
  @get_instance = Google::Gax.create_api_call(
245
248
  @cloud_redis_stub.method(:get_instance),
246
249
  defaults["get_instance"],
247
- exception_transformer: exception_transformer
250
+ exception_transformer: exception_transformer,
251
+ params_extractor: proc do |request|
252
+ {'name' => request.name}
253
+ end
248
254
  )
249
255
  @create_instance = Google::Gax.create_api_call(
250
256
  @cloud_redis_stub.method(:create_instance),
251
257
  defaults["create_instance"],
252
- exception_transformer: exception_transformer
258
+ exception_transformer: exception_transformer,
259
+ params_extractor: proc do |request|
260
+ {'parent' => request.parent}
261
+ end
253
262
  )
254
263
  @update_instance = Google::Gax.create_api_call(
255
264
  @cloud_redis_stub.method(:update_instance),
256
265
  defaults["update_instance"],
257
- exception_transformer: exception_transformer
266
+ exception_transformer: exception_transformer,
267
+ params_extractor: proc do |request|
268
+ {'instance.name' => request.instance.name}
269
+ end
258
270
  )
259
271
  @delete_instance = Google::Gax.create_api_call(
260
272
  @cloud_redis_stub.method(:delete_instance),
261
273
  defaults["delete_instance"],
262
- exception_transformer: exception_transformer
274
+ exception_transformer: exception_transformer,
275
+ params_extractor: proc do |request|
276
+ {'name' => request.name}
277
+ end
278
+ )
279
+ @failover_instance = Google::Gax.create_api_call(
280
+ @cloud_redis_stub.method(:failover_instance),
281
+ defaults["failover_instance"],
282
+ exception_transformer: exception_transformer,
283
+ params_extractor: proc do |request|
284
+ {'name' => request.name}
285
+ end
263
286
  )
264
287
  end
265
288
 
@@ -362,7 +385,7 @@ module Google
362
385
 
363
386
  # Creates a Redis instance based on the specified tier and memory size.
364
387
  #
365
- # By default, the instance is peered to the project's
388
+ # By default, the instance is accessible from the project's
366
389
  # [default network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks).
367
390
  #
368
391
  # The creation is executed asynchronously and callers may check the returned
@@ -463,11 +486,12 @@ module Google
463
486
  # @param update_mask [Google::Protobuf::FieldMask | Hash]
464
487
  # Required. Mask of fields to update. At least one path must be supplied in
465
488
  # this field. The elements of the repeated paths field may only include these
466
- # fields from {CloudRedis::Instance Instance}:
467
- # * `display_name`
468
- # * `labels`
469
- # * `memory_size_gb`
470
- # * `redis_config`
489
+ # fields from {Google::Cloud::Redis::V1beta1::Instance Instance}:
490
+ #
491
+ # * `displayName`
492
+ # * `labels`
493
+ # * `memorySizeGb`
494
+ # * `redisConfig`
471
495
  # A hash of the same form as `Google::Protobuf::FieldMask`
472
496
  # can also be provided.
473
497
  # @param instance [Google::Cloud::Redis::V1beta1::Instance | Hash]
@@ -601,6 +625,77 @@ module Google
601
625
  operation.on_done { |operation| yield(operation) } if block_given?
602
626
  operation
603
627
  end
628
+
629
+ # Failover the master role to current replica node against a specific
630
+ # STANDARD tier redis instance.
631
+ #
632
+ # @param name [String]
633
+ # Required. Redis instance resource name using the form:
634
+ # `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
635
+ # where `location_id` refers to a GCP region
636
+ # @param data_protection_mode [Google::Cloud::Redis::V1beta1::FailoverInstanceRequest::DataProtectionMode]
637
+ # Optional. Available data protection modes that the user can choose. If it's
638
+ # unspecified, data protection mode will be LIMITED_DATA_LOSS by default.
639
+ # @param options [Google::Gax::CallOptions]
640
+ # Overrides the default settings for this call, e.g, timeout,
641
+ # retries, etc.
642
+ # @return [Google::Gax::Operation]
643
+ # @raise [Google::Gax::GaxError] if the RPC is aborted.
644
+ # @example
645
+ # require "google/cloud/redis"
646
+ #
647
+ # cloud_redis_client = Google::Cloud::Redis.new(version: :v1beta1)
648
+ # formatted_name = Google::Cloud::Redis::V1beta1::CloudRedisClient.instance_path("[PROJECT]", "[LOCATION]", "[INSTANCE]")
649
+ #
650
+ # # TODO: Initialize `data_protection_mode`:
651
+ # data_protection_mode = :DATA_PROTECTION_MODE_UNSPECIFIED
652
+ #
653
+ # # Register a callback during the method call.
654
+ # operation = cloud_redis_client.failover_instance(formatted_name, data_protection_mode) do |op|
655
+ # raise op.results.message if op.error?
656
+ # op_results = op.results
657
+ # # Process the results.
658
+ #
659
+ # metadata = op.metadata
660
+ # # Process the metadata.
661
+ # end
662
+ #
663
+ # # Or use the return value to register a callback.
664
+ # operation.on_done do |op|
665
+ # raise op.results.message if op.error?
666
+ # op_results = op.results
667
+ # # Process the results.
668
+ #
669
+ # metadata = op.metadata
670
+ # # Process the metadata.
671
+ # end
672
+ #
673
+ # # Manually reload the operation.
674
+ # operation.reload!
675
+ #
676
+ # # Or block until the operation completes, triggering callbacks on
677
+ # # completion.
678
+ # operation.wait_until_done!
679
+
680
+ def failover_instance \
681
+ name,
682
+ data_protection_mode,
683
+ options: nil
684
+ req = {
685
+ name: name,
686
+ data_protection_mode: data_protection_mode
687
+ }.delete_if { |_, v| v.nil? }
688
+ req = Google::Gax::to_proto(req, Google::Cloud::Redis::V1beta1::FailoverInstanceRequest)
689
+ operation = Google::Gax::Operation.new(
690
+ @failover_instance.call(req, options),
691
+ @operations_client,
692
+ Google::Cloud::Redis::V1beta1::Instance,
693
+ Google::Protobuf::Any,
694
+ call_options: options
695
+ )
696
+ operation.on_done { |operation| yield(operation) } if block_given?
697
+ operation
698
+ end
604
699
  end
605
700
  end
606
701
  end
@@ -44,6 +44,11 @@
44
44
  "timeout_millis": 60000,
45
45
  "retry_codes_name": "non_idempotent",
46
46
  "retry_params_name": "default"
47
+ },
48
+ "FailoverInstance": {
49
+ "timeout_millis": 60000,
50
+ "retry_codes_name": "non_idempotent",
51
+ "retry_params_name": "default"
47
52
  }
48
53
  }
49
54
  }
@@ -5,6 +5,7 @@
5
5
  require 'google/protobuf'
6
6
 
7
7
  require 'google/api/annotations_pb'
8
+ require 'google/api/resource_pb'
8
9
  require 'google/longrunning/operations_pb'
9
10
  require 'google/protobuf/field_mask_pb'
10
11
  require 'google/protobuf/timestamp_pb'
@@ -36,6 +37,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
36
37
  value :DELETING, 4
37
38
  value :REPAIRING, 5
38
39
  value :MAINTENANCE, 6
40
+ value :IMPORTING, 8
41
+ value :FAILING_OVER, 10
39
42
  end
40
43
  add_enum "google.cloud.redis.v1beta1.Instance.Tier" do
41
44
  value :TIER_UNSPECIFIED, 0
@@ -50,6 +53,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
50
53
  add_message "google.cloud.redis.v1beta1.ListInstancesResponse" do
51
54
  repeated :instances, :message, 1, "google.cloud.redis.v1beta1.Instance"
52
55
  optional :next_page_token, :string, 2
56
+ repeated :unreachable, :string, 3
53
57
  end
54
58
  add_message "google.cloud.redis.v1beta1.GetInstanceRequest" do
55
59
  optional :name, :string, 1
@@ -66,6 +70,15 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
66
70
  add_message "google.cloud.redis.v1beta1.DeleteInstanceRequest" do
67
71
  optional :name, :string, 1
68
72
  end
73
+ add_message "google.cloud.redis.v1beta1.FailoverInstanceRequest" do
74
+ optional :name, :string, 1
75
+ optional :data_protection_mode, :enum, 2, "google.cloud.redis.v1beta1.FailoverInstanceRequest.DataProtectionMode"
76
+ end
77
+ add_enum "google.cloud.redis.v1beta1.FailoverInstanceRequest.DataProtectionMode" do
78
+ value :DATA_PROTECTION_MODE_UNSPECIFIED, 0
79
+ value :LIMITED_DATA_LOSS, 1
80
+ value :FORCE_DATA_LOSS, 2
81
+ end
69
82
  add_message "google.cloud.redis.v1beta1.LocationMetadata" do
70
83
  map :available_zones, :string, :message, 1, "google.cloud.redis.v1beta1.ZoneMetadata"
71
84
  end
@@ -86,6 +99,8 @@ module Google
86
99
  CreateInstanceRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.redis.v1beta1.CreateInstanceRequest").msgclass
87
100
  UpdateInstanceRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.redis.v1beta1.UpdateInstanceRequest").msgclass
88
101
  DeleteInstanceRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.redis.v1beta1.DeleteInstanceRequest").msgclass
102
+ FailoverInstanceRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.redis.v1beta1.FailoverInstanceRequest").msgclass
103
+ FailoverInstanceRequest::DataProtectionMode = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.redis.v1beta1.FailoverInstanceRequest.DataProtectionMode").enummodule
89
104
  LocationMetadata = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.redis.v1beta1.LocationMetadata").msgclass
90
105
  ZoneMetadata = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.redis.v1beta1.ZoneMetadata").msgclass
91
106
  end
@@ -1,7 +1,7 @@
1
1
  # Generated by the protocol buffer compiler. DO NOT EDIT!
2
2
  # Source: google/cloud/redis/v1beta1/cloud_redis.proto for package 'google.cloud.redis.v1beta1'
3
3
  # Original file comments:
4
- # Copyright 2018 Google Inc.
4
+ # Copyright 2019 Google LLC.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
+ #
18
19
 
19
20
 
20
21
  require 'grpc'
@@ -61,7 +62,7 @@ module Google
61
62
  rpc :GetInstance, GetInstanceRequest, Instance
62
63
  # Creates a Redis instance based on the specified tier and memory size.
63
64
  #
64
- # By default, the instance is peered to the project's
65
+ # By default, the instance is accessible from the project's
65
66
  # [default network](/compute/docs/networks-and-firewalls#networks).
66
67
  #
67
68
  # The creation is executed asynchronously and callers may check the returned
@@ -78,6 +79,9 @@ module Google
78
79
  # in the response field. The returned operation is automatically deleted
79
80
  # after a few hours, so there is no need to call DeleteOperation.
80
81
  rpc :UpdateInstance, UpdateInstanceRequest, Google::Longrunning::Operation
82
+ # Failover the master role to current replica node against a specific
83
+ # STANDARD tier redis instance.
84
+ rpc :FailoverInstance, FailoverInstanceRequest, Google::Longrunning::Operation
81
85
  # Deletes a specific Redis instance. Instance stops serving and data is
82
86
  # deleted.
83
87
  rpc :DeleteInstance, DeleteInstanceRequest, Google::Longrunning::Operation
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -25,7 +25,7 @@ module Google
25
25
  # `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
26
26
  #
27
27
  # Note: Redis instances are managed and addressed at regional level so
28
- # location_id here refers to a GCP region; however, users get to choose which
28
+ # location_id here refers to a GCP region; however, users may choose which
29
29
  # specific zone (or collection of zones for cross-zone instances) an instance
30
30
  # should be provisioned in. Refer to [location_id] and
31
31
  # [alternative_location_id] fields for more details.
@@ -40,7 +40,7 @@ module Google
40
40
  # Optional. The zone where the instance will be provisioned. If not provided,
41
41
  # the service will choose a zone for the instance. For STANDARD_HA tier,
42
42
  # instances will be created across two zones for protection against zonal
43
- # failures. if [alternative_location_id] is also provided, it must be
43
+ # failures. If [alternative_location_id] is also provided, it must be
44
44
  # different from [location_id].
45
45
  # @!attribute [rw] alternative_location_id
46
46
  # @return [String]
@@ -50,27 +50,32 @@ module Google
50
50
  # @!attribute [rw] redis_version
51
51
  # @return [String]
52
52
  # Optional. The version of Redis software.
53
- # If not provided, latest supported version will be used.
53
+ # If not provided, latest supported version will be used. Updating the
54
+ # version will perform an upgrade/downgrade to the new version. Currently,
55
+ # the supported values are:
56
+ #
57
+ # * `REDIS_4_0` for Redis 4.0 compatibility
58
+ # * `REDIS_3_2` for Redis 3.2 compatibility (default)
54
59
  # @!attribute [rw] reserved_ip_range
55
60
  # @return [String]
56
61
  # Optional. The CIDR range of internal addresses that are reserved for this
57
62
  # instance. If not provided, the service will choose an unused /29 block,
58
63
  # for example, 10.0.0.0/29 or 192.168.0.0/29. Ranges must be unique
59
- # and non-overlapping with existing subnets in a network.
64
+ # and non-overlapping with existing subnets in an authorized network.
60
65
  # @!attribute [rw] host
61
66
  # @return [String]
62
- # Output only. Hostname or IP address of the exposed redis endpoint used by
67
+ # Output only. Hostname or IP address of the exposed Redis endpoint used by
63
68
  # clients to connect to the service.
64
69
  # @!attribute [rw] port
65
70
  # @return [Integer]
66
- # Output only. The port number of the exposed redis endpoint.
71
+ # Output only. The port number of the exposed Redis endpoint.
67
72
  # @!attribute [rw] current_location_id
68
73
  # @return [String]
69
- # Output only. The current zone where the Redis endpoint is placed. In
70
- # single zone deployments, this will always be the same as [location_id]
71
- # provided by the user at creation time. In cross-zone instances (only
72
- # applicable in STANDARD_HA tier), this can be either [location_id] or
73
- # [alternative_location_id] and can change on a failover event.
74
+ # Output only. The current zone where the Redis endpoint is placed. For Basic
75
+ # Tier instances, this will always be the same as the [location_id]
76
+ # provided by the user at creation time. For Standard Tier instances,
77
+ # this can be either [location_id] or [alternative_location_id] and can
78
+ # change after a failover event.
74
79
  # @!attribute [rw] create_time
75
80
  # @return [Google::Protobuf::Timestamp]
76
81
  # Output only. The time the instance was created.
@@ -86,14 +91,23 @@ module Google
86
91
  # Optional. Redis configuration parameters, according to
87
92
  # http://redis.io/topics/config. Currently, the only supported parameters
88
93
  # are:
94
+ #
95
+ # Redis 3.2 and above:
96
+ #
89
97
  # * maxmemory-policy
90
98
  # * notify-keyspace-events
99
+ #
100
+ # Redis 4.0 and above:
101
+ #
102
+ # * activedefrag
103
+ # * lfu-log-factor
104
+ # * lfu-decay-time
91
105
  # @!attribute [rw] tier
92
106
  # @return [Google::Cloud::Redis::V1beta1::Instance::Tier]
93
107
  # Required. The service tier of the instance.
94
108
  # @!attribute [rw] memory_size_gb
95
109
  # @return [Integer]
96
- # Required. Redis memory size in GB.
110
+ # Required. Redis memory size in GiB.
97
111
  # @!attribute [rw] authorized_network
98
112
  # @return [String]
99
113
  # Optional. The full name of the Google Compute Engine
@@ -120,12 +134,17 @@ module Google
120
134
  # Redis instance is being deleted.
121
135
  DELETING = 4
122
136
 
123
- # Redis instance is being repaired and may be unusable. Details can be
124
- # found in the `status_message` field.
137
+ # Redis instance is being repaired and may be unusable.
125
138
  REPAIRING = 5
126
139
 
127
140
  # Maintenance is being performed on this Redis instance.
128
141
  MAINTENANCE = 6
142
+
143
+ # Redis instance is importing data (availability may be affected).
144
+ IMPORTING = 8
145
+
146
+ # Redis instance is failing over (availability may be affected).
147
+ FAILING_OVER = 10
129
148
  end
130
149
 
131
150
  # Available service tiers to choose from
@@ -141,7 +160,8 @@ module Google
141
160
  end
142
161
  end
143
162
 
144
- # Request for {Google::Cloud::Redis::V1beta1::CloudRedis::ListInstances ListInstances}.
163
+ # Request for
164
+ # {Google::Cloud::Redis::V1beta1::CloudRedis::ListInstances ListInstances}.
145
165
  # @!attribute [rw] parent
146
166
  # @return [String]
147
167
  # Required. The resource name of the instance location using the form:
@@ -162,7 +182,8 @@ module Google
162
182
  # if any.
163
183
  class ListInstancesRequest; end
164
184
 
165
- # Response for {Google::Cloud::Redis::V1beta1::CloudRedis::ListInstances ListInstances}.
185
+ # Response for
186
+ # {Google::Cloud::Redis::V1beta1::CloudRedis::ListInstances ListInstances}.
166
187
  # @!attribute [rw] instances
167
188
  # @return [Array<Google::Cloud::Redis::V1beta1::Instance>]
168
189
  # A list of Redis instances in the project in the specified location,
@@ -179,6 +200,9 @@ module Google
179
200
  # @return [String]
180
201
  # Token to retrieve the next page of results, or empty if there are no more
181
202
  # results in the list.
203
+ # @!attribute [rw] unreachable
204
+ # @return [Array<String>]
205
+ # Locations that could not be reached.
182
206
  class ListInstancesResponse; end
183
207
 
184
208
  # Request for {Google::Cloud::Redis::V1beta1::CloudRedis::GetInstance GetInstance}.
@@ -189,7 +213,8 @@ module Google
189
213
  # where `location_id` refers to a GCP region
190
214
  class GetInstanceRequest; end
191
215
 
192
- # Request for {Google::Cloud::Redis::V1beta1::CloudRedis::CreateInstance CreateInstance}.
216
+ # Request for
217
+ # {Google::Cloud::Redis::V1beta1::CloudRedis::CreateInstance CreateInstance}.
193
218
  # @!attribute [rw] parent
194
219
  # @return [String]
195
220
  # Required. The resource name of the instance location using the form:
@@ -210,23 +235,26 @@ module Google
210
235
  # Required. A Redis [Instance] resource
211
236
  class CreateInstanceRequest; end
212
237
 
213
- # Request for {Google::Cloud::Redis::V1beta1::CloudRedis::UpdateInstance UpdateInstance}.
238
+ # Request for
239
+ # {Google::Cloud::Redis::V1beta1::CloudRedis::UpdateInstance UpdateInstance}.
214
240
  # @!attribute [rw] update_mask
215
241
  # @return [Google::Protobuf::FieldMask]
216
242
  # Required. Mask of fields to update. At least one path must be supplied in
217
243
  # this field. The elements of the repeated paths field may only include these
218
- # fields from {CloudRedis::Instance Instance}:
219
- # * `display_name`
220
- # * `labels`
221
- # * `memory_size_gb`
222
- # * `redis_config`
244
+ # fields from {Google::Cloud::Redis::V1beta1::Instance Instance}:
245
+ #
246
+ # * `displayName`
247
+ # * `labels`
248
+ # * `memorySizeGb`
249
+ # * `redisConfig`
223
250
  # @!attribute [rw] instance
224
251
  # @return [Google::Cloud::Redis::V1beta1::Instance]
225
252
  # Required. Update description.
226
253
  # Only fields specified in update_mask are updated.
227
254
  class UpdateInstanceRequest; end
228
255
 
229
- # Request for {Google::Cloud::Redis::V1beta1::CloudRedis::DeleteInstance DeleteInstance}.
256
+ # Request for
257
+ # {Google::Cloud::Redis::V1beta1::CloudRedis::DeleteInstance DeleteInstance}.
230
258
  # @!attribute [rw] name
231
259
  # @return [String]
232
260
  # Required. Redis instance resource name using the form:
@@ -234,6 +262,32 @@ module Google
234
262
  # where `location_id` refers to a GCP region
235
263
  class DeleteInstanceRequest; end
236
264
 
265
+ # Request for
266
+ # {Google::Cloud::Redis::V1beta1::CloudRedis::FailoverInstance Failover}.
267
+ # @!attribute [rw] name
268
+ # @return [String]
269
+ # Required. Redis instance resource name using the form:
270
+ # `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
271
+ # where `location_id` refers to a GCP region
272
+ # @!attribute [rw] data_protection_mode
273
+ # @return [Google::Cloud::Redis::V1beta1::FailoverInstanceRequest::DataProtectionMode]
274
+ # Optional. Available data protection modes that the user can choose. If it's
275
+ # unspecified, data protection mode will be LIMITED_DATA_LOSS by default.
276
+ class FailoverInstanceRequest
277
+ module DataProtectionMode
278
+ DATA_PROTECTION_MODE_UNSPECIFIED = 0
279
+
280
+ # Instance failover will be protected with data loss control. More
281
+ # specifically, the failover will only be performed if the current
282
+ # replication offset diff between master and replica is under a certain
283
+ # threshold.
284
+ LIMITED_DATA_LOSS = 1
285
+
286
+ # Instance failover will be performed without data loss control.
287
+ FORCE_DATA_LOSS = 2
288
+ end
289
+ end
290
+
237
291
  # This location metadata represents additional configuration options for a
238
292
  # given location where a Redis instance may be created. All fields are output
239
293
  # only. It is returned as content of the