gapic-generator 0.11.0 → 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 +299 -0
- data/CONTRIBUTING.md +1 -1
- data/README.md +71 -37
- data/bin/protoc-gen-ruby_gapic +2 -2
- data/lib/gapic/file_formatter.rb +23 -19
- data/lib/gapic/formatting_utils.rb +22 -9
- data/lib/gapic/gem_builder.rb +15 -17
- data/lib/gapic/generator/version.rb +1 -1
- data/lib/gapic/generators/base_generator.rb +6 -4
- data/lib/gapic/generators/default_generator.rb +70 -34
- data/lib/gapic/generators/default_generator_parameters.rb +9 -3
- data/lib/gapic/grpc_service_config/parser.rb +2 -2
- data/lib/gapic/model/api_metadata.rb +173 -0
- data/lib/gapic/model/method/http_annotation.rb +158 -60
- data/lib/gapic/model/method/lro.rb +8 -5
- data/lib/gapic/model/method/routing.rb +3 -18
- data/lib/gapic/model/mixins.rb +76 -10
- data/lib/gapic/model/service/nonstandard_lro_provider.rb +10 -11
- data/lib/gapic/package_snippets.rb +159 -0
- data/lib/gapic/path_pattern/parser.rb +11 -2
- data/lib/gapic/path_pattern/pattern.rb +18 -1
- data/lib/gapic/path_pattern/segment.rb +11 -4
- data/lib/gapic/presenters/enum_presenter.rb +14 -0
- data/lib/gapic/presenters/enum_value_presenter.rb +4 -1
- data/lib/gapic/presenters/field_presenter.rb +78 -21
- data/lib/gapic/presenters/gem_presenter.rb +109 -35
- data/lib/gapic/presenters/message_presenter.rb +15 -0
- data/lib/gapic/presenters/method/http_binding_presenter.rb +128 -0
- data/lib/gapic/presenters/method/rest_pagination_info.rb +25 -16
- data/lib/gapic/presenters/method_presenter.rb +109 -35
- data/lib/gapic/presenters/method_rest_presenter.rb +70 -137
- data/lib/gapic/presenters/package_presenter.rb +63 -18
- data/lib/gapic/presenters/resource_presenter.rb +9 -3
- data/lib/gapic/presenters/service/lro_client_presenter.rb +14 -14
- data/lib/gapic/presenters/service/mixin_client_presenter.rb +89 -0
- data/lib/gapic/presenters/service/sub_client_presenter.rb +84 -0
- data/lib/gapic/presenters/service_presenter.rb +183 -31
- data/lib/gapic/presenters/service_rest_presenter.rb +180 -27
- data/lib/gapic/presenters/snippet/client_call_presenter.rb +82 -0
- data/lib/gapic/presenters/snippet/client_initialization_presenter.rb +87 -0
- data/lib/gapic/presenters/snippet/declaration_presenter.rb +91 -0
- data/lib/gapic/presenters/snippet/expression_presenter.rb +135 -0
- data/lib/gapic/presenters/snippet/iteration_presenter.rb +118 -0
- data/lib/gapic/presenters/snippet/parameter_presenter.rb +67 -0
- data/lib/gapic/presenters/snippet/request_initialization_presenters.rb +202 -0
- data/lib/gapic/presenters/snippet/response_handling_presenters.rb +329 -0
- data/lib/gapic/presenters/snippet/statement_presenter.rb +134 -0
- data/lib/gapic/presenters/snippet/type_presenter.rb +98 -0
- data/lib/gapic/presenters/snippet_presenter.rb +199 -10
- data/lib/gapic/presenters.rb +2 -0
- data/lib/gapic/runner.rb +1 -1
- data/lib/gapic/schema/api.rb +49 -3
- data/lib/gapic/schema/loader.rb +67 -22
- data/lib/gapic/schema/parameter_schema.rb +8 -8
- data/lib/gapic/schema/proto_tools.rb +193 -0
- data/lib/gapic/schema/request_param_parser.rb +5 -7
- data/lib/gapic/schema/service_config_parser.rb +38 -4
- data/lib/gapic/schema/wrappers.rb +192 -31
- data/lib/gapic/uri_template/parser.rb +15 -7
- data/lib/google/cloud/tools/snippetgen/configlanguage/v1/snippet_config_language_pb.rb +104 -0
- data/lib/google/cloud/tools/snippetgen/snippetindex/v1/snippet_index_pb.rb +58 -0
- data/lib/google/protobuf/compiler/plugin_pb.rb +47 -0
- data/templates/default/binding_override.text.erb +6 -0
- data/templates/default/gem/gemfile.text.erb +12 -0
- data/templates/default/gem/{gemspec.erb → gemspec.text.erb} +3 -11
- data/templates/default/gem/{readme.erb → readme.text.erb} +10 -6
- data/templates/default/gem/{rubocop.erb → rubocop.text.erb} +3 -0
- data/templates/default/gem/{test_helper.erb → test_helper.text.erb} +4 -2
- data/templates/default/gem/toys.text.erb +12 -0
- data/templates/default/helpers/default_helper.rb +33 -1
- data/templates/default/lib/_binding_override.text.erb +49 -0
- data/templates/default/lib/{_package.erb → _package.text.erb} +6 -9
- data/templates/default/lib/_package_rest.text.erb +24 -0
- data/templates/default/lib/{_service.erb → _service.text.erb} +11 -23
- data/templates/default/lib/package/_self_configure.text.erb +16 -0
- data/templates/default/lib/package/_self_configure_defaults.text.erb +13 -0
- data/templates/default/lib/package/self_configure/_binding_default.text.erb +15 -0
- data/templates/default/lib/rest/_rest.text.erb +46 -0
- data/templates/default/package_rest.text.erb +6 -0
- data/templates/default/proto_docs/_deprecated.text.erb +9 -0
- data/templates/default/proto_docs/{_enum.erb → _enum.text.erb} +1 -0
- data/templates/default/proto_docs/{_message.erb → _message.text.erb} +2 -0
- data/templates/default/service/client/{_client.erb → _client.text.erb} +60 -12
- data/templates/default/service/client/{_config.erb → _config.text.erb} +39 -8
- data/templates/default/service/client/{_operations.erb → _operations.text.erb} +24 -3
- data/templates/default/service/client/method/{_def.erb → _def.text.erb} +2 -2
- data/templates/default/service/client/method/def/{_options_defaults.erb → _options_defaults.text.erb} +2 -1
- data/templates/default/service/client/method/def/_request_normal.text.erb +18 -0
- data/templates/default/service/client/method/def/_request_streaming.text.erb +23 -0
- data/templates/default/service/client/method/def/{_response.erb → _response.text.erb} +2 -0
- data/templates/default/service/client/method/def/{_response_nonstandard_lro.erb → _response_nonstandard_lro.text.erb} +1 -1
- data/templates/default/service/client/method/def/_response_normal.text.erb +4 -0
- data/templates/default/service/client/method/def/{_response_normal.erb → _response_normal_lro.text.erb} +1 -3
- data/templates/default/service/client/method/def/{_response_paged.erb → _response_paged.text.erb} +1 -1
- data/templates/default/service/client/method/docs/{_request_normal.erb → _request_normal.text.erb} +1 -1
- data/templates/default/service/client/method/docs/_snippets.text.erb +6 -0
- data/templates/default/service/client/resource/_def.text.erb +7 -0
- data/templates/default/service/nonstandard_lro.text.erb +6 -0
- data/templates/default/service/rest/client/{_client.erb → _client.text.erb} +82 -13
- data/templates/default/service/rest/client/_config.text.erb +178 -0
- data/templates/default/service/rest/client/_operations.text.erb +124 -0
- data/templates/default/service/rest/client/method/{_def.erb → _def.text.erb} +7 -1
- data/templates/default/service/rest/client/method/def/{_options_defaults.erb → _options_defaults.text.erb} +8 -3
- data/templates/default/service/rest/client/method/def/{_response.erb → _response.text.erb} +4 -0
- data/templates/default/service/rest/client/method/def/{_response_nonstandard_lro.erb → _response_nonstandard_lro.text.erb} +5 -4
- data/templates/default/service/rest/client/method/def/_response_normal.text.erb +5 -0
- data/templates/default/service/rest/client/method/def/_response_normal_lro.text.erb +7 -0
- data/templates/default/service/rest/client/method/def/_response_paged.text.erb +7 -0
- data/templates/default/service/rest/client/method/def/_response_server_streaming.text.erb +11 -0
- data/templates/default/service/rest/client/method/docs/{_request.erb → _request.text.erb} +1 -3
- data/templates/default/service/rest/client/method/docs/_result.text.erb +10 -0
- data/templates/default/service/rest/client/method/docs/_snippets.text.erb +6 -0
- data/templates/default/service/{nonstandard_lro.erb → rest/nonstandard_lro.text.erb} +1 -1
- data/templates/default/service/rest/operations.text.erb +6 -0
- data/templates/default/service/rest/service_stub/_service_stub.text.erb +63 -0
- data/templates/default/service/rest/service_stub/grpc_transcoding_method/_def.text.erb +37 -0
- data/templates/default/service/rest/service_stub/method/_def.text.erb +35 -0
- data/templates/default/service/rest/service_stub/method/def/_response.text.erb +37 -0
- data/templates/default/service/rest/test/{client.erb → client.text.erb} +3 -3
- data/templates/default/service/rest/test/method/_assert_response.text.erb +2 -0
- data/templates/default/service/rest/test/method/{_configure.erb → _configure.text.erb} +3 -2
- data/templates/default/service/rest/test/method/_normal.text.erb +60 -0
- data/templates/default/service/rest/test/method/_server.text.erb +60 -0
- data/templates/default/service/rest/test/method/{_setup.erb → _setup.text.erb} +26 -10
- data/templates/default/service/test/{_resource.erb → _resource.text.erb} +1 -1
- data/templates/default/service/test/{client.erb → client.text.erb} +3 -2
- data/templates/default/service/test/client_paths.text.erb +33 -0
- data/templates/default/service/test/method/{_bidi.erb → _bidi.text.erb} +1 -1
- data/templates/default/service/test/method/{_client.erb → _client.text.erb} +1 -1
- data/templates/default/service/test/method/{_configure.erb → _configure.text.erb} +2 -1
- data/templates/default/service/test/method/{_normal.erb → _normal.text.erb} +1 -1
- data/templates/default/service/test/method/{_server.erb → _server.text.erb} +1 -1
- data/templates/default/service/test/method/{_setup.erb → _setup.text.erb} +19 -2
- data/templates/default/snippets/{gemfile.erb → gemfile.text.erb} +2 -2
- data/templates/default/snippets/snippet/_body.text.erb +24 -0
- data/templates/default/snippets/snippet/_inline.text.erb +11 -0
- data/templates/default/snippets/snippet/_standalone.text.erb +25 -0
- data/templates/default/snippets/{standalone.erb → standalone.text.erb} +1 -1
- metadata +198 -273
- data/lib/google/api/annotations.pb.rb +0 -39
- data/lib/google/api/auth.pb.rb +0 -75
- data/lib/google/api/backend.pb.rb +0 -59
- data/lib/google/api/billing.pb.rb +0 -53
- data/lib/google/api/client.pb.rb +0 -43
- data/lib/google/api/context.pb.rb +0 -47
- data/lib/google/api/control.pb.rb +0 -38
- data/lib/google/api/documentation.pb.rb +0 -56
- data/lib/google/api/endpoint.pb.rb +0 -42
- data/lib/google/api/field_behavior.pb.rb +0 -51
- data/lib/google/api/http.pb.rb +0 -60
- data/lib/google/api/label.pb.rb +0 -49
- data/lib/google/api/launch_stage.pb.rb +0 -37
- data/lib/google/api/log.pb.rb +0 -47
- data/lib/google/api/logging.pb.rb +0 -48
- data/lib/google/api/metric.pb.rb +0 -90
- data/lib/google/api/monitored_resource.pb.rb +0 -68
- data/lib/google/api/monitoring.pb.rb +0 -48
- data/lib/google/api/quota.pb.rb +0 -63
- data/lib/google/api/resource.pb.rb +0 -80
- data/lib/google/api/routing.pb.rb +0 -58
- data/lib/google/api/service.pb.rb +0 -90
- data/lib/google/api/source_info.pb.rb +0 -44
- data/lib/google/api/system_parameter.pb.rb +0 -51
- data/lib/google/api/usage.pb.rb +0 -47
- data/lib/google/cloud/extended_operations.pb.rb +0 -57
- data/lib/google/longrunning/operations.pb.rb +0 -115
- data/lib/google/protobuf/any.pb.rb +0 -40
- data/lib/google/protobuf/api.pb.rb +0 -69
- data/lib/google/protobuf/compiler/plugin.pb.rb +0 -79
- data/lib/google/protobuf/descriptor.pb.rb +0 -360
- data/lib/google/protobuf/duration.pb.rb +0 -41
- data/lib/google/protobuf/empty.pb.rb +0 -36
- data/lib/google/protobuf/source_context.pb.rb +0 -39
- data/lib/google/protobuf/struct.pb.rb +0 -65
- data/lib/google/protobuf/type.pb.rb +0 -128
- data/lib/google/protobuf/wrappers.pb.rb +0 -80
- data/lib/google/rpc/status.pb.rb +0 -46
- data/templates/default/gem/gemfile.erb +0 -4
- data/templates/default/lib/rest/_rest.erb +0 -9
- data/templates/default/service/client/method/def/_request_normal.erb +0 -4
- data/templates/default/service/client/method/def/_request_streaming.erb +0 -9
- data/templates/default/service/client/method/docs/_deprecated.erb +0 -5
- data/templates/default/service/client/method/docs/_snippets.erb +0 -6
- data/templates/default/service/client/resource/_def.erb +0 -6
- data/templates/default/service/rest/client/_config.erb +0 -122
- data/templates/default/service/rest/client/method/def/_response_normal.erb +0 -6
- data/templates/default/service/rest/client/method/def/_response_paged.erb +0 -7
- data/templates/default/service/rest/client/method/docs/_result.erb +0 -6
- data/templates/default/service/rest/service_stub/_service_stub.erb +0 -25
- data/templates/default/service/rest/service_stub/grpc_transcoding_method/_def.erb +0 -24
- data/templates/default/service/rest/service_stub/method/_def.erb +0 -20
- data/templates/default/service/rest/service_stub/method/def/_response.erb +0 -17
- data/templates/default/service/rest/test/method/_assert_response.erb +0 -2
- data/templates/default/service/rest/test/method/_normal.erb +0 -71
- data/templates/default/service/test/client_paths.erb +0 -15
- data/templates/default/snippets/snippet/_structure.erb +0 -71
- /data/gem_templates/{binary.erb → binary.text.erb} +0 -0
- /data/gem_templates/{dockerfile.erb → dockerfile.text.erb} +0 -0
- /data/gem_templates/{entrypoint.erb → entrypoint.text.erb} +0 -0
- /data/gem_templates/{gapic_sh.erb → gapic_sh.text.erb} +0 -0
- /data/gem_templates/{gemfile.erb → gemfile.text.erb} +0 -0
- /data/gem_templates/{gemspec.erb → gemspec.text.erb} +0 -0
- /data/gem_templates/{generator.erb → generator.text.erb} +0 -0
- /data/gem_templates/{gitignore.erb → gitignore.text.erb} +0 -0
- /data/gem_templates/{rakefile.erb → rakefile.text.erb} +0 -0
- /data/gem_templates/{readme.erb → readme.text.erb} +0 -0
- /data/gem_templates/{rubocop.erb → rubocop.text.erb} +0 -0
- /data/gem_templates/shared/{_header.erb → _header.text.erb} +0 -0
- /data/gem_templates/shared/{_license.erb → _license.text.erb} +0 -0
- /data/gem_templates/shared/{_warning.erb → _warning.text.erb} +0 -0
- /data/gem_templates/{test_generator.erb → test_generator.text.erb} +0 -0
- /data/gem_templates/{test_helper.erb → test_helper.text.erb} +0 -0
- /data/gem_templates/{version.erb → version.text.erb} +0 -0
- /data/templates/default/gem/{_version.erb → _version.text.erb} +0 -0
- /data/templates/default/gem/{changelog.erb → changelog.text.erb} +0 -0
- /data/templates/default/gem/{entrypoint.erb → entrypoint.text.erb} +0 -0
- /data/templates/default/gem/{gapic_metadata_json.erb → gapic_metadata_json.text.erb} +0 -0
- /data/templates/default/gem/{gitignore.erb → gitignore.text.erb} +0 -0
- /data/templates/default/gem/{license.erb → license.text.erb} +0 -0
- /data/templates/default/gem/{rakefile.erb → rakefile.text.erb} +0 -0
- /data/templates/default/gem/{version.erb → version.text.erb} +0 -0
- /data/templates/default/gem/{yardopts.erb → yardopts.text.erb} +0 -0
- /data/templates/default/layouts/{_ruby.erb → _ruby.text.erb} +0 -0
- /data/templates/default/{package.erb → package.text.erb} +0 -0
- /data/templates/default/proto_docs/{_proto_file.erb → _proto_file.text.erb} +0 -0
- /data/templates/default/proto_docs/{proto_file.erb → proto_file.text.erb} +0 -0
- /data/templates/default/proto_docs/{readme.erb → readme.text.erb} +0 -0
- /data/templates/default/service/{_helpers.erb → _helpers.text.erb} +0 -0
- /data/templates/default/service/client/{_credentials.erb → _credentials.text.erb} +0 -0
- /data/templates/default/service/client/{_nonstandard_lro.erb → _nonstandard_lro.text.erb} +0 -0
- /data/templates/default/service/client/{_paths.erb → _paths.text.erb} +0 -0
- /data/templates/default/service/client/{_requires.erb → _requires.text.erb} +0 -0
- /data/templates/default/service/client/{_resource.erb → _resource.text.erb} +0 -0
- /data/templates/default/service/client/{_self_configure.erb → _self_configure.text.erb} +0 -0
- /data/templates/default/service/client/{_self_configure_defaults.erb → _self_configure_defaults.text.erb} +0 -0
- /data/templates/default/service/client/method/def/{_request.erb → _request.text.erb} +0 -0
- /data/templates/default/service/client/method/def/{_rescue.erb → _rescue.text.erb} +0 -0
- /data/templates/default/service/client/method/def/{_routing_params.erb → _routing_params.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/{_error.erb → _error.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/{_request.erb → _request.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/{_request_field.erb → _request_field.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/{_request_streaming.erb → _request_streaming.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/{_response.erb → _response.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/{_sample.erb → _sample.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/{_sample_response.erb → _sample_response.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/{_samples.erb → _samples.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/request_field/{_arg.erb → _arg.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/request_field/{_hash.erb → _hash.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/sample_response/{_comment.erb → _comment.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/sample_response/{_define.erb → _define.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/sample_response/{_loop.erb → _loop.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/sample_response/{_print.erb → _print.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/sample_response/{_write_file.erb → _write_file.text.erb} +0 -0
- /data/templates/default/service/client/resource/{_doc.erb → _doc.text.erb} +0 -0
- /data/templates/default/service/client/resource/{_multi.erb → _multi.text.erb} +0 -0
- /data/templates/default/service/client/resource/{_single.erb → _single.text.erb} +0 -0
- /data/templates/default/service/{client.erb → client.text.erb} +0 -0
- /data/templates/default/service/{credentials.erb → credentials.text.erb} +0 -0
- /data/templates/default/service/{operations.erb → operations.text.erb} +0 -0
- /data/templates/default/service/{paths.erb → paths.text.erb} +0 -0
- /data/templates/default/service/rest/client/method/def/{_rescue.erb → _rescue.text.erb} +0 -0
- /data/templates/default/service/rest/client/method/docs/{_error.erb → _error.text.erb} +0 -0
- /data/templates/default/service/rest/{client.erb → client.text.erb} +0 -0
- /data/templates/default/service/rest/{grpc_transcoding.erb → grpc_transcoding.text.erb} +0 -0
- /data/templates/default/service/rest/service_stub/grpc_transcoding_method/def/{_query_string_param.erb → _query_string_param.text.erb} +0 -0
- /data/templates/default/service/rest/service_stub/method/def/{_request.erb → _request.text.erb} +0 -0
- /data/templates/default/service/rest/{service_stub.erb → service_stub.text.erb} +0 -0
- /data/templates/default/service/{rest.erb → rest.text.erb} +0 -0
- /data/templates/default/service/test/{client_operations.erb → client_operations.text.erb} +0 -0
- /data/templates/default/service/test/method/{_assert_response.erb → _assert_response.text.erb} +0 -0
- /data/templates/default/service/test/{smoke.erb → smoke.text.erb} +0 -0
- /data/templates/default/{service.erb → service.text.erb} +0 -0
- /data/templates/default/shared/{_header.erb → _header.text.erb} +0 -0
- /data/templates/default/shared/{_license.erb → _license.text.erb} +0 -0
- /data/templates/default/shared/{_warning.erb → _warning.text.erb} +0 -0
@@ -9,15 +9,24 @@ require "<%= subclient.require_str %>"
|
|
9
9
|
<%- end -%>
|
10
10
|
<%- end -%>
|
11
11
|
<%- end -%>
|
12
|
+
<%- if service.autogenerates_uuid? -%>
|
13
|
+
require "securerandom"
|
14
|
+
<%- end -%>
|
12
15
|
<% end %>
|
13
16
|
##
|
14
17
|
# Client for the <%= service.name %> service.
|
15
18
|
#
|
16
19
|
<%- if service.doc_description -%>
|
17
|
-
<%= indent service.doc_description, "# " %>
|
20
|
+
<%= indent service.doc_description(transport: :grpc), "# " %>
|
18
21
|
#
|
19
22
|
<%- end -%>
|
20
23
|
class <%= service.client_name %>
|
24
|
+
# @private
|
25
|
+
API_VERSION = "<%= service.api_version %>".freeze
|
26
|
+
|
27
|
+
# @private
|
28
|
+
DEFAULT_ENDPOINT_TEMPLATE = <%= service.client_endpoint_template.inspect %>
|
29
|
+
|
21
30
|
<%- if service.paths? -%>
|
22
31
|
include <%= service.paths_name %>
|
23
32
|
|
@@ -30,11 +39,8 @@ class <%= service.client_name %>
|
|
30
39
|
#
|
31
40
|
# See {<%= service.client_name_full %>::Configuration}
|
32
41
|
# for a description of the configuration fields.
|
33
|
-
<%- if service.is_deprecated? -%>
|
34
|
-
#
|
35
|
-
# @deprecated This service is deprecated and may be removed in the next major version update.
|
36
|
-
<%- end -%>
|
37
42
|
#
|
43
|
+
<%= render partial: "proto_docs/deprecated", locals: { presenter: service, newline: true } -%>
|
38
44
|
# @example
|
39
45
|
#
|
40
46
|
# # Modify the configuration for all <%= service.name %> clients
|
@@ -71,6 +77,15 @@ class <%= service.client_name %>
|
|
71
77
|
@config
|
72
78
|
end
|
73
79
|
|
80
|
+
##
|
81
|
+
# The effective universe domain
|
82
|
+
#
|
83
|
+
# @return [String]
|
84
|
+
#
|
85
|
+
def universe_domain
|
86
|
+
@<%= service.stub_name %>.universe_domain
|
87
|
+
end
|
88
|
+
|
74
89
|
##
|
75
90
|
# Create a new <%= service.name %> client object.
|
76
91
|
#
|
@@ -105,7 +120,8 @@ class <%= service.client_name %>
|
|
105
120
|
<%- unless service.generic_endpoint? -%>
|
106
121
|
# Use self-signed JWT if the endpoint is unchanged from default,
|
107
122
|
# but only if the default endpoint does not have a region prefix.
|
108
|
-
enable_self_signed_jwt = @config.endpoint
|
123
|
+
enable_self_signed_jwt = @config.endpoint.nil? ||
|
124
|
+
@config.endpoint == Configuration::DEFAULT_ENDPOINT &&
|
109
125
|
!@config.endpoint.split(".").first.include?("-")
|
110
126
|
credentials ||= Credentials.default scope: @config.scope,
|
111
127
|
enable_self_signed_jwt: enable_self_signed_jwt
|
@@ -116,23 +132,46 @@ class <%= service.client_name %>
|
|
116
132
|
@quota_project_id = @config.quota_project
|
117
133
|
@quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
|
118
134
|
|
119
|
-
<%-
|
120
|
-
<%- service.subclients.each do |subclient| -%>
|
135
|
+
<%- service.lro_subclients.each do |subclient| -%>
|
121
136
|
@<%= subclient.client_var_name %> = <%= subclient.client_class_name %>.new do |config|
|
122
137
|
config.credentials = credentials
|
123
138
|
config.quota_project = @quota_project_id
|
124
139
|
config.endpoint = @config.endpoint
|
140
|
+
config.universe_domain = @config.universe_domain
|
125
141
|
end
|
126
142
|
|
127
|
-
<%- end -%>
|
128
143
|
<%- end -%>
|
129
144
|
@<%= service.stub_name %> = ::Gapic::ServiceStub.new(
|
130
145
|
<%= service.proto_service_stub_name_full %>,
|
131
|
-
credentials:
|
132
|
-
endpoint:
|
146
|
+
credentials: credentials,
|
147
|
+
endpoint: @config.endpoint,
|
148
|
+
endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
|
149
|
+
universe_domain: @config.universe_domain,
|
133
150
|
channel_args: @config.channel_args,
|
134
|
-
interceptors: @config.interceptors
|
151
|
+
interceptors: @config.interceptors,
|
152
|
+
channel_pool_config: @config.channel_pool,
|
153
|
+
logger: @config.logger
|
135
154
|
)
|
155
|
+
|
156
|
+
@<%= service.stub_name %>.stub_logger&.info do |entry|
|
157
|
+
entry.set_system_name
|
158
|
+
entry.set_service
|
159
|
+
entry.message = "Created client for #{entry.service}"
|
160
|
+
entry.set_credentials_fields credentials
|
161
|
+
entry.set "customEndpoint", @config.endpoint if @config.endpoint
|
162
|
+
entry.set "defaultTimeout", @config.timeout if @config.timeout
|
163
|
+
entry.set "quotaProject", @quota_project_id if @quota_project_id
|
164
|
+
end
|
165
|
+
<%- service.mixin_presenters.each do |subclient| -%>
|
166
|
+
|
167
|
+
@<%= subclient.client_var_name %> = <%= subclient.client_class_name %>.new do |config|
|
168
|
+
config.credentials = credentials
|
169
|
+
config.quota_project = @quota_project_id
|
170
|
+
config.endpoint = @<%= service.stub_name %>.endpoint
|
171
|
+
config.universe_domain = @<%= service.stub_name %>.universe_domain
|
172
|
+
config.logger = @<%= service.stub_name %>.logger if config.respond_to? :logger=
|
173
|
+
end
|
174
|
+
<%- end -%>
|
136
175
|
end
|
137
176
|
|
138
177
|
<%- if service.subclients? -%>
|
@@ -146,6 +185,15 @@ class <%= service.client_name %>
|
|
146
185
|
|
147
186
|
<%- end -%>
|
148
187
|
<%- end -%>
|
188
|
+
##
|
189
|
+
# The logger used for request/response debug logging.
|
190
|
+
#
|
191
|
+
# @return [Logger]
|
192
|
+
#
|
193
|
+
def logger
|
194
|
+
@<%= service.stub_name %>.logger
|
195
|
+
end
|
196
|
+
|
149
197
|
# Service calls
|
150
198
|
<%- service.methods.each do |method| -%>
|
151
199
|
|
@@ -32,20 +32,27 @@
|
|
32
32
|
#
|
33
33
|
<%- end -%>
|
34
34
|
# @!attribute [rw] endpoint
|
35
|
-
#
|
36
|
-
#
|
37
|
-
# @return [::String]
|
35
|
+
# A custom service endpoint, as a hostname or hostname:port. The default is
|
36
|
+
# nil, indicating to use the default endpoint in the current universe domain.
|
37
|
+
# @return [::String,nil]
|
38
38
|
# @!attribute [rw] credentials
|
39
39
|
# Credentials to send with calls. You may provide any of the following types:
|
40
40
|
# * (`String`) The path to a service account key file in JSON format
|
41
41
|
# * (`Hash`) A service account key as a Hash
|
42
42
|
# * (`Google::Auth::Credentials`) A googleauth credentials object
|
43
|
-
# (see the [googleauth docs](https://
|
43
|
+
# (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials))
|
44
44
|
# * (`Signet::OAuth2::Client`) A signet oauth2 client object
|
45
|
-
# (see the [signet docs](https://
|
45
|
+
# (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
|
46
46
|
# * (`GRPC::Core::Channel`) a gRPC channel with included credentials
|
47
47
|
# * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object
|
48
48
|
# * (`nil`) indicating no credentials
|
49
|
+
#
|
50
|
+
# Warning: If you accept a credential configuration (JSON file or Hash) from an
|
51
|
+
# external source for authentication to Google Cloud, you must validate it before
|
52
|
+
# providing it to a Google API client library. Providing an unvalidated credential
|
53
|
+
# configuration to Google APIs can compromise the security of your systems and data.
|
54
|
+
# For more information, refer to [Validate credential configurations from external
|
55
|
+
# sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials).
|
49
56
|
# @return [::Object]
|
50
57
|
# @!attribute [rw] scope
|
51
58
|
# The OAuth scopes
|
@@ -80,14 +87,28 @@
|
|
80
87
|
# @!attribute [rw] quota_project
|
81
88
|
# A separate project against which to charge quota.
|
82
89
|
# @return [::String]
|
90
|
+
# @!attribute [rw] universe_domain
|
91
|
+
# The universe domain within which to make requests. This determines the
|
92
|
+
# default endpoint URL. The default value of nil uses the environment
|
93
|
+
# universe (usually the default "googleapis.com" universe).
|
94
|
+
# @return [::String,nil]
|
95
|
+
# @!attribute [rw] logger
|
96
|
+
# A custom logger to use for request/response debug logging, or the value
|
97
|
+
# `:default` (the default) to construct a default logger, or `nil` to
|
98
|
+
# explicitly disable logging.
|
99
|
+
# @return [::Logger,:default,nil]
|
83
100
|
#
|
84
101
|
class Configuration
|
85
102
|
extend ::Gapic::Config
|
86
103
|
|
87
|
-
|
104
|
+
# @private
|
105
|
+
# The endpoint specific to the default "googleapis.com" universe. Deprecated.
|
106
|
+
DEFAULT_ENDPOINT = <%= service.client_endpoint.inspect %>
|
107
|
+
|
108
|
+
config_attr :endpoint, nil, ::String, nil
|
88
109
|
config_attr :credentials, nil do |value|
|
89
|
-
allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
|
90
|
-
allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC
|
110
|
+
allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil]
|
111
|
+
allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC::Core::Channel
|
91
112
|
allowed.any? { |klass| klass === value }
|
92
113
|
end
|
93
114
|
config_attr :scope, nil, ::String, ::Array, nil
|
@@ -99,6 +120,8 @@ class Configuration
|
|
99
120
|
config_attr :metadata, nil, ::Hash, nil
|
100
121
|
config_attr :retry_policy, nil, ::Hash, ::Proc, nil
|
101
122
|
config_attr :quota_project, nil, ::String, nil
|
123
|
+
config_attr :universe_domain, nil, ::String, nil
|
124
|
+
config_attr :logger, :default, ::Logger, nil, :default
|
102
125
|
|
103
126
|
# @private
|
104
127
|
def initialize parent_config = nil
|
@@ -119,6 +142,14 @@ class Configuration
|
|
119
142
|
end
|
120
143
|
end
|
121
144
|
|
145
|
+
##
|
146
|
+
# Configuration for the channel pool
|
147
|
+
# @return [::Gapic::ServiceStub::ChannelPool::Configuration]
|
148
|
+
#
|
149
|
+
def channel_pool
|
150
|
+
@channel_pool ||= ::Gapic::ServiceStub::ChannelPool::Configuration.new
|
151
|
+
end
|
152
|
+
|
122
153
|
##
|
123
154
|
# Configuration RPC class for the <%= service.name %> API.
|
124
155
|
#
|
@@ -5,6 +5,12 @@ require "<%= service.lro_service.proto_service_require %>"
|
|
5
5
|
<% end %>
|
6
6
|
# Service that implements Longrunning Operations API.
|
7
7
|
class <%= service.operations_name %>
|
8
|
+
# @private
|
9
|
+
API_VERSION = "<%= service.api_version %>".freeze
|
10
|
+
|
11
|
+
# @private
|
12
|
+
DEFAULT_ENDPOINT_TEMPLATE = <%= service.client_endpoint_template.inspect %>
|
13
|
+
|
8
14
|
# @private
|
9
15
|
attr_reader :<%= service.lro_service.stub_name %>
|
10
16
|
|
@@ -39,6 +45,15 @@ class <%= service.operations_name %>
|
|
39
45
|
@config
|
40
46
|
end
|
41
47
|
|
48
|
+
##
|
49
|
+
# The effective universe domain
|
50
|
+
#
|
51
|
+
# @return [String]
|
52
|
+
#
|
53
|
+
def universe_domain
|
54
|
+
@<%= service.lro_service.stub_name %>.universe_domain
|
55
|
+
end
|
56
|
+
|
42
57
|
##
|
43
58
|
# Create a new <%= service.operations_name %> client object.
|
44
59
|
#
|
@@ -69,11 +84,17 @@ class <%= service.operations_name %>
|
|
69
84
|
|
70
85
|
@<%= service.lro_service.stub_name %> = ::Gapic::ServiceStub.new(
|
71
86
|
<%= service.lro_service.proto_service_stub_name_full %>,
|
72
|
-
credentials:
|
73
|
-
endpoint:
|
87
|
+
credentials: credentials,
|
88
|
+
endpoint: @config.endpoint,
|
89
|
+
endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
|
90
|
+
universe_domain: @config.universe_domain,
|
74
91
|
channel_args: @config.channel_args,
|
75
|
-
interceptors: @config.interceptors
|
92
|
+
interceptors: @config.interceptors,
|
93
|
+
channel_pool_config: @config.channel_pool
|
76
94
|
)
|
95
|
+
|
96
|
+
# Used by an LRO wrapper for some methods of this service
|
97
|
+
@operations_client = self
|
77
98
|
end
|
78
99
|
|
79
100
|
# Service calls
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<%- assert_locals method -%>
|
2
2
|
##
|
3
3
|
<%- if method.doc_description -%>
|
4
|
-
<%= indent method.doc_description, "# " %>
|
4
|
+
<%= indent method.doc_description(transport: :grpc), "# " %>
|
5
5
|
#
|
6
6
|
<%- end -%>
|
7
|
-
<%= render partial: "
|
7
|
+
<%= render partial: "proto_docs/deprecated", locals: { presenter: method , newline: true} -%>
|
8
8
|
<%= render partial: "service/client/method/docs/request", locals: { method: method } -%>
|
9
9
|
#
|
10
10
|
<%= render partial: "service/client/method/docs/response", locals: { method: method } -%>
|
@@ -5,10 +5,11 @@ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
|
|
5
5
|
# Customize the options with defaults
|
6
6
|
metadata = @config.rpcs.<%= method.name %>.metadata.to_h
|
7
7
|
|
8
|
-
# Set x-goog-api-client
|
8
|
+
# Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
|
9
9
|
metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
|
10
10
|
lib_name: @config.lib_name, lib_version: @config.lib_version,
|
11
11
|
gapic_version: ::<%= method.service.gem.version_name_full %>
|
12
|
+
metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
|
12
13
|
metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
|
13
14
|
<%- if method.routing_params? && !method.client_streaming? -%>
|
14
15
|
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<%- assert_locals method -%>
|
2
|
+
raise ::ArgumentError, "request must be provided" if request.nil?
|
3
|
+
<% method.auto_populated_fields.each do |field| %>
|
4
|
+
<% name = field.name %>
|
5
|
+
|
6
|
+
# Auto populate request field `<%= name %>`.
|
7
|
+
if request.is_a? Hash
|
8
|
+
request[:<%= name %>] = SecureRandom.uuid unless request.key?(:<%= name %>) || request.key?("<%= name %>")
|
9
|
+
else
|
10
|
+
<%- if field.proto3_optional? -%>
|
11
|
+
request.<%= name %> = SecureRandom.uuid unless request.has_<%= name %>?
|
12
|
+
<%- else -%>
|
13
|
+
request.<%= name %> = SecureRandom.uuid if request.respond_to?(:<%= name %>) && request.<%= name %>.empty?
|
14
|
+
<%- end -%>
|
15
|
+
end
|
16
|
+
<% end %>
|
17
|
+
|
18
|
+
request = ::Gapic::Protobuf.coerce request, to: <%= method.request_type %>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<%- assert_locals method -%>
|
2
|
+
unless request.is_a? ::Enumerable
|
3
|
+
raise ::ArgumentError, "request must be an Enumerable" unless request.respond_to? :to_enum
|
4
|
+
request = request.to_enum
|
5
|
+
end
|
6
|
+
<% method.auto_populated_fields.each do |field| %>
|
7
|
+
<% name = field.name %>
|
8
|
+
|
9
|
+
# Auto populate request field `<%= name %>`.
|
10
|
+
if request.is_a? Hash
|
11
|
+
request[:<%= name %>] = SecureRandom.uuid unless request.key?(:<%= name %>) || request.key?("<%= name %>")
|
12
|
+
else
|
13
|
+
<%- if field.proto3_optional? -%>
|
14
|
+
request.<%= name %> = SecureRandom.uuid unless request.has_<%= name %>?
|
15
|
+
<%- else -%>
|
16
|
+
request.<%= name %> = SecureRandom.uuid if request.respond_to?(:<%= name %>) && request.<%= name %>.empty?
|
17
|
+
<%- end -%>
|
18
|
+
end
|
19
|
+
<% end %>
|
20
|
+
|
21
|
+
request = request.lazy.map do |req|
|
22
|
+
::Gapic::Protobuf.coerce req, to: <%= method.request_type %>
|
23
|
+
end
|
@@ -3,6 +3,8 @@
|
|
3
3
|
<%= render partial: "service/client/method/def/response_paged", locals: { method: method } -%>
|
4
4
|
<%- elsif method.rest.nonstandard_lro? -%>
|
5
5
|
<%= render partial: "service/client/method/def/response_nonstandard_lro", locals: { method: method } -%>
|
6
|
+
<%- elsif method.lro? -%>
|
7
|
+
<%= render partial: "service/client/method/def/response_normal_lro", locals: { method: method } -%>
|
6
8
|
<%- else -%>
|
7
9
|
<%= render partial: "service/client/method/def/response_normal", locals: { method: method } -%>
|
8
10
|
<%- end -%>
|
@@ -1,8 +1,6 @@
|
|
1
1
|
<%- assert_locals method -%>
|
2
2
|
@<%= method.service.stub_name %>.call_rpc :<%= method.name %>, request, options: options do |response, operation|
|
3
|
-
<%- if method.lro? -%>
|
4
3
|
response = ::Gapic::Operation.new response, <%= method.service.lro_client_ivar %>, options: options
|
5
|
-
<%- end -%>
|
6
4
|
yield response, operation if block_given?
|
7
|
-
|
5
|
+
throw :response, response
|
8
6
|
end
|
data/templates/default/service/client/method/def/{_response_paged.erb → _response_paged.text.erb}
RENAMED
@@ -5,5 +5,5 @@
|
|
5
5
|
<%- end -%>
|
6
6
|
response = ::Gapic::PagedEnumerable.new @<%= method.service.stub_name %>, :<%= method.name %>, request, response, operation, options<%- if method.lro? -%>, format_resource: wrap_lro_operation<%- end -%>
|
7
7
|
yield response, operation if block_given?
|
8
|
-
|
8
|
+
throw :response, response
|
9
9
|
end
|
data/templates/default/service/client/method/docs/{_request_normal.erb → _request_normal.text.erb}
RENAMED
@@ -19,7 +19,7 @@
|
|
19
19
|
<%- method.arguments.each do |arg| -%>
|
20
20
|
# @param <%= arg.name %> [<%= arg.doc_types %>]
|
21
21
|
<%- if arg.doc_description -%>
|
22
|
-
<%= indent arg.doc_description, "# " %>
|
22
|
+
<%= indent arg.doc_description(transport: :grpc), "# " %>
|
23
23
|
<%- end -%>
|
24
24
|
<%- end -%>
|
25
25
|
<%- end -%>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<%- assert_locals pattern -%>
|
2
|
+
<%- pattern.arguments[0...-1].each do |arg| -%>
|
3
|
+
<% escaped_argument = pattern.escape_argument arg %>
|
4
|
+
raise ::ArgumentError, "<%= arg %> cannot contain /" if <%= escaped_argument %>.to_s.include? "/"
|
5
|
+
<%- end -%>
|
6
|
+
|
7
|
+
"<%= pattern.path_string %>"
|
@@ -3,22 +3,31 @@
|
|
3
3
|
<%= render partial: "service/client/requires", locals: { service: service} -%>
|
4
4
|
require "<%= service.proto_service_require %>"
|
5
5
|
require "<%= service.rest.service_stub_require %>"
|
6
|
-
<%- if service.subclients? -%>
|
7
|
-
<%- service.subclients.each do |subclient| -%>
|
6
|
+
<%- if service.rest.subclients? -%>
|
7
|
+
<%- service.rest.subclients.each do |subclient| -%>
|
8
8
|
<%- unless subclient.client_class_name == "Operations" -%>
|
9
9
|
require "<%= subclient.require_str %>"
|
10
10
|
<%- end -%>
|
11
11
|
<%- end -%>
|
12
12
|
<%- end -%>
|
13
|
+
<%- if service.autogenerates_uuid? -%>
|
14
|
+
require "securerandom"
|
15
|
+
<%- end -%>
|
13
16
|
<% end %>
|
14
17
|
##
|
15
18
|
# REST client for the <%= service.name %> service.
|
16
19
|
#
|
17
20
|
<%- if service.doc_description -%>
|
18
|
-
<%= indent service.doc_description, "# " %>
|
21
|
+
<%= indent service.doc_description(transport: :rest), "# " %>
|
19
22
|
#
|
20
23
|
<%- end -%>
|
21
24
|
class <%= service.rest.client_name %>
|
25
|
+
# @private
|
26
|
+
API_VERSION = "<%= service.api_version %>".freeze
|
27
|
+
|
28
|
+
# @private
|
29
|
+
DEFAULT_ENDPOINT_TEMPLATE = <%= service.client_endpoint_template.inspect %>
|
30
|
+
|
22
31
|
<%- if service.paths? -%>
|
23
32
|
include <%= service.paths_name %>
|
24
33
|
|
@@ -31,6 +40,7 @@ class <%= service.rest.client_name %>
|
|
31
40
|
#
|
32
41
|
# See {<%= service.rest.client_name_full %>::Configuration}
|
33
42
|
# for a description of the configuration fields.
|
43
|
+
<%= render partial: "proto_docs/deprecated", locals: { presenter: service } -%>
|
34
44
|
#
|
35
45
|
# @example
|
36
46
|
#
|
@@ -45,7 +55,7 @@ class <%= service.rest.client_name %>
|
|
45
55
|
# @return [<%= service.rest.client_name %>::Configuration]
|
46
56
|
#
|
47
57
|
def self.configure
|
48
|
-
<%= indent render(partial: "service/client/self_configure", locals: { service: service }), 4 %>
|
58
|
+
<%= indent render(partial: "service/client/self_configure", locals: { service: service.rest }), 4 %>
|
49
59
|
end
|
50
60
|
|
51
61
|
##
|
@@ -68,6 +78,15 @@ class <%= service.rest.client_name %>
|
|
68
78
|
@config
|
69
79
|
end
|
70
80
|
|
81
|
+
##
|
82
|
+
# The effective universe domain
|
83
|
+
#
|
84
|
+
# @return [String]
|
85
|
+
#
|
86
|
+
def universe_domain
|
87
|
+
@<%= service.stub_name %>.universe_domain
|
88
|
+
end
|
89
|
+
|
71
90
|
##
|
72
91
|
# Create a new <%= service.name %> REST client object.
|
73
92
|
#
|
@@ -94,26 +113,67 @@ class <%= service.rest.client_name %>
|
|
94
113
|
# Create credentials
|
95
114
|
credentials = @config.credentials
|
96
115
|
<%- unless service.generic_endpoint? -%>
|
97
|
-
|
116
|
+
# Use self-signed JWT if the endpoint is unchanged from default,
|
117
|
+
# but only if the default endpoint does not have a region prefix.
|
118
|
+
enable_self_signed_jwt = @config.endpoint.nil? ||
|
119
|
+
@config.endpoint == Configuration::DEFAULT_ENDPOINT &&
|
120
|
+
!@config.endpoint.split(".").first.include?("-")
|
121
|
+
credentials ||= Credentials.default scope: @config.scope,
|
122
|
+
enable_self_signed_jwt: enable_self_signed_jwt
|
98
123
|
if credentials.is_a?(::String) || credentials.is_a?(::Hash)
|
99
124
|
credentials = Credentials.new credentials, scope: @config.scope
|
100
125
|
end
|
101
126
|
<%- end -%>
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
127
|
+
|
128
|
+
@quota_project_id = @config.quota_project
|
129
|
+
@quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
|
130
|
+
|
131
|
+
<%- service.rest.lro_subclients.each do |subclient| -%>
|
132
|
+
@<%= subclient.client_var_name %> = <%= subclient.client_class_docname %>.new do |config|
|
106
133
|
config.credentials = credentials
|
134
|
+
config.quota_project = @quota_project_id
|
107
135
|
config.endpoint = @config.endpoint
|
136
|
+
config.universe_domain = @config.universe_domain
|
137
|
+
<%- if subclient.respond_to?(:bindings_override) && !subclient.bindings_override.empty? -%>
|
138
|
+
config.bindings_override = @config.bindings_override
|
139
|
+
<%- end -%>
|
108
140
|
end
|
109
141
|
|
110
142
|
<%- end -%>
|
143
|
+
@<%= service.stub_name %> = <%= service.rest.service_stub_name_full %>.new(
|
144
|
+
endpoint: @config.endpoint,
|
145
|
+
endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
|
146
|
+
universe_domain: @config.universe_domain,
|
147
|
+
credentials: credentials,
|
148
|
+
logger: @config.logger
|
149
|
+
)
|
150
|
+
|
151
|
+
@<%= service.stub_name %>.logger(stub: true)&.info do |entry|
|
152
|
+
entry.set_system_name
|
153
|
+
entry.set_service
|
154
|
+
entry.message = "Created client for #{entry.service}"
|
155
|
+
entry.set_credentials_fields credentials
|
156
|
+
entry.set "customEndpoint", @config.endpoint if @config.endpoint
|
157
|
+
entry.set "defaultTimeout", @config.timeout if @config.timeout
|
158
|
+
entry.set "quotaProject", @quota_project_id if @quota_project_id
|
159
|
+
end
|
160
|
+
<%- service.rest.mixin_presenters.each do |subclient| -%>
|
161
|
+
|
162
|
+
@<%= subclient.client_var_name %> = <%= subclient.client_class_docname %>.new do |config|
|
163
|
+
config.credentials = credentials
|
164
|
+
config.quota_project = @quota_project_id
|
165
|
+
config.endpoint = @<%= service.stub_name %>.endpoint
|
166
|
+
config.universe_domain = @<%= service.stub_name %>.universe_domain
|
167
|
+
<%- if subclient.respond_to?(:bindings_override) && !subclient.bindings_override.empty? -%>
|
168
|
+
config.bindings_override = @config.bindings_override
|
169
|
+
<%- end -%>
|
170
|
+
config.logger = @<%= service.stub_name %>.logger if config.respond_to? :logger=
|
171
|
+
end
|
111
172
|
<%- end -%>
|
112
|
-
@<%= service.stub_name %> = <%= service.rest.service_stub_name_full %>.new endpoint: @config.endpoint, credentials: credentials
|
113
173
|
end
|
114
174
|
|
115
|
-
<%- if service.subclients? -%>
|
116
|
-
<%- service.subclients.each do |subclient| -%>
|
175
|
+
<%- if service.rest.subclients? -%>
|
176
|
+
<%- service.rest.subclients.each do |subclient| -%>
|
117
177
|
##
|
118
178
|
# Get the associated client for <%= subclient.service_description %>.
|
119
179
|
#
|
@@ -123,8 +183,17 @@ class <%= service.rest.client_name %>
|
|
123
183
|
|
124
184
|
<%- end -%>
|
125
185
|
<%- end -%>
|
186
|
+
##
|
187
|
+
# The logger used for request/response debug logging.
|
188
|
+
#
|
189
|
+
# @return [Logger]
|
190
|
+
#
|
191
|
+
def logger
|
192
|
+
@<%= service.stub_name %>.logger
|
193
|
+
end
|
194
|
+
|
126
195
|
# Service calls
|
127
|
-
<%- service.methods.each do |method| -%>
|
196
|
+
<%- service.rest.methods.each do |method| -%>
|
128
197
|
|
129
198
|
<%= indent_tail render(partial: "service/rest/client/method/def", locals: { method: method }), 2 %>
|
130
199
|
<%- end -%>
|