aws-sdk-core 3.222.1 → 3.222.2
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 +5 -0
- data/VERSION +1 -1
- data/lib/aws-sdk-core/assume_role_credentials.rb +1 -0
- data/lib/aws-sdk-core/assume_role_web_identity_credentials.rb +1 -0
- data/lib/aws-sdk-core/credential_provider.rb +4 -0
- data/lib/aws-sdk-core/credential_provider_chain.rb +27 -7
- data/lib/aws-sdk-core/credentials.rb +6 -0
- data/lib/aws-sdk-core/ecs_credentials.rb +1 -0
- data/lib/aws-sdk-core/errors.rb +2 -2
- data/lib/aws-sdk-core/instance_profile_credentials.rb +1 -0
- data/lib/aws-sdk-core/plugins/client_metrics_plugin.rb +0 -1
- data/lib/aws-sdk-core/plugins/sign.rb +15 -1
- data/lib/aws-sdk-core/plugins/user_agent.rb +23 -2
- data/lib/aws-sdk-core/process_credentials.rb +1 -1
- data/lib/aws-sdk-core/shared_config.rb +71 -21
- data/lib/aws-sdk-core/shared_credentials.rb +1 -0
- data/lib/aws-sdk-core/sso_credentials.rb +2 -0
- data/lib/aws-sdk-sso/client.rb +1 -1
- data/lib/aws-sdk-sso.rb +1 -1
- data/lib/aws-sdk-ssooidc/client.rb +1 -1
- data/lib/aws-sdk-ssooidc.rb +1 -1
- data/lib/aws-sdk-sts/client.rb +1 -1
- data/lib/aws-sdk-sts.rb +1 -1
- data/lib/seahorse/client/networking_error.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f3ac3e91203df90508403c590586d006a456980b925d1f3b45ac39f5ab807ad3
|
4
|
+
data.tar.gz: 5ac691c82cc34033495e1acb648e5fb98362b9f8b814c05ceb154e9533313a4b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a3cf479d00b658644362745e1534b022e8bcc572c672addea625af06c8e30222dfc8c22def2cf506920386592bc96c323ede30f6daba28c04635021dd54fe304
|
7
|
+
data.tar.gz: cf05a4850b23d5a8b713f3cd20a17b1c984f6f094bb6cabcb2006721f8718fe8c3260074e06760b63e1e21f4a1124ee74fd921add8d19acaa5c558abb84dd955
|
data/CHANGELOG.md
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.222.
|
1
|
+
3.222.2
|
@@ -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
|
-
|
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
|
-
|
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
|
-
|
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(
|
@@ -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
|
data/lib/aws-sdk-core/errors.rb
CHANGED
@@ -68,7 +68,7 @@ module Aws
|
|
68
68
|
end
|
69
69
|
end
|
70
70
|
|
71
|
-
#
|
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
|
-
#
|
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
|
@@ -180,7 +180,6 @@ all generated client side metrics. Defaults to an empty string.
|
|
180
180
|
complete_opts = {
|
181
181
|
latency: end_time - start_time,
|
182
182
|
attempt_count: context.retries + 1,
|
183
|
-
user_agent: context.http_request.headers["user-agent"],
|
184
183
|
final_error_retryable: final_error_retryable,
|
185
184
|
final_http_status_code: context.http_response.status_code,
|
186
185
|
final_aws_exception: final_aws_exception,
|
@@ -41,6 +41,7 @@ module Aws
|
|
41
41
|
class Handler < Seahorse::Client::Handler
|
42
42
|
def call(context)
|
43
43
|
# Skip signing if using sigv2 signing from s3_signer in S3
|
44
|
+
credentials = nil
|
44
45
|
unless v2_signing?(context.config)
|
45
46
|
signer = Sign.signer_for(
|
46
47
|
context[:auth_scheme],
|
@@ -48,13 +49,20 @@ module Aws
|
|
48
49
|
context[:sigv4_region],
|
49
50
|
context[:sigv4_credentials]
|
50
51
|
)
|
52
|
+
credentials = signer.credentials if signer.is_a?(SignatureV4)
|
51
53
|
signer.sign(context)
|
52
54
|
end
|
53
|
-
@handler.call(context)
|
55
|
+
with_metrics(credentials) { @handler.call(context) }
|
54
56
|
end
|
55
57
|
|
56
58
|
private
|
57
59
|
|
60
|
+
def with_metrics(credentials, &block)
|
61
|
+
return block.call unless credentials&.respond_to?(:metrics)
|
62
|
+
|
63
|
+
Aws::Plugins::UserAgent.metric(*credentials.metrics, &block)
|
64
|
+
end
|
65
|
+
|
58
66
|
def v2_signing?(config)
|
59
67
|
# 's3' is legacy signing, 'v4' is default
|
60
68
|
config.respond_to?(:signature_version) &&
|
@@ -92,6 +100,8 @@ module Aws
|
|
92
100
|
|
93
101
|
# @api private
|
94
102
|
class SignatureV4
|
103
|
+
attr_reader :signer
|
104
|
+
|
95
105
|
def initialize(auth_scheme, config, sigv4_overrides = {})
|
96
106
|
scheme_name = auth_scheme['name']
|
97
107
|
|
@@ -155,6 +165,10 @@ module Aws
|
|
155
165
|
@signer.sign_event(*args)
|
156
166
|
end
|
157
167
|
|
168
|
+
def credentials
|
169
|
+
@signer.credentials_provider
|
170
|
+
end
|
171
|
+
|
158
172
|
private
|
159
173
|
|
160
174
|
def apply_authtype(context, req)
|
@@ -34,7 +34,27 @@ module Aws
|
|
34
34
|
"FLEXIBLE_CHECKSUMS_REQ_WHEN_SUPPORTED" : "Z",
|
35
35
|
"FLEXIBLE_CHECKSUMS_REQ_WHEN_REQUIRED" : "a",
|
36
36
|
"FLEXIBLE_CHECKSUMS_RES_WHEN_SUPPORTED" : "b",
|
37
|
-
"FLEXIBLE_CHECKSUMS_RES_WHEN_REQUIRED" : "c"
|
37
|
+
"FLEXIBLE_CHECKSUMS_RES_WHEN_REQUIRED" : "c",
|
38
|
+
"DDB_MAPPER": "d",
|
39
|
+
"CREDENTIALS_CODE" : "e",
|
40
|
+
"CREDENTIALS_ENV_VARS" : "g",
|
41
|
+
"CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN" : "h",
|
42
|
+
"CREDENTIALS_STS_ASSUME_ROLE" : "i",
|
43
|
+
"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID" : "k",
|
44
|
+
"CREDENTIALS_PROFILE" : "n",
|
45
|
+
"CREDENTIALS_PROFILE_SOURCE_PROFILE" : "o",
|
46
|
+
"CREDENTIALS_PROFILE_NAMED_PROVIDER" : "p",
|
47
|
+
"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN" : "q",
|
48
|
+
"CREDENTIALS_PROFILE_SSO" : "r",
|
49
|
+
"CREDENTIALS_SSO" : "s",
|
50
|
+
"CREDENTIALS_PROFILE_SSO_LEGACY" : "t",
|
51
|
+
"CREDENTIALS_SSO_LEGACY" : "u",
|
52
|
+
"CREDENTIALS_PROFILE_PROCESS" : "v",
|
53
|
+
"CREDENTIALS_PROCESS" : "w",
|
54
|
+
"CREDENTIALS_HTTP" : "z",
|
55
|
+
"CREDENTIALS_IMDS" : "0",
|
56
|
+
"SSO_LOGIN_DEVICE" : "1",
|
57
|
+
"SSO_LOGIN_AUTH" : "2"
|
38
58
|
}
|
39
59
|
METRICS
|
40
60
|
|
@@ -196,7 +216,8 @@ variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.
|
|
196
216
|
end
|
197
217
|
end
|
198
218
|
|
199
|
-
|
219
|
+
# Priority set to 5 in order to add user agent as late as possible after signing
|
220
|
+
handler(Handler, step: :sign, priority: 5)
|
200
221
|
end
|
201
222
|
end
|
202
223
|
end
|
@@ -138,7 +138,11 @@ module Aws
|
|
138
138
|
role_session_name: entry['role_session_name']
|
139
139
|
}
|
140
140
|
cfg[:region] = opts[:region] if opts[:region]
|
141
|
-
|
141
|
+
with_metrics('CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN') do
|
142
|
+
creds = AssumeRoleWebIdentityCredentials.new(cfg)
|
143
|
+
creds.metrics << 'CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN'
|
144
|
+
creds
|
145
|
+
end
|
142
146
|
end
|
143
147
|
end
|
144
148
|
end
|
@@ -255,8 +259,8 @@ module Aws
|
|
255
259
|
'provide only source_profile or credential_source, not both.'
|
256
260
|
elsif opts[:source_profile]
|
257
261
|
opts[:visited_profiles] ||= Set.new
|
258
|
-
|
259
|
-
if opts[:credentials]
|
262
|
+
provider = resolve_source_profile(opts[:source_profile], opts)
|
263
|
+
if provider && (opts[:credentials] = provider.credentials)
|
260
264
|
opts[:role_session_name] ||= prof_cfg['role_session_name']
|
261
265
|
opts[:role_session_name] ||= 'default_session'
|
262
266
|
opts[:role_arn] ||= prof_cfg['role_arn']
|
@@ -265,17 +269,28 @@ module Aws
|
|
265
269
|
opts[:serial_number] ||= prof_cfg['mfa_serial']
|
266
270
|
opts[:profile] = opts.delete(:source_profile)
|
267
271
|
opts.delete(:visited_profiles)
|
268
|
-
|
272
|
+
|
273
|
+
metrics = provider.metrics
|
274
|
+
if provider.is_a?(AssumeRoleCredentials)
|
275
|
+
opts[:credentials] = provider
|
276
|
+
metrics.delete('CREDENTIALS_STS_ASSUME_ROLE')
|
277
|
+
else
|
278
|
+
metrics << 'CREDENTIALS_PROFILE_SOURCE_PROFILE'
|
279
|
+
end
|
280
|
+
# Set the original credentials metrics to [] to prevent duplicate metrics during sign plugin
|
281
|
+
opts[:credentials].metrics = []
|
282
|
+
with_metrics(metrics) do
|
283
|
+
creds = AssumeRoleCredentials.new(opts)
|
284
|
+
creds.metrics.push(*metrics)
|
285
|
+
creds
|
286
|
+
end
|
269
287
|
else
|
270
288
|
raise Errors::NoSourceProfileError,
|
271
289
|
"Profile #{profile} has a role_arn, and source_profile, but the"\
|
272
290
|
' source_profile does not have credentials.'
|
273
291
|
end
|
274
292
|
elsif credential_source
|
275
|
-
opts[:credentials] = credentials_from_source(
|
276
|
-
credential_source,
|
277
|
-
chain_config
|
278
|
-
)
|
293
|
+
opts[:credentials] = credentials_from_source(credential_source, chain_config)
|
279
294
|
if opts[:credentials]
|
280
295
|
opts[:role_session_name] ||= prof_cfg['role_session_name']
|
281
296
|
opts[:role_session_name] ||= 'default_session'
|
@@ -284,7 +299,16 @@ module Aws
|
|
284
299
|
opts[:external_id] ||= prof_cfg['external_id']
|
285
300
|
opts[:serial_number] ||= prof_cfg['mfa_serial']
|
286
301
|
opts.delete(:source_profile) # Cleanup
|
287
|
-
|
302
|
+
|
303
|
+
metrics = opts[:credentials].metrics
|
304
|
+
metrics << 'CREDENTIALS_PROFILE_NAMED_PROVIDER'
|
305
|
+
# Set the original credentials metrics to [] to prevent duplicate metrics during sign plugin
|
306
|
+
opts[:credentials].metrics = []
|
307
|
+
with_metrics(metrics) do
|
308
|
+
creds = AssumeRoleCredentials.new(opts)
|
309
|
+
creds.metrics.push(*metrics)
|
310
|
+
creds
|
311
|
+
end
|
288
312
|
else
|
289
313
|
raise Errors::NoSourceCredentials,
|
290
314
|
"Profile #{profile} could not get source credentials from"\
|
@@ -312,12 +336,24 @@ module Aws
|
|
312
336
|
elsif profile_config && profile_config['source_profile']
|
313
337
|
opts.delete(:source_profile)
|
314
338
|
assume_role_credentials_from_config(opts.merge(profile: profile))
|
315
|
-
elsif (provider =
|
316
|
-
provider
|
339
|
+
elsif (provider = assume_role_web_identity_credentials_from_config_with_metrics(opts.merge(profile: profile)))
|
340
|
+
provider if provider.credentials.set?
|
317
341
|
elsif (provider = assume_role_process_credentials_from_config(profile))
|
318
|
-
provider
|
319
|
-
elsif (provider =
|
320
|
-
provider
|
342
|
+
provider if provider.credentials.set?
|
343
|
+
elsif (provider = sso_credentials_from_config_with_metrics(profile))
|
344
|
+
provider if provider.credentials.set?
|
345
|
+
end
|
346
|
+
end
|
347
|
+
|
348
|
+
def assume_role_web_identity_credentials_from_config_with_metrics(opts)
|
349
|
+
with_metrics('CREDENTIALS_PROFILE_SOURCE_PROFILE') do
|
350
|
+
assume_role_web_identity_credentials_from_config(opts)
|
351
|
+
end
|
352
|
+
end
|
353
|
+
|
354
|
+
def sso_credentials_from_config_with_metrics(profile)
|
355
|
+
with_metrics('CREDENTIALS_PROFILE_SOURCE_PROFILE') do
|
356
|
+
sso_credentials_from_config(profile: profile)
|
321
357
|
end
|
322
358
|
end
|
323
359
|
|
@@ -342,7 +378,11 @@ module Aws
|
|
342
378
|
if @parsed_config
|
343
379
|
credential_process ||= @parsed_config.fetch(profile, {})['credential_process']
|
344
380
|
end
|
345
|
-
|
381
|
+
if credential_process
|
382
|
+
creds = ProcessCredentials.new([credential_process])
|
383
|
+
creds.metrics << 'CREDENTIALS_PROFILE_PROCESS'
|
384
|
+
creds
|
385
|
+
end
|
346
386
|
end
|
347
387
|
|
348
388
|
def credentials_from_shared(profile, _opts)
|
@@ -386,13 +426,18 @@ module Aws
|
|
386
426
|
sso_start_url = prof_config['sso_start_url']
|
387
427
|
end
|
388
428
|
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
429
|
+
metric = prof_config['sso_session'] ? 'CREDENTIALS_PROFILE_SSO' : 'CREDENTIALS_PROFILE_SSO_LEGACY'
|
430
|
+
with_metrics(metric) do
|
431
|
+
creds = SSOCredentials.new(
|
432
|
+
sso_account_id: prof_config['sso_account_id'],
|
433
|
+
sso_role_name: prof_config['sso_role_name'],
|
434
|
+
sso_session: prof_config['sso_session'],
|
435
|
+
sso_region: sso_region,
|
436
|
+
sso_start_url: sso_start_url
|
395
437
|
)
|
438
|
+
creds.metrics << metric
|
439
|
+
creds
|
440
|
+
end
|
396
441
|
end
|
397
442
|
end
|
398
443
|
|
@@ -420,6 +465,7 @@ module Aws
|
|
420
465
|
prof_config['aws_session_token'],
|
421
466
|
account_id: prof_config['aws_account_id']
|
422
467
|
)
|
468
|
+
creds.metrics = ['CREDENTIALS_PROFILE']
|
423
469
|
creds if creds.set?
|
424
470
|
end
|
425
471
|
|
@@ -480,5 +526,9 @@ module Aws
|
|
480
526
|
|
481
527
|
sso_session
|
482
528
|
end
|
529
|
+
|
530
|
+
def with_metrics(metrics, &block)
|
531
|
+
Aws::Plugins::UserAgent.metric(*metrics, &block)
|
532
|
+
end
|
483
533
|
end
|
484
534
|
end
|
@@ -91,6 +91,7 @@ module Aws
|
|
91
91
|
client_opts[:credentials] = nil
|
92
92
|
@client = Aws::SSO::Client.new(client_opts)
|
93
93
|
end
|
94
|
+
@metrics = ['CREDENTIALS_SSO']
|
94
95
|
else # legacy behavior
|
95
96
|
missing_keys = LEGACY_REQUIRED_OPTS.select { |k| options[k].nil? }
|
96
97
|
unless missing_keys.empty?
|
@@ -111,6 +112,7 @@ module Aws
|
|
111
112
|
client_opts[:credentials] = nil
|
112
113
|
|
113
114
|
@client = options[:client] || Aws::SSO::Client.new(client_opts)
|
115
|
+
@metrics = ['CREDENTIALS_SSO_LEGACY']
|
114
116
|
end
|
115
117
|
|
116
118
|
@async_refresh = true
|
data/lib/aws-sdk-sso/client.rb
CHANGED
data/lib/aws-sdk-sso.rb
CHANGED
data/lib/aws-sdk-ssooidc.rb
CHANGED
data/lib/aws-sdk-sts/client.rb
CHANGED
data/lib/aws-sdk-sts.rb
CHANGED
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.222.
|
4
|
+
version: 3.222.2
|
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: 2025-
|
11
|
+
date: 2025-04-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-eventstream
|