aws-sdk-core 3.125.4 → 3.126.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d956f5e6d85e97d7194140ebd6895c9d2aa15f7fbdf4df299fbfae5c446fd526
4
- data.tar.gz: be536bd215f2d82af6ba69e0b3305c6b429505df744f4b916e393e44f3788663
3
+ metadata.gz: 46193e52f3ea24b17d0d2ff28e7abf1ef462586db550c10f0540810da7a45fed
4
+ data.tar.gz: 3dc8f9629d7d7057632bd639c097747792dd40d6c6c81ca5f91e4366ca9dd6bb
5
5
  SHA512:
6
- metadata.gz: 7e33a55d282fd01460a9c13a63bfa20dcb170ecc8cefa4c46417a875226f2f0a1b5db928fbd685e10daf36e720741384afd632f97a246af3537354a3bb8d15e4
7
- data.tar.gz: d1f1e737259c6d95c3246e001e08b2f6abc1f447a264399afb0137e30d51f7c8881b204c29d047e8bf0bcc955c1e9f341f9b03bcd6bd318218cc14ea75c5eb21
6
+ metadata.gz: 6f72443886e4e7077c1dc7d1f816b1774ceeae361f13e6f13a5ce532bc77a669e297e5fb3f3582eb772563e315dd0afcef9c5d9acd45d672fea79706537b8868
7
+ data.tar.gz: 3ed264c5a2ed5cb2dcd3c050224785e62618ded48137d8dd217a75107865f58679a26e5ded1e8498971e8de862e8f91e684eb1a5c64fa9e3db3f53d186d8b351
data/CHANGELOG.md CHANGED
@@ -1,6 +1,28 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 3.126.1 (2022-02-14)
5
+ ------------------
6
+
7
+ * Issue - Set `create_time` on IMDS tokens before fetch to reduce chance of using expired tokens and retry failures due to using expired tokens.
8
+
9
+ 3.126.0 (2022-02-03)
10
+ ------------------
11
+
12
+ * Feature - Updated Aws::SSO::Client with the latest API changes.
13
+
14
+ * Feature - Add support for recursion detection.
15
+
16
+ 3.125.6 (2022-02-02)
17
+ ------------------
18
+
19
+ * Issue - Ensure default message for ServiceError is a string (#2643).
20
+
21
+ 3.125.5 (2022-01-19)
22
+ ------------------
23
+
24
+ * Issue - Correctly serialize empty header lists.
25
+
4
26
  3.125.4 (2022-01-18)
5
27
  ------------------
6
28
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.125.4
1
+ 3.126.1
@@ -136,8 +136,9 @@ module Aws
136
136
 
137
137
  def fetch_token
138
138
  open_connection do |conn|
139
+ created_time = Time.now
139
140
  token_value, token_ttl = http_put(conn, @token_ttl)
140
- @token = Token.new(value: token_value, ttl: token_ttl)
141
+ @token = Token.new(value: token_value, ttl: token_ttl, created_time: created_time)
141
142
  end
142
143
  end
143
144
 
@@ -222,7 +223,7 @@ module Aws
222
223
  def initialize(options = {})
223
224
  @ttl = options[:ttl]
224
225
  @value = options[:value]
225
- @created_time = Time.now
226
+ @created_time = options[:created_time] || Time.now
226
227
  end
227
228
 
228
229
  # [String] Returns the token value.
@@ -18,7 +18,7 @@ module Aws
18
18
  @code = self.class.code
19
19
  @context = context
20
20
  @data = data
21
- @message = message && !message.empty? ? message : self.class
21
+ @message = message && !message.empty? ? message : self.class.to_s
22
22
  super(@message)
23
23
  end
24
24
 
@@ -153,10 +153,11 @@ module Aws
153
153
  begin
154
154
  retry_errors(NETWORK_ERRORS, max_retries: @retries) do
155
155
  unless token_set?
156
+ created_time = Time.now
156
157
  token_value, ttl = http_put(
157
158
  conn, METADATA_TOKEN_PATH, @token_ttl
158
159
  )
159
- @token = Token.new(token_value, ttl) if token_value && ttl
160
+ @token = Token.new(token_value, ttl, created_time) if token_value && ttl
160
161
  end
161
162
  end
162
163
  rescue *NETWORK_ERRORS
@@ -166,9 +167,17 @@ module Aws
166
167
  end
167
168
 
168
169
  token = @token.value if token_set?
169
- metadata = http_get(conn, METADATA_PATH_BASE, token)
170
- profile_name = metadata.lines.first.strip
171
- http_get(conn, METADATA_PATH_BASE + profile_name, token)
170
+
171
+ begin
172
+ metadata = http_get(conn, METADATA_PATH_BASE, token)
173
+ profile_name = metadata.lines.first.strip
174
+ http_get(conn, METADATA_PATH_BASE + profile_name, token)
175
+ rescue TokenExpiredError
176
+ # Token has expired, reset it
177
+ # The next retry should fetch it
178
+ @token = nil
179
+ raise Non200Response
180
+ end
172
181
  end
173
182
  end
174
183
  rescue
@@ -200,9 +209,15 @@ module Aws
200
209
  headers = { 'User-Agent' => "aws-sdk-ruby3/#{CORE_GEM_VERSION}" }
201
210
  headers['x-aws-ec2-metadata-token'] = token if token
202
211
  response = connection.request(Net::HTTP::Get.new(path, headers))
203
- raise Non200Response unless response.code.to_i == 200
204
212
 
205
- response.body
213
+ case response.code.to_i
214
+ when 200
215
+ response.body
216
+ when 401
217
+ raise TokenExpiredError
218
+ else
219
+ raise Non200Response
220
+ end
206
221
  end
207
222
 
208
223
  # PUT request fetch token with ttl
@@ -244,10 +259,10 @@ module Aws
244
259
  # @api private
245
260
  # Token used to fetch IMDS profile and credentials
246
261
  class Token
247
- def initialize(value, ttl)
262
+ def initialize(value, ttl, created_time = Time.now)
248
263
  @ttl = ttl
249
264
  @value = value
250
- @created_time = Time.now
265
+ @created_time = created_time
251
266
  end
252
267
 
253
268
  # [String] token value
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Aws
4
+ module Plugins
5
+ # @api private
6
+ class RecursionDetection < Seahorse::Client::Plugin
7
+
8
+ # @api private
9
+ class Handler < Seahorse::Client::Handler
10
+ def call(context)
11
+
12
+ unless context.http_request.headers.key?('x-amz-trace-id')
13
+ if ENV['AWS_LAMBDA_FUNCTION_NAME'] &&
14
+ (trace_id = ENV['_X_AMZ_TRACE_ID'])
15
+ context.http_request.headers['x-amz-trace-id'] = trace_id
16
+ end
17
+ end
18
+ @handler.call(context)
19
+ end
20
+ end
21
+
22
+ # should be at the end of build so that
23
+ # modeled traits / service customizations apply first
24
+ handler(Handler, step: :build, order: 99)
25
+ end
26
+ end
27
+ end
@@ -32,12 +32,11 @@ module Aws
32
32
 
33
33
  def apply_header_value(headers, ref, value)
34
34
  value = apply_json_trait(value) if ref['jsonvalue']
35
- headers[ref.location_name] =
36
- case ref.shape
37
- when TimestampShape then timestamp(ref, value)
38
- when ListShape then list(ref, value)
39
- else value.to_s
40
- end
35
+ case ref.shape
36
+ when TimestampShape then headers[ref.location_name] = timestamp(ref, value)
37
+ when ListShape then list(headers, ref, value)
38
+ else headers[ref.location_name] = value.to_s
39
+ end
41
40
  end
42
41
 
43
42
  def timestamp(ref, value)
@@ -50,8 +49,9 @@ module Aws
50
49
  end
51
50
  end
52
51
 
53
- def list(_ref, value)
54
- value
52
+ def list(headers, ref, value)
53
+ return if !value || value.empty?
54
+ headers[ref.location_name] = value
55
55
  .compact
56
56
  .map { |s| escape_header_list_string(s.to_s) }
57
57
  .join(",")
@@ -28,6 +28,7 @@ require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
28
28
  require 'aws-sdk-core/plugins/transfer_encoding.rb'
29
29
  require 'aws-sdk-core/plugins/http_checksum.rb'
30
30
  require 'aws-sdk-core/plugins/defaults_mode.rb'
31
+ require 'aws-sdk-core/plugins/recursion_detection.rb'
31
32
  require 'aws-sdk-core/plugins/signature_v4.rb'
32
33
  require 'aws-sdk-core/plugins/protocols/rest_json.rb'
33
34
 
@@ -75,6 +76,7 @@ module Aws::SSO
75
76
  add_plugin(Aws::Plugins::TransferEncoding)
76
77
  add_plugin(Aws::Plugins::HttpChecksum)
77
78
  add_plugin(Aws::Plugins::DefaultsMode)
79
+ add_plugin(Aws::Plugins::RecursionDetection)
78
80
  add_plugin(Aws::Plugins::SignatureV4)
79
81
  add_plugin(Aws::Plugins::Protocols::RestJson)
80
82
 
@@ -541,7 +543,7 @@ module Aws::SSO
541
543
  params: params,
542
544
  config: config)
543
545
  context[:gem_name] = 'aws-sdk-core'
544
- context[:gem_version] = '3.125.4'
546
+ context[:gem_version] = '3.126.1'
545
547
  Seahorse::Client::Request.new(handlers, context)
546
548
  end
547
549
 
data/lib/aws-sdk-sso.rb CHANGED
@@ -50,6 +50,6 @@ require_relative 'aws-sdk-sso/customizations'
50
50
  # @!group service
51
51
  module Aws::SSO
52
52
 
53
- GEM_VERSION = '3.125.4'
53
+ GEM_VERSION = '3.126.1'
54
54
 
55
55
  end
@@ -28,6 +28,7 @@ require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
28
28
  require 'aws-sdk-core/plugins/transfer_encoding.rb'
29
29
  require 'aws-sdk-core/plugins/http_checksum.rb'
30
30
  require 'aws-sdk-core/plugins/defaults_mode.rb'
31
+ require 'aws-sdk-core/plugins/recursion_detection.rb'
31
32
  require 'aws-sdk-core/plugins/signature_v4.rb'
32
33
  require 'aws-sdk-core/plugins/protocols/query.rb'
33
34
  require 'aws-sdk-sts/plugins/sts_regional_endpoints.rb'
@@ -76,6 +77,7 @@ module Aws::STS
76
77
  add_plugin(Aws::Plugins::TransferEncoding)
77
78
  add_plugin(Aws::Plugins::HttpChecksum)
78
79
  add_plugin(Aws::Plugins::DefaultsMode)
80
+ add_plugin(Aws::Plugins::RecursionDetection)
79
81
  add_plugin(Aws::Plugins::SignatureV4)
80
82
  add_plugin(Aws::Plugins::Protocols::Query)
81
83
  add_plugin(Aws::STS::Plugins::STSRegionalEndpoints)
@@ -2284,7 +2286,7 @@ module Aws::STS
2284
2286
  params: params,
2285
2287
  config: config)
2286
2288
  context[:gem_name] = 'aws-sdk-core'
2287
- context[:gem_version] = '3.125.4'
2289
+ context[:gem_version] = '3.126.1'
2288
2290
  Seahorse::Client::Request.new(handlers, context)
2289
2291
  end
2290
2292
 
data/lib/aws-sdk-sts.rb CHANGED
@@ -50,6 +50,6 @@ require_relative 'aws-sdk-sts/customizations'
50
50
  # @!group service
51
51
  module Aws::STS
52
52
 
53
- GEM_VERSION = '3.125.4'
53
+ GEM_VERSION = '3.126.1'
54
54
 
55
55
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.125.4
4
+ version: 3.126.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-18 00:00:00.000000000 Z
11
+ date: 2022-02-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jmespath
@@ -161,6 +161,7 @@ files:
161
161
  - lib/aws-sdk-core/plugins/protocols/query.rb
162
162
  - lib/aws-sdk-core/plugins/protocols/rest_json.rb
163
163
  - lib/aws-sdk-core/plugins/protocols/rest_xml.rb
164
+ - lib/aws-sdk-core/plugins/recursion_detection.rb
164
165
  - lib/aws-sdk-core/plugins/regional_endpoint.rb
165
166
  - lib/aws-sdk-core/plugins/response_paging.rb
166
167
  - lib/aws-sdk-core/plugins/retries/client_rate_limiter.rb