aws-sdk-core 3.220.1 → 3.232.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 (60) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +140 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-core/assume_role_credentials.rb +1 -0
  5. data/lib/aws-sdk-core/assume_role_web_identity_credentials.rb +1 -0
  6. data/lib/aws-sdk-core/credential_provider.rb +4 -0
  7. data/lib/aws-sdk-core/credential_provider_chain.rb +28 -8
  8. data/lib/aws-sdk-core/credentials.rb +6 -0
  9. data/lib/aws-sdk-core/ecs_credentials.rb +1 -0
  10. data/lib/aws-sdk-core/endpoints/matchers.rb +2 -1
  11. data/lib/aws-sdk-core/endpoints.rb +37 -13
  12. data/lib/aws-sdk-core/error_handler.rb +5 -0
  13. data/lib/aws-sdk-core/errors.rb +2 -2
  14. data/lib/aws-sdk-core/event_emitter.rb +1 -1
  15. data/lib/aws-sdk-core/instance_profile_credentials.rb +147 -157
  16. data/lib/aws-sdk-core/json/error_handler.rb +14 -4
  17. data/lib/aws-sdk-core/plugins/client_metrics_plugin.rb +0 -1
  18. data/lib/aws-sdk-core/plugins/credentials_configuration.rb +75 -59
  19. data/lib/aws-sdk-core/plugins/endpoint_pattern.rb +40 -32
  20. data/lib/aws-sdk-core/plugins/sign.rb +29 -20
  21. data/lib/aws-sdk-core/plugins/stub_responses.rb +6 -0
  22. data/lib/aws-sdk-core/plugins/user_agent.rb +24 -2
  23. data/lib/aws-sdk-core/process_credentials.rb +1 -1
  24. data/lib/aws-sdk-core/rest/request/headers.rb +1 -1
  25. data/lib/aws-sdk-core/rpc_v2/error_handler.rb +26 -16
  26. data/lib/aws-sdk-core/rpc_v2/parser.rb +8 -0
  27. data/lib/aws-sdk-core/shared_config.rb +82 -21
  28. data/lib/aws-sdk-core/shared_credentials.rb +1 -0
  29. data/lib/aws-sdk-core/sso_credentials.rb +2 -0
  30. data/lib/aws-sdk-core/static_token_provider.rb +1 -2
  31. data/lib/aws-sdk-core/token.rb +3 -3
  32. data/lib/aws-sdk-core/token_provider.rb +4 -0
  33. data/lib/aws-sdk-core/token_provider_chain.rb +2 -6
  34. data/lib/aws-sdk-core/util.rb +2 -1
  35. data/lib/aws-sdk-core/xml/error_handler.rb +3 -1
  36. data/lib/aws-sdk-sso/client.rb +25 -19
  37. data/lib/aws-sdk-sso/endpoint_provider.rb +2 -2
  38. data/lib/aws-sdk-sso.rb +1 -1
  39. data/lib/aws-sdk-ssooidc/client.rb +38 -21
  40. data/lib/aws-sdk-ssooidc/client_api.rb +6 -0
  41. data/lib/aws-sdk-ssooidc/types.rb +28 -1
  42. data/lib/aws-sdk-ssooidc.rb +1 -1
  43. data/lib/aws-sdk-sts/client.rb +25 -19
  44. data/lib/aws-sdk-sts/client_api.rb +10 -8
  45. data/lib/aws-sdk-sts/endpoint_provider.rb +18 -18
  46. data/lib/aws-sdk-sts/errors.rb +0 -1
  47. data/lib/aws-sdk-sts/presigner.rb +2 -6
  48. data/lib/aws-sdk-sts.rb +1 -1
  49. data/lib/seahorse/client/async_base.rb +4 -5
  50. data/lib/seahorse/client/base.rb +0 -14
  51. data/lib/seahorse/client/h2/connection.rb +18 -28
  52. data/lib/seahorse/client/http/response.rb +1 -1
  53. data/lib/seahorse/client/net_http/connection_pool.rb +2 -1
  54. data/lib/seahorse/client/networking_error.rb +1 -1
  55. data/lib/seahorse/client/plugins/h2.rb +4 -4
  56. data/lib/seahorse/client/request_context.rb +2 -2
  57. data/lib/seahorse/util.rb +2 -1
  58. data/sig/aws-sdk-core/async_client_stubs.rbs +21 -0
  59. data/sig/seahorse/client/async_base.rbs +18 -0
  60. metadata +34 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3240fa70bcc8af09bd2cf7dfaaa5801cb7786c7fd253beff8d859e6a65a4b135
4
- data.tar.gz: cf8950c3f0291a93298b3723eb697d6930f55d6fcc6ddd4ed197db3d2225b8bf
3
+ metadata.gz: ecdbb0ca615cde813f52b03861d36db189562c896e01499ed8dcd80768085300
4
+ data.tar.gz: 5ab8e9d52d9f7522afa27ff7c5c6e5e51f27f966ddba8bea62edb153307120c9
5
5
  SHA512:
6
- metadata.gz: d2cbfdcdb577a82a691c172f3f69785e0d0ab980fdf2cbb9387ef60c8b32531a0804f7cee8c799e7be17f8c6c2a43956fec8ad6425147516c1aaec75a3e6cb42
7
- data.tar.gz: 0de986f5a38fc00014c90010e259c30c1c30714f8191aa1858af4a2bc6cf075ffd52d8caf1da4eacaaab0b987bc5cf245061d951b8fe86be0cba0b0f793a38fa
6
+ metadata.gz: b23f5bc51a113cfb8b6c0f7306d42c97872d2eff0c5fa0b395b9e714045c8a3446e91313d6d17317419520229ea809097e3abb794f2f448bd698ec982841032f
7
+ data.tar.gz: a02785a5b072cb04d27203fb6e990cfa01b10c59f8abdb221b0181b4d07d56a04d0bcc67f308a10fbeba0f3facdadabb77918815e10dbcd8629df25a6d41cc42
data/CHANGELOG.md CHANGED
@@ -1,6 +1,146 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 3.232.0 (2025-08-28)
5
+ ------------------
6
+
7
+ * Feature - Updated Aws::SSO::Client with the latest API changes.
8
+
9
+ * Feature - Remove incorrect endpoint tests
10
+
11
+ 3.231.0 (2025-08-26)
12
+ ------------------
13
+
14
+ * Feature - Remove incorrect endpoint tests
15
+
16
+ * Feature - Add support for ENV as credential source for `AssumeRoleCredentials`.
17
+
18
+ 3.230.0 (2025-08-21)
19
+ ------------------
20
+
21
+ * Feature - Remove incorrect endpoint tests
22
+
23
+ 3.229.0 (2025-08-04)
24
+ ------------------
25
+
26
+ * Feature - Updated Aws::STS::Client with the latest API changes.
27
+
28
+ * Feature - Updated Aws::SSOOIDC::Client with the latest API changes.
29
+
30
+ * Feature - Updated Aws::SSO::Client with the latest API changes.
31
+
32
+ 3.228.0 (2025-07-31)
33
+ ------------------
34
+
35
+ * Feature - Add `bigdecimal` as a dependency. For systems that are not able to build native extension gems, prefer the locally installed `bigdecimal` with `bundle install --prefer-local`.
36
+
37
+ 3.227.0 (2025-07-21)
38
+ ------------------
39
+
40
+ * Feature - Updated Aws::STS::Client with the latest API changes.
41
+
42
+ * Feature - Updated Aws::SSOOIDC::Client with the latest API changes.
43
+
44
+ * Feature - Updated Aws::SSO::Client with the latest API changes.
45
+
46
+ * Feature - Support an auth scheme signing preference list using `ENV['AWS_AUTH_SCHEME_PREFERENCE']` or `auth_scheme_preference` in shared configuration.
47
+
48
+ * Feature - Support metric tracking for Bedrock Bearer tokens.
49
+
50
+ 3.226.3 (2025-07-17)
51
+ ------------------
52
+
53
+ * Issue - Skip `Aws::InstanceProfileCredentials` instantiation when `ENV['AWS_EC2_METADATA_DISABLED']` is set to `true` in the credential resolution chain.
54
+
55
+ * Issue - Refactor `InstanceProfileCredentials` to improve code clarity and documentation.
56
+
57
+ 3.226.2 (2025-07-01)
58
+ ------------------
59
+
60
+ * Issue - Document incorrect behavior in protocol error parsing (specifically around query and query compatible services).
61
+
62
+ 3.226.1 (2025-06-24)
63
+ ------------------
64
+
65
+ * Issue - Fixed spelling in the `Aws::Errors::SignalEventError` error message.
66
+
67
+ 3.226.0 (2025-06-17)
68
+ ------------------
69
+
70
+ * Feature - Updated Aws::STS::Client with the latest API changes.
71
+
72
+ * Feature - The AWS Security Token Service APIs AssumeRoleWithSAML and AssumeRoleWithWebIdentity can now be invoked without pre-configured AWS credentials in the SDK configuration.
73
+
74
+ 3.225.2 (2025-06-10)
75
+ ------------------
76
+
77
+ * Issue - Only load required `cgi` modules for Ruby 3.5.
78
+
79
+ 3.225.1 (2025-06-05)
80
+ ------------------
81
+
82
+ * Issue - Fix RPCv2 parser to handle flattened list and flattened map members correctly for `AwsQueryCompatible` services.
83
+
84
+ 3.225.0 (2025-06-02)
85
+ ------------------
86
+
87
+ * Feature - AWS SDK for Ruby no longer supports Ruby runtime versions 2.5 and 2.6.
88
+
89
+ 3.224.1 (2025-05-28)
90
+ ------------------
91
+
92
+ * Issue - Signal data in http response listeners prior to writing, so that data can be inspected or verified before potential mutation.
93
+
94
+ 3.224.0 (2025-05-12)
95
+ ------------------
96
+
97
+ * Feature - Updated Aws::STS::Client with the latest API changes.
98
+
99
+ * Feature - Updated Aws::SSOOIDC::Client with the latest API changes.
100
+
101
+ * Feature - Updated Aws::SSO::Client with the latest API changes.
102
+
103
+ * Feature - Support `ENV['AWS_DISABLE_HOST_PREFIX_INJECTION']` and `disable_host_prefix_injection` shared config to disable host prefix injection for all services.
104
+
105
+ 3.223.0 (2025-05-01)
106
+ ------------------
107
+
108
+ * Feature - Updated Aws::STS::Client with the latest API changes.
109
+
110
+ 3.222.3 (2025-04-28)
111
+ ------------------
112
+
113
+ * Issue - Do not dynamically create operation methods from the API. (#3234)
114
+
115
+ 3.222.2 (2025-04-16)
116
+ ------------------
117
+
118
+ * Issue - Additional metrics collection for credentials in the User-Agent plugin.
119
+
120
+ 3.222.1 (2025-03-28)
121
+ ------------------
122
+
123
+ * Issue - Allow explicit modeled headers to override prefixed headers for `rest` protocols.
124
+
125
+ 3.222.0 (2025-03-27)
126
+ ------------------
127
+
128
+ * Feature - Updated Aws::SSOOIDC::Client with the latest API changes.
129
+
130
+ * Feature - This release adds AwsAdditionalDetails in the CreateTokenWithIAM API response.
131
+
132
+ 3.221.0 (2025-03-24)
133
+ ------------------
134
+
135
+ * Feature - Add `logger` as an explicit dependency for Ruby 3.5.
136
+ * Issue - Enable ALPN over TLS for H2 Connection by default.
137
+ * Issue - Fix HTTP-2 connections to properly use config values configured on the client.
138
+
139
+ 3.220.2 (2025-03-20)
140
+ ------------------
141
+
142
+ * Issue - Enable ALPN over TLS for H2 by default.
143
+
4
144
  3.220.1 (2025-03-06)
5
145
  ------------------
6
146
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.220.1
1
+ 3.232.0
@@ -50,6 +50,7 @@ module Aws
50
50
  end
51
51
  @client = client_opts[:client] || STS::Client.new(client_opts)
52
52
  @async_refresh = true
53
+ @metrics = ['CREDENTIALS_STS_ASSUME_ROLE']
53
54
  super
54
55
  end
55
56
 
@@ -61,6 +61,7 @@ module Aws
61
61
  @assume_role_web_identity_params[:role_session_name] = _session_name
62
62
  end
63
63
  @client = client_opts[:client] || STS::Client.new(client_opts.merge(credentials: nil))
64
+ @metrics = ['CREDENTIALS_STS_ASSUME_ROLE_WEB_ID']
64
65
  super
65
66
  end
66
67
 
@@ -9,6 +9,10 @@ module Aws
9
9
  # @return [Time]
10
10
  attr_reader :expiration
11
11
 
12
+ # @api private
13
+ # Returns UserAgent metrics for credentials.
14
+ attr_accessor :metrics
15
+
12
16
  # @return [Boolean]
13
17
  def set?
14
18
  !!@credentials && @credentials.set?
@@ -42,12 +42,14 @@ module Aws
42
42
 
43
43
  def static_credentials(options)
44
44
  if options[:config]
45
- Credentials.new(
45
+ creds = Credentials.new(
46
46
  options[:config].access_key_id,
47
47
  options[:config].secret_access_key,
48
48
  options[:config].session_token,
49
49
  account_id: options[:config].account_id
50
50
  )
51
+ creds.metrics = ['CREDENTIALS_PROFILE']
52
+ creds
51
53
  end
52
54
  end
53
55
 
@@ -76,7 +78,9 @@ module Aws
76
78
 
77
79
  def static_profile_credentials(options)
78
80
  if options[:config] && options[:config].profile
79
- SharedCredentials.new(profile_name: options[:config].profile)
81
+ creds = SharedCredentials.new(profile_name: options[:config].profile)
82
+ creds.metrics = ['CREDENTIALS_PROFILE']
83
+ creds
80
84
  end
81
85
  rescue Errors::NoSuchProfileError
82
86
  nil
@@ -85,7 +89,11 @@ module Aws
85
89
  def static_profile_process_credentials(options)
86
90
  if Aws.shared_config.config_enabled? && options[:config] && options[:config].profile
87
91
  process_provider = Aws.shared_config.credential_process(profile: options[:config].profile)
88
- ProcessCredentials.new([process_provider]) if process_provider
92
+ if process_provider
93
+ creds = ProcessCredentials.new([process_provider])
94
+ creds.metrics << 'CREDENTIALS_PROFILE_PROCESS'
95
+ creds
96
+ end
89
97
  end
90
98
  rescue Errors::NoSuchProfileError
91
99
  nil
@@ -96,12 +104,14 @@ module Aws
96
104
  secret = %w[AWS_SECRET_ACCESS_KEY AMAZON_SECRET_ACCESS_KEY AWS_SECRET_KEY]
97
105
  token = %w[AWS_SESSION_TOKEN AMAZON_SESSION_TOKEN]
98
106
  account_id = %w[AWS_ACCOUNT_ID]
99
- Credentials.new(
107
+ creds = Credentials.new(
100
108
  envar(key),
101
109
  envar(secret),
102
110
  envar(token),
103
111
  account_id: envar(account_id)
104
112
  )
113
+ creds.metrics = ['CREDENTIALS_ENV_VARS']
114
+ creds
105
115
  end
106
116
 
107
117
  def envar(keys)
@@ -117,7 +127,9 @@ module Aws
117
127
 
118
128
  def shared_credentials(options)
119
129
  profile_name = determine_profile_name(options)
120
- SharedCredentials.new(profile_name: profile_name)
130
+ creds = SharedCredentials.new(profile_name: profile_name)
131
+ creds.metrics = ['CREDENTIALS_PROFILE']
132
+ creds
121
133
  rescue Errors::NoSuchProfileError
122
134
  nil
123
135
  end
@@ -126,7 +138,11 @@ module Aws
126
138
  profile_name = determine_profile_name(options)
127
139
  if Aws.shared_config.config_enabled?
128
140
  process_provider = Aws.shared_config.credential_process(profile: profile_name)
129
- ProcessCredentials.new([process_provider]) if process_provider
141
+ if process_provider
142
+ creds = ProcessCredentials.new([process_provider])
143
+ creds.metrics << 'CREDENTIALS_PROFILE_PROCESS'
144
+ creds
145
+ end
130
146
  end
131
147
  rescue Errors::NoSuchProfileError
132
148
  nil
@@ -156,7 +172,11 @@ module Aws
156
172
  role_session_name: ENV['AWS_ROLE_SESSION_NAME']
157
173
  }
158
174
  cfg[:region] = region if region
159
- AssumeRoleWebIdentityCredentials.new(cfg)
175
+ Aws::Plugins::UserAgent.metric('CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN') do
176
+ creds = AssumeRoleWebIdentityCredentials.new(cfg)
177
+ creds.metrics << 'CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN'
178
+ creds
179
+ end
160
180
  elsif Aws.shared_config.config_enabled?
161
181
  profile = options[:config].profile if options[:config]
162
182
  Aws.shared_config.assume_role_web_identity_credentials_from_config(
@@ -171,7 +191,7 @@ module Aws
171
191
  if ENV['AWS_CONTAINER_CREDENTIALS_RELATIVE_URI'] ||
172
192
  ENV['AWS_CONTAINER_CREDENTIALS_FULL_URI']
173
193
  ECSCredentials.new(options)
174
- else
194
+ elsif !(ENV.fetch('AWS_EC2_METADATA_DISABLED', 'false').downcase == 'true')
175
195
  InstanceProfileCredentials.new(options.merge(profile: profile_name))
176
196
  end
177
197
  end
@@ -14,6 +14,7 @@ module Aws
14
14
  @secret_access_key = secret_access_key
15
15
  @session_token = session_token
16
16
  @account_id = kwargs[:account_id]
17
+ @metrics = ['CREDENTIALS_CODE']
17
18
  end
18
19
 
19
20
  # @return [String]
@@ -28,6 +29,11 @@ module Aws
28
29
  # @return [String, nil]
29
30
  attr_reader :account_id
30
31
 
32
+ # @api private
33
+ # Returns the credentials source. Used for tracking credentials
34
+ # related UserAgent metrics.
35
+ attr_accessor :metrics
36
+
31
37
  # @return [Credentials]
32
38
  def credentials
33
39
  self
@@ -77,6 +77,7 @@ module Aws
77
77
  @http_debug_output = options[:http_debug_output]
78
78
  @backoff = backoff(options[:backoff])
79
79
  @async_refresh = false
80
+ @metrics = ['CREDENTIALS_HTTP']
80
81
  super
81
82
  end
82
83
 
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'cgi'
3
+ require "cgi/escape"
4
+ require "cgi/util" if RUBY_VERSION < "3.5"
4
5
 
5
6
  module Aws
6
7
  module Endpoints
@@ -19,19 +19,28 @@ require 'aws-sigv4'
19
19
  module Aws
20
20
  # @api private
21
21
  module Endpoints
22
- SUPPORTED_AUTH_TRAITS = %w[
23
- aws.auth#sigv4
24
- aws.auth#sigv4a
25
- smithy.api#httpBearerAuth
26
- smithy.api#noAuth
27
- ].freeze
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
28
39
 
29
40
  class << self
30
41
  def resolve_auth_scheme(context, endpoint)
31
42
  if endpoint && (auth_schemes = endpoint.properties['authSchemes'])
32
- auth_scheme = auth_schemes.find do |scheme|
33
- Aws::Plugins::Sign::SUPPORTED_AUTH_TYPES.include?(scheme['name'])
34
- end
43
+ auth_scheme = endpoint_auth_scheme_preference(auth_schemes, context.config.auth_scheme_preference)
35
44
  raise 'No supported auth scheme for this endpoint.' unless auth_scheme
36
45
 
37
46
  merge_signing_defaults(auth_scheme, context.config)
@@ -42,6 +51,16 @@ module Aws
42
51
 
43
52
  private
44
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
+
45
64
  def merge_signing_defaults(auth_scheme, config)
46
65
  if %w[sigv4 sigv4a sigv4-s3express].include?(auth_scheme['name'])
47
66
  auth_scheme['signingName'] ||= sigv4_name(config)
@@ -64,13 +83,12 @@ module Aws
64
83
  end
65
84
 
66
85
  def sigv4_name(config)
67
- config.api.metadata['signingName'] ||
68
- config.api.metadata['endpointPrefix']
86
+ config.api.metadata['signingName'] || config.api.metadata['endpointPrefix']
69
87
  end
70
88
 
71
89
  def default_auth_scheme(context)
72
- if (auth_list = default_api_auth(context))
73
- auth = auth_list.find { |a| SUPPORTED_AUTH_TRAITS.include?(a) }
90
+ if (modeled_auth = default_api_auth(context))
91
+ auth = modeled_auth_scheme_preference(modeled_auth, context.config.auth_scheme_preference)
74
92
  case auth
75
93
  when 'aws.auth#sigv4', 'aws.auth#sigv4a'
76
94
  auth_scheme = { 'name' => auth.split('#').last }
@@ -93,6 +111,12 @@ module Aws
93
111
  end
94
112
  end
95
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
+
96
120
  def default_api_auth(context)
97
121
  context.config.api.operation(context.operation_name)['auth'] ||
98
122
  context.config.api.metadata['auth']
@@ -1,12 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Aws
4
+ # @api private
4
5
  class ErrorHandler < Seahorse::Client::Handler
5
6
 
6
7
  private
7
8
 
8
9
  def error(context)
9
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.
10
15
  if body.empty?
11
16
  code, message, data = http_status_error(context)
12
17
  else
@@ -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
@@ -31,7 +31,7 @@ module Aws
31
31
  def emit(type, params)
32
32
  unless @stream
33
33
  raise Aws::Errors::SignalEventError.new(
34
- "Singaling events before making async request"\
34
+ "Signaling events before making async request"\
35
35
  " is not allowed."
36
36
  )
37
37
  end