Skip to content

Commit 35cb45d

Browse files
authored
Do not dynamically define operation methods (#3235)
1 parent 47066d8 commit 35cb45d

25 files changed

+664
-314
lines changed

build_tools/aws-sdk-code-generator/lib/aws-sdk-code-generator.rb

+1
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@
8888
require_relative 'aws-sdk-code-generator/rbs/resource_batch_action'
8989
require_relative 'aws-sdk-code-generator/rbs/resource_client_request'
9090
require_relative 'aws-sdk-code-generator/rbs/waiter'
91+
require_relative 'aws-sdk-code-generator/views/rbs/async_client_class'
9192
require_relative 'aws-sdk-code-generator/views/rbs/client_class'
9293
require_relative 'aws-sdk-code-generator/views/rbs/errors_module'
9394
require_relative 'aws-sdk-code-generator/views/rbs/resource_class'

build_tools/aws-sdk-code-generator/lib/aws-sdk-code-generator/client_response_structure_example.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@ def structure(ref, context, visited)
3030
event_ctx = shape['members'].each.inject([]) do |ctx, (member_name, member_ref)|
3131
event_type = Underscore.underscore(member_name).to_sym
3232
event_types << event_type
33-
ctx << "For #{event_type.inspect} event available at #on_#{event_type}_event callback"\
33+
ctx << "# For #{event_type.inspect} event available at #on_#{event_type}_event callback"\
3434
' and response eventstream enumerator:'
3535
event_entry = entry(member_ref, 'event', Set.new).join("\n ")
3636
ctx << (event_entry.empty? ? ' #=> EmptyStruct' : event_entry + "\n")
3737
end
3838
# Add eventstream entry
3939
event_ctx.unshift("#{context}.event_types #=> #{event_types.inspect}\n")
4040
event_ctx.unshift("#{context} #=> Enumerator")
41-
event_ctx.unshift("All events are available at #{context}:")
41+
event_ctx.unshift("# All events are available at #{context}:")
4242
return event_ctx
4343
elsif shape['members']
4444
shape['members'].each_pair do |member_name, member_ref|

build_tools/aws-sdk-code-generator/lib/aws-sdk-code-generator/code_builder.rb

+40-13
Original file line numberDiff line numberDiff line change
@@ -114,19 +114,14 @@ def rbs_files(options = {})
114114
Enumerator.new do |y|
115115
prefix = options.fetch(:prefix, '')
116116
codegenerated_plugins = codegen_plugins(prefix)
117-
client_class = Views::RBS::ClientClass.new(
118-
service_name: @service.name,
119-
codegenerated_plugins: codegenerated_plugins,
120-
aws_sdk_core_lib_path: @aws_sdk_core_lib_path,
121-
legacy_endpoints: @service.legacy_endpoints?,
122-
signature_version: @service.signature_version,
123-
api: @service.api,
124-
waiters: @service.waiters,
125-
protocol: @service.protocol,
126-
add_plugins: @service.add_plugins,
127-
remove_plugins: @service.remove_plugins,
128-
)
117+
client_class = client_class_rbs(codegenerated_plugins)
129118
y.yield("#{prefix}/client.rbs", client_class.render)
119+
if @service.protocol_settings['h2']
120+
y.yield(
121+
"#{prefix}/async_client.rbs",
122+
async_client_class_rbs(codegenerated_plugins).render
123+
)
124+
end
130125
y.yield("#{prefix}/errors.rbs", Views::RBS::ErrorsModule.new(
131126
service: @service
132127
).render)
@@ -135,7 +130,7 @@ def rbs_files(options = {})
135130
client_class: client_class,
136131
api: @service.api,
137132
resources: @service.resources,
138-
paginators: @service.paginators,
133+
paginators: @service.paginators
139134
).render)
140135
y.yield("#{prefix}/waiters.rbs", Views::RBS::WaitersModule.new(
141136
service_name: @service.name,
@@ -206,6 +201,22 @@ def client_class(codegenerated_plugins)
206201
).render
207202
end
208203

204+
def client_class_rbs(codegenerated_plugins)
205+
Views::RBS::ClientClass.new(
206+
service_name: @service.name,
207+
codegenerated_plugins: codegenerated_plugins,
208+
aws_sdk_core_lib_path: @aws_sdk_core_lib_path,
209+
legacy_endpoints: @service.legacy_endpoints?,
210+
signature_version: @service.signature_version,
211+
api: @service.api,
212+
waiters: @service.waiters,
213+
protocol: @service.protocol,
214+
add_plugins: @service.add_plugins,
215+
remove_plugins: @service.remove_plugins,
216+
protocol_settings: @service.protocol_settings
217+
)
218+
end
219+
209220
def async_client_class(codegenerated_plugins)
210221
Views::AsyncClientClass.new(
211222
service_identifier: @service.identifier,
@@ -226,6 +237,22 @@ def async_client_class(codegenerated_plugins)
226237
).render
227238
end
228239

240+
def async_client_class_rbs(codegenerated_plugins)
241+
Views::RBS::AsyncClientClass.new(
242+
service_name: @service.name,
243+
codegenerated_plugins: codegenerated_plugins,
244+
aws_sdk_core_lib_path: @aws_sdk_core_lib_path,
245+
legacy_endpoints: @service.legacy_endpoints?,
246+
signature_version: @service.signature_version,
247+
api: @service.api,
248+
protocol: @service.protocol,
249+
add_plugins: @service.add_plugins,
250+
remove_plugins: @service.remove_plugins,
251+
protocol_settings: @service.protocol_settings,
252+
async_client: true
253+
)
254+
end
255+
229256
def errors_module
230257
Views::ErrorsModule.new(service: @service).render
231258
end

0 commit comments

Comments
 (0)