diff --git a/google-cloud-memorystore-v1beta/.owlbot-manifest.json b/google-cloud-memorystore-v1beta/.owlbot-manifest.json index 394166333303..4a01951745a0 100644 --- a/google-cloud-memorystore-v1beta/.owlbot-manifest.json +++ b/google-cloud-memorystore-v1beta/.owlbot-manifest.json @@ -46,6 +46,7 @@ "snippets/memorystore/delete_instance.rb", "snippets/memorystore/get_certificate_authority.rb", "snippets/memorystore/get_instance.rb", + "snippets/memorystore/get_shared_regional_certificate_authority.rb", "snippets/memorystore/list_instances.rb", "snippets/memorystore/update_instance.rb", "snippets/snippet_metadata_google.cloud.memorystore.v1beta.json", diff --git a/google-cloud-memorystore-v1beta/gapic_metadata.json b/google-cloud-memorystore-v1beta/gapic_metadata.json index 8555086750ad..0398061dd09d 100644 --- a/google-cloud-memorystore-v1beta/gapic_metadata.json +++ b/google-cloud-memorystore-v1beta/gapic_metadata.json @@ -39,6 +39,11 @@ "methods": [ "get_certificate_authority" ] + }, + "GetSharedRegionalCertificateAuthority": { + "methods": [ + "get_shared_regional_certificate_authority" + ] } } } diff --git a/google-cloud-memorystore-v1beta/lib/google/cloud/memorystore/v1beta/memorystore/paths.rb b/google-cloud-memorystore-v1beta/lib/google/cloud/memorystore/v1beta/memorystore/paths.rb index 9d3a0de20440..502d10ae0407 100644 --- a/google-cloud-memorystore-v1beta/lib/google/cloud/memorystore/v1beta/memorystore/paths.rb +++ b/google-cloud-memorystore-v1beta/lib/google/cloud/memorystore/v1beta/memorystore/paths.rb @@ -24,6 +24,25 @@ module V1beta module Memorystore # Path helper methods for the Memorystore API. module Paths + ## + # 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 ForwardingRule resource string. # @@ -115,6 +134,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-memorystore-v1beta/lib/google/cloud/memorystore/v1beta/memorystore/rest/client.rb b/google-cloud-memorystore-v1beta/lib/google/cloud/memorystore/v1beta/memorystore/rest/client.rb index b01b1526f73c..1f7932ce8db7 100644 --- a/google-cloud-memorystore-v1beta/lib/google/cloud/memorystore/v1beta/memorystore/rest/client.rb +++ b/google-cloud-memorystore-v1beta/lib/google/cloud/memorystore/v1beta/memorystore/rest/client.rb @@ -803,6 +803,87 @@ def get_certificate_authority request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Gets the details of shared regional certificate authority information for + # Memorystore instance. + # + # @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::Memorystore::V1beta::GetSharedRegionalCertificateAuthorityRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Memorystore::V1beta::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}/locations/{location}/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::Memorystore::V1beta::SharedRegionalCertificateAuthority] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Memorystore::V1beta::SharedRegionalCertificateAuthority] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/memorystore/v1beta" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Memorystore::V1beta::Memorystore::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Memorystore::V1beta::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::Memorystore::V1beta::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::Memorystore::V1beta::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::Memorystore::V1beta::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 + + @memorystore_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 + ## # Configuration class for the Memorystore REST API. # @@ -986,6 +1067,11 @@ class Rpcs # @return [::Gapic::Config::Method] # attr_reader :get_certificate_authority + ## + # RPC-specific configuration for `get_shared_regional_certificate_authority` + # @return [::Gapic::Config::Method] + # + attr_reader :get_shared_regional_certificate_authority # @private def initialize parent_rpcs = nil @@ -1001,6 +1087,8 @@ def initialize parent_rpcs = nil @delete_instance = ::Gapic::Config::Method.new delete_instance_config get_certificate_authority_config = parent_rpcs.get_certificate_authority if parent_rpcs.respond_to? :get_certificate_authority @get_certificate_authority = ::Gapic::Config::Method.new get_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 yield self if block_given? end diff --git a/google-cloud-memorystore-v1beta/lib/google/cloud/memorystore/v1beta/memorystore/rest/service_stub.rb b/google-cloud-memorystore-v1beta/lib/google/cloud/memorystore/v1beta/memorystore/rest/service_stub.rb index ada44794d513..6dce7d069b4d 100644 --- a/google-cloud-memorystore-v1beta/lib/google/cloud/memorystore/v1beta/memorystore/rest/service_stub.rb +++ b/google-cloud-memorystore-v1beta/lib/google/cloud/memorystore/v1beta/memorystore/rest/service_stub.rb @@ -313,6 +313,46 @@ def get_certificate_authority request_pb, options = nil end end + ## + # Baseline implementation for the get_shared_regional_certificate_authority REST call + # + # @param request_pb [::Google::Cloud::Memorystore::V1beta::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::Memorystore::V1beta::SharedRegionalCertificateAuthority] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Memorystore::V1beta::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::Memorystore::V1beta::SharedRegionalCertificateAuthority.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + ## # @private # @@ -440,6 +480,27 @@ def self.transcode_get_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::Memorystore::V1beta::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: "/v1beta/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/sharedRegionalCertificateAuthority/?$}, false] + ] + ) + transcoder.transcode request_pb + end end end end diff --git a/google-cloud-memorystore-v1beta/lib/google/cloud/memorystore/v1beta/memorystore_pb.rb b/google-cloud-memorystore-v1beta/lib/google/cloud/memorystore/v1beta/memorystore_pb.rb index b5c582bf026c..8980e0be59e2 100644 --- a/google-cloud-memorystore-v1beta/lib/google/cloud/memorystore/v1beta/memorystore_pb.rb +++ b/google-cloud-memorystore-v1beta/lib/google/cloud/memorystore/v1beta/memorystore_pb.rb @@ -15,7 +15,7 @@ require 'google/protobuf/timestamp_pb' -descriptor_data = "\n1google/cloud/memorystore/v1beta/memorystore.proto\x12\x1fgoogle.cloud.memorystore.v1beta\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\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x80\x16\n\x08Instance\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\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12J\n\x06labels\x18\x04 \x03(\x0b\x32\x35.google.cloud.memorystore.v1beta.Instance.LabelsEntryB\x03\xe0\x41\x01\x12\x43\n\x05state\x18\x05 \x01(\x0e\x32/.google.cloud.memorystore.v1beta.Instance.StateB\x03\xe0\x41\x03\x12L\n\nstate_info\x18\x06 \x01(\x0b\x32\x33.google.cloud.memorystore.v1beta.Instance.StateInfoB\x03\xe0\x41\x03\x12\x18\n\x03uid\x18\x07 \x01(\tB\x0b\xe0\x41\x03\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x12\x1f\n\rreplica_count\x18\x08 \x01(\x05\x42\x03\xe0\x41\x01H\x00\x88\x01\x01\x12_\n\x12\x61uthorization_mode\x18\t \x01(\x0e\x32;.google.cloud.memorystore.v1beta.Instance.AuthorizationModeB\x06\xe0\x41\x01\xe0\x41\x05\x12h\n\x17transit_encryption_mode\x18\n \x01(\x0e\x32?.google.cloud.memorystore.v1beta.Instance.TransitEncryptionModeB\x06\xe0\x41\x01\xe0\x41\x05\x12\x18\n\x0bshard_count\x18\x0b \x01(\x05\x42\x03\xe0\x41\x01\x12T\n\x13\x64iscovery_endpoints\x18\x0c \x03(\x0b\x32\x32.google.cloud.memorystore.v1beta.DiscoveryEndpointB\x03\xe0\x41\x03\x12M\n\tnode_type\x18\r \x01(\x0e\x32\x32.google.cloud.memorystore.v1beta.Instance.NodeTypeB\x06\xe0\x41\x01\xe0\x41\x05\x12S\n\x12persistence_config\x18\x0e \x01(\x0b\x32\x32.google.cloud.memorystore.v1beta.PersistenceConfigB\x03\xe0\x41\x01\x12\x1e\n\x0e\x65ngine_version\x18\x0f \x01(\tB\x06\xe0\x41\x01\xe0\x41\x05\x12Y\n\x0e\x65ngine_configs\x18\x10 \x03(\x0b\x32<.google.cloud.memorystore.v1beta.Instance.EngineConfigsEntryB\x03\xe0\x41\x01\x12\x45\n\x0bnode_config\x18\x11 \x01(\x0b\x32+.google.cloud.memorystore.v1beta.NodeConfigB\x03\xe0\x41\x03\x12\x61\n\x18zone_distribution_config\x18\x12 \x01(\x0b\x32\x37.google.cloud.memorystore.v1beta.ZoneDistributionConfigB\x06\xe0\x41\x01\xe0\x41\x05\x12-\n\x1b\x64\x65letion_protection_enabled\x18\x13 \x01(\x08\x42\x03\xe0\x41\x01H\x01\x88\x01\x01\x12X\n\x14psc_auto_connections\x18\x14 \x03(\x0b\x32\x32.google.cloud.memorystore.v1beta.PscAutoConnectionB\x06\xe0\x41\x02\xe0\x41\x05\x12R\n\tendpoints\x18\x19 \x03(\x0b\x32:.google.cloud.memorystore.v1beta.Instance.InstanceEndpointB\x03\xe0\x41\x01\x12\x41\n\x04mode\x18\x1a \x01(\x0e\x32..google.cloud.memorystore.v1beta.Instance.ModeB\x03\xe0\x41\x01\x1a\xfc\x01\n\tStateInfo\x12Z\n\x0bupdate_info\x18\x01 \x01(\x0b\x32>.google.cloud.memorystore.v1beta.Instance.StateInfo.UpdateInfoB\x03\xe0\x41\x03H\x00\x1a\x8a\x01\n\nUpdateInfo\x12$\n\x12target_shard_count\x18\x01 \x01(\x05\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12&\n\x14target_replica_count\x18\x02 \x01(\x05\x42\x03\xe0\x41\x03H\x01\x88\x01\x01\x42\x15\n\x13_target_shard_countB\x17\n\x15_target_replica_countB\x06\n\x04info\x1ah\n\x10InstanceEndpoint\x12T\n\x0b\x63onnections\x18\x01 \x03(\x0b\x32:.google.cloud.memorystore.v1beta.Instance.ConnectionDetailB\x03\xe0\x41\x01\x1a\xbd\x01\n\x10\x43onnectionDetail\x12Q\n\x13psc_auto_connection\x18\x01 \x01(\x0b\x32\x32.google.cloud.memorystore.v1beta.PscAutoConnectionH\x00\x12H\n\x0epsc_connection\x18\x02 \x01(\x0b\x32..google.cloud.memorystore.v1beta.PscConnectionH\x00\x42\x0c\n\nconnection\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x34\n\x12\x45ngineConfigsEntry\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\"X\n\x11\x41uthorizationMode\x12\"\n\x1e\x41UTHORIZATION_MODE_UNSPECIFIED\x10\x00\x12\x11\n\rAUTH_DISABLED\x10\x01\x12\x0c\n\x08IAM_AUTH\x10\x02\"|\n\x15TransitEncryptionMode\x12\'\n#TRANSIT_ENCRYPTION_MODE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bTRANSIT_ENCRYPTION_DISABLED\x10\x01\x12\x19\n\x15SERVER_AUTHENTICATION\x10\x02\"w\n\x08NodeType\x12\x19\n\x15NODE_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10SHARED_CORE_NANO\x10\x01\x12\x12\n\x0eHIGHMEM_MEDIUM\x10\x02\x12\x12\n\x0eHIGHMEM_XLARGE\x10\x03\x12\x12\n\x0eSTANDARD_SMALL\x10\x04\"S\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x12\n\nSTANDALONE\x10\x01\x1a\x02\x08\x01\x12\x0b\n\x07\x43LUSTER\x10\x02\x12\x14\n\x10\x43LUSTER_DISABLED\x10\x04:{\xea\x41x\n#memorystore.googleapis.com/Instance\x12.google.cloud.memorystore.v1beta.Instance.StateInfo.UpdateInfoB\x03\xe0\x41\x03H\x00\x1a\x8a\x01\n\nUpdateInfo\x12$\n\x12target_shard_count\x18\x01 \x01(\x05\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12&\n\x14target_replica_count\x18\x02 \x01(\x05\x42\x03\xe0\x41\x03H\x01\x88\x01\x01\x42\x15\n\x13_target_shard_countB\x17\n\x15_target_replica_countB\x06\n\x04info\x1ah\n\x10InstanceEndpoint\x12T\n\x0b\x63onnections\x18\x01 \x03(\x0b\x32:.google.cloud.memorystore.v1beta.Instance.ConnectionDetailB\x03\xe0\x41\x01\x1a\xbd\x01\n\x10\x43onnectionDetail\x12Q\n\x13psc_auto_connection\x18\x01 \x01(\x0b\x32\x32.google.cloud.memorystore.v1beta.PscAutoConnectionH\x00\x12H\n\x0epsc_connection\x18\x02 \x01(\x0b\x32..google.cloud.memorystore.v1beta.PscConnectionH\x00\x42\x0c\n\nconnection\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x34\n\x12\x45ngineConfigsEntry\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\"X\n\x11\x41uthorizationMode\x12\"\n\x1e\x41UTHORIZATION_MODE_UNSPECIFIED\x10\x00\x12\x11\n\rAUTH_DISABLED\x10\x01\x12\x0c\n\x08IAM_AUTH\x10\x02\"|\n\x15TransitEncryptionMode\x12\'\n#TRANSIT_ENCRYPTION_MODE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bTRANSIT_ENCRYPTION_DISABLED\x10\x01\x12\x19\n\x15SERVER_AUTHENTICATION\x10\x02\"w\n\x08NodeType\x12\x19\n\x15NODE_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10SHARED_CORE_NANO\x10\x01\x12\x12\n\x0eHIGHMEM_MEDIUM\x10\x02\x12\x12\n\x0eHIGHMEM_XLARGE\x10\x03\x12\x12\n\x0eSTANDARD_SMALL\x10\x04\"S\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x12\n\nSTANDALONE\x10\x01\x1a\x02\x08\x01\x12\x0b\n\x07\x43LUSTER\x10\x02\x12\x14\n\x10\x43LUSTER_DISABLED\x10\x04\"\xa9\x02\n\x0cServerCaMode\x12\x1e\n\x1aSERVER_CA_MODE_UNSPECIFIED\x10\x00\x12\"\n\x1eGOOGLE_MANAGED_PER_INSTANCE_CA\x10\x01\x12\x1c\n\x18GOOGLE_MANAGED_SHARED_CA\x10\x02\x12\x1b\n\x17\x43USTOMER_MANAGED_CAS_CA\x10\x03\x12\x35\n-SERVER_CA_MODE_GOOGLE_MANAGED_PER_INSTANCE_CA\x10\x01\x1a\x02\x08\x01\x12/\n\'SERVER_CA_MODE_GOOGLE_MANAGED_SHARED_CA\x10\x02\x1a\x02\x08\x01\x12.\n&SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA\x10\x03\x1a\x02\x08\x01\x1a\x02\x10\x01:{\xea\x41x\n#memorystore.googleapis.com/Instance\x12] # An allowlist of the fully qualified names of RPCs that should be included diff --git a/google-cloud-memorystore-v1beta/proto_docs/google/cloud/memorystore/v1beta/memorystore.rb b/google-cloud-memorystore-v1beta/proto_docs/google/cloud/memorystore/v1beta/memorystore.rb index 739a78ad87d6..35b63a77f923 100644 --- a/google-cloud-memorystore-v1beta/proto_docs/google/cloud/memorystore/v1beta/memorystore.rb +++ b/google-cloud-memorystore-v1beta/proto_docs/google/cloud/memorystore/v1beta/memorystore.rb @@ -93,6 +93,17 @@ module V1beta # @!attribute [rw] mode # @return [::Google::Cloud::Memorystore::V1beta::Instance::Mode] # Optional. The mode config for the instance. + # @!attribute [rw] server_ca_mode + # @return [::Google::Cloud::Memorystore::V1beta::Instance::ServerCaMode] + # Optional. Immutable. The Server CA mode for the instance. + # @!attribute [rw] server_ca_pool + # @return [::String] + # Optional. Immutable. The customer-managed CA pool for the instance. Only + # applicable if the Server CA mode is 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 Instance include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -241,6 +252,30 @@ module Mode # Cluster mode is disabled for the instance. CLUSTER_DISABLED = 4 end + + # The Server CA mode for the instance. + module ServerCaMode + # Server CA mode not specified. + SERVER_CA_MODE_UNSPECIFIED = 0 + + # Each instance has its own Google-managed CA. + GOOGLE_MANAGED_PER_INSTANCE_CA = 1 + + # The instance uses a Google-managed shared CA for the instance's region. + GOOGLE_MANAGED_SHARED_CA = 2 + + # The instance uses a customer-managed CA from CAS. + CUSTOMER_MANAGED_CAS_CA = 3 + + # Deprecated: Use GOOGLE_MANAGED_PER_INSTANCE_CA instead. + SERVER_CA_MODE_GOOGLE_MANAGED_PER_INSTANCE_CA = 1 + + # Deprecated: Use GOOGLE_MANAGED_SHARED_CA instead. + SERVER_CA_MODE_GOOGLE_MANAGED_SHARED_CA = 2 + + # Deprecated: Use CUSTOMER_MANAGED_CAS_CA instead. + SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA = 3 + end end # Details of consumer resources in a PSC connection. @@ -658,6 +693,51 @@ class CertChain end end + # Shared regional certificate authority for an instance. + # @!attribute [rw] managed_server_ca + # @return [::Google::Cloud::Memorystore::V1beta::SharedRegionalCertificateAuthority::RegionalManagedCertificateAuthority] + # CA certificate chains for memorystore 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 memorystore managed server authentication. + # @!attribute [rw] ca_certs + # @return [::Array<::Google::Cloud::Memorystore::V1beta::SharedRegionalCertificateAuthority::RegionalManagedCertificateAuthority::RegionalCertChain>] + # The PEM encoded CA certificate chains for memorystore 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 + # {::Google::Cloud::Memorystore::V1beta::Memorystore::Rest::Client#get_shared_regional_certificate_authority GetSharedRegionalCertificateAuthority}. + # @!attribute [rw] name + # @return [::String] + # Required. Regional certificate authority resource name using the form: + # `projects/{project}/locations/{location}/sharedRegionalCertificateAuthority` + # where `location_id` refers to a Google Cloud region. + class GetSharedRegionalCertificateAuthorityRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # Represents the metadata of a long-running operation. # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] diff --git a/google-cloud-memorystore-v1beta/snippets/memorystore/get_shared_regional_certificate_authority.rb b/google-cloud-memorystore-v1beta/snippets/memorystore/get_shared_regional_certificate_authority.rb new file mode 100644 index 000000000000..ed053585cded --- /dev/null +++ b/google-cloud-memorystore-v1beta/snippets/memorystore/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 memorystore_v1beta_generated_Memorystore_GetSharedRegionalCertificateAuthority_sync] +require "google/cloud/memorystore/v1beta" + +## +# Snippet for the get_shared_regional_certificate_authority call in the Memorystore 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::Memorystore::V1beta::Memorystore::Rest::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::Memorystore::V1beta::Memorystore::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Memorystore::V1beta::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::Memorystore::V1beta::SharedRegionalCertificateAuthority. + p result +end +# [END memorystore_v1beta_generated_Memorystore_GetSharedRegionalCertificateAuthority_sync] diff --git a/google-cloud-memorystore-v1beta/snippets/snippet_metadata_google.cloud.memorystore.v1beta.json b/google-cloud-memorystore-v1beta/snippets/snippet_metadata_google.cloud.memorystore.v1beta.json index b651115faa34..73343f3fb18b 100644 --- a/google-cloud-memorystore-v1beta/snippets/snippet_metadata_google.cloud.memorystore.v1beta.json +++ b/google-cloud-memorystore-v1beta/snippets/snippet_metadata_google.cloud.memorystore.v1beta.json @@ -250,6 +250,46 @@ "type": "FULL" } ] + }, + { + "region_tag": "memorystore_v1beta_generated_Memorystore_GetSharedRegionalCertificateAuthority_sync", + "title": "Snippet for the get_shared_regional_certificate_authority call in the Memorystore service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Memorystore::V1beta::Memorystore::Rest::Client#get_shared_regional_certificate_authority.", + "file": "memorystore/get_shared_regional_certificate_authority.rb", + "language": "RUBY", + "client_method": { + "short_name": "get_shared_regional_certificate_authority", + "full_name": "::Google::Cloud::Memorystore::V1beta::Memorystore::Rest::Client#get_shared_regional_certificate_authority", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Memorystore::V1beta::GetSharedRegionalCertificateAuthorityRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Memorystore::V1beta::SharedRegionalCertificateAuthority", + "client": { + "short_name": "Memorystore::Rest::Client", + "full_name": "::Google::Cloud::Memorystore::V1beta::Memorystore::Rest::Client" + }, + "method": { + "short_name": "GetSharedRegionalCertificateAuthority", + "full_name": "google.cloud.memorystore.v1beta.Memorystore.GetSharedRegionalCertificateAuthority", + "service": { + "short_name": "Memorystore", + "full_name": "google.cloud.memorystore.v1beta.Memorystore" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] } ] } \ No newline at end of file diff --git a/google-cloud-memorystore-v1beta/test/google/cloud/memorystore/v1beta/memorystore_rest_test.rb b/google-cloud-memorystore-v1beta/test/google/cloud/memorystore/v1beta/memorystore_rest_test.rb index 7045391c3993..5075f2ab00e6 100644 --- a/google-cloud-memorystore-v1beta/test/google/cloud/memorystore/v1beta/memorystore_rest_test.rb +++ b/google-cloud-memorystore-v1beta/test/google/cloud/memorystore/v1beta/memorystore_rest_test.rb @@ -412,6 +412,60 @@ def test_get_certificate_authority end end + def test_get_shared_regional_certificate_authority + # Create test objects. + client_result = ::Google::Cloud::Memorystore::V1beta::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::Memorystore::V1beta::Memorystore::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::Memorystore::V1beta::Memorystore::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::Memorystore::V1beta::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::Memorystore::V1beta::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_configure credentials_token = :dummy_value