aws-sdk-core 3.186.0 → 3.240.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.
Files changed (204) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +695 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-defaults.rb +4 -1
  5. data/lib/aws-sdk-core/arn.rb +1 -3
  6. data/lib/aws-sdk-core/assume_role_credentials.rb +21 -13
  7. data/lib/aws-sdk-core/assume_role_web_identity_credentials.rb +16 -9
  8. data/lib/aws-sdk-core/binary/decode_handler.rb +3 -9
  9. data/lib/aws-sdk-core/binary/encode_handler.rb +1 -1
  10. data/lib/aws-sdk-core/binary/event_builder.rb +34 -37
  11. data/lib/aws-sdk-core/binary/event_stream_decoder.rb +1 -0
  12. data/lib/aws-sdk-core/binary/event_stream_encoder.rb +4 -3
  13. data/lib/aws-sdk-core/cbor/decoder.rb +308 -0
  14. data/lib/aws-sdk-core/cbor/encoder.rb +243 -0
  15. data/lib/aws-sdk-core/cbor.rb +53 -0
  16. data/lib/aws-sdk-core/client_side_monitoring.rb +9 -0
  17. data/lib/aws-sdk-core/client_stubs.rb +39 -55
  18. data/lib/aws-sdk-core/credential_provider.rb +5 -1
  19. data/lib/aws-sdk-core/credential_provider_chain.rb +101 -25
  20. data/lib/aws-sdk-core/credentials.rb +19 -6
  21. data/lib/aws-sdk-core/ec2_metadata.rb +1 -1
  22. data/lib/aws-sdk-core/ecs_credentials.rb +92 -24
  23. data/lib/aws-sdk-core/endpoints/endpoint.rb +3 -1
  24. data/lib/aws-sdk-core/endpoints/matchers.rb +8 -10
  25. data/lib/aws-sdk-core/endpoints.rb +101 -21
  26. data/lib/aws-sdk-core/error_handler.rb +46 -0
  27. data/lib/aws-sdk-core/errors.rb +16 -4
  28. data/lib/aws-sdk-core/event_emitter.rb +1 -17
  29. data/lib/aws-sdk-core/instance_profile_credentials.rb +148 -157
  30. data/lib/aws-sdk-core/json/builder.rb +8 -1
  31. data/lib/aws-sdk-core/json/error_handler.rb +29 -13
  32. data/lib/aws-sdk-core/json/handler.rb +13 -6
  33. data/lib/aws-sdk-core/json/json_engine.rb +3 -1
  34. data/lib/aws-sdk-core/json/oj_engine.rb +7 -1
  35. data/lib/aws-sdk-core/json/parser.rb +32 -2
  36. data/lib/aws-sdk-core/json.rb +43 -14
  37. data/lib/aws-sdk-core/log/param_filter.rb +2 -2
  38. data/lib/aws-sdk-core/log/param_formatter.rb +7 -3
  39. data/lib/aws-sdk-core/log.rb +10 -0
  40. data/lib/aws-sdk-core/login_credentials.rb +229 -0
  41. data/lib/aws-sdk-core/lru_cache.rb +75 -0
  42. data/lib/aws-sdk-core/pageable_response.rb +1 -1
  43. data/lib/aws-sdk-core/param_validator.rb +7 -2
  44. data/lib/aws-sdk-core/plugins/bearer_authorization.rb +2 -0
  45. data/lib/aws-sdk-core/plugins/checksum_algorithm.rb +347 -168
  46. data/lib/aws-sdk-core/plugins/client_metrics_plugin.rb +1 -1
  47. data/lib/aws-sdk-core/plugins/client_metrics_send_plugin.rb +14 -2
  48. data/lib/aws-sdk-core/plugins/credentials_configuration.rb +78 -56
  49. data/lib/aws-sdk-core/plugins/endpoint_pattern.rb +40 -32
  50. data/lib/aws-sdk-core/plugins/global_configuration.rb +8 -9
  51. data/lib/aws-sdk-core/plugins/http_checksum.rb +3 -8
  52. data/lib/aws-sdk-core/plugins/invocation_id.rb +1 -11
  53. data/lib/aws-sdk-core/plugins/logging.rb +2 -0
  54. data/lib/aws-sdk-core/plugins/protocols/api_gateway.rb +3 -1
  55. data/lib/aws-sdk-core/plugins/protocols/ec2.rb +2 -24
  56. data/lib/aws-sdk-core/plugins/protocols/json_rpc.rb +6 -8
  57. data/lib/aws-sdk-core/plugins/protocols/query.rb +4 -2
  58. data/lib/aws-sdk-core/plugins/protocols/rest_json.rb +3 -15
  59. data/lib/aws-sdk-core/plugins/protocols/rest_xml.rb +3 -0
  60. data/lib/aws-sdk-core/plugins/protocols/rpc_v2.rb +17 -0
  61. data/lib/aws-sdk-core/plugins/regional_endpoint.rb +74 -25
  62. data/lib/aws-sdk-core/plugins/request_compression.rb +11 -2
  63. data/lib/aws-sdk-core/plugins/retry_errors.rb +12 -3
  64. data/lib/aws-sdk-core/plugins/sign.rb +55 -34
  65. data/lib/aws-sdk-core/plugins/signature_v2.rb +2 -1
  66. data/lib/aws-sdk-core/plugins/signature_v4.rb +2 -1
  67. data/lib/aws-sdk-core/plugins/stub_responses.rb +59 -9
  68. data/lib/aws-sdk-core/plugins/telemetry.rb +75 -0
  69. data/lib/aws-sdk-core/plugins/transfer_encoding.rb +16 -9
  70. data/lib/aws-sdk-core/plugins/user_agent.rb +103 -26
  71. data/lib/aws-sdk-core/plugins.rb +39 -0
  72. data/lib/aws-sdk-core/process_credentials.rb +48 -29
  73. data/lib/aws-sdk-core/query/ec2_handler.rb +27 -0
  74. data/lib/aws-sdk-core/query/ec2_param_builder.rb +5 -7
  75. data/lib/aws-sdk-core/query/handler.rb +4 -4
  76. data/lib/aws-sdk-core/query/param_builder.rb +2 -2
  77. data/lib/aws-sdk-core/query.rb +2 -1
  78. data/lib/aws-sdk-core/refreshing_credentials.rb +20 -17
  79. data/lib/aws-sdk-core/resources.rb +8 -0
  80. data/lib/aws-sdk-core/rest/content_type_handler.rb +60 -0
  81. data/lib/aws-sdk-core/rest/handler.rb +3 -4
  82. data/lib/aws-sdk-core/rest/request/body.rb +32 -5
  83. data/lib/aws-sdk-core/rest/request/endpoint.rb +24 -4
  84. data/lib/aws-sdk-core/rest/request/headers.rb +15 -7
  85. data/lib/aws-sdk-core/rest/request/querystring_builder.rb +23 -11
  86. data/lib/aws-sdk-core/rest/response/body.rb +15 -1
  87. data/lib/aws-sdk-core/rest/response/header_list_parser.rb +79 -0
  88. data/lib/aws-sdk-core/rest/response/headers.rb +8 -3
  89. data/lib/aws-sdk-core/rest.rb +1 -0
  90. data/lib/aws-sdk-core/rpc_v2/builder.rb +62 -0
  91. data/lib/aws-sdk-core/rpc_v2/cbor_engine.rb +18 -0
  92. data/lib/aws-sdk-core/rpc_v2/content_type_handler.rb +47 -0
  93. data/lib/aws-sdk-core/rpc_v2/error_handler.rb +95 -0
  94. data/lib/aws-sdk-core/rpc_v2/handler.rb +79 -0
  95. data/lib/aws-sdk-core/rpc_v2/parser.rb +98 -0
  96. data/lib/aws-sdk-core/rpc_v2.rb +69 -0
  97. data/lib/aws-sdk-core/shared_config.rb +109 -22
  98. data/lib/aws-sdk-core/shared_credentials.rb +1 -7
  99. data/lib/aws-sdk-core/sso_credentials.rb +5 -2
  100. data/lib/aws-sdk-core/static_token_provider.rb +1 -2
  101. data/lib/aws-sdk-core/stubbing/protocols/ec2.rb +12 -11
  102. data/lib/aws-sdk-core/stubbing/protocols/json.rb +11 -10
  103. data/lib/aws-sdk-core/stubbing/protocols/query.rb +7 -6
  104. data/lib/aws-sdk-core/stubbing/protocols/rest.rb +2 -1
  105. data/lib/aws-sdk-core/stubbing/protocols/rest_json.rb +9 -8
  106. data/lib/aws-sdk-core/stubbing/protocols/rest_xml.rb +6 -5
  107. data/lib/aws-sdk-core/stubbing/protocols/rpc_v2.rb +39 -0
  108. data/lib/aws-sdk-core/stubbing.rb +22 -0
  109. data/lib/aws-sdk-core/telemetry/base.rb +177 -0
  110. data/lib/aws-sdk-core/telemetry/no_op.rb +70 -0
  111. data/lib/aws-sdk-core/telemetry/otel.rb +235 -0
  112. data/lib/aws-sdk-core/telemetry/span_kind.rb +22 -0
  113. data/lib/aws-sdk-core/telemetry/span_status.rb +59 -0
  114. data/lib/aws-sdk-core/telemetry.rb +78 -0
  115. data/lib/aws-sdk-core/token.rb +3 -3
  116. data/lib/aws-sdk-core/token_provider.rb +4 -0
  117. data/lib/aws-sdk-core/token_provider_chain.rb +2 -6
  118. data/lib/aws-sdk-core/util.rb +41 -1
  119. data/lib/aws-sdk-core/waiters/poller.rb +10 -5
  120. data/lib/aws-sdk-core/xml/builder.rb +17 -9
  121. data/lib/aws-sdk-core/xml/error_handler.rb +35 -43
  122. data/lib/aws-sdk-core/xml/parser/frame.rb +4 -20
  123. data/lib/aws-sdk-core/xml/parser/stack.rb +2 -0
  124. data/lib/aws-sdk-core/xml/parser.rb +2 -6
  125. data/lib/aws-sdk-core.rb +86 -107
  126. data/lib/aws-sdk-signin/client.rb +604 -0
  127. data/lib/aws-sdk-signin/client_api.rb +119 -0
  128. data/lib/aws-sdk-signin/customizations.rb +1 -0
  129. data/lib/aws-sdk-signin/endpoint_parameters.rb +69 -0
  130. data/lib/aws-sdk-signin/endpoint_provider.rb +59 -0
  131. data/lib/aws-sdk-signin/endpoints.rb +20 -0
  132. data/lib/aws-sdk-signin/errors.rb +122 -0
  133. data/lib/aws-sdk-signin/plugins/endpoints.rb +77 -0
  134. data/lib/aws-sdk-signin/resource.rb +26 -0
  135. data/lib/aws-sdk-signin/types.rb +299 -0
  136. data/lib/aws-sdk-signin.rb +63 -0
  137. data/lib/aws-sdk-sso/client.rb +189 -96
  138. data/lib/aws-sdk-sso/client_api.rb +7 -0
  139. data/lib/aws-sdk-sso/endpoint_parameters.rb +13 -10
  140. data/lib/aws-sdk-sso/endpoint_provider.rb +16 -20
  141. data/lib/aws-sdk-sso/endpoints.rb +2 -54
  142. data/lib/aws-sdk-sso/plugins/endpoints.rb +23 -22
  143. data/lib/aws-sdk-sso/types.rb +1 -0
  144. data/lib/aws-sdk-sso.rb +15 -11
  145. data/lib/aws-sdk-ssooidc/client.rb +609 -129
  146. data/lib/aws-sdk-ssooidc/client_api.rb +94 -1
  147. data/lib/aws-sdk-ssooidc/endpoint_parameters.rb +13 -10
  148. data/lib/aws-sdk-ssooidc/endpoint_provider.rb +16 -20
  149. data/lib/aws-sdk-ssooidc/endpoints.rb +2 -40
  150. data/lib/aws-sdk-ssooidc/errors.rb +62 -0
  151. data/lib/aws-sdk-ssooidc/plugins/endpoints.rb +23 -20
  152. data/lib/aws-sdk-ssooidc/types.rb +419 -53
  153. data/lib/aws-sdk-ssooidc.rb +15 -11
  154. data/lib/aws-sdk-sts/client.rb +537 -156
  155. data/lib/aws-sdk-sts/client_api.rb +108 -8
  156. data/lib/aws-sdk-sts/customizations.rb +5 -2
  157. data/lib/aws-sdk-sts/endpoint_parameters.rb +15 -14
  158. data/lib/aws-sdk-sts/endpoint_provider.rb +52 -57
  159. data/lib/aws-sdk-sts/endpoints.rb +2 -118
  160. data/lib/aws-sdk-sts/errors.rb +79 -0
  161. data/lib/aws-sdk-sts/plugins/endpoints.rb +23 -30
  162. data/lib/aws-sdk-sts/presigner.rb +3 -7
  163. data/lib/aws-sdk-sts/types.rb +361 -35
  164. data/lib/aws-sdk-sts.rb +15 -11
  165. data/lib/seahorse/client/async_base.rb +4 -5
  166. data/lib/seahorse/client/async_response.rb +19 -0
  167. data/lib/seahorse/client/base.rb +18 -21
  168. data/lib/seahorse/client/h2/connection.rb +18 -28
  169. data/lib/seahorse/client/h2/handler.rb +19 -3
  170. data/lib/seahorse/client/handler.rb +1 -1
  171. data/lib/seahorse/client/http/response.rb +1 -1
  172. data/lib/seahorse/client/net_http/connection_pool.rb +15 -12
  173. data/lib/seahorse/client/net_http/handler.rb +21 -9
  174. data/lib/seahorse/client/net_http/patches.rb +1 -4
  175. data/lib/seahorse/client/networking_error.rb +1 -1
  176. data/lib/seahorse/client/plugin.rb +9 -0
  177. data/lib/seahorse/client/plugins/endpoint.rb +0 -1
  178. data/lib/seahorse/client/plugins/h2.rb +4 -4
  179. data/lib/seahorse/client/plugins/net_http.rb +57 -16
  180. data/lib/seahorse/client/request_context.rb +9 -2
  181. data/lib/seahorse/client/response.rb +2 -0
  182. data/lib/seahorse/model/shapes.rb +2 -2
  183. data/lib/seahorse/util.rb +2 -1
  184. data/sig/aws-sdk-core/async_client_stubs.rbs +21 -0
  185. data/sig/aws-sdk-core/client_stubs.rbs +10 -0
  186. data/sig/aws-sdk-core/errors.rbs +22 -0
  187. data/sig/aws-sdk-core/resources/collection.rbs +21 -0
  188. data/sig/aws-sdk-core/structure.rbs +4 -0
  189. data/sig/aws-sdk-core/telemetry/base.rbs +46 -0
  190. data/sig/aws-sdk-core/telemetry/otel.rbs +22 -0
  191. data/sig/aws-sdk-core/telemetry/span_kind.rbs +15 -0
  192. data/sig/aws-sdk-core/telemetry/span_status.rbs +24 -0
  193. data/sig/aws-sdk-core/waiters/errors.rbs +20 -0
  194. data/sig/aws-sdk-core.rbs +7 -0
  195. data/sig/seahorse/client/async_base.rbs +18 -0
  196. data/sig/seahorse/client/base.rbs +25 -0
  197. data/sig/seahorse/client/handler_builder.rbs +16 -0
  198. data/sig/seahorse/client/response.rbs +61 -0
  199. metadata +117 -23
  200. /data/lib/aws-sdk-core/xml/parser/{engines/libxml.rb → libxml_engine.rb} +0 -0
  201. /data/lib/aws-sdk-core/xml/parser/{engines/nokogiri.rb → nokogiri_engine.rb} +0 -0
  202. /data/lib/aws-sdk-core/xml/parser/{engines/oga.rb → oga_engine.rb} +0 -0
  203. /data/lib/aws-sdk-core/xml/parser/{engines/ox.rb → ox_engine.rb} +0 -0
  204. /data/lib/aws-sdk-core/xml/parser/{engines/rexml.rb → rexml_engine.rb} +0 -0
@@ -14,15 +14,33 @@ require_relative 'endpoints/templater'
14
14
  require_relative 'endpoints/tree_rule'
15
15
  require_relative 'endpoints/url'
16
16
 
17
+ require 'aws-sigv4'
18
+
17
19
  module Aws
18
20
  # @api private
19
21
  module Endpoints
22
+ # Maps config auth scheme preferences to endpoint auth scheme names.
23
+ ENDPOINT_AUTH_PREFERENCE_MAP = {
24
+ 'sigv4' => %w[sigv4 sigv4-s3express],
25
+ 'sigv4a' => ['sigv4a'],
26
+ 'httpBearerAuth' => ['bearer'],
27
+ 'noAuth' => ['none']
28
+ }.freeze
29
+ SUPPORTED_ENDPOINT_AUTH = ENDPOINT_AUTH_PREFERENCE_MAP.values.flatten.freeze
30
+
31
+ # Maps configured auth scheme preferences to modeled auth traits.
32
+ MODELED_AUTH_PREFERENCE_MAP = {
33
+ 'sigv4' => 'aws.auth#sigv4',
34
+ 'sigv4a' => 'aws.auth#sigv4a',
35
+ 'httpBearerAuth' => 'smithy.api#httpBearerAuth',
36
+ 'noAuth' => 'smithy.api#noAuth'
37
+ }.freeze
38
+ SUPPORTED_MODELED_AUTH = MODELED_AUTH_PREFERENCE_MAP.values.freeze
39
+
20
40
  class << self
21
41
  def resolve_auth_scheme(context, endpoint)
22
42
  if endpoint && (auth_schemes = endpoint.properties['authSchemes'])
23
- auth_scheme = auth_schemes.find do |scheme|
24
- Aws::Plugins::Sign::SUPPORTED_AUTH_TYPES.include?(scheme['name'])
25
- end
43
+ auth_scheme = endpoint_auth_scheme_preference(auth_schemes, context.config.auth_scheme_preference)
26
44
  raise 'No supported auth scheme for this endpoint.' unless auth_scheme
27
45
 
28
46
  merge_signing_defaults(auth_scheme, context.config)
@@ -33,8 +51,86 @@ module Aws
33
51
 
34
52
  private
35
53
 
54
+ def endpoint_auth_scheme_preference(auth_schemes, preferred_auth)
55
+ ordered_auth = preferred_auth.each_with_object([]) do |pref, list|
56
+ next unless ENDPOINT_AUTH_PREFERENCE_MAP.key?(pref)
57
+
58
+ ENDPOINT_AUTH_PREFERENCE_MAP[pref].each { |name| list << { 'name' => name } }
59
+ end
60
+ ordered_auth += auth_schemes
61
+ ordered_auth.find { |auth| SUPPORTED_ENDPOINT_AUTH.include?(auth['name']) }
62
+ end
63
+
64
+ def merge_signing_defaults(auth_scheme, config)
65
+ if %w[sigv4 sigv4a sigv4-s3express].include?(auth_scheme['name'])
66
+ auth_scheme['signingName'] ||= sigv4_name(config)
67
+
68
+ # back fill disableNormalizePath for S3 until it gets correctly set in the rules
69
+ if auth_scheme['signingName'] == 's3' &&
70
+ !auth_scheme.include?('disableNormalizePath') &&
71
+ auth_scheme.include?('disableDoubleEncoding')
72
+ auth_scheme['disableNormalizePath'] = auth_scheme['disableDoubleEncoding']
73
+ end
74
+ if auth_scheme['name'] == 'sigv4a'
75
+ # config option supersedes endpoint properties
76
+ auth_scheme['signingRegionSet'] =
77
+ config.sigv4a_signing_region_set || auth_scheme['signingRegionSet'] || [config.region]
78
+ else
79
+ auth_scheme['signingRegion'] ||= config.region
80
+ end
81
+ end
82
+ auth_scheme
83
+ end
84
+
85
+ def sigv4_name(config)
86
+ config.api.metadata['signingName'] || config.api.metadata['endpointPrefix']
87
+ end
88
+
36
89
  def default_auth_scheme(context)
37
- case default_api_authtype(context)
90
+ if (modeled_auth = default_api_auth(context))
91
+ auth = modeled_auth_scheme_preference(modeled_auth, context.config.auth_scheme_preference)
92
+ case auth
93
+ when 'aws.auth#sigv4', 'aws.auth#sigv4a'
94
+ auth_scheme = { 'name' => auth.split('#').last }
95
+ if s3_or_s3v4_signature_version?(context)
96
+ auth_scheme = auth_scheme.merge(
97
+ 'disableDoubleEncoding' => true,
98
+ 'disableNormalizePath' => true
99
+ )
100
+ end
101
+ merge_signing_defaults(auth_scheme, context.config)
102
+ when 'smithy.api#httpBearerAuth'
103
+ { 'name' => 'bearer' }
104
+ when 'smithy.api#noAuth'
105
+ { 'name' => 'none' }
106
+ else
107
+ raise 'No supported auth trait for this endpoint.'
108
+ end
109
+ else
110
+ legacy_default_auth_scheme(context)
111
+ end
112
+ end
113
+
114
+ def modeled_auth_scheme_preference(modeled_auth, preferred_auth)
115
+ ordered_auth = preferred_auth.map { |pref| MODELED_AUTH_PREFERENCE_MAP[pref] }.compact
116
+ ordered_auth += modeled_auth
117
+ ordered_auth.find { |auth| SUPPORTED_MODELED_AUTH.include?(auth) }
118
+ end
119
+
120
+ def default_api_auth(context)
121
+ context.config.api.operation(context.operation_name)['auth'] ||
122
+ context.config.api.metadata['auth']
123
+ end
124
+
125
+ def s3_or_s3v4_signature_version?(context)
126
+ %w[s3 s3v4].include?(context.config.api.metadata['signatureVersion'])
127
+ end
128
+
129
+ # Legacy auth resolution - looks for deprecated signatureVersion
130
+ # and authType traits.
131
+
132
+ def legacy_default_auth_scheme(context)
133
+ case legacy_default_api_authtype(context)
38
134
  when 'v4', 'v4-unsigned-body'
39
135
  auth_scheme = { 'name' => 'sigv4' }
40
136
  merge_signing_defaults(auth_scheme, context.config)
@@ -52,27 +148,11 @@ module Aws
52
148
  end
53
149
  end
54
150
 
55
- def merge_signing_defaults(auth_scheme, config)
56
- if %w[sigv4 sigv4a].include?(auth_scheme['name'])
57
- auth_scheme['signingName'] ||= sigv4_name(config)
58
- if auth_scheme['name'] == 'sigv4a'
59
- auth_scheme['signingRegionSet'] ||= ['*']
60
- else
61
- auth_scheme['signingRegion'] ||= config.region
62
- end
63
- end
64
- auth_scheme
65
- end
66
-
67
- def default_api_authtype(context)
151
+ def legacy_default_api_authtype(context)
68
152
  context.config.api.operation(context.operation_name)['authtype'] ||
69
153
  context.config.api.metadata['signatureVersion']
70
154
  end
71
155
 
72
- def sigv4_name(config)
73
- config.api.metadata['signingName'] ||
74
- config.api.metadata['endpointPrefix']
75
- end
76
156
  end
77
157
  end
78
158
  end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Aws
4
+ # @api private
5
+ class ErrorHandler < Seahorse::Client::Handler
6
+
7
+ private
8
+
9
+ def error(context)
10
+ body = context.http_response.body_contents
11
+ # This is not correct per protocol tests. Some headers will determine the error code.
12
+ # If the body is empty, there is still potentially an error code from the header, but
13
+ # we are making a generic http status error instead. In a new major version, we should
14
+ # always try to extract header, and during extraction, check headers and body.
15
+ if body.empty?
16
+ code, message, data = http_status_error(context)
17
+ else
18
+ code, message, data = extract_error(body, context)
19
+ end
20
+ build_error(context, code, message, data)
21
+ end
22
+
23
+ def build_error(context, code, message, data)
24
+ errors_module = context.client.class.errors_module
25
+ errors_module.error_class(code).new(context, message, data)
26
+ end
27
+
28
+ def http_status_error(context)
29
+ [http_status_error_code(context), '', EmptyStructure.new]
30
+ end
31
+
32
+ def http_status_error_code(context)
33
+ status_code = context.http_response.status_code
34
+ {
35
+ 302 => 'MovedTemporarily',
36
+ 304 => 'NotModified',
37
+ 400 => 'BadRequest',
38
+ 403 => 'Forbidden',
39
+ 404 => 'NotFound',
40
+ 412 => 'PreconditionFailed',
41
+ 413 => 'RequestEntityTooLarge',
42
+ }[status_code] || "Http#{status_code}Error"
43
+ end
44
+
45
+ end
46
+ end
@@ -12,7 +12,7 @@ module Aws
12
12
  class ServiceError < RuntimeError
13
13
 
14
14
  # @param [Seahorse::Client::RequestContext] context
15
- # @param [String] message
15
+ # @param [String, nil] message
16
16
  # @param [Aws::Structure] data
17
17
  def initialize(context, message, data = Aws::EmptyStructure.new)
18
18
  @code = self.class.code
@@ -34,7 +34,7 @@ module Aws
34
34
 
35
35
  class << self
36
36
 
37
- # @return [String]
37
+ # @return [String, nil]
38
38
  attr_accessor :code
39
39
 
40
40
  end
@@ -68,7 +68,7 @@ module Aws
68
68
  end
69
69
  end
70
70
 
71
- # Rasied when endpoint discovery failed for operations
71
+ # Raised when endpoint discovery failed for operations
72
72
  # that requires endpoints from endpoint discovery
73
73
  class EndpointDiscoveryError < RuntimeError
74
74
  def initialize(*args)
@@ -78,7 +78,7 @@ module Aws
78
78
  end
79
79
  end
80
80
 
81
- # raised when hostLabel member is not provided
81
+ # Raised when hostLabel member is not provided
82
82
  # at operation input when endpoint trait is available
83
83
  # with 'hostPrefix' requirement
84
84
  class MissingEndpointHostLabelValue < RuntimeError
@@ -213,6 +213,9 @@ module Aws
213
213
  # Raised when SSO Token is invalid
214
214
  class InvalidSSOToken < RuntimeError; end
215
215
 
216
+ # Raised when Login Token is invalid
217
+ class InvalidLoginToken < RuntimeError; end
218
+
216
219
  # Raised when a client is unable to sign a request because
217
220
  # the bearer token is not configured or available
218
221
  class MissingBearerTokenError < RuntimeError
@@ -236,6 +239,15 @@ module Aws
236
239
  end
237
240
  end
238
241
 
242
+ # Raised when a client is constructed and the sigv4a region set is invalid.
243
+ # It is invalid when it is empty and/or contains empty strings.
244
+ class InvalidRegionSetError < ArgumentError
245
+ def initialize(*args)
246
+ msg = 'The provided sigv4a region set was empty or invalid.'
247
+ super(msg)
248
+ end
249
+ end
250
+
239
251
  # Raised when a client is contsructed and the region is not valid.
240
252
  class InvalidRegionError < ArgumentError
241
253
  def initialize(*args)
@@ -6,7 +6,6 @@ module Aws
6
6
  def initialize
7
7
  @listeners = {}
8
8
  @validate_event = true
9
- @status = :sleep
10
9
  @signal_queue = Queue.new
11
10
  end
12
11
 
@@ -32,7 +31,7 @@ module Aws
32
31
  def emit(type, params)
33
32
  unless @stream
34
33
  raise Aws::Errors::SignalEventError.new(
35
- "Singaling events before making async request"\
34
+ "Signaling events before making async request"\
36
35
  " is not allowed."
37
36
  )
38
37
  end
@@ -40,25 +39,10 @@ module Aws
40
39
  Aws::ParamValidator.validate!(
41
40
  @encoder.rules.shape.member(type), params)
42
41
  end
43
- _ready_for_events?
44
42
  @stream.data(
45
43
  @encoder.encode(type, params),
46
44
  end_stream: type == :end_stream
47
45
  )
48
46
  end
49
-
50
- private
51
-
52
- def _ready_for_events?
53
- return true if @status == :ready
54
-
55
- # blocked until once initial 200 response is received
56
- # signal will be available in @signal_queue
57
- # and this check will no longer be blocked
58
- @signal_queue.pop
59
- @status = :ready
60
- true
61
- end
62
-
63
47
  end
64
48
  end