gapic-generator 0.10.1 → 0.11.0
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 +34 -0
- data/lib/gapic/generator/version.rb +1 -1
- data/lib/gapic/generators/default_generator.rb +2 -0
- data/lib/gapic/generators/default_generator_parameters.rb +3 -1
- data/lib/gapic/grpc_service_config/{service_config.rb → config.rb} +2 -2
- data/lib/gapic/grpc_service_config/parser.rb +8 -8
- data/lib/gapic/model/method/http_annotation.rb +123 -0
- data/lib/gapic/model/method/lro.rb +160 -0
- data/lib/gapic/model/method/routing.rb +263 -0
- data/lib/gapic/model/mixins.rb +181 -0
- data/lib/gapic/model/model_error.rb +26 -0
- data/lib/gapic/model/service/nonstandard_lro_provider.rb +293 -0
- data/lib/gapic/model.rb +22 -0
- data/lib/gapic/path_pattern/pattern.rb +46 -0
- data/lib/gapic/path_pattern/segment.rb +97 -9
- data/lib/gapic/presenters/gem_presenter.rb +34 -2
- data/lib/gapic/presenters/{service_config_presenter.rb → grpc_service_config_presenter.rb} +1 -1
- data/lib/gapic/presenters/method_presenter.rb +43 -3
- data/lib/gapic/presenters/method_rest_presenter.rb +33 -55
- data/lib/gapic/presenters/service/lro_client_presenter.rb +90 -0
- data/lib/gapic/presenters/service_presenter.rb +185 -3
- data/lib/gapic/presenters/service_rest_presenter.rb +81 -0
- data/lib/gapic/presenters/snippet_presenter.rb +1 -0
- data/lib/gapic/presenters.rb +3 -1
- data/lib/gapic/schema/api.rb +56 -2
- data/lib/gapic/schema/loader.rb +4 -1
- data/lib/gapic/schema/service_config_parser.rb +118 -0
- data/lib/gapic/schema/wrappers.rb +124 -1
- data/lib/google/api/auth.pb.rb +75 -0
- data/lib/google/api/backend.pb.rb +59 -0
- data/lib/google/api/billing.pb.rb +53 -0
- data/lib/google/api/context.pb.rb +47 -0
- data/lib/google/api/control.pb.rb +38 -0
- data/lib/google/api/documentation.pb.rb +56 -0
- data/lib/google/api/endpoint.pb.rb +42 -0
- data/lib/google/api/label.pb.rb +49 -0
- data/lib/google/api/launch_stage.pb.rb +37 -0
- data/lib/google/api/log.pb.rb +47 -0
- data/lib/google/api/logging.pb.rb +48 -0
- data/lib/google/api/metric.pb.rb +90 -0
- data/lib/google/api/monitored_resource.pb.rb +68 -0
- data/lib/google/api/monitoring.pb.rb +48 -0
- data/lib/google/api/quota.pb.rb +63 -0
- data/lib/google/api/routing.pb.rb +58 -0
- data/lib/google/api/service.pb.rb +90 -0
- data/lib/google/api/source_info.pb.rb +44 -0
- data/lib/google/api/system_parameter.pb.rb +51 -0
- data/lib/google/api/usage.pb.rb +47 -0
- data/lib/google/cloud/extended_operations.pb.rb +57 -0
- data/lib/google/protobuf/any.pb.rb +1 -1
- data/lib/google/protobuf/api.pb.rb +69 -0
- data/lib/google/protobuf/descriptor.pb.rb +1 -1
- data/lib/google/protobuf/duration.pb.rb +41 -0
- data/lib/google/protobuf/source_context.pb.rb +39 -0
- data/lib/google/protobuf/struct.pb.rb +65 -0
- data/lib/google/protobuf/type.pb.rb +128 -0
- data/lib/google/protobuf/wrappers.pb.rb +80 -0
- data/templates/default/gem/yardopts.erb +1 -1
- data/templates/default/lib/_package.erb +4 -0
- data/templates/default/lib/_service.erb +6 -0
- data/templates/default/service/client/_client.erb +20 -8
- data/templates/default/service/client/_nonstandard_lro.erb +57 -0
- data/templates/default/service/client/_self_configure_defaults.erb +2 -2
- data/templates/default/service/client/method/def/_options_defaults.erb +1 -8
- data/templates/default/service/client/method/def/_response.erb +2 -0
- data/templates/default/service/client/method/def/_response_nonstandard_lro.erb +23 -0
- data/templates/default/service/client/method/def/_routing_params.erb +36 -0
- data/templates/default/service/nonstandard_lro.erb +6 -0
- data/templates/default/service/rest/client/_client.erb +32 -5
- data/templates/default/service/rest/client/method/def/_response.erb +2 -2
- data/templates/default/service/rest/client/method/def/_response_nonstandard_lro.erb +23 -0
- data/templates/default/service/test/method/_assert_response.erb +3 -0
- metadata +61 -7
- data/templates/default/service/rest/client/method/def/_response_lro.erb +0 -7
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
##
|
|
4
|
+
# This file is auto-generated. DO NOT EDIT!
|
|
5
|
+
#
|
|
6
|
+
require 'protobuf'
|
|
7
|
+
|
|
8
|
+
module Google
|
|
9
|
+
module Protobuf
|
|
10
|
+
::Protobuf::Optionable.inject(self) { ::Google::Protobuf::FileOptions }
|
|
11
|
+
|
|
12
|
+
##
|
|
13
|
+
# Message Classes
|
|
14
|
+
#
|
|
15
|
+
class DoubleValue < ::Protobuf::Message; end
|
|
16
|
+
class FloatValue < ::Protobuf::Message; end
|
|
17
|
+
class Int64Value < ::Protobuf::Message; end
|
|
18
|
+
class UInt64Value < ::Protobuf::Message; end
|
|
19
|
+
class Int32Value < ::Protobuf::Message; end
|
|
20
|
+
class UInt32Value < ::Protobuf::Message; end
|
|
21
|
+
class BoolValue < ::Protobuf::Message; end
|
|
22
|
+
class StringValue < ::Protobuf::Message; end
|
|
23
|
+
class BytesValue < ::Protobuf::Message; end
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
##
|
|
27
|
+
# File Options
|
|
28
|
+
#
|
|
29
|
+
set_option :java_package, "com.google.protobuf"
|
|
30
|
+
set_option :java_outer_classname, "WrappersProto"
|
|
31
|
+
set_option :java_multiple_files, true
|
|
32
|
+
set_option :go_package, "github.com/golang/protobuf/ptypes/wrappers"
|
|
33
|
+
set_option :cc_enable_arenas, true
|
|
34
|
+
set_option :objc_class_prefix, "GPB"
|
|
35
|
+
set_option :csharp_namespace, "Google.Protobuf.WellKnownTypes"
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
##
|
|
39
|
+
# Message Fields
|
|
40
|
+
#
|
|
41
|
+
class DoubleValue
|
|
42
|
+
optional :double, :value, 1
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
class FloatValue
|
|
46
|
+
optional :float, :value, 1
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
class Int64Value
|
|
50
|
+
optional :int64, :value, 1
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
class UInt64Value
|
|
54
|
+
optional :uint64, :value, 1
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
class Int32Value
|
|
58
|
+
optional :int32, :value, 1
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
class UInt32Value
|
|
62
|
+
optional :uint32, :value, 1
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
class BoolValue
|
|
66
|
+
optional :bool, :value, 1
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
class StringValue
|
|
70
|
+
optional :string, :value, 1
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
class BytesValue
|
|
74
|
+
optional :bytes, :value, 1
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
end
|
|
80
|
+
|
|
@@ -10,6 +10,8 @@ require "<%= package.gem.version_require %>"
|
|
|
10
10
|
##
|
|
11
11
|
# To load this package, including all its services, and instantiate a <%= package.grpc_client_designation %>:
|
|
12
12
|
#
|
|
13
|
+
# @example
|
|
14
|
+
#
|
|
13
15
|
# require "<%= package.package_require %>"
|
|
14
16
|
# client = <%= package.services.first.create_client_call %>
|
|
15
17
|
#
|
|
@@ -18,6 +20,8 @@ require "<%= package.gem.version_require %>"
|
|
|
18
20
|
##
|
|
19
21
|
# To load this package, including all its services, and instantiate a REST client:
|
|
20
22
|
#
|
|
23
|
+
# @example
|
|
24
|
+
#
|
|
21
25
|
# require "<%= package.package_require %>"
|
|
22
26
|
# client = <%= package.services.first.rest.create_client_call %>
|
|
23
27
|
#
|
|
@@ -13,6 +13,9 @@ require "<%= service.credentials_require %>"
|
|
|
13
13
|
<%- if service.paths? -%>
|
|
14
14
|
require "<%= service.paths_require %>"
|
|
15
15
|
<%- end -%>
|
|
16
|
+
<%- if service.nonstandard_lro_provider? -%>
|
|
17
|
+
require "<%= service.rest.nonstandard_lro_require %>"
|
|
18
|
+
<%- end -%>
|
|
16
19
|
require "<%= service.rest.service_rest_require %>"
|
|
17
20
|
<% end %>
|
|
18
21
|
<%- else -%>
|
|
@@ -32,6 +35,9 @@ require "<%= service.paths_require %>"
|
|
|
32
35
|
<%- if service.lro? -%>
|
|
33
36
|
require "<%= service.operations_require %>"
|
|
34
37
|
<%- end -%>
|
|
38
|
+
<%- if service.nonstandard_lro_provider? -%>
|
|
39
|
+
require "<%= service.nonstandard_lro_require %>"
|
|
40
|
+
<%- end -%>
|
|
35
41
|
require "<%= service.client_require %>"
|
|
36
42
|
<% end %>
|
|
37
43
|
##
|
|
@@ -2,6 +2,13 @@
|
|
|
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 -%>
|
|
5
12
|
<% end %>
|
|
6
13
|
##
|
|
7
14
|
# Client for the <%= service.name %> service.
|
|
@@ -109,12 +116,15 @@ class <%= service.client_name %>
|
|
|
109
116
|
@quota_project_id = @config.quota_project
|
|
110
117
|
@quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
|
|
111
118
|
|
|
112
|
-
<%- if service.
|
|
113
|
-
|
|
119
|
+
<%- if service.subclients? -%>
|
|
120
|
+
<%- service.subclients.each do |subclient| -%>
|
|
121
|
+
@<%= subclient.client_var_name %> = <%= subclient.client_class_name %>.new do |config|
|
|
114
122
|
config.credentials = credentials
|
|
123
|
+
config.quota_project = @quota_project_id
|
|
115
124
|
config.endpoint = @config.endpoint
|
|
116
125
|
end
|
|
117
126
|
|
|
127
|
+
<%- end -%>
|
|
118
128
|
<%- end -%>
|
|
119
129
|
@<%= service.stub_name %> = ::Gapic::ServiceStub.new(
|
|
120
130
|
<%= service.proto_service_stub_name_full %>,
|
|
@@ -125,20 +135,22 @@ class <%= service.client_name %>
|
|
|
125
135
|
)
|
|
126
136
|
end
|
|
127
137
|
|
|
128
|
-
<%- if service.
|
|
138
|
+
<%- if service.subclients? -%>
|
|
139
|
+
<%- service.subclients.each do |subclient| -%>
|
|
129
140
|
##
|
|
130
|
-
# Get the associated client for
|
|
141
|
+
# Get the associated client for <%= subclient.service_description %>.
|
|
131
142
|
#
|
|
132
|
-
# @return [<%=
|
|
143
|
+
# @return [<%= subclient.client_class_docname %>]
|
|
133
144
|
#
|
|
134
|
-
attr_reader :<%=
|
|
145
|
+
attr_reader :<%= subclient.client_var_name %>
|
|
135
146
|
|
|
136
|
-
<%- end -%>
|
|
147
|
+
<%- end -%>
|
|
148
|
+
<%- end -%>
|
|
137
149
|
# Service calls
|
|
138
150
|
<%- service.methods.each do |method| -%>
|
|
139
151
|
|
|
140
152
|
<%= indent_tail render(partial: "service/client/method/def", locals: { method: method }), 2 %>
|
|
141
|
-
<%- end
|
|
153
|
+
<%- end -%>
|
|
142
154
|
|
|
143
155
|
<%= indent_tail render(partial: "service/client/config", locals: { service: service }), 2 %>
|
|
144
156
|
end
|
|
@@ -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
|
|
@@ -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 -%>
|
|
@@ -12,14 +12,7 @@ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
|
|
|
12
12
|
metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
|
|
13
13
|
<%- if method.routing_params? && !method.client_streaming? -%>
|
|
14
14
|
|
|
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
|
|
15
|
+
<%= render partial: "service/client/method/def/routing_params", locals: { method: method } -%>
|
|
23
16
|
<%- end -%>
|
|
24
17
|
|
|
25
18
|
options.apply_defaults timeout: @config.rpcs.<%= method.name %>.timeout,
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
<%- assert_locals method -%>
|
|
2
2
|
<%- if method.paged? -%>
|
|
3
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 } -%>
|
|
4
6
|
<%- else -%>
|
|
5
7
|
<%= render partial: "service/client/method/def/response_normal", locals: { method: method } -%>
|
|
6
8
|
<%- 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
|
+
return result
|
|
23
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<%- assert_locals method -%>
|
|
2
|
+
header_params = {}
|
|
3
|
+
<%- if method.routing.explicit_params? -%>
|
|
4
|
+
<%- method.routing.explicit_params.each do |key_name, routing_infos| -%>
|
|
5
|
+
<%- routing_infos.each do |routing_info| -%>
|
|
6
|
+
<%- if routing_info.pattern_matching_not_needed? -%>
|
|
7
|
+
if request.<%= routing_info.field.gsub(".", "&.") %> && !request.<%= routing_info.field %>.empty?
|
|
8
|
+
header_params["<%= key_name %>"] = request.<%= routing_info.field %>
|
|
9
|
+
end
|
|
10
|
+
<%- elsif routing_info.value_is_full_field? -%>
|
|
11
|
+
if request.<%= routing_info.field.gsub(".", "&.") %> &&
|
|
12
|
+
%r{<%= routing_info.field_regex_str %>}.match?(request.<%= routing_info.field %>)
|
|
13
|
+
header_params["<%= key_name %>"] = request.<%= routing_info.field %>
|
|
14
|
+
end
|
|
15
|
+
<%- else -%>
|
|
16
|
+
if request.<%= routing_info.field.gsub(".", "&.") %>
|
|
17
|
+
regex_match = %r{<%= routing_info.field_full_regex_str %>}.match request.<%= routing_info.field %>
|
|
18
|
+
if regex_match
|
|
19
|
+
header_params["<%= key_name %>"] = regex_match["<%= key_name %>".to_s]
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
<%- end -%>
|
|
23
|
+
<%- end -%>
|
|
24
|
+
<%- end -%>
|
|
25
|
+
|
|
26
|
+
request_params_header = URI.encode_www_form header_params
|
|
27
|
+
<%- else -%>
|
|
28
|
+
<%- method.routing_params.each_with_index do |routing_param, index| -%>
|
|
29
|
+
if request.<%= routing_param.gsub(".", "&.") %>
|
|
30
|
+
header_params["<%= routing_param %>"] = request.<%= routing_param %>
|
|
31
|
+
end
|
|
32
|
+
<%- end -%>
|
|
33
|
+
|
|
34
|
+
request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
|
|
35
|
+
<%- end -%>
|
|
36
|
+
metadata[:"x-goog-request-params"] ||= request_params_header
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
<%- assert_locals service -%>
|
|
2
2
|
<% @requires = capture do %>
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
<%= render partial: "service/client/requires", locals: { service: service} -%>
|
|
4
|
+
require "<%= service.proto_service_require %>"
|
|
5
|
+
require "<%= service.rest.service_stub_require %>"
|
|
6
|
+
<%- if service.subclients? -%>
|
|
7
|
+
<%- service.subclients.each do |subclient| -%>
|
|
8
|
+
<%- unless subclient.client_class_name == "Operations" -%>
|
|
9
|
+
require "<%= subclient.require_str %>"
|
|
10
|
+
<%- end -%>
|
|
11
|
+
<%- end -%>
|
|
12
|
+
<%- end -%>
|
|
6
13
|
<% end %>
|
|
7
14
|
##
|
|
8
15
|
# REST client for the <%= service.name %> service.
|
|
@@ -14,8 +21,8 @@
|
|
|
14
21
|
class <%= service.rest.client_name %>
|
|
15
22
|
<%- if service.paths? -%>
|
|
16
23
|
include <%= service.paths_name %>
|
|
17
|
-
<%- end -%>
|
|
18
24
|
|
|
25
|
+
<%- end -%>
|
|
19
26
|
# @private
|
|
20
27
|
attr_reader :<%= service.stub_name %>
|
|
21
28
|
|
|
@@ -93,14 +100,34 @@ class <%= service.rest.client_name %>
|
|
|
93
100
|
end
|
|
94
101
|
<%- end -%>
|
|
95
102
|
|
|
103
|
+
<%- if service.subclients? -%>
|
|
104
|
+
<%- service.subclients.each do |subclient| -%>
|
|
105
|
+
@<%= subclient.client_var_name %> = <%= subclient.client_class_name %>.new do |config|
|
|
106
|
+
config.credentials = credentials
|
|
107
|
+
config.endpoint = @config.endpoint
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
<%- end -%>
|
|
111
|
+
<%- end -%>
|
|
96
112
|
@<%= service.stub_name %> = <%= service.rest.service_stub_name_full %>.new endpoint: @config.endpoint, credentials: credentials
|
|
97
113
|
end
|
|
98
114
|
|
|
115
|
+
<%- if service.subclients? -%>
|
|
116
|
+
<%- service.subclients.each do |subclient| -%>
|
|
117
|
+
##
|
|
118
|
+
# Get the associated client for <%= subclient.service_description %>.
|
|
119
|
+
#
|
|
120
|
+
# @return [<%= subclient.client_class_docname %>]
|
|
121
|
+
#
|
|
122
|
+
attr_reader :<%= subclient.client_var_name %>
|
|
123
|
+
|
|
124
|
+
<%- end -%>
|
|
125
|
+
<%- end -%>
|
|
99
126
|
# Service calls
|
|
100
127
|
<%- service.methods.each do |method| -%>
|
|
101
128
|
|
|
102
129
|
<%= indent_tail render(partial: "service/rest/client/method/def", locals: { method: method }), 2 %>
|
|
103
|
-
<%- end
|
|
130
|
+
<%- end -%>
|
|
104
131
|
|
|
105
132
|
<%= indent_tail render(partial: "service/rest/client/config", locals: { service: service }), 2 %>
|
|
106
133
|
end
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<%- assert_locals method -%>
|
|
2
2
|
<%- if method.rest.paged? -%>
|
|
3
3
|
<%= render partial: "service/rest/client/method/def/response_paged", locals: { method: method } -%>
|
|
4
|
-
<%- elsif method.rest.
|
|
5
|
-
<%= render partial: "service/rest/client/method/def/
|
|
4
|
+
<%- elsif method.rest.nonstandard_lro? -%>
|
|
5
|
+
<%= render partial: "service/rest/client/method/def/response_nonstandard_lro", locals: { method: method } -%>
|
|
6
6
|
<%- else -%>
|
|
7
7
|
<%= render partial: "service/rest/client/method/def/response_normal", locals: { method: method } -%>
|
|
8
8
|
<%- end -%>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<%- assert_locals method -%>
|
|
2
|
+
@<%= method.service.stub_name %>.<%= method.name %> request, 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
|
+
return result
|
|
23
|
+
end
|
|
@@ -5,6 +5,9 @@ assert_equal grpc_response, response.response
|
|
|
5
5
|
<%- elsif method.lro? %>
|
|
6
6
|
assert_kind_of Gapic::Operation, response
|
|
7
7
|
assert_equal grpc_response, response.grpc_op
|
|
8
|
+
<%- elsif method.nonstandard_lro? %>
|
|
9
|
+
assert_kind_of Gapic::GenericLRO::Operation, response
|
|
10
|
+
assert_equal grpc_response, response.operation
|
|
8
11
|
<%- else -%>
|
|
9
12
|
assert_equal grpc_response, response
|
|
10
13
|
<%- end -%>
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gapic-generator
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.11.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ernest Landrito
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date:
|
|
13
|
+
date: 2022-02-28 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: actionpack
|
|
@@ -60,14 +60,14 @@ dependencies:
|
|
|
60
60
|
requirements:
|
|
61
61
|
- - "~>"
|
|
62
62
|
- !ruby/object:Gem::Version
|
|
63
|
-
version: 1.
|
|
63
|
+
version: 1.41.0
|
|
64
64
|
type: :development
|
|
65
65
|
prerelease: false
|
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
|
67
67
|
requirements:
|
|
68
68
|
- - "~>"
|
|
69
69
|
- !ruby/object:Gem::Version
|
|
70
|
-
version: 1.
|
|
70
|
+
version: 1.41.0
|
|
71
71
|
- !ruby/object:Gem::Dependency
|
|
72
72
|
name: minitest
|
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -110,6 +110,20 @@ dependencies:
|
|
|
110
110
|
- - "~>"
|
|
111
111
|
- !ruby/object:Gem::Version
|
|
112
112
|
version: '1.0'
|
|
113
|
+
- !ruby/object:Gem::Dependency
|
|
114
|
+
name: pry
|
|
115
|
+
requirement: !ruby/object:Gem::Requirement
|
|
116
|
+
requirements:
|
|
117
|
+
- - ">="
|
|
118
|
+
- !ruby/object:Gem::Version
|
|
119
|
+
version: '0.14'
|
|
120
|
+
type: :development
|
|
121
|
+
prerelease: false
|
|
122
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
123
|
+
requirements:
|
|
124
|
+
- - ">="
|
|
125
|
+
- !ruby/object:Gem::Version
|
|
126
|
+
version: '0.14'
|
|
113
127
|
- !ruby/object:Gem::Dependency
|
|
114
128
|
name: rake
|
|
115
129
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -197,13 +211,20 @@ files:
|
|
|
197
211
|
- lib/gapic/generators/base_generator.rb
|
|
198
212
|
- lib/gapic/generators/default_generator.rb
|
|
199
213
|
- lib/gapic/generators/default_generator_parameters.rb
|
|
214
|
+
- lib/gapic/grpc_service_config/config.rb
|
|
200
215
|
- lib/gapic/grpc_service_config/method_config.rb
|
|
201
216
|
- lib/gapic/grpc_service_config/parser.rb
|
|
202
217
|
- lib/gapic/grpc_service_config/parsing_error.rb
|
|
203
218
|
- lib/gapic/grpc_service_config/retry_policy.rb
|
|
204
|
-
- lib/gapic/grpc_service_config/service_config.rb
|
|
205
219
|
- lib/gapic/helpers/filepath_helper.rb
|
|
206
220
|
- lib/gapic/helpers/namespace_helper.rb
|
|
221
|
+
- lib/gapic/model.rb
|
|
222
|
+
- lib/gapic/model/method/http_annotation.rb
|
|
223
|
+
- lib/gapic/model/method/lro.rb
|
|
224
|
+
- lib/gapic/model/method/routing.rb
|
|
225
|
+
- lib/gapic/model/mixins.rb
|
|
226
|
+
- lib/gapic/model/model_error.rb
|
|
227
|
+
- lib/gapic/model/service/nonstandard_lro_provider.rb
|
|
207
228
|
- lib/gapic/path_pattern.rb
|
|
208
229
|
- lib/gapic/path_pattern/parser.rb
|
|
209
230
|
- lib/gapic/path_pattern/pattern.rb
|
|
@@ -214,6 +235,7 @@ files:
|
|
|
214
235
|
- lib/gapic/presenters/field_presenter.rb
|
|
215
236
|
- lib/gapic/presenters/file_presenter.rb
|
|
216
237
|
- lib/gapic/presenters/gem_presenter.rb
|
|
238
|
+
- lib/gapic/presenters/grpc_service_config_presenter.rb
|
|
217
239
|
- lib/gapic/presenters/message_presenter.rb
|
|
218
240
|
- lib/gapic/presenters/method/rest_pagination_info.rb
|
|
219
241
|
- lib/gapic/presenters/method_presenter.rb
|
|
@@ -221,7 +243,7 @@ files:
|
|
|
221
243
|
- lib/gapic/presenters/package_presenter.rb
|
|
222
244
|
- lib/gapic/presenters/resource_presenter.rb
|
|
223
245
|
- lib/gapic/presenters/sample_presenter.rb
|
|
224
|
-
- lib/gapic/presenters/
|
|
246
|
+
- lib/gapic/presenters/service/lro_client_presenter.rb
|
|
225
247
|
- lib/gapic/presenters/service_presenter.rb
|
|
226
248
|
- lib/gapic/presenters/service_rest_presenter.rb
|
|
227
249
|
- lib/gapic/presenters/snippet_presenter.rb
|
|
@@ -234,19 +256,47 @@ files:
|
|
|
234
256
|
- lib/gapic/schema/parameter_schema.rb
|
|
235
257
|
- lib/gapic/schema/request_param_parser.rb
|
|
236
258
|
- lib/gapic/schema/request_parameter.rb
|
|
259
|
+
- lib/gapic/schema/service_config_parser.rb
|
|
237
260
|
- lib/gapic/schema/wrappers.rb
|
|
238
261
|
- lib/gapic/uri_template.rb
|
|
239
262
|
- lib/gapic/uri_template/parser.rb
|
|
240
263
|
- lib/google/api/annotations.pb.rb
|
|
264
|
+
- lib/google/api/auth.pb.rb
|
|
265
|
+
- lib/google/api/backend.pb.rb
|
|
266
|
+
- lib/google/api/billing.pb.rb
|
|
241
267
|
- lib/google/api/client.pb.rb
|
|
268
|
+
- lib/google/api/context.pb.rb
|
|
269
|
+
- lib/google/api/control.pb.rb
|
|
270
|
+
- lib/google/api/documentation.pb.rb
|
|
271
|
+
- lib/google/api/endpoint.pb.rb
|
|
242
272
|
- lib/google/api/field_behavior.pb.rb
|
|
243
273
|
- lib/google/api/http.pb.rb
|
|
274
|
+
- lib/google/api/label.pb.rb
|
|
275
|
+
- lib/google/api/launch_stage.pb.rb
|
|
276
|
+
- lib/google/api/log.pb.rb
|
|
277
|
+
- lib/google/api/logging.pb.rb
|
|
278
|
+
- lib/google/api/metric.pb.rb
|
|
279
|
+
- lib/google/api/monitored_resource.pb.rb
|
|
280
|
+
- lib/google/api/monitoring.pb.rb
|
|
281
|
+
- lib/google/api/quota.pb.rb
|
|
244
282
|
- lib/google/api/resource.pb.rb
|
|
283
|
+
- lib/google/api/routing.pb.rb
|
|
284
|
+
- lib/google/api/service.pb.rb
|
|
285
|
+
- lib/google/api/source_info.pb.rb
|
|
286
|
+
- lib/google/api/system_parameter.pb.rb
|
|
287
|
+
- lib/google/api/usage.pb.rb
|
|
288
|
+
- lib/google/cloud/extended_operations.pb.rb
|
|
245
289
|
- lib/google/longrunning/operations.pb.rb
|
|
246
290
|
- lib/google/protobuf/any.pb.rb
|
|
291
|
+
- lib/google/protobuf/api.pb.rb
|
|
247
292
|
- lib/google/protobuf/compiler/plugin.pb.rb
|
|
248
293
|
- lib/google/protobuf/descriptor.pb.rb
|
|
294
|
+
- lib/google/protobuf/duration.pb.rb
|
|
249
295
|
- lib/google/protobuf/empty.pb.rb
|
|
296
|
+
- lib/google/protobuf/source_context.pb.rb
|
|
297
|
+
- lib/google/protobuf/struct.pb.rb
|
|
298
|
+
- lib/google/protobuf/type.pb.rb
|
|
299
|
+
- lib/google/protobuf/wrappers.pb.rb
|
|
250
300
|
- lib/google/rpc/status.pb.rb
|
|
251
301
|
- templates/default/gem/_version.erb
|
|
252
302
|
- templates/default/gem/changelog.erb
|
|
@@ -281,6 +331,7 @@ files:
|
|
|
281
331
|
- templates/default/service/client/_client.erb
|
|
282
332
|
- templates/default/service/client/_config.erb
|
|
283
333
|
- templates/default/service/client/_credentials.erb
|
|
334
|
+
- templates/default/service/client/_nonstandard_lro.erb
|
|
284
335
|
- templates/default/service/client/_operations.erb
|
|
285
336
|
- templates/default/service/client/_paths.erb
|
|
286
337
|
- templates/default/service/client/_requires.erb
|
|
@@ -294,8 +345,10 @@ files:
|
|
|
294
345
|
- templates/default/service/client/method/def/_request_streaming.erb
|
|
295
346
|
- templates/default/service/client/method/def/_rescue.erb
|
|
296
347
|
- templates/default/service/client/method/def/_response.erb
|
|
348
|
+
- templates/default/service/client/method/def/_response_nonstandard_lro.erb
|
|
297
349
|
- templates/default/service/client/method/def/_response_normal.erb
|
|
298
350
|
- templates/default/service/client/method/def/_response_paged.erb
|
|
351
|
+
- templates/default/service/client/method/def/_routing_params.erb
|
|
299
352
|
- templates/default/service/client/method/docs/_deprecated.erb
|
|
300
353
|
- templates/default/service/client/method/docs/_error.erb
|
|
301
354
|
- templates/default/service/client/method/docs/_request.erb
|
|
@@ -319,6 +372,7 @@ files:
|
|
|
319
372
|
- templates/default/service/client/resource/_multi.erb
|
|
320
373
|
- templates/default/service/client/resource/_single.erb
|
|
321
374
|
- templates/default/service/credentials.erb
|
|
375
|
+
- templates/default/service/nonstandard_lro.erb
|
|
322
376
|
- templates/default/service/operations.erb
|
|
323
377
|
- templates/default/service/paths.erb
|
|
324
378
|
- templates/default/service/rest.erb
|
|
@@ -329,7 +383,7 @@ files:
|
|
|
329
383
|
- templates/default/service/rest/client/method/def/_options_defaults.erb
|
|
330
384
|
- templates/default/service/rest/client/method/def/_rescue.erb
|
|
331
385
|
- templates/default/service/rest/client/method/def/_response.erb
|
|
332
|
-
- templates/default/service/rest/client/method/def/
|
|
386
|
+
- templates/default/service/rest/client/method/def/_response_nonstandard_lro.erb
|
|
333
387
|
- templates/default/service/rest/client/method/def/_response_normal.erb
|
|
334
388
|
- templates/default/service/rest/client/method/def/_response_paged.erb
|
|
335
389
|
- templates/default/service/rest/client/method/docs/_error.erb
|