aws-sdk-core 3.209.1 → 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 (112) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +331 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-core/arn.rb +1 -3
  5. data/lib/aws-sdk-core/assume_role_credentials.rb +9 -8
  6. data/lib/aws-sdk-core/assume_role_web_identity_credentials.rb +3 -2
  7. data/lib/aws-sdk-core/cbor/decoder.rb +0 -2
  8. data/lib/aws-sdk-core/cbor/encoder.rb +2 -2
  9. data/lib/aws-sdk-core/cbor.rb +3 -56
  10. data/lib/aws-sdk-core/client_stubs.rb +35 -55
  11. data/lib/aws-sdk-core/credential_provider.rb +4 -0
  12. data/lib/aws-sdk-core/credential_provider_chain.rb +91 -22
  13. data/lib/aws-sdk-core/credentials.rb +6 -0
  14. data/lib/aws-sdk-core/ecs_credentials.rb +14 -13
  15. data/lib/aws-sdk-core/endpoints/matchers.rb +3 -9
  16. data/lib/aws-sdk-core/endpoints.rb +37 -13
  17. data/lib/aws-sdk-core/error_handler.rb +5 -0
  18. data/lib/aws-sdk-core/errors.rb +5 -2
  19. data/lib/aws-sdk-core/event_emitter.rb +1 -1
  20. data/lib/aws-sdk-core/instance_profile_credentials.rb +147 -157
  21. data/lib/aws-sdk-core/json/error_handler.rb +14 -3
  22. data/lib/aws-sdk-core/json/handler.rb +1 -0
  23. data/lib/aws-sdk-core/log/param_formatter.rb +7 -3
  24. data/lib/aws-sdk-core/login_credentials.rb +229 -0
  25. data/lib/aws-sdk-core/plugins/checksum_algorithm.rb +347 -171
  26. data/lib/aws-sdk-core/plugins/client_metrics_plugin.rb +0 -1
  27. data/lib/aws-sdk-core/plugins/credentials_configuration.rb +75 -59
  28. data/lib/aws-sdk-core/plugins/endpoint_pattern.rb +40 -32
  29. data/lib/aws-sdk-core/plugins/http_checksum.rb +2 -8
  30. data/lib/aws-sdk-core/plugins/regional_endpoint.rb +44 -25
  31. data/lib/aws-sdk-core/plugins/sign.rb +30 -21
  32. data/lib/aws-sdk-core/plugins/stub_responses.rb +30 -8
  33. data/lib/aws-sdk-core/plugins/user_agent.rb +35 -2
  34. data/lib/aws-sdk-core/process_credentials.rb +1 -1
  35. data/lib/aws-sdk-core/refreshing_credentials.rb +8 -11
  36. data/lib/aws-sdk-core/rest/request/headers.rb +3 -3
  37. data/lib/aws-sdk-core/rpc_v2/builder.rb +1 -1
  38. data/lib/aws-sdk-core/{cbor → rpc_v2}/cbor_engine.rb +4 -5
  39. data/lib/aws-sdk-core/rpc_v2/content_type_handler.rb +3 -1
  40. data/lib/aws-sdk-core/rpc_v2/error_handler.rb +27 -16
  41. data/lib/aws-sdk-core/rpc_v2/handler.rb +2 -1
  42. data/lib/aws-sdk-core/rpc_v2/parser.rb +9 -1
  43. data/lib/aws-sdk-core/rpc_v2.rb +65 -2
  44. data/lib/aws-sdk-core/shared_config.rb +104 -21
  45. data/lib/aws-sdk-core/shared_credentials.rb +1 -0
  46. data/lib/aws-sdk-core/sso_credentials.rb +3 -1
  47. data/lib/aws-sdk-core/static_token_provider.rb +1 -2
  48. data/lib/aws-sdk-core/stubbing/protocols/ec2.rb +12 -11
  49. data/lib/aws-sdk-core/stubbing/protocols/json.rb +11 -10
  50. data/lib/aws-sdk-core/stubbing/protocols/query.rb +7 -6
  51. data/lib/aws-sdk-core/stubbing/protocols/rest.rb +2 -1
  52. data/lib/aws-sdk-core/stubbing/protocols/rest_json.rb +9 -8
  53. data/lib/aws-sdk-core/stubbing/protocols/rest_xml.rb +6 -5
  54. data/lib/aws-sdk-core/stubbing/protocols/rpc_v2.rb +13 -15
  55. data/lib/aws-sdk-core/stubbing.rb +2 -2
  56. data/lib/aws-sdk-core/token.rb +3 -3
  57. data/lib/aws-sdk-core/token_provider.rb +4 -0
  58. data/lib/aws-sdk-core/token_provider_chain.rb +2 -6
  59. data/lib/aws-sdk-core/util.rb +2 -1
  60. data/lib/aws-sdk-core/xml/error_handler.rb +3 -1
  61. data/lib/aws-sdk-core.rb +4 -0
  62. data/lib/aws-sdk-signin/client.rb +604 -0
  63. data/lib/aws-sdk-signin/client_api.rb +119 -0
  64. data/lib/aws-sdk-signin/customizations.rb +1 -0
  65. data/lib/aws-sdk-signin/endpoint_parameters.rb +69 -0
  66. data/lib/aws-sdk-signin/endpoint_provider.rb +59 -0
  67. data/lib/aws-sdk-signin/endpoints.rb +20 -0
  68. data/lib/aws-sdk-signin/errors.rb +122 -0
  69. data/lib/aws-sdk-signin/plugins/endpoints.rb +77 -0
  70. data/lib/aws-sdk-signin/resource.rb +26 -0
  71. data/lib/aws-sdk-signin/types.rb +299 -0
  72. data/lib/aws-sdk-signin.rb +63 -0
  73. data/lib/aws-sdk-sso/client.rb +76 -47
  74. data/lib/aws-sdk-sso/endpoint_parameters.rb +13 -10
  75. data/lib/aws-sdk-sso/endpoint_provider.rb +16 -20
  76. data/lib/aws-sdk-sso/endpoints.rb +2 -42
  77. data/lib/aws-sdk-sso/plugins/endpoints.rb +1 -14
  78. data/lib/aws-sdk-sso.rb +1 -1
  79. data/lib/aws-sdk-ssooidc/client.rb +132 -73
  80. data/lib/aws-sdk-ssooidc/client_api.rb +11 -0
  81. data/lib/aws-sdk-ssooidc/endpoint_parameters.rb +13 -10
  82. data/lib/aws-sdk-ssooidc/endpoint_provider.rb +14 -18
  83. data/lib/aws-sdk-ssooidc/endpoints.rb +2 -42
  84. data/lib/aws-sdk-ssooidc/errors.rb +10 -0
  85. data/lib/aws-sdk-ssooidc/plugins/endpoints.rb +1 -14
  86. data/lib/aws-sdk-ssooidc/types.rb +65 -21
  87. data/lib/aws-sdk-ssooidc.rb +1 -1
  88. data/lib/aws-sdk-sts/client.rb +416 -107
  89. data/lib/aws-sdk-sts/client_api.rb +105 -8
  90. data/lib/aws-sdk-sts/customizations.rb +0 -1
  91. data/lib/aws-sdk-sts/endpoint_parameters.rb +15 -14
  92. data/lib/aws-sdk-sts/endpoint_provider.rb +50 -55
  93. data/lib/aws-sdk-sts/endpoints.rb +2 -94
  94. data/lib/aws-sdk-sts/errors.rb +79 -0
  95. data/lib/aws-sdk-sts/plugins/endpoints.rb +1 -22
  96. data/lib/aws-sdk-sts/presigner.rb +2 -6
  97. data/lib/aws-sdk-sts/types.rb +343 -32
  98. data/lib/aws-sdk-sts.rb +1 -1
  99. data/lib/seahorse/client/async_base.rb +4 -5
  100. data/lib/seahorse/client/base.rb +0 -14
  101. data/lib/seahorse/client/h2/connection.rb +18 -28
  102. data/lib/seahorse/client/h2/handler.rb +6 -1
  103. data/lib/seahorse/client/http/response.rb +1 -1
  104. data/lib/seahorse/client/net_http/connection_pool.rb +4 -1
  105. data/lib/seahorse/client/networking_error.rb +1 -1
  106. data/lib/seahorse/client/plugins/h2.rb +4 -4
  107. data/lib/seahorse/client/request_context.rb +2 -2
  108. data/lib/seahorse/client/response.rb +2 -0
  109. data/lib/seahorse/util.rb +2 -1
  110. data/sig/aws-sdk-core/async_client_stubs.rbs +21 -0
  111. data/sig/seahorse/client/async_base.rbs +18 -0
  112. metadata +69 -17
@@ -3,6 +3,7 @@
3
3
  module Aws
4
4
  module Stubbing
5
5
  module Protocols
6
+ # @api private
6
7
  class Query
7
8
 
8
9
  def stub_data(api, operation, data)
@@ -13,10 +14,10 @@ module Aws
13
14
  end
14
15
 
15
16
  def stub_error(error_code)
16
- http_resp = Seahorse::Client::Http::Response.new
17
- http_resp.status_code = 400
18
- http_resp.body = XmlError.new(error_code).to_xml
19
- http_resp
17
+ resp = Seahorse::Client::Http::Response.new
18
+ resp.status_code = 400
19
+ resp.body = XmlError.new(error_code).to_xml
20
+ resp
20
21
  end
21
22
 
22
23
  private
@@ -24,9 +25,9 @@ module Aws
24
25
  def build_body(api, operation, data)
25
26
  xml = []
26
27
  builder = Aws::Xml::DocBuilder.new(target: xml, indent: ' ')
27
- builder.node(operation.name + 'Response', xmlns: xmlns(api)) do
28
+ builder.node("#{operation.name}Response", xmlns: xmlns(api)) do
28
29
  if (rules = operation.output)
29
- rules.location_name = operation.name + 'Result'
30
+ rules.location_name = "#{operation.name}Result"
30
31
  Xml::Builder.new(rules, target: xml, pad:' ').to_xml(data)
31
32
  end
32
33
  builder.node('ResponseMetadata') do
@@ -5,6 +5,7 @@ require 'aws-eventstream'
5
5
  module Aws
6
6
  module Stubbing
7
7
  module Protocols
8
+ # @api private
8
9
  class Rest
9
10
 
10
11
  include Seahorse::Model::Shapes
@@ -22,7 +23,7 @@ module Aws
22
23
  def new_http_response
23
24
  resp = Seahorse::Client::Http::Response.new
24
25
  resp.status_code = 200
25
- resp.headers["x-amzn-RequestId"] = "stubbed-request-id"
26
+ resp.headers['x-amzn-RequestId'] = 'stubbed-request-id'
26
27
  resp
27
28
  end
28
29
 
@@ -3,6 +3,7 @@
3
3
  module Aws
4
4
  module Stubbing
5
5
  module Protocols
6
+ # @api private
6
7
  class RestJson < Rest
7
8
 
8
9
  def body_for(_a, _b, rules, data)
@@ -14,15 +15,15 @@ module Aws
14
15
  end
15
16
 
16
17
  def stub_error(error_code)
17
- http_resp = Seahorse::Client::Http::Response.new
18
- http_resp.status_code = 400
19
- http_resp.body = <<-JSON.strip
20
- {
21
- "code": #{error_code.inspect},
22
- "message": "stubbed-response-error-message"
23
- }
18
+ resp = Seahorse::Client::Http::Response.new
19
+ resp.status_code = 400
20
+ resp.body = <<~JSON.strip
21
+ {
22
+ "code": #{error_code.inspect},
23
+ "message": "stubbed-response-error-message"
24
+ }
24
25
  JSON
25
- http_resp
26
+ resp
26
27
  end
27
28
 
28
29
  end
@@ -3,6 +3,7 @@
3
3
  module Aws
4
4
  module Stubbing
5
5
  module Protocols
6
+ # @api private
6
7
  class RestXml < Rest
7
8
 
8
9
  def body_for(api, operation, rules, data)
@@ -10,7 +11,7 @@ module Aws
10
11
  encode_eventstream_response(rules, data, Xml::Builder)
11
12
  else
12
13
  xml = []
13
- rules.location_name = operation.name + 'Result'
14
+ rules.location_name = "#{operation.name}Result"
14
15
  rules['xmlNamespace'] = { 'uri' => api.metadata['xmlNamespace'] }
15
16
  Xml::Builder.new(rules, target:xml).to_xml(data)
16
17
  xml.join
@@ -18,10 +19,10 @@ module Aws
18
19
  end
19
20
 
20
21
  def stub_error(error_code)
21
- http_resp = Seahorse::Client::Http::Response.new
22
- http_resp.status_code = 400
23
- http_resp.body = XmlError.new(error_code).to_xml
24
- http_resp
22
+ resp = Seahorse::Client::Http::Response.new
23
+ resp.status_code = 400
24
+ resp.body = XmlError.new(error_code).to_xml
25
+ resp
25
26
  end
26
27
 
27
28
  def xmlns(api)
@@ -3,35 +3,33 @@
3
3
  module Aws
4
4
  module Stubbing
5
5
  module Protocols
6
+ # @api private
6
7
  class RpcV2
7
8
 
8
- def stub_data(api, operation, data)
9
+ def stub_data(_api, operation, data)
9
10
  resp = Seahorse::Client::Http::Response.new
10
11
  resp.status_code = 200
11
- resp.headers['Content-Type'] = content_type(api)
12
+ resp.headers['Smithy-Protocol'] = 'rpc-v2-cbor'
13
+ resp.headers['Content-Type'] = 'application/cbor'
12
14
  resp.headers['x-amzn-RequestId'] = 'stubbed-request-id'
13
15
  resp.body = build_body(operation, data)
14
16
  resp
15
17
  end
16
18
 
17
19
  def stub_error(error_code)
18
- http_resp = Seahorse::Client::Http::Response.new
19
- http_resp.status_code = 400
20
- http_resp.body = <<-JSON.strip
21
- {
22
- "code": #{error_code.inspect},
23
- "message": "stubbed-response-error-message"
24
- }
25
- JSON
26
- http_resp
20
+ resp = Seahorse::Client::Http::Response.new
21
+ resp.status_code = 400
22
+ resp.body = Aws::RpcV2.encode(
23
+ {
24
+ 'code' => error_code,
25
+ 'message' => 'stubbed-response-error-message'
26
+ }
27
+ )
28
+ resp
27
29
  end
28
30
 
29
31
  private
30
32
 
31
- def content_type(api)
32
- 'application/cbor'
33
- end
34
-
35
33
  def build_body(operation, data)
36
34
  Aws::RpcV2::Builder.new(operation.output).serialize(data)
37
35
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Aws
4
- # setup autoloading for Stubbing module
4
+ # @api private
5
5
  module Stubbing
6
6
  autoload :EmptyStub, 'aws-sdk-core/stubbing/empty_stub'
7
7
  autoload :DataApplicator, 'aws-sdk-core/stubbing/data_applicator'
@@ -19,4 +19,4 @@ module Aws
19
19
  autoload :ApiGateway, 'aws-sdk-core/stubbing/protocols/api_gateway'
20
20
  end
21
21
  end
22
- end
22
+ 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
@@ -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
  # @api private
@@ -1,9 +1,11 @@
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 Xml
8
+ # @api private
7
9
  class ErrorHandler < Aws::ErrorHandler
8
10
 
9
11
  def call(context)
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'