aws-sdk-core 3.226.3 → 3.229.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bcc66e64079950ab715bf739b9731f997c9d5c933dc6bf1a5a14c30afdf8e640
4
- data.tar.gz: 239c2f96e5984261f5a020a2c219a24f80ccfbeba99ac9f71374d06924728d9f
3
+ metadata.gz: bc59968a13d46354d79845e8249b17859fa38bdb7fbb8c34d7b65d88a4ba944e
4
+ data.tar.gz: 8e320632b66e1cc387e614bcdbb21bcfd4fce75e76829b01cd625be5db34b6f0
5
5
  SHA512:
6
- metadata.gz: dac55de1f81dd26a15940cda1d4c7769aa7d3de2a5a02201c5c965caecd9ddf42fe9158ef16be0b1ec6c1d36ada3fface779f524e769b4ba3153e024eb272ccf
7
- data.tar.gz: f157a62c531b7c3a6ae39f8ef4826161ef5641790d519658e9098571c5bee32f54fc149ae744a799a2e2550ffeb9269a0b23aed0b037368619337ae7e29e2063
6
+ metadata.gz: ad44f4003065f24cdf6900730ef1c19c665041ab130fd9ffde41f69571b1dd87ac18073ced4d7d94884707b79067ba6f8ff3d9f8bfe3e576ca70ec1cf014f14e
7
+ data.tar.gz: de124ed509b1f008238d79221f2ddd71685a2dfc9eb039daaffa7c2202b01581b14c1d234a2c2f292131b51b5155f2504eeee858b31e814e97ec88d467cdbbd0
data/CHANGELOG.md CHANGED
@@ -1,6 +1,33 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 3.229.0 (2025-08-04)
5
+ ------------------
6
+
7
+ * Feature - Updated Aws::STS::Client with the latest API changes.
8
+
9
+ * Feature - Updated Aws::SSOOIDC::Client with the latest API changes.
10
+
11
+ * Feature - Updated Aws::SSO::Client with the latest API changes.
12
+
13
+ 3.228.0 (2025-07-31)
14
+ ------------------
15
+
16
+ * 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`.
17
+
18
+ 3.227.0 (2025-07-21)
19
+ ------------------
20
+
21
+ * Feature - Updated Aws::STS::Client with the latest API changes.
22
+
23
+ * Feature - Updated Aws::SSOOIDC::Client with the latest API changes.
24
+
25
+ * Feature - Updated Aws::SSO::Client with the latest API changes.
26
+
27
+ * Feature - Support an auth scheme signing preference list using `ENV['AWS_AUTH_SCHEME_PREFERENCE']` or `auth_scheme_preference` in shared configuration.
28
+
29
+ * Feature - Support metric tracking for Bedrock Bearer tokens.
30
+
4
31
  3.226.3 (2025-07-17)
5
32
  ------------------
6
33
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.226.3
1
+ 3.229.0
@@ -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']
@@ -14,64 +14,68 @@ module Aws
14
14
 
15
15
  option(:account_id, doc_type: String, docstring: '')
16
16
 
17
- option(:profile,
17
+ option(
18
+ :profile,
18
19
  doc_default: 'default',
19
20
  doc_type: String,
20
- docstring: <<-DOCS)
21
- Used when loading credentials from the shared credentials file
22
- at HOME/.aws/credentials. When not specified, 'default' is used.
21
+ docstring: <<~DOCS)
22
+ Used when loading credentials from the shared credentials file at `HOME/.aws/credentials`.
23
+ When not specified, 'default' is used.
23
24
  DOCS
24
25
 
25
- option(:credentials,
26
+ option(
27
+ :credentials,
26
28
  required: true,
27
29
  doc_type: 'Aws::CredentialProvider',
28
30
  rbs_type: 'untyped',
29
- docstring: <<-DOCS
30
- Your AWS credentials. This can be an instance of any one of the
31
- following classes:
31
+ docstring: <<~DOCS
32
+ Your AWS credentials used for authentication. This can be any class that includes and implements
33
+ `Aws::CredentialProvider`, or instance of any one of the following classes:
32
34
 
33
- * `Aws::Credentials` - Used for configuring static, non-refreshing
34
- credentials.
35
+ * `Aws::Credentials` - Used for configuring static, non-refreshing
36
+ credentials.
35
37
 
36
- * `Aws::SharedCredentials` - Used for loading static credentials from a
37
- shared file, such as `~/.aws/config`.
38
+ * `Aws::SharedCredentials` - Used for loading static credentials from a
39
+ shared file, such as `~/.aws/config`.
38
40
 
39
- * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
41
+ * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
40
42
 
41
- * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
42
- assume a role after providing credentials via the web.
43
+ * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
44
+ assume a role after providing credentials via the web.
43
45
 
44
- * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
45
- access token generated from `aws login`.
46
+ * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
47
+ access token generated from `aws login`.
46
48
 
47
- * `Aws::ProcessCredentials` - Used for loading credentials from a
48
- process that outputs to stdout.
49
+ * `Aws::ProcessCredentials` - Used for loading credentials from a
50
+ process that outputs to stdout.
49
51
 
50
- * `Aws::InstanceProfileCredentials` - Used for loading credentials
51
- from an EC2 IMDS on an EC2 instance.
52
+ * `Aws::InstanceProfileCredentials` - Used for loading credentials
53
+ from an EC2 IMDS on an EC2 instance.
52
54
 
53
- * `Aws::ECSCredentials` - Used for loading credentials from
54
- instances running in ECS.
55
+ * `Aws::ECSCredentials` - Used for loading credentials from
56
+ instances running in ECS.
55
57
 
56
- * `Aws::CognitoIdentityCredentials` - Used for loading credentials
57
- from the Cognito Identity service.
58
+ * `Aws::CognitoIdentityCredentials` - Used for loading credentials
59
+ from the Cognito Identity service.
58
60
 
59
- When `:credentials` are not configured directly, the following
60
- locations will be searched for credentials:
61
+ When `:credentials` are not configured directly, the following locations will be searched for credentials:
61
62
 
62
- * `Aws.config[:credentials]`
63
- * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
64
- `:account_id` options.
65
- * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'],
66
- ENV['AWS_SESSION_TOKEN'], and ENV['AWS_ACCOUNT_ID']
67
- * `~/.aws/credentials`
68
- * `~/.aws/config`
69
- * EC2/ECS IMDS instance profile - When used by default, the timeouts
70
- are very aggressive. Construct and pass an instance of
71
- `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
72
- enable retries and extended timeouts. Instance profile credential
73
- fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
74
- to true.
63
+ * `Aws.config[:credentials]`
64
+
65
+ * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
66
+ `:account_id` options.
67
+
68
+ * `ENV['AWS_ACCESS_KEY_ID']`, `ENV['AWS_SECRET_ACCESS_KEY']`,
69
+ `ENV['AWS_SESSION_TOKEN']`, and `ENV['AWS_ACCOUNT_ID']`.
70
+
71
+ * `~/.aws/credentials`
72
+
73
+ * `~/.aws/config`
74
+
75
+ * EC2/ECS IMDS instance profile - When used by default, the timeouts are very aggressive.
76
+ Construct and pass an instance of `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
77
+ enable retries and extended timeouts. Instance profile credential fetching can be disabled by
78
+ setting `ENV['AWS_EC2_METADATA_DISABLED']` to `true`.
75
79
  DOCS
76
80
  ) do |config|
77
81
  CredentialProviderChain.new(config).resolve
@@ -81,31 +85,43 @@ locations will be searched for credentials:
81
85
 
82
86
  option(:instance_profile_credentials_timeout, 1)
83
87
 
84
- option(:token_provider,
85
- required: false,
86
- doc_type: 'Aws::TokenProvider',
87
- rbs_type: 'untyped',
88
- docstring: <<-DOCS
89
- A Bearer Token Provider. This can be an instance of any one of the
90
- following classes:
88
+ option(
89
+ :token_provider,
90
+ doc_type: 'Aws::TokenProvider',
91
+ rbs_type: 'untyped',
92
+ docstring: <<~DOCS
93
+ Your Bearer token used for authentication. This can be any class that includes and implements
94
+ `Aws::TokenProvider`, or instance of any one of the following classes:
91
95
 
92
- * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
93
- tokens.
96
+ * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
97
+ tokens.
94
98
 
95
- * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
96
- access token generated from `aws login`.
99
+ * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
100
+ access token generated from `aws login`.
97
101
 
98
- When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
99
- will be used to search for tokens configured for your profile in shared configuration files.
100
- DOCS
102
+ When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
103
+ will be used to search for tokens configured for your profile in shared configuration files.
104
+ DOCS
101
105
  ) do |config|
102
- if config.stub_responses
103
- StaticTokenProvider.new('token')
104
- else
105
- TokenProviderChain.new(config).resolve
106
- end
106
+ TokenProviderChain.new(config).resolve
107
107
  end
108
108
 
109
+ option(
110
+ :auth_scheme_preference,
111
+ doc_type: 'Array<String>',
112
+ rbs_type: 'Array[String]',
113
+ docstring: <<~DOCS
114
+ A list of preferred authentication schemes to use when making a request. Supported values are:
115
+ `sigv4`, `sigv4a`, `httpBearerAuth`, and `noAuth`. When set using `ENV['AWS_AUTH_SCHEME_PREFERENCE']` or in
116
+ shared config as `auth_scheme_preference`, the value should be a comma-separated list.
117
+ DOCS
118
+ ) do |config|
119
+ value =
120
+ ENV['AWS_AUTH_SCHEME_PREFERENCE'] ||
121
+ Aws.shared_config.auth_scheme_preference(profile: config.profile) ||
122
+ ''
123
+ value.gsub(' ', '').gsub("\t", '').split(',')
124
+ end
109
125
  end
110
126
  end
111
127
  end
@@ -13,9 +13,6 @@ module Aws
13
13
  option(:sigv4_region)
14
14
  option(:unsigned_operations, default: [])
15
15
 
16
- supported_auth_types = %w[sigv4 bearer sigv4-s3express sigv4a none]
17
- SUPPORTED_AUTH_TYPES = supported_auth_types.freeze
18
-
19
16
  def add_handlers(handlers, cfg)
20
17
  operations = cfg.api.operation_names - cfg.unsigned_operations
21
18
  handlers.add(Handler, step: :sign, operations: operations)
@@ -32,7 +29,7 @@ module Aws
32
29
  }
33
30
  SignatureV4.new(auth_scheme, config, sigv4_overrides)
34
31
  when 'bearer'
35
- Bearer.new
32
+ Bearer.new(config)
36
33
  else
37
34
  NullSigner.new
38
35
  end
@@ -41,7 +38,6 @@ module Aws
41
38
  class Handler < Seahorse::Client::Handler
42
39
  def call(context)
43
40
  # Skip signing if using sigv2 signing from s3_signer in S3
44
- credentials = nil
45
41
  unless v2_signing?(context.config)
46
42
  signer = Sign.signer_for(
47
43
  context[:auth_scheme],
@@ -49,18 +45,22 @@ module Aws
49
45
  context[:sigv4_region],
50
46
  context[:sigv4_credentials]
51
47
  )
52
- credentials = signer.credentials if signer.is_a?(SignatureV4)
53
48
  signer.sign(context)
54
49
  end
55
- with_metrics(credentials) { @handler.call(context) }
50
+ with_metrics(signer) { @handler.call(context) }
56
51
  end
57
52
 
58
53
  private
59
54
 
60
- def with_metrics(credentials, &block)
61
- return block.call unless credentials&.respond_to?(:metrics)
62
-
63
- Aws::Plugins::UserAgent.metric(*credentials.metrics, &block)
55
+ def with_metrics(signer, &block)
56
+ case signer
57
+ when SignatureV4
58
+ Aws::Plugins::UserAgent.metric(*signer.credentials.metrics, &block)
59
+ when Bearer
60
+ Aws::Plugins::UserAgent.metric(*signer.token_provider.metrics, &block)
61
+ else
62
+ block.call
63
+ end
64
64
  end
65
65
 
66
66
  def v2_signing?(config)
@@ -72,21 +72,19 @@ module Aws
72
72
 
73
73
  # @api private
74
74
  class Bearer
75
- def initialize
75
+ def initialize(config)
76
+ @token_provider = config.token_provider
76
77
  end
77
78
 
79
+ attr_reader :token_provider
80
+
78
81
  def sign(context)
79
82
  if context.http_request.endpoint.scheme != 'https'
80
- raise ArgumentError,
81
- 'Unable to use bearer authorization on non https endpoint.'
83
+ raise ArgumentError, 'Unable to use bearer authorization on non https endpoint.'
82
84
  end
85
+ raise Errors::MissingBearerTokenError unless @token_provider && @token_provider.set?
83
86
 
84
- token_provider = context.config.token_provider
85
-
86
- raise Errors::MissingBearerTokenError unless token_provider&.set?
87
-
88
- context.http_request.headers['Authorization'] =
89
- "Bearer #{token_provider.token.token}"
87
+ context.http_request.headers['Authorization'] = "Bearer #{@token_provider.token.token}"
90
88
  end
91
89
 
92
90
  def presign_url(*args)
@@ -100,16 +98,11 @@ module Aws
100
98
 
101
99
  # @api private
102
100
  class SignatureV4
103
- attr_reader :signer
104
-
105
101
  def initialize(auth_scheme, config, sigv4_overrides = {})
106
102
  scheme_name = auth_scheme['name']
107
-
108
103
  unless %w[sigv4 sigv4a sigv4-s3express].include?(scheme_name)
109
- raise ArgumentError,
110
- "Expected sigv4, sigv4a, or sigv4-s3express auth scheme, got #{scheme_name}"
104
+ raise ArgumentError, "Expected sigv4, sigv4a, or sigv4-s3express auth scheme, got #{scheme_name}"
111
105
  end
112
-
113
106
  region = if scheme_name == 'sigv4a'
114
107
  auth_scheme['signingRegionSet'].join(',')
115
108
  else
@@ -121,8 +114,8 @@ module Aws
121
114
  region: sigv4_overrides[:region] || config.sigv4_region || region,
122
115
  credentials_provider: sigv4_overrides[:credentials] || config.credentials,
123
116
  signing_algorithm: scheme_name.to_sym,
124
- uri_escape_path: !!!auth_scheme['disableDoubleEncoding'],
125
- normalize_path: !!!auth_scheme['disableNormalizePath'],
117
+ uri_escape_path: !auth_scheme['disableDoubleEncoding'],
118
+ normalize_path: !auth_scheme['disableNormalizePath'],
126
119
  unsigned_headers: %w[content-length user-agent x-amzn-trace-id expect transfer-encoding connection]
127
120
  )
128
121
  rescue Aws::Sigv4::Errors::MissingCredentialsError
@@ -130,6 +123,8 @@ module Aws
130
123
  end
131
124
  end
132
125
 
126
+ attr_reader :signer
127
+
133
128
  def sign(context)
134
129
  req = context.http_request
135
130
 
@@ -29,6 +29,12 @@ requests are made, and retries are disabled.
29
29
  end
30
30
  end
31
31
 
32
+ option(:token_provider) do |config|
33
+ if config.stub_responses
34
+ StaticTokenProvider.new('stubbed-token')
35
+ end
36
+ end
37
+
32
38
  option(:stubs) { {} }
33
39
  option(:stubs_mutex) { Mutex.new }
34
40
  option(:api_requests) { [] }
@@ -54,7 +54,8 @@ module Aws
54
54
  "CREDENTIALS_HTTP" : "z",
55
55
  "CREDENTIALS_IMDS" : "0",
56
56
  "SSO_LOGIN_DEVICE" : "1",
57
- "SSO_LOGIN_AUTH" : "2"
57
+ "SSO_LOGIN_AUTH" : "2",
58
+ "BEARER_SERVICE_ENV_VARS": "3"
58
59
  }
59
60
  METRICS
60
61
 
@@ -203,6 +203,7 @@ module Aws
203
203
  config_reader(
204
204
  :region,
205
205
  :account_id_endpoint_mode,
206
+ :auth_scheme_preference,
206
207
  :sigv4a_signing_region_set,
207
208
  :ca_bundle,
208
209
  :credential_process,
@@ -2,12 +2,11 @@
2
2
 
3
3
  module Aws
4
4
  class StaticTokenProvider
5
-
6
5
  include TokenProvider
7
6
 
8
7
  # @param [String] token
9
8
  # @param [Time] expiration
10
- def initialize(token, expiration=nil)
9
+ def initialize(token, expiration = nil)
11
10
  @token = Token.new(token, expiration)
12
11
  end
13
12
  end
@@ -3,9 +3,9 @@
3
3
  module Aws
4
4
  class Token
5
5
 
6
- # @param [String] token
7
- # @param [Time] expiration
8
- def initialize(token, expiration=nil)
6
+ # @param [String, nil] token
7
+ # @param [Time, nil] expiration
8
+ def initialize(token, expiration = nil)
9
9
  @token = token
10
10
  @expiration = expiration
11
11
  end
@@ -6,6 +6,10 @@ module Aws
6
6
  # @return [Token]
7
7
  attr_reader :token
8
8
 
9
+ # @api private
10
+ # Returns UserAgent metrics for tokens.
11
+ attr_accessor :metrics
12
+
9
13
  # @return [Boolean]
10
14
  def set?
11
15
  !!token && token.set?
@@ -27,17 +27,13 @@ module Aws
27
27
 
28
28
  def static_profile_sso_token(options)
29
29
  if Aws.shared_config.config_enabled? && options[:config] && options[:config].profile
30
- Aws.shared_config.sso_token_from_config(
31
- profile: options[:config].profile
32
- )
30
+ Aws.shared_config.sso_token_from_config(profile: options[:config].profile)
33
31
  end
34
32
  end
35
33
 
36
-
37
34
  def sso_token(options)
38
- profile_name = determine_profile_name(options)
39
35
  if Aws.shared_config.config_enabled?
40
- Aws.shared_config.sso_token_from_config(profile: profile_name)
36
+ Aws.shared_config.sso_token_from_config(profile: determine_profile_name(options))
41
37
  end
42
38
  rescue Errors::NoSuchProfileError
43
39
  nil
@@ -95,8 +95,8 @@ module Aws::SSO
95
95
  # class name or an instance of a plugin class.
96
96
  #
97
97
  # @option options [required, Aws::CredentialProvider] :credentials
98
- # Your AWS credentials. This can be an instance of any one of the
99
- # following classes:
98
+ # Your AWS credentials used for authentication. This can be any class that includes and implements
99
+ # `Aws::CredentialProvider`, or instance of any one of the following classes:
100
100
  #
101
101
  # * `Aws::Credentials` - Used for configuring static, non-refreshing
102
102
  # credentials.
@@ -124,22 +124,24 @@ module Aws::SSO
124
124
  # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
125
125
  # from the Cognito Identity service.
126
126
  #
127
- # When `:credentials` are not configured directly, the following
128
- # locations will be searched for credentials:
127
+ # When `:credentials` are not configured directly, the following locations will be searched for credentials:
129
128
  #
130
129
  # * `Aws.config[:credentials]`
130
+ #
131
131
  # * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
132
132
  # `:account_id` options.
133
- # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'],
134
- # ENV['AWS_SESSION_TOKEN'], and ENV['AWS_ACCOUNT_ID']
133
+ #
134
+ # * `ENV['AWS_ACCESS_KEY_ID']`, `ENV['AWS_SECRET_ACCESS_KEY']`,
135
+ # `ENV['AWS_SESSION_TOKEN']`, and `ENV['AWS_ACCOUNT_ID']`.
136
+ #
135
137
  # * `~/.aws/credentials`
138
+ #
136
139
  # * `~/.aws/config`
137
- # * EC2/ECS IMDS instance profile - When used by default, the timeouts
138
- # are very aggressive. Construct and pass an instance of
139
- # `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
140
- # enable retries and extended timeouts. Instance profile credential
141
- # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
142
- # to true.
140
+ #
141
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts are very aggressive.
142
+ # Construct and pass an instance of `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
143
+ # enable retries and extended timeouts. Instance profile credential fetching can be disabled by
144
+ # setting `ENV['AWS_EC2_METADATA_DISABLED']` to `true`.
143
145
  #
144
146
  # @option options [required, String] :region
145
147
  # The AWS region to connect to. The configured `:region` is
@@ -167,6 +169,11 @@ module Aws::SSO
167
169
  # When false, the request will raise a `RetryCapacityNotAvailableError` and will
168
170
  # not retry instead of sleeping.
169
171
  #
172
+ # @option options [Array<String>] :auth_scheme_preference
173
+ # A list of preferred authentication schemes to use when making a request. Supported values are:
174
+ # `sigv4`, `sigv4a`, `httpBearerAuth`, and `noAuth`. When set using `ENV['AWS_AUTH_SCHEME_PREFERENCE']` or in
175
+ # shared config as `auth_scheme_preference`, the value should be a comma-separated list.
176
+ #
170
177
  # @option options [Boolean] :client_side_monitoring (false)
171
178
  # When `true`, client-side metrics will be collected for all API requests from
172
179
  # this client.
@@ -253,8 +260,8 @@ module Aws::SSO
253
260
  # 4 times. Used in `standard` and `adaptive` retry modes.
254
261
  #
255
262
  # @option options [String] :profile ("default")
256
- # Used when loading credentials from the shared credentials file
257
- # at HOME/.aws/credentials. When not specified, 'default' is used.
263
+ # Used when loading credentials from the shared credentials file at `HOME/.aws/credentials`.
264
+ # When not specified, 'default' is used.
258
265
  #
259
266
  # @option options [String] :request_checksum_calculation ("when_supported")
260
267
  # Determines when a checksum will be calculated for request payloads. Values are:
@@ -367,8 +374,8 @@ module Aws::SSO
367
374
  # `Aws::Telemetry::OTelProvider` for telemetry provider.
368
375
  #
369
376
  # @option options [Aws::TokenProvider] :token_provider
370
- # A Bearer Token Provider. This can be an instance of any one of the
371
- # following classes:
377
+ # Your Bearer token used for authentication. This can be any class that includes and implements
378
+ # `Aws::TokenProvider`, or instance of any one of the following classes:
372
379
  #
373
380
  # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
374
381
  # tokens.
@@ -691,7 +698,7 @@ module Aws::SSO
691
698
  tracer: tracer
692
699
  )
693
700
  context[:gem_name] = 'aws-sdk-core'
694
- context[:gem_version] = '3.226.3'
701
+ context[:gem_version] = '3.229.0'
695
702
  Seahorse::Client::Request.new(handlers, context)
696
703
  end
697
704
 
data/lib/aws-sdk-sso.rb CHANGED
@@ -56,7 +56,7 @@ module Aws::SSO
56
56
  autoload :EndpointProvider, 'aws-sdk-sso/endpoint_provider'
57
57
  autoload :Endpoints, 'aws-sdk-sso/endpoints'
58
58
 
59
- GEM_VERSION = '3.226.3'
59
+ GEM_VERSION = '3.229.0'
60
60
 
61
61
  end
62
62
 
@@ -95,8 +95,8 @@ module Aws::SSOOIDC
95
95
  # class name or an instance of a plugin class.
96
96
  #
97
97
  # @option options [required, Aws::CredentialProvider] :credentials
98
- # Your AWS credentials. This can be an instance of any one of the
99
- # following classes:
98
+ # Your AWS credentials used for authentication. This can be any class that includes and implements
99
+ # `Aws::CredentialProvider`, or instance of any one of the following classes:
100
100
  #
101
101
  # * `Aws::Credentials` - Used for configuring static, non-refreshing
102
102
  # credentials.
@@ -124,22 +124,24 @@ module Aws::SSOOIDC
124
124
  # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
125
125
  # from the Cognito Identity service.
126
126
  #
127
- # When `:credentials` are not configured directly, the following
128
- # locations will be searched for credentials:
127
+ # When `:credentials` are not configured directly, the following locations will be searched for credentials:
129
128
  #
130
129
  # * `Aws.config[:credentials]`
130
+ #
131
131
  # * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
132
132
  # `:account_id` options.
133
- # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'],
134
- # ENV['AWS_SESSION_TOKEN'], and ENV['AWS_ACCOUNT_ID']
133
+ #
134
+ # * `ENV['AWS_ACCESS_KEY_ID']`, `ENV['AWS_SECRET_ACCESS_KEY']`,
135
+ # `ENV['AWS_SESSION_TOKEN']`, and `ENV['AWS_ACCOUNT_ID']`.
136
+ #
135
137
  # * `~/.aws/credentials`
138
+ #
136
139
  # * `~/.aws/config`
137
- # * EC2/ECS IMDS instance profile - When used by default, the timeouts
138
- # are very aggressive. Construct and pass an instance of
139
- # `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
140
- # enable retries and extended timeouts. Instance profile credential
141
- # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
142
- # to true.
140
+ #
141
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts are very aggressive.
142
+ # Construct and pass an instance of `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
143
+ # enable retries and extended timeouts. Instance profile credential fetching can be disabled by
144
+ # setting `ENV['AWS_EC2_METADATA_DISABLED']` to `true`.
143
145
  #
144
146
  # @option options [required, String] :region
145
147
  # The AWS region to connect to. The configured `:region` is
@@ -167,6 +169,11 @@ module Aws::SSOOIDC
167
169
  # When false, the request will raise a `RetryCapacityNotAvailableError` and will
168
170
  # not retry instead of sleeping.
169
171
  #
172
+ # @option options [Array<String>] :auth_scheme_preference
173
+ # A list of preferred authentication schemes to use when making a request. Supported values are:
174
+ # `sigv4`, `sigv4a`, `httpBearerAuth`, and `noAuth`. When set using `ENV['AWS_AUTH_SCHEME_PREFERENCE']` or in
175
+ # shared config as `auth_scheme_preference`, the value should be a comma-separated list.
176
+ #
170
177
  # @option options [Boolean] :client_side_monitoring (false)
171
178
  # When `true`, client-side metrics will be collected for all API requests from
172
179
  # this client.
@@ -253,8 +260,8 @@ module Aws::SSOOIDC
253
260
  # 4 times. Used in `standard` and `adaptive` retry modes.
254
261
  #
255
262
  # @option options [String] :profile ("default")
256
- # Used when loading credentials from the shared credentials file
257
- # at HOME/.aws/credentials. When not specified, 'default' is used.
263
+ # Used when loading credentials from the shared credentials file at `HOME/.aws/credentials`.
264
+ # When not specified, 'default' is used.
258
265
  #
259
266
  # @option options [String] :request_checksum_calculation ("when_supported")
260
267
  # Determines when a checksum will be calculated for request payloads. Values are:
@@ -367,8 +374,8 @@ module Aws::SSOOIDC
367
374
  # `Aws::Telemetry::OTelProvider` for telemetry provider.
368
375
  #
369
376
  # @option options [Aws::TokenProvider] :token_provider
370
- # A Bearer Token Provider. This can be an instance of any one of the
371
- # following classes:
377
+ # Your Bearer token used for authentication. This can be any class that includes and implements
378
+ # `Aws::TokenProvider`, or instance of any one of the following classes:
372
379
  #
373
380
  # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
374
381
  # tokens.
@@ -1061,7 +1068,7 @@ module Aws::SSOOIDC
1061
1068
  tracer: tracer
1062
1069
  )
1063
1070
  context[:gem_name] = 'aws-sdk-core'
1064
- context[:gem_version] = '3.226.3'
1071
+ context[:gem_version] = '3.229.0'
1065
1072
  Seahorse::Client::Request.new(handlers, context)
1066
1073
  end
1067
1074
 
@@ -56,7 +56,7 @@ module Aws::SSOOIDC
56
56
  autoload :EndpointProvider, 'aws-sdk-ssooidc/endpoint_provider'
57
57
  autoload :Endpoints, 'aws-sdk-ssooidc/endpoints'
58
58
 
59
- GEM_VERSION = '3.226.3'
59
+ GEM_VERSION = '3.229.0'
60
60
 
61
61
  end
62
62
 
@@ -97,8 +97,8 @@ module Aws::STS
97
97
  # class name or an instance of a plugin class.
98
98
  #
99
99
  # @option options [required, Aws::CredentialProvider] :credentials
100
- # Your AWS credentials. This can be an instance of any one of the
101
- # following classes:
100
+ # Your AWS credentials used for authentication. This can be any class that includes and implements
101
+ # `Aws::CredentialProvider`, or instance of any one of the following classes:
102
102
  #
103
103
  # * `Aws::Credentials` - Used for configuring static, non-refreshing
104
104
  # credentials.
@@ -126,22 +126,24 @@ module Aws::STS
126
126
  # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
127
127
  # from the Cognito Identity service.
128
128
  #
129
- # When `:credentials` are not configured directly, the following
130
- # locations will be searched for credentials:
129
+ # When `:credentials` are not configured directly, the following locations will be searched for credentials:
131
130
  #
132
131
  # * `Aws.config[:credentials]`
132
+ #
133
133
  # * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
134
134
  # `:account_id` options.
135
- # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'],
136
- # ENV['AWS_SESSION_TOKEN'], and ENV['AWS_ACCOUNT_ID']
135
+ #
136
+ # * `ENV['AWS_ACCESS_KEY_ID']`, `ENV['AWS_SECRET_ACCESS_KEY']`,
137
+ # `ENV['AWS_SESSION_TOKEN']`, and `ENV['AWS_ACCOUNT_ID']`.
138
+ #
137
139
  # * `~/.aws/credentials`
140
+ #
138
141
  # * `~/.aws/config`
139
- # * EC2/ECS IMDS instance profile - When used by default, the timeouts
140
- # are very aggressive. Construct and pass an instance of
141
- # `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
142
- # enable retries and extended timeouts. Instance profile credential
143
- # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
144
- # to true.
142
+ #
143
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts are very aggressive.
144
+ # Construct and pass an instance of `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
145
+ # enable retries and extended timeouts. Instance profile credential fetching can be disabled by
146
+ # setting `ENV['AWS_EC2_METADATA_DISABLED']` to `true`.
145
147
  #
146
148
  # @option options [required, String] :region
147
149
  # The AWS region to connect to. The configured `:region` is
@@ -169,6 +171,11 @@ module Aws::STS
169
171
  # When false, the request will raise a `RetryCapacityNotAvailableError` and will
170
172
  # not retry instead of sleeping.
171
173
  #
174
+ # @option options [Array<String>] :auth_scheme_preference
175
+ # A list of preferred authentication schemes to use when making a request. Supported values are:
176
+ # `sigv4`, `sigv4a`, `httpBearerAuth`, and `noAuth`. When set using `ENV['AWS_AUTH_SCHEME_PREFERENCE']` or in
177
+ # shared config as `auth_scheme_preference`, the value should be a comma-separated list.
178
+ #
172
179
  # @option options [Boolean] :client_side_monitoring (false)
173
180
  # When `true`, client-side metrics will be collected for all API requests from
174
181
  # this client.
@@ -255,8 +262,8 @@ module Aws::STS
255
262
  # 4 times. Used in `standard` and `adaptive` retry modes.
256
263
  #
257
264
  # @option options [String] :profile ("default")
258
- # Used when loading credentials from the shared credentials file
259
- # at HOME/.aws/credentials. When not specified, 'default' is used.
265
+ # Used when loading credentials from the shared credentials file at `HOME/.aws/credentials`.
266
+ # When not specified, 'default' is used.
260
267
  #
261
268
  # @option options [String] :request_checksum_calculation ("when_supported")
262
269
  # Determines when a checksum will be calculated for request payloads. Values are:
@@ -374,8 +381,8 @@ module Aws::STS
374
381
  # `Aws::Telemetry::OTelProvider` for telemetry provider.
375
382
  #
376
383
  # @option options [Aws::TokenProvider] :token_provider
377
- # A Bearer Token Provider. This can be an instance of any one of the
378
- # following classes:
384
+ # Your Bearer token used for authentication. This can be any class that includes and implements
385
+ # `Aws::TokenProvider`, or instance of any one of the following classes:
379
386
  #
380
387
  # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
381
388
  # tokens.
@@ -2594,7 +2601,7 @@ module Aws::STS
2594
2601
  tracer: tracer
2595
2602
  )
2596
2603
  context[:gem_name] = 'aws-sdk-core'
2597
- context[:gem_version] = '3.226.3'
2604
+ context[:gem_version] = '3.229.0'
2598
2605
  Seahorse::Client::Request.new(handlers, context)
2599
2606
  end
2600
2607
 
@@ -53,13 +53,9 @@ module Aws
53
53
  use_fips: context.config.use_fips_endpoint,
54
54
  use_global_endpoint: context.config.sts_regional_endpoints == 'legacy'
55
55
  )
56
- endpoint = context.config.endpoint_provider
57
- .resolve_endpoint(endpoint_params)
56
+ endpoint = context.config.endpoint_provider.resolve_endpoint(endpoint_params)
58
57
  auth_scheme = Aws::Endpoints.resolve_auth_scheme(context, endpoint)
59
-
60
- signer = Aws::Plugins::Sign.signer_for(
61
- auth_scheme, context.config
62
- )
58
+ signer = Aws::Plugins::Sign.signer_for(auth_scheme, context.config)
63
59
 
64
60
  signer.presign_url(
65
61
  http_method: 'GET',
data/lib/aws-sdk-sts.rb CHANGED
@@ -56,7 +56,7 @@ module Aws::STS
56
56
  autoload :EndpointProvider, 'aws-sdk-sts/endpoint_provider'
57
57
  autoload :Endpoints, 'aws-sdk-sts/endpoints'
58
58
 
59
- GEM_VERSION = '3.226.3'
59
+ GEM_VERSION = '3.229.0'
60
60
 
61
61
  end
62
62
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.226.3
4
+ version: 3.229.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
@@ -77,6 +77,20 @@ dependencies:
77
77
  - - ">="
78
78
  - !ruby/object:Gem::Version
79
79
  version: '0'
80
+ - !ruby/object:Gem::Dependency
81
+ name: bigdecimal
82
+ requirement: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ type: :runtime
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
80
94
  - !ruby/object:Gem::Dependency
81
95
  name: jmespath
82
96
  requirement: !ruby/object:Gem::Requirement