gapic-generator-cloud 0.10.1 → 0.45.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +330 -0
- data/README.md +82 -61
- data/bin/protoc-gen-bazel_ruby_cloud +2 -2
- data/bin/protoc-gen-ruby_cloud +2 -2
- data/lib/gapic/generator/cloud/version.rb +1 -1
- data/lib/gapic/generators/cloud_generator.rb +20 -21
- data/lib/gapic/generators/cloud_generator_parameters.rb +5 -1
- data/lib/gapic/presenters/cloud_gem_presenter.rb +60 -13
- data/lib/gapic/presenters/wrapper_gem_presenter.rb +31 -9
- data/lib/gapic/presenters/wrapper_service_presenter.rb +23 -1
- data/lib/gapic/presenters/wrapper_service_rest_presenter.rb +49 -0
- data/templates/cloud/gem/authentication.text.erb +125 -0
- data/templates/cloud/gem/{rakefile.erb → rakefile.text.erb} +0 -37
- data/templates/cloud/gem/{readme.erb → readme.text.erb} +48 -26
- data/templates/cloud/gem/{repo-metadata.erb → repo-metadata.text.erb} +3 -0
- data/templates/cloud/gem/{rubocop.erb → rubocop.text.erb} +3 -0
- data/templates/cloud/gem/{yardopts.erb → yardopts.text.erb} +1 -1
- data/templates/cloud/service/rest/client/method/def/_rescue.text.erb +3 -0
- data/templates/cloud/wrapper_gem/{_main.erb → _main.text.erb} +69 -9
- data/templates/cloud/wrapper_gem/client_test.text.erb +59 -0
- data/templates/cloud/wrapper_gem/gemfile.text.erb +29 -0
- data/templates/cloud/wrapper_gem/{gemspec.erb → gemspec.text.erb} +2 -11
- data/templates/cloud/wrapper_gem/{rakefile.erb → rakefile.text.erb} +2 -37
- data/templates/cloud/wrapper_gem/{readme.erb → readme.text.erb} +45 -35
- data/templates/cloud/wrapper_gem/{version_test.erb → version_test.text.erb} +1 -1
- data/templates/cloud/wrapper_gem/{yardopts.erb → yardopts.text.erb} +1 -1
- metadata +34 -151
- data/templates/cloud/gem/authentication.erb +0 -174
- data/templates/cloud/gem/yardopts-cloudrad.erb +0 -15
- data/templates/cloud/service/rest/client/method/def/_rescue.erb +0 -4
- data/templates/cloud/wrapper_gem/client_test.erb +0 -22
- data/templates/cloud/wrapper_gem/gemfile.erb +0 -8
- data/templates/cloud/wrapper_gem/yardopts-cloudrad.erb +0 -17
- /data/templates/cloud/gem/{gitignore.erb → gitignore.text.erb} +0 -0
- /data/templates/cloud/gem/{license.erb → license.text.erb} +0 -0
- /data/templates/cloud/service/client/{_credentials.erb → _credentials.text.erb} +0 -0
- /data/templates/cloud/service/client/{_requires.erb → _requires.text.erb} +0 -0
- /data/templates/cloud/service/client/{_self_configure.erb → _self_configure.text.erb} +0 -0
- /data/templates/cloud/service/client/method/def/{_rescue.erb → _rescue.text.erb} +0 -0
- /data/templates/cloud/service/client/method/docs/{_error.erb → _error.text.erb} +0 -0
- /data/templates/cloud/service/rest/client/method/docs/{_error.erb → _error.text.erb} +0 -0
- /data/templates/cloud/shared/{_license.erb → _license.text.erb} +0 -0
- /data/templates/cloud/wrapper_gem/{entrypoint.erb → entrypoint.text.erb} +0 -0
- /data/templates/cloud/wrapper_gem/{main.erb → main.text.erb} +0 -0
- /data/templates/cloud/wrapper_gem/{rubocop.erb → rubocop.text.erb} +0 -0
@@ -14,16 +14,19 @@ require "google/cloud/config"
|
|
14
14
|
|
15
15
|
# Set the default configuration
|
16
16
|
::Google::Cloud.configure.add_config! :<%= gem.google_cloud_short_name %> do |config|
|
17
|
-
config.add_field! :endpoint,
|
17
|
+
config.add_field! :endpoint, nil, match: ::String
|
18
18
|
config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials]
|
19
19
|
config.add_field! :scope, nil, match: [::Array, ::String]
|
20
20
|
config.add_field! :lib_name, nil, match: ::String
|
21
21
|
config.add_field! :lib_version, nil, match: ::String
|
22
|
+
<%- if gem.generate_grpc_clients? -%>
|
22
23
|
config.add_field! :interceptors, nil, match: ::Array
|
24
|
+
<%- end -%>
|
23
25
|
config.add_field! :timeout, nil, match: ::Numeric
|
24
26
|
config.add_field! :metadata, nil, match: ::Hash
|
25
27
|
config.add_field! :retry_policy, nil, match: [::Hash, ::Proc]
|
26
28
|
config.add_field! :quota_project, nil, match: ::String
|
29
|
+
config.add_field! :universe_domain, nil, match: ::String
|
27
30
|
end
|
28
31
|
<%- end -%>
|
29
32
|
<% end %>
|
@@ -32,12 +35,21 @@ end
|
|
32
35
|
# Create a new client object for <%= service.module_name %>.
|
33
36
|
#
|
34
37
|
# By default, this returns an instance of
|
35
|
-
# <%= gem.docs_link version: gem.default_version, class_name:
|
36
|
-
# for version <%= gem.default_version.capitalize %> of the API.
|
37
|
-
# However, you can specify
|
38
|
+
# <%= gem.docs_link version: gem.default_version, class_name: service.client_suffix_for_default_transport %>
|
39
|
+
# for a <%= gem.default_transport_name %> client for version <%= gem.default_version.capitalize %> of the API.
|
40
|
+
# However, you can specify a different API version by passing it in the
|
38
41
|
# `version` parameter. If the <%= service.module_name %> service is
|
39
42
|
# supported by that API version, and the corresponding gem is available, the
|
40
43
|
# appropriate versioned client will be returned.
|
44
|
+
<%- if service.supports_multiple_transports? -%>
|
45
|
+
# You can also specify a different transport by passing `:rest` or `:grpc` in
|
46
|
+
# the `transport` parameter.
|
47
|
+
<%- end -%>
|
48
|
+
#
|
49
|
+
# Raises an exception if the currently installed versioned client gem for the
|
50
|
+
# given API version does not support the <% if service.supports_multiple_transports? %>given transport of the <% end %><%= service.module_name %> service.
|
51
|
+
# You can determine whether the method will succeed by calling
|
52
|
+
# {<%= gem.namespace %>.<%= service.factory_method_name %>_available?}.
|
41
53
|
#
|
42
54
|
<%- if service.doc_description -%>
|
43
55
|
# ## About <%= service.module_name %>
|
@@ -47,17 +59,63 @@ end
|
|
47
59
|
<%- end -%>
|
48
60
|
# @param version [::String, ::Symbol] The API version to connect to. Optional.
|
49
61
|
# Defaults to `:<%= gem.default_version %>`.
|
50
|
-
|
62
|
+
<%- if service.supports_multiple_transports? -%>
|
63
|
+
# @param transport [:grpc, :rest] The transport to use. Defaults to `<%= gem.default_transport.inspect %>`.
|
64
|
+
<%- end -%>
|
65
|
+
# @return [::Object] A client object for the specified version.
|
51
66
|
#
|
52
|
-
def self.<%= service.factory_method_name %> version: :<%= gem.default_version %>, &block
|
67
|
+
def self.<%= service.factory_method_name %> version: :<%= gem.default_version %><% if service.supports_multiple_transports? %>, transport: <%= gem.default_transport.inspect %><% end %>, &block
|
53
68
|
require "<%= gem.namespace_require %>/#{version.to_s.downcase}"
|
54
69
|
|
55
70
|
package_name = <%= gem.namespace %>
|
56
71
|
.constants
|
57
72
|
.select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
|
58
73
|
.first
|
59
|
-
|
60
|
-
|
74
|
+
service_module = <%= gem.namespace %>.const_get(package_name).const_get(:<%= service.module_name %>)
|
75
|
+
<%- if service.supports_multiple_transports? -%>
|
76
|
+
service_module = service_module.const_get(:Rest) if transport == :rest
|
77
|
+
service_module.const_get(:Client).new(&block)
|
78
|
+
<%- else -%>
|
79
|
+
service_module<% if service.generate_rest_clients? %>.const_get(:Rest)<% end %>.const_get(:Client).new(&block)
|
80
|
+
<%- end -%>
|
81
|
+
end
|
82
|
+
|
83
|
+
##
|
84
|
+
# Determines whether the <%= service.module_name %> service is supported by the current client.
|
85
|
+
# If true, you can retrieve a client object by calling {<%= gem.namespace %>.<%= service.factory_method_name %>}.
|
86
|
+
# If false, that method will raise an exception. This could happen if the given
|
87
|
+
# API version does not exist or does not support the <%= service.module_name %> service,
|
88
|
+
# or if the versioned client gem needs an update to support the <%= service.module_name %> service.
|
89
|
+
#
|
90
|
+
# @param version [::String, ::Symbol] The API version to connect to. Optional.
|
91
|
+
# Defaults to `:<%= gem.default_version %>`.
|
92
|
+
<%- if service.supports_multiple_transports? -%>
|
93
|
+
# @param transport [:grpc, :rest] The transport to use. Defaults to `<%= gem.default_transport.inspect %>`.
|
94
|
+
<%- end -%>
|
95
|
+
# @return [boolean] Whether the service is available.
|
96
|
+
#
|
97
|
+
def self.<%= service.factory_method_name %>_available? version: :<%= gem.default_version %><% if service.supports_multiple_transports? %>, transport: <%= gem.default_transport.inspect %><% end %>
|
98
|
+
require "<%= gem.namespace_require %>/#{version.to_s.downcase}"
|
99
|
+
package_name = <%= gem.namespace %>
|
100
|
+
.constants
|
101
|
+
.select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
|
102
|
+
.first
|
103
|
+
return false unless package_name
|
104
|
+
service_module = <%= gem.namespace %>.const_get package_name
|
105
|
+
return false unless service_module.const_defined? :<%= service.module_name %>
|
106
|
+
service_module = service_module.const_get :<%= service.module_name %>
|
107
|
+
<%- if service.supports_multiple_transports? -%>
|
108
|
+
if transport == :rest
|
109
|
+
return false unless service_module.const_defined? :Rest
|
110
|
+
service_module = service_module.const_get :Rest
|
111
|
+
end
|
112
|
+
<%- elsif service.generate_rest_clients? -%>
|
113
|
+
return false unless service_module.const_defined? :Rest
|
114
|
+
service_module = service_module.const_get :Rest
|
115
|
+
<%- end -%>
|
116
|
+
service_module.const_defined? :Client
|
117
|
+
rescue ::LoadError
|
118
|
+
false
|
61
119
|
end
|
62
120
|
|
63
121
|
<%- end -%>
|
@@ -74,12 +132,14 @@ end
|
|
74
132
|
# The library name as recorded in instrumentation and logging.
|
75
133
|
# * `lib_version` (*type:* `String`) -
|
76
134
|
# The library version as recorded in instrumentation and logging.
|
135
|
+
<%- if gem.generate_grpc_clients? -%>
|
77
136
|
# * `interceptors` (*type:* `Array<GRPC::ClientInterceptor>`) -
|
78
137
|
# An array of interceptors that are run before calls are executed.
|
138
|
+
<%- end -%>
|
79
139
|
# * `timeout` (*type:* `Numeric`) -
|
80
140
|
# Default timeout in seconds.
|
81
141
|
# * `metadata` (*type:* `Hash{Symbol=>String}`) -
|
82
|
-
# Additional
|
142
|
+
# Additional headers to be sent with the call.
|
83
143
|
# * `retry_policy` (*type:* `Hash`) -
|
84
144
|
# The retry policy. The value is a hash with the following keys:
|
85
145
|
# * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
|
@@ -0,0 +1,59 @@
|
|
1
|
+
<%- assert_locals gem -%>
|
2
|
+
<%= render partial: "shared/header" -%>
|
3
|
+
|
4
|
+
require "helper"
|
5
|
+
require "<%= gem.namespace_require %>"
|
6
|
+
require "gapic/common"
|
7
|
+
<%- if gem.generate_grpc_clients? -%>
|
8
|
+
require "gapic/grpc"
|
9
|
+
<%- end -%>
|
10
|
+
<%- if gem.generate_rest_clients? -%>
|
11
|
+
require "gapic/rest"
|
12
|
+
<%- end -%>
|
13
|
+
|
14
|
+
class <%= gem.namespace %>::ClientConstructionMinitest < Minitest::Test
|
15
|
+
class DummyStub
|
16
|
+
def endpoint
|
17
|
+
"endpoint.example.com"
|
18
|
+
end
|
19
|
+
|
20
|
+
def universe_domain
|
21
|
+
"example.com"
|
22
|
+
end
|
23
|
+
|
24
|
+
def stub_logger
|
25
|
+
nil
|
26
|
+
end
|
27
|
+
|
28
|
+
def logger
|
29
|
+
nil
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
<%- start_line_spacer -%>
|
34
|
+
<%- gem.services.each do |service| -%>
|
35
|
+
<%- if service.generate_grpc_clients? -%>
|
36
|
+
<%= line_spacer %> def test_<%= service.factory_method_name %>_grpc
|
37
|
+
skip unless <%= gem.namespace %>.<%= service.factory_method_name %>_available?<% if service.supports_multiple_transports? %> transport: :grpc<% end %>
|
38
|
+
Gapic::ServiceStub.stub :new, DummyStub.new do
|
39
|
+
grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure
|
40
|
+
client = <%= gem.namespace %>.<%= service.factory_method_name %><% if service.supports_multiple_transports? %> transport: :grpc<% end %> do |config|
|
41
|
+
config.credentials = grpc_channel
|
42
|
+
end
|
43
|
+
assert_kind_of <%= gem.namespaced_class "#{service.module_name}::#{service.client_name}", version: gem.default_version %>, client
|
44
|
+
end
|
45
|
+
end
|
46
|
+
<%- end -%>
|
47
|
+
<%- if service.generate_rest_clients? -%>
|
48
|
+
<%= line_spacer %> def test_<%= service.factory_method_name %>_rest
|
49
|
+
skip unless <%= gem.namespace %>.<%= service.factory_method_name %>_available?<% if service.supports_multiple_transports? %> transport: :rest<% end %>
|
50
|
+
Gapic::Rest::ClientStub.stub :new, DummyStub.new do
|
51
|
+
client = <%= gem.namespace %>.<%= service.factory_method_name %><% if service.supports_multiple_transports? %> transport: :rest<% end %> do |config|
|
52
|
+
config.credentials = :dummy_credentials
|
53
|
+
end
|
54
|
+
assert_kind_of <%= gem.namespaced_class "#{service.module_name}::Rest::#{service.client_name}", version: gem.default_version %>, client
|
55
|
+
end
|
56
|
+
end
|
57
|
+
<%- end -%>
|
58
|
+
<%- end -%>
|
59
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<%- assert_locals gem -%>
|
2
|
+
source "https://rubygems.org"
|
3
|
+
|
4
|
+
gemspec
|
5
|
+
|
6
|
+
local_dependencies = <%= gem.versioned_gems.inspect %>
|
7
|
+
|
8
|
+
main_spec = gemspecs.last || Bundler.load_gemspec(File.join __dir__, "<%= gem.name %>.gemspec")
|
9
|
+
local_dependencies.each do |name|
|
10
|
+
spec_path = File.expand_path "../#{name}/#{name}.gemspec", __dir__
|
11
|
+
unless File.file? spec_path
|
12
|
+
warn "WARNING: Disabled local dependency for #{name} because gemspec not found."
|
13
|
+
next
|
14
|
+
end
|
15
|
+
version = Bundler.load_gemspec(spec_path).version
|
16
|
+
if main_spec.dependencies.any? { |dep| dep.name == name && !dep.requirement.satisfied_by?(version) }
|
17
|
+
warn "WARNING: Disabled local dependency for #{name} because the gemspec disallows version #{version}."
|
18
|
+
next
|
19
|
+
end
|
20
|
+
gem name, path: "../#{name}"
|
21
|
+
end
|
22
|
+
|
23
|
+
gem "google-style", "~> 1.30.1"
|
24
|
+
gem "minitest", "~> 5.22"
|
25
|
+
gem "minitest-focus", "~> 1.4"
|
26
|
+
gem "minitest-rg", "~> 5.3"
|
27
|
+
gem "rake", ">= 13.0"
|
28
|
+
gem "redcarpet", "~> 3.6"
|
29
|
+
gem "yard", "~> 0.9"
|
@@ -10,7 +10,7 @@ Gem::Specification.new do |gem|
|
|
10
10
|
|
11
11
|
gem.authors = <%= gem.authors.inspect %>
|
12
12
|
gem.email = <%= gem.email.inspect %>
|
13
|
-
gem.description = <%= gem.
|
13
|
+
gem.description = <%= gem.gemspec_description.inspect %>
|
14
14
|
gem.summary = <%= gem.summary.inspect %>
|
15
15
|
gem.homepage = <%= gem.homepage.inspect %>
|
16
16
|
gem.license = <%= gem.license_name.inspect %>
|
@@ -21,18 +21,9 @@ Gem::Specification.new do |gem|
|
|
21
21
|
<%= gem.extra_files.inspect %>
|
22
22
|
gem.require_paths = ["lib"]
|
23
23
|
|
24
|
-
gem.required_ruby_version = ">=
|
24
|
+
gem.required_ruby_version = ">= 3.0"
|
25
25
|
|
26
26
|
<%- gem.dependency_list.each do |name, requirements| -%>
|
27
27
|
gem.add_dependency <%= name.inspect %>, <%= requirements.map { |v| v.inspect }.join ", " %>
|
28
28
|
<%- end -%>
|
29
|
-
|
30
|
-
gem.add_development_dependency "google-style", "~> 1.25.1"
|
31
|
-
gem.add_development_dependency "minitest", "~> 5.14"
|
32
|
-
gem.add_development_dependency "minitest-focus", "~> 1.1"
|
33
|
-
gem.add_development_dependency "minitest-rg", "~> 5.2"
|
34
|
-
gem.add_development_dependency "rake", ">= 12.0"
|
35
|
-
gem.add_development_dependency "redcarpet", "~> 3.0"
|
36
|
-
gem.add_development_dependency "simplecov", "~> 0.9"
|
37
|
-
gem.add_development_dependency "yard", "~> 0.9"
|
38
29
|
end
|
@@ -17,43 +17,16 @@ Rake::TestTask.new do |t|
|
|
17
17
|
t.warning = true
|
18
18
|
end
|
19
19
|
|
20
|
-
namespace :test do
|
21
|
-
desc "Runs tests with coverage."
|
22
|
-
task :coverage do
|
23
|
-
require "simplecov"
|
24
|
-
SimpleCov.start do
|
25
|
-
command_name "<%= gem.name %>"
|
26
|
-
track_files "lib/**/*.rb"
|
27
|
-
add_filter "test/"
|
28
|
-
end
|
29
|
-
|
30
|
-
Rake::Task[:test].invoke
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
20
|
desc "Runs the smoke tests."
|
35
21
|
Rake::TestTask.new :smoke_test do |t|
|
36
22
|
t.test_files = FileList["acceptance/**/*smoke_test.rb"]
|
37
23
|
t.warning = false
|
38
24
|
end
|
39
25
|
|
40
|
-
namespace :smoke_test do
|
41
|
-
desc "Runs smoke tests with coverage."
|
42
|
-
task :coverage do
|
43
|
-
require "simplecov"
|
44
|
-
SimpleCov.start do
|
45
|
-
command_name "<%= gem.name %>"
|
46
|
-
track_files "lib/**/*.rb"
|
47
|
-
add_filter "test/"
|
48
|
-
end
|
49
|
-
|
50
|
-
Rake::Task[:smoke_test].invoke
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
26
|
# Acceptance tests
|
55
27
|
desc "Run the <%= gem.name %> acceptance tests."
|
56
28
|
task :acceptance, :project, :keyfile do |t, args|
|
29
|
+
<%- if service && !gem.generic_endpoint? -%>
|
57
30
|
project = args[:project]
|
58
31
|
project ||=
|
59
32
|
ENV["<%= gem.cloud_env_prefix %>_TEST_PROJECT"] ||
|
@@ -80,6 +53,7 @@ task :acceptance, :project, :keyfile do |t, args|
|
|
80
53
|
ENV["<%= gem.cloud_env_prefix %>_TEST_PROJECT"] = project
|
81
54
|
ENV["<%= gem.cloud_env_prefix %>_KEYFILE_JSON"] = keyfile
|
82
55
|
|
56
|
+
<%- end -%>
|
83
57
|
Rake::Task["acceptance:run"].invoke
|
84
58
|
end
|
85
59
|
|
@@ -92,10 +66,6 @@ namespace :acceptance do
|
|
92
66
|
end
|
93
67
|
end
|
94
68
|
|
95
|
-
desc "Run acceptance tests with coverage."
|
96
|
-
task :coverage do
|
97
|
-
end
|
98
|
-
|
99
69
|
desc "Run acceptance cleanup."
|
100
70
|
task :cleanup do
|
101
71
|
end
|
@@ -148,11 +118,6 @@ task :doctest do
|
|
148
118
|
puts "The <%= gem.name %> gem does not have doctest tests."
|
149
119
|
end
|
150
120
|
|
151
|
-
task :cloudrad do
|
152
|
-
ENV["CLOUDRAD_GEM_NAME"] = "<%= gem.name %>"
|
153
|
-
sh "bundle exec yard doc --fail-on-warning --yardopts .yardopts-cloudrad"
|
154
|
-
end
|
155
|
-
|
156
121
|
desc "Run the CI build"
|
157
122
|
task :ci do
|
158
123
|
header "BUILDING <%= gem.name %>"
|
@@ -2,12 +2,16 @@
|
|
2
2
|
|
3
3
|
<%= gem.summary %>
|
4
4
|
|
5
|
-
|
5
|
+
<%- if gem.summary != gem.description %>
|
6
|
+
<% gem.readme_description.each do |line| %>
|
7
|
+
<%= line %>
|
8
|
+
<% end %>
|
9
|
+
<%- end %>
|
6
10
|
|
7
11
|
Actual client classes for the various versions of this API are defined in
|
8
12
|
_versioned_ client gems, with names of the form `<%= gem.name %>-v*`.
|
9
13
|
The gem `<%= gem.name %>` is the main client library that brings the
|
10
|
-
|
14
|
+
versioned gems in as dependencies, and provides high-level methods for
|
11
15
|
constructing clients. More information on versioned clients can be found below
|
12
16
|
in the section titled *Which client should I use?*.
|
13
17
|
|
@@ -18,8 +22,7 @@ themselves can be found in the client library documentation for the versioned
|
|
18
22
|
client gems:
|
19
23
|
<%- last_index = gem.versioned_gems.size - 1 -%>
|
20
24
|
<%- gem.versioned_gems.each_with_index do |name, i| -%>
|
21
|
-
|
22
|
-
[<%= name %>](https://googleapis.dev/ruby/<%= name %>/latest)<%= sep %>
|
25
|
+
<%= gem.docs_link gem_name: name, text: name %><%= i == last_index ? "." : "," %>
|
23
26
|
<%- end -%>
|
24
27
|
|
25
28
|
<%- if gem.product_documentation_url -%>
|
@@ -47,7 +50,7 @@ In order to use this library, you first need to go through the following steps:
|
|
47
50
|
<%- if gem.api_id -%>
|
48
51
|
1. [Enable the API.](https://console.cloud.google.com/apis/library/<%= gem.api_id %>)
|
49
52
|
<%- end -%>
|
50
|
-
1.
|
53
|
+
1. [Set up authentication.](AUTHENTICATION.md)
|
51
54
|
|
52
55
|
<%- end -%>
|
53
56
|
<%- if gem.migration? %>
|
@@ -60,42 +63,49 @@ versions of this library will likely require updates to use this version.
|
|
60
63
|
See the {file:MIGRATING.md MIGRATING.md} document for more information.
|
61
64
|
|
62
65
|
<%- end -%>
|
63
|
-
##
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
66
|
+
## Debug Logging
|
67
|
+
|
68
|
+
This library comes with opt-in Debug Logging that can help you troubleshoot
|
69
|
+
your application's integration with the API. When logging is activated, key
|
70
|
+
events such as requests and responses, along with data payloads and metadata
|
71
|
+
such as headers and client configuration, are logged to the standard error
|
72
|
+
stream.
|
73
|
+
|
74
|
+
**WARNING:** Client Library Debug Logging includes your data payloads in
|
75
|
+
plaintext, which could include sensitive data such as PII for yourself or your
|
76
|
+
customers, private keys, or other security data that could be compromising if
|
77
|
+
leaked. Always practice good data hygiene with your application logs, and follow
|
78
|
+
the principle of least access. Google also recommends that Client Library Debug
|
79
|
+
Logging be enabled only temporarily during active debugging, and not used
|
80
|
+
permanently in production.
|
81
|
+
|
82
|
+
To enable logging, set the environment variable `GOOGLE_SDK_RUBY_LOGGING_GEMS`
|
83
|
+
to the value `all`. Alternatively, you can set the value to a comma-delimited
|
84
|
+
list of client library gem names. This will select the default logging behavior,
|
85
|
+
which writes logs to the standard error stream. On a local workstation, this may
|
86
|
+
result in logs appearing on the console. When running on a Google Cloud hosting
|
87
|
+
service such as [Google Cloud Run](https://cloud.google.com/run), this generally
|
88
|
+
results in logs appearing alongside your application logs in the
|
89
|
+
[Google Cloud Logging](https://cloud.google.com/logging/) service.
|
90
|
+
|
91
|
+
Debug logging also requires that the versioned clients for this service be
|
92
|
+
sufficiently recent, released after about Dec 10, 2024. If logging is not
|
93
|
+
working, try updating the versioned clients in your bundle or installed gems:
|
94
|
+
<%- last_index = gem.versioned_gems.size - 1 -%>
|
95
|
+
<%- gem.versioned_gems.each_with_index do |name, i| -%>
|
96
|
+
<%= gem.docs_link gem_name: name, text: name %><%= i == last_index ? "." : "," %>
|
97
|
+
<%- end -%>
|
88
98
|
|
89
99
|
## Supported Ruby Versions
|
90
100
|
|
91
|
-
This library is supported on Ruby
|
101
|
+
This library is supported on Ruby 3.0+.
|
92
102
|
|
93
103
|
Google provides official support for Ruby versions that are actively supported
|
94
104
|
by Ruby Core—that is, Ruby versions that are either in normal maintenance or
|
95
|
-
in security maintenance, and not end of life.
|
96
|
-
|
97
|
-
|
98
|
-
|
105
|
+
in security maintenance, and not end of life. Older versions of Ruby _may_
|
106
|
+
still work, but are unsupported and not recommended. See
|
107
|
+
https://www.ruby-lang.org/en/downloads/branches/ for details about the Ruby
|
108
|
+
support schedule.
|
99
109
|
|
100
110
|
## Which client should I use?
|
101
111
|
|