google-cloud-redis-cluster-v1 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -157,11 +157,179 @@ module Google
157
157
  extend ::Google::Protobuf::MessageExts::ClassMethods
158
158
  end
159
159
 
160
+ # Request for [ListBackupCollections]
161
+ # @!attribute [rw] parent
162
+ # @return [::String]
163
+ # Required. The resource name of the backupCollection location using the
164
+ # form:
165
+ # `projects/{project_id}/locations/{location_id}`
166
+ # where `location_id` refers to a GCP region.
167
+ # @!attribute [rw] page_size
168
+ # @return [::Integer]
169
+ # Optional. The maximum number of items to return.
170
+ #
171
+ # If not specified, a default value of 1000 will be used by the service.
172
+ # Regardless of the page_size value, the response may include a partial list
173
+ # and a caller should only rely on response's
174
+ # {::Google::Cloud::Redis::Cluster::V1::ListBackupCollectionsResponse#next_page_token `next_page_token`}
175
+ # to determine if there are more clusters left to be queried.
176
+ # @!attribute [rw] page_token
177
+ # @return [::String]
178
+ # Optional. The `next_page_token` value returned from a previous
179
+ # [ListBackupCollections] request, if any.
180
+ class ListBackupCollectionsRequest
181
+ include ::Google::Protobuf::MessageExts
182
+ extend ::Google::Protobuf::MessageExts::ClassMethods
183
+ end
184
+
185
+ # Response for [ListBackupCollections].
186
+ # @!attribute [rw] backup_collections
187
+ # @return [::Array<::Google::Cloud::Redis::Cluster::V1::BackupCollection>]
188
+ # A list of backupCollections in the project.
189
+ #
190
+ # If the `location_id` in the parent field of the request is "-", all regions
191
+ # available to the project are queried, and the results aggregated.
192
+ # If in such an aggregated query a location is unavailable, a placeholder
193
+ # backupCollection entry is included in the response with the `name` field
194
+ # set to a value of the form
195
+ # `projects/{project_id}/locations/{location_id}/backupCollections/`- and the
196
+ # `status` field set to ERROR and `status_message` field set to "location not
197
+ # available for ListBackupCollections".
198
+ # @!attribute [rw] next_page_token
199
+ # @return [::String]
200
+ # Token to retrieve the next page of results, or empty if there are no more
201
+ # results in the list.
202
+ # @!attribute [rw] unreachable
203
+ # @return [::Array<::String>]
204
+ # Locations that could not be reached.
205
+ class ListBackupCollectionsResponse
206
+ include ::Google::Protobuf::MessageExts
207
+ extend ::Google::Protobuf::MessageExts::ClassMethods
208
+ end
209
+
210
+ # Request for [GetBackupCollection].
211
+ # @!attribute [rw] name
212
+ # @return [::String]
213
+ # Required. Redis backupCollection resource name using the form:
214
+ # `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}`
215
+ # where `location_id` refers to a GCP region.
216
+ class GetBackupCollectionRequest
217
+ include ::Google::Protobuf::MessageExts
218
+ extend ::Google::Protobuf::MessageExts::ClassMethods
219
+ end
220
+
221
+ # Request for [ListBackups].
222
+ # @!attribute [rw] parent
223
+ # @return [::String]
224
+ # Required. The resource name of the backupCollection using the form:
225
+ # `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}`
226
+ # @!attribute [rw] page_size
227
+ # @return [::Integer]
228
+ # Optional. The maximum number of items to return.
229
+ #
230
+ # If not specified, a default value of 1000 will be used by the service.
231
+ # Regardless of the page_size value, the response may include a partial list
232
+ # and a caller should only rely on response's
233
+ # {::Google::Cloud::Redis::Cluster::V1::ListBackupsResponse#next_page_token `next_page_token`}
234
+ # to determine if there are more clusters left to be queried.
235
+ # @!attribute [rw] page_token
236
+ # @return [::String]
237
+ # Optional. The `next_page_token` value returned from a previous
238
+ # [ListBackupCollections] request, if any.
239
+ class ListBackupsRequest
240
+ include ::Google::Protobuf::MessageExts
241
+ extend ::Google::Protobuf::MessageExts::ClassMethods
242
+ end
243
+
244
+ # Response for [ListBackups].
245
+ # @!attribute [rw] backups
246
+ # @return [::Array<::Google::Cloud::Redis::Cluster::V1::Backup>]
247
+ # A list of backups in the project.
248
+ # @!attribute [rw] next_page_token
249
+ # @return [::String]
250
+ # Token to retrieve the next page of results, or empty if there are no more
251
+ # results in the list.
252
+ # @!attribute [rw] unreachable
253
+ # @return [::Array<::String>]
254
+ # Backups that could not be reached.
255
+ class ListBackupsResponse
256
+ include ::Google::Protobuf::MessageExts
257
+ extend ::Google::Protobuf::MessageExts::ClassMethods
258
+ end
259
+
260
+ # Request for [GetBackup].
261
+ # @!attribute [rw] name
262
+ # @return [::String]
263
+ # Required. Redis backup resource name using the form:
264
+ # `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}`
265
+ class GetBackupRequest
266
+ include ::Google::Protobuf::MessageExts
267
+ extend ::Google::Protobuf::MessageExts::ClassMethods
268
+ end
269
+
270
+ # Request for [DeleteBackup].
271
+ # @!attribute [rw] name
272
+ # @return [::String]
273
+ # Required. Redis backup resource name using the form:
274
+ # `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}`
275
+ # @!attribute [rw] request_id
276
+ # @return [::String]
277
+ # Optional. Idempotent request UUID.
278
+ class DeleteBackupRequest
279
+ include ::Google::Protobuf::MessageExts
280
+ extend ::Google::Protobuf::MessageExts::ClassMethods
281
+ end
282
+
283
+ # Request for [ExportBackup].
284
+ # @!attribute [rw] gcs_bucket
285
+ # @return [::String]
286
+ # Google Cloud Storage bucket, like "my-bucket".
287
+ # @!attribute [rw] name
288
+ # @return [::String]
289
+ # Required. Redis backup resource name using the form:
290
+ # `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}`
291
+ class ExportBackupRequest
292
+ include ::Google::Protobuf::MessageExts
293
+ extend ::Google::Protobuf::MessageExts::ClassMethods
294
+ end
295
+
296
+ # Request for [BackupCluster].
297
+ # @!attribute [rw] name
298
+ # @return [::String]
299
+ # Required. Redis cluster resource name using the form:
300
+ # `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}`
301
+ # where `location_id` refers to a GCP region.
302
+ # @!attribute [rw] ttl
303
+ # @return [::Google::Protobuf::Duration]
304
+ # Optional. TTL for the backup to expire. Value range is 1 day to 100 years.
305
+ # If not specified, the default value is 100 years.
306
+ # @!attribute [rw] backup_id
307
+ # @return [::String]
308
+ # Optional. The id of the backup to be created. If not specified, the
309
+ # default value ([YYYYMMDDHHMMSS]_[Shortened Cluster UID] is used.
310
+ class BackupClusterRequest
311
+ include ::Google::Protobuf::MessageExts
312
+ extend ::Google::Protobuf::MessageExts::ClassMethods
313
+ end
314
+
160
315
  # A cluster instance.
316
+ # @!attribute [rw] gcs_source
317
+ # @return [::Google::Cloud::Redis::Cluster::V1::Cluster::GcsBackupSource]
318
+ # Optional. Backups stored in Cloud Storage buckets.
319
+ # The Cloud Storage buckets need to be the same region as the clusters.
320
+ # Read permission is required to import from the provided Cloud Storage
321
+ # objects.
322
+ #
323
+ # Note: The following fields are mutually exclusive: `gcs_source`, `managed_backup_source`. If a field in that set is populated, all other fields in the set will automatically be cleared.
324
+ # @!attribute [rw] managed_backup_source
325
+ # @return [::Google::Cloud::Redis::Cluster::V1::Cluster::ManagedBackupSource]
326
+ # Optional. Backups generated and managed by memorystore service.
327
+ #
328
+ # Note: The following fields are mutually exclusive: `managed_backup_source`, `gcs_source`. If a field in that set is populated, all other fields in the set will automatically be cleared.
161
329
  # @!attribute [rw] name
162
330
  # @return [::String]
163
- # Required. Unique name of the resource in this scope including project and
164
- # location using the form:
331
+ # Required. Identifier. Unique name of the resource in this scope including
332
+ # project and location using the form:
165
333
  # `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}`
166
334
  # @!attribute [r] create_time
167
335
  # @return [::Google::Protobuf::Timestamp]
@@ -190,10 +358,10 @@ module Google
190
358
  # the next integer.
191
359
  # @!attribute [rw] shard_count
192
360
  # @return [::Integer]
193
- # Required. Number of shards for the Redis cluster.
361
+ # Optional. Number of shards for the Redis cluster.
194
362
  # @!attribute [rw] psc_configs
195
363
  # @return [::Array<::Google::Cloud::Redis::Cluster::V1::PscConfig>]
196
- # Required. Each PscConfig configures the consumer network where IPs will
364
+ # Optional. Each PscConfig configures the consumer network where IPs will
197
365
  # be designated to the cluster for client access through Private Service
198
366
  # Connect Automation. Currently, only one PscConfig is supported.
199
367
  # @!attribute [r] discovery_endpoints
@@ -202,8 +370,8 @@ module Google
202
370
  # connect to the cluster. Currently only one discovery endpoint is supported.
203
371
  # @!attribute [r] psc_connections
204
372
  # @return [::Array<::Google::Cloud::Redis::Cluster::V1::PscConnection>]
205
- # Output only. PSC connections for discovery of the cluster topology and
206
- # accessing the cluster.
373
+ # Output only. The list of PSC connections that are auto-created through
374
+ # service connectivity automation.
207
375
  # @!attribute [r] state_info
208
376
  # @return [::Google::Cloud::Redis::Cluster::V1::Cluster::StateInfo]
209
377
  # Output only. Additional information about the current state of the cluster.
@@ -225,9 +393,39 @@ module Google
225
393
  # @return [::Google::Cloud::Redis::Cluster::V1::ZoneDistributionConfig]
226
394
  # Optional. This config will be used to determine how the customer wants us
227
395
  # to distribute cluster resources within the region.
396
+ # @!attribute [rw] cross_cluster_replication_config
397
+ # @return [::Google::Cloud::Redis::Cluster::V1::CrossClusterReplicationConfig]
398
+ # Optional. Cross cluster replication config.
228
399
  # @!attribute [rw] deletion_protection_enabled
229
400
  # @return [::Boolean]
230
401
  # Optional. The delete operation will fail when the value is set to true.
402
+ # @!attribute [rw] maintenance_policy
403
+ # @return [::Google::Cloud::Redis::Cluster::V1::ClusterMaintenancePolicy]
404
+ # Optional. ClusterMaintenancePolicy determines when to allow or deny
405
+ # updates.
406
+ # @!attribute [r] maintenance_schedule
407
+ # @return [::Google::Cloud::Redis::Cluster::V1::ClusterMaintenanceSchedule]
408
+ # Output only. ClusterMaintenanceSchedule Output only Published maintenance
409
+ # schedule.
410
+ # @!attribute [r] psc_service_attachments
411
+ # @return [::Array<::Google::Cloud::Redis::Cluster::V1::PscServiceAttachment>]
412
+ # Output only. Service attachment details to configure Psc connections
413
+ # @!attribute [rw] cluster_endpoints
414
+ # @return [::Array<::Google::Cloud::Redis::Cluster::V1::ClusterEndpoint>]
415
+ # Optional. A list of cluster enpoints.
416
+ # @!attribute [r] backup_collection
417
+ # @return [::String]
418
+ # Optional. Output only. The backup collection full resource name. Example:
419
+ # projects/\\{project}/locations/\\{location}/backupCollections/\\{collection}
420
+ # @!attribute [rw] kms_key
421
+ # @return [::String]
422
+ # Optional. The KMS key used to encrypt the at-rest data of the cluster.
423
+ # @!attribute [rw] automated_backup_config
424
+ # @return [::Google::Cloud::Redis::Cluster::V1::AutomatedBackupConfig]
425
+ # Optional. The automated backup config for the cluster.
426
+ # @!attribute [r] encryption_info
427
+ # @return [::Google::Cloud::Redis::Cluster::V1::EncryptionInfo]
428
+ # Output only. Encryption information of the data at rest of the cluster.
231
429
  class Cluster
232
430
  include ::Google::Protobuf::MessageExts
233
431
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -253,6 +451,31 @@ module Google
253
451
  end
254
452
  end
255
453
 
454
+ # Backups stored in Cloud Storage buckets.
455
+ # The Cloud Storage buckets need to be the same region as the clusters.
456
+ # @!attribute [rw] uris
457
+ # @return [::Array<::String>]
458
+ # Optional. URIs of the GCS objects to import.
459
+ # Example: gs://bucket1/object1, gs://bucket2/folder2/object2
460
+ class GcsBackupSource
461
+ include ::Google::Protobuf::MessageExts
462
+ extend ::Google::Protobuf::MessageExts::ClassMethods
463
+ end
464
+
465
+ # Backups that generated and managed by memorystore.
466
+ # @!attribute [rw] backup
467
+ # @return [::String]
468
+ # Optional. Example:
469
+ # //redis.googleapis.com/projects/\\{project}/locations/\\{location}/backupCollections/\\{collection}/backups/\\{backup}
470
+ # A shorter version (without the prefix) of the backup name is also
471
+ # supported, like
472
+ # projects/\\{project}/locations/\\{location}/backupCollections/\\{collection}/backups/\\{backup_id}
473
+ # In this case, it assumes the backup is under redis.googleapis.com.
474
+ class ManagedBackupSource
475
+ include ::Google::Protobuf::MessageExts
476
+ extend ::Google::Protobuf::MessageExts::ClassMethods
477
+ end
478
+
256
479
  # @!attribute [rw] key
257
480
  # @return [::String]
258
481
  # @!attribute [rw] value
@@ -281,6 +504,313 @@ module Google
281
504
  end
282
505
  end
283
506
 
507
+ # The automated backup config for a cluster.
508
+ # @!attribute [rw] fixed_frequency_schedule
509
+ # @return [::Google::Cloud::Redis::Cluster::V1::AutomatedBackupConfig::FixedFrequencySchedule]
510
+ # Optional. Trigger automated backups at a fixed frequency.
511
+ # @!attribute [rw] automated_backup_mode
512
+ # @return [::Google::Cloud::Redis::Cluster::V1::AutomatedBackupConfig::AutomatedBackupMode]
513
+ # Optional. The automated backup mode. If the mode is disabled, the other
514
+ # fields will be ignored.
515
+ # @!attribute [rw] retention
516
+ # @return [::Google::Protobuf::Duration]
517
+ # Optional. How long to keep automated backups before the backups are
518
+ # deleted. The value should be between 1 day and 365 days. If not specified,
519
+ # the default value is 35 days.
520
+ class AutomatedBackupConfig
521
+ include ::Google::Protobuf::MessageExts
522
+ extend ::Google::Protobuf::MessageExts::ClassMethods
523
+
524
+ # This schedule allows the backup to be triggered at a fixed frequency
525
+ # (currently only daily is supported).
526
+ # @!attribute [rw] start_time
527
+ # @return [::Google::Type::TimeOfDay]
528
+ # Required. The start time of every automated backup in UTC. It must be set
529
+ # to the start of an hour. This field is required.
530
+ class FixedFrequencySchedule
531
+ include ::Google::Protobuf::MessageExts
532
+ extend ::Google::Protobuf::MessageExts::ClassMethods
533
+ end
534
+
535
+ # The automated backup mode.
536
+ module AutomatedBackupMode
537
+ # Default value. Automated backup config is not specified.
538
+ AUTOMATED_BACKUP_MODE_UNSPECIFIED = 0
539
+
540
+ # Automated backup config disabled.
541
+ DISABLED = 1
542
+
543
+ # Automated backup config enabled.
544
+ ENABLED = 2
545
+ end
546
+ end
547
+
548
+ # BackupCollection of a cluster.
549
+ # @!attribute [rw] name
550
+ # @return [::String]
551
+ # Identifier. Full resource path of the backup collection.
552
+ # @!attribute [r] cluster_uid
553
+ # @return [::String]
554
+ # Output only. The cluster uid of the backup collection.
555
+ # @!attribute [r] cluster
556
+ # @return [::String]
557
+ # Output only. The full resource path of the cluster the backup collection
558
+ # belongs to. Example:
559
+ # projects/\\{project}/locations/\\{location}/clusters/\\{cluster}
560
+ # @!attribute [r] kms_key
561
+ # @return [::String]
562
+ # Output only. The KMS key used to encrypt the backups under this backup
563
+ # collection.
564
+ # @!attribute [r] uid
565
+ # @return [::String]
566
+ # Output only. System assigned unique identifier of the backup collection.
567
+ class BackupCollection
568
+ include ::Google::Protobuf::MessageExts
569
+ extend ::Google::Protobuf::MessageExts::ClassMethods
570
+ end
571
+
572
+ # Backup of a cluster.
573
+ # @!attribute [rw] name
574
+ # @return [::String]
575
+ # Identifier. Full resource path of the backup. the last part of the name is
576
+ # the backup id with the following format: [YYYYMMDDHHMMSS]_[Shorted Cluster
577
+ # UID] OR customer specified while backup cluster. Example:
578
+ # 20240515123000_1234
579
+ # @!attribute [r] create_time
580
+ # @return [::Google::Protobuf::Timestamp]
581
+ # Output only. The time when the backup was created.
582
+ # @!attribute [r] cluster
583
+ # @return [::String]
584
+ # Output only. Cluster resource path of this backup.
585
+ # @!attribute [r] cluster_uid
586
+ # @return [::String]
587
+ # Output only. Cluster uid of this backup.
588
+ # @!attribute [r] total_size_bytes
589
+ # @return [::Integer]
590
+ # Output only. Total size of the backup in bytes.
591
+ # @!attribute [r] expire_time
592
+ # @return [::Google::Protobuf::Timestamp]
593
+ # Output only. The time when the backup will expire.
594
+ # @!attribute [r] engine_version
595
+ # @return [::String]
596
+ # Output only. redis-7.2, valkey-7.5
597
+ # @!attribute [r] backup_files
598
+ # @return [::Array<::Google::Cloud::Redis::Cluster::V1::BackupFile>]
599
+ # Output only. List of backup files of the backup.
600
+ # @!attribute [r] node_type
601
+ # @return [::Google::Cloud::Redis::Cluster::V1::NodeType]
602
+ # Output only. Node type of the cluster.
603
+ # @!attribute [r] replica_count
604
+ # @return [::Integer]
605
+ # Output only. Number of replicas for the cluster.
606
+ # @!attribute [r] shard_count
607
+ # @return [::Integer]
608
+ # Output only. Number of shards for the cluster.
609
+ # @!attribute [r] backup_type
610
+ # @return [::Google::Cloud::Redis::Cluster::V1::Backup::BackupType]
611
+ # Output only. Type of the backup.
612
+ # @!attribute [r] state
613
+ # @return [::Google::Cloud::Redis::Cluster::V1::Backup::State]
614
+ # Output only. State of the backup.
615
+ # @!attribute [r] encryption_info
616
+ # @return [::Google::Cloud::Redis::Cluster::V1::EncryptionInfo]
617
+ # Output only. Encryption information of the backup.
618
+ # @!attribute [r] uid
619
+ # @return [::String]
620
+ # Output only. System assigned unique identifier of the backup.
621
+ class Backup
622
+ include ::Google::Protobuf::MessageExts
623
+ extend ::Google::Protobuf::MessageExts::ClassMethods
624
+
625
+ # Type of the backup.
626
+ module BackupType
627
+ # The default value, not set.
628
+ BACKUP_TYPE_UNSPECIFIED = 0
629
+
630
+ # On-demand backup.
631
+ ON_DEMAND = 1
632
+
633
+ # Automated backup.
634
+ AUTOMATED = 2
635
+ end
636
+
637
+ # State of the backup.
638
+ module State
639
+ # The default value, not set.
640
+ STATE_UNSPECIFIED = 0
641
+
642
+ # The backup is being created.
643
+ CREATING = 1
644
+
645
+ # The backup is active to be used.
646
+ ACTIVE = 2
647
+
648
+ # The backup is being deleted.
649
+ DELETING = 3
650
+
651
+ # The backup is currently suspended due to reasons like project deletion,
652
+ # billing account closure, etc.
653
+ SUSPENDED = 4
654
+ end
655
+ end
656
+
657
+ # Backup is consisted of multiple backup files.
658
+ # @!attribute [r] file_name
659
+ # @return [::String]
660
+ # Output only. e.g: <shard-id>.rdb
661
+ # @!attribute [r] size_bytes
662
+ # @return [::Integer]
663
+ # Output only. Size of the backup file in bytes.
664
+ # @!attribute [r] create_time
665
+ # @return [::Google::Protobuf::Timestamp]
666
+ # Output only. The time when the backup file was created.
667
+ class BackupFile
668
+ include ::Google::Protobuf::MessageExts
669
+ extend ::Google::Protobuf::MessageExts::ClassMethods
670
+ end
671
+
672
+ # Configuration of a service attachment of the cluster, for creating PSC
673
+ # connections.
674
+ # @!attribute [r] service_attachment
675
+ # @return [::String]
676
+ # Output only. Service attachment URI which your self-created PscConnection
677
+ # should use as target
678
+ # @!attribute [r] connection_type
679
+ # @return [::Google::Cloud::Redis::Cluster::V1::ConnectionType]
680
+ # Output only. Type of a PSC connection targeting this service attachment.
681
+ class PscServiceAttachment
682
+ include ::Google::Protobuf::MessageExts
683
+ extend ::Google::Protobuf::MessageExts::ClassMethods
684
+ end
685
+
686
+ # Cross cluster replication config.
687
+ # @!attribute [rw] cluster_role
688
+ # @return [::Google::Cloud::Redis::Cluster::V1::CrossClusterReplicationConfig::ClusterRole]
689
+ # The role of the cluster in cross cluster replication.
690
+ # @!attribute [rw] primary_cluster
691
+ # @return [::Google::Cloud::Redis::Cluster::V1::CrossClusterReplicationConfig::RemoteCluster]
692
+ # Details of the primary cluster that is used as the replication source for
693
+ # this secondary cluster.
694
+ #
695
+ # This field is only set for a secondary cluster.
696
+ # @!attribute [rw] secondary_clusters
697
+ # @return [::Array<::Google::Cloud::Redis::Cluster::V1::CrossClusterReplicationConfig::RemoteCluster>]
698
+ # List of secondary clusters that are replicating from this primary cluster.
699
+ #
700
+ # This field is only set for a primary cluster.
701
+ # @!attribute [r] update_time
702
+ # @return [::Google::Protobuf::Timestamp]
703
+ # Output only. The last time cross cluster replication config was updated.
704
+ # @!attribute [r] membership
705
+ # @return [::Google::Cloud::Redis::Cluster::V1::CrossClusterReplicationConfig::Membership]
706
+ # Output only. An output only view of all the member clusters participating
707
+ # in the cross cluster replication. This view will be provided by every
708
+ # member cluster irrespective of its cluster role(primary or secondary).
709
+ #
710
+ # A primary cluster can provide information about all the secondary clusters
711
+ # replicating from it. However, a secondary cluster only knows about the
712
+ # primary cluster from which it is replicating. However, for scenarios, where
713
+ # the primary cluster is unavailable(e.g. regional outage), a GetCluster
714
+ # request can be sent to any other member cluster and this field will list
715
+ # all the member clusters participating in cross cluster replication.
716
+ class CrossClusterReplicationConfig
717
+ include ::Google::Protobuf::MessageExts
718
+ extend ::Google::Protobuf::MessageExts::ClassMethods
719
+
720
+ # Details of the remote cluster associated with this cluster in a cross
721
+ # cluster replication setup.
722
+ # @!attribute [rw] cluster
723
+ # @return [::String]
724
+ # The full resource path of the remote cluster in
725
+ # the format: projects/<project>/locations/<region>/clusters/<cluster-id>
726
+ # @!attribute [r] uid
727
+ # @return [::String]
728
+ # Output only. The unique identifier of the remote cluster.
729
+ class RemoteCluster
730
+ include ::Google::Protobuf::MessageExts
731
+ extend ::Google::Protobuf::MessageExts::ClassMethods
732
+ end
733
+
734
+ # An output only view of all the member clusters participating in the cross
735
+ # cluster replication.
736
+ # @!attribute [r] primary_cluster
737
+ # @return [::Google::Cloud::Redis::Cluster::V1::CrossClusterReplicationConfig::RemoteCluster]
738
+ # Output only. The primary cluster that acts as the source of replication
739
+ # for the secondary clusters.
740
+ # @!attribute [r] secondary_clusters
741
+ # @return [::Array<::Google::Cloud::Redis::Cluster::V1::CrossClusterReplicationConfig::RemoteCluster>]
742
+ # Output only. The list of secondary clusters replicating from the primary
743
+ # cluster.
744
+ class Membership
745
+ include ::Google::Protobuf::MessageExts
746
+ extend ::Google::Protobuf::MessageExts::ClassMethods
747
+ end
748
+
749
+ # The role of the cluster in cross cluster replication.
750
+ module ClusterRole
751
+ # Cluster role is not set.
752
+ # The behavior is equivalent to NONE.
753
+ CLUSTER_ROLE_UNSPECIFIED = 0
754
+
755
+ # This cluster does not participate in cross cluster replication. It is an
756
+ # independent cluster and does not replicate to or from any other clusters.
757
+ NONE = 1
758
+
759
+ # A cluster that allows both reads and writes. Any data written to this
760
+ # cluster is also replicated to the attached secondary clusters.
761
+ PRIMARY = 2
762
+
763
+ # A cluster that allows only reads and replicates data from a primary
764
+ # cluster.
765
+ SECONDARY = 3
766
+ end
767
+ end
768
+
769
+ # Maintenance policy per cluster.
770
+ # @!attribute [r] create_time
771
+ # @return [::Google::Protobuf::Timestamp]
772
+ # Output only. The time when the policy was created i.e. Maintenance Window
773
+ # or Deny Period was assigned.
774
+ # @!attribute [r] update_time
775
+ # @return [::Google::Protobuf::Timestamp]
776
+ # Output only. The time when the policy was updated i.e. Maintenance Window
777
+ # or Deny Period was updated.
778
+ # @!attribute [rw] weekly_maintenance_window
779
+ # @return [::Array<::Google::Cloud::Redis::Cluster::V1::ClusterWeeklyMaintenanceWindow>]
780
+ # Optional. Maintenance window that is applied to resources covered by this
781
+ # policy. Minimum 1. For the current version, the maximum number of
782
+ # weekly_maintenance_window is expected to be one.
783
+ class ClusterMaintenancePolicy
784
+ include ::Google::Protobuf::MessageExts
785
+ extend ::Google::Protobuf::MessageExts::ClassMethods
786
+ end
787
+
788
+ # Time window specified for weekly operations.
789
+ # @!attribute [rw] day
790
+ # @return [::Google::Type::DayOfWeek]
791
+ # Allows to define schedule that runs specified day of the week.
792
+ # @!attribute [rw] start_time
793
+ # @return [::Google::Type::TimeOfDay]
794
+ # Start time of the window in UTC.
795
+ class ClusterWeeklyMaintenanceWindow
796
+ include ::Google::Protobuf::MessageExts
797
+ extend ::Google::Protobuf::MessageExts::ClassMethods
798
+ end
799
+
800
+ # Upcoming maitenance schedule.
801
+ # @!attribute [r] start_time
802
+ # @return [::Google::Protobuf::Timestamp]
803
+ # Output only. The start time of any upcoming scheduled maintenance for this
804
+ # instance.
805
+ # @!attribute [r] end_time
806
+ # @return [::Google::Protobuf::Timestamp]
807
+ # Output only. The end time of any upcoming scheduled maintenance for this
808
+ # instance.
809
+ class ClusterMaintenanceSchedule
810
+ include ::Google::Protobuf::MessageExts
811
+ extend ::Google::Protobuf::MessageExts::ClassMethods
812
+ end
813
+
284
814
  # @!attribute [rw] network
285
815
  # @return [::String]
286
816
  # Required. The network where the IP address of the discovery endpoint will
@@ -309,6 +839,78 @@ module Google
309
839
  end
310
840
 
311
841
  # Details of consumer resources in a PSC connection.
842
+ # @!attribute [rw] psc_connection_id
843
+ # @return [::String]
844
+ # Required. The PSC connection id of the forwarding rule connected to the
845
+ # service attachment.
846
+ # @!attribute [rw] address
847
+ # @return [::String]
848
+ # Required. The IP allocated on the consumer network for the PSC forwarding
849
+ # rule.
850
+ # @!attribute [rw] forwarding_rule
851
+ # @return [::String]
852
+ # Required. The URI of the consumer side forwarding rule.
853
+ # Example:
854
+ # projects/\\{projectNumOrId}/regions/us-east1/forwardingRules/\\{resourceId}.
855
+ # @!attribute [rw] project_id
856
+ # @return [::String]
857
+ # Optional. Project ID of the consumer project where the forwarding rule is
858
+ # created in.
859
+ # @!attribute [rw] network
860
+ # @return [::String]
861
+ # Required. The consumer network where the IP address resides, in the form of
862
+ # projects/\\{project_id}/global/networks/\\{network_id}.
863
+ # @!attribute [rw] service_attachment
864
+ # @return [::String]
865
+ # Required. The service attachment which is the target of the PSC connection,
866
+ # in the form of
867
+ # projects/\\{project-id}/regions/\\{region}/serviceAttachments/\\{service-attachment-id}.
868
+ # @!attribute [r] psc_connection_status
869
+ # @return [::Google::Cloud::Redis::Cluster::V1::PscConnectionStatus]
870
+ # Output only. The status of the PSC connection.
871
+ # Please note that this value is updated periodically.
872
+ # To get the latest status of a PSC connection, follow
873
+ # https://cloud.google.com/vpc/docs/configure-private-service-connect-services#endpoint-details.
874
+ # @!attribute [r] connection_type
875
+ # @return [::Google::Cloud::Redis::Cluster::V1::ConnectionType]
876
+ # Output only. Type of the PSC connection.
877
+ class PscConnection
878
+ include ::Google::Protobuf::MessageExts
879
+ extend ::Google::Protobuf::MessageExts::ClassMethods
880
+ end
881
+
882
+ # ClusterEndpoint consists of PSC connections that are created
883
+ # as a group in each VPC network for accessing the cluster. In each group,
884
+ # there shall be one connection for each service attachment in the cluster.
885
+ # @!attribute [rw] connections
886
+ # @return [::Array<::Google::Cloud::Redis::Cluster::V1::ConnectionDetail>]
887
+ # A group of PSC connections. They are created in the same VPC network, one
888
+ # for each service attachment in the cluster.
889
+ class ClusterEndpoint
890
+ include ::Google::Protobuf::MessageExts
891
+ extend ::Google::Protobuf::MessageExts::ClassMethods
892
+ end
893
+
894
+ # Detailed information of each PSC connection.
895
+ # @!attribute [rw] psc_auto_connection
896
+ # @return [::Google::Cloud::Redis::Cluster::V1::PscAutoConnection]
897
+ # Detailed information of a PSC connection that is created through
898
+ # service connectivity automation.
899
+ #
900
+ # Note: The following fields are mutually exclusive: `psc_auto_connection`, `psc_connection`. If a field in that set is populated, all other fields in the set will automatically be cleared.
901
+ # @!attribute [rw] psc_connection
902
+ # @return [::Google::Cloud::Redis::Cluster::V1::PscConnection]
903
+ # Detailed information of a PSC connection that is created by the customer
904
+ # who owns the cluster.
905
+ #
906
+ # Note: The following fields are mutually exclusive: `psc_connection`, `psc_auto_connection`. If a field in that set is populated, all other fields in the set will automatically be cleared.
907
+ class ConnectionDetail
908
+ include ::Google::Protobuf::MessageExts
909
+ extend ::Google::Protobuf::MessageExts::ClassMethods
910
+ end
911
+
912
+ # Details of consumer resources in a PSC connection that is created through
913
+ # Service Connectivity Automation.
312
914
  # @!attribute [r] psc_connection_id
313
915
  # @return [::String]
314
916
  # Output only. The PSC connection id of the forwarding rule connected to the
@@ -322,15 +924,28 @@ module Google
322
924
  # Output only. The URI of the consumer side forwarding rule.
323
925
  # Example:
324
926
  # projects/\\{projectNumOrId}/regions/us-east1/forwardingRules/\\{resourceId}.
325
- # @!attribute [r] project_id
927
+ # @!attribute [rw] project_id
326
928
  # @return [::String]
327
- # Output only. The consumer project_id where the forwarding rule is created
929
+ # Required. The consumer project_id where the forwarding rule is created
328
930
  # from.
329
931
  # @!attribute [rw] network
330
932
  # @return [::String]
331
- # The consumer network where the IP address resides, in the form of
933
+ # Required. The consumer network where the IP address resides, in the form of
332
934
  # projects/\\{project_id}/global/networks/\\{network_id}.
333
- class PscConnection
935
+ # @!attribute [r] service_attachment
936
+ # @return [::String]
937
+ # Output only. The service attachment which is the target of the PSC
938
+ # connection, in the form of
939
+ # projects/\\{project-id}/regions/\\{region}/serviceAttachments/\\{service-attachment-id}.
940
+ # @!attribute [r] psc_connection_status
941
+ # @return [::Google::Cloud::Redis::Cluster::V1::PscConnectionStatus]
942
+ # Output only. The status of the PSC connection.
943
+ # Please note that this value is updated periodically.
944
+ # Please use Private Service Connect APIs for the latest status.
945
+ # @!attribute [r] connection_type
946
+ # @return [::Google::Cloud::Redis::Cluster::V1::ConnectionType]
947
+ # Output only. Type of the PSC connection.
948
+ class PscAutoConnection
334
949
  include ::Google::Protobuf::MessageExts
335
950
  extend ::Google::Protobuf::MessageExts::ClassMethods
336
951
  end
@@ -463,8 +1078,8 @@ module Google
463
1078
  # there is a disaster
464
1079
  EVERYSEC = 2
465
1080
 
466
- # fsync every time new commands are appended to the AOF. It has the best
467
- # data loss protection at the cost of performance
1081
+ # fsync every time new write commands are appended to the AOF. It has the
1082
+ # best data loss protection at the cost of performance
468
1083
  ALWAYS = 3
469
1084
  end
470
1085
  end
@@ -500,9 +1115,6 @@ module Google
500
1115
  extend ::Google::Protobuf::MessageExts::ClassMethods
501
1116
 
502
1117
  # Defines various modes of zone distribution.
503
- # Currently supports two modes, can be expanded in future to support more
504
- # types of distribution modes.
505
- # design doc: go/same-zone-cluster
506
1118
  module ZoneDistributionMode
507
1119
  # Not Set. Default: MULTI_ZONE
508
1120
  ZONE_DISTRIBUTION_MODE_UNSPECIFIED = 0
@@ -517,6 +1129,115 @@ module Google
517
1129
  end
518
1130
  end
519
1131
 
1132
+ # Request for rescheduling a cluster maintenance.
1133
+ # @!attribute [rw] name
1134
+ # @return [::String]
1135
+ # Required. Redis Cluster instance resource name using the form:
1136
+ # `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}`
1137
+ # where `location_id` refers to a GCP region.
1138
+ # @!attribute [rw] reschedule_type
1139
+ # @return [::Google::Cloud::Redis::Cluster::V1::RescheduleClusterMaintenanceRequest::RescheduleType]
1140
+ # Required. If reschedule type is SPECIFIC_TIME, must set up schedule_time as
1141
+ # well.
1142
+ # @!attribute [rw] schedule_time
1143
+ # @return [::Google::Protobuf::Timestamp]
1144
+ # Optional. Timestamp when the maintenance shall be rescheduled to if
1145
+ # reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for
1146
+ # example `2012-11-15T16:19:00.094Z`.
1147
+ class RescheduleClusterMaintenanceRequest
1148
+ include ::Google::Protobuf::MessageExts
1149
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1150
+
1151
+ # Reschedule options.
1152
+ module RescheduleType
1153
+ # Not set.
1154
+ RESCHEDULE_TYPE_UNSPECIFIED = 0
1155
+
1156
+ # If the user wants to schedule the maintenance to happen now.
1157
+ IMMEDIATE = 1
1158
+
1159
+ # If the user wants to reschedule the maintenance to a specific time.
1160
+ SPECIFIC_TIME = 3
1161
+ end
1162
+ end
1163
+
1164
+ # EncryptionInfo describes the encryption information of a cluster or a backup.
1165
+ # @!attribute [r] encryption_type
1166
+ # @return [::Google::Cloud::Redis::Cluster::V1::EncryptionInfo::Type]
1167
+ # Output only. Type of encryption.
1168
+ # @!attribute [r] kms_key_versions
1169
+ # @return [::Array<::String>]
1170
+ # Output only. KMS key versions that are being used to protect the data
1171
+ # at-rest.
1172
+ # @!attribute [r] kms_key_primary_state
1173
+ # @return [::Google::Cloud::Redis::Cluster::V1::EncryptionInfo::KmsKeyState]
1174
+ # Output only. The state of the primary version of the KMS key perceived by
1175
+ # the system. This field is not populated in backups.
1176
+ # @!attribute [r] last_update_time
1177
+ # @return [::Google::Protobuf::Timestamp]
1178
+ # Output only. The most recent time when the encryption info was updated.
1179
+ class EncryptionInfo
1180
+ include ::Google::Protobuf::MessageExts
1181
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1182
+
1183
+ # Possible encryption types.
1184
+ module Type
1185
+ # Encryption type not specified. Defaults to GOOGLE_DEFAULT_ENCRYPTION.
1186
+ TYPE_UNSPECIFIED = 0
1187
+
1188
+ # The data is encrypted at rest with a key that is fully managed by Google.
1189
+ # No key version will be populated. This is the default state.
1190
+ GOOGLE_DEFAULT_ENCRYPTION = 1
1191
+
1192
+ # The data is encrypted at rest with a key that is managed by the customer.
1193
+ # KMS key versions will be populated.
1194
+ CUSTOMER_MANAGED_ENCRYPTION = 2
1195
+ end
1196
+
1197
+ # The state of the KMS key perceived by the system. Refer to the public
1198
+ # documentation for the impact of each state.
1199
+ module KmsKeyState
1200
+ # The default value. This value is unused.
1201
+ KMS_KEY_STATE_UNSPECIFIED = 0
1202
+
1203
+ # The KMS key is enabled and correctly configured.
1204
+ ENABLED = 1
1205
+
1206
+ # Permission denied on the KMS key.
1207
+ PERMISSION_DENIED = 2
1208
+
1209
+ # The KMS key is disabled.
1210
+ DISABLED = 3
1211
+
1212
+ # The KMS key is destroyed.
1213
+ DESTROYED = 4
1214
+
1215
+ # The KMS key is scheduled to be destroyed.
1216
+ DESTROY_SCHEDULED = 5
1217
+
1218
+ # The EKM key is unreachable.
1219
+ EKM_KEY_UNREACHABLE_DETECTED = 6
1220
+
1221
+ # Billing is disabled for the project.
1222
+ BILLING_DISABLED = 7
1223
+
1224
+ # All other unknown failures.
1225
+ UNKNOWN_FAILURE = 8
1226
+ end
1227
+ end
1228
+
1229
+ # Status of the PSC connection.
1230
+ module PscConnectionStatus
1231
+ # PSC connection status is not specified.
1232
+ PSC_CONNECTION_STATUS_UNSPECIFIED = 0
1233
+
1234
+ # The connection is active
1235
+ PSC_CONNECTION_STATUS_ACTIVE = 1
1236
+
1237
+ # Connection not found
1238
+ PSC_CONNECTION_STATUS_NOT_FOUND = 2
1239
+ end
1240
+
520
1241
  # Available authorization mode of a Redis cluster.
521
1242
  module AuthorizationMode
522
1243
  # Not set.
@@ -531,6 +1252,7 @@ module Google
531
1252
 
532
1253
  # NodeType of a redis cluster node,
533
1254
  module NodeType
1255
+ # Node type unspecified
534
1256
  NODE_TYPE_UNSPECIFIED = 0
535
1257
 
536
1258
  # Redis shared core nano node_type.
@@ -557,6 +1279,21 @@ module Google
557
1279
  # Use server managed encryption for in-transit encryption.
558
1280
  TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION = 2
559
1281
  end
1282
+
1283
+ # Type of a PSC connection, for cluster access purpose.
1284
+ module ConnectionType
1285
+ # Cluster endpoint Type is not set
1286
+ CONNECTION_TYPE_UNSPECIFIED = 0
1287
+
1288
+ # Cluster endpoint that will be used as for cluster topology discovery.
1289
+ CONNECTION_TYPE_DISCOVERY = 1
1290
+
1291
+ # Cluster endpoint that will be used as primary endpoint to access primary.
1292
+ CONNECTION_TYPE_PRIMARY = 2
1293
+
1294
+ # Cluster endpoint that will be used as reader endpoint to access replicas.
1295
+ CONNECTION_TYPE_READER = 3
1296
+ end
560
1297
  end
561
1298
  end
562
1299
  end