diff --git a/RedisCluster/metadata/V1/CloudRedisCluster.php b/RedisCluster/metadata/V1/CloudRedisCluster.php index 87ff9a32a738..84028f522715 100644 --- a/RedisCluster/metadata/V1/CloudRedisCluster.php +++ b/RedisCluster/metadata/V1/CloudRedisCluster.php @@ -28,7 +28,7 @@ public static function initOnce() { \GPBMetadata\Google\Type\Dayofweek::initOnce(); \GPBMetadata\Google\Type\Timeofday::initOnce(); $pool->internalAddGeneratedFile( - "\x0A\xBA\x8A\x01\x0A7google/cloud/redis/cluster/v1/cloud_redis_cluster.proto\x12\x1Dgoogle.cloud.redis.cluster.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x1Bgoogle/api/field_info.proto\x1A\x19google/api/resource.proto\x1A#google/longrunning/operations.proto\x1A\x19google/protobuf/any.proto\x1A\x1Egoogle/protobuf/duration.proto\x1A\x1Bgoogle/protobuf/empty.proto\x1A google/protobuf/field_mask.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\x1A\x1Bgoogle/type/dayofweek.proto\x1A\x1Bgoogle/type/timeofday.proto\"\xBC\x01\x0A\x14CreateClusterRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x17\x0A\x0Acluster_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x12<\x0A\x07cluster\x18\x03 \x01(\x0B2&.google.cloud.redis.cluster.v1.ClusterB\x03\xE0A\x02\x12\x12\x0A\x0Arequest_id\x18\x04 \x01(\x09\"w\x0A\x13ListClustersRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x11\x0A\x09page_size\x18\x02 \x01(\x05\x12\x12\x0A\x0Apage_token\x18\x03 \x01(\x09\"~\x0A\x14ListClustersResponse\x128\x0A\x08clusters\x18\x01 \x03(\x0B2&.google.cloud.redis.cluster.v1.Cluster\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x13\x0A\x0Bunreachable\x18\x03 \x03(\x09\"\x9E\x01\x0A\x14UpdateClusterRequest\x124\x0A\x0Bupdate_mask\x18\x01 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x12<\x0A\x07cluster\x18\x02 \x01(\x0B2&.google.cloud.redis.cluster.v1.ClusterB\x03\xE0A\x02\x12\x12\x0A\x0Arequest_id\x18\x03 \x01(\x09\"G\x0A\x11GetClusterRequest\x122\x0A\x04name\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Credis.googleapis.com/Cluster\"^\x0A\x14DeleteClusterRequest\x122\x0A\x04name\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Credis.googleapis.com/Cluster\x12\x12\x0A\x0Arequest_id\x18\x02 \x01(\x09\"h\x0A%GetClusterCertificateAuthorityRequest\x12?\x0A\x04name\x18\x01 \x01(\x09B1\xE0A\x02\xFAA+\x0A)redis.googleapis.com/CertificateAuthority\"\x8E\x01\x0A\x1CListBackupCollectionsRequest\x12=\x0A\x06parent\x18\x01 \x01(\x09B-\xE0A\x02\xFAA'\x12%redis.googleapis.com/BackupCollection\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\"\x9A\x01\x0A\x1DListBackupCollectionsResponse\x12K\x0A\x12backup_collections\x18\x01 \x03(\x0B2/.google.cloud.redis.cluster.v1.BackupCollection\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x13\x0A\x0Bunreachable\x18\x03 \x03(\x09\"Y\x0A\x1AGetBackupCollectionRequest\x12;\x0A\x04name\x18\x01 \x01(\x09B-\xE0A\x02\xFAA'\x0A%redis.googleapis.com/BackupCollection\"z\x0A\x12ListBackupsRequest\x123\x0A\x06parent\x18\x01 \x01(\x09B#\xE0A\x02\xFAA\x1D\x12\x1Bredis.googleapis.com/Backup\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\"{\x0A\x13ListBackupsResponse\x126\x0A\x07backups\x18\x01 \x03(\x0B2%.google.cloud.redis.cluster.v1.Backup\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x13\x0A\x0Bunreachable\x18\x03 \x03(\x09\"E\x0A\x10GetBackupRequest\x121\x0A\x04name\x18\x01 \x01(\x09B#\xE0A\x02\xFAA\x1D\x0A\x1Bredis.googleapis.com/Backup\"i\x0A\x13DeleteBackupRequest\x121\x0A\x04name\x18\x01 \x01(\x09B#\xE0A\x02\xFAA\x1D\x0A\x1Bredis.googleapis.com/Backup\x12\x1F\x0A\x0Arequest_id\x18\x02 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"m\x0A\x13ExportBackupRequest\x12\x14\x0A\x0Agcs_bucket\x18\x03 \x01(\x09H\x00\x121\x0A\x04name\x18\x01 \x01(\x09B#\xE0A\x02\xFAA\x1D\x0A\x1Bredis.googleapis.com/BackupB\x0D\x0A\x0Bdestination\"\xA2\x01\x0A\x14BackupClusterRequest\x122\x0A\x04name\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Credis.googleapis.com/Cluster\x12+\x0A\x03ttl\x18\x02 \x01(\x0B2\x19.google.protobuf.DurationB\x03\xE0A\x01\x12\x1B\x0A\x09backup_id\x18\x03 \x01(\x09B\x03\xE0A\x01H\x00\x88\x01\x01B\x0C\x0A\x0A_backup_id\"\xD0\x16\x0A\x07Cluster\x12Q\x0A\x0Agcs_source\x18\" \x01(\x0B26.google.cloud.redis.cluster.v1.Cluster.GcsBackupSourceB\x03\xE0A\x01H\x00\x12`\x0A\x15managed_backup_source\x18# \x01(\x0B2:.google.cloud.redis.cluster.v1.Cluster.ManagedBackupSourceB\x03\xE0A\x01H\x00\x12\x14\x0A\x04name\x18\x01 \x01(\x09B\x06\xE0A\x02\xE0A\x08\x124\x0A\x0Bcreate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12@\x0A\x05state\x18\x04 \x01(\x0E2,.google.cloud.redis.cluster.v1.Cluster.StateB\x03\xE0A\x03\x12\x10\x0A\x03uid\x18\x05 \x01(\x09B\x03\xE0A\x03\x12\x1F\x0A\x0Dreplica_count\x18\x08 \x01(\x05B\x03\xE0A\x01H\x01\x88\x01\x01\x12Q\x0A\x12authorization_mode\x18\x0B \x01(\x0E20.google.cloud.redis.cluster.v1.AuthorizationModeB\x03\xE0A\x01\x12Z\x0A\x17transit_encryption_mode\x18\x0C \x01(\x0E24.google.cloud.redis.cluster.v1.TransitEncryptionModeB\x03\xE0A\x01\x12\x19\x0A\x07size_gb\x18\x0D \x01(\x05B\x03\xE0A\x03H\x02\x88\x01\x01\x12\x1D\x0A\x0Bshard_count\x18\x0E \x01(\x05B\x03\xE0A\x01H\x03\x88\x01\x01\x12B\x0A\x0Bpsc_configs\x18\x0F \x03(\x0B2(.google.cloud.redis.cluster.v1.PscConfigB\x03\xE0A\x01\x12R\x0A\x13discovery_endpoints\x18\x10 \x03(\x0B20.google.cloud.redis.cluster.v1.DiscoveryEndpointB\x03\xE0A\x03\x12J\x0A\x0Fpsc_connections\x18\x11 \x03(\x0B2,.google.cloud.redis.cluster.v1.PscConnectionB\x03\xE0A\x03\x12I\x0A\x0Astate_info\x18\x12 \x01(\x0B20.google.cloud.redis.cluster.v1.Cluster.StateInfoB\x03\xE0A\x03\x12?\x0A\x09node_type\x18\x13 \x01(\x0E2'.google.cloud.redis.cluster.v1.NodeTypeB\x03\xE0A\x01\x12X\x0A\x12persistence_config\x18\x14 \x01(\x0B27.google.cloud.redis.cluster.v1.ClusterPersistenceConfigB\x03\xE0A\x01\x12T\x0A\x0Dredis_configs\x18\x15 \x03(\x0B28.google.cloud.redis.cluster.v1.Cluster.RedisConfigsEntryB\x03\xE0A\x01\x12!\x0A\x0Fprecise_size_gb\x18\x16 \x01(\x01B\x03\xE0A\x03H\x04\x88\x01\x01\x12\\\x0A\x18zone_distribution_config\x18\x17 \x01(\x0B25.google.cloud.redis.cluster.v1.ZoneDistributionConfigB\x03\xE0A\x01\x12k\x0A cross_cluster_replication_config\x18\x18 \x01(\x0B2<.google.cloud.redis.cluster.v1.CrossClusterReplicationConfigB\x03\xE0A\x01\x12-\x0A\x1Bdeletion_protection_enabled\x18\x19 \x01(\x08B\x03\xE0A\x01H\x05\x88\x01\x01\x12]\x0A\x12maintenance_policy\x18\x1A \x01(\x0B27.google.cloud.redis.cluster.v1.ClusterMaintenancePolicyB\x03\xE0A\x01H\x06\x88\x01\x01\x12a\x0A\x14maintenance_schedule\x18\x1B \x01(\x0B29.google.cloud.redis.cluster.v1.ClusterMaintenanceScheduleB\x03\xE0A\x03H\x07\x88\x01\x01\x12Y\x0A\x17psc_service_attachments\x18\x1E \x03(\x0B23.google.cloud.redis.cluster.v1.PscServiceAttachmentB\x03\xE0A\x03\x12N\x0A\x11cluster_endpoints\x18\$ \x03(\x0B2..google.cloud.redis.cluster.v1.ClusterEndpointB\x03\xE0A\x01\x12P\x0A\x11backup_collection\x18' \x01(\x09B0\xE0A\x01\xE0A\x03\xFAA'\x0A%redis.googleapis.com/BackupCollectionH\x08\x88\x01\x01\x12?\x0A\x07kms_key\x18( \x01(\x09B)\xE0A\x01\xFAA#\x0A!cloudkms.googleapis.com/CryptoKeyH\x09\x88\x01\x01\x12Z\x0A\x17automated_backup_config\x18* \x01(\x0B24.google.cloud.redis.cluster.v1.AutomatedBackupConfigB\x03\xE0A\x01\x12K\x0A\x0Fencryption_info\x18+ \x01(\x0B2-.google.cloud.redis.cluster.v1.EncryptionInfoB\x03\xE0A\x03\x1A\xEA\x01\x0A\x09StateInfo\x12R\x0A\x0Bupdate_info\x18\x01 \x01(\x0B2;.google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfoH\x00\x1A\x80\x01\x0A\x0AUpdateInfo\x12\x1F\x0A\x12target_shard_count\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12!\x0A\x14target_replica_count\x18\x02 \x01(\x05H\x01\x88\x01\x01B\x15\x0A\x13_target_shard_countB\x17\x0A\x15_target_replica_countB\x06\x0A\x04info\x1A\$\x0A\x0FGcsBackupSource\x12\x11\x0A\x04uris\x18\x01 \x03(\x09B\x03\xE0A\x01\x1A*\x0A\x13ManagedBackupSource\x12\x13\x0A\x06backup\x18\x01 \x01(\x09B\x03\xE0A\x01\x1A3\x0A\x11RedisConfigsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\"T\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08CREATING\x10\x01\x12\x0A\x0A\x06ACTIVE\x10\x02\x12\x0C\x0A\x08UPDATING\x10\x03\x12\x0C\x0A\x08DELETING\x10\x04:p\xEAAm\x0A\x1Credis.googleapis.com/Cluster\x12:projects/{project}/locations/{location}/clusters/{cluster}*\x08clusters2\x07clusterB\x10\x0A\x0Eimport_sourcesB\x10\x0A\x0E_replica_countB\x0A\x0A\x08_size_gbB\x0E\x0A\x0C_shard_countB\x12\x0A\x10_precise_size_gbB\x1E\x0A\x1C_deletion_protection_enabledB\x15\x0A\x13_maintenance_policyB\x17\x0A\x15_maintenance_scheduleB\x14\x0A\x12_backup_collectionB\x0A\x0A\x08_kms_key\"\x85\x04\x0A\x15AutomatedBackupConfig\x12t\x0A\x18fixed_frequency_schedule\x18\x02 \x01(\x0B2K.google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencyScheduleB\x03\xE0A\x01H\x00\x12l\x0A\x15automated_backup_mode\x18\x01 \x01(\x0E2H.google.cloud.redis.cluster.v1.AutomatedBackupConfig.AutomatedBackupModeB\x03\xE0A\x01\x126\x0A\x09retention\x18\x03 \x01(\x0B2\x19.google.protobuf.DurationB\x03\xE0A\x01H\x01\x88\x01\x01\x1A]\x0A\x16FixedFrequencySchedule\x124\x0A\x0Astart_time\x18\x02 \x01(\x0B2\x16.google.type.TimeOfDayB\x03\xE0A\x02H\x00\x88\x01\x01B\x0D\x0A\x0B_start_time\"W\x0A\x13AutomatedBackupMode\x12%\x0A!AUTOMATED_BACKUP_MODE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08DISABLED\x10\x01\x12\x0B\x0A\x07ENABLED\x10\x02B\x0A\x0A\x08scheduleB\x0C\x0A\x0A_retention\"\xF6\x02\x0A\x10BackupCollection\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12 \x0A\x0Bcluster_uid\x18\x03 \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x01\x125\x0A\x07cluster\x18\x04 \x01(\x09B\$\xE0A\x03\xFAA\x1E\x0A\x1Credis.googleapis.com/Cluster\x12:\x0A\x07kms_key\x18\x05 \x01(\x09B)\xE0A\x03\xFAA#\x0A!cloudkms.googleapis.com/CryptoKey\x12\x18\x0A\x03uid\x18\x06 \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x01:\x9F\x01\xEAA\x9B\x01\x0A%redis.googleapis.com/BackupCollection\x12Mprojects/{project}/locations/{location}/backupCollections/{backup_collection}*\x11backupCollections2\x10backupCollection\"\x82\x08\x0A\x06Backup\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x124\x0A\x0Bcreate_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x125\x0A\x07cluster\x18\x03 \x01(\x09B\$\xE0A\x03\xFAA\x1E\x0A\x1Credis.googleapis.com/Cluster\x12 \x0A\x0Bcluster_uid\x18\x04 \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x01\x12\x1D\x0A\x10total_size_bytes\x18\x05 \x01(\x03B\x03\xE0A\x03\x124\x0A\x0Bexpire_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x1B\x0A\x0Eengine_version\x18\x07 \x01(\x09B\x03\xE0A\x03\x12D\x0A\x0Cbackup_files\x18\x08 \x03(\x0B2).google.cloud.redis.cluster.v1.BackupFileB\x03\xE0A\x03\x12?\x0A\x09node_type\x18\x09 \x01(\x0E2'.google.cloud.redis.cluster.v1.NodeTypeB\x03\xE0A\x03\x12\x1A\x0A\x0Dreplica_count\x18\x0A \x01(\x05B\x03\xE0A\x03\x12\x18\x0A\x0Bshard_count\x18\x0B \x01(\x05B\x03\xE0A\x03\x12J\x0A\x0Bbackup_type\x18\x0C \x01(\x0E20.google.cloud.redis.cluster.v1.Backup.BackupTypeB\x03\xE0A\x03\x12?\x0A\x05state\x18\x0D \x01(\x0E2+.google.cloud.redis.cluster.v1.Backup.StateB\x03\xE0A\x03\x12K\x0A\x0Fencryption_info\x18\x0E \x01(\x0B2-.google.cloud.redis.cluster.v1.EncryptionInfoB\x03\xE0A\x03\x12\x18\x0A\x03uid\x18\x0F \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"G\x0A\x0ABackupType\x12\x1B\x0A\x17BACKUP_TYPE_UNSPECIFIED\x10\x00\x12\x0D\x0A\x09ON_DEMAND\x10\x01\x12\x0D\x0A\x09AUTOMATED\x10\x02\"U\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08CREATING\x10\x01\x12\x0A\x0A\x06ACTIVE\x10\x02\x12\x0C\x0A\x08DELETING\x10\x03\x12\x0D\x0A\x09SUSPENDED\x10\x04:\x92\x01\xEAA\x8E\x01\x0A\x1Bredis.googleapis.com/Backup\x12^projects/{project}/locations/{location}/backupCollections/{backup_collection}/backups/{backup}*\x07backups2\x06backup\"s\x0A\x0ABackupFile\x12\x16\x0A\x09file_name\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x17\x0A\x0Asize_bytes\x18\x02 \x01(\x03B\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\"\x84\x01\x0A\x14PscServiceAttachment\x12\x1F\x0A\x12service_attachment\x18\x01 \x01(\x09B\x03\xE0A\x03\x12K\x0A\x0Fconnection_type\x18\x03 \x01(\x0E2-.google.cloud.redis.cluster.v1.ConnectionTypeB\x03\xE0A\x03\"\xF4\x06\x0A\x1DCrossClusterReplicationConfig\x12^\x0A\x0Ccluster_role\x18\x01 \x01(\x0E2H.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.ClusterRole\x12c\x0A\x0Fprimary_cluster\x18\x02 \x01(\x0B2J.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster\x12f\x0A\x12secondary_clusters\x18\x03 \x03(\x0B2J.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster\x124\x0A\x0Bupdate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12`\x0A\x0Amembership\x18\x05 \x01(\x0B2G.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.MembershipB\x03\xE0A\x03\x1AU\x0A\x0DRemoteCluster\x122\x0A\x07cluster\x18\x01 \x01(\x09B!\xFAA\x1E\x0A\x1Credis.googleapis.com/Cluster\x12\x10\x0A\x03uid\x18\x02 \x01(\x09B\x03\xE0A\x03\x1A\xE3\x01\x0A\x0AMembership\x12h\x0A\x0Fprimary_cluster\x18\x01 \x01(\x0B2J.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteClusterB\x03\xE0A\x03\x12k\x0A\x12secondary_clusters\x18\x02 \x03(\x0B2J.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteClusterB\x03\xE0A\x03\"Q\x0A\x0BClusterRole\x12\x1C\x0A\x18CLUSTER_ROLE_UNSPECIFIED\x10\x00\x12\x08\x0A\x04NONE\x10\x01\x12\x0B\x0A\x07PRIMARY\x10\x02\x12\x0D\x0A\x09SECONDARY\x10\x03\"\xE8\x01\x0A\x18ClusterMaintenancePolicy\x124\x0A\x0Bcreate_time\x18\x01 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12`\x0A\x19weekly_maintenance_window\x18\x03 \x03(\x0B2=.google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow\"q\x0A\x1EClusterWeeklyMaintenanceWindow\x12#\x0A\x03day\x18\x01 \x01(\x0E2\x16.google.type.DayOfWeek\x12*\x0A\x0Astart_time\x18\x02 \x01(\x0B2\x16.google.type.TimeOfDay\"\x84\x01\x0A\x1AClusterMaintenanceSchedule\x123\x0A\x0Astart_time\x18\x01 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x121\x0A\x08end_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\"!\x0A\x09PscConfig\x12\x14\x0A\x07network\x18\x02 \x01(\x09B\x03\xE0A\x02\"\x7F\x0A\x11DiscoveryEndpoint\x12\x14\x0A\x07address\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x11\x0A\x04port\x18\x02 \x01(\x05B\x03\xE0A\x03\x12A\x0A\x0Apsc_config\x18\x03 \x01(\x0B2(.google.cloud.redis.cluster.v1.PscConfigB\x03\xE0A\x03\"\xDA\x03\x0A\x0DPscConnection\x12\x1E\x0A\x11psc_connection_id\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x1C\x0A\x07address\x18\x02 \x01(\x09B\x0B\xE0A\x02\xE2\x8C\xCF\xD7\x08\x02\x08\x02\x12F\x0A\x0Fforwarding_rule\x18\x03 \x01(\x09B-\xE0A\x02\xFAA'\x0A%compute.googleapis.com/ForwardingRule\x12\x17\x0A\x0Aproject_id\x18\x04 \x01(\x09B\x03\xE0A\x01\x127\x0A\x07network\x18\x05 \x01(\x09B&\xE0A\x02\xFAA \x0A\x1Ecompute.googleapis.com/Network\x12L\x0A\x12service_attachment\x18\x06 \x01(\x09B0\xE0A\x02\xFAA*\x0A(compute.googleapis.com/ServiceAttachment\x12V\x0A\x15psc_connection_status\x18\x08 \x01(\x0E22.google.cloud.redis.cluster.v1.PscConnectionStatusB\x03\xE0A\x03\x12K\x0A\x0Fconnection_type\x18\x0A \x01(\x0E2-.google.cloud.redis.cluster.v1.ConnectionTypeB\x03\xE0A\x03\"W\x0A\x0FClusterEndpoint\x12D\x0A\x0Bconnections\x18\x01 \x03(\x0B2/.google.cloud.redis.cluster.v1.ConnectionDetail\"\xB9\x01\x0A\x10ConnectionDetail\x12O\x0A\x13psc_auto_connection\x18\x01 \x01(\x0B20.google.cloud.redis.cluster.v1.PscAutoConnectionH\x00\x12F\x0A\x0Epsc_connection\x18\x02 \x01(\x0B2,.google.cloud.redis.cluster.v1.PscConnectionH\x00B\x0C\x0A\x0Aconnection\"\xDE\x03\x0A\x11PscAutoConnection\x12\x1E\x0A\x11psc_connection_id\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x1C\x0A\x07address\x18\x02 \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x02\x12F\x0A\x0Fforwarding_rule\x18\x03 \x01(\x09B-\xE0A\x03\xFAA'\x0A%compute.googleapis.com/ForwardingRule\x12\x17\x0A\x0Aproject_id\x18\x04 \x01(\x09B\x03\xE0A\x02\x127\x0A\x07network\x18\x05 \x01(\x09B&\xE0A\x02\xFAA \x0A\x1Ecompute.googleapis.com/Network\x12L\x0A\x12service_attachment\x18\x06 \x01(\x09B0\xE0A\x03\xFAA*\x0A(compute.googleapis.com/ServiceAttachment\x12V\x0A\x15psc_connection_status\x18\x08 \x01(\x0E22.google.cloud.redis.cluster.v1.PscConnectionStatusB\x03\xE0A\x03\x12K\x0A\x0Fconnection_type\x18\x09 \x01(\x0E2-.google.cloud.redis.cluster.v1.ConnectionTypeB\x03\xE0A\x03\"\x80\x02\x0A\x11OperationMetadata\x124\x0A\x0Bcreate_time\x18\x01 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x121\x0A\x08end_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x13\x0A\x06target\x18\x03 \x01(\x09B\x03\xE0A\x03\x12\x11\x0A\x04verb\x18\x04 \x01(\x09B\x03\xE0A\x03\x12\x1B\x0A\x0Estatus_message\x18\x05 \x01(\x09B\x03\xE0A\x03\x12#\x0A\x16requested_cancellation\x18\x06 \x01(\x08B\x03\xE0A\x03\x12\x18\x0A\x0Bapi_version\x18\x07 \x01(\x09B\x03\xE0A\x03\"\x85\x04\x0A\x14CertificateAuthority\x12l\x0A\x11managed_server_ca\x18\x01 \x01(\x0B2O.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthorityH\x00\x12\x11\x0A\x04name\x18\x02 \x01(\x09B\x03\xE0A\x08\x1A\xAD\x01\x0A\x1BManagedCertificateAuthority\x12k\x0A\x08ca_certs\x18\x01 \x03(\x0B2Y.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain\x1A!\x0A\x09CertChain\x12\x14\x0A\x0Ccertificates\x18\x01 \x03(\x09:\xAE\x01\xEAA\xAA\x01\x0A)redis.googleapis.com/CertificateAuthority\x12Oprojects/{project}/locations/{location}/clusters/{cluster}/certificateAuthority*\x16certificateAuthorities2\x14certificateAuthorityB\x0B\x0A\x09server_ca\"\x87\x07\x0A\x18ClusterPersistenceConfig\x12Z\x0A\x04mode\x18\x01 \x01(\x0E2G.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.PersistenceModeB\x03\xE0A\x01\x12Z\x0A\x0Ardb_config\x18\x02 \x01(\x0B2A.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfigB\x03\xE0A\x01\x12Z\x0A\x0Aaof_config\x18\x03 \x01(\x0B2A.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfigB\x03\xE0A\x01\x1A\xBA\x02\x0A\x09RDBConfig\x12r\x0A\x13rdb_snapshot_period\x18\x01 \x01(\x0E2P.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.SnapshotPeriodB\x03\xE0A\x01\x12@\x0A\x17rdb_snapshot_start_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x01\"w\x0A\x0ESnapshotPeriod\x12\x1F\x0A\x1BSNAPSHOT_PERIOD_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08ONE_HOUR\x10\x01\x12\x0D\x0A\x09SIX_HOURS\x10\x02\x12\x10\x0A\x0CTWELVE_HOURS\x10\x03\x12\x15\x0A\x11TWENTY_FOUR_HOURS\x10\x04\x1A\xC4\x01\x0A\x09AOFConfig\x12h\x0A\x0Cappend_fsync\x18\x01 \x01(\x0E2M.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.AppendFsyncB\x03\xE0A\x01\"M\x0A\x0BAppendFsync\x12\x1C\x0A\x18APPEND_FSYNC_UNSPECIFIED\x10\x00\x12\x06\x0A\x02NO\x10\x01\x12\x0C\x0A\x08EVERYSEC\x10\x02\x12\x0A\x0A\x06ALWAYS\x10\x03\"S\x0A\x0FPersistenceMode\x12 \x0A\x1CPERSISTENCE_MODE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08DISABLED\x10\x01\x12\x07\x0A\x03RDB\x10\x02\x12\x07\x0A\x03AOF\x10\x03\"\xEB\x01\x0A\x16ZoneDistributionConfig\x12]\x0A\x04mode\x18\x01 \x01(\x0E2J.google.cloud.redis.cluster.v1.ZoneDistributionConfig.ZoneDistributionModeB\x03\xE0A\x01\x12\x11\x0A\x04zone\x18\x02 \x01(\x09B\x03\xE0A\x01\"_\x0A\x14ZoneDistributionMode\x12&\x0A\"ZONE_DISTRIBUTION_MODE_UNSPECIFIED\x10\x00\x12\x0E\x0A\x0AMULTI_ZONE\x10\x01\x12\x0F\x0A\x0BSINGLE_ZONE\x10\x02\"\xD7\x02\x0A#RescheduleClusterMaintenanceRequest\x122\x0A\x04name\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Credis.googleapis.com/Cluster\x12o\x0A\x0Freschedule_type\x18\x02 \x01(\x0E2Q.google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest.RescheduleTypeB\x03\xE0A\x02\x126\x0A\x0Dschedule_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x01\"S\x0A\x0ERescheduleType\x12\x1F\x0A\x1BRESCHEDULE_TYPE_UNSPECIFIED\x10\x00\x12\x0D\x0A\x09IMMEDIATE\x10\x01\x12\x11\x0A\x0DSPECIFIC_TIME\x10\x03\"\xFA\x04\x0A\x0EEncryptionInfo\x12P\x0A\x0Fencryption_type\x18\x01 \x01(\x0E22.google.cloud.redis.cluster.v1.EncryptionInfo.TypeB\x03\xE0A\x03\x12J\x0A\x10kms_key_versions\x18\x02 \x03(\x09B0\xE0A\x03\xFAA*\x0A(cloudkms.googleapis.com/CryptoKeyVersion\x12]\x0A\x15kms_key_primary_state\x18\x03 \x01(\x0E29.google.cloud.redis.cluster.v1.EncryptionInfo.KmsKeyStateB\x03\xE0A\x03\x129\x0A\x10last_update_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\"\\\x0A\x04Type\x12\x14\x0A\x10TYPE_UNSPECIFIED\x10\x00\x12\x1D\x0A\x19GOOGLE_DEFAULT_ENCRYPTION\x10\x01\x12\x1F\x0A\x1BCUSTOMER_MANAGED_ENCRYPTION\x10\x02\"\xD1\x01\x0A\x0BKmsKeyState\x12\x1D\x0A\x19KMS_KEY_STATE_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07ENABLED\x10\x01\x12\x15\x0A\x11PERMISSION_DENIED\x10\x02\x12\x0C\x0A\x08DISABLED\x10\x03\x12\x0D\x0A\x09DESTROYED\x10\x04\x12\x15\x0A\x11DESTROY_SCHEDULED\x10\x05\x12 \x0A\x1CEKM_KEY_UNREACHABLE_DETECTED\x10\x06\x12\x14\x0A\x10BILLING_DISABLED\x10\x07\x12\x13\x0A\x0FUNKNOWN_FAILURE\x10\x08*\x83\x01\x0A\x13PscConnectionStatus\x12%\x0A!PSC_CONNECTION_STATUS_UNSPECIFIED\x10\x00\x12 \x0A\x1CPSC_CONNECTION_STATUS_ACTIVE\x10\x01\x12#\x0A\x1FPSC_CONNECTION_STATUS_NOT_FOUND\x10\x02*^\x0A\x11AuthorizationMode\x12\x19\x0A\x15AUTH_MODE_UNSPECIFIED\x10\x00\x12\x16\x0A\x12AUTH_MODE_IAM_AUTH\x10\x01\x12\x16\x0A\x12AUTH_MODE_DISABLED\x10\x02*\x8F\x01\x0A\x08NodeType\x12\x19\x0A\x15NODE_TYPE_UNSPECIFIED\x10\x00\x12\x1A\x0A\x16REDIS_SHARED_CORE_NANO\x10\x01\x12\x18\x0A\x14REDIS_HIGHMEM_MEDIUM\x10\x02\x12\x18\x0A\x14REDIS_HIGHMEM_XLARGE\x10\x03\x12\x18\x0A\x14REDIS_STANDARD_SMALL\x10\x04*\x99\x01\x0A\x15TransitEncryptionMode\x12'\x0A#TRANSIT_ENCRYPTION_MODE_UNSPECIFIED\x10\x00\x12\$\x0A TRANSIT_ENCRYPTION_MODE_DISABLED\x10\x01\x121\x0A-TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION\x10\x02*\x89\x01\x0A\x0EConnectionType\x12\x1F\x0A\x1BCONNECTION_TYPE_UNSPECIFIED\x10\x00\x12\x1D\x0A\x19CONNECTION_TYPE_DISCOVERY\x10\x01\x12\x1B\x0A\x17CONNECTION_TYPE_PRIMARY\x10\x02\x12\x1A\x0A\x16CONNECTION_TYPE_READER\x10\x032\x93\x18\x0A\x11CloudRedisCluster\x12\xB6\x01\x0A\x0CListClusters\x122.google.cloud.redis.cluster.v1.ListClustersRequest\x1A3.google.cloud.redis.cluster.v1.ListClustersResponse\"=\xDAA\x06parent\x82\xD3\xE4\x93\x02.\x12,/v1/{parent=projects/*/locations/*}/clusters\x12\xA3\x01\x0A\x0AGetCluster\x120.google.cloud.redis.cluster.v1.GetClusterRequest\x1A&.google.cloud.redis.cluster.v1.Cluster\";\xDAA\x04name\x82\xD3\xE4\x93\x02.\x12,/v1/{name=projects/*/locations/*/clusters/*}\x12\xE1\x01\x0A\x0DUpdateCluster\x123.google.cloud.redis.cluster.v1.UpdateClusterRequest\x1A\x1D.google.longrunning.Operation\"|\xCAA\x1E\x0A\x07Cluster\x12\x13google.protobuf.Any\xDAA\x13cluster,update_mask\x82\xD3\xE4\x93\x02?24/v1/{cluster.name=projects/*/locations/*/clusters/*}:\x07cluster\x12\xCF\x01\x0A\x0DDeleteCluster\x123.google.cloud.redis.cluster.v1.DeleteClusterRequest\x1A\x1D.google.longrunning.Operation\"j\xCAA,\x0A\x15google.protobuf.Empty\x12\x13google.protobuf.Any\xDAA\x04name\x82\xD3\xE4\x93\x02.*,/v1/{name=projects/*/locations/*/clusters/*}\x12\xDF\x01\x0A\x0DCreateCluster\x123.google.cloud.redis.cluster.v1.CreateClusterRequest\x1A\x1D.google.longrunning.Operation\"z\xCAA\x1E\x0A\x07Cluster\x12\x13google.protobuf.Any\xDAA\x19parent,cluster,cluster_id\x82\xD3\xE4\x93\x027\",/v1/{parent=projects/*/locations/*}/clusters:\x07cluster\x12\xED\x01\x0A\x1EGetClusterCertificateAuthority\x12D.google.cloud.redis.cluster.v1.GetClusterCertificateAuthorityRequest\x1A3.google.cloud.redis.cluster.v1.CertificateAuthority\"P\xDAA\x04name\x82\xD3\xE4\x93\x02C\x12A/v1/{name=projects/*/locations/*/clusters/*/certificateAuthority}\x12\x9E\x02\x0A\x1CRescheduleClusterMaintenance\x12B.google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest\x1A\x1D.google.longrunning.Operation\"\x9A\x01\xCAA\x1E\x0A\x07Cluster\x12\x13google.protobuf.Any\xDAA\"name,reschedule_type,schedule_time\x82\xD3\xE4\x93\x02N\"I/v1/{name=projects/*/locations/*/clusters/*}:rescheduleClusterMaintenance:\x01*\x12\xDA\x01\x0A\x15ListBackupCollections\x12;.google.cloud.redis.cluster.v1.ListBackupCollectionsRequest\x1A<.google.cloud.redis.cluster.v1.ListBackupCollectionsResponse\"F\xDAA\x06parent\x82\xD3\xE4\x93\x027\x125/v1/{parent=projects/*/locations/*}/backupCollections\x12\xC7\x01\x0A\x13GetBackupCollection\x129.google.cloud.redis.cluster.v1.GetBackupCollectionRequest\x1A/.google.cloud.redis.cluster.v1.BackupCollection\"D\xDAA\x04name\x82\xD3\xE4\x93\x027\x125/v1/{name=projects/*/locations/*/backupCollections/*}\x12\xC6\x01\x0A\x0BListBackups\x121.google.cloud.redis.cluster.v1.ListBackupsRequest\x1A2.google.cloud.redis.cluster.v1.ListBackupsResponse\"P\xDAA\x06parent\x82\xD3\xE4\x93\x02A\x12?/v1/{parent=projects/*/locations/*/backupCollections/*}/backups\x12\xB3\x01\x0A\x09GetBackup\x12/.google.cloud.redis.cluster.v1.GetBackupRequest\x1A%.google.cloud.redis.cluster.v1.Backup\"N\xDAA\x04name\x82\xD3\xE4\x93\x02A\x12?/v1/{name=projects/*/locations/*/backupCollections/*/backups/*}\x12\xE0\x01\x0A\x0CDeleteBackup\x122.google.cloud.redis.cluster.v1.DeleteBackupRequest\x1A\x1D.google.longrunning.Operation\"}\xCAA,\x0A\x15google.protobuf.Empty\x12\x13google.protobuf.Any\xDAA\x04name\x82\xD3\xE4\x93\x02A*?/v1/{name=projects/*/locations/*/backupCollections/*/backups/*}\x12\xD4\x01\x0A\x0CExportBackup\x122.google.cloud.redis.cluster.v1.ExportBackupRequest\x1A\x1D.google.longrunning.Operation\"q\xCAA\x1D\x0A\x06Backup\x12\x13google.protobuf.Any\x82\xD3\xE4\x93\x02K\"F/v1/{name=projects/*/locations/*/backupCollections/*/backups/*}:export:\x01*\x12\xCB\x01\x0A\x0DBackupCluster\x123.google.cloud.redis.cluster.v1.BackupClusterRequest\x1A\x1D.google.longrunning.Operation\"f\xCAA\x1E\x0A\x07Cluster\x12\x13google.protobuf.Any\xDAA\x04name\x82\xD3\xE4\x93\x028\"3/v1/{name=projects/*/locations/*/clusters/*}:backup:\x01*\x1AH\xCAA\x14redis.googleapis.com\xD2A.https://www.googleapis.com/auth/cloud-platformB\xFF\x05\x0A!com.google.cloud.redis.cluster.v1B\x16CloudRedisClusterProtoP\x01Z;cloud.google.com/go/redis/cluster/apiv1/clusterpb;clusterpb\xEA\x02!Google::Cloud::Redis::Cluster::V1\xEAAn\x0A%compute.googleapis.com/ForwardingRule\x12Eprojects/{project}/regions/{region}/forwardingRules/{forwarding_rule}\xEAAN\x0A\x1Ecompute.googleapis.com/Network\x12,projects/{project}/global/networks/{network}\xEAAw\x0A(compute.googleapis.com/ServiceAttachment\x12Kprojects/{project}/regions/{region}/serviceAttachments/{service_attachment}\xEAAx\x0A!cloudkms.googleapis.com/CryptoKey\x12Sprojects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}\xEAA\xA6\x01\x0A(cloudkms.googleapis.com/CryptoKeyVersion\x12zprojects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}b\x06proto3" + "\x0A\xEE\x96\x01\x0A7google/cloud/redis/cluster/v1/cloud_redis_cluster.proto\x12\x1Dgoogle.cloud.redis.cluster.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x1Bgoogle/api/field_info.proto\x1A\x19google/api/resource.proto\x1A#google/longrunning/operations.proto\x1A\x19google/protobuf/any.proto\x1A\x1Egoogle/protobuf/duration.proto\x1A\x1Bgoogle/protobuf/empty.proto\x1A google/protobuf/field_mask.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\x1A\x1Bgoogle/type/dayofweek.proto\x1A\x1Bgoogle/type/timeofday.proto\"\xBC\x01\x0A\x14CreateClusterRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x17\x0A\x0Acluster_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x12<\x0A\x07cluster\x18\x03 \x01(\x0B2&.google.cloud.redis.cluster.v1.ClusterB\x03\xE0A\x02\x12\x12\x0A\x0Arequest_id\x18\x04 \x01(\x09\"w\x0A\x13ListClustersRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x11\x0A\x09page_size\x18\x02 \x01(\x05\x12\x12\x0A\x0Apage_token\x18\x03 \x01(\x09\"~\x0A\x14ListClustersResponse\x128\x0A\x08clusters\x18\x01 \x03(\x0B2&.google.cloud.redis.cluster.v1.Cluster\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x13\x0A\x0Bunreachable\x18\x03 \x03(\x09\"\x9E\x01\x0A\x14UpdateClusterRequest\x124\x0A\x0Bupdate_mask\x18\x01 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x12<\x0A\x07cluster\x18\x02 \x01(\x0B2&.google.cloud.redis.cluster.v1.ClusterB\x03\xE0A\x02\x12\x12\x0A\x0Arequest_id\x18\x03 \x01(\x09\"G\x0A\x11GetClusterRequest\x122\x0A\x04name\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Credis.googleapis.com/Cluster\"^\x0A\x14DeleteClusterRequest\x122\x0A\x04name\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Credis.googleapis.com/Cluster\x12\x12\x0A\x0Arequest_id\x18\x02 \x01(\x09\"h\x0A%GetClusterCertificateAuthorityRequest\x12?\x0A\x04name\x18\x01 \x01(\x09B1\xE0A\x02\xFAA+\x0A)redis.googleapis.com/CertificateAuthority\"\x8E\x01\x0A\x1CListBackupCollectionsRequest\x12=\x0A\x06parent\x18\x01 \x01(\x09B-\xE0A\x02\xFAA'\x12%redis.googleapis.com/BackupCollection\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\"\x9A\x01\x0A\x1DListBackupCollectionsResponse\x12K\x0A\x12backup_collections\x18\x01 \x03(\x0B2/.google.cloud.redis.cluster.v1.BackupCollection\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x13\x0A\x0Bunreachable\x18\x03 \x03(\x09\"Y\x0A\x1AGetBackupCollectionRequest\x12;\x0A\x04name\x18\x01 \x01(\x09B-\xE0A\x02\xFAA'\x0A%redis.googleapis.com/BackupCollection\"z\x0A\x12ListBackupsRequest\x123\x0A\x06parent\x18\x01 \x01(\x09B#\xE0A\x02\xFAA\x1D\x12\x1Bredis.googleapis.com/Backup\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\"{\x0A\x13ListBackupsResponse\x126\x0A\x07backups\x18\x01 \x03(\x0B2%.google.cloud.redis.cluster.v1.Backup\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x13\x0A\x0Bunreachable\x18\x03 \x03(\x09\"E\x0A\x10GetBackupRequest\x121\x0A\x04name\x18\x01 \x01(\x09B#\xE0A\x02\xFAA\x1D\x0A\x1Bredis.googleapis.com/Backup\"i\x0A\x13DeleteBackupRequest\x121\x0A\x04name\x18\x01 \x01(\x09B#\xE0A\x02\xFAA\x1D\x0A\x1Bredis.googleapis.com/Backup\x12\x1F\x0A\x0Arequest_id\x18\x02 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"m\x0A\x13ExportBackupRequest\x12\x14\x0A\x0Agcs_bucket\x18\x03 \x01(\x09H\x00\x121\x0A\x04name\x18\x01 \x01(\x09B#\xE0A\x02\xFAA\x1D\x0A\x1Bredis.googleapis.com/BackupB\x0D\x0A\x0Bdestination\"\xA2\x01\x0A\x14BackupClusterRequest\x122\x0A\x04name\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Credis.googleapis.com/Cluster\x12+\x0A\x03ttl\x18\x02 \x01(\x0B2\x19.google.protobuf.DurationB\x03\xE0A\x01\x12\x1B\x0A\x09backup_id\x18\x03 \x01(\x09B\x03\xE0A\x01H\x00\x88\x01\x01B\x0C\x0A\x0A_backup_id\"\xD9\x18\x0A\x07Cluster\x12Q\x0A\x0Agcs_source\x18\" \x01(\x0B26.google.cloud.redis.cluster.v1.Cluster.GcsBackupSourceB\x03\xE0A\x01H\x00\x12`\x0A\x15managed_backup_source\x18# \x01(\x0B2:.google.cloud.redis.cluster.v1.Cluster.ManagedBackupSourceB\x03\xE0A\x01H\x00\x12\x14\x0A\x04name\x18\x01 \x01(\x09B\x06\xE0A\x02\xE0A\x08\x124\x0A\x0Bcreate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12@\x0A\x05state\x18\x04 \x01(\x0E2,.google.cloud.redis.cluster.v1.Cluster.StateB\x03\xE0A\x03\x12\x10\x0A\x03uid\x18\x05 \x01(\x09B\x03\xE0A\x03\x12\x1F\x0A\x0Dreplica_count\x18\x08 \x01(\x05B\x03\xE0A\x01H\x01\x88\x01\x01\x12Q\x0A\x12authorization_mode\x18\x0B \x01(\x0E20.google.cloud.redis.cluster.v1.AuthorizationModeB\x03\xE0A\x01\x12Z\x0A\x17transit_encryption_mode\x18\x0C \x01(\x0E24.google.cloud.redis.cluster.v1.TransitEncryptionModeB\x03\xE0A\x01\x12\x19\x0A\x07size_gb\x18\x0D \x01(\x05B\x03\xE0A\x03H\x02\x88\x01\x01\x12\x1D\x0A\x0Bshard_count\x18\x0E \x01(\x05B\x03\xE0A\x01H\x03\x88\x01\x01\x12B\x0A\x0Bpsc_configs\x18\x0F \x03(\x0B2(.google.cloud.redis.cluster.v1.PscConfigB\x03\xE0A\x01\x12R\x0A\x13discovery_endpoints\x18\x10 \x03(\x0B20.google.cloud.redis.cluster.v1.DiscoveryEndpointB\x03\xE0A\x03\x12J\x0A\x0Fpsc_connections\x18\x11 \x03(\x0B2,.google.cloud.redis.cluster.v1.PscConnectionB\x03\xE0A\x03\x12I\x0A\x0Astate_info\x18\x12 \x01(\x0B20.google.cloud.redis.cluster.v1.Cluster.StateInfoB\x03\xE0A\x03\x12?\x0A\x09node_type\x18\x13 \x01(\x0E2'.google.cloud.redis.cluster.v1.NodeTypeB\x03\xE0A\x01\x12X\x0A\x12persistence_config\x18\x14 \x01(\x0B27.google.cloud.redis.cluster.v1.ClusterPersistenceConfigB\x03\xE0A\x01\x12T\x0A\x0Dredis_configs\x18\x15 \x03(\x0B28.google.cloud.redis.cluster.v1.Cluster.RedisConfigsEntryB\x03\xE0A\x01\x12!\x0A\x0Fprecise_size_gb\x18\x16 \x01(\x01B\x03\xE0A\x03H\x04\x88\x01\x01\x12\\\x0A\x18zone_distribution_config\x18\x17 \x01(\x0B25.google.cloud.redis.cluster.v1.ZoneDistributionConfigB\x03\xE0A\x01\x12k\x0A cross_cluster_replication_config\x18\x18 \x01(\x0B2<.google.cloud.redis.cluster.v1.CrossClusterReplicationConfigB\x03\xE0A\x01\x12-\x0A\x1Bdeletion_protection_enabled\x18\x19 \x01(\x08B\x03\xE0A\x01H\x05\x88\x01\x01\x12]\x0A\x12maintenance_policy\x18\x1A \x01(\x0B27.google.cloud.redis.cluster.v1.ClusterMaintenancePolicyB\x03\xE0A\x01H\x06\x88\x01\x01\x12a\x0A\x14maintenance_schedule\x18\x1B \x01(\x0B29.google.cloud.redis.cluster.v1.ClusterMaintenanceScheduleB\x03\xE0A\x03H\x07\x88\x01\x01\x12Y\x0A\x17psc_service_attachments\x18\x1E \x03(\x0B23.google.cloud.redis.cluster.v1.PscServiceAttachmentB\x03\xE0A\x03\x12N\x0A\x11cluster_endpoints\x18\$ \x03(\x0B2..google.cloud.redis.cluster.v1.ClusterEndpointB\x03\xE0A\x01\x12P\x0A\x11backup_collection\x18' \x01(\x09B0\xE0A\x01\xE0A\x03\xFAA'\x0A%redis.googleapis.com/BackupCollectionH\x08\x88\x01\x01\x12?\x0A\x07kms_key\x18( \x01(\x09B)\xE0A\x01\xFAA#\x0A!cloudkms.googleapis.com/CryptoKeyH\x09\x88\x01\x01\x12Z\x0A\x17automated_backup_config\x18* \x01(\x0B24.google.cloud.redis.cluster.v1.AutomatedBackupConfigB\x03\xE0A\x01\x12K\x0A\x0Fencryption_info\x18+ \x01(\x0B2-.google.cloud.redis.cluster.v1.EncryptionInfoB\x03\xE0A\x03\x12M\x0A\x0Eserver_ca_mode\x185 \x01(\x0E2+.google.cloud.redis.cluster.v1.ServerCaModeB\x03\xE0A\x01H\x0A\x88\x01\x01\x12D\x0A\x0Eserver_ca_pool\x186 \x01(\x09B'\xE0A\x01\xFAA!\x0A\x1Fprivateca.googleapis.com/CaPoolH\x0B\x88\x01\x01\x12.\x0A\x19rotate_server_certificate\x187 \x01(\x08B\x06\xE0A\x01\xE0A\x04H\x0C\x88\x01\x01\x1A\xEA\x01\x0A\x09StateInfo\x12R\x0A\x0Bupdate_info\x18\x01 \x01(\x0B2;.google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfoH\x00\x1A\x80\x01\x0A\x0AUpdateInfo\x12\x1F\x0A\x12target_shard_count\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12!\x0A\x14target_replica_count\x18\x02 \x01(\x05H\x01\x88\x01\x01B\x15\x0A\x13_target_shard_countB\x17\x0A\x15_target_replica_countB\x06\x0A\x04info\x1A\$\x0A\x0FGcsBackupSource\x12\x11\x0A\x04uris\x18\x01 \x03(\x09B\x03\xE0A\x01\x1A*\x0A\x13ManagedBackupSource\x12\x13\x0A\x06backup\x18\x01 \x01(\x09B\x03\xE0A\x01\x1A3\x0A\x11RedisConfigsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\"T\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08CREATING\x10\x01\x12\x0A\x0A\x06ACTIVE\x10\x02\x12\x0C\x0A\x08UPDATING\x10\x03\x12\x0C\x0A\x08DELETING\x10\x04:p\xEAAm\x0A\x1Credis.googleapis.com/Cluster\x12:projects/{project}/locations/{location}/clusters/{cluster}*\x08clusters2\x07clusterB\x10\x0A\x0Eimport_sourcesB\x10\x0A\x0E_replica_countB\x0A\x0A\x08_size_gbB\x0E\x0A\x0C_shard_countB\x12\x0A\x10_precise_size_gbB\x1E\x0A\x1C_deletion_protection_enabledB\x15\x0A\x13_maintenance_policyB\x17\x0A\x15_maintenance_scheduleB\x14\x0A\x12_backup_collectionB\x0A\x0A\x08_kms_keyB\x11\x0A\x0F_server_ca_modeB\x11\x0A\x0F_server_ca_poolB\x1C\x0A\x1A_rotate_server_certificate\"\x85\x04\x0A\x15AutomatedBackupConfig\x12t\x0A\x18fixed_frequency_schedule\x18\x02 \x01(\x0B2K.google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencyScheduleB\x03\xE0A\x01H\x00\x12l\x0A\x15automated_backup_mode\x18\x01 \x01(\x0E2H.google.cloud.redis.cluster.v1.AutomatedBackupConfig.AutomatedBackupModeB\x03\xE0A\x01\x126\x0A\x09retention\x18\x03 \x01(\x0B2\x19.google.protobuf.DurationB\x03\xE0A\x01H\x01\x88\x01\x01\x1A]\x0A\x16FixedFrequencySchedule\x124\x0A\x0Astart_time\x18\x02 \x01(\x0B2\x16.google.type.TimeOfDayB\x03\xE0A\x02H\x00\x88\x01\x01B\x0D\x0A\x0B_start_time\"W\x0A\x13AutomatedBackupMode\x12%\x0A!AUTOMATED_BACKUP_MODE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08DISABLED\x10\x01\x12\x0B\x0A\x07ENABLED\x10\x02B\x0A\x0A\x08scheduleB\x0C\x0A\x0A_retention\"\xF6\x02\x0A\x10BackupCollection\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12 \x0A\x0Bcluster_uid\x18\x03 \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x01\x125\x0A\x07cluster\x18\x04 \x01(\x09B\$\xE0A\x03\xFAA\x1E\x0A\x1Credis.googleapis.com/Cluster\x12:\x0A\x07kms_key\x18\x05 \x01(\x09B)\xE0A\x03\xFAA#\x0A!cloudkms.googleapis.com/CryptoKey\x12\x18\x0A\x03uid\x18\x06 \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x01:\x9F\x01\xEAA\x9B\x01\x0A%redis.googleapis.com/BackupCollection\x12Mprojects/{project}/locations/{location}/backupCollections/{backup_collection}*\x11backupCollections2\x10backupCollection\"\x82\x08\x0A\x06Backup\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x124\x0A\x0Bcreate_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x125\x0A\x07cluster\x18\x03 \x01(\x09B\$\xE0A\x03\xFAA\x1E\x0A\x1Credis.googleapis.com/Cluster\x12 \x0A\x0Bcluster_uid\x18\x04 \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x01\x12\x1D\x0A\x10total_size_bytes\x18\x05 \x01(\x03B\x03\xE0A\x03\x124\x0A\x0Bexpire_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x1B\x0A\x0Eengine_version\x18\x07 \x01(\x09B\x03\xE0A\x03\x12D\x0A\x0Cbackup_files\x18\x08 \x03(\x0B2).google.cloud.redis.cluster.v1.BackupFileB\x03\xE0A\x03\x12?\x0A\x09node_type\x18\x09 \x01(\x0E2'.google.cloud.redis.cluster.v1.NodeTypeB\x03\xE0A\x03\x12\x1A\x0A\x0Dreplica_count\x18\x0A \x01(\x05B\x03\xE0A\x03\x12\x18\x0A\x0Bshard_count\x18\x0B \x01(\x05B\x03\xE0A\x03\x12J\x0A\x0Bbackup_type\x18\x0C \x01(\x0E20.google.cloud.redis.cluster.v1.Backup.BackupTypeB\x03\xE0A\x03\x12?\x0A\x05state\x18\x0D \x01(\x0E2+.google.cloud.redis.cluster.v1.Backup.StateB\x03\xE0A\x03\x12K\x0A\x0Fencryption_info\x18\x0E \x01(\x0B2-.google.cloud.redis.cluster.v1.EncryptionInfoB\x03\xE0A\x03\x12\x18\x0A\x03uid\x18\x0F \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"G\x0A\x0ABackupType\x12\x1B\x0A\x17BACKUP_TYPE_UNSPECIFIED\x10\x00\x12\x0D\x0A\x09ON_DEMAND\x10\x01\x12\x0D\x0A\x09AUTOMATED\x10\x02\"U\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08CREATING\x10\x01\x12\x0A\x0A\x06ACTIVE\x10\x02\x12\x0C\x0A\x08DELETING\x10\x03\x12\x0D\x0A\x09SUSPENDED\x10\x04:\x92\x01\xEAA\x8E\x01\x0A\x1Bredis.googleapis.com/Backup\x12^projects/{project}/locations/{location}/backupCollections/{backup_collection}/backups/{backup}*\x07backups2\x06backup\"s\x0A\x0ABackupFile\x12\x16\x0A\x09file_name\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x17\x0A\x0Asize_bytes\x18\x02 \x01(\x03B\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\"\x84\x01\x0A\x14PscServiceAttachment\x12\x1F\x0A\x12service_attachment\x18\x01 \x01(\x09B\x03\xE0A\x03\x12K\x0A\x0Fconnection_type\x18\x03 \x01(\x0E2-.google.cloud.redis.cluster.v1.ConnectionTypeB\x03\xE0A\x03\"\xF4\x06\x0A\x1DCrossClusterReplicationConfig\x12^\x0A\x0Ccluster_role\x18\x01 \x01(\x0E2H.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.ClusterRole\x12c\x0A\x0Fprimary_cluster\x18\x02 \x01(\x0B2J.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster\x12f\x0A\x12secondary_clusters\x18\x03 \x03(\x0B2J.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster\x124\x0A\x0Bupdate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12`\x0A\x0Amembership\x18\x05 \x01(\x0B2G.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.MembershipB\x03\xE0A\x03\x1AU\x0A\x0DRemoteCluster\x122\x0A\x07cluster\x18\x01 \x01(\x09B!\xFAA\x1E\x0A\x1Credis.googleapis.com/Cluster\x12\x10\x0A\x03uid\x18\x02 \x01(\x09B\x03\xE0A\x03\x1A\xE3\x01\x0A\x0AMembership\x12h\x0A\x0Fprimary_cluster\x18\x01 \x01(\x0B2J.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteClusterB\x03\xE0A\x03\x12k\x0A\x12secondary_clusters\x18\x02 \x03(\x0B2J.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteClusterB\x03\xE0A\x03\"Q\x0A\x0BClusterRole\x12\x1C\x0A\x18CLUSTER_ROLE_UNSPECIFIED\x10\x00\x12\x08\x0A\x04NONE\x10\x01\x12\x0B\x0A\x07PRIMARY\x10\x02\x12\x0D\x0A\x09SECONDARY\x10\x03\"\xE8\x01\x0A\x18ClusterMaintenancePolicy\x124\x0A\x0Bcreate_time\x18\x01 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12`\x0A\x19weekly_maintenance_window\x18\x03 \x03(\x0B2=.google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow\"q\x0A\x1EClusterWeeklyMaintenanceWindow\x12#\x0A\x03day\x18\x01 \x01(\x0E2\x16.google.type.DayOfWeek\x12*\x0A\x0Astart_time\x18\x02 \x01(\x0B2\x16.google.type.TimeOfDay\"\x84\x01\x0A\x1AClusterMaintenanceSchedule\x123\x0A\x0Astart_time\x18\x01 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x121\x0A\x08end_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\"!\x0A\x09PscConfig\x12\x14\x0A\x07network\x18\x02 \x01(\x09B\x03\xE0A\x02\"\x7F\x0A\x11DiscoveryEndpoint\x12\x14\x0A\x07address\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x11\x0A\x04port\x18\x02 \x01(\x05B\x03\xE0A\x03\x12A\x0A\x0Apsc_config\x18\x03 \x01(\x0B2(.google.cloud.redis.cluster.v1.PscConfigB\x03\xE0A\x03\"\xDA\x03\x0A\x0DPscConnection\x12\x1E\x0A\x11psc_connection_id\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x1C\x0A\x07address\x18\x02 \x01(\x09B\x0B\xE0A\x02\xE2\x8C\xCF\xD7\x08\x02\x08\x02\x12F\x0A\x0Fforwarding_rule\x18\x03 \x01(\x09B-\xE0A\x02\xFAA'\x0A%compute.googleapis.com/ForwardingRule\x12\x17\x0A\x0Aproject_id\x18\x04 \x01(\x09B\x03\xE0A\x01\x127\x0A\x07network\x18\x05 \x01(\x09B&\xE0A\x02\xFAA \x0A\x1Ecompute.googleapis.com/Network\x12L\x0A\x12service_attachment\x18\x06 \x01(\x09B0\xE0A\x02\xFAA*\x0A(compute.googleapis.com/ServiceAttachment\x12V\x0A\x15psc_connection_status\x18\x08 \x01(\x0E22.google.cloud.redis.cluster.v1.PscConnectionStatusB\x03\xE0A\x03\x12K\x0A\x0Fconnection_type\x18\x0A \x01(\x0E2-.google.cloud.redis.cluster.v1.ConnectionTypeB\x03\xE0A\x03\"W\x0A\x0FClusterEndpoint\x12D\x0A\x0Bconnections\x18\x01 \x03(\x0B2/.google.cloud.redis.cluster.v1.ConnectionDetail\"\xB9\x01\x0A\x10ConnectionDetail\x12O\x0A\x13psc_auto_connection\x18\x01 \x01(\x0B20.google.cloud.redis.cluster.v1.PscAutoConnectionH\x00\x12F\x0A\x0Epsc_connection\x18\x02 \x01(\x0B2,.google.cloud.redis.cluster.v1.PscConnectionH\x00B\x0C\x0A\x0Aconnection\"\xDE\x03\x0A\x11PscAutoConnection\x12\x1E\x0A\x11psc_connection_id\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x1C\x0A\x07address\x18\x02 \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x02\x12F\x0A\x0Fforwarding_rule\x18\x03 \x01(\x09B-\xE0A\x03\xFAA'\x0A%compute.googleapis.com/ForwardingRule\x12\x17\x0A\x0Aproject_id\x18\x04 \x01(\x09B\x03\xE0A\x02\x127\x0A\x07network\x18\x05 \x01(\x09B&\xE0A\x02\xFAA \x0A\x1Ecompute.googleapis.com/Network\x12L\x0A\x12service_attachment\x18\x06 \x01(\x09B0\xE0A\x03\xFAA*\x0A(compute.googleapis.com/ServiceAttachment\x12V\x0A\x15psc_connection_status\x18\x08 \x01(\x0E22.google.cloud.redis.cluster.v1.PscConnectionStatusB\x03\xE0A\x03\x12K\x0A\x0Fconnection_type\x18\x09 \x01(\x0E2-.google.cloud.redis.cluster.v1.ConnectionTypeB\x03\xE0A\x03\"\xFE\x04\x0A\"SharedRegionalCertificateAuthority\x12\x82\x01\x0A\x11managed_server_ca\x18\x02 \x01(\x0B2e.google.cloud.redis.cluster.v1.SharedRegionalCertificateAuthority.RegionalManagedCertificateAuthorityH\x00\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x1A\xDC\x01\x0A#RegionalManagedCertificateAuthority\x12\x89\x01\x0A\x08ca_certs\x18\x01 \x03(\x0B2w.google.cloud.redis.cluster.v1.SharedRegionalCertificateAuthority.RegionalManagedCertificateAuthority.RegionalCertChain\x1A)\x0A\x11RegionalCertChain\x12\x14\x0A\x0Ccertificates\x18\x01 \x03(\x09:\xD3\x01\xEAA\xCF\x01\x0A7redis.googleapis.com/SharedRegionalCertificateAuthority\x12Jprojects/{project}/locations/{location}/sharedRegionalCertificateAuthority*\$sharedRegionalCertificateAuthorities2\"sharedRegionalCertificateAuthorityB\x0B\x0A\x09server_ca\"}\x0A,GetSharedRegionalCertificateAuthorityRequest\x12M\x0A\x04name\x18\x01 \x01(\x09B?\xE0A\x02\xFAA9\x0A7redis.googleapis.com/SharedRegionalCertificateAuthority\"\x80\x02\x0A\x11OperationMetadata\x124\x0A\x0Bcreate_time\x18\x01 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x121\x0A\x08end_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x13\x0A\x06target\x18\x03 \x01(\x09B\x03\xE0A\x03\x12\x11\x0A\x04verb\x18\x04 \x01(\x09B\x03\xE0A\x03\x12\x1B\x0A\x0Estatus_message\x18\x05 \x01(\x09B\x03\xE0A\x03\x12#\x0A\x16requested_cancellation\x18\x06 \x01(\x08B\x03\xE0A\x03\x12\x18\x0A\x0Bapi_version\x18\x07 \x01(\x09B\x03\xE0A\x03\"\x85\x04\x0A\x14CertificateAuthority\x12l\x0A\x11managed_server_ca\x18\x01 \x01(\x0B2O.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthorityH\x00\x12\x11\x0A\x04name\x18\x02 \x01(\x09B\x03\xE0A\x08\x1A\xAD\x01\x0A\x1BManagedCertificateAuthority\x12k\x0A\x08ca_certs\x18\x01 \x03(\x0B2Y.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain\x1A!\x0A\x09CertChain\x12\x14\x0A\x0Ccertificates\x18\x01 \x03(\x09:\xAE\x01\xEAA\xAA\x01\x0A)redis.googleapis.com/CertificateAuthority\x12Oprojects/{project}/locations/{location}/clusters/{cluster}/certificateAuthority*\x16certificateAuthorities2\x14certificateAuthorityB\x0B\x0A\x09server_ca\"\x87\x07\x0A\x18ClusterPersistenceConfig\x12Z\x0A\x04mode\x18\x01 \x01(\x0E2G.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.PersistenceModeB\x03\xE0A\x01\x12Z\x0A\x0Ardb_config\x18\x02 \x01(\x0B2A.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfigB\x03\xE0A\x01\x12Z\x0A\x0Aaof_config\x18\x03 \x01(\x0B2A.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfigB\x03\xE0A\x01\x1A\xBA\x02\x0A\x09RDBConfig\x12r\x0A\x13rdb_snapshot_period\x18\x01 \x01(\x0E2P.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.SnapshotPeriodB\x03\xE0A\x01\x12@\x0A\x17rdb_snapshot_start_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x01\"w\x0A\x0ESnapshotPeriod\x12\x1F\x0A\x1BSNAPSHOT_PERIOD_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08ONE_HOUR\x10\x01\x12\x0D\x0A\x09SIX_HOURS\x10\x02\x12\x10\x0A\x0CTWELVE_HOURS\x10\x03\x12\x15\x0A\x11TWENTY_FOUR_HOURS\x10\x04\x1A\xC4\x01\x0A\x09AOFConfig\x12h\x0A\x0Cappend_fsync\x18\x01 \x01(\x0E2M.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.AppendFsyncB\x03\xE0A\x01\"M\x0A\x0BAppendFsync\x12\x1C\x0A\x18APPEND_FSYNC_UNSPECIFIED\x10\x00\x12\x06\x0A\x02NO\x10\x01\x12\x0C\x0A\x08EVERYSEC\x10\x02\x12\x0A\x0A\x06ALWAYS\x10\x03\"S\x0A\x0FPersistenceMode\x12 \x0A\x1CPERSISTENCE_MODE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08DISABLED\x10\x01\x12\x07\x0A\x03RDB\x10\x02\x12\x07\x0A\x03AOF\x10\x03\"\xEB\x01\x0A\x16ZoneDistributionConfig\x12]\x0A\x04mode\x18\x01 \x01(\x0E2J.google.cloud.redis.cluster.v1.ZoneDistributionConfig.ZoneDistributionModeB\x03\xE0A\x01\x12\x11\x0A\x04zone\x18\x02 \x01(\x09B\x03\xE0A\x01\"_\x0A\x14ZoneDistributionMode\x12&\x0A\"ZONE_DISTRIBUTION_MODE_UNSPECIFIED\x10\x00\x12\x0E\x0A\x0AMULTI_ZONE\x10\x01\x12\x0F\x0A\x0BSINGLE_ZONE\x10\x02\"\xD7\x02\x0A#RescheduleClusterMaintenanceRequest\x122\x0A\x04name\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Credis.googleapis.com/Cluster\x12o\x0A\x0Freschedule_type\x18\x02 \x01(\x0E2Q.google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest.RescheduleTypeB\x03\xE0A\x02\x126\x0A\x0Dschedule_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x01\"S\x0A\x0ERescheduleType\x12\x1F\x0A\x1BRESCHEDULE_TYPE_UNSPECIFIED\x10\x00\x12\x0D\x0A\x09IMMEDIATE\x10\x01\x12\x11\x0A\x0DSPECIFIC_TIME\x10\x03\"\xFA\x04\x0A\x0EEncryptionInfo\x12P\x0A\x0Fencryption_type\x18\x01 \x01(\x0E22.google.cloud.redis.cluster.v1.EncryptionInfo.TypeB\x03\xE0A\x03\x12J\x0A\x10kms_key_versions\x18\x02 \x03(\x09B0\xE0A\x03\xFAA*\x0A(cloudkms.googleapis.com/CryptoKeyVersion\x12]\x0A\x15kms_key_primary_state\x18\x03 \x01(\x0E29.google.cloud.redis.cluster.v1.EncryptionInfo.KmsKeyStateB\x03\xE0A\x03\x129\x0A\x10last_update_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\"\\\x0A\x04Type\x12\x14\x0A\x10TYPE_UNSPECIFIED\x10\x00\x12\x1D\x0A\x19GOOGLE_DEFAULT_ENCRYPTION\x10\x01\x12\x1F\x0A\x1BCUSTOMER_MANAGED_ENCRYPTION\x10\x02\"\xD1\x01\x0A\x0BKmsKeyState\x12\x1D\x0A\x19KMS_KEY_STATE_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07ENABLED\x10\x01\x12\x15\x0A\x11PERMISSION_DENIED\x10\x02\x12\x0C\x0A\x08DISABLED\x10\x03\x12\x0D\x0A\x09DESTROYED\x10\x04\x12\x15\x0A\x11DESTROY_SCHEDULED\x10\x05\x12 \x0A\x1CEKM_KEY_UNREACHABLE_DETECTED\x10\x06\x12\x14\x0A\x10BILLING_DISABLED\x10\x07\x12\x13\x0A\x0FUNKNOWN_FAILURE\x10\x08*\x83\x01\x0A\x13PscConnectionStatus\x12%\x0A!PSC_CONNECTION_STATUS_UNSPECIFIED\x10\x00\x12 \x0A\x1CPSC_CONNECTION_STATUS_ACTIVE\x10\x01\x12#\x0A\x1FPSC_CONNECTION_STATUS_NOT_FOUND\x10\x02*^\x0A\x11AuthorizationMode\x12\x19\x0A\x15AUTH_MODE_UNSPECIFIED\x10\x00\x12\x16\x0A\x12AUTH_MODE_IAM_AUTH\x10\x01\x12\x16\x0A\x12AUTH_MODE_DISABLED\x10\x02*\x8F\x01\x0A\x08NodeType\x12\x19\x0A\x15NODE_TYPE_UNSPECIFIED\x10\x00\x12\x1A\x0A\x16REDIS_SHARED_CORE_NANO\x10\x01\x12\x18\x0A\x14REDIS_HIGHMEM_MEDIUM\x10\x02\x12\x18\x0A\x14REDIS_HIGHMEM_XLARGE\x10\x03\x12\x18\x0A\x14REDIS_STANDARD_SMALL\x10\x04*\x99\x01\x0A\x15TransitEncryptionMode\x12'\x0A#TRANSIT_ENCRYPTION_MODE_UNSPECIFIED\x10\x00\x12\$\x0A TRANSIT_ENCRYPTION_MODE_DISABLED\x10\x01\x121\x0A-TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION\x10\x02*\xBA\x01\x0A\x0CServerCaMode\x12\x1E\x0A\x1ASERVER_CA_MODE_UNSPECIFIED\x10\x00\x121\x0A-SERVER_CA_MODE_GOOGLE_MANAGED_PER_INSTANCE_CA\x10\x01\x12+\x0A'SERVER_CA_MODE_GOOGLE_MANAGED_SHARED_CA\x10\x02\x12*\x0A&SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA\x10\x03*\x89\x01\x0A\x0EConnectionType\x12\x1F\x0A\x1BCONNECTION_TYPE_UNSPECIFIED\x10\x00\x12\x1D\x0A\x19CONNECTION_TYPE_DISCOVERY\x10\x01\x12\x1B\x0A\x17CONNECTION_TYPE_PRIMARY\x10\x02\x12\x1A\x0A\x16CONNECTION_TYPE_READER\x10\x032\xA2\x1A\x0A\x11CloudRedisCluster\x12\xB6\x01\x0A\x0CListClusters\x122.google.cloud.redis.cluster.v1.ListClustersRequest\x1A3.google.cloud.redis.cluster.v1.ListClustersResponse\"=\xDAA\x06parent\x82\xD3\xE4\x93\x02.\x12,/v1/{parent=projects/*/locations/*}/clusters\x12\xA3\x01\x0A\x0AGetCluster\x120.google.cloud.redis.cluster.v1.GetClusterRequest\x1A&.google.cloud.redis.cluster.v1.Cluster\";\xDAA\x04name\x82\xD3\xE4\x93\x02.\x12,/v1/{name=projects/*/locations/*/clusters/*}\x12\xE1\x01\x0A\x0DUpdateCluster\x123.google.cloud.redis.cluster.v1.UpdateClusterRequest\x1A\x1D.google.longrunning.Operation\"|\xCAA\x1E\x0A\x07Cluster\x12\x13google.protobuf.Any\xDAA\x13cluster,update_mask\x82\xD3\xE4\x93\x02?24/v1/{cluster.name=projects/*/locations/*/clusters/*}:\x07cluster\x12\xCF\x01\x0A\x0DDeleteCluster\x123.google.cloud.redis.cluster.v1.DeleteClusterRequest\x1A\x1D.google.longrunning.Operation\"j\xCAA,\x0A\x15google.protobuf.Empty\x12\x13google.protobuf.Any\xDAA\x04name\x82\xD3\xE4\x93\x02.*,/v1/{name=projects/*/locations/*/clusters/*}\x12\xDF\x01\x0A\x0DCreateCluster\x123.google.cloud.redis.cluster.v1.CreateClusterRequest\x1A\x1D.google.longrunning.Operation\"z\xCAA\x1E\x0A\x07Cluster\x12\x13google.protobuf.Any\xDAA\x19parent,cluster,cluster_id\x82\xD3\xE4\x93\x027\",/v1/{parent=projects/*/locations/*}/clusters:\x07cluster\x12\xED\x01\x0A\x1EGetClusterCertificateAuthority\x12D.google.cloud.redis.cluster.v1.GetClusterCertificateAuthorityRequest\x1A3.google.cloud.redis.cluster.v1.CertificateAuthority\"P\xDAA\x04name\x82\xD3\xE4\x93\x02C\x12A/v1/{name=projects/*/locations/*/clusters/*/certificateAuthority}\x12\x8C\x02\x0A%GetSharedRegionalCertificateAuthority\x12K.google.cloud.redis.cluster.v1.GetSharedRegionalCertificateAuthorityRequest\x1AA.google.cloud.redis.cluster.v1.SharedRegionalCertificateAuthority\"S\xDAA\x04name\x82\xD3\xE4\x93\x02F\x12D/v1/{name=projects/*/locations/*/sharedRegionalCertificateAuthority}\x12\x9E\x02\x0A\x1CRescheduleClusterMaintenance\x12B.google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest\x1A\x1D.google.longrunning.Operation\"\x9A\x01\xCAA\x1E\x0A\x07Cluster\x12\x13google.protobuf.Any\xDAA\"name,reschedule_type,schedule_time\x82\xD3\xE4\x93\x02N\"I/v1/{name=projects/*/locations/*/clusters/*}:rescheduleClusterMaintenance:\x01*\x12\xDA\x01\x0A\x15ListBackupCollections\x12;.google.cloud.redis.cluster.v1.ListBackupCollectionsRequest\x1A<.google.cloud.redis.cluster.v1.ListBackupCollectionsResponse\"F\xDAA\x06parent\x82\xD3\xE4\x93\x027\x125/v1/{parent=projects/*/locations/*}/backupCollections\x12\xC7\x01\x0A\x13GetBackupCollection\x129.google.cloud.redis.cluster.v1.GetBackupCollectionRequest\x1A/.google.cloud.redis.cluster.v1.BackupCollection\"D\xDAA\x04name\x82\xD3\xE4\x93\x027\x125/v1/{name=projects/*/locations/*/backupCollections/*}\x12\xC6\x01\x0A\x0BListBackups\x121.google.cloud.redis.cluster.v1.ListBackupsRequest\x1A2.google.cloud.redis.cluster.v1.ListBackupsResponse\"P\xDAA\x06parent\x82\xD3\xE4\x93\x02A\x12?/v1/{parent=projects/*/locations/*/backupCollections/*}/backups\x12\xB3\x01\x0A\x09GetBackup\x12/.google.cloud.redis.cluster.v1.GetBackupRequest\x1A%.google.cloud.redis.cluster.v1.Backup\"N\xDAA\x04name\x82\xD3\xE4\x93\x02A\x12?/v1/{name=projects/*/locations/*/backupCollections/*/backups/*}\x12\xE0\x01\x0A\x0CDeleteBackup\x122.google.cloud.redis.cluster.v1.DeleteBackupRequest\x1A\x1D.google.longrunning.Operation\"}\xCAA,\x0A\x15google.protobuf.Empty\x12\x13google.protobuf.Any\xDAA\x04name\x82\xD3\xE4\x93\x02A*?/v1/{name=projects/*/locations/*/backupCollections/*/backups/*}\x12\xD4\x01\x0A\x0CExportBackup\x122.google.cloud.redis.cluster.v1.ExportBackupRequest\x1A\x1D.google.longrunning.Operation\"q\xCAA\x1D\x0A\x06Backup\x12\x13google.protobuf.Any\x82\xD3\xE4\x93\x02K\"F/v1/{name=projects/*/locations/*/backupCollections/*/backups/*}:export:\x01*\x12\xCB\x01\x0A\x0DBackupCluster\x123.google.cloud.redis.cluster.v1.BackupClusterRequest\x1A\x1D.google.longrunning.Operation\"f\xCAA\x1E\x0A\x07Cluster\x12\x13google.protobuf.Any\xDAA\x04name\x82\xD3\xE4\x93\x028\"3/v1/{name=projects/*/locations/*/clusters/*}:backup:\x01*\x1AH\xCAA\x14redis.googleapis.com\xD2A.https://www.googleapis.com/auth/cloud-platformB\xDE\x06\x0A!com.google.cloud.redis.cluster.v1B\x16CloudRedisClusterProtoP\x01Z;cloud.google.com/go/redis/cluster/apiv1/clusterpb;clusterpb\xEA\x02!Google::Cloud::Redis::Cluster::V1\xEAAn\x0A%compute.googleapis.com/ForwardingRule\x12Eprojects/{project}/regions/{region}/forwardingRules/{forwarding_rule}\xEAAN\x0A\x1Ecompute.googleapis.com/Network\x12,projects/{project}/global/networks/{network}\xEAAw\x0A(compute.googleapis.com/ServiceAttachment\x12Kprojects/{project}/regions/{region}/serviceAttachments/{service_attachment}\xEAAx\x0A!cloudkms.googleapis.com/CryptoKey\x12Sprojects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}\xEAA\xA6\x01\x0A(cloudkms.googleapis.com/CryptoKeyVersion\x12zprojects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}\xEAA\\\x0A\x1Fprivateca.googleapis.com/CaPool\x129projects/{project}/locations/{location}/caPools/{ca_pool}b\x06proto3" , true); static::$is_initialized = true; diff --git a/RedisCluster/samples/V1/CloudRedisClusterClient/get_shared_regional_certificate_authority.php b/RedisCluster/samples/V1/CloudRedisClusterClient/get_shared_regional_certificate_authority.php new file mode 100644 index 000000000000..800eee1437d1 --- /dev/null +++ b/RedisCluster/samples/V1/CloudRedisClusterClient/get_shared_regional_certificate_authority.php @@ -0,0 +1,77 @@ +setName($formattedName); + + // Call the API and handle any network failures. + try { + /** @var SharedRegionalCertificateAuthority $response */ + $response = $cloudRedisClusterClient->getSharedRegionalCertificateAuthority($request); + printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString()); + } catch (ApiException $ex) { + printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage()); + } +} + +/** + * Helper to execute the sample. + * + * This sample has been automatically generated and should be regarded as a code + * template only. It will require modifications to work: + * - It may require correct/in-range values for request initialization. + * - It may require specifying regional endpoints when creating the service client, + * please see the apiEndpoint client configuration option for more details. + */ +function callSample(): void +{ + $formattedName = CloudRedisClusterClient::sharedRegionalCertificateAuthorityName( + '[PROJECT]', + '[LOCATION]' + ); + + get_shared_regional_certificate_authority_sample($formattedName); +} +// [END redis_v1_generated_CloudRedisCluster_GetSharedRegionalCertificateAuthority_sync] diff --git a/RedisCluster/src/V1/Client/CloudRedisClusterClient.php b/RedisCluster/src/V1/Client/CloudRedisClusterClient.php index 0e8bfd1e16b4..9f178fb2ce11 100644 --- a/RedisCluster/src/V1/Client/CloudRedisClusterClient.php +++ b/RedisCluster/src/V1/Client/CloudRedisClusterClient.php @@ -51,10 +51,12 @@ use Google\Cloud\Redis\Cluster\V1\GetBackupRequest; use Google\Cloud\Redis\Cluster\V1\GetClusterCertificateAuthorityRequest; use Google\Cloud\Redis\Cluster\V1\GetClusterRequest; +use Google\Cloud\Redis\Cluster\V1\GetSharedRegionalCertificateAuthorityRequest; use Google\Cloud\Redis\Cluster\V1\ListBackupCollectionsRequest; use Google\Cloud\Redis\Cluster\V1\ListBackupsRequest; use Google\Cloud\Redis\Cluster\V1\ListClustersRequest; use Google\Cloud\Redis\Cluster\V1\RescheduleClusterMaintenanceRequest; +use Google\Cloud\Redis\Cluster\V1\SharedRegionalCertificateAuthority; use Google\Cloud\Redis\Cluster\V1\UpdateClusterRequest; use Google\LongRunning\Client\OperationsClient; use Google\LongRunning\Operation; @@ -96,6 +98,7 @@ * @method PromiseInterface getBackupCollectionAsync(GetBackupCollectionRequest $request, array $optionalArgs = []) * @method PromiseInterface getClusterAsync(GetClusterRequest $request, array $optionalArgs = []) * @method PromiseInterface getClusterCertificateAuthorityAsync(GetClusterCertificateAuthorityRequest $request, array $optionalArgs = []) + * @method PromiseInterface getSharedRegionalCertificateAuthorityAsync(GetSharedRegionalCertificateAuthorityRequest $request, array $optionalArgs = []) * @method PromiseInterface listBackupCollectionsAsync(ListBackupCollectionsRequest $request, array $optionalArgs = []) * @method PromiseInterface listBackupsAsync(ListBackupsRequest $request, array $optionalArgs = []) * @method PromiseInterface listClustersAsync(ListClustersRequest $request, array $optionalArgs = []) @@ -244,6 +247,25 @@ public static function backupCollectionName(string $project, string $location, s ]); } + /** + * Formats a string containing the fully-qualified path to represent a ca_pool + * resource. + * + * @param string $project + * @param string $location + * @param string $caPool + * + * @return string The formatted ca_pool resource. + */ + public static function caPoolName(string $project, string $location, string $caPool): string + { + return self::getPathTemplate('caPool')->render([ + 'project' => $project, + 'location' => $location, + 'ca_pool' => $caPool, + ]); + } + /** * Formats a string containing the fully-qualified path to represent a * certificate_authority resource. @@ -403,12 +425,30 @@ public static function serviceAttachmentName(string $project, string $region, st ]); } + /** + * Formats a string containing the fully-qualified path to represent a + * shared_regional_certificate_authority resource. + * + * @param string $project + * @param string $location + * + * @return string The formatted shared_regional_certificate_authority resource. + */ + public static function sharedRegionalCertificateAuthorityName(string $project, string $location): string + { + return self::getPathTemplate('sharedRegionalCertificateAuthority')->render([ + 'project' => $project, + 'location' => $location, + ]); + } + /** * Parses a formatted name string and returns an associative array of the components in the name. * The following name formats are supported: * Template: Pattern * - backup: projects/{project}/locations/{location}/backupCollections/{backup_collection}/backups/{backup} * - backupCollection: projects/{project}/locations/{location}/backupCollections/{backup_collection} + * - caPool: projects/{project}/locations/{location}/caPools/{ca_pool} * - certificateAuthority: projects/{project}/locations/{location}/clusters/{cluster}/certificateAuthority * - cluster: projects/{project}/locations/{location}/clusters/{cluster} * - cryptoKey: projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key} @@ -417,6 +457,7 @@ public static function serviceAttachmentName(string $project, string $region, st * - location: projects/{project}/locations/{location} * - network: projects/{project}/global/networks/{network} * - serviceAttachment: projects/{project}/regions/{region}/serviceAttachments/{service_attachment} + * - sharedRegionalCertificateAuthority: projects/{project}/locations/{location}/sharedRegionalCertificateAuthority * * The optional $template argument can be supplied to specify a particular pattern, * and must match one of the templates listed above. If no $template argument is @@ -779,6 +820,36 @@ public function getClusterCertificateAuthority( return $this->startApiCall('GetClusterCertificateAuthority', $request, $callOptions)->wait(); } + /** + * Gets the details of regional certificate authority information for Redis + * cluster. + * + * The async variant is + * {@see CloudRedisClusterClient::getSharedRegionalCertificateAuthorityAsync()} . + * + * @example samples/V1/CloudRedisClusterClient/get_shared_regional_certificate_authority.php + * + * @param GetSharedRegionalCertificateAuthorityRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return SharedRegionalCertificateAuthority + * + * @throws ApiException Thrown if the API call fails. + */ + public function getSharedRegionalCertificateAuthority( + GetSharedRegionalCertificateAuthorityRequest $request, + array $callOptions = [] + ): SharedRegionalCertificateAuthority { + return $this->startApiCall('GetSharedRegionalCertificateAuthority', $request, $callOptions)->wait(); + } + /** * Lists all backup collections owned by a consumer project in either the * specified location (region) or all locations. diff --git a/RedisCluster/src/V1/Cluster.php b/RedisCluster/src/V1/Cluster.php index 5cb69bda2b90..e1f7f1ec77fa 100644 --- a/RedisCluster/src/V1/Cluster.php +++ b/RedisCluster/src/V1/Cluster.php @@ -199,6 +199,26 @@ class Cluster extends \Google\Protobuf\Internal\Message * Generated from protobuf field .google.cloud.redis.cluster.v1.EncryptionInfo encryption_info = 43 [(.google.api.field_behavior) = OUTPUT_ONLY]; */ protected $encryption_info = null; + /** + * Optional. Server CA mode for the cluster. + * + * Generated from protobuf field optional .google.cloud.redis.cluster.v1.ServerCaMode server_ca_mode = 53 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $server_ca_mode = null; + /** + * Optional. Customer-managed CA pool for the cluster. Only applicable for + * BYOCA i.e. if server_ca_mode is SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA. + * Format: "projects/{project}/locations/{region}/caPools/{ca_pool}". + * + * Generated from protobuf field optional string server_ca_pool = 54 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + */ + protected $server_ca_pool = null; + /** + * Optional. Input only. Rotate the server certificates. + * + * Generated from protobuf field optional bool rotate_server_certificate = 55 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_behavior) = INPUT_ONLY]; + */ + protected $rotate_server_certificate = null; protected $import_sources; /** @@ -286,6 +306,14 @@ class Cluster extends \Google\Protobuf\Internal\Message * Optional. The automated backup config for the cluster. * @type \Google\Cloud\Redis\Cluster\V1\EncryptionInfo $encryption_info * Output only. Encryption information of the data at rest of the cluster. + * @type int $server_ca_mode + * Optional. Server CA mode for the cluster. + * @type string $server_ca_pool + * Optional. Customer-managed CA pool for the cluster. Only applicable for + * BYOCA i.e. if server_ca_mode is SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA. + * Format: "projects/{project}/locations/{region}/caPools/{ca_pool}". + * @type bool $rotate_server_certificate + * Optional. Input only. Rotate the server certificates. * } */ public function __construct($data = NULL) { @@ -1281,6 +1309,118 @@ public function setEncryptionInfo($var) return $this; } + /** + * Optional. Server CA mode for the cluster. + * + * Generated from protobuf field optional .google.cloud.redis.cluster.v1.ServerCaMode server_ca_mode = 53 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getServerCaMode() + { + return isset($this->server_ca_mode) ? $this->server_ca_mode : 0; + } + + public function hasServerCaMode() + { + return isset($this->server_ca_mode); + } + + public function clearServerCaMode() + { + unset($this->server_ca_mode); + } + + /** + * Optional. Server CA mode for the cluster. + * + * Generated from protobuf field optional .google.cloud.redis.cluster.v1.ServerCaMode server_ca_mode = 53 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setServerCaMode($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Redis\Cluster\V1\ServerCaMode::class); + $this->server_ca_mode = $var; + + return $this; + } + + /** + * Optional. Customer-managed CA pool for the cluster. Only applicable for + * BYOCA i.e. if server_ca_mode is SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA. + * Format: "projects/{project}/locations/{region}/caPools/{ca_pool}". + * + * Generated from protobuf field optional string server_ca_pool = 54 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @return string + */ + public function getServerCaPool() + { + return isset($this->server_ca_pool) ? $this->server_ca_pool : ''; + } + + public function hasServerCaPool() + { + return isset($this->server_ca_pool); + } + + public function clearServerCaPool() + { + unset($this->server_ca_pool); + } + + /** + * Optional. Customer-managed CA pool for the cluster. Only applicable for + * BYOCA i.e. if server_ca_mode is SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA. + * Format: "projects/{project}/locations/{region}/caPools/{ca_pool}". + * + * Generated from protobuf field optional string server_ca_pool = 54 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setServerCaPool($var) + { + GPBUtil::checkString($var, True); + $this->server_ca_pool = $var; + + return $this; + } + + /** + * Optional. Input only. Rotate the server certificates. + * + * Generated from protobuf field optional bool rotate_server_certificate = 55 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_behavior) = INPUT_ONLY]; + * @return bool + */ + public function getRotateServerCertificate() + { + return isset($this->rotate_server_certificate) ? $this->rotate_server_certificate : false; + } + + public function hasRotateServerCertificate() + { + return isset($this->rotate_server_certificate); + } + + public function clearRotateServerCertificate() + { + unset($this->rotate_server_certificate); + } + + /** + * Optional. Input only. Rotate the server certificates. + * + * Generated from protobuf field optional bool rotate_server_certificate = 55 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_behavior) = INPUT_ONLY]; + * @param bool $var + * @return $this + */ + public function setRotateServerCertificate($var) + { + GPBUtil::checkBool($var); + $this->rotate_server_certificate = $var; + + return $this; + } + /** * @return string */ diff --git a/RedisCluster/src/V1/GetSharedRegionalCertificateAuthorityRequest.php b/RedisCluster/src/V1/GetSharedRegionalCertificateAuthorityRequest.php new file mode 100644 index 000000000000..5a17d01357c0 --- /dev/null +++ b/RedisCluster/src/V1/GetSharedRegionalCertificateAuthorityRequest.php @@ -0,0 +1,92 @@ +google.cloud.redis.cluster.v1.GetSharedRegionalCertificateAuthorityRequest + */ +class GetSharedRegionalCertificateAuthorityRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Regional certificate authority resource name using the form: + * `projects/{project_id}/locations/{location_id}/sharedRegionalCertificateAuthority` + * where `location_id` refers to a Google Cloud region. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. Regional certificate authority resource name using the form: + * `projects/{project_id}/locations/{location_id}/sharedRegionalCertificateAuthority` + * where `location_id` refers to a Google Cloud region. Please see + * {@see CloudRedisClusterClient::sharedRegionalCertificateAuthorityName()} for help formatting this field. + * + * @return \Google\Cloud\Redis\Cluster\V1\GetSharedRegionalCertificateAuthorityRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. Regional certificate authority resource name using the form: + * `projects/{project_id}/locations/{location_id}/sharedRegionalCertificateAuthority` + * where `location_id` refers to a Google Cloud region. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Redis\Cluster\V1\CloudRedisCluster::initOnce(); + parent::__construct($data); + } + + /** + * Required. Regional certificate authority resource name using the form: + * `projects/{project_id}/locations/{location_id}/sharedRegionalCertificateAuthority` + * where `location_id` refers to a Google Cloud region. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. Regional certificate authority resource name using the form: + * `projects/{project_id}/locations/{location_id}/sharedRegionalCertificateAuthority` + * where `location_id` refers to a Google Cloud region. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/RedisCluster/src/V1/ServerCaMode.php b/RedisCluster/src/V1/ServerCaMode.php new file mode 100644 index 000000000000..c22799a4901b --- /dev/null +++ b/RedisCluster/src/V1/ServerCaMode.php @@ -0,0 +1,68 @@ +google.cloud.redis.cluster.v1.ServerCaMode + */ +class ServerCaMode +{ + /** + * Server CA mode not specified. + * + * Generated from protobuf enum SERVER_CA_MODE_UNSPECIFIED = 0; + */ + const SERVER_CA_MODE_UNSPECIFIED = 0; + /** + * Each cluster has its own Google managed CA. + * + * Generated from protobuf enum SERVER_CA_MODE_GOOGLE_MANAGED_PER_INSTANCE_CA = 1; + */ + const SERVER_CA_MODE_GOOGLE_MANAGED_PER_INSTANCE_CA = 1; + /** + * The cluster uses Google managed shared CA in the region. + * + * Generated from protobuf enum SERVER_CA_MODE_GOOGLE_MANAGED_SHARED_CA = 2; + */ + const SERVER_CA_MODE_GOOGLE_MANAGED_SHARED_CA = 2; + /** + * The cluster uses customer managed CA from CAS. + * + * Generated from protobuf enum SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA = 3; + */ + const SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA = 3; + + private static $valueToName = [ + self::SERVER_CA_MODE_UNSPECIFIED => 'SERVER_CA_MODE_UNSPECIFIED', + self::SERVER_CA_MODE_GOOGLE_MANAGED_PER_INSTANCE_CA => 'SERVER_CA_MODE_GOOGLE_MANAGED_PER_INSTANCE_CA', + self::SERVER_CA_MODE_GOOGLE_MANAGED_SHARED_CA => 'SERVER_CA_MODE_GOOGLE_MANAGED_SHARED_CA', + self::SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA => 'SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/RedisCluster/src/V1/SharedRegionalCertificateAuthority.php b/RedisCluster/src/V1/SharedRegionalCertificateAuthority.php new file mode 100644 index 000000000000..5970a38a1a05 --- /dev/null +++ b/RedisCluster/src/V1/SharedRegionalCertificateAuthority.php @@ -0,0 +1,117 @@ +google.cloud.redis.cluster.v1.SharedRegionalCertificateAuthority + */ +class SharedRegionalCertificateAuthority extends \Google\Protobuf\Internal\Message +{ + /** + * Identifier. Unique name of the resource in this scope including project and + * location using the form: + * `projects/{project}/locations/{location}/sharedRegionalCertificateAuthority` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER]; + */ + protected $name = ''; + protected $server_ca; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Redis\Cluster\V1\SharedRegionalCertificateAuthority\RegionalManagedCertificateAuthority $managed_server_ca + * CA certificate chains for redis managed server authentication. + * @type string $name + * Identifier. Unique name of the resource in this scope including project and + * location using the form: + * `projects/{project}/locations/{location}/sharedRegionalCertificateAuthority` + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Redis\Cluster\V1\CloudRedisCluster::initOnce(); + parent::__construct($data); + } + + /** + * CA certificate chains for redis managed server authentication. + * + * Generated from protobuf field .google.cloud.redis.cluster.v1.SharedRegionalCertificateAuthority.RegionalManagedCertificateAuthority managed_server_ca = 2; + * @return \Google\Cloud\Redis\Cluster\V1\SharedRegionalCertificateAuthority\RegionalManagedCertificateAuthority|null + */ + public function getManagedServerCa() + { + return $this->readOneof(2); + } + + public function hasManagedServerCa() + { + return $this->hasOneof(2); + } + + /** + * CA certificate chains for redis managed server authentication. + * + * Generated from protobuf field .google.cloud.redis.cluster.v1.SharedRegionalCertificateAuthority.RegionalManagedCertificateAuthority managed_server_ca = 2; + * @param \Google\Cloud\Redis\Cluster\V1\SharedRegionalCertificateAuthority\RegionalManagedCertificateAuthority $var + * @return $this + */ + public function setManagedServerCa($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Redis\Cluster\V1\SharedRegionalCertificateAuthority\RegionalManagedCertificateAuthority::class); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * Identifier. Unique name of the resource in this scope including project and + * location using the form: + * `projects/{project}/locations/{location}/sharedRegionalCertificateAuthority` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Identifier. Unique name of the resource in this scope including project and + * location using the form: + * `projects/{project}/locations/{location}/sharedRegionalCertificateAuthority` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * @return string + */ + public function getServerCa() + { + return $this->whichOneof("server_ca"); + } + +} + diff --git a/RedisCluster/src/V1/SharedRegionalCertificateAuthority/RegionalManagedCertificateAuthority.php b/RedisCluster/src/V1/SharedRegionalCertificateAuthority/RegionalManagedCertificateAuthority.php new file mode 100644 index 000000000000..64088e751e82 --- /dev/null +++ b/RedisCluster/src/V1/SharedRegionalCertificateAuthority/RegionalManagedCertificateAuthority.php @@ -0,0 +1,71 @@ +google.cloud.redis.cluster.v1.SharedRegionalCertificateAuthority.RegionalManagedCertificateAuthority + */ +class RegionalManagedCertificateAuthority extends \Google\Protobuf\Internal\Message +{ + /** + * The PEM encoded CA certificate chains for redis managed + * server authentication + * + * Generated from protobuf field repeated .google.cloud.redis.cluster.v1.SharedRegionalCertificateAuthority.RegionalManagedCertificateAuthority.RegionalCertChain ca_certs = 1; + */ + private $ca_certs; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Redis\Cluster\V1\SharedRegionalCertificateAuthority\RegionalManagedCertificateAuthority\RegionalCertChain[] $ca_certs + * The PEM encoded CA certificate chains for redis managed + * server authentication + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Redis\Cluster\V1\CloudRedisCluster::initOnce(); + parent::__construct($data); + } + + /** + * The PEM encoded CA certificate chains for redis managed + * server authentication + * + * Generated from protobuf field repeated .google.cloud.redis.cluster.v1.SharedRegionalCertificateAuthority.RegionalManagedCertificateAuthority.RegionalCertChain ca_certs = 1; + * @return RepeatedField<\Google\Cloud\Redis\Cluster\V1\SharedRegionalCertificateAuthority\RegionalManagedCertificateAuthority\RegionalCertChain> + */ + public function getCaCerts() + { + return $this->ca_certs; + } + + /** + * The PEM encoded CA certificate chains for redis managed + * server authentication + * + * Generated from protobuf field repeated .google.cloud.redis.cluster.v1.SharedRegionalCertificateAuthority.RegionalManagedCertificateAuthority.RegionalCertChain ca_certs = 1; + * @param \Google\Cloud\Redis\Cluster\V1\SharedRegionalCertificateAuthority\RegionalManagedCertificateAuthority\RegionalCertChain[] $var + * @return $this + */ + public function setCaCerts($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Redis\Cluster\V1\SharedRegionalCertificateAuthority\RegionalManagedCertificateAuthority\RegionalCertChain::class); + $this->ca_certs = $arr; + + return $this; + } + +} + diff --git a/RedisCluster/src/V1/SharedRegionalCertificateAuthority/RegionalManagedCertificateAuthority/RegionalCertChain.php b/RedisCluster/src/V1/SharedRegionalCertificateAuthority/RegionalManagedCertificateAuthority/RegionalCertChain.php new file mode 100644 index 000000000000..54dcb107f3de --- /dev/null +++ b/RedisCluster/src/V1/SharedRegionalCertificateAuthority/RegionalManagedCertificateAuthority/RegionalCertChain.php @@ -0,0 +1,67 @@ +google.cloud.redis.cluster.v1.SharedRegionalCertificateAuthority.RegionalManagedCertificateAuthority.RegionalCertChain + */ +class RegionalCertChain extends \Google\Protobuf\Internal\Message +{ + /** + * The certificates that form the CA chain, from leaf to root order. + * + * Generated from protobuf field repeated string certificates = 1; + */ + private $certificates; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string[] $certificates + * The certificates that form the CA chain, from leaf to root order. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Redis\Cluster\V1\CloudRedisCluster::initOnce(); + parent::__construct($data); + } + + /** + * The certificates that form the CA chain, from leaf to root order. + * + * Generated from protobuf field repeated string certificates = 1; + * @return RepeatedField + */ + public function getCertificates() + { + return $this->certificates; + } + + /** + * The certificates that form the CA chain, from leaf to root order. + * + * Generated from protobuf field repeated string certificates = 1; + * @param string[] $var + * @return $this + */ + public function setCertificates($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->certificates = $arr; + + return $this; + } + +} + diff --git a/RedisCluster/src/V1/gapic_metadata.json b/RedisCluster/src/V1/gapic_metadata.json index 2355c3e653e6..65ed596cdf6c 100644 --- a/RedisCluster/src/V1/gapic_metadata.json +++ b/RedisCluster/src/V1/gapic_metadata.json @@ -55,6 +55,11 @@ "getClusterCertificateAuthority" ] }, + "GetSharedRegionalCertificateAuthority": { + "methods": [ + "getSharedRegionalCertificateAuthority" + ] + }, "ListBackupCollections": { "methods": [ "listBackupCollections" diff --git a/RedisCluster/src/V1/resources/cloud_redis_cluster_client_config.json b/RedisCluster/src/V1/resources/cloud_redis_cluster_client_config.json index b3279089858b..2d8fb483a6fa 100644 --- a/RedisCluster/src/V1/resources/cloud_redis_cluster_client_config.json +++ b/RedisCluster/src/V1/resources/cloud_redis_cluster_client_config.json @@ -71,6 +71,11 @@ "retry_codes_name": "no_retry_1_codes", "retry_params_name": "no_retry_1_params" }, + "GetSharedRegionalCertificateAuthority": { + "timeout_millis": 60000, + "retry_codes_name": "no_retry_codes", + "retry_params_name": "no_retry_params" + }, "ListBackupCollections": { "timeout_millis": 600000, "retry_codes_name": "no_retry_1_codes", diff --git a/RedisCluster/src/V1/resources/cloud_redis_cluster_descriptor_config.php b/RedisCluster/src/V1/resources/cloud_redis_cluster_descriptor_config.php index 5d0c7e584deb..69c03c592c3f 100644 --- a/RedisCluster/src/V1/resources/cloud_redis_cluster_descriptor_config.php +++ b/RedisCluster/src/V1/resources/cloud_redis_cluster_descriptor_config.php @@ -205,6 +205,18 @@ ], ], ], + 'GetSharedRegionalCertificateAuthority' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Redis\Cluster\V1\SharedRegionalCertificateAuthority', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], 'ListBackupCollections' => [ 'pageStreaming' => [ 'requestPageTokenGetMethod' => 'getPageToken', @@ -302,6 +314,7 @@ 'templateMap' => [ 'backup' => 'projects/{project}/locations/{location}/backupCollections/{backup_collection}/backups/{backup}', 'backupCollection' => 'projects/{project}/locations/{location}/backupCollections/{backup_collection}', + 'caPool' => 'projects/{project}/locations/{location}/caPools/{ca_pool}', 'certificateAuthority' => 'projects/{project}/locations/{location}/clusters/{cluster}/certificateAuthority', 'cluster' => 'projects/{project}/locations/{location}/clusters/{cluster}', 'cryptoKey' => 'projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}', @@ -310,6 +323,7 @@ 'location' => 'projects/{project}/locations/{location}', 'network' => 'projects/{project}/global/networks/{network}', 'serviceAttachment' => 'projects/{project}/regions/{region}/serviceAttachments/{service_attachment}', + 'sharedRegionalCertificateAuthority' => 'projects/{project}/locations/{location}/sharedRegionalCertificateAuthority', ], ], ], diff --git a/RedisCluster/src/V1/resources/cloud_redis_cluster_rest_client_config.php b/RedisCluster/src/V1/resources/cloud_redis_cluster_rest_client_config.php index a52d77019dc6..a1357991ea7c 100644 --- a/RedisCluster/src/V1/resources/cloud_redis_cluster_rest_client_config.php +++ b/RedisCluster/src/V1/resources/cloud_redis_cluster_rest_client_config.php @@ -152,6 +152,17 @@ ], ], ], + 'GetSharedRegionalCertificateAuthority' => [ + 'method' => 'get', + 'uriTemplate' => '/v1/{name=projects/*/locations/*/sharedRegionalCertificateAuthority}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], 'ListBackupCollections' => [ 'method' => 'get', 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/backupCollections', diff --git a/RedisCluster/tests/Unit/V1/Client/CloudRedisClusterClientTest.php b/RedisCluster/tests/Unit/V1/Client/CloudRedisClusterClientTest.php index 5a9ecee39e1b..974fe75ee078 100644 --- a/RedisCluster/tests/Unit/V1/Client/CloudRedisClusterClientTest.php +++ b/RedisCluster/tests/Unit/V1/Client/CloudRedisClusterClientTest.php @@ -44,6 +44,7 @@ use Google\Cloud\Redis\Cluster\V1\GetBackupRequest; use Google\Cloud\Redis\Cluster\V1\GetClusterCertificateAuthorityRequest; use Google\Cloud\Redis\Cluster\V1\GetClusterRequest; +use Google\Cloud\Redis\Cluster\V1\GetSharedRegionalCertificateAuthorityRequest; use Google\Cloud\Redis\Cluster\V1\ListBackupCollectionsRequest; use Google\Cloud\Redis\Cluster\V1\ListBackupCollectionsResponse; use Google\Cloud\Redis\Cluster\V1\ListBackupsRequest; @@ -52,6 +53,7 @@ use Google\Cloud\Redis\Cluster\V1\ListClustersResponse; use Google\Cloud\Redis\Cluster\V1\RescheduleClusterMaintenanceRequest; use Google\Cloud\Redis\Cluster\V1\RescheduleClusterMaintenanceRequest\RescheduleType; +use Google\Cloud\Redis\Cluster\V1\SharedRegionalCertificateAuthority; use Google\Cloud\Redis\Cluster\V1\UpdateClusterRequest; use Google\LongRunning\Client\OperationsClient; use Google\LongRunning\GetOperationRequest; @@ -122,6 +124,8 @@ public function backupClusterTest() $deletionProtectionEnabled = true; $backupCollection = 'backupCollection-1182285509'; $kmsKey = 'kmsKey-591635343'; + $serverCaPool = 'serverCaPool-1294323103'; + $rotateServerCertificate = false; $expectedResponse = new Cluster(); $expectedResponse->setName($name2); $expectedResponse->setUid($uid); @@ -132,6 +136,8 @@ public function backupClusterTest() $expectedResponse->setDeletionProtectionEnabled($deletionProtectionEnabled); $expectedResponse->setBackupCollection($backupCollection); $expectedResponse->setKmsKey($kmsKey); + $expectedResponse->setServerCaPool($serverCaPool); + $expectedResponse->setRotateServerCertificate($rotateServerCertificate); $anyResponse = new Any(); $anyResponse->setValue($expectedResponse->serializeToString()); $completeOperation = new Operation(); @@ -262,6 +268,8 @@ public function createClusterTest() $deletionProtectionEnabled = true; $backupCollection = 'backupCollection-1182285509'; $kmsKey = 'kmsKey-591635343'; + $serverCaPool = 'serverCaPool-1294323103'; + $rotateServerCertificate = false; $expectedResponse = new Cluster(); $expectedResponse->setName($name); $expectedResponse->setUid($uid); @@ -272,6 +280,8 @@ public function createClusterTest() $expectedResponse->setDeletionProtectionEnabled($deletionProtectionEnabled); $expectedResponse->setBackupCollection($backupCollection); $expectedResponse->setKmsKey($kmsKey); + $expectedResponse->setServerCaPool($serverCaPool); + $expectedResponse->setRotateServerCertificate($rotateServerCertificate); $anyResponse = new Any(); $anyResponse->setValue($expectedResponse->serializeToString()); $completeOperation = new Operation(); @@ -942,6 +952,8 @@ public function getClusterTest() $deletionProtectionEnabled = true; $backupCollection = 'backupCollection-1182285509'; $kmsKey = 'kmsKey-591635343'; + $serverCaPool = 'serverCaPool-1294323103'; + $rotateServerCertificate = false; $expectedResponse = new Cluster(); $expectedResponse->setName($name2); $expectedResponse->setUid($uid); @@ -952,6 +964,8 @@ public function getClusterTest() $expectedResponse->setDeletionProtectionEnabled($deletionProtectionEnabled); $expectedResponse->setBackupCollection($backupCollection); $expectedResponse->setKmsKey($kmsKey); + $expectedResponse->setServerCaPool($serverCaPool); + $expectedResponse->setRotateServerCertificate($rotateServerCertificate); $transport->addResponse($expectedResponse); // Mock request $formattedName = $gapicClient->clusterName('[PROJECT]', '[LOCATION]', '[CLUSTER]'); @@ -1073,6 +1087,74 @@ public function getClusterCertificateAuthorityExceptionTest() $this->assertTrue($transport->isExhausted()); } + /** @test */ + public function getSharedRegionalCertificateAuthorityTest() + { + $transport = $this->createTransport(); + $gapicClient = $this->createClient([ + 'transport' => $transport, + ]); + $this->assertTrue($transport->isExhausted()); + // Mock response + $name2 = 'name2-1052831874'; + $expectedResponse = new SharedRegionalCertificateAuthority(); + $expectedResponse->setName($name2); + $transport->addResponse($expectedResponse); + // Mock request + $formattedName = $gapicClient->sharedRegionalCertificateAuthorityName('[PROJECT]', '[LOCATION]'); + $request = (new GetSharedRegionalCertificateAuthorityRequest())->setName($formattedName); + $response = $gapicClient->getSharedRegionalCertificateAuthority($request); + $this->assertEquals($expectedResponse, $response); + $actualRequests = $transport->popReceivedCalls(); + $this->assertSame(1, count($actualRequests)); + $actualFuncCall = $actualRequests[0]->getFuncCall(); + $actualRequestObject = $actualRequests[0]->getRequestObject(); + $this->assertSame( + '/google.cloud.redis.cluster.v1.CloudRedisCluster/GetSharedRegionalCertificateAuthority', + $actualFuncCall + ); + $actualValue = $actualRequestObject->getName(); + $this->assertProtobufEquals($formattedName, $actualValue); + $this->assertTrue($transport->isExhausted()); + } + + /** @test */ + public function getSharedRegionalCertificateAuthorityExceptionTest() + { + $transport = $this->createTransport(); + $gapicClient = $this->createClient([ + 'transport' => $transport, + ]); + $this->assertTrue($transport->isExhausted()); + $status = new stdClass(); + $status->code = Code::DATA_LOSS; + $status->details = 'internal error'; + $expectedExceptionMessage = json_encode( + [ + 'message' => 'internal error', + 'code' => Code::DATA_LOSS, + 'status' => 'DATA_LOSS', + 'details' => [], + ], + JSON_PRETTY_PRINT + ); + $transport->addResponse(null, $status); + // Mock request + $formattedName = $gapicClient->sharedRegionalCertificateAuthorityName('[PROJECT]', '[LOCATION]'); + $request = (new GetSharedRegionalCertificateAuthorityRequest())->setName($formattedName); + try { + $gapicClient->getSharedRegionalCertificateAuthority($request); + // If the $gapicClient method call did not throw, fail the test + $this->fail('Expected an ApiException, but no exception was thrown.'); + } catch (ApiException $ex) { + $this->assertEquals($status->code, $ex->getCode()); + $this->assertEquals($expectedExceptionMessage, $ex->getMessage()); + } + // Call popReceivedCalls to ensure the stub is exhausted + $transport->popReceivedCalls(); + $this->assertTrue($transport->isExhausted()); + } + /** @test */ public function listBackupCollectionsTest() { @@ -1316,6 +1398,8 @@ public function rescheduleClusterMaintenanceTest() $deletionProtectionEnabled = true; $backupCollection = 'backupCollection-1182285509'; $kmsKey = 'kmsKey-591635343'; + $serverCaPool = 'serverCaPool-1294323103'; + $rotateServerCertificate = false; $expectedResponse = new Cluster(); $expectedResponse->setName($name2); $expectedResponse->setUid($uid); @@ -1326,6 +1410,8 @@ public function rescheduleClusterMaintenanceTest() $expectedResponse->setDeletionProtectionEnabled($deletionProtectionEnabled); $expectedResponse->setBackupCollection($backupCollection); $expectedResponse->setKmsKey($kmsKey); + $expectedResponse->setServerCaPool($serverCaPool); + $expectedResponse->setRotateServerCertificate($rotateServerCertificate); $anyResponse = new Any(); $anyResponse->setValue($expectedResponse->serializeToString()); $completeOperation = new Operation(); @@ -1467,6 +1553,8 @@ public function updateClusterTest() $deletionProtectionEnabled = true; $backupCollection = 'backupCollection-1182285509'; $kmsKey = 'kmsKey-591635343'; + $serverCaPool = 'serverCaPool-1294323103'; + $rotateServerCertificate = false; $expectedResponse = new Cluster(); $expectedResponse->setName($name); $expectedResponse->setUid($uid); @@ -1477,6 +1565,8 @@ public function updateClusterTest() $expectedResponse->setDeletionProtectionEnabled($deletionProtectionEnabled); $expectedResponse->setBackupCollection($backupCollection); $expectedResponse->setKmsKey($kmsKey); + $expectedResponse->setServerCaPool($serverCaPool); + $expectedResponse->setRotateServerCertificate($rotateServerCertificate); $anyResponse = new Any(); $anyResponse->setValue($expectedResponse->serializeToString()); $completeOperation = new Operation(); @@ -1743,6 +1833,8 @@ public function backupClusterAsyncTest() $deletionProtectionEnabled = true; $backupCollection = 'backupCollection-1182285509'; $kmsKey = 'kmsKey-591635343'; + $serverCaPool = 'serverCaPool-1294323103'; + $rotateServerCertificate = false; $expectedResponse = new Cluster(); $expectedResponse->setName($name2); $expectedResponse->setUid($uid); @@ -1753,6 +1845,8 @@ public function backupClusterAsyncTest() $expectedResponse->setDeletionProtectionEnabled($deletionProtectionEnabled); $expectedResponse->setBackupCollection($backupCollection); $expectedResponse->setKmsKey($kmsKey); + $expectedResponse->setServerCaPool($serverCaPool); + $expectedResponse->setRotateServerCertificate($rotateServerCertificate); $anyResponse = new Any(); $anyResponse->setValue($expectedResponse->serializeToString()); $completeOperation = new Operation();