aws-sdk-core 3.185.1 → 3.214.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 +409 -0
- data/VERSION +1 -1
- data/lib/aws-defaults/default_configuration.rb +1 -2
- data/lib/aws-defaults.rb +4 -1
- data/lib/aws-sdk-core/assume_role_credentials.rb +12 -5
- data/lib/aws-sdk-core/assume_role_web_identity_credentials.rb +13 -7
- data/lib/aws-sdk-core/binary/decode_handler.rb +3 -9
- data/lib/aws-sdk-core/binary/encode_handler.rb +1 -1
- data/lib/aws-sdk-core/binary/event_builder.rb +34 -37
- data/lib/aws-sdk-core/binary/event_stream_decoder.rb +1 -0
- data/lib/aws-sdk-core/binary/event_stream_encoder.rb +4 -3
- data/lib/aws-sdk-core/cbor/decoder.rb +310 -0
- data/lib/aws-sdk-core/cbor/encoder.rb +243 -0
- data/lib/aws-sdk-core/cbor.rb +53 -0
- data/lib/aws-sdk-core/client_side_monitoring.rb +9 -0
- data/lib/aws-sdk-core/client_stubs.rb +23 -19
- data/lib/aws-sdk-core/credential_provider.rb +1 -1
- data/lib/aws-sdk-core/credential_provider_chain.rb +13 -6
- data/lib/aws-sdk-core/credentials.rb +13 -6
- data/lib/aws-sdk-core/ec2_metadata.rb +1 -1
- data/lib/aws-sdk-core/ecs_credentials.rb +78 -11
- data/lib/aws-sdk-core/endpoints/endpoint.rb +3 -1
- data/lib/aws-sdk-core/endpoints/matchers.rb +6 -9
- data/lib/aws-sdk-core/endpoints.rb +74 -18
- data/lib/aws-sdk-core/error_handler.rb +41 -0
- data/lib/aws-sdk-core/errors.rb +11 -2
- data/lib/aws-sdk-core/event_emitter.rb +0 -16
- data/lib/aws-sdk-core/instance_profile_credentials.rb +55 -32
- data/lib/aws-sdk-core/json/builder.rb +8 -1
- data/lib/aws-sdk-core/json/error_handler.rb +17 -11
- data/lib/aws-sdk-core/json/handler.rb +13 -6
- data/lib/aws-sdk-core/json/json_engine.rb +3 -1
- data/lib/aws-sdk-core/json/oj_engine.rb +7 -1
- data/lib/aws-sdk-core/json/parser.rb +32 -2
- data/lib/aws-sdk-core/json.rb +43 -14
- data/lib/aws-sdk-core/log/param_filter.rb +2 -2
- data/lib/aws-sdk-core/log.rb +10 -0
- data/lib/aws-sdk-core/lru_cache.rb +75 -0
- data/lib/aws-sdk-core/pageable_response.rb +1 -1
- data/lib/aws-sdk-core/param_validator.rb +7 -2
- data/lib/aws-sdk-core/plugins/bearer_authorization.rb +2 -0
- data/lib/aws-sdk-core/plugins/checksum_algorithm.rb +6 -3
- data/lib/aws-sdk-core/plugins/client_metrics_plugin.rb +1 -0
- data/lib/aws-sdk-core/plugins/client_metrics_send_plugin.rb +14 -2
- data/lib/aws-sdk-core/plugins/credentials_configuration.rb +9 -3
- data/lib/aws-sdk-core/plugins/global_configuration.rb +8 -9
- data/lib/aws-sdk-core/plugins/http_checksum.rb +2 -1
- data/lib/aws-sdk-core/plugins/invocation_id.rb +1 -11
- data/lib/aws-sdk-core/plugins/logging.rb +2 -0
- data/lib/aws-sdk-core/plugins/protocols/api_gateway.rb +3 -1
- data/lib/aws-sdk-core/plugins/protocols/ec2.rb +2 -24
- data/lib/aws-sdk-core/plugins/protocols/json_rpc.rb +6 -8
- data/lib/aws-sdk-core/plugins/protocols/query.rb +4 -2
- data/lib/aws-sdk-core/plugins/protocols/rest_json.rb +3 -15
- data/lib/aws-sdk-core/plugins/protocols/rest_xml.rb +3 -0
- data/lib/aws-sdk-core/plugins/protocols/rpc_v2.rb +17 -0
- data/lib/aws-sdk-core/plugins/regional_endpoint.rb +74 -25
- data/lib/aws-sdk-core/plugins/request_compression.rb +11 -2
- data/lib/aws-sdk-core/plugins/retry_errors.rb +12 -3
- data/lib/aws-sdk-core/plugins/sign.rb +27 -15
- data/lib/aws-sdk-core/plugins/signature_v2.rb +2 -1
- data/lib/aws-sdk-core/plugins/signature_v4.rb +2 -1
- data/lib/aws-sdk-core/plugins/stub_responses.rb +30 -2
- data/lib/aws-sdk-core/plugins/telemetry.rb +75 -0
- data/lib/aws-sdk-core/plugins/transfer_encoding.rb +16 -9
- data/lib/aws-sdk-core/plugins/user_agent.rb +70 -26
- data/lib/aws-sdk-core/plugins.rb +39 -0
- data/lib/aws-sdk-core/process_credentials.rb +47 -28
- data/lib/aws-sdk-core/query/ec2_handler.rb +27 -0
- data/lib/aws-sdk-core/query/ec2_param_builder.rb +5 -7
- data/lib/aws-sdk-core/query/handler.rb +4 -4
- data/lib/aws-sdk-core/query/param_builder.rb +2 -2
- data/lib/aws-sdk-core/query.rb +2 -1
- data/lib/aws-sdk-core/refreshing_credentials.rb +12 -6
- data/lib/aws-sdk-core/resources.rb +8 -0
- data/lib/aws-sdk-core/rest/content_type_handler.rb +60 -0
- data/lib/aws-sdk-core/rest/handler.rb +3 -4
- data/lib/aws-sdk-core/rest/request/body.rb +32 -5
- data/lib/aws-sdk-core/rest/request/endpoint.rb +24 -4
- data/lib/aws-sdk-core/rest/request/headers.rb +14 -6
- data/lib/aws-sdk-core/rest/request/querystring_builder.rb +62 -36
- data/lib/aws-sdk-core/rest/response/body.rb +15 -1
- data/lib/aws-sdk-core/rest/response/header_list_parser.rb +79 -0
- data/lib/aws-sdk-core/rest/response/headers.rb +8 -3
- data/lib/aws-sdk-core/rest.rb +1 -0
- data/lib/aws-sdk-core/rpc_v2/builder.rb +62 -0
- data/lib/aws-sdk-core/rpc_v2/cbor_engine.rb +18 -0
- data/lib/aws-sdk-core/rpc_v2/content_type_handler.rb +47 -0
- data/lib/aws-sdk-core/rpc_v2/error_handler.rb +85 -0
- data/lib/aws-sdk-core/rpc_v2/handler.rb +79 -0
- data/lib/aws-sdk-core/rpc_v2/parser.rb +90 -0
- data/lib/aws-sdk-core/rpc_v2.rb +69 -0
- data/lib/aws-sdk-core/shared_config.rb +7 -2
- data/lib/aws-sdk-core/shared_credentials.rb +0 -7
- data/lib/aws-sdk-core/sso_credentials.rb +2 -1
- data/lib/aws-sdk-core/stubbing/protocols/ec2.rb +12 -11
- data/lib/aws-sdk-core/stubbing/protocols/json.rb +11 -10
- data/lib/aws-sdk-core/stubbing/protocols/query.rb +7 -6
- data/lib/aws-sdk-core/stubbing/protocols/rest.rb +2 -1
- data/lib/aws-sdk-core/stubbing/protocols/rest_json.rb +9 -8
- data/lib/aws-sdk-core/stubbing/protocols/rest_xml.rb +6 -5
- data/lib/aws-sdk-core/stubbing/protocols/rpc_v2.rb +39 -0
- data/lib/aws-sdk-core/stubbing.rb +22 -0
- data/lib/aws-sdk-core/telemetry/base.rb +177 -0
- data/lib/aws-sdk-core/telemetry/no_op.rb +70 -0
- data/lib/aws-sdk-core/telemetry/otel.rb +235 -0
- data/lib/aws-sdk-core/telemetry/span_kind.rb +22 -0
- data/lib/aws-sdk-core/telemetry/span_status.rb +59 -0
- data/lib/aws-sdk-core/telemetry.rb +78 -0
- data/lib/aws-sdk-core/util.rb +39 -0
- data/lib/aws-sdk-core/waiters/poller.rb +10 -5
- data/lib/aws-sdk-core/xml/builder.rb +17 -9
- data/lib/aws-sdk-core/xml/error_handler.rb +32 -42
- data/lib/aws-sdk-core/xml/parser/frame.rb +4 -20
- data/lib/aws-sdk-core/xml/parser/stack.rb +2 -0
- data/lib/aws-sdk-core/xml/parser.rb +2 -6
- data/lib/aws-sdk-core.rb +82 -107
- data/lib/aws-sdk-sso/client.rb +119 -55
- data/lib/aws-sdk-sso/client_api.rb +7 -0
- data/lib/aws-sdk-sso/endpoint_parameters.rb +9 -6
- data/lib/aws-sdk-sso/endpoints.rb +2 -54
- data/lib/aws-sdk-sso/plugins/endpoints.rb +23 -22
- data/lib/aws-sdk-sso/types.rb +1 -0
- data/lib/aws-sdk-sso.rb +15 -11
- data/lib/aws-sdk-ssooidc/client.rb +504 -83
- data/lib/aws-sdk-ssooidc/client_api.rb +83 -1
- data/lib/aws-sdk-ssooidc/endpoint_parameters.rb +9 -6
- data/lib/aws-sdk-ssooidc/endpoint_provider.rb +2 -2
- data/lib/aws-sdk-ssooidc/endpoints.rb +2 -40
- data/lib/aws-sdk-ssooidc/errors.rb +52 -0
- data/lib/aws-sdk-ssooidc/plugins/endpoints.rb +23 -20
- data/lib/aws-sdk-ssooidc/types.rb +373 -51
- data/lib/aws-sdk-ssooidc.rb +15 -11
- data/lib/aws-sdk-sts/client.rb +334 -105
- data/lib/aws-sdk-sts/client_api.rb +36 -10
- data/lib/aws-sdk-sts/customizations.rb +5 -1
- data/lib/aws-sdk-sts/endpoint_parameters.rb +10 -9
- data/lib/aws-sdk-sts/endpoint_provider.rb +2 -2
- data/lib/aws-sdk-sts/endpoints.rb +2 -118
- data/lib/aws-sdk-sts/plugins/endpoints.rb +23 -30
- data/lib/aws-sdk-sts/presigner.rb +1 -1
- data/lib/aws-sdk-sts/types.rb +188 -30
- data/lib/aws-sdk-sts.rb +15 -11
- data/lib/seahorse/client/async_base.rb +1 -1
- data/lib/seahorse/client/async_response.rb +19 -0
- data/lib/seahorse/client/base.rb +18 -7
- data/lib/seahorse/client/h2/handler.rb +14 -3
- data/lib/seahorse/client/handler.rb +1 -1
- data/lib/seahorse/client/net_http/connection_pool.rb +11 -11
- data/lib/seahorse/client/net_http/handler.rb +21 -9
- data/lib/seahorse/client/net_http/patches.rb +1 -4
- data/lib/seahorse/client/plugin.rb +9 -0
- data/lib/seahorse/client/plugins/endpoint.rb +0 -1
- data/lib/seahorse/client/plugins/h2.rb +3 -3
- data/lib/seahorse/client/plugins/net_http.rb +57 -16
- data/lib/seahorse/client/request_context.rb +8 -1
- data/lib/seahorse/model/shapes.rb +2 -2
- data/sig/aws-sdk-core/client_stubs.rbs +10 -0
- data/sig/aws-sdk-core/errors.rbs +22 -0
- data/sig/aws-sdk-core/resources/collection.rbs +21 -0
- data/sig/aws-sdk-core/structure.rbs +4 -0
- data/sig/aws-sdk-core/telemetry/base.rbs +46 -0
- data/sig/aws-sdk-core/telemetry/otel.rbs +22 -0
- data/sig/aws-sdk-core/telemetry/span_kind.rbs +15 -0
- data/sig/aws-sdk-core/telemetry/span_status.rbs +24 -0
- data/sig/aws-sdk-core/waiters/errors.rbs +20 -0
- data/sig/aws-sdk-core.rbs +7 -0
- data/sig/seahorse/client/base.rbs +25 -0
- data/sig/seahorse/client/handler_builder.rbs +16 -0
- data/sig/seahorse/client/response.rbs +61 -0
- metadata +61 -19
- /data/lib/aws-sdk-core/xml/parser/{engines/libxml.rb → libxml_engine.rb} +0 -0
- /data/lib/aws-sdk-core/xml/parser/{engines/nokogiri.rb → nokogiri_engine.rb} +0 -0
- /data/lib/aws-sdk-core/xml/parser/{engines/oga.rb → oga_engine.rb} +0 -0
- /data/lib/aws-sdk-core/xml/parser/{engines/ox.rb → ox_engine.rb} +0 -0
- /data/lib/aws-sdk-core/xml/parser/{engines/rexml.rb → rexml_engine.rb} +0 -0
@@ -23,17 +23,12 @@ module Seahorse
|
|
23
23
|
|
24
24
|
NETWORK_ERRORS = [
|
25
25
|
SocketError, EOFError, IOError, Timeout::Error,
|
26
|
-
Errno::ECONNABORTED, Errno::ECONNRESET, Errno::EPIPE,
|
27
|
-
Errno::
|
28
|
-
|
26
|
+
Errno::ECONNABORTED, Errno::ECONNRESET, Errno::EPIPE, Errno::EINVAL,
|
27
|
+
Errno::ETIMEDOUT, Errno::EHOSTUNREACH, Errno::ECONNREFUSED,
|
28
|
+
OpenSSL::SSL::SSLError, OpenSSL::SSL::SSLErrorWaitReadable,
|
29
29
|
Net::HTTPFatalError # for proxy connection failures
|
30
30
|
]
|
31
31
|
|
32
|
-
# does not exist in Ruby 1.9.3
|
33
|
-
if OpenSSL::SSL.const_defined?(:SSLErrorWaitReadable)
|
34
|
-
NETWORK_ERRORS << OpenSSL::SSL::SSLErrorWaitReadable
|
35
|
-
end
|
36
|
-
|
37
32
|
# @api private
|
38
33
|
DNS_ERROR_MESSAGES = [
|
39
34
|
'getaddrinfo: nodename nor servname provided, or not known', # MacOS
|
@@ -47,7 +42,13 @@ module Seahorse
|
|
47
42
|
# @param [RequestContext] context
|
48
43
|
# @return [Response]
|
49
44
|
def call(context)
|
50
|
-
|
45
|
+
span_wrapper(context) do
|
46
|
+
transmit(
|
47
|
+
context.config,
|
48
|
+
context.http_request,
|
49
|
+
context.http_response
|
50
|
+
)
|
51
|
+
end
|
51
52
|
Response.new(context: context)
|
52
53
|
end
|
53
54
|
|
@@ -197,6 +198,17 @@ module Seahorse
|
|
197
198
|
end
|
198
199
|
end
|
199
200
|
|
201
|
+
def span_wrapper(context, &block)
|
202
|
+
context.tracer.in_span(
|
203
|
+
'Handler.NetHttp',
|
204
|
+
attributes: Aws::Telemetry.http_request_attrs(context)
|
205
|
+
) do |span|
|
206
|
+
block.call
|
207
|
+
span.add_attributes(
|
208
|
+
Aws::Telemetry.http_response_attrs(context)
|
209
|
+
)
|
210
|
+
end
|
211
|
+
end
|
200
212
|
end
|
201
213
|
end
|
202
214
|
end
|
@@ -12,12 +12,9 @@ module Seahorse
|
|
12
12
|
|
13
13
|
def self.apply!
|
14
14
|
Net::HTTPGenericRequest.prepend(PatchDefaultContentType)
|
15
|
-
return unless RUBY_VERSION < '2.5'
|
16
|
-
|
17
|
-
Net::HTTP::IDEMPOTENT_METHODS_.clear
|
18
15
|
end
|
19
16
|
|
20
|
-
# For requests with
|
17
|
+
# For requests with bodies, Net::HTTP sets a default content type of:
|
21
18
|
# 'application/x-www-form-urlencoded'
|
22
19
|
# There are cases where we should not send content type at all.
|
23
20
|
# Even when no body is supplied, Net::HTTP uses a default empty body
|
@@ -111,7 +111,15 @@ module Seahorse
|
|
111
111
|
|
112
112
|
def initialize(name, options = {})
|
113
113
|
@name = name
|
114
|
+
# prevent unstable object shapes by ensuring
|
115
|
+
# order and presence of instance variables
|
116
|
+
@default = nil
|
117
|
+
@default_block = nil
|
118
|
+
@required = nil
|
119
|
+
@doc_type = nil
|
114
120
|
@doc_default = nil
|
121
|
+
@docstring = nil
|
122
|
+
@rbs_type = nil
|
115
123
|
options.each_pair do |opt_name, opt_value|
|
116
124
|
self.send("#{opt_name}=", opt_value)
|
117
125
|
end
|
@@ -124,6 +132,7 @@ module Seahorse
|
|
124
132
|
attr_accessor :doc_type
|
125
133
|
attr_writer :doc_default
|
126
134
|
attr_accessor :docstring
|
135
|
+
attr_accessor :rbs_type
|
127
136
|
|
128
137
|
def doc_default(options)
|
129
138
|
if @doc_default.nil? && !default.is_a?(Proc)
|
@@ -54,9 +54,9 @@ When `true`, HTTP2 debug output will be sent to the `:logger`.
|
|
54
54
|
DOCS
|
55
55
|
|
56
56
|
option(:enable_alpn, default: false, doc_type: 'Boolean', docstring: <<-DOCS)
|
57
|
-
|
58
|
-
|
59
|
-
|
57
|
+
Set to `true` to enable ALPN in HTTP2 over TLS. Requires Openssl version >= 1.0.2.
|
58
|
+
Defaults to false. Note: not all service HTTP2 operations supports ALPN on server
|
59
|
+
side, please refer to service documentation.
|
60
60
|
DOCS
|
61
61
|
|
62
62
|
option(:logger)
|
@@ -7,37 +7,78 @@ module Seahorse
|
|
7
7
|
module Plugins
|
8
8
|
class NetHttp < Plugin
|
9
9
|
|
10
|
-
option(:http_proxy, default: nil, doc_type: String, docstring:
|
11
|
-
|
12
|
-
|
10
|
+
option(:http_proxy, default: nil, doc_type: "URI::HTTP,String", docstring: <<-DOCS)
|
11
|
+
A proxy to send requests through. Formatted like 'http://proxy.com:123'.
|
12
|
+
DOCS
|
13
|
+
|
14
|
+
option(:http_open_timeout, default: 15, doc_type: Float, docstring: <<-DOCS) do |cfg|
|
15
|
+
The default number of seconds to wait for response data.
|
16
|
+
This value can safely be set per-request on the session.
|
17
|
+
DOCS
|
13
18
|
resolve_http_open_timeout(cfg)
|
14
19
|
end
|
15
20
|
|
16
|
-
option(:http_read_timeout, default: 60, doc_type:
|
21
|
+
option(:http_read_timeout, default: 60, doc_type: Float, docstring: <<-DOCS) do |cfg|
|
22
|
+
The default number of seconds to wait for response data.
|
23
|
+
This value can safely be set per-request on the session.
|
24
|
+
DOCS
|
17
25
|
resolve_http_read_timeout(cfg)
|
18
26
|
end
|
19
27
|
|
20
|
-
option(:http_idle_timeout, default: 5, doc_type:
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
option(:
|
27
|
-
|
28
|
-
|
28
|
+
option(:http_idle_timeout, default: 5, doc_type: Float, docstring: <<-DOCS)
|
29
|
+
The number of seconds a connection is allowed to sit idle before it
|
30
|
+
is considered stale. Stale connections are closed and removed from the
|
31
|
+
pool before making a request.
|
32
|
+
DOCS
|
33
|
+
|
34
|
+
option(:http_continue_timeout, default: 1, doc_type: Float, docstring: <<-DOCS)
|
35
|
+
The number of seconds to wait for a 100-continue response before sending the
|
36
|
+
request body. This option has no effect unless the request has "Expect"
|
37
|
+
header set to "100-continue". Defaults to `nil` which disables this
|
38
|
+
behaviour. This value can safely be set per request on the session.
|
39
|
+
DOCS
|
40
|
+
|
41
|
+
option(:http_wire_trace, default: false, doc_type: 'Boolean', docstring: <<-DOCS)
|
42
|
+
When `true`, HTTP debug output will be sent to the `:logger`.
|
43
|
+
DOCS
|
44
|
+
|
45
|
+
option(:ssl_verify_peer, default: true, doc_type: 'Boolean', docstring: <<-DOCS)
|
46
|
+
When `true`, SSL peer certificates are verified when establishing a connection.
|
47
|
+
DOCS
|
48
|
+
|
49
|
+
option(:ssl_ca_bundle, doc_type: String, docstring: <<-DOCS) do |cfg|
|
50
|
+
Full path to the SSL certificate authority bundle file that should be used when
|
51
|
+
verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
|
52
|
+
`:ssl_ca_directory` the the system default will be used if available.
|
53
|
+
DOCS
|
29
54
|
ENV['AWS_CA_BUNDLE'] ||
|
30
55
|
Aws.shared_config.ca_bundle(profile: cfg.profile) if cfg.respond_to?(:profile)
|
31
56
|
end
|
32
57
|
|
33
|
-
option(:ssl_ca_directory, default: nil, doc_type: String, docstring:
|
58
|
+
option(:ssl_ca_directory, default: nil, doc_type: String, docstring: <<-DOCS)
|
59
|
+
Full path of the directory that contains the unbundled SSL certificate
|
60
|
+
authority files for verifying peer certificates. If you do
|
61
|
+
not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
|
62
|
+
default will be used if available.
|
63
|
+
DOCS
|
34
64
|
|
35
|
-
option(:ssl_ca_store, default: nil, doc_type: String, docstring:
|
65
|
+
option(:ssl_ca_store, default: nil, doc_type: String, docstring: <<-DOCS)
|
66
|
+
Sets the X509::Store to verify peer certificate.
|
67
|
+
DOCS
|
36
68
|
|
37
|
-
option(:ssl_timeout, default: nil, doc_type: Float, docstring: '') do |cfg|
|
69
|
+
option(:ssl_timeout, default: nil, doc_type: Float, docstring: 'Sets the SSL timeout in seconds') do |cfg|
|
38
70
|
resolve_ssl_timeout(cfg)
|
39
71
|
end
|
40
72
|
|
73
|
+
option(:ssl_cert, default: nil, doc_type: OpenSSL::X509::Certificate, docstring: <<-DOCS)
|
74
|
+
Sets a client certificate when creating http connections.
|
75
|
+
DOCS
|
76
|
+
|
77
|
+
|
78
|
+
option(:ssl_key, default: nil, doc_type: OpenSSL::PKey, docstring: <<-DOCS)
|
79
|
+
Sets a client key when creating http connections.
|
80
|
+
DOCS
|
81
|
+
|
41
82
|
option(:logger) # for backwards compat
|
42
83
|
|
43
84
|
handler(Client::NetHttp::Handler, step: :send)
|
@@ -9,11 +9,14 @@ module Seahorse
|
|
9
9
|
# @option options [required,Symbol] :operation_name (nil)
|
10
10
|
# @option options [required,Model::Operation] :operation (nil)
|
11
11
|
# @option options [Model::Authorizer] :authorizer (nil)
|
12
|
+
# @option options [Client] :client (nil)
|
12
13
|
# @option options [Hash] :params ({})
|
13
14
|
# @option options [Configuration] :config (nil)
|
14
15
|
# @option options [Http::Request] :http_request (Http::Request.new)
|
15
16
|
# @option options [Http::Response] :http_response (Http::Response.new)
|
16
|
-
#
|
17
|
+
# @option options [Integer] :retries (0)
|
18
|
+
# @option options [Aws::Telemetry::TracerBase] :tracer (Aws::Telemetry::NoOpTracer.new)
|
19
|
+
# @options options [Hash] :metadata ({})
|
17
20
|
def initialize(options = {})
|
18
21
|
@operation_name = options[:operation_name]
|
19
22
|
@operation = options[:operation]
|
@@ -24,6 +27,7 @@ module Seahorse
|
|
24
27
|
@http_request = options[:http_request] || Http::Request.new
|
25
28
|
@http_response = options[:http_response] || Http::Response.new
|
26
29
|
@retries = 0
|
30
|
+
@tracer = options[:tracer] || Aws::Telemetry::NoOpTracer.new
|
27
31
|
@metadata = {}
|
28
32
|
end
|
29
33
|
|
@@ -54,6 +58,9 @@ module Seahorse
|
|
54
58
|
# @return [Integer]
|
55
59
|
attr_accessor :retries
|
56
60
|
|
61
|
+
# @return [Tracer]
|
62
|
+
attr_accessor :tracer
|
63
|
+
|
57
64
|
# @return [Hash]
|
58
65
|
attr_reader :metadata
|
59
66
|
|
@@ -75,7 +75,7 @@ module Seahorse
|
|
75
75
|
|
76
76
|
# @return [String, nil]
|
77
77
|
def location_name
|
78
|
-
@location_name || (shape && shape[
|
78
|
+
@location_name || (shape && shape['locationName'])
|
79
79
|
end
|
80
80
|
|
81
81
|
def location_name= location_name
|
@@ -86,7 +86,7 @@ module Seahorse
|
|
86
86
|
def [](key)
|
87
87
|
if @metadata.key?(key.to_s)
|
88
88
|
@metadata[key.to_s]
|
89
|
-
|
89
|
+
elsif @shape
|
90
90
|
@shape[key.to_s]
|
91
91
|
end
|
92
92
|
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
module Aws
|
2
|
+
module ClientStubs
|
3
|
+
def stub_responses: (Symbol operation_name, *untyped stubs) -> void
|
4
|
+
|
5
|
+
def api_requests: (?exclude_presign: bool) -> Array[{ operation_name: Symbol, params: untyped, context: untyped }]
|
6
|
+
| (?Hash[:exclude_presign, bool] options) -> Array[{ operation_name: Symbol, params: untyped, context: untyped }]
|
7
|
+
|
8
|
+
def stub_data: (Symbol operation_name, ?untyped data) -> untyped
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Aws
|
2
|
+
module Errors
|
3
|
+
class NonSupportedRubyVersionError < RuntimeError
|
4
|
+
end
|
5
|
+
|
6
|
+
# The base class for all errors returned by an Amazon Web Service.
|
7
|
+
# All ~400 level client errors and ~500 level server errors are raised
|
8
|
+
# as service errors. This indicates it was an error returned from the
|
9
|
+
# service and not one generated by the client.
|
10
|
+
class ServiceError < RuntimeError
|
11
|
+
def initialize: (untyped context, String? message, ?untyped data) -> void
|
12
|
+
|
13
|
+
attr_reader code: String
|
14
|
+
|
15
|
+
attr_reader context: untyped
|
16
|
+
|
17
|
+
attr_reader data: untyped
|
18
|
+
|
19
|
+
attr_accessor self.code: String?
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Aws
|
2
|
+
module Resources
|
3
|
+
class Collection[T]
|
4
|
+
include Enumerable[T]
|
5
|
+
|
6
|
+
def initialize: (Enumerable[Enumerable[T]] batches, ?size: Integer, ?limit: Integer) -> void
|
7
|
+
|
8
|
+
def each: () -> Enumerator[T, untyped]
|
9
|
+
| () { (T) -> untyped } -> Enumerator[T, untyped]
|
10
|
+
|
11
|
+
def size: () -> Integer?
|
12
|
+
|
13
|
+
alias length size
|
14
|
+
|
15
|
+
def first: () -> T?
|
16
|
+
| (Integer) -> self
|
17
|
+
|
18
|
+
def limit: (Integer) -> self
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module Aws
|
2
|
+
module Telemetry
|
3
|
+
class TelemetryProviderBase
|
4
|
+
def initialize: (?tracer_provider: TracerProviderBase, ?context_manager: ContextManagerBase) -> void
|
5
|
+
attr_reader tracer_provider: TracerProviderBase
|
6
|
+
|
7
|
+
attr_reader context_manager: ContextManagerBase
|
8
|
+
end
|
9
|
+
|
10
|
+
class TracerProviderBase
|
11
|
+
def tracer: (?String name) -> TracerBase
|
12
|
+
end
|
13
|
+
|
14
|
+
class TracerBase
|
15
|
+
def start_span: (String name, ?untyped with_parent, ?Hash[String, untyped] attributes, ?SpanKind kind) -> SpanBase
|
16
|
+
|
17
|
+
def in_span: (String name, ?Hash[String, untyped] attributes, ?SpanKind kind) -> SpanBase
|
18
|
+
|
19
|
+
def current_span: () -> SpanBase
|
20
|
+
end
|
21
|
+
|
22
|
+
class SpanBase
|
23
|
+
def set_attribute: (String key, untyped value) -> self
|
24
|
+
alias []= set_attribute
|
25
|
+
|
26
|
+
def add_attributes: (Hash[String, untyped] attributes) -> self
|
27
|
+
|
28
|
+
def add_event: (String name, ?Hash[String, untyped] attributes) -> self
|
29
|
+
|
30
|
+
def status=: (SpanStatus status) -> void
|
31
|
+
|
32
|
+
def finish: (?Time end_timestamp) -> self
|
33
|
+
|
34
|
+
def record_exception: (untyped exception, ?Hash[String, untyped] attributes) -> void
|
35
|
+
end
|
36
|
+
|
37
|
+
class ContextManagerBase
|
38
|
+
def current: () -> untyped
|
39
|
+
|
40
|
+
def attach: (untyped context) -> untyped
|
41
|
+
|
42
|
+
def detach: (untyped token) -> bool
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Aws
|
2
|
+
module Telemetry
|
3
|
+
class OTelProvider < TelemetryProviderBase
|
4
|
+
def initialize: () -> void
|
5
|
+
end
|
6
|
+
|
7
|
+
class OTelTracerProvider < TracerProviderBase
|
8
|
+
def initialize: () -> void
|
9
|
+
end
|
10
|
+
|
11
|
+
class OTelTracer < TracerBase
|
12
|
+
def initialize: (untyped tracer) -> void
|
13
|
+
end
|
14
|
+
|
15
|
+
class OTelSpan < SpanBase
|
16
|
+
def initialize: (untyped span) -> void
|
17
|
+
end
|
18
|
+
|
19
|
+
class OTelContextManager < ContextManagerBase
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Aws
|
2
|
+
module Telemetry
|
3
|
+
class SpanStatus
|
4
|
+
|
5
|
+
def self.unset: (?::String description) -> SpanStatus
|
6
|
+
|
7
|
+
def self.ok: (?::String description) -> SpanStatus
|
8
|
+
|
9
|
+
def self.error: (?::String description) -> SpanStatus
|
10
|
+
|
11
|
+
def initialize: (Integer code, ?description: ::String) -> void
|
12
|
+
|
13
|
+
attr_reader code: Integer
|
14
|
+
|
15
|
+
attr_reader description: String
|
16
|
+
|
17
|
+
OK: 0
|
18
|
+
|
19
|
+
UNSET: 1
|
20
|
+
|
21
|
+
ERROR: 2
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Aws
|
2
|
+
module Waiters
|
3
|
+
module Errors
|
4
|
+
class WaiterFailed < StandardError
|
5
|
+
end
|
6
|
+
|
7
|
+
class FailureStateError < WaiterFailed
|
8
|
+
end
|
9
|
+
|
10
|
+
class TooManyAttemptsError < WaiterFailed
|
11
|
+
end
|
12
|
+
|
13
|
+
class UnexpectedError < WaiterFailed
|
14
|
+
end
|
15
|
+
|
16
|
+
class NoSuchWaiterError < ArgumentError
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Seahorse
|
2
|
+
module Client
|
3
|
+
class Base
|
4
|
+
include HandlerBuilder
|
5
|
+
|
6
|
+
def self.new: (?untyped options) -> instance
|
7
|
+
def self.add_plugin: (untyped plugin) -> untyped
|
8
|
+
def self.remove_plugin: (untyped plugin) -> untyped
|
9
|
+
def self.clear_plugins: () -> untyped
|
10
|
+
def self.set_plugins: (Array[untyped] plugins) -> untyped
|
11
|
+
def self.plugins: () -> Array[untyped]
|
12
|
+
def self.api: () -> untyped
|
13
|
+
def self.set_api: (untyped api) -> untyped
|
14
|
+
def self.define: (?untyped options) -> untyped
|
15
|
+
|
16
|
+
attr_reader config: untyped
|
17
|
+
|
18
|
+
attr_reader handlers: untyped
|
19
|
+
|
20
|
+
def build_request: (_ToS operation_name, ?untyped params) -> untyped
|
21
|
+
|
22
|
+
def operation_names: () -> Array[Symbol]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Seahorse
|
2
|
+
module Client
|
3
|
+
# This module provides the ability to add handlers to a class or
|
4
|
+
# module. The including class or extending module must respond to
|
5
|
+
# `#handlers`, returning a {HandlerList}.
|
6
|
+
module HandlerBuilder
|
7
|
+
def handle_request: (*untyped) { (untyped context) -> void } -> untyped
|
8
|
+
|
9
|
+
def handle_response: (*untyped) { (untyped resp) -> void } -> untyped
|
10
|
+
|
11
|
+
def handle: (*untyped) ?{ (untyped context) -> void } -> untyped
|
12
|
+
|
13
|
+
alias handler handle
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
module Seahorse
|
2
|
+
module Client
|
3
|
+
# RBS does not support Delegator.
|
4
|
+
# the behavior is mimicked `Seahorse::Client::Response` as much as possible.
|
5
|
+
interface _ResponseCommon
|
6
|
+
def context: () -> untyped
|
7
|
+
|
8
|
+
def checksum_validated: () -> ::String?
|
9
|
+
|
10
|
+
def on: (Integer) { (self) -> void } -> self
|
11
|
+
| (Range[Integer]) { (self) -> void } -> self
|
12
|
+
|
13
|
+
def on_success: () { (self) -> void } -> self
|
14
|
+
|
15
|
+
def successful?: () -> bool
|
16
|
+
end
|
17
|
+
|
18
|
+
# The interface for response success
|
19
|
+
# An interface representing response is provided for each operation,
|
20
|
+
# and _ResponseSuccess is embedded in this interface.
|
21
|
+
# @example client.rbs
|
22
|
+
#
|
23
|
+
# interface _OperationResponseSuccess
|
24
|
+
# include ::Seahorse::Client::_ResponseSuccess[Types::OperationOutput]
|
25
|
+
# def foo: () -> ::String
|
26
|
+
# def bar: () -> ::Integer
|
27
|
+
# end
|
28
|
+
# @client.operation: () -> _OperationResponseSuccess
|
29
|
+
interface _ResponseSuccess[DATA]
|
30
|
+
include _ResponseCommon
|
31
|
+
|
32
|
+
def data: () -> DATA
|
33
|
+
|
34
|
+
def data=: (DATA) -> DATA
|
35
|
+
|
36
|
+
def error: () -> nil
|
37
|
+
|
38
|
+
def error=: (nil) -> nil
|
39
|
+
end
|
40
|
+
|
41
|
+
# The interface for response error
|
42
|
+
# It is useful to use annotation on ruby code
|
43
|
+
# @example foo.rb
|
44
|
+
#
|
45
|
+
# client = Client.new(raise_response_errors: false)
|
46
|
+
# # @type var response: ::Seahorse::Client::_ResponseError
|
47
|
+
# response = client.operation()
|
48
|
+
# response.error.message
|
49
|
+
interface _ResponseError
|
50
|
+
include _ResponseCommon
|
51
|
+
|
52
|
+
def data: () -> nil
|
53
|
+
|
54
|
+
def data=: (nil) -> nil
|
55
|
+
|
56
|
+
def error: () -> StandardError
|
57
|
+
|
58
|
+
def error=: (StandardError) -> StandardError
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|