aws-sdk-code-generator 0.4.0.pre → 0.6.0.pre
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/aws-sdk-code-generator/api.rb +2 -1
- data/lib/aws-sdk-code-generator/client_constructor.rb +2 -1
- data/lib/aws-sdk-code-generator/client_operation_documentation.rb +2 -1
- data/lib/aws-sdk-code-generator/client_operation_list.rb +4 -0
- data/lib/aws-sdk-code-generator/code_builder.rb +54 -2
- data/lib/aws-sdk-code-generator/endpoint_parameter.rb +190 -0
- data/lib/aws-sdk-code-generator/eventstream_example.rb +34 -34
- data/lib/aws-sdk-code-generator/gem_builder.rb +3 -5
- data/lib/aws-sdk-code-generator/helper.rb +11 -1
- data/lib/aws-sdk-code-generator/plugin_list.rb +5 -2
- data/lib/aws-sdk-code-generator/rbs/error_list.rb +38 -0
- data/lib/aws-sdk-code-generator/rbs/keyword_argument_builder.rb +159 -0
- data/lib/aws-sdk-code-generator/rbs/method_signature.rb +11 -0
- data/lib/aws-sdk-code-generator/rbs/resource_action.rb +39 -0
- data/lib/aws-sdk-code-generator/rbs/resource_association.rb +50 -0
- data/lib/aws-sdk-code-generator/rbs/resource_batch_action.rb +59 -0
- data/lib/aws-sdk-code-generator/rbs/resource_client_request.rb +40 -0
- data/lib/aws-sdk-code-generator/rbs/waiter.rb +53 -0
- data/lib/aws-sdk-code-generator/rbs.rb +40 -0
- data/lib/aws-sdk-code-generator/resource_batch_action_code.rb +3 -1
- data/lib/aws-sdk-code-generator/resource_client_request.rb +3 -1
- data/lib/aws-sdk-code-generator/resource_waiter.rb +6 -5
- data/lib/aws-sdk-code-generator/service.rb +85 -16
- data/lib/aws-sdk-code-generator/views/async_client_class.rb +5 -1
- data/lib/aws-sdk-code-generator/views/client_api_module.rb +58 -16
- data/lib/aws-sdk-code-generator/views/client_class.rb +5 -1
- data/lib/aws-sdk-code-generator/views/endpoint_parameters_class.rb +6 -50
- data/lib/aws-sdk-code-generator/views/endpoint_provider_class.rb +9 -0
- data/lib/aws-sdk-code-generator/views/endpoints_module.rb +18 -124
- data/lib/aws-sdk-code-generator/views/endpoints_plugin.rb +46 -4
- data/lib/aws-sdk-code-generator/views/errors_module.rb +21 -0
- data/lib/aws-sdk-code-generator/views/event_streams_module.rb +7 -1
- data/lib/aws-sdk-code-generator/views/features/smoke.rb +100 -23
- data/lib/aws-sdk-code-generator/views/features/step_definitions.rb +1 -4
- data/lib/aws-sdk-code-generator/views/gemspec.rb +13 -3
- data/lib/aws-sdk-code-generator/views/rbs/client_class.rb +172 -0
- data/lib/aws-sdk-code-generator/views/rbs/errors_module.rb +28 -0
- data/lib/aws-sdk-code-generator/views/rbs/resource_class.rb +95 -0
- data/lib/aws-sdk-code-generator/views/rbs/root_resource_class.rb +30 -0
- data/lib/aws-sdk-code-generator/views/rbs/types_module.rb +257 -0
- data/lib/aws-sdk-code-generator/views/rbs/waiters_module.rb +22 -0
- data/lib/aws-sdk-code-generator/views/resource_class.rb +22 -0
- data/lib/aws-sdk-code-generator/views/root_resource_class.rb +19 -0
- data/lib/aws-sdk-code-generator/views/service_module.rb +41 -27
- data/lib/aws-sdk-code-generator/views/spec/endpoint_provider_spec_class.rb +25 -12
- data/lib/aws-sdk-code-generator/views/types_module.rb +34 -11
- data/lib/aws-sdk-code-generator.rb +29 -1
- data/templates/async_client_class.mustache +6 -1
- data/templates/client_api_module.mustache +14 -0
- data/templates/client_class.mustache +10 -47
- data/templates/endpoint_parameters_class.mustache +16 -13
- data/templates/endpoints_module.mustache +19 -11
- data/templates/endpoints_plugin.mustache +38 -20
- data/templates/errors_module.mustache +5 -0
- data/templates/features/smoke.mustache +11 -15
- data/templates/features/step_definitions.mustache +0 -5
- data/templates/gemspec.mustache +5 -2
- data/templates/rbs/client_class.mustache +39 -0
- data/templates/rbs/errors_module.mustache +17 -0
- data/templates/rbs/resource_class.mustache +71 -0
- data/templates/rbs/root_resource_class.mustache +26 -0
- data/templates/rbs/types_module.mustache +37 -0
- data/templates/rbs/waiters_module.mustache +17 -0
- data/templates/resource_class.mustache +8 -1
- data/templates/root_resource_class.mustache +5 -0
- data/templates/service_module.mustache +13 -3
- data/templates/spec/endpoint_provider_spec_class.mustache +11 -1
- data/templates/types_module.mustache +4 -0
- metadata +27 -7
- data/lib/aws-sdk-code-generator/views/features/smoke_step_definitions.rb +0 -26
- data/templates/features/smoke_step_definitions.mustache +0 -31
@@ -83,13 +83,18 @@ module {{module_name}}
|
|
83
83
|
# @api private
|
84
84
|
def build_request(operation_name, params = {})
|
85
85
|
handlers = @handlers.for(operation_name)
|
86
|
+
tracer = config.telemetry_provider.tracer_provider.tracer(
|
87
|
+
Aws::Telemetry.module_to_tracer_name('{{module_name}}')
|
88
|
+
)
|
86
89
|
context = Seahorse::Client::RequestContext.new(
|
87
90
|
operation_name: operation_name,
|
88
91
|
operation: config.api.operation(operation_name),
|
89
92
|
client: self,
|
90
93
|
params: params,
|
91
94
|
http_response: Seahorse::Client::Http::AsyncResponse.new,
|
92
|
-
config: config
|
95
|
+
config: config,
|
96
|
+
tracer: tracer
|
97
|
+
)
|
93
98
|
context[:gem_name] = '{{gem_name}}'
|
94
99
|
context[:gem_version] = '{{gem_version}}'
|
95
100
|
Seahorse::Client::Request.new(handlers, context)
|
@@ -3,6 +3,7 @@
|
|
3
3
|
{{#generated_src_warning}}
|
4
4
|
{{generated_src_warning}}
|
5
5
|
{{/generated_src_warning}}
|
6
|
+
|
6
7
|
module {{module_name}}
|
7
8
|
# @api private
|
8
9
|
module ClientApi
|
@@ -51,6 +52,13 @@ module {{module_name}}
|
|
51
52
|
{{/http_checksum}}
|
52
53
|
}
|
53
54
|
{{/http_checksum}}
|
55
|
+
{{#request_compression}}
|
56
|
+
o.request_compression = {
|
57
|
+
{{#request_compression}}
|
58
|
+
{{{key}}} => {{{value}}},
|
59
|
+
{{/request_compression}}
|
60
|
+
}
|
61
|
+
{{/request_compression}}
|
54
62
|
{{#deprecated}}
|
55
63
|
o.deprecated = true
|
56
64
|
{{/deprecated}}
|
@@ -70,6 +78,12 @@ module {{module_name}}
|
|
70
78
|
{{#authtype}}
|
71
79
|
o['authtype'] = "{{.}}"
|
72
80
|
{{/authtype}}
|
81
|
+
{{#unsigned_payload}}
|
82
|
+
o['unsignedPayload'] = true
|
83
|
+
{{/unsigned_payload}}
|
84
|
+
{{#auth}}
|
85
|
+
o['auth'] = {{&auth}}
|
86
|
+
{{/auth}}
|
73
87
|
{{#endpoint_trait}}
|
74
88
|
o.endpoint_pattern = {
|
75
89
|
{{#endpoint_pattern}}
|
@@ -7,8 +7,6 @@
|
|
7
7
|
require '{{.}}'
|
8
8
|
{{/plugin_requires}}
|
9
9
|
|
10
|
-
Aws::Plugins::GlobalConfiguration.add_identifier(:{{service_identifier}})
|
11
|
-
|
12
10
|
module {{module_name}}
|
13
11
|
# An API client for {{service_name}}. To construct a client, you need to configure a `:region` and `:credentials`.
|
14
12
|
#
|
@@ -37,52 +35,12 @@ module {{module_name}}
|
|
37
35
|
{{#client_constructor}}
|
38
36
|
# @overload initialize(options)
|
39
37
|
# @param [Hash] options
|
40
|
-
{{>documentation}}
|
41
|
-
# @option options [URI::HTTP,String] :http_proxy A proxy to send
|
42
|
-
# requests through. Formatted like 'http://proxy.com:123'.
|
43
|
-
#
|
44
|
-
# @option options [Float] :http_open_timeout (15) The number of
|
45
|
-
# seconds to wait when opening a HTTP session before raising a
|
46
|
-
# `Timeout::Error`.
|
47
|
-
#
|
48
|
-
# @option options [Float] :http_read_timeout (60) The default
|
49
|
-
# number of seconds to wait for response data. This value can
|
50
|
-
# safely be set per-request on the session.
|
51
|
-
#
|
52
|
-
# @option options [Float] :http_idle_timeout (5) The number of
|
53
|
-
# seconds a connection is allowed to sit idle before it is
|
54
|
-
# considered stale. Stale connections are closed and removed
|
55
|
-
# from the pool before making a request.
|
56
|
-
#
|
57
|
-
# @option options [Float] :http_continue_timeout (1) The number of
|
58
|
-
# seconds to wait for a 100-continue response before sending the
|
59
|
-
# request body. This option has no effect unless the request has
|
60
|
-
# "Expect" header set to "100-continue". Defaults to `nil` which
|
61
|
-
# disables this behaviour. This value can safely be set per
|
62
|
-
# request on the session.
|
63
38
|
#
|
64
|
-
# @option options [
|
65
|
-
#
|
66
|
-
#
|
67
|
-
# @option options [Boolean] :http_wire_trace (false) When `true`,
|
68
|
-
# HTTP debug output will be sent to the `:logger`.
|
69
|
-
#
|
70
|
-
# @option options [Boolean] :ssl_verify_peer (true) When `true`,
|
71
|
-
# SSL peer certificates are verified when establishing a
|
72
|
-
# connection.
|
73
|
-
#
|
74
|
-
# @option options [String] :ssl_ca_bundle Full path to the SSL
|
75
|
-
# certificate authority bundle file that should be used when
|
76
|
-
# verifying peer certificates. If you do not pass
|
77
|
-
# `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
|
78
|
-
# will be used if available.
|
79
|
-
#
|
80
|
-
# @option options [String] :ssl_ca_directory Full path of the
|
81
|
-
# directory that contains the unbundled SSL certificate
|
82
|
-
# authority files for verifying peer certificates. If you do
|
83
|
-
# not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
|
84
|
-
# system default will be used if available.
|
39
|
+
# @option options [Array<Seahorse::Client::Plugin>] :plugins ([]])
|
40
|
+
# A list of plugins to apply to the client. Each plugin is either a
|
41
|
+
# class name or an instance of a plugin class.
|
85
42
|
#
|
43
|
+
{{>documentation}}
|
86
44
|
{{/client_constructor}}
|
87
45
|
def initialize(*args)
|
88
46
|
super
|
@@ -139,13 +97,18 @@ module {{module_name}}
|
|
139
97
|
end
|
140
98
|
end
|
141
99
|
{{/authorizer?}}
|
100
|
+
tracer = config.telemetry_provider.tracer_provider.tracer(
|
101
|
+
Aws::Telemetry.module_to_tracer_name('{{module_name}}')
|
102
|
+
)
|
142
103
|
context = Seahorse::Client::RequestContext.new(
|
143
104
|
operation_name: operation_name,
|
144
105
|
operation: config.api.operation(operation_name),{{#authorizer?}}
|
145
106
|
authorizer: authorizer,{{/authorizer?}}
|
146
107
|
client: self,
|
147
108
|
params: params,
|
148
|
-
config: config
|
109
|
+
config: config,
|
110
|
+
tracer: tracer
|
111
|
+
)
|
149
112
|
context[:gem_name] = '{{gem_name}}'
|
150
113
|
context[:gem_version] = '{{gem_version}}'
|
151
114
|
Seahorse::Client::Request.new(handlers, context)
|
@@ -11,7 +11,7 @@ module {{module_name}}
|
|
11
11
|
{{/parameters}}
|
12
12
|
EndpointParameters = Struct.new(
|
13
13
|
{{#parameters}}
|
14
|
-
:{{
|
14
|
+
:{{key}},
|
15
15
|
{{/parameters}}
|
16
16
|
{{^parameters}}
|
17
17
|
nil
|
@@ -23,28 +23,31 @@ module {{module_name}}
|
|
23
23
|
class << self
|
24
24
|
PARAM_MAP = {
|
25
25
|
{{#parameters}}
|
26
|
-
'{{name}}' => :{{
|
26
|
+
'{{name}}' => :{{key}},
|
27
27
|
{{/parameters}}
|
28
28
|
}.freeze
|
29
29
|
end
|
30
30
|
|
31
31
|
def initialize(options = {})
|
32
32
|
{{#parameters}}
|
33
|
-
self[:{{
|
33
|
+
self[:{{key}}] = options[:{{key}}]
|
34
34
|
{{#default?}}
|
35
|
-
{{
|
36
|
-
self[:{{underscore_name}}] = {{default}} if self[:{{underscore_name}}].nil?
|
37
|
-
{{/boolean_default?}}
|
38
|
-
{{^boolean_default?}}
|
39
|
-
self[:{{underscore_name}}] ||= '{{default}}' if self[:{{underscore_name}}].nil?
|
40
|
-
{{/boolean_default?}}
|
35
|
+
self[:{{key}}] = {{{default}}} if self[:{{key}}].nil?
|
41
36
|
{{/default?}}
|
42
|
-
{{#
|
43
|
-
if self[:{{
|
44
|
-
raise ArgumentError, "Missing required EndpointParameter: :{{
|
37
|
+
{{#validate_required?}}
|
38
|
+
if self[:{{key}}].nil?
|
39
|
+
raise ArgumentError, "Missing required EndpointParameter: :{{key}}"
|
45
40
|
end
|
46
|
-
{{/
|
41
|
+
{{/validate_required?}}
|
47
42
|
{{/parameters}}
|
48
43
|
end
|
44
|
+
|
45
|
+
def self.create(config, options={})
|
46
|
+
new({
|
47
|
+
{{#config_parameters}}
|
48
|
+
{{key}}: {{{value}}},
|
49
|
+
{{/config_parameters}}
|
50
|
+
}.merge(options))
|
51
|
+
end
|
49
52
|
end
|
50
53
|
end
|
@@ -5,29 +5,37 @@
|
|
5
5
|
{{/generated_src_warning}}
|
6
6
|
|
7
7
|
module {{module_name}}
|
8
|
+
# @api private
|
8
9
|
module Endpoints
|
9
10
|
|
10
11
|
{{#endpoint_classes}}
|
11
12
|
class {{name}}
|
12
13
|
def self.build(context)
|
13
|
-
{{
|
14
|
-
|
15
|
-
endpoint = context.config.endpoint.to_s
|
16
|
-
end
|
17
|
-
{{/has_endpoint_built_in?}}
|
18
|
-
{{module_name}}::EndpointParameters.new(
|
14
|
+
{{module_name}}::EndpointParameters.create(
|
15
|
+
context.config,
|
19
16
|
{{#parameters}}
|
20
|
-
{{#static_string?}}
|
21
|
-
{{key}}: "{{{value}}}",
|
22
|
-
{{/static_string?}}
|
23
|
-
{{^static_string?}}
|
24
17
|
{{key}}: {{{value}}},
|
25
|
-
{{/static_string?}}
|
26
18
|
{{/parameters}}
|
27
19
|
)
|
28
20
|
end
|
29
21
|
end
|
30
22
|
|
31
23
|
{{/endpoint_classes}}
|
24
|
+
|
25
|
+
def self.parameters_for_operation(context)
|
26
|
+
{{#operation_specific_parameters?}}
|
27
|
+
{{module_name}}::EndpointParameters.create(context.config)
|
28
|
+
{{/operation_specific_parameters?}}
|
29
|
+
{{^operation_specific_parameters?}}
|
30
|
+
case context.operation_name
|
31
|
+
{{#endpoint_classes}}
|
32
|
+
when :{{operation}}
|
33
|
+
{{name}}.build(context)
|
34
|
+
{{/endpoint_classes}}
|
35
|
+
else
|
36
|
+
{{module_name}}::EndpointParameters.create(context.config)
|
37
|
+
end
|
38
|
+
{{/operation_specific_parameters?}}
|
39
|
+
end
|
32
40
|
end
|
33
41
|
end
|
@@ -10,11 +10,12 @@ module {{module_name}}
|
|
10
10
|
option(
|
11
11
|
:endpoint_provider,
|
12
12
|
doc_type: '{{module_name}}::EndpointProvider',
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
13
|
+
rbs_type: 'untyped',
|
14
|
+
docstring: <<~DOCS) do |_cfg|
|
15
|
+
The endpoint provider used to resolve endpoints. Any object that responds to
|
16
|
+
`#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
|
17
|
+
`{{module_name}}::EndpointParameters`.
|
18
|
+
DOCS
|
18
19
|
{{module_name}}::EndpointProvider.new
|
19
20
|
end
|
20
21
|
|
@@ -22,31 +23,57 @@ module {{module_name}}
|
|
22
23
|
option(
|
23
24
|
:{{name}},
|
24
25
|
doc_type: '{{doc_type}}',
|
25
|
-
|
26
|
-
|
26
|
+
docstring: <<~DOCS) do |cfg|
|
27
|
+
{{{docstring}}}
|
28
|
+
DOCS
|
29
|
+
{{{default}}}
|
30
|
+
end
|
27
31
|
|
28
32
|
{{/endpoint_options}}
|
29
33
|
# @api private
|
30
34
|
class Handler < Seahorse::Client::Handler
|
31
35
|
def call(context)
|
32
|
-
# If endpoint was discovered, do not resolve or apply the endpoint.
|
33
36
|
unless context[:discovered_endpoint]
|
34
|
-
params = parameters_for_operation(context)
|
37
|
+
params = {{module_name}}::Endpoints.parameters_for_operation(context)
|
35
38
|
endpoint = context.config.endpoint_provider.resolve_endpoint(params)
|
36
39
|
|
37
40
|
context.http_request.endpoint = endpoint.url
|
38
41
|
apply_endpoint_headers(context, endpoint.headers)
|
42
|
+
|
43
|
+
context[:endpoint_params] = params
|
44
|
+
context[:endpoint_properties] = endpoint.properties
|
39
45
|
end
|
40
46
|
|
41
|
-
context[:endpoint_params] = params
|
42
47
|
context[:auth_scheme] =
|
43
48
|
Aws::Endpoints.resolve_auth_scheme(context, endpoint)
|
44
49
|
|
45
|
-
@handler.call(context)
|
50
|
+
with_metrics(context) { @handler.call(context) }
|
46
51
|
end
|
47
52
|
|
48
53
|
private
|
49
54
|
|
55
|
+
def with_metrics(context, &block)
|
56
|
+
metrics = []
|
57
|
+
metrics << 'ENDPOINT_OVERRIDE' unless context.config.regional_endpoint
|
58
|
+
if context[:auth_scheme] && context[:auth_scheme]['name'] == 'sigv4a'
|
59
|
+
metrics << 'SIGV4A_SIGNING'
|
60
|
+
end
|
61
|
+
{{#has_account_id_endpoint_mode?}}
|
62
|
+
case context.config.account_id_endpoint_mode
|
63
|
+
when 'preferred'
|
64
|
+
metrics << 'ACCOUNT_ID_MODE_PREFERRED'
|
65
|
+
when 'disabled'
|
66
|
+
metrics << 'ACCOUNT_ID_MODE_DISABLED'
|
67
|
+
when 'required'
|
68
|
+
metrics << 'ACCOUNT_ID_MODE_REQUIRED'
|
69
|
+
end
|
70
|
+
{{/has_account_id_endpoint_mode?}}
|
71
|
+
if context.config.credentials&.credentials&.account_id
|
72
|
+
metrics << 'RESOLVED_ACCOUNT_ID'
|
73
|
+
end
|
74
|
+
Aws::Plugins::UserAgent.metric(*metrics, &block)
|
75
|
+
end
|
76
|
+
|
50
77
|
def apply_endpoint_headers(context, headers)
|
51
78
|
headers.each do |key, values|
|
52
79
|
value = values
|
@@ -57,15 +84,6 @@ module {{module_name}}
|
|
57
84
|
context.http_request.headers[key] = value
|
58
85
|
end
|
59
86
|
end
|
60
|
-
|
61
|
-
def parameters_for_operation(context)
|
62
|
-
case context.operation_name
|
63
|
-
{{#endpoint_classes}}
|
64
|
-
when :{{operation_name}}
|
65
|
-
{{module_name}}::Endpoints::{{class_name}}.build(context)
|
66
|
-
{{/endpoint_classes}}
|
67
|
-
end
|
68
|
-
end
|
69
87
|
end
|
70
88
|
|
71
89
|
def add_handlers(handlers, _config)
|
@@ -1,22 +1,18 @@
|
|
1
1
|
{{#generated_src_warning}}
|
2
2
|
{{generated_src_warning}}
|
3
3
|
{{/generated_src_warning}}
|
4
|
-
Feature: Smoke tests for {{
|
5
|
-
|
6
|
-
Background:
|
7
|
-
{{#client_endpoint}}
|
8
|
-
Given I create a client with endpoint '{{client_endpoint}}'
|
9
|
-
{{/client_endpoint}}
|
10
|
-
{{^client_endpoint}}
|
11
|
-
Given I create a client in region '{{client_region}}'
|
12
|
-
{{/client_endpoint}}
|
4
|
+
Feature: Smoke tests for {{service_name}}
|
13
5
|
{{#smoke_tests}}
|
14
6
|
|
15
|
-
{{
|
16
|
-
Scenario: {{
|
17
|
-
|
18
|
-
|
7
|
+
{{tags}}
|
8
|
+
Scenario: {{id}}
|
9
|
+
Given I create a '{{service_module}}' client with config:
|
10
|
+
"""
|
11
|
+
{{&config_hash}}
|
12
|
+
"""
|
13
|
+
When I call the operation '{{operation_name}}' with params:
|
14
|
+
"""
|
19
15
|
{{¶m_hash}}
|
20
|
-
|
21
|
-
|
16
|
+
"""
|
17
|
+
Then {{&expectation}}
|
22
18
|
{{/smoke_tests}}
|
@@ -1,10 +1,5 @@
|
|
1
1
|
Before("@{{var_name}}") do
|
2
|
-
{{#client_endpoint}}
|
3
|
-
@service = {{module_name}}::Resource.new(endpoint: '{{client_endpoint}}')
|
4
|
-
{{/client_endpoint}}
|
5
|
-
{{^client_endpoint}}
|
6
2
|
@service = {{module_name}}::Resource.new
|
7
|
-
{{/client_endpoint}}
|
8
3
|
@client = @service.client
|
9
4
|
end
|
10
5
|
|
data/templates/gemspec.mustache
CHANGED
@@ -24,8 +24,11 @@ Gem::Specification.new do |spec|
|
|
24
24
|
|
25
25
|
{{/metadata}}
|
26
26
|
{{#dependencies}}
|
27
|
-
spec.add_dependency(
|
27
|
+
spec.add_dependency({{{gem_version}}})
|
28
28
|
{{/dependencies}}
|
29
29
|
|
30
|
-
spec.required_ruby_version = '>= 2.
|
30
|
+
spec.required_ruby_version = '>= 2.5'
|
31
|
+
{{#deprecated?}}
|
32
|
+
spec.post_install_message = '*** {{gem_name}} is deprecated ***'
|
33
|
+
{{/deprecated?}}
|
31
34
|
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
{{generated_src_warning}}
|
2
|
+
module Aws
|
3
|
+
module {{service_name}}
|
4
|
+
class Client < ::Seahorse::Client::Base
|
5
|
+
include ::Aws::ClientStubs
|
6
|
+
|
7
|
+
# https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/{{service_name}}/Client.html#initialize-instance_method
|
8
|
+
def self.new: ({{{client_option}}}) -> instance
|
9
|
+
| (?Hash[Symbol, untyped]) -> instance
|
10
|
+
|
11
|
+
{{#operations}}
|
12
|
+
|
13
|
+
{{^empty_structure}}
|
14
|
+
interface {{interface}}
|
15
|
+
include ::Seahorse::Client::_ResponseSuccess[{{data}}]
|
16
|
+
{{#returns_members}}
|
17
|
+
def {{method_name}}: () -> {{{returns}}}
|
18
|
+
{{/returns_members}}
|
19
|
+
end
|
20
|
+
{{/empty_structure}}
|
21
|
+
# https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/{{service_name}}/Client.html#{{method_name}}-instance_method
|
22
|
+
{{{signature}}}
|
23
|
+
{{/operations}}
|
24
|
+
{{#waiters?}}
|
25
|
+
|
26
|
+
{{#waiters_first}}
|
27
|
+
# https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/{{service_name}}/Client.html#wait_until-instance_method
|
28
|
+
def wait_until: {{{client_overload_keyword_argument}}}
|
29
|
+
| {{{client_overload_positional_argument}}}
|
30
|
+
{{/waiters_first}}
|
31
|
+
{{#waiters_others}}
|
32
|
+
| {{{client_overload_keyword_argument}}}
|
33
|
+
| {{{client_overload_positional_argument}}}
|
34
|
+
{{/waiters_others}}
|
35
|
+
{{/waiters?}}
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
@@ -0,0 +1,17 @@
|
|
1
|
+
{{generated_src_warning}}
|
2
|
+
module Aws
|
3
|
+
module {{service_name}}
|
4
|
+
module Errors
|
5
|
+
class ServiceError < ::Aws::Errors::ServiceError
|
6
|
+
end
|
7
|
+
|
8
|
+
{{#errors}}
|
9
|
+
class {{name}} < ::Aws::Errors::ServiceError
|
10
|
+
{{#members}}
|
11
|
+
{{{signature}}}
|
12
|
+
{{/members}}
|
13
|
+
end
|
14
|
+
{{/errors}}
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
{{generated_src_warning}}
|
2
|
+
module Aws
|
3
|
+
module {{service_name}}
|
4
|
+
# https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/{{service_name}}/{{class_name}}.html
|
5
|
+
class {{class_name}}
|
6
|
+
# https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/{{service_name}}/{{class_name}}.html#initialize-instance_method
|
7
|
+
{{{initialize_signature}}}
|
8
|
+
{{#identifiers}}
|
9
|
+
|
10
|
+
# https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/{{service_name}}/{{class_name}}.html#{{name}}-instance_method
|
11
|
+
def {{name}}: () -> {{type}}
|
12
|
+
{{#alias}}
|
13
|
+
alias {{alias}} {{name}}
|
14
|
+
{{/alias}}
|
15
|
+
{{/identifiers}}
|
16
|
+
{{#data_attributes}}
|
17
|
+
|
18
|
+
# https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/{{service_name}}/{{class_name}}.html#{{method_name}}-instance_method
|
19
|
+
{{{signature}}}
|
20
|
+
{{/data_attributes}}
|
21
|
+
|
22
|
+
def client: () -> Client
|
23
|
+
|
24
|
+
{{#load?}}
|
25
|
+
# https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/{{service_name}}/{{class_name}}.html#load-instance_method
|
26
|
+
def load: () -> self
|
27
|
+
alias reload load
|
28
|
+
{{/load?}}
|
29
|
+
|
30
|
+
{{#load_or_shape?}}
|
31
|
+
# https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/{{service_name}}/{{class_name}}.html#data-instance_method
|
32
|
+
def data: () -> Types::{{shape}}
|
33
|
+
{{/load_or_shape?}}
|
34
|
+
{{^load_or_shape?}}
|
35
|
+
# https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/{{service_name}}/{{class_name}}.html#data-instance_method
|
36
|
+
def data: () -> EmptyStructure
|
37
|
+
{{/load_or_shape?}}
|
38
|
+
|
39
|
+
# https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/{{service_name}}/{{class_name}}.html#data_loaded?-instance_method
|
40
|
+
def data_loaded?: () -> bool
|
41
|
+
|
42
|
+
{{#exists_waiters}}
|
43
|
+
# https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/{{service_name}}/{{class_name}}.html#exists?-instance_method
|
44
|
+
def exists?: (?max_attempts: Integer, ?delay: Numeric, ?before_attempt: (^(Integer attempts) -> void), ?before_wait: (^(Integer attempts, untyped response) -> void)) -> bool
|
45
|
+
| (?Hash[Symbol, untyped]) -> bool
|
46
|
+
{{/exists_waiters}}
|
47
|
+
{{#waiters}}
|
48
|
+
|
49
|
+
# https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/{{service_name}}/{{class_name}}.html#{{method_name}}-instance_method
|
50
|
+
{{{signature}}}
|
51
|
+
{{/waiters}}
|
52
|
+
{{#actions}}
|
53
|
+
|
54
|
+
# https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/{{service_name}}/{{class_name}}.html#{{method_name}}-instance_method
|
55
|
+
{{{signature}}}
|
56
|
+
{{/actions}}
|
57
|
+
{{#associations}}
|
58
|
+
|
59
|
+
# https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/{{service_name}}/{{class_name}}.html#{{method_name}}-instance_method
|
60
|
+
{{{signature}}}
|
61
|
+
{{/associations}}
|
62
|
+
|
63
|
+
class Collection < ::Aws::Resources::Collection[{{class_name}}]
|
64
|
+
{{#batch_actions}}
|
65
|
+
|
66
|
+
{{{signature}}}
|
67
|
+
{{/batch_actions}}
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
{{generated_src_warning}}
|
2
|
+
module Aws
|
3
|
+
module {{service_name}}
|
4
|
+
# https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/{{service_name}}/Resource.html
|
5
|
+
class Resource
|
6
|
+
# https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/{{service_name}}/Resource.html#initialize-instance_method
|
7
|
+
def initialize: (
|
8
|
+
?client: Client,{{{client_option}}}) -> void
|
9
|
+
| (?Hash[Symbol, untyped]) -> void
|
10
|
+
|
11
|
+
def client: () -> Client
|
12
|
+
|
13
|
+
{{#actions}}
|
14
|
+
|
15
|
+
# https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/{{service_name}}/Resource.html#{{method_name}}-instance_method
|
16
|
+
{{{signature}}}
|
17
|
+
{{/actions}}
|
18
|
+
|
19
|
+
{{#associations}}
|
20
|
+
|
21
|
+
# https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/{{service_name}}/Resource.html#{{method_name}}-instance_method
|
22
|
+
{{{signature}}}
|
23
|
+
{{/associations}}
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
{{#generated_src_warning}}
|
2
|
+
{{generated_src_warning}}
|
3
|
+
{{/generated_src_warning}}
|
4
|
+
module {{module_name}}
|
5
|
+
module Types
|
6
|
+
{{#structures}}
|
7
|
+
|
8
|
+
{{> documentation}}
|
9
|
+
{{#empty?}}
|
10
|
+
class {{class_name}} < Aws::EmptyStructure
|
11
|
+
end
|
12
|
+
{{/empty?}}
|
13
|
+
{{^empty?}}
|
14
|
+
class {{class_name}}
|
15
|
+
{{#members}}
|
16
|
+
attr_accessor {{member_name}}: {{{returns}}}
|
17
|
+
{{/members}}
|
18
|
+
SENSITIVE: {{sensitive_params}}
|
19
|
+
{{#union?}}
|
20
|
+
|
21
|
+
{{#members}}
|
22
|
+
class {{member_class_name}} < {{class_name}}
|
23
|
+
end
|
24
|
+
{{/members}}
|
25
|
+
{{/union?}}
|
26
|
+
end
|
27
|
+
{{/empty?}}
|
28
|
+
{{/structures}}
|
29
|
+
{{#eventstreams}}
|
30
|
+
|
31
|
+
{{> documentation}}
|
32
|
+
class {{class_name}} < Enumerator[untyped, untyped]
|
33
|
+
def event_types: () -> {{#empty?}}[]{{/empty?}}{{^empty?}}[{{#types}}:{{member_name}}{{^last}}, {{/last}}{{/types}}]{{/empty?}}
|
34
|
+
end
|
35
|
+
{{/eventstreams}}
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
{{generated_src_warning}}
|
2
|
+
module Aws
|
3
|
+
module {{service_name}}
|
4
|
+
module Waiters
|
5
|
+
{{#waiters}}
|
6
|
+
|
7
|
+
class {{class_name}}
|
8
|
+
def initialize: (?client: Client, ?max_attempts: Integer, ?delay: Integer, ?before_attempt: Proc, ?before_wait: Proc) -> void
|
9
|
+
| (?Hash[Symbol, untyped]) -> void
|
10
|
+
|
11
|
+
def wait: {{{waiter_overload_keyword_argument}}}
|
12
|
+
| {{{waiter_overload_positional_argument}}}
|
13
|
+
end
|
14
|
+
{{/waiters}}
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -213,7 +213,9 @@ module {{module_name}}
|
|
213
213
|
:retry
|
214
214
|
end
|
215
215
|
end
|
216
|
-
Aws::
|
216
|
+
Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
217
|
+
Aws::Waiters::Waiter.new(options).wait({})
|
218
|
+
end
|
217
219
|
end
|
218
220
|
{{/wait_until}}
|
219
221
|
{{#actions?}}
|
@@ -302,3 +304,8 @@ module {{module_name}}
|
|
302
304
|
{{/batch_actions?}}
|
303
305
|
end
|
304
306
|
end
|
307
|
+
{{#customization_file_exists?}}
|
308
|
+
|
309
|
+
# Load customizations if they exist
|
310
|
+
require '{{resource_customization}}'
|
311
|
+
{{/customization_file_exists?}}
|