aws-sdk-core 3.226.3 → 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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +118 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-defaults/default_configuration.rb +2 -1
  5. data/lib/aws-sdk-core/assume_role_credentials.rb +8 -8
  6. data/lib/aws-sdk-core/assume_role_web_identity_credentials.rb +2 -2
  7. data/lib/aws-sdk-core/client_stubs.rb +6 -0
  8. data/lib/aws-sdk-core/credential_provider_chain.rb +71 -22
  9. data/lib/aws-sdk-core/ecs_credentials.rb +13 -13
  10. data/lib/aws-sdk-core/endpoints.rb +37 -13
  11. data/lib/aws-sdk-core/errors.rb +3 -0
  12. data/lib/aws-sdk-core/instance_profile_credentials.rb +7 -7
  13. data/lib/aws-sdk-core/login_credentials.rb +229 -0
  14. data/lib/aws-sdk-core/plugins/checksum_algorithm.rb +28 -14
  15. data/lib/aws-sdk-core/plugins/credentials_configuration.rb +75 -59
  16. data/lib/aws-sdk-core/plugins/sign.rb +23 -28
  17. data/lib/aws-sdk-core/plugins/stub_responses.rb +6 -0
  18. data/lib/aws-sdk-core/plugins/user_agent.rb +4 -1
  19. data/lib/aws-sdk-core/refreshing_credentials.rb +8 -11
  20. data/lib/aws-sdk-core/shared_config.rb +30 -0
  21. data/lib/aws-sdk-core/sso_credentials.rb +1 -1
  22. data/lib/aws-sdk-core/static_token_provider.rb +1 -2
  23. data/lib/aws-sdk-core/token.rb +3 -3
  24. data/lib/aws-sdk-core/token_provider.rb +4 -0
  25. data/lib/aws-sdk-core/token_provider_chain.rb +2 -6
  26. data/lib/aws-sdk-core.rb +4 -0
  27. data/lib/aws-sdk-signin/client.rb +604 -0
  28. data/lib/aws-sdk-signin/client_api.rb +119 -0
  29. data/lib/aws-sdk-signin/customizations.rb +1 -0
  30. data/lib/aws-sdk-signin/endpoint_parameters.rb +69 -0
  31. data/lib/aws-sdk-signin/endpoint_provider.rb +59 -0
  32. data/lib/aws-sdk-signin/endpoints.rb +20 -0
  33. data/lib/aws-sdk-signin/errors.rb +122 -0
  34. data/lib/aws-sdk-signin/plugins/endpoints.rb +77 -0
  35. data/lib/aws-sdk-signin/resource.rb +26 -0
  36. data/lib/aws-sdk-signin/types.rb +299 -0
  37. data/lib/aws-sdk-signin.rb +63 -0
  38. data/lib/aws-sdk-sso/client.rb +24 -17
  39. data/lib/aws-sdk-sso/endpoint_parameters.rb +4 -4
  40. data/lib/aws-sdk-sso/endpoint_provider.rb +2 -2
  41. data/lib/aws-sdk-sso.rb +1 -1
  42. data/lib/aws-sdk-ssooidc/client.rb +43 -23
  43. data/lib/aws-sdk-ssooidc/client_api.rb +5 -0
  44. data/lib/aws-sdk-ssooidc/endpoint_parameters.rb +4 -4
  45. data/lib/aws-sdk-ssooidc/errors.rb +10 -0
  46. data/lib/aws-sdk-ssooidc/types.rb +27 -15
  47. data/lib/aws-sdk-ssooidc.rb +1 -1
  48. data/lib/aws-sdk-sts/client.rb +159 -28
  49. data/lib/aws-sdk-sts/client_api.rb +72 -0
  50. data/lib/aws-sdk-sts/customizations.rb +0 -1
  51. data/lib/aws-sdk-sts/endpoint_parameters.rb +5 -5
  52. data/lib/aws-sdk-sts/errors.rb +64 -0
  53. data/lib/aws-sdk-sts/presigner.rb +2 -6
  54. data/lib/aws-sdk-sts/types.rb +175 -6
  55. data/lib/aws-sdk-sts.rb +1 -1
  56. data/lib/seahorse/client/h2/handler.rb +6 -1
  57. metadata +27 -1
@@ -171,6 +171,16 @@ module Aws
171
171
  token
172
172
  end
173
173
 
174
+ # Attempts to load from shared config or shared credentials file.
175
+ # Will always attempt first to load from the shared credentials
176
+ # file, if present.
177
+ def login_credentials_from_config(opts = {})
178
+ p = opts[:profile] || @profile_name
179
+ credentials = login_credentials_from_profile(@parsed_credentials, p, opts[:region])
180
+ credentials ||= login_credentials_from_profile(@parsed_config, p, opts[:region]) if @parsed_config
181
+ credentials
182
+ end
183
+
174
184
  # Source a custom configured endpoint from the shared configuration file
175
185
  #
176
186
  # @param [Hash] opts
@@ -203,6 +213,7 @@ module Aws
203
213
  config_reader(
204
214
  :region,
205
215
  :account_id_endpoint_mode,
216
+ :auth_scheme_preference,
206
217
  :sigv4a_signing_region_set,
207
218
  :ca_bundle,
208
219
  :credential_process,
@@ -368,6 +379,15 @@ module Aws
368
379
  )
369
380
  when 'EcsContainer'
370
381
  ECSCredentials.new
382
+ when 'Environment'
383
+ creds = Credentials.new(
384
+ ENV['AWS_ACCESS_KEY_ID'],
385
+ ENV['AWS_SECRET_ACCESS_KEY'],
386
+ ENV['AWS_SESSION_TOKEN'],
387
+ account_id: ENV['AWS_ACCOUNT_ID']
388
+ )
389
+ creds.metrics = ['CREDENTIALS_ENV_VARS']
390
+ creds
371
391
  else
372
392
  raise Errors::InvalidCredentialSourceError, "Unsupported credential_source: #{credential_source}"
373
393
  end
@@ -459,6 +479,16 @@ module Aws
459
479
  end
460
480
  end
461
481
 
482
+ def login_credentials_from_profile(cfg, profile, region)
483
+ return unless @parsed_config && (prof_config = cfg[profile]) && prof_config['login_session']
484
+
485
+ cfg = { login_session: prof_config['login_session'] }
486
+ cfg[:region] = region if region
487
+ creds = LoginCredentials.new(cfg)
488
+ creds.metrics << 'CREDENTIALS_PROFILE_LOGIN'
489
+ creds
490
+ end
491
+
462
492
  def credentials_from_profile(prof_config)
463
493
  creds = Credentials.new(
464
494
  prof_config['aws_access_key_id'],
@@ -7,7 +7,7 @@ module Aws
7
7
  # {Aws::SSOTokenProvider} will be used to refresh the token if possible.
8
8
  # This class does NOT implement the SSO login token flow - tokens
9
9
  # must generated separately by running `aws login` from the
10
- # AWS CLI with the correct profile. The `SSOCredentials` will
10
+ # AWS CLI with the correct profile. The {SSOCredentials} will
11
11
  # auto-refresh the AWS credentials from SSO.
12
12
  #
13
13
  # # You must first run aws sso login --profile your-sso-profile
@@ -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
data/lib/aws-sdk-core.rb CHANGED
@@ -25,6 +25,7 @@ module Aws
25
25
  autoload :SharedCredentials, 'aws-sdk-core/shared_credentials'
26
26
  autoload :ProcessCredentials, 'aws-sdk-core/process_credentials'
27
27
  autoload :SSOCredentials, 'aws-sdk-core/sso_credentials'
28
+ autoload :LoginCredentials, 'aws-sdk-core/login_credentials'
28
29
 
29
30
 
30
31
  # tokens and token providers
@@ -175,3 +176,6 @@ require_relative 'aws-sdk-sts'
175
176
  # aws-sdk-sso is included to support Aws::SSOCredentials
176
177
  require_relative 'aws-sdk-sso'
177
178
  require_relative 'aws-sdk-ssooidc'
179
+
180
+ # aws-sdk-signin is included to support Aws::SignInCredentials
181
+ require_relative 'aws-sdk-signin'