gapic-generator 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 +333 -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 -32
- data/lib/gapic/generators/default_generator_parameters.rb +11 -3
- data/lib/gapic/grpc_service_config/{service_config.rb → config.rb} +2 -2
- data/lib/gapic/grpc_service_config/parser.rb +10 -10
- data/lib/gapic/model/api_metadata.rb +173 -0
- data/lib/gapic/model/method/http_annotation.rb +221 -0
- data/lib/gapic/model/method/lro.rb +163 -0
- data/lib/gapic/model/method/routing.rb +248 -0
- data/lib/gapic/model/mixins.rb +247 -0
- data/lib/gapic/model/model_error.rb +26 -0
- data/lib/gapic/model/service/nonstandard_lro_provider.rb +292 -0
- data/lib/gapic/model.rb +22 -0
- data/lib/gapic/package_snippets.rb +159 -0
- data/lib/gapic/path_pattern/parser.rb +11 -2
- data/lib/gapic/path_pattern/pattern.rb +64 -1
- data/lib/gapic/path_pattern/segment.rb +108 -13
- 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 +140 -34
- data/lib/gapic/presenters/{service_config_presenter.rb → grpc_service_config_presenter.rb} +1 -1
- 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 +149 -35
- data/lib/gapic/presenters/method_rest_presenter.rb +79 -168
- 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 +90 -0
- 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 +361 -27
- data/lib/gapic/presenters/service_rest_presenter.rb +247 -13
- 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 -9
- data/lib/gapic/presenters.rb +5 -1
- data/lib/gapic/runner.rb +1 -1
- data/lib/gapic/schema/api.rb +105 -5
- data/lib/gapic/schema/loader.rb +69 -21
- 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 +152 -0
- data/lib/gapic/schema/wrappers.rb +309 -25
- 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/gem/{yardopts.erb → yardopts.text.erb} +1 -1
- 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} +7 -6
- data/templates/default/lib/_package_rest.text.erb +24 -0
- data/templates/default/lib/{_service.erb → _service.text.erb} +14 -20
- 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} +77 -17
- data/templates/default/service/client/{_config.erb → _config.text.erb} +39 -8
- data/templates/default/service/client/_nonstandard_lro.text.erb +57 -0
- data/templates/default/service/client/{_operations.erb → _operations.text.erb} +24 -3
- data/templates/default/service/client/{_self_configure_defaults.erb → _self_configure_defaults.text.erb} +2 -2
- 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} +3 -9
- 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.text.erb +10 -0
- data/templates/default/service/client/method/def/_response_nonstandard_lro.text.erb +23 -0
- 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/def/_routing_params.text.erb +36 -0
- 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.text.erb +202 -0
- 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.text.erb +12 -0
- data/templates/default/service/rest/client/method/def/_response_nonstandard_lro.text.erb +24 -0
- 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/rest/nonstandard_lro.text.erb +6 -0
- 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/{_assert_response.erb → _assert_response.text.erb} +3 -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 +209 -230
- data/lib/google/api/annotations.pb.rb +0 -39
- data/lib/google/api/client.pb.rb +0 -43
- data/lib/google/api/field_behavior.pb.rb +0 -51
- data/lib/google/api/http.pb.rb +0 -60
- data/lib/google/api/resource.pb.rb +0 -80
- data/lib/google/longrunning/operations.pb.rb +0 -115
- data/lib/google/protobuf/any.pb.rb +0 -40
- data/lib/google/protobuf/compiler/plugin.pb.rb +0 -79
- data/lib/google/protobuf/descriptor.pb.rb +0 -360
- data/lib/google/protobuf/empty.pb.rb +0 -36
- 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/def/_response.erb +0 -6
- 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/_client.erb +0 -106
- data/templates/default/service/rest/client/_config.erb +0 -122
- data/templates/default/service/rest/client/method/def/_response.erb +0 -8
- data/templates/default/service/rest/client/method/def/_response_lro.erb +0 -7
- 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/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/{_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/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/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/{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
@@ -0,0 +1,13 @@
|
|
1
|
+
<%- assert_locals package -%>
|
2
|
+
<%- package.first_service_with_rest.rest.mixin_presenters.each do |subclient| -%>
|
3
|
+
<%- subclient.bindings_override.each do |method, bindings| -%>
|
4
|
+
default_config.bindings_override["<%= method %>"] = [
|
5
|
+
|
6
|
+
<%- last_binding_index = bindings.count - 1 -%>
|
7
|
+
<%- bindings.each_with_index do |http_binding, index| -%>
|
8
|
+
<%- comma = last_binding_index == index ? "" : "," -%>
|
9
|
+
<%= indent render(partial: "lib/package/self_configure/binding_default", locals: { http_binding: http_binding }), 4 %><%= comma %>
|
10
|
+
<%- end -%>
|
11
|
+
]
|
12
|
+
<%- end -%>
|
13
|
+
<%- end -%>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<%- assert_locals http_binding -%>
|
2
|
+
Gapic::Rest::GrpcTranscoder::HttpBinding.create_with_validation(
|
3
|
+
uri_method: :<%= http_binding.verb %>,
|
4
|
+
uri_template: "<%= http_binding.uri_for_transcoding %>",
|
5
|
+
matches: [
|
6
|
+
<%- http_binding.routing_params_transcoder_matches_strings.each do |match_str| -%>
|
7
|
+
<%= match_str %>
|
8
|
+
<%- end -%>
|
9
|
+
],
|
10
|
+
<%- if http_binding.body? -%>
|
11
|
+
body: "<%= http_binding.body %>"
|
12
|
+
<%- else -%>
|
13
|
+
body: nil
|
14
|
+
<%- end -%>
|
15
|
+
)
|
@@ -0,0 +1,46 @@
|
|
1
|
+
<%- assert_locals service -%>
|
2
|
+
<% @requires = capture do %>
|
3
|
+
require "gapic/rest"
|
4
|
+
require "gapic/config"
|
5
|
+
require "gapic/config/method"
|
6
|
+
|
7
|
+
require "<%= service.gem.version_require %>"
|
8
|
+
<%- if service.package.mixin_binding_overrides? -%>
|
9
|
+
require "<%= service.package.mixin_binding_overrides_require %>"
|
10
|
+
<%- end -%>
|
11
|
+
|
12
|
+
<%- unless service.generic_endpoint? -%>
|
13
|
+
require "<%= service.credentials_require %>"
|
14
|
+
<%- end -%>
|
15
|
+
<%- if service.paths? -%>
|
16
|
+
require "<%= service.paths_require %>"
|
17
|
+
<%- end -%>
|
18
|
+
<%- if service.lro? -%>
|
19
|
+
require "<%= service.rest.operations_require %>"
|
20
|
+
<%- end -%>
|
21
|
+
<%- if service.nonstandard_lro_provider? -%>
|
22
|
+
require "<%= service.rest.nonstandard_lro_require %>"
|
23
|
+
<%- end -%>
|
24
|
+
require "<%= service.rest.client_require %>"
|
25
|
+
<% end %>
|
26
|
+
##
|
27
|
+
<%- if service.doc_description -%>
|
28
|
+
<%= indent service.doc_description, "# " %>
|
29
|
+
#
|
30
|
+
<%- end -%>
|
31
|
+
# To load this service and instantiate a REST client:
|
32
|
+
#
|
33
|
+
# require "<%= service.rest.service_require %>"
|
34
|
+
# client = <%= service.rest.create_client_call %>
|
35
|
+
#
|
36
|
+
module <%= service.module_name %>
|
37
|
+
# Client for the REST transport
|
38
|
+
module Rest
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
|
44
|
+
<% @footer = capture do %>
|
45
|
+
<%= render partial: "service/helpers", locals: { service: service.rest} -%>
|
46
|
+
<% end %>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<%- assert_locals presenter -%>
|
2
|
+
<% newline ||= false %>
|
3
|
+
<% indentation ||= "# " %>
|
4
|
+
<%- if presenter.is_deprecated? -%>
|
5
|
+
<%= indent "@deprecated This #{presenter.type} is deprecated and may be removed in the next major version update.\n", indentation %>
|
6
|
+
<%- if newline -%>
|
7
|
+
<%= indentation %>
|
8
|
+
<%- end -%>
|
9
|
+
<%- end -%>
|
@@ -2,8 +2,10 @@
|
|
2
2
|
<%- if message.doc_description -%>
|
3
3
|
<%= indent message.doc_description, "# " %>
|
4
4
|
<%- end -%>
|
5
|
+
<%= render partial: "proto_docs/deprecated", locals: { presenter: message } -%>
|
5
6
|
<%- message.fields.each do |field| -%>
|
6
7
|
<%= indent field.doc_attribute_type, "# " %>
|
8
|
+
<%= render(partial: "proto_docs/deprecated", locals: { presenter:field, indentation: "# " }) -%>
|
7
9
|
# @return [<%= field.output_doc_types %>]
|
8
10
|
<%- if field.doc_description -%>
|
9
11
|
<%= indent field.doc_description, "# " %>
|
@@ -2,15 +2,31 @@
|
|
2
2
|
<% @requires = capture do %>
|
3
3
|
<%= render partial: "service/client/requires", locals: { service: service} -%>
|
4
4
|
require "<%= service.proto_service_require %>"
|
5
|
+
<%- if service.subclients? -%>
|
6
|
+
<%- service.subclients.each do |subclient| -%>
|
7
|
+
<%- unless subclient.client_class_name == "Operations" -%>
|
8
|
+
require "<%= subclient.require_str %>"
|
9
|
+
<%- end -%>
|
10
|
+
<%- end -%>
|
11
|
+
<%- end -%>
|
12
|
+
<%- if service.autogenerates_uuid? -%>
|
13
|
+
require "securerandom"
|
14
|
+
<%- end -%>
|
5
15
|
<% end %>
|
6
16
|
##
|
7
17
|
# Client for the <%= service.name %> service.
|
8
18
|
#
|
9
19
|
<%- if service.doc_description -%>
|
10
|
-
<%= indent service.doc_description, "# " %>
|
20
|
+
<%= indent service.doc_description(transport: :grpc), "# " %>
|
11
21
|
#
|
12
22
|
<%- end -%>
|
13
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
|
+
|
14
30
|
<%- if service.paths? -%>
|
15
31
|
include <%= service.paths_name %>
|
16
32
|
|
@@ -23,11 +39,8 @@ class <%= service.client_name %>
|
|
23
39
|
#
|
24
40
|
# See {<%= service.client_name_full %>::Configuration}
|
25
41
|
# for a description of the configuration fields.
|
26
|
-
<%- if service.is_deprecated? -%>
|
27
|
-
#
|
28
|
-
# @deprecated This service is deprecated and may be removed in the next major version update.
|
29
|
-
<%- end -%>
|
30
42
|
#
|
43
|
+
<%= render partial: "proto_docs/deprecated", locals: { presenter: service, newline: true } -%>
|
31
44
|
# @example
|
32
45
|
#
|
33
46
|
# # Modify the configuration for all <%= service.name %> clients
|
@@ -64,6 +77,15 @@ class <%= service.client_name %>
|
|
64
77
|
@config
|
65
78
|
end
|
66
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
|
+
|
67
89
|
##
|
68
90
|
# Create a new <%= service.name %> client object.
|
69
91
|
#
|
@@ -98,7 +120,8 @@ class <%= service.client_name %>
|
|
98
120
|
<%- unless service.generic_endpoint? -%>
|
99
121
|
# Use self-signed JWT if the endpoint is unchanged from default,
|
100
122
|
# but only if the default endpoint does not have a region prefix.
|
101
|
-
enable_self_signed_jwt = @config.endpoint
|
123
|
+
enable_self_signed_jwt = @config.endpoint.nil? ||
|
124
|
+
@config.endpoint == Configuration::DEFAULT_ENDPOINT &&
|
102
125
|
!@config.endpoint.split(".").first.include?("-")
|
103
126
|
credentials ||= Credentials.default scope: @config.scope,
|
104
127
|
enable_self_signed_jwt: enable_self_signed_jwt
|
@@ -109,36 +132,73 @@ class <%= service.client_name %>
|
|
109
132
|
@quota_project_id = @config.quota_project
|
110
133
|
@quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
|
111
134
|
|
112
|
-
<%-
|
113
|
-
|
135
|
+
<%- service.lro_subclients.each do |subclient| -%>
|
136
|
+
@<%= subclient.client_var_name %> = <%= subclient.client_class_name %>.new do |config|
|
114
137
|
config.credentials = credentials
|
138
|
+
config.quota_project = @quota_project_id
|
115
139
|
config.endpoint = @config.endpoint
|
140
|
+
config.universe_domain = @config.universe_domain
|
116
141
|
end
|
117
142
|
|
118
143
|
<%- end -%>
|
119
144
|
@<%= service.stub_name %> = ::Gapic::ServiceStub.new(
|
120
145
|
<%= service.proto_service_stub_name_full %>,
|
121
|
-
credentials:
|
122
|
-
endpoint:
|
146
|
+
credentials: credentials,
|
147
|
+
endpoint: @config.endpoint,
|
148
|
+
endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
|
149
|
+
universe_domain: @config.universe_domain,
|
123
150
|
channel_args: @config.channel_args,
|
124
|
-
interceptors: @config.interceptors
|
151
|
+
interceptors: @config.interceptors,
|
152
|
+
channel_pool_config: @config.channel_pool,
|
153
|
+
logger: @config.logger
|
125
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 -%>
|
126
175
|
end
|
127
176
|
|
128
|
-
<%- if service.
|
177
|
+
<%- if service.subclients? -%>
|
178
|
+
<%- service.subclients.each do |subclient| -%>
|
129
179
|
##
|
130
|
-
# Get the associated client for
|
180
|
+
# Get the associated client for <%= subclient.service_description %>.
|
131
181
|
#
|
132
|
-
# @return [<%=
|
182
|
+
# @return [<%= subclient.client_class_docname %>]
|
133
183
|
#
|
134
|
-
attr_reader :<%=
|
184
|
+
attr_reader :<%= subclient.client_var_name %>
|
185
|
+
|
186
|
+
<%- end -%>
|
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
|
135
196
|
|
136
|
-
<%- end -%>
|
137
197
|
# Service calls
|
138
198
|
<%- service.methods.each do |method| -%>
|
139
199
|
|
140
200
|
<%= indent_tail render(partial: "service/client/method/def", locals: { method: method }), 2 %>
|
141
|
-
<%- end
|
201
|
+
<%- end -%>
|
142
202
|
|
143
203
|
<%= indent_tail render(partial: "service/client/config", locals: { service: service }), 2 %>
|
144
204
|
end
|
@@ -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
|
#
|
@@ -0,0 +1,57 @@
|
|
1
|
+
<%- assert_locals service -%>
|
2
|
+
<% @requires = capture do %>
|
3
|
+
require "gapic/operation/retry_policy"
|
4
|
+
require "gapic/generic_lro/operation"
|
5
|
+
<% end %>
|
6
|
+
|
7
|
+
# A module containing nonstandard lro helpers
|
8
|
+
module <%= service.nonstandard_lro_name %>
|
9
|
+
class << self
|
10
|
+
##
|
11
|
+
# Creates a Generic LRO operation object that wraps the nonstandard
|
12
|
+
# long-running operation specific to this service.
|
13
|
+
#
|
14
|
+
# @param operation [Object] The long-running operation object that is returned by the initial method call.
|
15
|
+
#
|
16
|
+
# @param client [<%= service.usable_service_presenter.client_name_full %>] The client that handles the polling for the longrunning operation.
|
17
|
+
#
|
18
|
+
# @param request_values [Map<String, String>] The values that are to be copied from the request that
|
19
|
+
# triggered the longrunning operation, into the request that polls for the longrunning operation.
|
20
|
+
# The format is `name of the request field -> value`
|
21
|
+
#
|
22
|
+
# @param options [Gapic::CallOptions] call options for this operation
|
23
|
+
#
|
24
|
+
# @return [Gapic::GenericLRO::Operation]
|
25
|
+
#
|
26
|
+
def create_operation operation:, client:, request_values:, options:
|
27
|
+
Gapic::GenericLRO::Operation.new(operation,
|
28
|
+
client: client,
|
29
|
+
polling_method_name: "<%= service.nonstandard_lro_polling_method_name %>",
|
30
|
+
request_values: request_values,
|
31
|
+
operation_status_field: "<%= service.nonstandard_lro.operation_status_field %>",
|
32
|
+
<%- if service.nonstandard_lro.operation_name_field -%>
|
33
|
+
operation_name_field: "<%= service.nonstandard_lro.operation_name_field %>",
|
34
|
+
<%- end -%>
|
35
|
+
<%- if service.nonstandard_lro.operation_err_code_field -%>
|
36
|
+
operation_err_code_field: "<%= service.nonstandard_lro.operation_err_code_field %>",
|
37
|
+
<%- end -%>
|
38
|
+
<%- if service.nonstandard_lro.operation_err_msg_field -%>
|
39
|
+
operation_err_msg_field: "<%= service.nonstandard_lro.operation_err_msg_field %>",
|
40
|
+
<%- end -%>
|
41
|
+
<%- if service.nonstandard_lro.operation_response_fields.any? -%>
|
42
|
+
operation_copy_fields: {
|
43
|
+
<%- service.nonstandard_lro.operation_response_fields.each_with_index do |(field_from, field_to), i| -%>
|
44
|
+
<%- if i == service.nonstandard_lro.operation_response_fields.length - 1 -%>
|
45
|
+
"<%= field_to %>" => "<%= field_from %>"
|
46
|
+
<%- else -%>
|
47
|
+
"<%= field_to %>" => "<%= field_from %>",
|
48
|
+
<%- end -%>
|
49
|
+
<%- end -%>
|
50
|
+
},
|
51
|
+
<%- else -%>
|
52
|
+
operation_copy_fields: {},
|
53
|
+
<%- end -%>
|
54
|
+
options: options)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -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
|
@@ -6,7 +6,7 @@
|
|
6
6
|
default_config.timeout = <%= format_number service.grpc_service_config.timeout_seconds %>
|
7
7
|
<%- end -%>
|
8
8
|
<%- if service.grpc_service_config.retry_policy -%>
|
9
|
-
default_config.retry_policy = <%= indent_tail service.
|
9
|
+
default_config.retry_policy = <%= indent_tail service.grpc_service_config_presenter.retry_policy_fields, 2 %>
|
10
10
|
<%- end -%>
|
11
11
|
<%- end -%>
|
12
12
|
<%- method_service.methods.each do |method| -%>
|
@@ -16,7 +16,7 @@
|
|
16
16
|
default_config.rpcs.<%= method.name %>.timeout = <%= format_number method.grpc_service_config.timeout_seconds %>
|
17
17
|
<%- end -%>
|
18
18
|
<%- if method.grpc_service_config.retry_policy -%>
|
19
|
-
default_config.rpcs.<%= method.name %>.retry_policy =<%= indent_tail method.
|
19
|
+
default_config.rpcs.<%= method.name %>.retry_policy =<%= indent_tail method.grpc_service_config_presenter.retry_policy_fields, 2 %>
|
20
20
|
<%- end -%>
|
21
21
|
<%- end -%>
|
22
22
|
<%- end -%>
|
@@ -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,21 +5,15 @@ 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
|
|
15
|
-
|
16
|
-
<%- method.routing_params.each_with_index do |routing_param, index| -%>
|
17
|
-
<%- comma = index == method.routing_params.count - 1 ? "" : "," -%>
|
18
|
-
"<%= routing_param %>" => request.<%= routing_param %><%= comma %>
|
19
|
-
<%- end -%>
|
20
|
-
}
|
21
|
-
request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
|
22
|
-
metadata[:"x-goog-request-params"] ||= request_params_header
|
16
|
+
<%= render partial: "service/client/method/def/routing_params", locals: { method: method } -%>
|
23
17
|
<%- end -%>
|
24
18
|
|
25
19
|
options.apply_defaults timeout: @config.rpcs.<%= method.name %>.timeout,
|
@@ -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
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<%- assert_locals method -%>
|
2
|
+
<%- if method.paged? -%>
|
3
|
+
<%= render partial: "service/client/method/def/response_paged", locals: { method: method } -%>
|
4
|
+
<%- elsif method.rest.nonstandard_lro? -%>
|
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 } -%>
|
8
|
+
<%- else -%>
|
9
|
+
<%= render partial: "service/client/method/def/response_normal", locals: { method: method } -%>
|
10
|
+
<%- end -%>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<%- assert_locals method -%>
|
2
|
+
@<%= method.service.stub_name %>.call_rpc :<%= method.name %>, request, options: options do |result, response|
|
3
|
+
result = <%= method.nonstandard_lro_client.helper_type %>.create_operation(
|
4
|
+
operation: result,
|
5
|
+
client: <%= method.nonstandard_lro_client.client_var_name %>,
|
6
|
+
<%- if method.lro.operation_request_fields.any? -%>
|
7
|
+
request_values: {
|
8
|
+
<%- method.lro.operation_request_fields.each_with_index do |(field_from, field_to), i| -%>
|
9
|
+
<%- if i == method.lro.operation_request_fields.length - 1 -%>
|
10
|
+
"<%= field_to %>" => request.<%= field_from %>
|
11
|
+
<%- else -%>
|
12
|
+
"<%= field_to %>" => request.<%= field_from %>,
|
13
|
+
<%- end -%>
|
14
|
+
<%- end -%>
|
15
|
+
},
|
16
|
+
<%- else -%>
|
17
|
+
request_values: {},
|
18
|
+
<%- end -%>
|
19
|
+
options: options
|
20
|
+
)
|
21
|
+
yield result, response if block_given?
|
22
|
+
throw :response, result
|
23
|
+
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
|