diff --git a/google-cloud-redis-cluster-v1/.owlbot-manifest.json b/google-cloud-redis-cluster-v1/.owlbot-manifest.json index cb8aeb842fe7..fa6a539cf156 100644 --- a/google-cloud-redis-cluster-v1/.owlbot-manifest.json +++ b/google-cloud-redis-cluster-v1/.owlbot-manifest.json @@ -55,6 +55,7 @@ "snippets/cloud_redis_cluster/get_backup_collection.rb", "snippets/cloud_redis_cluster/get_cluster.rb", "snippets/cloud_redis_cluster/get_cluster_certificate_authority.rb", + "snippets/cloud_redis_cluster/get_shared_regional_certificate_authority.rb", "snippets/cloud_redis_cluster/list_backup_collections.rb", "snippets/cloud_redis_cluster/list_backups.rb", "snippets/cloud_redis_cluster/list_clusters.rb", diff --git a/google-cloud-redis-cluster-v1/gapic_metadata.json b/google-cloud-redis-cluster-v1/gapic_metadata.json index 17aa593b5298..4af592c365e7 100644 --- a/google-cloud-redis-cluster-v1/gapic_metadata.json +++ b/google-cloud-redis-cluster-v1/gapic_metadata.json @@ -40,6 +40,11 @@ "get_cluster_certificate_authority" ] }, + "GetSharedRegionalCertificateAuthority": { + "methods": [ + "get_shared_regional_certificate_authority" + ] + }, "RescheduleClusterMaintenance": { "methods": [ "reschedule_cluster_maintenance" diff --git a/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/cloud_redis_cluster/client.rb b/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/cloud_redis_cluster/client.rb index c9da072df21b..8fbe6168b8e4 100644 --- a/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/cloud_redis_cluster/client.rb +++ b/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/cloud_redis_cluster/client.rb @@ -865,6 +865,94 @@ def get_cluster_certificate_authority request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Gets the details of regional certificate authority information for Redis + # cluster. + # + # @overload get_shared_regional_certificate_authority(request, options = nil) + # Pass arguments to `get_shared_regional_certificate_authority` via a request object, either of type + # {::Google::Cloud::Redis::Cluster::V1::GetSharedRegionalCertificateAuthorityRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Redis::Cluster::V1::GetSharedRegionalCertificateAuthorityRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload get_shared_regional_certificate_authority(name: nil) + # Pass arguments to `get_shared_regional_certificate_authority` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # 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. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::Redis::Cluster::V1::SharedRegionalCertificateAuthority] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::Redis::Cluster::V1::SharedRegionalCertificateAuthority] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/redis/cluster/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Redis::Cluster::V1::CloudRedisCluster::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Redis::Cluster::V1::GetSharedRegionalCertificateAuthorityRequest.new + # + # # Call the get_shared_regional_certificate_authority method. + # result = client.get_shared_regional_certificate_authority request + # + # # The returned object is of type Google::Cloud::Redis::Cluster::V1::SharedRegionalCertificateAuthority. + # p result + # + def get_shared_regional_certificate_authority request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Redis::Cluster::V1::GetSharedRegionalCertificateAuthorityRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.get_shared_regional_certificate_authority.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Redis::Cluster::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.get_shared_regional_certificate_authority.timeout, + metadata: metadata, + retry_policy: @config.rpcs.get_shared_regional_certificate_authority.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @cloud_redis_cluster_stub.call_rpc :get_shared_regional_certificate_authority, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Reschedules upcoming maintenance event. # @@ -1874,6 +1962,11 @@ class Rpcs # attr_reader :get_cluster_certificate_authority ## + # RPC-specific configuration for `get_shared_regional_certificate_authority` + # @return [::Gapic::Config::Method] + # + attr_reader :get_shared_regional_certificate_authority + ## # RPC-specific configuration for `reschedule_cluster_maintenance` # @return [::Gapic::Config::Method] # @@ -1928,6 +2021,8 @@ def initialize parent_rpcs = nil @create_cluster = ::Gapic::Config::Method.new create_cluster_config get_cluster_certificate_authority_config = parent_rpcs.get_cluster_certificate_authority if parent_rpcs.respond_to? :get_cluster_certificate_authority @get_cluster_certificate_authority = ::Gapic::Config::Method.new get_cluster_certificate_authority_config + get_shared_regional_certificate_authority_config = parent_rpcs.get_shared_regional_certificate_authority if parent_rpcs.respond_to? :get_shared_regional_certificate_authority + @get_shared_regional_certificate_authority = ::Gapic::Config::Method.new get_shared_regional_certificate_authority_config reschedule_cluster_maintenance_config = parent_rpcs.reschedule_cluster_maintenance if parent_rpcs.respond_to? :reschedule_cluster_maintenance @reschedule_cluster_maintenance = ::Gapic::Config::Method.new reschedule_cluster_maintenance_config list_backup_collections_config = parent_rpcs.list_backup_collections if parent_rpcs.respond_to? :list_backup_collections diff --git a/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/cloud_redis_cluster/paths.rb b/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/cloud_redis_cluster/paths.rb index 5db5ba5158b4..38eeec898c85 100644 --- a/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/cloud_redis_cluster/paths.rb +++ b/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/cloud_redis_cluster/paths.rb @@ -65,6 +65,25 @@ def backup_collection_path project:, location:, backup_collection: "projects/#{project}/locations/#{location}/backupCollections/#{backup_collection}" end + ## + # Create a fully-qualified CaPool resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/caPools/{ca_pool}` + # + # @param project [String] + # @param location [String] + # @param ca_pool [String] + # + # @return [::String] + def ca_pool_path project:, location:, ca_pool: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + + "projects/#{project}/locations/#{location}/caPools/#{ca_pool}" + end + ## # Create a fully-qualified CertificateAuthority resource string. # @@ -219,6 +238,23 @@ def service_attachment_path project:, region:, service_attachment: "projects/#{project}/regions/#{region}/serviceAttachments/#{service_attachment}" end + ## + # Create a fully-qualified SharedRegionalCertificateAuthority resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/sharedRegionalCertificateAuthority` + # + # @param project [String] + # @param location [String] + # + # @return [::String] + def shared_regional_certificate_authority_path project:, location: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + + "projects/#{project}/locations/#{location}/sharedRegionalCertificateAuthority" + end + extend self end end diff --git a/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/cloud_redis_cluster/rest/client.rb b/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/cloud_redis_cluster/rest/client.rb index b6d601cd4112..e8889bd637ca 100644 --- a/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/cloud_redis_cluster/rest/client.rb +++ b/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/cloud_redis_cluster/rest/client.rb @@ -817,6 +817,87 @@ def get_cluster_certificate_authority request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Gets the details of regional certificate authority information for Redis + # cluster. + # + # @overload get_shared_regional_certificate_authority(request, options = nil) + # Pass arguments to `get_shared_regional_certificate_authority` via a request object, either of type + # {::Google::Cloud::Redis::Cluster::V1::GetSharedRegionalCertificateAuthorityRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Redis::Cluster::V1::GetSharedRegionalCertificateAuthorityRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload get_shared_regional_certificate_authority(name: nil) + # Pass arguments to `get_shared_regional_certificate_authority` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # 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. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Redis::Cluster::V1::SharedRegionalCertificateAuthority] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Redis::Cluster::V1::SharedRegionalCertificateAuthority] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/redis/cluster/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Redis::Cluster::V1::CloudRedisCluster::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Redis::Cluster::V1::GetSharedRegionalCertificateAuthorityRequest.new + # + # # Call the get_shared_regional_certificate_authority method. + # result = client.get_shared_regional_certificate_authority request + # + # # The returned object is of type Google::Cloud::Redis::Cluster::V1::SharedRegionalCertificateAuthority. + # p result + # + def get_shared_regional_certificate_authority request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Redis::Cluster::V1::GetSharedRegionalCertificateAuthorityRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.get_shared_regional_certificate_authority.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Redis::Cluster::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.get_shared_regional_certificate_authority.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.get_shared_regional_certificate_authority.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @cloud_redis_cluster_stub.get_shared_regional_certificate_authority request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Reschedules upcoming maintenance event. # @@ -1740,6 +1821,11 @@ class Rpcs # attr_reader :get_cluster_certificate_authority ## + # RPC-specific configuration for `get_shared_regional_certificate_authority` + # @return [::Gapic::Config::Method] + # + attr_reader :get_shared_regional_certificate_authority + ## # RPC-specific configuration for `reschedule_cluster_maintenance` # @return [::Gapic::Config::Method] # @@ -1794,6 +1880,8 @@ def initialize parent_rpcs = nil @create_cluster = ::Gapic::Config::Method.new create_cluster_config get_cluster_certificate_authority_config = parent_rpcs.get_cluster_certificate_authority if parent_rpcs.respond_to? :get_cluster_certificate_authority @get_cluster_certificate_authority = ::Gapic::Config::Method.new get_cluster_certificate_authority_config + get_shared_regional_certificate_authority_config = parent_rpcs.get_shared_regional_certificate_authority if parent_rpcs.respond_to? :get_shared_regional_certificate_authority + @get_shared_regional_certificate_authority = ::Gapic::Config::Method.new get_shared_regional_certificate_authority_config reschedule_cluster_maintenance_config = parent_rpcs.reschedule_cluster_maintenance if parent_rpcs.respond_to? :reschedule_cluster_maintenance @reschedule_cluster_maintenance = ::Gapic::Config::Method.new reschedule_cluster_maintenance_config list_backup_collections_config = parent_rpcs.list_backup_collections if parent_rpcs.respond_to? :list_backup_collections diff --git a/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/cloud_redis_cluster/rest/service_stub.rb b/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/cloud_redis_cluster/rest/service_stub.rb index 8f801b06cefa..2fd9ad018599 100644 --- a/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/cloud_redis_cluster/rest/service_stub.rb +++ b/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/cloud_redis_cluster/rest/service_stub.rb @@ -314,6 +314,46 @@ def get_cluster_certificate_authority request_pb, options = nil end end + ## + # Baseline implementation for the get_shared_regional_certificate_authority REST call + # + # @param request_pb [::Google::Cloud::Redis::Cluster::V1::GetSharedRegionalCertificateAuthorityRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Redis::Cluster::V1::SharedRegionalCertificateAuthority] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Redis::Cluster::V1::SharedRegionalCertificateAuthority] + # A result object deserialized from the server's reply + def get_shared_regional_certificate_authority request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_get_shared_regional_certificate_authority_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "get_shared_regional_certificate_authority", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Redis::Cluster::V1::SharedRegionalCertificateAuthority.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + ## # Baseline implementation for the reschedule_cluster_maintenance REST call # @@ -762,6 +802,27 @@ def self.transcode_get_cluster_certificate_authority_request request_pb transcoder.transcode request_pb end + ## + # @private + # + # GRPC transcoding helper method for the get_shared_regional_certificate_authority REST call + # + # @param request_pb [::Google::Cloud::Redis::Cluster::V1::GetSharedRegionalCertificateAuthorityRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_get_shared_regional_certificate_authority_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/sharedRegionalCertificateAuthority/?$}, false] + ] + ) + transcoder.transcode request_pb + end + ## # @private # diff --git a/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/cloud_redis_cluster_pb.rb b/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/cloud_redis_cluster_pb.rb index 2c72c29d075d..940defce5be2 100644 --- a/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/cloud_redis_cluster_pb.rb +++ b/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/cloud_redis_cluster_pb.rb @@ -19,7 +19,7 @@ require 'google/type/timeofday_pb' -descriptor_data = "\n7google/cloud/redis/cluster/v1/cloud_redis_cluster.proto\x12\x1dgoogle.cloud.redis.cluster.v1\x1a\x1cgoogle/api/annotations.proto\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\n\x14\x43reateClusterRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x17\n\ncluster_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12<\n\x07\x63luster\x18\x03 \x01(\x0b\x32&.google.cloud.redis.cluster.v1.ClusterB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x04 \x01(\t\"w\n\x13ListClustersRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"~\n\x14ListClustersResponse\x12\x38\n\x08\x63lusters\x18\x01 \x03(\x0b\x32&.google.cloud.redis.cluster.v1.Cluster\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"\x9e\x01\n\x14UpdateClusterRequest\x12\x34\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12<\n\x07\x63luster\x18\x02 \x01(\x0b\x32&.google.cloud.redis.cluster.v1.ClusterB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x03 \x01(\t\"G\n\x11GetClusterRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1credis.googleapis.com/Cluster\"^\n\x14\x44\x65leteClusterRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1credis.googleapis.com/Cluster\x12\x12\n\nrequest_id\x18\x02 \x01(\t\"h\n%GetClusterCertificateAuthorityRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)redis.googleapis.com/CertificateAuthority\"\x8e\x01\n\x1cListBackupCollectionsRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\x12%redis.googleapis.com/BackupCollection\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\"\x9a\x01\n\x1dListBackupCollectionsResponse\x12K\n\x12\x62\x61\x63kup_collections\x18\x01 \x03(\x0b\x32/.google.cloud.redis.cluster.v1.BackupCollection\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"Y\n\x1aGetBackupCollectionRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%redis.googleapis.com/BackupCollection\"z\n\x12ListBackupsRequest\x12\x33\n\x06parent\x18\x01 \x01(\tB#\xe0\x41\x02\xfa\x41\x1d\x12\x1bredis.googleapis.com/Backup\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\"{\n\x13ListBackupsResponse\x12\x36\n\x07\x62\x61\x63kups\x18\x01 \x03(\x0b\x32%.google.cloud.redis.cluster.v1.Backup\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"E\n\x10GetBackupRequest\x12\x31\n\x04name\x18\x01 \x01(\tB#\xe0\x41\x02\xfa\x41\x1d\n\x1bredis.googleapis.com/Backup\"i\n\x13\x44\x65leteBackupRequest\x12\x31\n\x04name\x18\x01 \x01(\tB#\xe0\x41\x02\xfa\x41\x1d\n\x1bredis.googleapis.com/Backup\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"m\n\x13\x45xportBackupRequest\x12\x14\n\ngcs_bucket\x18\x03 \x01(\tH\x00\x12\x31\n\x04name\x18\x01 \x01(\tB#\xe0\x41\x02\xfa\x41\x1d\n\x1bredis.googleapis.com/BackupB\r\n\x0b\x64\x65stination\"\xa2\x01\n\x14\x42\x61\x63kupClusterRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1credis.googleapis.com/Cluster\x12+\n\x03ttl\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x01\x12\x1b\n\tbackup_id\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x00\x88\x01\x01\x42\x0c\n\n_backup_id\"\xd0\x16\n\x07\x43luster\x12Q\n\ngcs_source\x18\" \x01(\x0b\x32\x36.google.cloud.redis.cluster.v1.Cluster.GcsBackupSourceB\x03\xe0\x41\x01H\x00\x12`\n\x15managed_backup_source\x18# \x01(\x0b\x32:.google.cloud.redis.cluster.v1.Cluster.ManagedBackupSourceB\x03\xe0\x41\x01H\x00\x12\x14\n\x04name\x18\x01 \x01(\tB\x06\xe0\x41\x02\xe0\x41\x08\x12\x34\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12@\n\x05state\x18\x04 \x01(\x0e\x32,.google.cloud.redis.cluster.v1.Cluster.StateB\x03\xe0\x41\x03\x12\x10\n\x03uid\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12\x1f\n\rreplica_count\x18\x08 \x01(\x05\x42\x03\xe0\x41\x01H\x01\x88\x01\x01\x12Q\n\x12\x61uthorization_mode\x18\x0b \x01(\x0e\x32\x30.google.cloud.redis.cluster.v1.AuthorizationModeB\x03\xe0\x41\x01\x12Z\n\x17transit_encryption_mode\x18\x0c \x01(\x0e\x32\x34.google.cloud.redis.cluster.v1.TransitEncryptionModeB\x03\xe0\x41\x01\x12\x19\n\x07size_gb\x18\r \x01(\x05\x42\x03\xe0\x41\x03H\x02\x88\x01\x01\x12\x1d\n\x0bshard_count\x18\x0e \x01(\x05\x42\x03\xe0\x41\x01H\x03\x88\x01\x01\x12\x42\n\x0bpsc_configs\x18\x0f \x03(\x0b\x32(.google.cloud.redis.cluster.v1.PscConfigB\x03\xe0\x41\x01\x12R\n\x13\x64iscovery_endpoints\x18\x10 \x03(\x0b\x32\x30.google.cloud.redis.cluster.v1.DiscoveryEndpointB\x03\xe0\x41\x03\x12J\n\x0fpsc_connections\x18\x11 \x03(\x0b\x32,.google.cloud.redis.cluster.v1.PscConnectionB\x03\xe0\x41\x03\x12I\n\nstate_info\x18\x12 \x01(\x0b\x32\x30.google.cloud.redis.cluster.v1.Cluster.StateInfoB\x03\xe0\x41\x03\x12?\n\tnode_type\x18\x13 \x01(\x0e\x32\'.google.cloud.redis.cluster.v1.NodeTypeB\x03\xe0\x41\x01\x12X\n\x12persistence_config\x18\x14 \x01(\x0b\x32\x37.google.cloud.redis.cluster.v1.ClusterPersistenceConfigB\x03\xe0\x41\x01\x12T\n\rredis_configs\x18\x15 \x03(\x0b\x32\x38.google.cloud.redis.cluster.v1.Cluster.RedisConfigsEntryB\x03\xe0\x41\x01\x12!\n\x0fprecise_size_gb\x18\x16 \x01(\x01\x42\x03\xe0\x41\x03H\x04\x88\x01\x01\x12\\\n\x18zone_distribution_config\x18\x17 \x01(\x0b\x32\x35.google.cloud.redis.cluster.v1.ZoneDistributionConfigB\x03\xe0\x41\x01\x12k\n cross_cluster_replication_config\x18\x18 \x01(\x0b\x32<.google.cloud.redis.cluster.v1.CrossClusterReplicationConfigB\x03\xe0\x41\x01\x12-\n\x1b\x64\x65letion_protection_enabled\x18\x19 \x01(\x08\x42\x03\xe0\x41\x01H\x05\x88\x01\x01\x12]\n\x12maintenance_policy\x18\x1a \x01(\x0b\x32\x37.google.cloud.redis.cluster.v1.ClusterMaintenancePolicyB\x03\xe0\x41\x01H\x06\x88\x01\x01\x12\x61\n\x14maintenance_schedule\x18\x1b \x01(\x0b\x32\x39.google.cloud.redis.cluster.v1.ClusterMaintenanceScheduleB\x03\xe0\x41\x03H\x07\x88\x01\x01\x12Y\n\x17psc_service_attachments\x18\x1e \x03(\x0b\x32\x33.google.cloud.redis.cluster.v1.PscServiceAttachmentB\x03\xe0\x41\x03\x12N\n\x11\x63luster_endpoints\x18$ \x03(\x0b\x32..google.cloud.redis.cluster.v1.ClusterEndpointB\x03\xe0\x41\x01\x12P\n\x11\x62\x61\x63kup_collection\x18\' \x01(\tB0\xe0\x41\x01\xe0\x41\x03\xfa\x41\'\n%redis.googleapis.com/BackupCollectionH\x08\x88\x01\x01\x12?\n\x07kms_key\x18( \x01(\tB)\xe0\x41\x01\xfa\x41#\n!cloudkms.googleapis.com/CryptoKeyH\t\x88\x01\x01\x12Z\n\x17\x61utomated_backup_config\x18* \x01(\x0b\x32\x34.google.cloud.redis.cluster.v1.AutomatedBackupConfigB\x03\xe0\x41\x01\x12K\n\x0f\x65ncryption_info\x18+ \x01(\x0b\x32-.google.cloud.redis.cluster.v1.EncryptionInfoB\x03\xe0\x41\x03\x1a\xea\x01\n\tStateInfo\x12R\n\x0bupdate_info\x18\x01 \x01(\x0b\x32;.google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfoH\x00\x1a\x80\x01\n\nUpdateInfo\x12\x1f\n\x12target_shard_count\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x14target_replica_count\x18\x02 \x01(\x05H\x01\x88\x01\x01\x42\x15\n\x13_target_shard_countB\x17\n\x15_target_replica_countB\x06\n\x04info\x1a$\n\x0fGcsBackupSource\x12\x11\n\x04uris\x18\x01 \x03(\tB\x03\xe0\x41\x01\x1a*\n\x13ManagedBackupSource\x12\x13\n\x06\x62\x61\x63kup\x18\x01 \x01(\tB\x03\xe0\x41\x01\x1a\x33\n\x11RedisConfigsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"T\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x43REATING\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x12\x0c\n\x08UPDATING\x10\x03\x12\x0c\n\x08\x44\x45LETING\x10\x04:p\xea\x41m\n\x1credis.googleapis.com/Cluster\x12:projects/{project}/locations/{location}/clusters/{cluster}*\x08\x63lusters2\x07\x63lusterB\x10\n\x0eimport_sourcesB\x10\n\x0e_replica_countB\n\n\x08_size_gbB\x0e\n\x0c_shard_countB\x12\n\x10_precise_size_gbB\x1e\n\x1c_deletion_protection_enabledB\x15\n\x13_maintenance_policyB\x17\n\x15_maintenance_scheduleB\x14\n\x12_backup_collectionB\n\n\x08_kms_key\"\x85\x04\n\x15\x41utomatedBackupConfig\x12t\n\x18\x66ixed_frequency_schedule\x18\x02 \x01(\x0b\x32K.google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencyScheduleB\x03\xe0\x41\x01H\x00\x12l\n\x15\x61utomated_backup_mode\x18\x01 \x01(\x0e\x32H.google.cloud.redis.cluster.v1.AutomatedBackupConfig.AutomatedBackupModeB\x03\xe0\x41\x01\x12\x36\n\tretention\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x01H\x01\x88\x01\x01\x1a]\n\x16\x46ixedFrequencySchedule\x12\x34\n\nstart_time\x18\x02 \x01(\x0b\x32\x16.google.type.TimeOfDayB\x03\xe0\x41\x02H\x00\x88\x01\x01\x42\r\n\x0b_start_time\"W\n\x13\x41utomatedBackupMode\x12%\n!AUTOMATED_BACKUP_MODE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x44ISABLED\x10\x01\x12\x0b\n\x07\x45NABLED\x10\x02\x42\n\n\x08scheduleB\x0c\n\n_retention\"\xf6\x02\n\x10\x42\x61\x63kupCollection\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12 \n\x0b\x63luster_uid\x18\x03 \x01(\tB\x0b\xe0\x41\x03\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x12\x35\n\x07\x63luster\x18\x04 \x01(\tB$\xe0\x41\x03\xfa\x41\x1e\n\x1credis.googleapis.com/Cluster\x12:\n\x07kms_key\x18\x05 \x01(\tB)\xe0\x41\x03\xfa\x41#\n!cloudkms.googleapis.com/CryptoKey\x12\x18\n\x03uid\x18\x06 \x01(\tB\x0b\xe0\x41\x03\xe2\x8c\xcf\xd7\x08\x02\x08\x01:\x9f\x01\xea\x41\x9b\x01\n%redis.googleapis.com/BackupCollection\x12Mprojects/{project}/locations/{location}/backupCollections/{backup_collection}*\x11\x62\x61\x63kupCollections2\x10\x62\x61\x63kupCollection\"\x82\x08\n\x06\x42\x61\x63kup\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x35\n\x07\x63luster\x18\x03 \x01(\tB$\xe0\x41\x03\xfa\x41\x1e\n\x1credis.googleapis.com/Cluster\x12 \n\x0b\x63luster_uid\x18\x04 \x01(\tB\x0b\xe0\x41\x03\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x12\x1d\n\x10total_size_bytes\x18\x05 \x01(\x03\x42\x03\xe0\x41\x03\x12\x34\n\x0b\x65xpire_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x1b\n\x0e\x65ngine_version\x18\x07 \x01(\tB\x03\xe0\x41\x03\x12\x44\n\x0c\x62\x61\x63kup_files\x18\x08 \x03(\x0b\x32).google.cloud.redis.cluster.v1.BackupFileB\x03\xe0\x41\x03\x12?\n\tnode_type\x18\t \x01(\x0e\x32\'.google.cloud.redis.cluster.v1.NodeTypeB\x03\xe0\x41\x03\x12\x1a\n\rreplica_count\x18\n \x01(\x05\x42\x03\xe0\x41\x03\x12\x18\n\x0bshard_count\x18\x0b \x01(\x05\x42\x03\xe0\x41\x03\x12J\n\x0b\x62\x61\x63kup_type\x18\x0c \x01(\x0e\x32\x30.google.cloud.redis.cluster.v1.Backup.BackupTypeB\x03\xe0\x41\x03\x12?\n\x05state\x18\r \x01(\x0e\x32+.google.cloud.redis.cluster.v1.Backup.StateB\x03\xe0\x41\x03\x12K\n\x0f\x65ncryption_info\x18\x0e \x01(\x0b\x32-.google.cloud.redis.cluster.v1.EncryptionInfoB\x03\xe0\x41\x03\x12\x18\n\x03uid\x18\x0f \x01(\tB\x0b\xe0\x41\x03\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"G\n\nBackupType\x12\x1b\n\x17\x42\x41\x43KUP_TYPE_UNSPECIFIED\x10\x00\x12\r\n\tON_DEMAND\x10\x01\x12\r\n\tAUTOMATED\x10\x02\"U\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x43REATING\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x12\x0c\n\x08\x44\x45LETING\x10\x03\x12\r\n\tSUSPENDED\x10\x04:\x92\x01\xea\x41\x8e\x01\n\x1bredis.googleapis.com/Backup\x12^projects/{project}/locations/{location}/backupCollections/{backup_collection}/backups/{backup}*\x07\x62\x61\x63kups2\x06\x62\x61\x63kup\"s\n\nBackupFile\x12\x16\n\tfile_name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x17\n\nsize_bytes\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\"\x84\x01\n\x14PscServiceAttachment\x12\x1f\n\x12service_attachment\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12K\n\x0f\x63onnection_type\x18\x03 \x01(\x0e\x32-.google.cloud.redis.cluster.v1.ConnectionTypeB\x03\xe0\x41\x03\"\xf4\x06\n\x1d\x43rossClusterReplicationConfig\x12^\n\x0c\x63luster_role\x18\x01 \x01(\x0e\x32H.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.ClusterRole\x12\x63\n\x0fprimary_cluster\x18\x02 \x01(\x0b\x32J.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster\x12\x66\n\x12secondary_clusters\x18\x03 \x03(\x0b\x32J.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster\x12\x34\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12`\n\nmembership\x18\x05 \x01(\x0b\x32G.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.MembershipB\x03\xe0\x41\x03\x1aU\n\rRemoteCluster\x12\x32\n\x07\x63luster\x18\x01 \x01(\tB!\xfa\x41\x1e\n\x1credis.googleapis.com/Cluster\x12\x10\n\x03uid\x18\x02 \x01(\tB\x03\xe0\x41\x03\x1a\xe3\x01\n\nMembership\x12h\n\x0fprimary_cluster\x18\x01 \x01(\x0b\x32J.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteClusterB\x03\xe0\x41\x03\x12k\n\x12secondary_clusters\x18\x02 \x03(\x0b\x32J.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteClusterB\x03\xe0\x41\x03\"Q\n\x0b\x43lusterRole\x12\x1c\n\x18\x43LUSTER_ROLE_UNSPECIFIED\x10\x00\x12\x08\n\x04NONE\x10\x01\x12\x0b\n\x07PRIMARY\x10\x02\x12\r\n\tSECONDARY\x10\x03\"\xe8\x01\n\x18\x43lusterMaintenancePolicy\x12\x34\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12`\n\x19weekly_maintenance_window\x18\x03 \x03(\x0b\x32=.google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow\"q\n\x1e\x43lusterWeeklyMaintenanceWindow\x12#\n\x03\x64\x61y\x18\x01 \x01(\x0e\x32\x16.google.type.DayOfWeek\x12*\n\nstart_time\x18\x02 \x01(\x0b\x32\x16.google.type.TimeOfDay\"\x84\x01\n\x1a\x43lusterMaintenanceSchedule\x12\x33\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\"!\n\tPscConfig\x12\x14\n\x07network\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\x7f\n\x11\x44iscoveryEndpoint\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04port\x18\x02 \x01(\x05\x42\x03\xe0\x41\x03\x12\x41\n\npsc_config\x18\x03 \x01(\x0b\x32(.google.cloud.redis.cluster.v1.PscConfigB\x03\xe0\x41\x03\"\xda\x03\n\rPscConnection\x12\x1e\n\x11psc_connection_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1c\n\x07\x61\x64\x64ress\x18\x02 \x01(\tB\x0b\xe0\x41\x02\xe2\x8c\xcf\xd7\x08\x02\x08\x02\x12\x46\n\x0f\x66orwarding_rule\x18\x03 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%compute.googleapis.com/ForwardingRule\x12\x17\n\nproject_id\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x37\n\x07network\x18\x05 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1e\x63ompute.googleapis.com/Network\x12L\n\x12service_attachment\x18\x06 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(compute.googleapis.com/ServiceAttachment\x12V\n\x15psc_connection_status\x18\x08 \x01(\x0e\x32\x32.google.cloud.redis.cluster.v1.PscConnectionStatusB\x03\xe0\x41\x03\x12K\n\x0f\x63onnection_type\x18\n \x01(\x0e\x32-.google.cloud.redis.cluster.v1.ConnectionTypeB\x03\xe0\x41\x03\"W\n\x0f\x43lusterEndpoint\x12\x44\n\x0b\x63onnections\x18\x01 \x03(\x0b\x32/.google.cloud.redis.cluster.v1.ConnectionDetail\"\xb9\x01\n\x10\x43onnectionDetail\x12O\n\x13psc_auto_connection\x18\x01 \x01(\x0b\x32\x30.google.cloud.redis.cluster.v1.PscAutoConnectionH\x00\x12\x46\n\x0epsc_connection\x18\x02 \x01(\x0b\x32,.google.cloud.redis.cluster.v1.PscConnectionH\x00\x42\x0c\n\nconnection\"\xde\x03\n\x11PscAutoConnection\x12\x1e\n\x11psc_connection_id\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x1c\n\x07\x61\x64\x64ress\x18\x02 \x01(\tB\x0b\xe0\x41\x03\xe2\x8c\xcf\xd7\x08\x02\x08\x02\x12\x46\n\x0f\x66orwarding_rule\x18\x03 \x01(\tB-\xe0\x41\x03\xfa\x41\'\n%compute.googleapis.com/ForwardingRule\x12\x17\n\nproject_id\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x37\n\x07network\x18\x05 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1e\x63ompute.googleapis.com/Network\x12L\n\x12service_attachment\x18\x06 \x01(\tB0\xe0\x41\x03\xfa\x41*\n(compute.googleapis.com/ServiceAttachment\x12V\n\x15psc_connection_status\x18\x08 \x01(\x0e\x32\x32.google.cloud.redis.cluster.v1.PscConnectionStatusB\x03\xe0\x41\x03\x12K\n\x0f\x63onnection_type\x18\t \x01(\x0e\x32-.google.cloud.redis.cluster.v1.ConnectionTypeB\x03\xe0\x41\x03\"\x80\x02\n\x11OperationMetadata\x12\x34\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x13\n\x06target\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04verb\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12\x1b\n\x0estatus_message\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12#\n\x16requested_cancellation\x18\x06 \x01(\x08\x42\x03\xe0\x41\x03\x12\x18\n\x0b\x61pi_version\x18\x07 \x01(\tB\x03\xe0\x41\x03\"\x85\x04\n\x14\x43\x65rtificateAuthority\x12l\n\x11managed_server_ca\x18\x01 \x01(\x0b\x32O.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthorityH\x00\x12\x11\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x08\x1a\xad\x01\n\x1bManagedCertificateAuthority\x12k\n\x08\x63\x61_certs\x18\x01 \x03(\x0b\x32Y.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain\x1a!\n\tCertChain\x12\x14\n\x0c\x63\x65rtificates\x18\x01 \x03(\t:\xae\x01\xea\x41\xaa\x01\n)redis.googleapis.com/CertificateAuthority\x12Oprojects/{project}/locations/{location}/clusters/{cluster}/certificateAuthority*\x16\x63\x65rtificateAuthorities2\x14\x63\x65rtificateAuthorityB\x0b\n\tserver_ca\"\x87\x07\n\x18\x43lusterPersistenceConfig\x12Z\n\x04mode\x18\x01 \x01(\x0e\x32G.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.PersistenceModeB\x03\xe0\x41\x01\x12Z\n\nrdb_config\x18\x02 \x01(\x0b\x32\x41.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfigB\x03\xe0\x41\x01\x12Z\n\naof_config\x18\x03 \x01(\x0b\x32\x41.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfigB\x03\xe0\x41\x01\x1a\xba\x02\n\tRDBConfig\x12r\n\x13rdb_snapshot_period\x18\x01 \x01(\x0e\x32P.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.SnapshotPeriodB\x03\xe0\x41\x01\x12@\n\x17rdb_snapshot_start_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\"w\n\x0eSnapshotPeriod\x12\x1f\n\x1bSNAPSHOT_PERIOD_UNSPECIFIED\x10\x00\x12\x0c\n\x08ONE_HOUR\x10\x01\x12\r\n\tSIX_HOURS\x10\x02\x12\x10\n\x0cTWELVE_HOURS\x10\x03\x12\x15\n\x11TWENTY_FOUR_HOURS\x10\x04\x1a\xc4\x01\n\tAOFConfig\x12h\n\x0c\x61ppend_fsync\x18\x01 \x01(\x0e\x32M.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.AppendFsyncB\x03\xe0\x41\x01\"M\n\x0b\x41ppendFsync\x12\x1c\n\x18\x41PPEND_FSYNC_UNSPECIFIED\x10\x00\x12\x06\n\x02NO\x10\x01\x12\x0c\n\x08\x45VERYSEC\x10\x02\x12\n\n\x06\x41LWAYS\x10\x03\"S\n\x0fPersistenceMode\x12 \n\x1cPERSISTENCE_MODE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x44ISABLED\x10\x01\x12\x07\n\x03RDB\x10\x02\x12\x07\n\x03\x41OF\x10\x03\"\xeb\x01\n\x16ZoneDistributionConfig\x12]\n\x04mode\x18\x01 \x01(\x0e\x32J.google.cloud.redis.cluster.v1.ZoneDistributionConfig.ZoneDistributionModeB\x03\xe0\x41\x01\x12\x11\n\x04zone\x18\x02 \x01(\tB\x03\xe0\x41\x01\"_\n\x14ZoneDistributionMode\x12&\n\"ZONE_DISTRIBUTION_MODE_UNSPECIFIED\x10\x00\x12\x0e\n\nMULTI_ZONE\x10\x01\x12\x0f\n\x0bSINGLE_ZONE\x10\x02\"\xd7\x02\n#RescheduleClusterMaintenanceRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1credis.googleapis.com/Cluster\x12o\n\x0freschedule_type\x18\x02 \x01(\x0e\x32Q.google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest.RescheduleTypeB\x03\xe0\x41\x02\x12\x36\n\rschedule_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\"S\n\x0eRescheduleType\x12\x1f\n\x1bRESCHEDULE_TYPE_UNSPECIFIED\x10\x00\x12\r\n\tIMMEDIATE\x10\x01\x12\x11\n\rSPECIFIC_TIME\x10\x03\"\xfa\x04\n\x0e\x45ncryptionInfo\x12P\n\x0f\x65ncryption_type\x18\x01 \x01(\x0e\x32\x32.google.cloud.redis.cluster.v1.EncryptionInfo.TypeB\x03\xe0\x41\x03\x12J\n\x10kms_key_versions\x18\x02 \x03(\tB0\xe0\x41\x03\xfa\x41*\n(cloudkms.googleapis.com/CryptoKeyVersion\x12]\n\x15kms_key_primary_state\x18\x03 \x01(\x0e\x32\x39.google.cloud.redis.cluster.v1.EncryptionInfo.KmsKeyStateB\x03\xe0\x41\x03\x12\x39\n\x10last_update_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\"\\\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19GOOGLE_DEFAULT_ENCRYPTION\x10\x01\x12\x1f\n\x1b\x43USTOMER_MANAGED_ENCRYPTION\x10\x02\"\xd1\x01\n\x0bKmsKeyState\x12\x1d\n\x19KMS_KEY_STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x45NABLED\x10\x01\x12\x15\n\x11PERMISSION_DENIED\x10\x02\x12\x0c\n\x08\x44ISABLED\x10\x03\x12\r\n\tDESTROYED\x10\x04\x12\x15\n\x11\x44\x45STROY_SCHEDULED\x10\x05\x12 \n\x1c\x45KM_KEY_UNREACHABLE_DETECTED\x10\x06\x12\x14\n\x10\x42ILLING_DISABLED\x10\x07\x12\x13\n\x0fUNKNOWN_FAILURE\x10\x08*\x83\x01\n\x13PscConnectionStatus\x12%\n!PSC_CONNECTION_STATUS_UNSPECIFIED\x10\x00\x12 \n\x1cPSC_CONNECTION_STATUS_ACTIVE\x10\x01\x12#\n\x1fPSC_CONNECTION_STATUS_NOT_FOUND\x10\x02*^\n\x11\x41uthorizationMode\x12\x19\n\x15\x41UTH_MODE_UNSPECIFIED\x10\x00\x12\x16\n\x12\x41UTH_MODE_IAM_AUTH\x10\x01\x12\x16\n\x12\x41UTH_MODE_DISABLED\x10\x02*\x8f\x01\n\x08NodeType\x12\x19\n\x15NODE_TYPE_UNSPECIFIED\x10\x00\x12\x1a\n\x16REDIS_SHARED_CORE_NANO\x10\x01\x12\x18\n\x14REDIS_HIGHMEM_MEDIUM\x10\x02\x12\x18\n\x14REDIS_HIGHMEM_XLARGE\x10\x03\x12\x18\n\x14REDIS_STANDARD_SMALL\x10\x04*\x99\x01\n\x15TransitEncryptionMode\x12\'\n#TRANSIT_ENCRYPTION_MODE_UNSPECIFIED\x10\x00\x12$\n TRANSIT_ENCRYPTION_MODE_DISABLED\x10\x01\x12\x31\n-TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION\x10\x02*\x89\x01\n\x0e\x43onnectionType\x12\x1f\n\x1b\x43ONNECTION_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x43ONNECTION_TYPE_DISCOVERY\x10\x01\x12\x1b\n\x17\x43ONNECTION_TYPE_PRIMARY\x10\x02\x12\x1a\n\x16\x43ONNECTION_TYPE_READER\x10\x03\x32\x93\x18\n\x11\x43loudRedisCluster\x12\xb6\x01\n\x0cListClusters\x12\x32.google.cloud.redis.cluster.v1.ListClustersRequest\x1a\x33.google.cloud.redis.cluster.v1.ListClustersResponse\"=\xda\x41\x06parent\x82\xd3\xe4\x93\x02.\x12,/v1/{parent=projects/*/locations/*}/clusters\x12\xa3\x01\n\nGetCluster\x12\x30.google.cloud.redis.cluster.v1.GetClusterRequest\x1a&.google.cloud.redis.cluster.v1.Cluster\";\xda\x41\x04name\x82\xd3\xe4\x93\x02.\x12,/v1/{name=projects/*/locations/*/clusters/*}\x12\xe1\x01\n\rUpdateCluster\x12\x33.google.cloud.redis.cluster.v1.UpdateClusterRequest\x1a\x1d.google.longrunning.Operation\"|\xca\x41\x1e\n\x07\x43luster\x12\x13google.protobuf.Any\xda\x41\x13\x63luster,update_mask\x82\xd3\xe4\x93\x02?24/v1/{cluster.name=projects/*/locations/*/clusters/*}:\x07\x63luster\x12\xcf\x01\n\rDeleteCluster\x12\x33.google.cloud.redis.cluster.v1.DeleteClusterRequest\x1a\x1d.google.longrunning.Operation\"j\xca\x41,\n\x15google.protobuf.Empty\x12\x13google.protobuf.Any\xda\x41\x04name\x82\xd3\xe4\x93\x02.*,/v1/{name=projects/*/locations/*/clusters/*}\x12\xdf\x01\n\rCreateCluster\x12\x33.google.cloud.redis.cluster.v1.CreateClusterRequest\x1a\x1d.google.longrunning.Operation\"z\xca\x41\x1e\n\x07\x43luster\x12\x13google.protobuf.Any\xda\x41\x19parent,cluster,cluster_id\x82\xd3\xe4\x93\x02\x37\",/v1/{parent=projects/*/locations/*}/clusters:\x07\x63luster\x12\xed\x01\n\x1eGetClusterCertificateAuthority\x12\x44.google.cloud.redis.cluster.v1.GetClusterCertificateAuthorityRequest\x1a\x33.google.cloud.redis.cluster.v1.CertificateAuthority\"P\xda\x41\x04name\x82\xd3\xe4\x93\x02\x43\x12\x41/v1/{name=projects/*/locations/*/clusters/*/certificateAuthority}\x12\x9e\x02\n\x1cRescheduleClusterMaintenance\x12\x42.google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest\x1a\x1d.google.longrunning.Operation\"\x9a\x01\xca\x41\x1e\n\x07\x43luster\x12\x13google.protobuf.Any\xda\x41\"name,reschedule_type,schedule_time\x82\xd3\xe4\x93\x02N\"I/v1/{name=projects/*/locations/*/clusters/*}:rescheduleClusterMaintenance:\x01*\x12\xda\x01\n\x15ListBackupCollections\x12;.google.cloud.redis.cluster.v1.ListBackupCollectionsRequest\x1a<.google.cloud.redis.cluster.v1.ListBackupCollectionsResponse\"F\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x37\x12\x35/v1/{parent=projects/*/locations/*}/backupCollections\x12\xc7\x01\n\x13GetBackupCollection\x12\x39.google.cloud.redis.cluster.v1.GetBackupCollectionRequest\x1a/.google.cloud.redis.cluster.v1.BackupCollection\"D\xda\x41\x04name\x82\xd3\xe4\x93\x02\x37\x12\x35/v1/{name=projects/*/locations/*/backupCollections/*}\x12\xc6\x01\n\x0bListBackups\x12\x31.google.cloud.redis.cluster.v1.ListBackupsRequest\x1a\x32.google.cloud.redis.cluster.v1.ListBackupsResponse\"P\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x41\x12?/v1/{parent=projects/*/locations/*/backupCollections/*}/backups\x12\xb3\x01\n\tGetBackup\x12/.google.cloud.redis.cluster.v1.GetBackupRequest\x1a%.google.cloud.redis.cluster.v1.Backup\"N\xda\x41\x04name\x82\xd3\xe4\x93\x02\x41\x12?/v1/{name=projects/*/locations/*/backupCollections/*/backups/*}\x12\xe0\x01\n\x0c\x44\x65leteBackup\x12\x32.google.cloud.redis.cluster.v1.DeleteBackupRequest\x1a\x1d.google.longrunning.Operation\"}\xca\x41,\n\x15google.protobuf.Empty\x12\x13google.protobuf.Any\xda\x41\x04name\x82\xd3\xe4\x93\x02\x41*?/v1/{name=projects/*/locations/*/backupCollections/*/backups/*}\x12\xd4\x01\n\x0c\x45xportBackup\x12\x32.google.cloud.redis.cluster.v1.ExportBackupRequest\x1a\x1d.google.longrunning.Operation\"q\xca\x41\x1d\n\x06\x42\x61\x63kup\x12\x13google.protobuf.Any\x82\xd3\xe4\x93\x02K\"F/v1/{name=projects/*/locations/*/backupCollections/*/backups/*}:export:\x01*\x12\xcb\x01\n\rBackupCluster\x12\x33.google.cloud.redis.cluster.v1.BackupClusterRequest\x1a\x1d.google.longrunning.Operation\"f\xca\x41\x1e\n\x07\x43luster\x12\x13google.protobuf.Any\xda\x41\x04name\x82\xd3\xe4\x93\x02\x38\"3/v1/{name=projects/*/locations/*/clusters/*}:backup:\x01*\x1aH\xca\x41\x14redis.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xff\x05\n!com.google.cloud.redis.cluster.v1B\x16\x43loudRedisClusterProtoP\x01Z;cloud.google.com/go/redis/cluster/apiv1/clusterpb;clusterpb\xea\x02!Google::Cloud::Redis::Cluster::V1\xea\x41n\n%compute.googleapis.com/ForwardingRule\x12\x45projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}\xea\x41N\n\x1e\x63ompute.googleapis.com/Network\x12,projects/{project}/global/networks/{network}\xea\x41w\n(compute.googleapis.com/ServiceAttachment\x12Kprojects/{project}/regions/{region}/serviceAttachments/{service_attachment}\xea\x41x\n!cloudkms.googleapis.com/CryptoKey\x12Sprojects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}\xea\x41\xa6\x01\n(cloudkms.googleapis.com/CryptoKeyVersion\x12zprojects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}b\x06proto3" +descriptor_data = "\n7google/cloud/redis/cluster/v1/cloud_redis_cluster.proto\x12\x1dgoogle.cloud.redis.cluster.v1\x1a\x1cgoogle/api/annotations.proto\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\n\x14\x43reateClusterRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x17\n\ncluster_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12<\n\x07\x63luster\x18\x03 \x01(\x0b\x32&.google.cloud.redis.cluster.v1.ClusterB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x04 \x01(\t\"w\n\x13ListClustersRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"~\n\x14ListClustersResponse\x12\x38\n\x08\x63lusters\x18\x01 \x03(\x0b\x32&.google.cloud.redis.cluster.v1.Cluster\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"\x9e\x01\n\x14UpdateClusterRequest\x12\x34\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12<\n\x07\x63luster\x18\x02 \x01(\x0b\x32&.google.cloud.redis.cluster.v1.ClusterB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x03 \x01(\t\"G\n\x11GetClusterRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1credis.googleapis.com/Cluster\"^\n\x14\x44\x65leteClusterRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1credis.googleapis.com/Cluster\x12\x12\n\nrequest_id\x18\x02 \x01(\t\"h\n%GetClusterCertificateAuthorityRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)redis.googleapis.com/CertificateAuthority\"\x8e\x01\n\x1cListBackupCollectionsRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\x12%redis.googleapis.com/BackupCollection\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\"\x9a\x01\n\x1dListBackupCollectionsResponse\x12K\n\x12\x62\x61\x63kup_collections\x18\x01 \x03(\x0b\x32/.google.cloud.redis.cluster.v1.BackupCollection\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"Y\n\x1aGetBackupCollectionRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%redis.googleapis.com/BackupCollection\"z\n\x12ListBackupsRequest\x12\x33\n\x06parent\x18\x01 \x01(\tB#\xe0\x41\x02\xfa\x41\x1d\x12\x1bredis.googleapis.com/Backup\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\"{\n\x13ListBackupsResponse\x12\x36\n\x07\x62\x61\x63kups\x18\x01 \x03(\x0b\x32%.google.cloud.redis.cluster.v1.Backup\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"E\n\x10GetBackupRequest\x12\x31\n\x04name\x18\x01 \x01(\tB#\xe0\x41\x02\xfa\x41\x1d\n\x1bredis.googleapis.com/Backup\"i\n\x13\x44\x65leteBackupRequest\x12\x31\n\x04name\x18\x01 \x01(\tB#\xe0\x41\x02\xfa\x41\x1d\n\x1bredis.googleapis.com/Backup\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"m\n\x13\x45xportBackupRequest\x12\x14\n\ngcs_bucket\x18\x03 \x01(\tH\x00\x12\x31\n\x04name\x18\x01 \x01(\tB#\xe0\x41\x02\xfa\x41\x1d\n\x1bredis.googleapis.com/BackupB\r\n\x0b\x64\x65stination\"\xa2\x01\n\x14\x42\x61\x63kupClusterRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1credis.googleapis.com/Cluster\x12+\n\x03ttl\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x01\x12\x1b\n\tbackup_id\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x00\x88\x01\x01\x42\x0c\n\n_backup_id\"\xd9\x18\n\x07\x43luster\x12Q\n\ngcs_source\x18\" \x01(\x0b\x32\x36.google.cloud.redis.cluster.v1.Cluster.GcsBackupSourceB\x03\xe0\x41\x01H\x00\x12`\n\x15managed_backup_source\x18# \x01(\x0b\x32:.google.cloud.redis.cluster.v1.Cluster.ManagedBackupSourceB\x03\xe0\x41\x01H\x00\x12\x14\n\x04name\x18\x01 \x01(\tB\x06\xe0\x41\x02\xe0\x41\x08\x12\x34\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12@\n\x05state\x18\x04 \x01(\x0e\x32,.google.cloud.redis.cluster.v1.Cluster.StateB\x03\xe0\x41\x03\x12\x10\n\x03uid\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12\x1f\n\rreplica_count\x18\x08 \x01(\x05\x42\x03\xe0\x41\x01H\x01\x88\x01\x01\x12Q\n\x12\x61uthorization_mode\x18\x0b \x01(\x0e\x32\x30.google.cloud.redis.cluster.v1.AuthorizationModeB\x03\xe0\x41\x01\x12Z\n\x17transit_encryption_mode\x18\x0c \x01(\x0e\x32\x34.google.cloud.redis.cluster.v1.TransitEncryptionModeB\x03\xe0\x41\x01\x12\x19\n\x07size_gb\x18\r \x01(\x05\x42\x03\xe0\x41\x03H\x02\x88\x01\x01\x12\x1d\n\x0bshard_count\x18\x0e \x01(\x05\x42\x03\xe0\x41\x01H\x03\x88\x01\x01\x12\x42\n\x0bpsc_configs\x18\x0f \x03(\x0b\x32(.google.cloud.redis.cluster.v1.PscConfigB\x03\xe0\x41\x01\x12R\n\x13\x64iscovery_endpoints\x18\x10 \x03(\x0b\x32\x30.google.cloud.redis.cluster.v1.DiscoveryEndpointB\x03\xe0\x41\x03\x12J\n\x0fpsc_connections\x18\x11 \x03(\x0b\x32,.google.cloud.redis.cluster.v1.PscConnectionB\x03\xe0\x41\x03\x12I\n\nstate_info\x18\x12 \x01(\x0b\x32\x30.google.cloud.redis.cluster.v1.Cluster.StateInfoB\x03\xe0\x41\x03\x12?\n\tnode_type\x18\x13 \x01(\x0e\x32\'.google.cloud.redis.cluster.v1.NodeTypeB\x03\xe0\x41\x01\x12X\n\x12persistence_config\x18\x14 \x01(\x0b\x32\x37.google.cloud.redis.cluster.v1.ClusterPersistenceConfigB\x03\xe0\x41\x01\x12T\n\rredis_configs\x18\x15 \x03(\x0b\x32\x38.google.cloud.redis.cluster.v1.Cluster.RedisConfigsEntryB\x03\xe0\x41\x01\x12!\n\x0fprecise_size_gb\x18\x16 \x01(\x01\x42\x03\xe0\x41\x03H\x04\x88\x01\x01\x12\\\n\x18zone_distribution_config\x18\x17 \x01(\x0b\x32\x35.google.cloud.redis.cluster.v1.ZoneDistributionConfigB\x03\xe0\x41\x01\x12k\n cross_cluster_replication_config\x18\x18 \x01(\x0b\x32<.google.cloud.redis.cluster.v1.CrossClusterReplicationConfigB\x03\xe0\x41\x01\x12-\n\x1b\x64\x65letion_protection_enabled\x18\x19 \x01(\x08\x42\x03\xe0\x41\x01H\x05\x88\x01\x01\x12]\n\x12maintenance_policy\x18\x1a \x01(\x0b\x32\x37.google.cloud.redis.cluster.v1.ClusterMaintenancePolicyB\x03\xe0\x41\x01H\x06\x88\x01\x01\x12\x61\n\x14maintenance_schedule\x18\x1b \x01(\x0b\x32\x39.google.cloud.redis.cluster.v1.ClusterMaintenanceScheduleB\x03\xe0\x41\x03H\x07\x88\x01\x01\x12Y\n\x17psc_service_attachments\x18\x1e \x03(\x0b\x32\x33.google.cloud.redis.cluster.v1.PscServiceAttachmentB\x03\xe0\x41\x03\x12N\n\x11\x63luster_endpoints\x18$ \x03(\x0b\x32..google.cloud.redis.cluster.v1.ClusterEndpointB\x03\xe0\x41\x01\x12P\n\x11\x62\x61\x63kup_collection\x18\' \x01(\tB0\xe0\x41\x01\xe0\x41\x03\xfa\x41\'\n%redis.googleapis.com/BackupCollectionH\x08\x88\x01\x01\x12?\n\x07kms_key\x18( \x01(\tB)\xe0\x41\x01\xfa\x41#\n!cloudkms.googleapis.com/CryptoKeyH\t\x88\x01\x01\x12Z\n\x17\x61utomated_backup_config\x18* \x01(\x0b\x32\x34.google.cloud.redis.cluster.v1.AutomatedBackupConfigB\x03\xe0\x41\x01\x12K\n\x0f\x65ncryption_info\x18+ \x01(\x0b\x32-.google.cloud.redis.cluster.v1.EncryptionInfoB\x03\xe0\x41\x03\x12M\n\x0eserver_ca_mode\x18\x35 \x01(\x0e\x32+.google.cloud.redis.cluster.v1.ServerCaModeB\x03\xe0\x41\x01H\n\x88\x01\x01\x12\x44\n\x0eserver_ca_pool\x18\x36 \x01(\tB\'\xe0\x41\x01\xfa\x41!\n\x1fprivateca.googleapis.com/CaPoolH\x0b\x88\x01\x01\x12.\n\x19rotate_server_certificate\x18\x37 \x01(\x08\x42\x06\xe0\x41\x01\xe0\x41\x04H\x0c\x88\x01\x01\x1a\xea\x01\n\tStateInfo\x12R\n\x0bupdate_info\x18\x01 \x01(\x0b\x32;.google.cloud.redis.cluster.v1.Cluster.StateInfo.UpdateInfoH\x00\x1a\x80\x01\n\nUpdateInfo\x12\x1f\n\x12target_shard_count\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x14target_replica_count\x18\x02 \x01(\x05H\x01\x88\x01\x01\x42\x15\n\x13_target_shard_countB\x17\n\x15_target_replica_countB\x06\n\x04info\x1a$\n\x0fGcsBackupSource\x12\x11\n\x04uris\x18\x01 \x03(\tB\x03\xe0\x41\x01\x1a*\n\x13ManagedBackupSource\x12\x13\n\x06\x62\x61\x63kup\x18\x01 \x01(\tB\x03\xe0\x41\x01\x1a\x33\n\x11RedisConfigsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"T\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x43REATING\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x12\x0c\n\x08UPDATING\x10\x03\x12\x0c\n\x08\x44\x45LETING\x10\x04:p\xea\x41m\n\x1credis.googleapis.com/Cluster\x12:projects/{project}/locations/{location}/clusters/{cluster}*\x08\x63lusters2\x07\x63lusterB\x10\n\x0eimport_sourcesB\x10\n\x0e_replica_countB\n\n\x08_size_gbB\x0e\n\x0c_shard_countB\x12\n\x10_precise_size_gbB\x1e\n\x1c_deletion_protection_enabledB\x15\n\x13_maintenance_policyB\x17\n\x15_maintenance_scheduleB\x14\n\x12_backup_collectionB\n\n\x08_kms_keyB\x11\n\x0f_server_ca_modeB\x11\n\x0f_server_ca_poolB\x1c\n\x1a_rotate_server_certificate\"\x85\x04\n\x15\x41utomatedBackupConfig\x12t\n\x18\x66ixed_frequency_schedule\x18\x02 \x01(\x0b\x32K.google.cloud.redis.cluster.v1.AutomatedBackupConfig.FixedFrequencyScheduleB\x03\xe0\x41\x01H\x00\x12l\n\x15\x61utomated_backup_mode\x18\x01 \x01(\x0e\x32H.google.cloud.redis.cluster.v1.AutomatedBackupConfig.AutomatedBackupModeB\x03\xe0\x41\x01\x12\x36\n\tretention\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x01H\x01\x88\x01\x01\x1a]\n\x16\x46ixedFrequencySchedule\x12\x34\n\nstart_time\x18\x02 \x01(\x0b\x32\x16.google.type.TimeOfDayB\x03\xe0\x41\x02H\x00\x88\x01\x01\x42\r\n\x0b_start_time\"W\n\x13\x41utomatedBackupMode\x12%\n!AUTOMATED_BACKUP_MODE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x44ISABLED\x10\x01\x12\x0b\n\x07\x45NABLED\x10\x02\x42\n\n\x08scheduleB\x0c\n\n_retention\"\xf6\x02\n\x10\x42\x61\x63kupCollection\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12 \n\x0b\x63luster_uid\x18\x03 \x01(\tB\x0b\xe0\x41\x03\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x12\x35\n\x07\x63luster\x18\x04 \x01(\tB$\xe0\x41\x03\xfa\x41\x1e\n\x1credis.googleapis.com/Cluster\x12:\n\x07kms_key\x18\x05 \x01(\tB)\xe0\x41\x03\xfa\x41#\n!cloudkms.googleapis.com/CryptoKey\x12\x18\n\x03uid\x18\x06 \x01(\tB\x0b\xe0\x41\x03\xe2\x8c\xcf\xd7\x08\x02\x08\x01:\x9f\x01\xea\x41\x9b\x01\n%redis.googleapis.com/BackupCollection\x12Mprojects/{project}/locations/{location}/backupCollections/{backup_collection}*\x11\x62\x61\x63kupCollections2\x10\x62\x61\x63kupCollection\"\x82\x08\n\x06\x42\x61\x63kup\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x35\n\x07\x63luster\x18\x03 \x01(\tB$\xe0\x41\x03\xfa\x41\x1e\n\x1credis.googleapis.com/Cluster\x12 \n\x0b\x63luster_uid\x18\x04 \x01(\tB\x0b\xe0\x41\x03\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x12\x1d\n\x10total_size_bytes\x18\x05 \x01(\x03\x42\x03\xe0\x41\x03\x12\x34\n\x0b\x65xpire_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x1b\n\x0e\x65ngine_version\x18\x07 \x01(\tB\x03\xe0\x41\x03\x12\x44\n\x0c\x62\x61\x63kup_files\x18\x08 \x03(\x0b\x32).google.cloud.redis.cluster.v1.BackupFileB\x03\xe0\x41\x03\x12?\n\tnode_type\x18\t \x01(\x0e\x32\'.google.cloud.redis.cluster.v1.NodeTypeB\x03\xe0\x41\x03\x12\x1a\n\rreplica_count\x18\n \x01(\x05\x42\x03\xe0\x41\x03\x12\x18\n\x0bshard_count\x18\x0b \x01(\x05\x42\x03\xe0\x41\x03\x12J\n\x0b\x62\x61\x63kup_type\x18\x0c \x01(\x0e\x32\x30.google.cloud.redis.cluster.v1.Backup.BackupTypeB\x03\xe0\x41\x03\x12?\n\x05state\x18\r \x01(\x0e\x32+.google.cloud.redis.cluster.v1.Backup.StateB\x03\xe0\x41\x03\x12K\n\x0f\x65ncryption_info\x18\x0e \x01(\x0b\x32-.google.cloud.redis.cluster.v1.EncryptionInfoB\x03\xe0\x41\x03\x12\x18\n\x03uid\x18\x0f \x01(\tB\x0b\xe0\x41\x03\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"G\n\nBackupType\x12\x1b\n\x17\x42\x41\x43KUP_TYPE_UNSPECIFIED\x10\x00\x12\r\n\tON_DEMAND\x10\x01\x12\r\n\tAUTOMATED\x10\x02\"U\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x43REATING\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x12\x0c\n\x08\x44\x45LETING\x10\x03\x12\r\n\tSUSPENDED\x10\x04:\x92\x01\xea\x41\x8e\x01\n\x1bredis.googleapis.com/Backup\x12^projects/{project}/locations/{location}/backupCollections/{backup_collection}/backups/{backup}*\x07\x62\x61\x63kups2\x06\x62\x61\x63kup\"s\n\nBackupFile\x12\x16\n\tfile_name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x17\n\nsize_bytes\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\"\x84\x01\n\x14PscServiceAttachment\x12\x1f\n\x12service_attachment\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12K\n\x0f\x63onnection_type\x18\x03 \x01(\x0e\x32-.google.cloud.redis.cluster.v1.ConnectionTypeB\x03\xe0\x41\x03\"\xf4\x06\n\x1d\x43rossClusterReplicationConfig\x12^\n\x0c\x63luster_role\x18\x01 \x01(\x0e\x32H.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.ClusterRole\x12\x63\n\x0fprimary_cluster\x18\x02 \x01(\x0b\x32J.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster\x12\x66\n\x12secondary_clusters\x18\x03 \x03(\x0b\x32J.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteCluster\x12\x34\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12`\n\nmembership\x18\x05 \x01(\x0b\x32G.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.MembershipB\x03\xe0\x41\x03\x1aU\n\rRemoteCluster\x12\x32\n\x07\x63luster\x18\x01 \x01(\tB!\xfa\x41\x1e\n\x1credis.googleapis.com/Cluster\x12\x10\n\x03uid\x18\x02 \x01(\tB\x03\xe0\x41\x03\x1a\xe3\x01\n\nMembership\x12h\n\x0fprimary_cluster\x18\x01 \x01(\x0b\x32J.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteClusterB\x03\xe0\x41\x03\x12k\n\x12secondary_clusters\x18\x02 \x03(\x0b\x32J.google.cloud.redis.cluster.v1.CrossClusterReplicationConfig.RemoteClusterB\x03\xe0\x41\x03\"Q\n\x0b\x43lusterRole\x12\x1c\n\x18\x43LUSTER_ROLE_UNSPECIFIED\x10\x00\x12\x08\n\x04NONE\x10\x01\x12\x0b\n\x07PRIMARY\x10\x02\x12\r\n\tSECONDARY\x10\x03\"\xe8\x01\n\x18\x43lusterMaintenancePolicy\x12\x34\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12`\n\x19weekly_maintenance_window\x18\x03 \x03(\x0b\x32=.google.cloud.redis.cluster.v1.ClusterWeeklyMaintenanceWindow\"q\n\x1e\x43lusterWeeklyMaintenanceWindow\x12#\n\x03\x64\x61y\x18\x01 \x01(\x0e\x32\x16.google.type.DayOfWeek\x12*\n\nstart_time\x18\x02 \x01(\x0b\x32\x16.google.type.TimeOfDay\"\x84\x01\n\x1a\x43lusterMaintenanceSchedule\x12\x33\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\"!\n\tPscConfig\x12\x14\n\x07network\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\x7f\n\x11\x44iscoveryEndpoint\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04port\x18\x02 \x01(\x05\x42\x03\xe0\x41\x03\x12\x41\n\npsc_config\x18\x03 \x01(\x0b\x32(.google.cloud.redis.cluster.v1.PscConfigB\x03\xe0\x41\x03\"\xda\x03\n\rPscConnection\x12\x1e\n\x11psc_connection_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1c\n\x07\x61\x64\x64ress\x18\x02 \x01(\tB\x0b\xe0\x41\x02\xe2\x8c\xcf\xd7\x08\x02\x08\x02\x12\x46\n\x0f\x66orwarding_rule\x18\x03 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%compute.googleapis.com/ForwardingRule\x12\x17\n\nproject_id\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x37\n\x07network\x18\x05 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1e\x63ompute.googleapis.com/Network\x12L\n\x12service_attachment\x18\x06 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(compute.googleapis.com/ServiceAttachment\x12V\n\x15psc_connection_status\x18\x08 \x01(\x0e\x32\x32.google.cloud.redis.cluster.v1.PscConnectionStatusB\x03\xe0\x41\x03\x12K\n\x0f\x63onnection_type\x18\n \x01(\x0e\x32-.google.cloud.redis.cluster.v1.ConnectionTypeB\x03\xe0\x41\x03\"W\n\x0f\x43lusterEndpoint\x12\x44\n\x0b\x63onnections\x18\x01 \x03(\x0b\x32/.google.cloud.redis.cluster.v1.ConnectionDetail\"\xb9\x01\n\x10\x43onnectionDetail\x12O\n\x13psc_auto_connection\x18\x01 \x01(\x0b\x32\x30.google.cloud.redis.cluster.v1.PscAutoConnectionH\x00\x12\x46\n\x0epsc_connection\x18\x02 \x01(\x0b\x32,.google.cloud.redis.cluster.v1.PscConnectionH\x00\x42\x0c\n\nconnection\"\xde\x03\n\x11PscAutoConnection\x12\x1e\n\x11psc_connection_id\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x1c\n\x07\x61\x64\x64ress\x18\x02 \x01(\tB\x0b\xe0\x41\x03\xe2\x8c\xcf\xd7\x08\x02\x08\x02\x12\x46\n\x0f\x66orwarding_rule\x18\x03 \x01(\tB-\xe0\x41\x03\xfa\x41\'\n%compute.googleapis.com/ForwardingRule\x12\x17\n\nproject_id\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x37\n\x07network\x18\x05 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1e\x63ompute.googleapis.com/Network\x12L\n\x12service_attachment\x18\x06 \x01(\tB0\xe0\x41\x03\xfa\x41*\n(compute.googleapis.com/ServiceAttachment\x12V\n\x15psc_connection_status\x18\x08 \x01(\x0e\x32\x32.google.cloud.redis.cluster.v1.PscConnectionStatusB\x03\xe0\x41\x03\x12K\n\x0f\x63onnection_type\x18\t \x01(\x0e\x32-.google.cloud.redis.cluster.v1.ConnectionTypeB\x03\xe0\x41\x03\"\xfe\x04\n\"SharedRegionalCertificateAuthority\x12\x82\x01\n\x11managed_server_ca\x18\x02 \x01(\x0b\x32\x65.google.cloud.redis.cluster.v1.SharedRegionalCertificateAuthority.RegionalManagedCertificateAuthorityH\x00\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x1a\xdc\x01\n#RegionalManagedCertificateAuthority\x12\x89\x01\n\x08\x63\x61_certs\x18\x01 \x03(\x0b\x32w.google.cloud.redis.cluster.v1.SharedRegionalCertificateAuthority.RegionalManagedCertificateAuthority.RegionalCertChain\x1a)\n\x11RegionalCertChain\x12\x14\n\x0c\x63\x65rtificates\x18\x01 \x03(\t:\xd3\x01\xea\x41\xcf\x01\n7redis.googleapis.com/SharedRegionalCertificateAuthority\x12Jprojects/{project}/locations/{location}/sharedRegionalCertificateAuthority*$sharedRegionalCertificateAuthorities2\"sharedRegionalCertificateAuthorityB\x0b\n\tserver_ca\"}\n,GetSharedRegionalCertificateAuthorityRequest\x12M\n\x04name\x18\x01 \x01(\tB?\xe0\x41\x02\xfa\x41\x39\n7redis.googleapis.com/SharedRegionalCertificateAuthority\"\x80\x02\n\x11OperationMetadata\x12\x34\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x13\n\x06target\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04verb\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12\x1b\n\x0estatus_message\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12#\n\x16requested_cancellation\x18\x06 \x01(\x08\x42\x03\xe0\x41\x03\x12\x18\n\x0b\x61pi_version\x18\x07 \x01(\tB\x03\xe0\x41\x03\"\x85\x04\n\x14\x43\x65rtificateAuthority\x12l\n\x11managed_server_ca\x18\x01 \x01(\x0b\x32O.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthorityH\x00\x12\x11\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x08\x1a\xad\x01\n\x1bManagedCertificateAuthority\x12k\n\x08\x63\x61_certs\x18\x01 \x03(\x0b\x32Y.google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority.CertChain\x1a!\n\tCertChain\x12\x14\n\x0c\x63\x65rtificates\x18\x01 \x03(\t:\xae\x01\xea\x41\xaa\x01\n)redis.googleapis.com/CertificateAuthority\x12Oprojects/{project}/locations/{location}/clusters/{cluster}/certificateAuthority*\x16\x63\x65rtificateAuthorities2\x14\x63\x65rtificateAuthorityB\x0b\n\tserver_ca\"\x87\x07\n\x18\x43lusterPersistenceConfig\x12Z\n\x04mode\x18\x01 \x01(\x0e\x32G.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.PersistenceModeB\x03\xe0\x41\x01\x12Z\n\nrdb_config\x18\x02 \x01(\x0b\x32\x41.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfigB\x03\xe0\x41\x01\x12Z\n\naof_config\x18\x03 \x01(\x0b\x32\x41.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfigB\x03\xe0\x41\x01\x1a\xba\x02\n\tRDBConfig\x12r\n\x13rdb_snapshot_period\x18\x01 \x01(\x0e\x32P.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.RDBConfig.SnapshotPeriodB\x03\xe0\x41\x01\x12@\n\x17rdb_snapshot_start_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\"w\n\x0eSnapshotPeriod\x12\x1f\n\x1bSNAPSHOT_PERIOD_UNSPECIFIED\x10\x00\x12\x0c\n\x08ONE_HOUR\x10\x01\x12\r\n\tSIX_HOURS\x10\x02\x12\x10\n\x0cTWELVE_HOURS\x10\x03\x12\x15\n\x11TWENTY_FOUR_HOURS\x10\x04\x1a\xc4\x01\n\tAOFConfig\x12h\n\x0c\x61ppend_fsync\x18\x01 \x01(\x0e\x32M.google.cloud.redis.cluster.v1.ClusterPersistenceConfig.AOFConfig.AppendFsyncB\x03\xe0\x41\x01\"M\n\x0b\x41ppendFsync\x12\x1c\n\x18\x41PPEND_FSYNC_UNSPECIFIED\x10\x00\x12\x06\n\x02NO\x10\x01\x12\x0c\n\x08\x45VERYSEC\x10\x02\x12\n\n\x06\x41LWAYS\x10\x03\"S\n\x0fPersistenceMode\x12 \n\x1cPERSISTENCE_MODE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x44ISABLED\x10\x01\x12\x07\n\x03RDB\x10\x02\x12\x07\n\x03\x41OF\x10\x03\"\xeb\x01\n\x16ZoneDistributionConfig\x12]\n\x04mode\x18\x01 \x01(\x0e\x32J.google.cloud.redis.cluster.v1.ZoneDistributionConfig.ZoneDistributionModeB\x03\xe0\x41\x01\x12\x11\n\x04zone\x18\x02 \x01(\tB\x03\xe0\x41\x01\"_\n\x14ZoneDistributionMode\x12&\n\"ZONE_DISTRIBUTION_MODE_UNSPECIFIED\x10\x00\x12\x0e\n\nMULTI_ZONE\x10\x01\x12\x0f\n\x0bSINGLE_ZONE\x10\x02\"\xd7\x02\n#RescheduleClusterMaintenanceRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1credis.googleapis.com/Cluster\x12o\n\x0freschedule_type\x18\x02 \x01(\x0e\x32Q.google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest.RescheduleTypeB\x03\xe0\x41\x02\x12\x36\n\rschedule_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\"S\n\x0eRescheduleType\x12\x1f\n\x1bRESCHEDULE_TYPE_UNSPECIFIED\x10\x00\x12\r\n\tIMMEDIATE\x10\x01\x12\x11\n\rSPECIFIC_TIME\x10\x03\"\xfa\x04\n\x0e\x45ncryptionInfo\x12P\n\x0f\x65ncryption_type\x18\x01 \x01(\x0e\x32\x32.google.cloud.redis.cluster.v1.EncryptionInfo.TypeB\x03\xe0\x41\x03\x12J\n\x10kms_key_versions\x18\x02 \x03(\tB0\xe0\x41\x03\xfa\x41*\n(cloudkms.googleapis.com/CryptoKeyVersion\x12]\n\x15kms_key_primary_state\x18\x03 \x01(\x0e\x32\x39.google.cloud.redis.cluster.v1.EncryptionInfo.KmsKeyStateB\x03\xe0\x41\x03\x12\x39\n\x10last_update_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\"\\\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19GOOGLE_DEFAULT_ENCRYPTION\x10\x01\x12\x1f\n\x1b\x43USTOMER_MANAGED_ENCRYPTION\x10\x02\"\xd1\x01\n\x0bKmsKeyState\x12\x1d\n\x19KMS_KEY_STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x45NABLED\x10\x01\x12\x15\n\x11PERMISSION_DENIED\x10\x02\x12\x0c\n\x08\x44ISABLED\x10\x03\x12\r\n\tDESTROYED\x10\x04\x12\x15\n\x11\x44\x45STROY_SCHEDULED\x10\x05\x12 \n\x1c\x45KM_KEY_UNREACHABLE_DETECTED\x10\x06\x12\x14\n\x10\x42ILLING_DISABLED\x10\x07\x12\x13\n\x0fUNKNOWN_FAILURE\x10\x08*\x83\x01\n\x13PscConnectionStatus\x12%\n!PSC_CONNECTION_STATUS_UNSPECIFIED\x10\x00\x12 \n\x1cPSC_CONNECTION_STATUS_ACTIVE\x10\x01\x12#\n\x1fPSC_CONNECTION_STATUS_NOT_FOUND\x10\x02*^\n\x11\x41uthorizationMode\x12\x19\n\x15\x41UTH_MODE_UNSPECIFIED\x10\x00\x12\x16\n\x12\x41UTH_MODE_IAM_AUTH\x10\x01\x12\x16\n\x12\x41UTH_MODE_DISABLED\x10\x02*\x8f\x01\n\x08NodeType\x12\x19\n\x15NODE_TYPE_UNSPECIFIED\x10\x00\x12\x1a\n\x16REDIS_SHARED_CORE_NANO\x10\x01\x12\x18\n\x14REDIS_HIGHMEM_MEDIUM\x10\x02\x12\x18\n\x14REDIS_HIGHMEM_XLARGE\x10\x03\x12\x18\n\x14REDIS_STANDARD_SMALL\x10\x04*\x99\x01\n\x15TransitEncryptionMode\x12\'\n#TRANSIT_ENCRYPTION_MODE_UNSPECIFIED\x10\x00\x12$\n TRANSIT_ENCRYPTION_MODE_DISABLED\x10\x01\x12\x31\n-TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION\x10\x02*\xba\x01\n\x0cServerCaMode\x12\x1e\n\x1aSERVER_CA_MODE_UNSPECIFIED\x10\x00\x12\x31\n-SERVER_CA_MODE_GOOGLE_MANAGED_PER_INSTANCE_CA\x10\x01\x12+\n\'SERVER_CA_MODE_GOOGLE_MANAGED_SHARED_CA\x10\x02\x12*\n&SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA\x10\x03*\x89\x01\n\x0e\x43onnectionType\x12\x1f\n\x1b\x43ONNECTION_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x43ONNECTION_TYPE_DISCOVERY\x10\x01\x12\x1b\n\x17\x43ONNECTION_TYPE_PRIMARY\x10\x02\x12\x1a\n\x16\x43ONNECTION_TYPE_READER\x10\x03\x32\xa2\x1a\n\x11\x43loudRedisCluster\x12\xb6\x01\n\x0cListClusters\x12\x32.google.cloud.redis.cluster.v1.ListClustersRequest\x1a\x33.google.cloud.redis.cluster.v1.ListClustersResponse\"=\xda\x41\x06parent\x82\xd3\xe4\x93\x02.\x12,/v1/{parent=projects/*/locations/*}/clusters\x12\xa3\x01\n\nGetCluster\x12\x30.google.cloud.redis.cluster.v1.GetClusterRequest\x1a&.google.cloud.redis.cluster.v1.Cluster\";\xda\x41\x04name\x82\xd3\xe4\x93\x02.\x12,/v1/{name=projects/*/locations/*/clusters/*}\x12\xe1\x01\n\rUpdateCluster\x12\x33.google.cloud.redis.cluster.v1.UpdateClusterRequest\x1a\x1d.google.longrunning.Operation\"|\xca\x41\x1e\n\x07\x43luster\x12\x13google.protobuf.Any\xda\x41\x13\x63luster,update_mask\x82\xd3\xe4\x93\x02?24/v1/{cluster.name=projects/*/locations/*/clusters/*}:\x07\x63luster\x12\xcf\x01\n\rDeleteCluster\x12\x33.google.cloud.redis.cluster.v1.DeleteClusterRequest\x1a\x1d.google.longrunning.Operation\"j\xca\x41,\n\x15google.protobuf.Empty\x12\x13google.protobuf.Any\xda\x41\x04name\x82\xd3\xe4\x93\x02.*,/v1/{name=projects/*/locations/*/clusters/*}\x12\xdf\x01\n\rCreateCluster\x12\x33.google.cloud.redis.cluster.v1.CreateClusterRequest\x1a\x1d.google.longrunning.Operation\"z\xca\x41\x1e\n\x07\x43luster\x12\x13google.protobuf.Any\xda\x41\x19parent,cluster,cluster_id\x82\xd3\xe4\x93\x02\x37\",/v1/{parent=projects/*/locations/*}/clusters:\x07\x63luster\x12\xed\x01\n\x1eGetClusterCertificateAuthority\x12\x44.google.cloud.redis.cluster.v1.GetClusterCertificateAuthorityRequest\x1a\x33.google.cloud.redis.cluster.v1.CertificateAuthority\"P\xda\x41\x04name\x82\xd3\xe4\x93\x02\x43\x12\x41/v1/{name=projects/*/locations/*/clusters/*/certificateAuthority}\x12\x8c\x02\n%GetSharedRegionalCertificateAuthority\x12K.google.cloud.redis.cluster.v1.GetSharedRegionalCertificateAuthorityRequest\x1a\x41.google.cloud.redis.cluster.v1.SharedRegionalCertificateAuthority\"S\xda\x41\x04name\x82\xd3\xe4\x93\x02\x46\x12\x44/v1/{name=projects/*/locations/*/sharedRegionalCertificateAuthority}\x12\x9e\x02\n\x1cRescheduleClusterMaintenance\x12\x42.google.cloud.redis.cluster.v1.RescheduleClusterMaintenanceRequest\x1a\x1d.google.longrunning.Operation\"\x9a\x01\xca\x41\x1e\n\x07\x43luster\x12\x13google.protobuf.Any\xda\x41\"name,reschedule_type,schedule_time\x82\xd3\xe4\x93\x02N\"I/v1/{name=projects/*/locations/*/clusters/*}:rescheduleClusterMaintenance:\x01*\x12\xda\x01\n\x15ListBackupCollections\x12;.google.cloud.redis.cluster.v1.ListBackupCollectionsRequest\x1a<.google.cloud.redis.cluster.v1.ListBackupCollectionsResponse\"F\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x37\x12\x35/v1/{parent=projects/*/locations/*}/backupCollections\x12\xc7\x01\n\x13GetBackupCollection\x12\x39.google.cloud.redis.cluster.v1.GetBackupCollectionRequest\x1a/.google.cloud.redis.cluster.v1.BackupCollection\"D\xda\x41\x04name\x82\xd3\xe4\x93\x02\x37\x12\x35/v1/{name=projects/*/locations/*/backupCollections/*}\x12\xc6\x01\n\x0bListBackups\x12\x31.google.cloud.redis.cluster.v1.ListBackupsRequest\x1a\x32.google.cloud.redis.cluster.v1.ListBackupsResponse\"P\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x41\x12?/v1/{parent=projects/*/locations/*/backupCollections/*}/backups\x12\xb3\x01\n\tGetBackup\x12/.google.cloud.redis.cluster.v1.GetBackupRequest\x1a%.google.cloud.redis.cluster.v1.Backup\"N\xda\x41\x04name\x82\xd3\xe4\x93\x02\x41\x12?/v1/{name=projects/*/locations/*/backupCollections/*/backups/*}\x12\xe0\x01\n\x0c\x44\x65leteBackup\x12\x32.google.cloud.redis.cluster.v1.DeleteBackupRequest\x1a\x1d.google.longrunning.Operation\"}\xca\x41,\n\x15google.protobuf.Empty\x12\x13google.protobuf.Any\xda\x41\x04name\x82\xd3\xe4\x93\x02\x41*?/v1/{name=projects/*/locations/*/backupCollections/*/backups/*}\x12\xd4\x01\n\x0c\x45xportBackup\x12\x32.google.cloud.redis.cluster.v1.ExportBackupRequest\x1a\x1d.google.longrunning.Operation\"q\xca\x41\x1d\n\x06\x42\x61\x63kup\x12\x13google.protobuf.Any\x82\xd3\xe4\x93\x02K\"F/v1/{name=projects/*/locations/*/backupCollections/*/backups/*}:export:\x01*\x12\xcb\x01\n\rBackupCluster\x12\x33.google.cloud.redis.cluster.v1.BackupClusterRequest\x1a\x1d.google.longrunning.Operation\"f\xca\x41\x1e\n\x07\x43luster\x12\x13google.protobuf.Any\xda\x41\x04name\x82\xd3\xe4\x93\x02\x38\"3/v1/{name=projects/*/locations/*/clusters/*}:backup:\x01*\x1aH\xca\x41\x14redis.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xde\x06\n!com.google.cloud.redis.cluster.v1B\x16\x43loudRedisClusterProtoP\x01Z;cloud.google.com/go/redis/cluster/apiv1/clusterpb;clusterpb\xea\x02!Google::Cloud::Redis::Cluster::V1\xea\x41n\n%compute.googleapis.com/ForwardingRule\x12\x45projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}\xea\x41N\n\x1e\x63ompute.googleapis.com/Network\x12,projects/{project}/global/networks/{network}\xea\x41w\n(compute.googleapis.com/ServiceAttachment\x12Kprojects/{project}/regions/{region}/serviceAttachments/{service_attachment}\xea\x41x\n!cloudkms.googleapis.com/CryptoKey\x12Sprojects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}\xea\x41\xa6\x01\n(cloudkms.googleapis.com/CryptoKeyVersion\x12zprojects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}\xea\x41\\\n\x1fprivateca.googleapis.com/CaPool\x12\x39projects/{project}/locations/{location}/caPools/{ca_pool}b\x06proto3" pool = ::Google::Protobuf::DescriptorPool.generated_pool pool.add_serialized_file(descriptor_data) @@ -73,6 +73,10 @@ module V1 ClusterEndpoint = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.redis.cluster.v1.ClusterEndpoint").msgclass ConnectionDetail = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.redis.cluster.v1.ConnectionDetail").msgclass PscAutoConnection = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.redis.cluster.v1.PscAutoConnection").msgclass + SharedRegionalCertificateAuthority = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.redis.cluster.v1.SharedRegionalCertificateAuthority").msgclass + SharedRegionalCertificateAuthority::RegionalManagedCertificateAuthority = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.redis.cluster.v1.SharedRegionalCertificateAuthority.RegionalManagedCertificateAuthority").msgclass + SharedRegionalCertificateAuthority::RegionalManagedCertificateAuthority::RegionalCertChain = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.redis.cluster.v1.SharedRegionalCertificateAuthority.RegionalManagedCertificateAuthority.RegionalCertChain").msgclass + GetSharedRegionalCertificateAuthorityRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.redis.cluster.v1.GetSharedRegionalCertificateAuthorityRequest").msgclass OperationMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.redis.cluster.v1.OperationMetadata").msgclass CertificateAuthority = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.redis.cluster.v1.CertificateAuthority").msgclass CertificateAuthority::ManagedCertificateAuthority = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.redis.cluster.v1.CertificateAuthority.ManagedCertificateAuthority").msgclass @@ -94,6 +98,7 @@ module V1 AuthorizationMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.redis.cluster.v1.AuthorizationMode").enummodule NodeType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.redis.cluster.v1.NodeType").enummodule TransitEncryptionMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.redis.cluster.v1.TransitEncryptionMode").enummodule + ServerCaMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.redis.cluster.v1.ServerCaMode").enummodule ConnectionType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.redis.cluster.v1.ConnectionType").enummodule end end diff --git a/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/cloud_redis_cluster_services_pb.rb b/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/cloud_redis_cluster_services_pb.rb index 4998e0bf5cdd..60ba3a18e30c 100644 --- a/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/cloud_redis_cluster_services_pb.rb +++ b/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/cloud_redis_cluster_services_pb.rb @@ -80,6 +80,9 @@ class Service rpc :CreateCluster, ::Google::Cloud::Redis::Cluster::V1::CreateClusterRequest, ::Google::Longrunning::Operation # Gets the details of certificate authority information for Redis cluster. rpc :GetClusterCertificateAuthority, ::Google::Cloud::Redis::Cluster::V1::GetClusterCertificateAuthorityRequest, ::Google::Cloud::Redis::Cluster::V1::CertificateAuthority + # Gets the details of regional certificate authority information for Redis + # cluster. + rpc :GetSharedRegionalCertificateAuthority, ::Google::Cloud::Redis::Cluster::V1::GetSharedRegionalCertificateAuthorityRequest, ::Google::Cloud::Redis::Cluster::V1::SharedRegionalCertificateAuthority # Reschedules upcoming maintenance event. rpc :RescheduleClusterMaintenance, ::Google::Cloud::Redis::Cluster::V1::RescheduleClusterMaintenanceRequest, ::Google::Longrunning::Operation # Lists all backup collections owned by a consumer project in either the diff --git a/google-cloud-redis-cluster-v1/proto_docs/google/api/client.rb b/google-cloud-redis-cluster-v1/proto_docs/google/api/client.rb index 44c6bee7f2e5..97193034f37c 100644 --- a/google-cloud-redis-cluster-v1/proto_docs/google/api/client.rb +++ b/google-cloud-redis-cluster-v1/proto_docs/google/api/client.rb @@ -141,9 +141,10 @@ class Publishing # # Example of a YAML configuration:: # - # publishing: - # java_settings: - # library_package: com.google.cloud.pubsub.v1 + # publishing: + # library_settings: + # java_settings: + # library_package: com.google.cloud.pubsub.v1 # @!attribute [rw] service_class_names # @return [::Google::Protobuf::Map{::String => ::String}] # Configure the Java class name to use instead of the service's for its @@ -155,11 +156,11 @@ class Publishing # # Example of a YAML configuration:: # - # publishing: - # java_settings: - # service_class_names: - # - google.pubsub.v1.Publisher: TopicAdmin - # - google.pubsub.v1.Subscriber: SubscriptionAdmin + # publishing: + # java_settings: + # service_class_names: + # - google.pubsub.v1.Publisher: TopicAdmin + # - google.pubsub.v1.Subscriber: SubscriptionAdmin # @!attribute [rw] common # @return [::Google::Api::CommonLanguageSettings] # Some settings. @@ -190,6 +191,20 @@ class CppSettings # @!attribute [rw] common # @return [::Google::Api::CommonLanguageSettings] # Some settings. + # @!attribute [rw] library_package + # @return [::String] + # The package name to use in Php. Clobbers the php_namespace option + # set in the protobuf. This should be used **only** by APIs + # who have already set the language_settings.php.package_name" field + # in gapic.yaml. API teams should use the protobuf php_namespace option + # where possible. + # + # Example of a YAML configuration:: + # + # publishing: + # library_settings: + # php_settings: + # library_package: Google\Cloud\PubSub\V1 class PhpSettings include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -318,10 +333,12 @@ class RubySettings # service names and values are the name to be used for the service client # and call options. # - # publishing: - # go_settings: - # renamed_services: - # Publisher: TopicAdmin + # Example: + # + # publishing: + # go_settings: + # renamed_services: + # Publisher: TopicAdmin class GoSettings include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -344,10 +361,10 @@ class RenamedServicesEntry # # Example: # - # publishing: - # method_settings: - # - selector: google.storage.control.v2.StorageControl.CreateFolder - # # method settings for CreateFolder... + # publishing: + # method_settings: + # - selector: google.storage.control.v2.StorageControl.CreateFolder + # # method settings for CreateFolder... # @!attribute [rw] long_running # @return [::Google::Api::MethodSettings::LongRunning] # Describes settings to use for long-running operations when generating @@ -356,14 +373,14 @@ class RenamedServicesEntry # # Example of a YAML configuration:: # - # publishing: - # method_settings: - # - selector: google.cloud.speech.v2.Speech.BatchRecognize - # long_running: - # initial_poll_delay: 60s # 1 minute - # poll_delay_multiplier: 1.5 - # max_poll_delay: 360s # 6 minutes - # total_poll_timeout: 54000s # 90 minutes + # publishing: + # method_settings: + # - selector: google.cloud.speech.v2.Speech.BatchRecognize + # long_running: + # initial_poll_delay: 60s # 1 minute + # poll_delay_multiplier: 1.5 + # max_poll_delay: 360s # 6 minutes + # total_poll_timeout: 54000s # 90 minutes # @!attribute [rw] auto_populated_fields # @return [::Array<::String>] # List of top-level fields of the request message, that should be @@ -372,11 +389,24 @@ class RenamedServicesEntry # # Example of a YAML configuration: # - # publishing: - # method_settings: - # - selector: google.example.v1.ExampleService.CreateExample - # auto_populated_fields: - # - request_id + # publishing: + # method_settings: + # - selector: google.example.v1.ExampleService.CreateExample + # auto_populated_fields: + # - request_id + # @!attribute [rw] batching + # @return [::Google::Api::BatchingConfigProto] + # Batching configuration for an API method in client libraries. + # + # Example of a YAML configuration: + # + # publishing: + # method_settings: + # - selector: google.example.v1.ExampleService.BatchCreateExample + # batching: + # element_count_threshold: 1000 + # request_byte_threshold: 100000000 + # delay_threshold_millis: 10 class MethodSettings include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -428,6 +458,77 @@ class SelectiveGapicGeneration extend ::Google::Protobuf::MessageExts::ClassMethods end + # `BatchingConfigProto` defines the batching configuration for an API method. + # @!attribute [rw] thresholds + # @return [::Google::Api::BatchingSettingsProto] + # The thresholds which trigger a batched request to be sent. + # @!attribute [rw] batch_descriptor + # @return [::Google::Api::BatchingDescriptorProto] + # The request and response fields used in batching. + class BatchingConfigProto + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # `BatchingSettingsProto` specifies a set of batching thresholds, each of + # which acts as a trigger to send a batch of messages as a request. At least + # one threshold must be positive nonzero. + # @!attribute [rw] element_count_threshold + # @return [::Integer] + # The number of elements of a field collected into a batch which, if + # exceeded, causes the batch to be sent. + # @!attribute [rw] request_byte_threshold + # @return [::Integer] + # The aggregated size of the batched field which, if exceeded, causes the + # batch to be sent. This size is computed by aggregating the sizes of the + # request field to be batched, not of the entire request message. + # @!attribute [rw] delay_threshold + # @return [::Google::Protobuf::Duration] + # The duration after which a batch should be sent, starting from the addition + # of the first message to that batch. + # @!attribute [rw] element_count_limit + # @return [::Integer] + # The maximum number of elements collected in a batch that could be accepted + # by server. + # @!attribute [rw] request_byte_limit + # @return [::Integer] + # The maximum size of the request that could be accepted by server. + # @!attribute [rw] flow_control_element_limit + # @return [::Integer] + # The maximum number of elements allowed by flow control. + # @!attribute [rw] flow_control_byte_limit + # @return [::Integer] + # The maximum size of data allowed by flow control. + # @!attribute [rw] flow_control_limit_exceeded_behavior + # @return [::Google::Api::FlowControlLimitExceededBehaviorProto] + # The behavior to take when the flow control limit is exceeded. + class BatchingSettingsProto + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # `BatchingDescriptorProto` specifies the fields of the request message to be + # used for batching, and, optionally, the fields of the response message to be + # used for demultiplexing. + # @!attribute [rw] batched_field + # @return [::String] + # The repeated field in the request message to be aggregated by batching. + # @!attribute [rw] discriminator_fields + # @return [::Array<::String>] + # A list of the fields in the request message. Two requests will be batched + # together only if the values of every field specified in + # `request_discriminator_fields` is equal between the two requests. + # @!attribute [rw] subresponse_field + # @return [::String] + # Optional. When present, indicates the field in the response message to be + # used to demultiplex the response into multiple response messages, in + # correspondence with the multiple request messages originally batched + # together. + class BatchingDescriptorProto + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # The organization for which the client libraries are being published. # Affects the url where generated docs are published, etc. module ClientLibraryOrganization @@ -469,5 +570,20 @@ module ClientLibraryDestination # Publish the library to package managers like nuget.org and npmjs.com. PACKAGE_MANAGER = 20 end + + # The behavior to take when the flow control limit is exceeded. + module FlowControlLimitExceededBehaviorProto + # Default behavior, system-defined. + UNSET_BEHAVIOR = 0 + + # Stop operation, raise error. + THROW_EXCEPTION = 1 + + # Pause operation until limit clears. + BLOCK = 2 + + # Continue operation, disregard limit. + IGNORE = 3 + end end end diff --git a/google-cloud-redis-cluster-v1/proto_docs/google/cloud/redis/cluster/v1/cloud_redis_cluster.rb b/google-cloud-redis-cluster-v1/proto_docs/google/cloud/redis/cluster/v1/cloud_redis_cluster.rb index dfaf43b3fa42..c3cf87b5831b 100644 --- a/google-cloud-redis-cluster-v1/proto_docs/google/cloud/redis/cluster/v1/cloud_redis_cluster.rb +++ b/google-cloud-redis-cluster-v1/proto_docs/google/cloud/redis/cluster/v1/cloud_redis_cluster.rb @@ -426,6 +426,17 @@ class BackupClusterRequest # @!attribute [r] encryption_info # @return [::Google::Cloud::Redis::Cluster::V1::EncryptionInfo] # Output only. Encryption information of the data at rest of the cluster. + # @!attribute [rw] server_ca_mode + # @return [::Google::Cloud::Redis::Cluster::V1::ServerCaMode] + # Optional. Server CA mode for the cluster. + # @!attribute [rw] server_ca_pool + # @return [::String] + # 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}". + # @!attribute [rw] rotate_server_certificate + # @return [::Boolean] + # Optional. Input only. Rotate the server certificates. class Cluster include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -950,6 +961,51 @@ class PscAutoConnection extend ::Google::Protobuf::MessageExts::ClassMethods end + # Shared regional certificate authority + # @!attribute [rw] managed_server_ca + # @return [::Google::Cloud::Redis::Cluster::V1::SharedRegionalCertificateAuthority::RegionalManagedCertificateAuthority] + # CA certificate chains for redis managed server authentication. + # @!attribute [rw] name + # @return [::String] + # Identifier. Unique name of the resource in this scope including project and + # location using the form: + # `projects/{project}/locations/{location}/sharedRegionalCertificateAuthority` + class SharedRegionalCertificateAuthority + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # CA certificate chains for redis managed server authentication. + # @!attribute [rw] ca_certs + # @return [::Array<::Google::Cloud::Redis::Cluster::V1::SharedRegionalCertificateAuthority::RegionalManagedCertificateAuthority::RegionalCertChain>] + # The PEM encoded CA certificate chains for redis managed + # server authentication + class RegionalManagedCertificateAuthority + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The certificates that form the CA chain, from leaf to root order. + # @!attribute [rw] certificates + # @return [::Array<::String>] + # The certificates that form the CA chain, from leaf to root order. + class RegionalCertChain + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + end + + # Request for + # [GetSharedRegionalCertificateAuthority][CloudRedis.GetSharedRegionalCertificateAuthority]. + # @!attribute [rw] name + # @return [::String] + # 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. + class GetSharedRegionalCertificateAuthorityRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # Pre-defined metadata fields. # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] @@ -1280,6 +1336,21 @@ module TransitEncryptionMode TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION = 2 end + # Server CA mode for the cluster. + module ServerCaMode + # Server CA mode not specified. + SERVER_CA_MODE_UNSPECIFIED = 0 + + # Each cluster has its own Google managed CA. + SERVER_CA_MODE_GOOGLE_MANAGED_PER_INSTANCE_CA = 1 + + # The cluster uses Google managed shared CA in the region. + SERVER_CA_MODE_GOOGLE_MANAGED_SHARED_CA = 2 + + # The cluster uses customer managed CA from CAS. + SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA = 3 + end + # Type of a PSC connection, for cluster access purpose. module ConnectionType # Cluster endpoint Type is not set diff --git a/google-cloud-redis-cluster-v1/proto_docs/google/type/timeofday.rb b/google-cloud-redis-cluster-v1/proto_docs/google/type/timeofday.rb index 2945a0388a91..7398716a2aa5 100644 --- a/google-cloud-redis-cluster-v1/proto_docs/google/type/timeofday.rb +++ b/google-cloud-redis-cluster-v1/proto_docs/google/type/timeofday.rb @@ -25,18 +25,22 @@ module Type # `google.protobuf.Timestamp`. # @!attribute [rw] hours # @return [::Integer] - # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose - # to allow the value "24:00:00" for scenarios like business closing time. + # Hours of a day in 24 hour format. Must be greater than or equal to 0 and + # typically must be less than or equal to 23. An API may choose to allow the + # value "24:00:00" for scenarios like business closing time. # @!attribute [rw] minutes # @return [::Integer] - # Minutes of hour of day. Must be from 0 to 59. + # Minutes of an hour. Must be greater than or equal to 0 and less than or + # equal to 59. # @!attribute [rw] seconds # @return [::Integer] - # Seconds of minutes of the time. Must normally be from 0 to 59. An API may - # allow the value 60 if it allows leap-seconds. + # Seconds of a minute. Must be greater than or equal to 0 and typically must + # be less than or equal to 59. An API may allow the value 60 if it allows + # leap-seconds. # @!attribute [rw] nanos # @return [::Integer] - # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. + # Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 + # and less than or equal to 999,999,999. class TimeOfDay include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods diff --git a/google-cloud-redis-cluster-v1/snippets/cloud_redis_cluster/get_shared_regional_certificate_authority.rb b/google-cloud-redis-cluster-v1/snippets/cloud_redis_cluster/get_shared_regional_certificate_authority.rb new file mode 100644 index 000000000000..bfed80f30924 --- /dev/null +++ b/google-cloud-redis-cluster-v1/snippets/cloud_redis_cluster/get_shared_regional_certificate_authority.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START redis_v1_generated_CloudRedisCluster_GetSharedRegionalCertificateAuthority_sync] +require "google/cloud/redis/cluster/v1" + +## +# Snippet for the get_shared_regional_certificate_authority call in the CloudRedisCluster service +# +# This snippet 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 as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Redis::Cluster::V1::CloudRedisCluster::Client#get_shared_regional_certificate_authority. +# +def get_shared_regional_certificate_authority + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Redis::Cluster::V1::CloudRedisCluster::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Redis::Cluster::V1::GetSharedRegionalCertificateAuthorityRequest.new + + # Call the get_shared_regional_certificate_authority method. + result = client.get_shared_regional_certificate_authority request + + # The returned object is of type Google::Cloud::Redis::Cluster::V1::SharedRegionalCertificateAuthority. + p result +end +# [END redis_v1_generated_CloudRedisCluster_GetSharedRegionalCertificateAuthority_sync] diff --git a/google-cloud-redis-cluster-v1/snippets/snippet_metadata_google.cloud.redis.cluster.v1.json b/google-cloud-redis-cluster-v1/snippets/snippet_metadata_google.cloud.redis.cluster.v1.json index f9b219f54a02..8f7e0af02ee4 100644 --- a/google-cloud-redis-cluster-v1/snippets/snippet_metadata_google.cloud.redis.cluster.v1.json +++ b/google-cloud-redis-cluster-v1/snippets/snippet_metadata_google.cloud.redis.cluster.v1.json @@ -251,6 +251,46 @@ } ] }, + { + "region_tag": "redis_v1_generated_CloudRedisCluster_GetSharedRegionalCertificateAuthority_sync", + "title": "Snippet for the get_shared_regional_certificate_authority call in the CloudRedisCluster service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Redis::Cluster::V1::CloudRedisCluster::Client#get_shared_regional_certificate_authority.", + "file": "cloud_redis_cluster/get_shared_regional_certificate_authority.rb", + "language": "RUBY", + "client_method": { + "short_name": "get_shared_regional_certificate_authority", + "full_name": "::Google::Cloud::Redis::Cluster::V1::CloudRedisCluster::Client#get_shared_regional_certificate_authority", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Redis::Cluster::V1::GetSharedRegionalCertificateAuthorityRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Redis::Cluster::V1::SharedRegionalCertificateAuthority", + "client": { + "short_name": "CloudRedisCluster::Client", + "full_name": "::Google::Cloud::Redis::Cluster::V1::CloudRedisCluster::Client" + }, + "method": { + "short_name": "GetSharedRegionalCertificateAuthority", + "full_name": "google.cloud.redis.cluster.v1.CloudRedisCluster.GetSharedRegionalCertificateAuthority", + "service": { + "short_name": "CloudRedisCluster", + "full_name": "google.cloud.redis.cluster.v1.CloudRedisCluster" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, { "region_tag": "redis_v1_generated_CloudRedisCluster_RescheduleClusterMaintenance_sync", "title": "Snippet for the reschedule_cluster_maintenance call in the CloudRedisCluster service", diff --git a/google-cloud-redis-cluster-v1/test/google/cloud/redis/cluster/v1/cloud_redis_cluster_paths_test.rb b/google-cloud-redis-cluster-v1/test/google/cloud/redis/cluster/v1/cloud_redis_cluster_paths_test.rb index 1fc00ca004d8..1a73de8d6d03 100644 --- a/google-cloud-redis-cluster-v1/test/google/cloud/redis/cluster/v1/cloud_redis_cluster_paths_test.rb +++ b/google-cloud-redis-cluster-v1/test/google/cloud/redis/cluster/v1/cloud_redis_cluster_paths_test.rb @@ -65,6 +65,18 @@ def test_backup_collection_path end end + def test_ca_pool_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Cloud::Redis::Cluster::V1::CloudRedisCluster::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.ca_pool_path project: "value0", location: "value1", ca_pool: "value2" + assert_equal "projects/value0/locations/value1/caPools/value2", path + end + end + def test_certificate_authority_path grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure ::Gapic::ServiceStub.stub :new, DummyStub.new do @@ -160,4 +172,16 @@ def test_service_attachment_path assert_equal "projects/value0/regions/value1/serviceAttachments/value2", path end end + + def test_shared_regional_certificate_authority_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Cloud::Redis::Cluster::V1::CloudRedisCluster::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.shared_regional_certificate_authority_path project: "value0", location: "value1" + assert_equal "projects/value0/locations/value1/sharedRegionalCertificateAuthority", path + end + end end diff --git a/google-cloud-redis-cluster-v1/test/google/cloud/redis/cluster/v1/cloud_redis_cluster_rest_test.rb b/google-cloud-redis-cluster-v1/test/google/cloud/redis/cluster/v1/cloud_redis_cluster_rest_test.rb index 62ec03aba133..78d36c8ab2b9 100644 --- a/google-cloud-redis-cluster-v1/test/google/cloud/redis/cluster/v1/cloud_redis_cluster_rest_test.rb +++ b/google-cloud-redis-cluster-v1/test/google/cloud/redis/cluster/v1/cloud_redis_cluster_rest_test.rb @@ -410,6 +410,60 @@ def test_get_cluster_certificate_authority end end + def test_get_shared_regional_certificate_authority + # Create test objects. + client_result = ::Google::Cloud::Redis::Cluster::V1::SharedRegionalCertificateAuthority.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_shared_regional_certificate_authority_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Redis::Cluster::V1::CloudRedisCluster::Rest::ServiceStub.stub :transcode_get_shared_regional_certificate_authority_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, get_shared_regional_certificate_authority_client_stub do + # Create client + client = ::Google::Cloud::Redis::Cluster::V1::CloudRedisCluster::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.get_shared_regional_certificate_authority({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.get_shared_regional_certificate_authority name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.get_shared_regional_certificate_authority ::Google::Cloud::Redis::Cluster::V1::GetSharedRegionalCertificateAuthorityRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.get_shared_regional_certificate_authority({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.get_shared_regional_certificate_authority(::Google::Cloud::Redis::Cluster::V1::GetSharedRegionalCertificateAuthorityRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, get_shared_regional_certificate_authority_client_stub.call_count + end + end + end + def test_reschedule_cluster_maintenance # Create test objects. client_result = ::Google::Longrunning::Operation.new diff --git a/google-cloud-redis-cluster-v1/test/google/cloud/redis/cluster/v1/cloud_redis_cluster_test.rb b/google-cloud-redis-cluster-v1/test/google/cloud/redis/cluster/v1/cloud_redis_cluster_test.rb index 06bc3a5fde62..d8618adb0e5c 100644 --- a/google-cloud-redis-cluster-v1/test/google/cloud/redis/cluster/v1/cloud_redis_cluster_test.rb +++ b/google-cloud-redis-cluster-v1/test/google/cloud/redis/cluster/v1/cloud_redis_cluster_test.rb @@ -447,6 +447,64 @@ def test_get_cluster_certificate_authority end end + def test_get_shared_regional_certificate_authority + # Create GRPC objects. + grpc_response = ::Google::Cloud::Redis::Cluster::V1::SharedRegionalCertificateAuthority.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_shared_regional_certificate_authority_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :get_shared_regional_certificate_authority, name + assert_kind_of ::Google::Cloud::Redis::Cluster::V1::GetSharedRegionalCertificateAuthorityRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, get_shared_regional_certificate_authority_client_stub do + # Create client + client = ::Google::Cloud::Redis::Cluster::V1::CloudRedisCluster::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.get_shared_regional_certificate_authority({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.get_shared_regional_certificate_authority name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.get_shared_regional_certificate_authority ::Google::Cloud::Redis::Cluster::V1::GetSharedRegionalCertificateAuthorityRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.get_shared_regional_certificate_authority({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.get_shared_regional_certificate_authority(::Google::Cloud::Redis::Cluster::V1::GetSharedRegionalCertificateAuthorityRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, get_shared_regional_certificate_authority_client_stub.call_rpc_count + end + end + def test_reschedule_cluster_maintenance # Create GRPC objects. grpc_response = ::Google::Longrunning::Operation.new