diff --git a/gapic-generator-cloud/Gemfile b/gapic-generator-cloud/Gemfile index 98e06a5e0..c3079c120 100644 --- a/gapic-generator-cloud/Gemfile +++ b/gapic-generator-cloud/Gemfile @@ -13,6 +13,7 @@ gem "grpc-tools", ">= 1.60.0", "< 1.75.1" gem "minitest", "~> 5.16" gem "minitest-autotest", "~> 1.0" gem "minitest-focus", "~> 1.0" +gem "ostruct", "~> 0.6.3" gem "pry", ">= 0.14" gem "redcarpet", "~> 3.0" gem "yard", "~> 0.9" diff --git a/gapic-generator-cloud/Gemfile.lock b/gapic-generator-cloud/Gemfile.lock index dccf23045..5e8ae3c22 100644 --- a/gapic-generator-cloud/Gemfile.lock +++ b/gapic-generator-cloud/Gemfile.lock @@ -90,6 +90,7 @@ GEM minitest (~> 5.16) nokogiri (1.19.2-x86_64-linux-gnu) racc (~> 1.4) + ostruct (0.6.3) parallel (2.0.1) parser (3.3.11.1) ast (~> 2.4.1) @@ -155,6 +156,7 @@ DEPENDENCIES minitest (~> 5.16) minitest-autotest (~> 1.0) minitest-focus (~> 1.0) + ostruct (~> 0.6.3) pry (>= 0.14) redcarpet (~> 3.0) yard (~> 0.9) diff --git a/gapic-generator/Gemfile b/gapic-generator/Gemfile index c1cb7c70f..0a6123918 100644 --- a/gapic-generator/Gemfile +++ b/gapic-generator/Gemfile @@ -11,6 +11,7 @@ gem "grpc-tools", ">= 1.60.0", "< 1.75.1" gem "minitest", "~> 5.16" gem "minitest-autotest", "~> 1.0" gem "minitest-focus", "~> 1.0" +gem "ostruct", "~> 0.6.3" gem "pry", ">= 0.14" gem "redcarpet", "~> 3.0" gem "yard", "~> 0.9" diff --git a/gapic-generator/Gemfile.lock b/gapic-generator/Gemfile.lock index 284f2e246..86f6db91c 100644 --- a/gapic-generator/Gemfile.lock +++ b/gapic-generator/Gemfile.lock @@ -84,6 +84,7 @@ GEM minitest (~> 5.16) nokogiri (1.19.2-x86_64-linux-gnu) racc (~> 1.4) + ostruct (0.6.3) parallel (2.0.1) parser (3.3.11.1) ast (~> 2.4.1) @@ -148,6 +149,7 @@ DEPENDENCIES minitest (~> 5.16) minitest-autotest (~> 1.0) minitest-focus (~> 1.0) + ostruct (~> 0.6.3) pry (>= 0.14) redcarpet (~> 3.0) yard (~> 0.9) diff --git a/gapic-generator/templates/default/service/rest/client/_client.text.erb b/gapic-generator/templates/default/service/rest/client/_client.text.erb index 5e68bbd01..0c85c808c 100644 --- a/gapic-generator/templates/default/service/rest/client/_client.text.erb +++ b/gapic-generator/templates/default/service/rest/client/_client.text.erb @@ -137,6 +137,7 @@ class <%= service.rest.client_name %> <%- if subclient.respond_to?(:bindings_override) && !subclient.bindings_override.empty? -%> config.bindings_override = @config.bindings_override <%- end -%> + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end <%- end -%> @@ -145,7 +146,8 @@ class <%= service.rest.client_name %> endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @<%= service.stub_name %>.logger(stub: true)&.info do |entry| @@ -168,6 +170,7 @@ class <%= service.rest.client_name %> config.bindings_override = @config.bindings_override <%- end -%> config.logger = @<%= service.stub_name %>.logger if config.respond_to? :logger= + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end <%- end -%> end diff --git a/gapic-generator/templates/default/service/rest/client/_config.text.erb b/gapic-generator/templates/default/service/rest/client/_config.text.erb index 364e6d8cd..c48bbc373 100644 --- a/gapic-generator/templates/default/service/rest/client/_config.text.erb +++ b/gapic-generator/templates/default/service/rest/client/_config.text.erb @@ -89,6 +89,9 @@ # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] +# @!attribute [rw] faraday_config +# A Proc to configure the underlying Faraday connection object. +# @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -120,6 +123,7 @@ class Configuration config_attr :bindings_override, {}, ::Hash, nil <%- end -%> config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/gapic-generator/templates/default/service/rest/client/_operations.text.erb b/gapic-generator/templates/default/service/rest/client/_operations.text.erb index 087102fa6..f2208a480 100644 --- a/gapic-generator/templates/default/service/rest/client/_operations.text.erb +++ b/gapic-generator/templates/default/service/rest/client/_operations.text.erb @@ -80,7 +80,8 @@ class <%= service.operations_name %> endpoint: @config.endpoint, endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, - credentials: credentials + credentials: credentials, + faraday_config: @config.faraday_config ) # Used by an LRO wrapper for some methods of this service @@ -102,15 +103,18 @@ end # Service stub contains baseline method implementations # including transcoding, making the REST call, and deserialing the response. class <%= service.operations_stub_name %> - def initialize endpoint:, endpoint_template:, universe_domain:, credentials: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + &faraday_config + ) end <%- service.lro_service.rest.methods.each do |method| -%> diff --git a/gapic-generator/templates/default/service/rest/service_stub/_service_stub.text.erb b/gapic-generator/templates/default/service/rest/service_stub/_service_stub.text.erb index 7fc6bd10a..5b5d0d80f 100644 --- a/gapic-generator/templates/default/service/rest/service_stub/_service_stub.text.erb +++ b/gapic-generator/templates/default/service/rest/service_stub/_service_stub.text.erb @@ -10,19 +10,22 @@ require "<%= service.proto_service_require %>" <%= render partial: "proto_docs/deprecated", locals: { presenter: service } -%> class <%= service.rest.service_stub_name %> # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: <%= service.rest.numeric_enums? %>, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: <%= service.rest.numeric_enums? %>, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/gapic-generator/templates/default/service/rest/test/method/_configure.text.erb b/gapic-generator/templates/default/service/rest/test/method/_configure.text.erb index 03f150d86..6b04210bd 100644 --- a/gapic-generator/templates/default/service/rest/test/method/_configure.text.erb +++ b/gapic-generator/templates/default/service/rest/test/method/_configure.text.erb @@ -18,3 +18,28 @@ def test_configure assert_same block_config, config assert_kind_of <%= full_client_name %>::Configuration, config end + +def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + <%= full_client_name %>.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc +end + diff --git a/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/addresses/rest/client.rb b/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/addresses/rest/client.rb index edadd7df9..8a85d3e46 100644 --- a/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/addresses/rest/client.rb +++ b/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/addresses/rest/client.rb @@ -150,6 +150,7 @@ def initialize config.quota_project = @quota_project_id config.endpoint = @config.endpoint config.universe_domain = @config.universe_domain + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end @addresses_stub = ::Google::Cloud::Compute::V1::Addresses::Rest::ServiceStub.new( @@ -157,7 +158,8 @@ def initialize endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @addresses_stub.logger(stub: true)&.info do |entry| @@ -758,6 +760,9 @@ def list request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -780,6 +785,7 @@ class Configuration config_attr :quota_project, nil, ::String, nil config_attr :universe_domain, nil, ::String, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/addresses/rest/service_stub.rb b/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/addresses/rest/service_stub.rb index 377069bf3..b77469e9d 100644 --- a/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/addresses/rest/service_stub.rb +++ b/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/addresses/rest/service_stub.rb @@ -31,19 +31,22 @@ module Rest # class ServiceStub # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: false, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: false, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/global_operations/rest/client.rb b/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/global_operations/rest/client.rb index 7605d2c27..0b3302b31 100644 --- a/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/global_operations/rest/client.rb +++ b/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/global_operations/rest/client.rb @@ -149,7 +149,8 @@ def initialize endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @global_operations_stub.logger(stub: true)&.info do |entry| @@ -421,6 +422,9 @@ def get request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -443,6 +447,7 @@ class Configuration config_attr :quota_project, nil, ::String, nil config_attr :universe_domain, nil, ::String, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/global_operations/rest/service_stub.rb b/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/global_operations/rest/service_stub.rb index 5e1361f0f..81de61f56 100644 --- a/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/global_operations/rest/service_stub.rb +++ b/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/global_operations/rest/service_stub.rb @@ -31,19 +31,22 @@ module Rest # class ServiceStub # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: false, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: false, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/networks/rest/client.rb b/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/networks/rest/client.rb index e0476447e..9e7832b04 100644 --- a/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/networks/rest/client.rb +++ b/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/networks/rest/client.rb @@ -150,6 +150,7 @@ def initialize config.quota_project = @quota_project_id config.endpoint = @config.endpoint config.universe_domain = @config.universe_domain + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end @networks_stub = ::Google::Cloud::Compute::V1::Networks::Rest::ServiceStub.new( @@ -157,7 +158,8 @@ def initialize endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @networks_stub.logger(stub: true)&.info do |entry| @@ -481,6 +483,9 @@ def remove_peering request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -503,6 +508,7 @@ class Configuration config_attr :quota_project, nil, ::String, nil config_attr :universe_domain, nil, ::String, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/networks/rest/service_stub.rb b/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/networks/rest/service_stub.rb index 73c7dfba5..eb880577e 100644 --- a/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/networks/rest/service_stub.rb +++ b/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/networks/rest/service_stub.rb @@ -31,19 +31,22 @@ module Rest # class ServiceStub # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: false, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: false, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/region_instance_group_managers/rest/client.rb b/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/region_instance_group_managers/rest/client.rb index eb9a4393a..883ed6beb 100644 --- a/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/region_instance_group_managers/rest/client.rb +++ b/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/region_instance_group_managers/rest/client.rb @@ -150,6 +150,7 @@ def initialize config.quota_project = @quota_project_id config.endpoint = @config.endpoint config.universe_domain = @config.universe_domain + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end @region_instance_group_managers_stub = ::Google::Cloud::Compute::V1::RegionInstanceGroupManagers::Rest::ServiceStub.new( @@ -157,7 +158,8 @@ def initialize endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @region_instance_group_managers_stub.logger(stub: true)&.info do |entry| @@ -380,6 +382,9 @@ def resize request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -402,6 +407,7 @@ class Configuration config_attr :quota_project, nil, ::String, nil config_attr :universe_domain, nil, ::String, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/region_instance_group_managers/rest/service_stub.rb b/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/region_instance_group_managers/rest/service_stub.rb index 59abdcc4d..6c3673805 100644 --- a/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/region_instance_group_managers/rest/service_stub.rb +++ b/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/region_instance_group_managers/rest/service_stub.rb @@ -31,19 +31,22 @@ module Rest # class ServiceStub # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: false, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: false, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/region_operations/rest/client.rb b/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/region_operations/rest/client.rb index 550f4fa86..a1cbabc3d 100644 --- a/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/region_operations/rest/client.rb +++ b/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/region_operations/rest/client.rb @@ -149,7 +149,8 @@ def initialize endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @region_operations_stub.logger(stub: true)&.info do |entry| @@ -613,6 +614,9 @@ def wait request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -635,6 +639,7 @@ class Configuration config_attr :quota_project, nil, ::String, nil config_attr :universe_domain, nil, ::String, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/region_operations/rest/service_stub.rb b/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/region_operations/rest/service_stub.rb index 593f13951..667ce21e3 100644 --- a/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/region_operations/rest/service_stub.rb +++ b/shared/output/cloud/compute_small/lib/google/cloud/compute/v1/region_operations/rest/service_stub.rb @@ -31,19 +31,22 @@ module Rest # class ServiceStub # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: false, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: false, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/shared/output/cloud/compute_small/test/google/cloud/compute/v1/addresses_rest_test.rb b/shared/output/cloud/compute_small/test/google/cloud/compute/v1/addresses_rest_test.rb index 8a13d0b53..21b453124 100644 --- a/shared/output/cloud/compute_small/test/google/cloud/compute/v1/addresses_rest_test.rb +++ b/shared/output/cloud/compute_small/test/google/cloud/compute/v1/addresses_rest_test.rb @@ -386,4 +386,28 @@ def test_configure assert_same block_config, config assert_kind_of ::Google::Cloud::Compute::V1::Addresses::Rest::Client::Configuration, config end + + def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + ::Google::Cloud::Compute::V1::Addresses::Rest::Client.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc + end end diff --git a/shared/output/cloud/compute_small/test/google/cloud/compute/v1/global_operations_rest_test.rb b/shared/output/cloud/compute_small/test/google/cloud/compute/v1/global_operations_rest_test.rb index 2c57c664b..9f117d052 100644 --- a/shared/output/cloud/compute_small/test/google/cloud/compute/v1/global_operations_rest_test.rb +++ b/shared/output/cloud/compute_small/test/google/cloud/compute/v1/global_operations_rest_test.rb @@ -206,4 +206,28 @@ def test_configure assert_same block_config, config assert_kind_of ::Google::Cloud::Compute::V1::GlobalOperations::Rest::Client::Configuration, config end + + def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + ::Google::Cloud::Compute::V1::GlobalOperations::Rest::Client.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc + end end diff --git a/shared/output/cloud/compute_small/test/google/cloud/compute/v1/networks_rest_test.rb b/shared/output/cloud/compute_small/test/google/cloud/compute/v1/networks_rest_test.rb index 360dbc7b7..a01b59229 100644 --- a/shared/output/cloud/compute_small/test/google/cloud/compute/v1/networks_rest_test.rb +++ b/shared/output/cloud/compute_small/test/google/cloud/compute/v1/networks_rest_test.rb @@ -216,4 +216,28 @@ def test_configure assert_same block_config, config assert_kind_of ::Google::Cloud::Compute::V1::Networks::Rest::Client::Configuration, config end + + def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + ::Google::Cloud::Compute::V1::Networks::Rest::Client.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc + end end diff --git a/shared/output/cloud/compute_small/test/google/cloud/compute/v1/region_instance_group_managers_rest_test.rb b/shared/output/cloud/compute_small/test/google/cloud/compute/v1/region_instance_group_managers_rest_test.rb index e4ac00684..5ef9d32eb 100644 --- a/shared/output/cloud/compute_small/test/google/cloud/compute/v1/region_instance_group_managers_rest_test.rb +++ b/shared/output/cloud/compute_small/test/google/cloud/compute/v1/region_instance_group_managers_rest_test.rb @@ -154,4 +154,28 @@ def test_configure assert_same block_config, config assert_kind_of ::Google::Cloud::Compute::V1::RegionInstanceGroupManagers::Rest::Client::Configuration, config end + + def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + ::Google::Cloud::Compute::V1::RegionInstanceGroupManagers::Rest::Client.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc + end end diff --git a/shared/output/cloud/compute_small/test/google/cloud/compute/v1/region_operations_rest_test.rb b/shared/output/cloud/compute_small/test/google/cloud/compute/v1/region_operations_rest_test.rb index 3619c7a47..2e2c895a3 100644 --- a/shared/output/cloud/compute_small/test/google/cloud/compute/v1/region_operations_rest_test.rb +++ b/shared/output/cloud/compute_small/test/google/cloud/compute/v1/region_operations_rest_test.rb @@ -324,4 +324,28 @@ def test_configure assert_same block_config, config assert_kind_of ::Google::Cloud::Compute::V1::RegionOperations::Rest::Client::Configuration, config end + + def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + ::Google::Cloud::Compute::V1::RegionOperations::Rest::Client.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc + end end diff --git a/shared/output/cloud/language_v1/lib/google/cloud/language/v1/language_service/rest/client.rb b/shared/output/cloud/language_v1/lib/google/cloud/language/v1/language_service/rest/client.rb index 7e8a62e23..a98993722 100644 --- a/shared/output/cloud/language_v1/lib/google/cloud/language/v1/language_service/rest/client.rb +++ b/shared/output/cloud/language_v1/lib/google/cloud/language/v1/language_service/rest/client.rb @@ -180,7 +180,8 @@ def initialize endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @language_service_stub.logger(stub: true)&.info do |entry| @@ -861,6 +862,9 @@ def annotate_text request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -883,6 +887,7 @@ class Configuration config_attr :quota_project, nil, ::String, nil config_attr :universe_domain, nil, ::String, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/shared/output/cloud/language_v1/lib/google/cloud/language/v1/language_service/rest/service_stub.rb b/shared/output/cloud/language_v1/lib/google/cloud/language/v1/language_service/rest/service_stub.rb index ff8b42e3e..4ad56ddc8 100644 --- a/shared/output/cloud/language_v1/lib/google/cloud/language/v1/language_service/rest/service_stub.rb +++ b/shared/output/cloud/language_v1/lib/google/cloud/language/v1/language_service/rest/service_stub.rb @@ -31,19 +31,22 @@ module Rest # class ServiceStub # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: false, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: false, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/shared/output/cloud/language_v1/test/google/cloud/language/v1/language_service_rest_test.rb b/shared/output/cloud/language_v1/test/google/cloud/language/v1/language_service_rest_test.rb index 6414c0e29..0ba35bf31 100644 --- a/shared/output/cloud/language_v1/test/google/cloud/language/v1/language_service_rest_test.rb +++ b/shared/output/cloud/language_v1/test/google/cloud/language/v1/language_service_rest_test.rb @@ -481,4 +481,28 @@ def test_configure assert_same block_config, config assert_kind_of ::Google::Cloud::Language::V1::LanguageService::Rest::Client::Configuration, config end + + def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + ::Google::Cloud::Language::V1::LanguageService::Rest::Client.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc + end end diff --git a/shared/output/cloud/location/lib/google/cloud/location/locations/rest/client.rb b/shared/output/cloud/location/lib/google/cloud/location/locations/rest/client.rb index c98103165..11134fc9b 100644 --- a/shared/output/cloud/location/lib/google/cloud/location/locations/rest/client.rb +++ b/shared/output/cloud/location/lib/google/cloud/location/locations/rest/client.rb @@ -150,7 +150,8 @@ def initialize endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @locations_stub.logger(stub: true)&.info do |entry| @@ -434,6 +435,9 @@ def get_location request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -463,6 +467,7 @@ class Configuration # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}] config_attr :bindings_override, {}, ::Hash, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/shared/output/cloud/location/lib/google/cloud/location/locations/rest/service_stub.rb b/shared/output/cloud/location/lib/google/cloud/location/locations/rest/service_stub.rb index 6dc6bd627..db2186830 100644 --- a/shared/output/cloud/location/lib/google/cloud/location/locations/rest/service_stub.rb +++ b/shared/output/cloud/location/lib/google/cloud/location/locations/rest/service_stub.rb @@ -30,19 +30,22 @@ module Rest # class ServiceStub # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: false, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: false, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/shared/output/cloud/location/test/google/cloud/location/locations_rest_test.rb b/shared/output/cloud/location/test/google/cloud/location/locations_rest_test.rb index 0c1f63c22..3a0898204 100644 --- a/shared/output/cloud/location/test/google/cloud/location/locations_rest_test.rb +++ b/shared/output/cloud/location/test/google/cloud/location/locations_rest_test.rb @@ -207,4 +207,28 @@ def test_configure assert_same block_config, config assert_kind_of ::Google::Cloud::Location::Locations::Rest::Client::Configuration, config end + + def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + ::Google::Cloud::Location::Locations::Rest::Client.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc + end end diff --git a/shared/output/cloud/vision_v1/lib/google/cloud/vision/v1/image_annotator/rest/client.rb b/shared/output/cloud/vision_v1/lib/google/cloud/vision/v1/image_annotator/rest/client.rb index 7f5c0c020..3769ebc1a 100644 --- a/shared/output/cloud/vision_v1/lib/google/cloud/vision/v1/image_annotator/rest/client.rb +++ b/shared/output/cloud/vision_v1/lib/google/cloud/vision/v1/image_annotator/rest/client.rb @@ -154,6 +154,7 @@ def initialize config.quota_project = @quota_project_id config.endpoint = @config.endpoint config.universe_domain = @config.universe_domain + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end @image_annotator_stub = ::Google::Cloud::Vision::V1::ImageAnnotator::Rest::ServiceStub.new( @@ -161,7 +162,8 @@ def initialize endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @image_annotator_stub.logger(stub: true)&.info do |entry| @@ -181,6 +183,7 @@ def initialize config.universe_domain = @image_annotator_stub.universe_domain config.bindings_override = @config.bindings_override config.logger = @image_annotator_stub.logger if config.respond_to? :logger= + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end end @@ -728,6 +731,9 @@ def async_batch_annotate_files request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -757,6 +763,7 @@ class Configuration # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}] config_attr :bindings_override, {}, ::Hash, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/shared/output/cloud/vision_v1/lib/google/cloud/vision/v1/image_annotator/rest/operations.rb b/shared/output/cloud/vision_v1/lib/google/cloud/vision/v1/image_annotator/rest/operations.rb index e452e4628..dda83e2ef 100644 --- a/shared/output/cloud/vision_v1/lib/google/cloud/vision/v1/image_annotator/rest/operations.rb +++ b/shared/output/cloud/vision_v1/lib/google/cloud/vision/v1/image_annotator/rest/operations.rb @@ -102,7 +102,8 @@ def initialize endpoint: @config.endpoint, endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, - credentials: credentials + credentials: credentials, + faraday_config: @config.faraday_config ) # Used by an LRO wrapper for some methods of this service @@ -558,6 +559,9 @@ def cancel_operation request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -580,6 +584,7 @@ class Configuration config_attr :quota_project, nil, ::String, nil config_attr :universe_domain, nil, ::String, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil @@ -663,15 +668,18 @@ def initialize parent_rpcs = nil # Service stub contains baseline method implementations # including transcoding, making the REST call, and deserialing the response. class OperationsServiceStub - def initialize endpoint:, endpoint_template:, universe_domain:, credentials: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + &faraday_config + ) end ## diff --git a/shared/output/cloud/vision_v1/lib/google/cloud/vision/v1/image_annotator/rest/service_stub.rb b/shared/output/cloud/vision_v1/lib/google/cloud/vision/v1/image_annotator/rest/service_stub.rb index e625edb5c..a335c23a6 100644 --- a/shared/output/cloud/vision_v1/lib/google/cloud/vision/v1/image_annotator/rest/service_stub.rb +++ b/shared/output/cloud/vision_v1/lib/google/cloud/vision/v1/image_annotator/rest/service_stub.rb @@ -31,19 +31,22 @@ module Rest # class ServiceStub # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: false, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: false, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/shared/output/cloud/vision_v1/lib/google/cloud/vision/v1/product_search/rest/client.rb b/shared/output/cloud/vision_v1/lib/google/cloud/vision/v1/product_search/rest/client.rb index d5337f528..eeaa4f1ad 100644 --- a/shared/output/cloud/vision_v1/lib/google/cloud/vision/v1/product_search/rest/client.rb +++ b/shared/output/cloud/vision_v1/lib/google/cloud/vision/v1/product_search/rest/client.rb @@ -167,6 +167,7 @@ def initialize config.quota_project = @quota_project_id config.endpoint = @config.endpoint config.universe_domain = @config.universe_domain + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end @product_search_stub = ::Google::Cloud::Vision::V1::ProductSearch::Rest::ServiceStub.new( @@ -174,7 +175,8 @@ def initialize endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @product_search_stub.logger(stub: true)&.info do |entry| @@ -194,6 +196,7 @@ def initialize config.universe_domain = @product_search_stub.universe_domain config.bindings_override = @config.bindings_override config.logger = @product_search_stub.logger if config.respond_to? :logger= + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end end @@ -2096,6 +2099,9 @@ def purge_products request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -2125,6 +2131,7 @@ class Configuration # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}] config_attr :bindings_override, {}, ::Hash, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/shared/output/cloud/vision_v1/lib/google/cloud/vision/v1/product_search/rest/operations.rb b/shared/output/cloud/vision_v1/lib/google/cloud/vision/v1/product_search/rest/operations.rb index cf5f9fd3f..ad3573517 100644 --- a/shared/output/cloud/vision_v1/lib/google/cloud/vision/v1/product_search/rest/operations.rb +++ b/shared/output/cloud/vision_v1/lib/google/cloud/vision/v1/product_search/rest/operations.rb @@ -102,7 +102,8 @@ def initialize endpoint: @config.endpoint, endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, - credentials: credentials + credentials: credentials, + faraday_config: @config.faraday_config ) # Used by an LRO wrapper for some methods of this service @@ -558,6 +559,9 @@ def cancel_operation request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -580,6 +584,7 @@ class Configuration config_attr :quota_project, nil, ::String, nil config_attr :universe_domain, nil, ::String, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil @@ -663,15 +668,18 @@ def initialize parent_rpcs = nil # Service stub contains baseline method implementations # including transcoding, making the REST call, and deserialing the response. class OperationsServiceStub - def initialize endpoint:, endpoint_template:, universe_domain:, credentials: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + &faraday_config + ) end ## diff --git a/shared/output/cloud/vision_v1/lib/google/cloud/vision/v1/product_search/rest/service_stub.rb b/shared/output/cloud/vision_v1/lib/google/cloud/vision/v1/product_search/rest/service_stub.rb index 06642c416..67d153619 100644 --- a/shared/output/cloud/vision_v1/lib/google/cloud/vision/v1/product_search/rest/service_stub.rb +++ b/shared/output/cloud/vision_v1/lib/google/cloud/vision/v1/product_search/rest/service_stub.rb @@ -31,19 +31,22 @@ module Rest # class ServiceStub # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: false, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: false, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/shared/output/cloud/vision_v1/test/google/cloud/vision/v1/image_annotator_rest_test.rb b/shared/output/cloud/vision_v1/test/google/cloud/vision/v1/image_annotator_rest_test.rb index 258d6f324..a39a22187 100644 --- a/shared/output/cloud/vision_v1/test/google/cloud/vision/v1/image_annotator_rest_test.rb +++ b/shared/output/cloud/vision_v1/test/google/cloud/vision/v1/image_annotator_rest_test.rb @@ -321,4 +321,28 @@ def test_configure assert_same block_config, config assert_kind_of ::Google::Cloud::Vision::V1::ImageAnnotator::Rest::Client::Configuration, config end + + def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + ::Google::Cloud::Vision::V1::ImageAnnotator::Rest::Client.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc + end end diff --git a/shared/output/cloud/vision_v1/test/google/cloud/vision/v1/product_search_rest_test.rb b/shared/output/cloud/vision_v1/test/google/cloud/vision/v1/product_search_rest_test.rb index 5bcc71106..707f4eb95 100644 --- a/shared/output/cloud/vision_v1/test/google/cloud/vision/v1/product_search_rest_test.rb +++ b/shared/output/cloud/vision_v1/test/google/cloud/vision/v1/product_search_rest_test.rb @@ -1143,4 +1143,28 @@ def test_configure assert_same block_config, config assert_kind_of ::Google::Cloud::Vision::V1::ProductSearch::Rest::Client::Configuration, config end + + def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + ::Google::Cloud::Vision::V1::ProductSearch::Rest::Client.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc + end end diff --git a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/compliance/rest/client.rb b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/compliance/rest/client.rb index 57d521421..08c4bec50 100644 --- a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/compliance/rest/client.rb +++ b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/compliance/rest/client.rb @@ -152,7 +152,8 @@ def initialize endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @compliance_stub.logger(stub: true)&.info do |entry| @@ -172,6 +173,7 @@ def initialize config.universe_domain = @compliance_stub.universe_domain config.bindings_override = @config.bindings_override config.logger = @compliance_stub.logger if config.respond_to? :logger= + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end @iam_policy_client = Google::Iam::V1::IAMPolicy::Rest::Client.new do |config| @@ -181,6 +183,7 @@ def initialize config.universe_domain = @compliance_stub.universe_domain config.bindings_override = @config.bindings_override config.logger = @compliance_stub.logger if config.respond_to? :logger= + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end end @@ -1198,6 +1201,9 @@ def verify_enum request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -1228,6 +1234,7 @@ class Configuration # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}] config_attr :bindings_override, {}, ::Hash, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/compliance/rest/service_stub.rb b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/compliance/rest/service_stub.rb index b805b9bba..dcd673bd3 100644 --- a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/compliance/rest/service_stub.rb +++ b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/compliance/rest/service_stub.rb @@ -38,19 +38,22 @@ module Rest # class ServiceStub # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: false, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: false, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/echo/rest/client.rb b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/echo/rest/client.rb index 60829521e..af4ba3067 100644 --- a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/echo/rest/client.rb +++ b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/echo/rest/client.rb @@ -159,6 +159,7 @@ def initialize config.quota_project = @quota_project_id config.endpoint = @config.endpoint config.universe_domain = @config.universe_domain + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end @echo_stub = ::Google::Showcase::V1beta1::Echo::Rest::ServiceStub.new( @@ -166,7 +167,8 @@ def initialize endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @echo_stub.logger(stub: true)&.info do |entry| @@ -186,6 +188,7 @@ def initialize config.universe_domain = @echo_stub.universe_domain config.bindings_override = @config.bindings_override config.logger = @echo_stub.logger if config.respond_to? :logger= + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end @iam_policy_client = Google::Iam::V1::IAMPolicy::Rest::Client.new do |config| @@ -195,6 +198,7 @@ def initialize config.universe_domain = @echo_stub.universe_domain config.bindings_override = @config.bindings_override config.logger = @echo_stub.logger if config.respond_to? :logger= + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end end @@ -1149,6 +1153,9 @@ def block request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -1179,6 +1186,7 @@ class Configuration # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}] config_attr :bindings_override, {}, ::Hash, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/echo/rest/operations.rb b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/echo/rest/operations.rb index 903ff9c12..461a72bbb 100644 --- a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/echo/rest/operations.rb +++ b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/echo/rest/operations.rb @@ -109,7 +109,8 @@ def initialize endpoint: @config.endpoint, endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, - credentials: credentials + credentials: credentials, + faraday_config: @config.faraday_config ) # Used by an LRO wrapper for some methods of this service @@ -566,6 +567,9 @@ def cancel_operation request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -589,6 +593,7 @@ class Configuration config_attr :quota_project, nil, ::String, nil config_attr :universe_domain, nil, ::String, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil @@ -672,15 +677,18 @@ def initialize parent_rpcs = nil # Service stub contains baseline method implementations # including transcoding, making the REST call, and deserialing the response. class OperationsServiceStub - def initialize endpoint:, endpoint_template:, universe_domain:, credentials: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + &faraday_config + ) end ## diff --git a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/echo/rest/service_stub.rb b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/echo/rest/service_stub.rb index 27a9611f7..6aaaaa0d3 100644 --- a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/echo/rest/service_stub.rb +++ b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/echo/rest/service_stub.rb @@ -38,19 +38,22 @@ module Rest # class ServiceStub # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: false, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: false, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/identity/rest/client.rb b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/identity/rest/client.rb index 9845576b3..31fb28a12 100644 --- a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/identity/rest/client.rb +++ b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/identity/rest/client.rb @@ -152,7 +152,8 @@ def initialize endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @identity_stub.logger(stub: true)&.info do |entry| @@ -172,6 +173,7 @@ def initialize config.universe_domain = @identity_stub.universe_domain config.bindings_override = @config.bindings_override config.logger = @identity_stub.logger if config.respond_to? :logger= + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end @iam_policy_client = Google::Iam::V1::IAMPolicy::Rest::Client.new do |config| @@ -181,6 +183,7 @@ def initialize config.universe_domain = @identity_stub.universe_domain config.bindings_override = @config.bindings_override config.logger = @identity_stub.logger if config.respond_to? :logger= + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end end @@ -701,6 +704,9 @@ def list_users request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -731,6 +737,7 @@ class Configuration # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}] config_attr :bindings_override, {}, ::Hash, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/identity/rest/service_stub.rb b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/identity/rest/service_stub.rb index 3d276b813..66eee474e 100644 --- a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/identity/rest/service_stub.rb +++ b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/identity/rest/service_stub.rb @@ -38,19 +38,22 @@ module Rest # class ServiceStub # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: false, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: false, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/messaging/rest/client.rb b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/messaging/rest/client.rb index 556e4a277..600d84f77 100644 --- a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/messaging/rest/client.rb +++ b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/messaging/rest/client.rb @@ -155,6 +155,7 @@ def initialize config.quota_project = @quota_project_id config.endpoint = @config.endpoint config.universe_domain = @config.universe_domain + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end @messaging_stub = ::Google::Showcase::V1beta1::Messaging::Rest::ServiceStub.new( @@ -162,7 +163,8 @@ def initialize endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @messaging_stub.logger(stub: true)&.info do |entry| @@ -182,6 +184,7 @@ def initialize config.universe_domain = @messaging_stub.universe_domain config.bindings_override = @config.bindings_override config.logger = @messaging_stub.logger if config.respond_to? :logger= + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end @iam_policy_client = Google::Iam::V1::IAMPolicy::Rest::Client.new do |config| @@ -191,6 +194,7 @@ def initialize config.universe_domain = @messaging_stub.universe_domain config.bindings_override = @config.bindings_override config.logger = @messaging_stub.logger if config.respond_to? :logger= + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end end @@ -1320,6 +1324,9 @@ def stream_blurbs request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -1350,6 +1357,7 @@ class Configuration # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}] config_attr :bindings_override, {}, ::Hash, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/messaging/rest/operations.rb b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/messaging/rest/operations.rb index 616f3cfd9..770b89e2b 100644 --- a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/messaging/rest/operations.rb +++ b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/messaging/rest/operations.rb @@ -109,7 +109,8 @@ def initialize endpoint: @config.endpoint, endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, - credentials: credentials + credentials: credentials, + faraday_config: @config.faraday_config ) # Used by an LRO wrapper for some methods of this service @@ -566,6 +567,9 @@ def cancel_operation request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -589,6 +593,7 @@ class Configuration config_attr :quota_project, nil, ::String, nil config_attr :universe_domain, nil, ::String, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil @@ -672,15 +677,18 @@ def initialize parent_rpcs = nil # Service stub contains baseline method implementations # including transcoding, making the REST call, and deserialing the response. class OperationsServiceStub - def initialize endpoint:, endpoint_template:, universe_domain:, credentials: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + &faraday_config + ) end ## diff --git a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/messaging/rest/service_stub.rb b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/messaging/rest/service_stub.rb index 7d96ae460..f2efdd1d6 100644 --- a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/messaging/rest/service_stub.rb +++ b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/messaging/rest/service_stub.rb @@ -38,19 +38,22 @@ module Rest # class ServiceStub # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: false, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: false, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/sequence_service/rest/client.rb b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/sequence_service/rest/client.rb index 6600191ec..c7f749f7c 100644 --- a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/sequence_service/rest/client.rb +++ b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/sequence_service/rest/client.rb @@ -150,7 +150,8 @@ def initialize endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @sequence_service_stub.logger(stub: true)&.info do |entry| @@ -170,6 +171,7 @@ def initialize config.universe_domain = @sequence_service_stub.universe_domain config.bindings_override = @config.bindings_override config.logger = @sequence_service_stub.logger if config.respond_to? :logger= + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end @iam_policy_client = Google::Iam::V1::IAMPolicy::Rest::Client.new do |config| @@ -179,6 +181,7 @@ def initialize config.universe_domain = @sequence_service_stub.universe_domain config.bindings_override = @config.bindings_override config.logger = @sequence_service_stub.logger if config.respond_to? :logger= + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end end @@ -767,6 +770,9 @@ def attempt_streaming_sequence request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -797,6 +803,7 @@ class Configuration # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}] config_attr :bindings_override, {}, ::Hash, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/sequence_service/rest/service_stub.rb b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/sequence_service/rest/service_stub.rb index 85f78fd0c..c4fa6c032 100644 --- a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/sequence_service/rest/service_stub.rb +++ b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/sequence_service/rest/service_stub.rb @@ -38,19 +38,22 @@ module Rest # class ServiceStub # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: false, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: false, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/testing/rest/client.rb b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/testing/rest/client.rb index 18e344408..4b055f0d2 100644 --- a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/testing/rest/client.rb +++ b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/testing/rest/client.rb @@ -156,7 +156,8 @@ def initialize endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @testing_stub.logger(stub: true)&.info do |entry| @@ -176,6 +177,7 @@ def initialize config.universe_domain = @testing_stub.universe_domain config.bindings_override = @config.bindings_override config.logger = @testing_stub.logger if config.respond_to? :logger= + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end @iam_policy_client = Google::Iam::V1::IAMPolicy::Rest::Client.new do |config| @@ -185,6 +187,7 @@ def initialize config.universe_domain = @testing_stub.universe_domain config.bindings_override = @config.bindings_override config.logger = @testing_stub.logger if config.respond_to? :logger= + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end end @@ -963,6 +966,9 @@ def verify_test request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -993,6 +999,7 @@ class Configuration # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}] config_attr :bindings_override, {}, ::Hash, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/testing/rest/service_stub.rb b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/testing/rest/service_stub.rb index fd33e867b..1573286c7 100644 --- a/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/testing/rest/service_stub.rb +++ b/shared/output/gapic/templates/showcase/lib/google/showcase/v1beta1/testing/rest/service_stub.rb @@ -38,19 +38,22 @@ module Rest # class ServiceStub # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: false, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: false, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/shared/output/gapic/templates/showcase/test/google/showcase/v1beta1/compliance_rest_test.rb b/shared/output/gapic/templates/showcase/test/google/showcase/v1beta1/compliance_rest_test.rb index 7a2eb9f05..94afb386c 100644 --- a/shared/output/gapic/templates/showcase/test/google/showcase/v1beta1/compliance_rest_test.rb +++ b/shared/output/gapic/templates/showcase/test/google/showcase/v1beta1/compliance_rest_test.rb @@ -717,4 +717,28 @@ def test_configure assert_same block_config, config assert_kind_of ::Google::Showcase::V1beta1::Compliance::Rest::Client::Configuration, config end + + def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + ::Google::Showcase::V1beta1::Compliance::Rest::Client.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc + end end diff --git a/shared/output/gapic/templates/showcase/test/google/showcase/v1beta1/echo_rest_test.rb b/shared/output/gapic/templates/showcase/test/google/showcase/v1beta1/echo_rest_test.rb index 281aa2f02..aa0a41990 100644 --- a/shared/output/gapic/templates/showcase/test/google/showcase/v1beta1/echo_rest_test.rb +++ b/shared/output/gapic/templates/showcase/test/google/showcase/v1beta1/echo_rest_test.rb @@ -606,4 +606,28 @@ def test_configure assert_same block_config, config assert_kind_of ::Google::Showcase::V1beta1::Echo::Rest::Client::Configuration, config end + + def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + ::Google::Showcase::V1beta1::Echo::Rest::Client.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc + end end diff --git a/shared/output/gapic/templates/showcase/test/google/showcase/v1beta1/identity_rest_test.rb b/shared/output/gapic/templates/showcase/test/google/showcase/v1beta1/identity_rest_test.rb index c57c5074e..f470a3e08 100644 --- a/shared/output/gapic/templates/showcase/test/google/showcase/v1beta1/identity_rest_test.rb +++ b/shared/output/gapic/templates/showcase/test/google/showcase/v1beta1/identity_rest_test.rb @@ -376,4 +376,28 @@ def test_configure assert_same block_config, config assert_kind_of ::Google::Showcase::V1beta1::Identity::Rest::Client::Configuration, config end + + def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + ::Google::Showcase::V1beta1::Identity::Rest::Client.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc + end end diff --git a/shared/output/gapic/templates/showcase/test/google/showcase/v1beta1/messaging_rest_test.rb b/shared/output/gapic/templates/showcase/test/google/showcase/v1beta1/messaging_rest_test.rb index 4eb9f5cb1..d48eed621 100644 --- a/shared/output/gapic/templates/showcase/test/google/showcase/v1beta1/messaging_rest_test.rb +++ b/shared/output/gapic/templates/showcase/test/google/showcase/v1beta1/messaging_rest_test.rb @@ -762,4 +762,28 @@ def test_configure assert_same block_config, config assert_kind_of ::Google::Showcase::V1beta1::Messaging::Rest::Client::Configuration, config end + + def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + ::Google::Showcase::V1beta1::Messaging::Rest::Client.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc + end end diff --git a/shared/output/gapic/templates/showcase/test/google/showcase/v1beta1/sequence_service_rest_test.rb b/shared/output/gapic/templates/showcase/test/google/showcase/v1beta1/sequence_service_rest_test.rb index d470d6a33..f77a5931b 100644 --- a/shared/output/gapic/templates/showcase/test/google/showcase/v1beta1/sequence_service_rest_test.rb +++ b/shared/output/gapic/templates/showcase/test/google/showcase/v1beta1/sequence_service_rest_test.rb @@ -429,4 +429,28 @@ def test_configure assert_same block_config, config assert_kind_of ::Google::Showcase::V1beta1::SequenceService::Rest::Client::Configuration, config end + + def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + ::Google::Showcase::V1beta1::SequenceService::Rest::Client.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc + end end diff --git a/shared/output/gapic/templates/showcase/test/google/showcase/v1beta1/testing_rest_test.rb b/shared/output/gapic/templates/showcase/test/google/showcase/v1beta1/testing_rest_test.rb index 689414648..0253b013d 100644 --- a/shared/output/gapic/templates/showcase/test/google/showcase/v1beta1/testing_rest_test.rb +++ b/shared/output/gapic/templates/showcase/test/google/showcase/v1beta1/testing_rest_test.rb @@ -541,4 +541,28 @@ def test_configure assert_same block_config, config assert_kind_of ::Google::Showcase::V1beta1::Testing::Rest::Client::Configuration, config end + + def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + ::Google::Showcase::V1beta1::Testing::Rest::Client.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc + end end diff --git a/shared/output/gapic/templates/testing/lib/testing/grpc_service_config/service_no_retry/rest/client.rb b/shared/output/gapic/templates/testing/lib/testing/grpc_service_config/service_no_retry/rest/client.rb index 01b734ea6..3c396cf43 100644 --- a/shared/output/gapic/templates/testing/lib/testing/grpc_service_config/service_no_retry/rest/client.rb +++ b/shared/output/gapic/templates/testing/lib/testing/grpc_service_config/service_no_retry/rest/client.rb @@ -146,7 +146,8 @@ def initialize endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @service_no_retry_stub.logger(stub: true)&.info do |entry| @@ -166,6 +167,7 @@ def initialize config.universe_domain = @service_no_retry_stub.universe_domain config.bindings_override = @config.bindings_override config.logger = @service_no_retry_stub.logger if config.respond_to? :logger= + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end end @@ -342,6 +344,9 @@ def no_retry_method request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -372,6 +377,7 @@ class Configuration # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}] config_attr :bindings_override, {}, ::Hash, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/shared/output/gapic/templates/testing/lib/testing/grpc_service_config/service_no_retry/rest/service_stub.rb b/shared/output/gapic/templates/testing/lib/testing/grpc_service_config/service_no_retry/rest/service_stub.rb index f5d35c856..0833be0c2 100644 --- a/shared/output/gapic/templates/testing/lib/testing/grpc_service_config/service_no_retry/rest/service_stub.rb +++ b/shared/output/gapic/templates/testing/lib/testing/grpc_service_config/service_no_retry/rest/service_stub.rb @@ -37,19 +37,22 @@ module Rest # class ServiceStub # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: false, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: false, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/shared/output/gapic/templates/testing/lib/testing/grpc_service_config/service_with_retries/rest/client.rb b/shared/output/gapic/templates/testing/lib/testing/grpc_service_config/service_with_retries/rest/client.rb index 9c449f071..45541c466 100644 --- a/shared/output/gapic/templates/testing/lib/testing/grpc_service_config/service_with_retries/rest/client.rb +++ b/shared/output/gapic/templates/testing/lib/testing/grpc_service_config/service_with_retries/rest/client.rb @@ -156,7 +156,8 @@ def initialize endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @service_with_retries_stub.logger(stub: true)&.info do |entry| @@ -176,6 +177,7 @@ def initialize config.universe_domain = @service_with_retries_stub.universe_domain config.bindings_override = @config.bindings_override config.logger = @service_with_retries_stub.logger if config.respond_to? :logger= + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end end @@ -420,6 +422,9 @@ def method_level_retry_method request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -450,6 +455,7 @@ class Configuration # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}] config_attr :bindings_override, {}, ::Hash, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/shared/output/gapic/templates/testing/lib/testing/grpc_service_config/service_with_retries/rest/service_stub.rb b/shared/output/gapic/templates/testing/lib/testing/grpc_service_config/service_with_retries/rest/service_stub.rb index 93f0a18da..6635f961a 100644 --- a/shared/output/gapic/templates/testing/lib/testing/grpc_service_config/service_with_retries/rest/service_stub.rb +++ b/shared/output/gapic/templates/testing/lib/testing/grpc_service_config/service_with_retries/rest/service_stub.rb @@ -37,19 +37,22 @@ module Rest # class ServiceStub # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: false, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: false, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/shared/output/gapic/templates/testing/lib/testing/mixins/service_with_loc/rest/client.rb b/shared/output/gapic/templates/testing/lib/testing/mixins/service_with_loc/rest/client.rb index ee953821c..5cbf382ae 100644 --- a/shared/output/gapic/templates/testing/lib/testing/mixins/service_with_loc/rest/client.rb +++ b/shared/output/gapic/templates/testing/lib/testing/mixins/service_with_loc/rest/client.rb @@ -146,7 +146,8 @@ def initialize endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @service_with_loc_stub.logger(stub: true)&.info do |entry| @@ -166,6 +167,7 @@ def initialize config.universe_domain = @service_with_loc_stub.universe_domain config.bindings_override = @config.bindings_override config.logger = @service_with_loc_stub.logger if config.respond_to? :logger= + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end end @@ -342,6 +344,9 @@ def call_method request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -372,6 +377,7 @@ class Configuration # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}] config_attr :bindings_override, {}, ::Hash, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/shared/output/gapic/templates/testing/lib/testing/mixins/service_with_loc/rest/service_stub.rb b/shared/output/gapic/templates/testing/lib/testing/mixins/service_with_loc/rest/service_stub.rb index b982af754..805c1af51 100644 --- a/shared/output/gapic/templates/testing/lib/testing/mixins/service_with_loc/rest/service_stub.rb +++ b/shared/output/gapic/templates/testing/lib/testing/mixins/service_with_loc/rest/service_stub.rb @@ -37,19 +37,22 @@ module Rest # class ServiceStub # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: false, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: false, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/shared/output/gapic/templates/testing/lib/testing/mixins/service_with_loc_and_non_rest_ops/rest/client.rb b/shared/output/gapic/templates/testing/lib/testing/mixins/service_with_loc_and_non_rest_ops/rest/client.rb index 7ac24adc4..670bbfc64 100644 --- a/shared/output/gapic/templates/testing/lib/testing/mixins/service_with_loc_and_non_rest_ops/rest/client.rb +++ b/shared/output/gapic/templates/testing/lib/testing/mixins/service_with_loc_and_non_rest_ops/rest/client.rb @@ -146,7 +146,8 @@ def initialize endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @service_with_loc_and_non_rest_ops_stub.logger(stub: true)&.info do |entry| @@ -166,6 +167,7 @@ def initialize config.universe_domain = @service_with_loc_and_non_rest_ops_stub.universe_domain config.bindings_override = @config.bindings_override config.logger = @service_with_loc_and_non_rest_ops_stub.logger if config.respond_to? :logger= + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end end @@ -342,6 +344,9 @@ def call_method request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -372,6 +377,7 @@ class Configuration # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}] config_attr :bindings_override, {}, ::Hash, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/shared/output/gapic/templates/testing/lib/testing/mixins/service_with_loc_and_non_rest_ops/rest/service_stub.rb b/shared/output/gapic/templates/testing/lib/testing/mixins/service_with_loc_and_non_rest_ops/rest/service_stub.rb index ec7c2088a..df56d192c 100644 --- a/shared/output/gapic/templates/testing/lib/testing/mixins/service_with_loc_and_non_rest_ops/rest/service_stub.rb +++ b/shared/output/gapic/templates/testing/lib/testing/mixins/service_with_loc_and_non_rest_ops/rest/service_stub.rb @@ -37,19 +37,22 @@ module Rest # class ServiceStub # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: false, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: false, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/all_subclients_consumer/rest/client.rb b/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/all_subclients_consumer/rest/client.rb index 97656de6f..2a6881be1 100644 --- a/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/all_subclients_consumer/rest/client.rb +++ b/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/all_subclients_consumer/rest/client.rb @@ -148,6 +148,7 @@ def initialize config.quota_project = @quota_project_id config.endpoint = @config.endpoint config.universe_domain = @config.universe_domain + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end @plain_lro_provider = ::Testing::NonstandardLroGrpc::PlainLroProvider::Rest::Client.new do |config| @@ -155,6 +156,7 @@ def initialize config.quota_project = @quota_project_id config.endpoint = @config.endpoint config.universe_domain = @config.universe_domain + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end @another_lro_provider = ::Testing::NonstandardLroGrpc::AnotherLroProvider::Rest::Client.new do |config| @@ -162,6 +164,7 @@ def initialize config.quota_project = @quota_project_id config.endpoint = @config.endpoint config.universe_domain = @config.universe_domain + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end @all_subclients_consumer_stub = ::Testing::NonstandardLroGrpc::AllSubclientsConsumer::Rest::ServiceStub.new( @@ -169,7 +172,8 @@ def initialize endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @all_subclients_consumer_stub.logger(stub: true)&.info do |entry| @@ -189,6 +193,7 @@ def initialize config.universe_domain = @all_subclients_consumer_stub.universe_domain config.bindings_override = @config.bindings_override config.logger = @all_subclients_consumer_stub.logger if config.respond_to? :logger= + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end end @@ -732,6 +737,9 @@ def no_lro request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -762,6 +770,7 @@ class Configuration # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}] config_attr :bindings_override, {}, ::Hash, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/all_subclients_consumer/rest/operations.rb b/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/all_subclients_consumer/rest/operations.rb index 550424e22..4366559eb 100644 --- a/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/all_subclients_consumer/rest/operations.rb +++ b/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/all_subclients_consumer/rest/operations.rb @@ -108,7 +108,8 @@ def initialize endpoint: @config.endpoint, endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, - credentials: credentials + credentials: credentials, + faraday_config: @config.faraday_config ) # Used by an LRO wrapper for some methods of this service @@ -565,6 +566,9 @@ def cancel_operation request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -588,6 +592,7 @@ class Configuration config_attr :quota_project, nil, ::String, nil config_attr :universe_domain, nil, ::String, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil @@ -671,15 +676,18 @@ def initialize parent_rpcs = nil # Service stub contains baseline method implementations # including transcoding, making the REST call, and deserialing the response. class OperationsServiceStub - def initialize endpoint:, endpoint_template:, universe_domain:, credentials: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + &faraday_config + ) end ## diff --git a/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/all_subclients_consumer/rest/service_stub.rb b/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/all_subclients_consumer/rest/service_stub.rb index 631a5af7c..15f426514 100644 --- a/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/all_subclients_consumer/rest/service_stub.rb +++ b/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/all_subclients_consumer/rest/service_stub.rb @@ -37,19 +37,22 @@ module Rest # class ServiceStub # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: false, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: false, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/another_lro_provider/rest/client.rb b/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/another_lro_provider/rest/client.rb index 3227bdd02..667f38bc0 100644 --- a/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/another_lro_provider/rest/client.rb +++ b/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/another_lro_provider/rest/client.rb @@ -146,7 +146,8 @@ def initialize endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @another_lro_provider_stub.logger(stub: true)&.info do |entry| @@ -166,6 +167,7 @@ def initialize config.universe_domain = @another_lro_provider_stub.universe_domain config.bindings_override = @config.bindings_override config.logger = @another_lro_provider_stub.logger if config.respond_to? :logger= + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end end @@ -350,6 +352,9 @@ def get_another request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -380,6 +385,7 @@ class Configuration # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}] config_attr :bindings_override, {}, ::Hash, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/another_lro_provider/rest/service_stub.rb b/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/another_lro_provider/rest/service_stub.rb index 35cf6d00c..216aa4003 100644 --- a/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/another_lro_provider/rest/service_stub.rb +++ b/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/another_lro_provider/rest/service_stub.rb @@ -37,19 +37,22 @@ module Rest # class ServiceStub # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: false, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: false, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/plain_lro_consumer/rest/client.rb b/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/plain_lro_consumer/rest/client.rb index 52d1a8c46..1f049a9d0 100644 --- a/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/plain_lro_consumer/rest/client.rb +++ b/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/plain_lro_consumer/rest/client.rb @@ -147,6 +147,7 @@ def initialize config.quota_project = @quota_project_id config.endpoint = @config.endpoint config.universe_domain = @config.universe_domain + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end @plain_lro_consumer_stub = ::Testing::NonstandardLroGrpc::PlainLroConsumer::Rest::ServiceStub.new( @@ -154,7 +155,8 @@ def initialize endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @plain_lro_consumer_stub.logger(stub: true)&.info do |entry| @@ -174,6 +176,7 @@ def initialize config.universe_domain = @plain_lro_consumer_stub.universe_domain config.bindings_override = @config.bindings_override config.logger = @plain_lro_consumer_stub.logger if config.respond_to? :logger= + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end end @@ -373,6 +376,9 @@ def plain_lro_rpc request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -403,6 +409,7 @@ class Configuration # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}] config_attr :bindings_override, {}, ::Hash, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/plain_lro_consumer/rest/service_stub.rb b/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/plain_lro_consumer/rest/service_stub.rb index 2bdeb2509..9895ce4a1 100644 --- a/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/plain_lro_consumer/rest/service_stub.rb +++ b/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/plain_lro_consumer/rest/service_stub.rb @@ -37,19 +37,22 @@ module Rest # class ServiceStub # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: false, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: false, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/plain_lro_provider/rest/client.rb b/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/plain_lro_provider/rest/client.rb index c735f4074..fc01675ee 100644 --- a/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/plain_lro_provider/rest/client.rb +++ b/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/plain_lro_provider/rest/client.rb @@ -146,7 +146,8 @@ def initialize endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @plain_lro_provider_stub.logger(stub: true)&.info do |entry| @@ -166,6 +167,7 @@ def initialize config.universe_domain = @plain_lro_provider_stub.universe_domain config.bindings_override = @config.bindings_override config.logger = @plain_lro_provider_stub.logger if config.respond_to? :logger= + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end end @@ -350,6 +352,9 @@ def get request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -380,6 +385,7 @@ class Configuration # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}] config_attr :bindings_override, {}, ::Hash, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/plain_lro_provider/rest/service_stub.rb b/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/plain_lro_provider/rest/service_stub.rb index a2ecb3aae..8dead0140 100644 --- a/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/plain_lro_provider/rest/service_stub.rb +++ b/shared/output/gapic/templates/testing/lib/testing/nonstandard_lro_grpc/plain_lro_provider/rest/service_stub.rb @@ -37,19 +37,22 @@ module Rest # class ServiceStub # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: false, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: false, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/shared/output/gapic/templates/testing/lib/testing/routing_headers/service_explicit_headers/rest/client.rb b/shared/output/gapic/templates/testing/lib/testing/routing_headers/service_explicit_headers/rest/client.rb index 118c67d70..aa9992557 100644 --- a/shared/output/gapic/templates/testing/lib/testing/routing_headers/service_explicit_headers/rest/client.rb +++ b/shared/output/gapic/templates/testing/lib/testing/routing_headers/service_explicit_headers/rest/client.rb @@ -146,7 +146,8 @@ def initialize endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @service_explicit_headers_stub.logger(stub: true)&.info do |entry| @@ -166,6 +167,7 @@ def initialize config.universe_domain = @service_explicit_headers_stub.universe_domain config.bindings_override = @config.bindings_override config.logger = @service_explicit_headers_stub.logger if config.respond_to? :logger= + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end end @@ -704,6 +706,9 @@ def with_sub_message request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -734,6 +739,7 @@ class Configuration # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}] config_attr :bindings_override, {}, ::Hash, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/shared/output/gapic/templates/testing/lib/testing/routing_headers/service_explicit_headers/rest/service_stub.rb b/shared/output/gapic/templates/testing/lib/testing/routing_headers/service_explicit_headers/rest/service_stub.rb index 951694852..7cd465298 100644 --- a/shared/output/gapic/templates/testing/lib/testing/routing_headers/service_explicit_headers/rest/service_stub.rb +++ b/shared/output/gapic/templates/testing/lib/testing/routing_headers/service_explicit_headers/rest/service_stub.rb @@ -37,19 +37,22 @@ module Rest # class ServiceStub # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: false, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: false, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/shared/output/gapic/templates/testing/lib/testing/routing_headers/service_implicit_headers/rest/client.rb b/shared/output/gapic/templates/testing/lib/testing/routing_headers/service_implicit_headers/rest/client.rb index a77907952..22e892254 100644 --- a/shared/output/gapic/templates/testing/lib/testing/routing_headers/service_implicit_headers/rest/client.rb +++ b/shared/output/gapic/templates/testing/lib/testing/routing_headers/service_implicit_headers/rest/client.rb @@ -146,7 +146,8 @@ def initialize endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, credentials: credentials, - logger: @config.logger + logger: @config.logger, + faraday_config: @config.faraday_config ) @service_implicit_headers_stub.logger(stub: true)&.info do |entry| @@ -166,6 +167,7 @@ def initialize config.universe_domain = @service_implicit_headers_stub.universe_domain config.bindings_override = @config.bindings_override config.logger = @service_implicit_headers_stub.logger if config.respond_to? :logger= + config.faraday_config = @config.faraday_config if config.respond_to? :faraday_config= end end @@ -532,6 +534,9 @@ def with_multiple_levels request, options = nil # `:default` (the default) to construct a default logger, or `nil` to # explicitly disable logging. # @return [::Logger,:default,nil] + # @!attribute [rw] faraday_config + # A Proc to configure the underlying Faraday connection object. + # @return [::Proc,nil] # class Configuration extend ::Gapic::Config @@ -562,6 +567,7 @@ class Configuration # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}] config_attr :bindings_override, {}, ::Hash, nil config_attr :logger, :default, ::Logger, nil, :default + config_attr :faraday_config, nil, ::Proc, nil # @private def initialize parent_config = nil diff --git a/shared/output/gapic/templates/testing/lib/testing/routing_headers/service_implicit_headers/rest/service_stub.rb b/shared/output/gapic/templates/testing/lib/testing/routing_headers/service_implicit_headers/rest/service_stub.rb index 3337cfde8..504ce3461 100644 --- a/shared/output/gapic/templates/testing/lib/testing/routing_headers/service_implicit_headers/rest/service_stub.rb +++ b/shared/output/gapic/templates/testing/lib/testing/routing_headers/service_implicit_headers/rest/service_stub.rb @@ -37,19 +37,22 @@ module Rest # class ServiceStub # @private - def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:, faraday_config: nil # These require statements are intentionally placed here to initialize # the REST modules only when it's required. require "gapic/rest" - @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, - endpoint_template: endpoint_template, - universe_domain: universe_domain, - credentials: credentials, - numeric_enums: false, - service_name: self.class, - raise_faraday_errors: false, - logger: logger + @client_stub = ::Gapic::Rest::ClientStub.new( + endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: false, + service_name: self.class, + raise_faraday_errors: false, + logger: logger, + &faraday_config + ) end ## diff --git a/shared/output/gapic/templates/testing/test/testing/grpc_service_config/service_no_retry_rest_test.rb b/shared/output/gapic/templates/testing/test/testing/grpc_service_config/service_no_retry_rest_test.rb index fc16eed39..0182c8452 100644 --- a/shared/output/gapic/templates/testing/test/testing/grpc_service_config/service_no_retry_rest_test.rb +++ b/shared/output/gapic/templates/testing/test/testing/grpc_service_config/service_no_retry_rest_test.rb @@ -152,4 +152,28 @@ def test_configure assert_same block_config, config assert_kind_of ::Testing::GrpcServiceConfig::ServiceNoRetry::Rest::Client::Configuration, config end + + def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + ::Testing::GrpcServiceConfig::ServiceNoRetry::Rest::Client.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc + end end diff --git a/shared/output/gapic/templates/testing/test/testing/grpc_service_config/service_with_retries_rest_test.rb b/shared/output/gapic/templates/testing/test/testing/grpc_service_config/service_with_retries_rest_test.rb index a794b4e45..a50f8e989 100644 --- a/shared/output/gapic/templates/testing/test/testing/grpc_service_config/service_with_retries_rest_test.rb +++ b/shared/output/gapic/templates/testing/test/testing/grpc_service_config/service_with_retries_rest_test.rb @@ -200,4 +200,28 @@ def test_configure assert_same block_config, config assert_kind_of ::Testing::GrpcServiceConfig::ServiceWithRetries::Rest::Client::Configuration, config end + + def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + ::Testing::GrpcServiceConfig::ServiceWithRetries::Rest::Client.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc + end end diff --git a/shared/output/gapic/templates/testing/test/testing/mixins/service_with_loc_and_non_rest_ops_rest_test.rb b/shared/output/gapic/templates/testing/test/testing/mixins/service_with_loc_and_non_rest_ops_rest_test.rb index 5cc479a88..89df7cb01 100644 --- a/shared/output/gapic/templates/testing/test/testing/mixins/service_with_loc_and_non_rest_ops_rest_test.rb +++ b/shared/output/gapic/templates/testing/test/testing/mixins/service_with_loc_and_non_rest_ops_rest_test.rb @@ -152,4 +152,28 @@ def test_configure assert_same block_config, config assert_kind_of ::Testing::Mixins::ServiceWithLocAndNonRestOps::Rest::Client::Configuration, config end + + def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + ::Testing::Mixins::ServiceWithLocAndNonRestOps::Rest::Client.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc + end end diff --git a/shared/output/gapic/templates/testing/test/testing/mixins/service_with_loc_rest_test.rb b/shared/output/gapic/templates/testing/test/testing/mixins/service_with_loc_rest_test.rb index d2d0d7d50..5572e7cc9 100644 --- a/shared/output/gapic/templates/testing/test/testing/mixins/service_with_loc_rest_test.rb +++ b/shared/output/gapic/templates/testing/test/testing/mixins/service_with_loc_rest_test.rb @@ -152,4 +152,28 @@ def test_configure assert_same block_config, config assert_kind_of ::Testing::Mixins::ServiceWithLoc::Rest::Client::Configuration, config end + + def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + ::Testing::Mixins::ServiceWithLoc::Rest::Client.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc + end end diff --git a/shared/output/gapic/templates/testing/test/testing/nonstandard_lro_grpc/all_subclients_consumer_rest_test.rb b/shared/output/gapic/templates/testing/test/testing/nonstandard_lro_grpc/all_subclients_consumer_rest_test.rb index 607573c3e..54f1d9e5b 100644 --- a/shared/output/gapic/templates/testing/test/testing/nonstandard_lro_grpc/all_subclients_consumer_rest_test.rb +++ b/shared/output/gapic/templates/testing/test/testing/nonstandard_lro_grpc/all_subclients_consumer_rest_test.rb @@ -368,4 +368,28 @@ def test_configure assert_same block_config, config assert_kind_of ::Testing::NonstandardLroGrpc::AllSubclientsConsumer::Rest::Client::Configuration, config end + + def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + ::Testing::NonstandardLroGrpc::AllSubclientsConsumer::Rest::Client.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc + end end diff --git a/shared/output/gapic/templates/testing/test/testing/nonstandard_lro_grpc/another_lro_provider_rest_test.rb b/shared/output/gapic/templates/testing/test/testing/nonstandard_lro_grpc/another_lro_provider_rest_test.rb index 802e11cf9..026769ac1 100644 --- a/shared/output/gapic/templates/testing/test/testing/nonstandard_lro_grpc/another_lro_provider_rest_test.rb +++ b/shared/output/gapic/templates/testing/test/testing/nonstandard_lro_grpc/another_lro_provider_rest_test.rb @@ -159,4 +159,28 @@ def test_configure assert_same block_config, config assert_kind_of ::Testing::NonstandardLroGrpc::AnotherLroProvider::Rest::Client::Configuration, config end + + def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + ::Testing::NonstandardLroGrpc::AnotherLroProvider::Rest::Client.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc + end end diff --git a/shared/output/gapic/templates/testing/test/testing/nonstandard_lro_grpc/plain_lro_consumer_rest_test.rb b/shared/output/gapic/templates/testing/test/testing/nonstandard_lro_grpc/plain_lro_consumer_rest_test.rb index 7c9530a7f..f0fb8fe66 100644 --- a/shared/output/gapic/templates/testing/test/testing/nonstandard_lro_grpc/plain_lro_consumer_rest_test.rb +++ b/shared/output/gapic/templates/testing/test/testing/nonstandard_lro_grpc/plain_lro_consumer_rest_test.rb @@ -158,4 +158,28 @@ def test_configure assert_same block_config, config assert_kind_of ::Testing::NonstandardLroGrpc::PlainLroConsumer::Rest::Client::Configuration, config end + + def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + ::Testing::NonstandardLroGrpc::PlainLroConsumer::Rest::Client.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc + end end diff --git a/shared/output/gapic/templates/testing/test/testing/nonstandard_lro_grpc/plain_lro_provider_rest_test.rb b/shared/output/gapic/templates/testing/test/testing/nonstandard_lro_grpc/plain_lro_provider_rest_test.rb index 2af15e2b6..499d8f87b 100644 --- a/shared/output/gapic/templates/testing/test/testing/nonstandard_lro_grpc/plain_lro_provider_rest_test.rb +++ b/shared/output/gapic/templates/testing/test/testing/nonstandard_lro_grpc/plain_lro_provider_rest_test.rb @@ -159,4 +159,28 @@ def test_configure assert_same block_config, config assert_kind_of ::Testing::NonstandardLroGrpc::PlainLroProvider::Rest::Client::Configuration, config end + + def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + ::Testing::NonstandardLroGrpc::PlainLroProvider::Rest::Client.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc + end end diff --git a/shared/output/gapic/templates/testing/test/testing/routing_headers/service_explicit_headers_rest_test.rb b/shared/output/gapic/templates/testing/test/testing/routing_headers/service_explicit_headers_rest_test.rb index 836681cdb..f4124ccaa 100644 --- a/shared/output/gapic/templates/testing/test/testing/routing_headers/service_explicit_headers_rest_test.rb +++ b/shared/output/gapic/templates/testing/test/testing/routing_headers/service_explicit_headers_rest_test.rb @@ -384,4 +384,28 @@ def test_configure assert_same block_config, config assert_kind_of ::Testing::RoutingHeaders::ServiceExplicitHeaders::Rest::Client::Configuration, config end + + def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + ::Testing::RoutingHeaders::ServiceExplicitHeaders::Rest::Client.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc + end end diff --git a/shared/output/gapic/templates/testing/test/testing/routing_headers/service_implicit_headers_rest_test.rb b/shared/output/gapic/templates/testing/test/testing/routing_headers/service_implicit_headers_rest_test.rb index 2426bbe5d..00974e824 100644 --- a/shared/output/gapic/templates/testing/test/testing/routing_headers/service_implicit_headers_rest_test.rb +++ b/shared/output/gapic/templates/testing/test/testing/routing_headers/service_implicit_headers_rest_test.rb @@ -272,4 +272,28 @@ def test_configure assert_same block_config, config assert_kind_of ::Testing::RoutingHeaders::ServiceImplicitHeaders::Rest::Client::Configuration, config end + + def test_faraday_config + # Create test objects. + credentials_token = :dummy_value + captured_blocks = [] + + faraday_config_proc = ->(conn) { conn.ssl.client_cert = "cert" } + + stub_proc = ->(**kwargs, &block) do + captured_blocks << block + ClientStub.new nil + end + + # Create client with faraday_config option. + Gapic::Rest::ClientStub.stub :new, stub_proc do + ::Testing::RoutingHeaders::ServiceImplicitHeaders::Rest::Client.new do |config| + config.credentials = credentials_token + config.faraday_config = faraday_config_proc + end + end + + # Verify faraday_config block passthrough. + assert_includes captured_blocks, faraday_config_proc + end end