aws-sdk-core 3.214.0 → 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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +113 -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 +1 -0
  6. data/lib/aws-sdk-core/assume_role_web_identity_credentials.rb +1 -0
  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/client_stubs.rb +22 -48
  10. data/lib/aws-sdk-core/credential_provider.rb +4 -0
  11. data/lib/aws-sdk-core/credential_provider_chain.rb +27 -7
  12. data/lib/aws-sdk-core/credentials.rb +6 -0
  13. data/lib/aws-sdk-core/ecs_credentials.rb +1 -0
  14. data/lib/aws-sdk-core/errors.rb +2 -2
  15. data/lib/aws-sdk-core/instance_profile_credentials.rb +1 -0
  16. data/lib/aws-sdk-core/log/param_formatter.rb +7 -3
  17. data/lib/aws-sdk-core/plugins/checksum_algorithm.rb +332 -170
  18. data/lib/aws-sdk-core/plugins/client_metrics_plugin.rb +0 -1
  19. data/lib/aws-sdk-core/plugins/http_checksum.rb +2 -8
  20. data/lib/aws-sdk-core/plugins/sign.rb +16 -2
  21. data/lib/aws-sdk-core/plugins/stub_responses.rb +24 -8
  22. data/lib/aws-sdk-core/plugins/user_agent.rb +32 -2
  23. data/lib/aws-sdk-core/process_credentials.rb +1 -1
  24. data/lib/aws-sdk-core/rest/request/headers.rb +1 -1
  25. data/lib/aws-sdk-core/shared_config.rb +73 -21
  26. data/lib/aws-sdk-core/shared_credentials.rb +1 -0
  27. data/lib/aws-sdk-core/sso_credentials.rb +2 -0
  28. data/lib/aws-sdk-sso/client.rb +52 -29
  29. data/lib/aws-sdk-sso/endpoint_provider.rb +14 -18
  30. data/lib/aws-sdk-sso.rb +1 -1
  31. data/lib/aws-sdk-ssooidc/client.rb +89 -49
  32. data/lib/aws-sdk-ssooidc/client_api.rb +6 -0
  33. data/lib/aws-sdk-ssooidc/endpoint_provider.rb +14 -18
  34. data/lib/aws-sdk-ssooidc/types.rb +48 -16
  35. data/lib/aws-sdk-ssooidc.rb +1 -1
  36. data/lib/aws-sdk-sts/client.rb +64 -42
  37. data/lib/aws-sdk-sts/endpoint_provider.rb +33 -38
  38. data/lib/aws-sdk-sts/errors.rb +16 -0
  39. data/lib/aws-sdk-sts/types.rb +5 -6
  40. data/lib/aws-sdk-sts.rb +1 -1
  41. data/lib/seahorse/client/async_base.rb +4 -5
  42. data/lib/seahorse/client/h2/connection.rb +18 -28
  43. data/lib/seahorse/client/net_http/connection_pool.rb +2 -0
  44. data/lib/seahorse/client/networking_error.rb +1 -1
  45. data/lib/seahorse/client/plugins/h2.rb +4 -4
  46. data/lib/seahorse/client/response.rb +2 -0
  47. metadata +36 -8
@@ -7,35 +7,35 @@
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
10
- require 'seahorse/client/plugins/content_length.rb'
11
- require 'aws-sdk-core/plugins/credentials_configuration.rb'
12
- require 'aws-sdk-core/plugins/logging.rb'
13
- require 'aws-sdk-core/plugins/param_converter.rb'
14
- require 'aws-sdk-core/plugins/param_validator.rb'
15
- require 'aws-sdk-core/plugins/user_agent.rb'
16
- require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
17
- require 'aws-sdk-core/plugins/retry_errors.rb'
18
- require 'aws-sdk-core/plugins/global_configuration.rb'
19
- require 'aws-sdk-core/plugins/regional_endpoint.rb'
20
- require 'aws-sdk-core/plugins/endpoint_discovery.rb'
21
- require 'aws-sdk-core/plugins/endpoint_pattern.rb'
22
- require 'aws-sdk-core/plugins/response_paging.rb'
23
- require 'aws-sdk-core/plugins/stub_responses.rb'
24
- require 'aws-sdk-core/plugins/idempotency_token.rb'
25
- require 'aws-sdk-core/plugins/invocation_id.rb'
26
- require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
27
- require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
28
- require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
29
- require 'aws-sdk-core/plugins/transfer_encoding.rb'
30
- require 'aws-sdk-core/plugins/http_checksum.rb'
31
- require 'aws-sdk-core/plugins/checksum_algorithm.rb'
32
- require 'aws-sdk-core/plugins/request_compression.rb'
33
- require 'aws-sdk-core/plugins/defaults_mode.rb'
34
- require 'aws-sdk-core/plugins/recursion_detection.rb'
35
- require 'aws-sdk-core/plugins/telemetry.rb'
36
- require 'aws-sdk-core/plugins/sign.rb'
37
- require 'aws-sdk-core/plugins/protocols/query.rb'
38
- require 'aws-sdk-sts/plugins/sts_regional_endpoints.rb'
10
+ require 'seahorse/client/plugins/content_length'
11
+ require 'aws-sdk-core/plugins/credentials_configuration'
12
+ require 'aws-sdk-core/plugins/logging'
13
+ require 'aws-sdk-core/plugins/param_converter'
14
+ require 'aws-sdk-core/plugins/param_validator'
15
+ require 'aws-sdk-core/plugins/user_agent'
16
+ require 'aws-sdk-core/plugins/helpful_socket_errors'
17
+ require 'aws-sdk-core/plugins/retry_errors'
18
+ require 'aws-sdk-core/plugins/global_configuration'
19
+ require 'aws-sdk-core/plugins/regional_endpoint'
20
+ require 'aws-sdk-core/plugins/endpoint_discovery'
21
+ require 'aws-sdk-core/plugins/endpoint_pattern'
22
+ require 'aws-sdk-core/plugins/response_paging'
23
+ require 'aws-sdk-core/plugins/stub_responses'
24
+ require 'aws-sdk-core/plugins/idempotency_token'
25
+ require 'aws-sdk-core/plugins/invocation_id'
26
+ require 'aws-sdk-core/plugins/jsonvalue_converter'
27
+ require 'aws-sdk-core/plugins/client_metrics_plugin'
28
+ require 'aws-sdk-core/plugins/client_metrics_send_plugin'
29
+ require 'aws-sdk-core/plugins/transfer_encoding'
30
+ require 'aws-sdk-core/plugins/http_checksum'
31
+ require 'aws-sdk-core/plugins/checksum_algorithm'
32
+ require 'aws-sdk-core/plugins/request_compression'
33
+ require 'aws-sdk-core/plugins/defaults_mode'
34
+ require 'aws-sdk-core/plugins/recursion_detection'
35
+ require 'aws-sdk-core/plugins/telemetry'
36
+ require 'aws-sdk-core/plugins/sign'
37
+ require 'aws-sdk-core/plugins/protocols/query'
38
+ require 'aws-sdk-sts/plugins/sts_regional_endpoints'
39
39
 
40
40
  module Aws::STS
41
41
  # An API client for STS. To construct a client, you need to configure a `:region` and `:credentials`.
@@ -259,11 +259,34 @@ module Aws::STS
259
259
  # Used when loading credentials from the shared credentials file
260
260
  # at HOME/.aws/credentials. When not specified, 'default' is used.
261
261
  #
262
+ # @option options [String] :request_checksum_calculation ("when_supported")
263
+ # Determines when a checksum will be calculated for request payloads. Values are:
264
+ #
265
+ # * `when_supported` - (default) When set, a checksum will be
266
+ # calculated for all request payloads of operations modeled with the
267
+ # `httpChecksum` trait where `requestChecksumRequired` is `true` and/or a
268
+ # `requestAlgorithmMember` is modeled.
269
+ # * `when_required` - When set, a checksum will only be calculated for
270
+ # request payloads of operations modeled with the `httpChecksum` trait where
271
+ # `requestChecksumRequired` is `true` or where a `requestAlgorithmMember`
272
+ # is modeled and supplied.
273
+ #
262
274
  # @option options [Integer] :request_min_compression_size_bytes (10240)
263
275
  # The minimum size in bytes that triggers compression for request
264
276
  # bodies. The value must be non-negative integer value between 0
265
277
  # and 10485780 bytes inclusive.
266
278
  #
279
+ # @option options [String] :response_checksum_validation ("when_supported")
280
+ # Determines when checksum validation will be performed on response payloads. Values are:
281
+ #
282
+ # * `when_supported` - (default) When set, checksum validation is performed on all
283
+ # response payloads of operations modeled with the `httpChecksum` trait where
284
+ # `responseAlgorithms` is modeled, except when no modeled checksum algorithms
285
+ # are supported.
286
+ # * `when_required` - When set, checksum validation is not performed on
287
+ # response payloads of operations unless the checksum algorithm is supported and
288
+ # the `requestValidationModeMember` member is set to `ENABLED`.
289
+ #
267
290
  # @option options [Proc] :retry_backoff
268
291
  # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
269
292
  # This option is only used in the `legacy` retry mode.
@@ -831,7 +854,7 @@ module Aws::STS
831
854
  # The regex used to validate this parameter is a string of characters
832
855
  # consisting of upper- and lower-case alphanumeric characters with no
833
856
  # spaces. You can also include underscores or any of the following
834
- # characters: =,.@-. You cannot use a value that begins with the text
857
+ # characters: +=,.@-. You cannot use a value that begins with the text
835
858
  # `aws:`. This prefix is reserved for Amazon Web Services internal use.
836
859
  #
837
860
  #
@@ -1514,8 +1537,9 @@ module Aws::STS
1514
1537
  # authenticating the user who is using your application with a web
1515
1538
  # identity provider before the application makes an
1516
1539
  # `AssumeRoleWithWebIdentity` call. Timestamps in the token must be
1517
- # formatted as either an integer or a long integer. Only tokens with RSA
1518
- # algorithms (RS256) are supported.
1540
+ # formatted as either an integer or a long integer. Tokens must be
1541
+ # signed using either RSA keys (RS256, RS384, or RS512) or ECDSA keys
1542
+ # (ES256, ES384, or ES512).
1519
1543
  #
1520
1544
  # @option params [String] :provider_id
1521
1545
  # The fully qualified host component of the domain name of the OAuth 2.0
@@ -1708,14 +1732,14 @@ module Aws::STS
1708
1732
  end
1709
1733
 
1710
1734
  # Returns a set of short term credentials you can use to perform
1711
- # privileged tasks in a member account.
1735
+ # privileged tasks on a member account in your organization.
1712
1736
  #
1713
- # Before you can launch a privileged session, you must have enabled
1714
- # centralized root access in your organization. For steps to enable this
1715
- # feature, see [Centralize root access for member accounts][1] in the
1716
- # *IAM User Guide*.
1737
+ # Before you can launch a privileged session, you must have centralized
1738
+ # root access in your organization. For steps to enable this feature,
1739
+ # see [Centralize root access for member accounts][1] in the *IAM User
1740
+ # Guide*.
1717
1741
  #
1718
- # <note markdown="1"> The global endpoint is not supported for AssumeRoot. You must send
1742
+ # <note markdown="1"> The STS global endpoint is not supported for AssumeRoot. You must send
1719
1743
  # this request to a Regional STS endpoint. For more information, see
1720
1744
  # [Endpoints][2].
1721
1745
  #
@@ -1737,9 +1761,7 @@ module Aws::STS
1737
1761
  # @option params [required, Types::PolicyDescriptorType] :task_policy_arn
1738
1762
  # The identity based policy that scopes the session to the privileged
1739
1763
  # tasks that can be performed. You can use one of following Amazon Web
1740
- # Services managed policies to scope root session actions. You can add
1741
- # additional customer managed policies to further limit the permissions
1742
- # for the root session.
1764
+ # Services managed policies to scope root session actions.
1743
1765
  #
1744
1766
  # * [IAMAuditRootUserCredentials][1]
1745
1767
  #
@@ -2573,7 +2595,7 @@ module Aws::STS
2573
2595
  tracer: tracer
2574
2596
  )
2575
2597
  context[:gem_name] = 'aws-sdk-core'
2576
- context[:gem_version] = '3.214.0'
2598
+ context[:gem_version] = '3.222.2'
2577
2599
  Seahorse::Client::Request.new(handlers, context)
2578
2600
  end
2579
2601
 
@@ -10,98 +10,93 @@
10
10
  module Aws::STS
11
11
  class EndpointProvider
12
12
  def resolve_endpoint(parameters)
13
- region = parameters.region
14
- use_dual_stack = parameters.use_dual_stack
15
- use_fips = parameters.use_fips
16
- endpoint = parameters.endpoint
17
- use_global_endpoint = parameters.use_global_endpoint
18
- if Aws::Endpoints::Matchers.boolean_equals?(use_global_endpoint, true) && Aws::Endpoints::Matchers.not(Aws::Endpoints::Matchers.set?(endpoint)) && Aws::Endpoints::Matchers.set?(region) && (partition_result = Aws::Endpoints::Matchers.aws_partition(region)) && Aws::Endpoints::Matchers.boolean_equals?(use_fips, false) && Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, false)
19
- if Aws::Endpoints::Matchers.string_equals?(region, "ap-northeast-1")
13
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_global_endpoint, true) && Aws::Endpoints::Matchers.not(Aws::Endpoints::Matchers.set?(parameters.endpoint)) && Aws::Endpoints::Matchers.set?(parameters.region) && (partition_result = Aws::Endpoints::Matchers.aws_partition(parameters.region)) && Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, false) && Aws::Endpoints::Matchers.boolean_equals?(parameters.use_dual_stack, false)
14
+ if Aws::Endpoints::Matchers.string_equals?(parameters.region, "ap-northeast-1")
20
15
  return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
21
16
  end
22
- if Aws::Endpoints::Matchers.string_equals?(region, "ap-south-1")
17
+ if Aws::Endpoints::Matchers.string_equals?(parameters.region, "ap-south-1")
23
18
  return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
24
19
  end
25
- if Aws::Endpoints::Matchers.string_equals?(region, "ap-southeast-1")
20
+ if Aws::Endpoints::Matchers.string_equals?(parameters.region, "ap-southeast-1")
26
21
  return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
27
22
  end
28
- if Aws::Endpoints::Matchers.string_equals?(region, "ap-southeast-2")
23
+ if Aws::Endpoints::Matchers.string_equals?(parameters.region, "ap-southeast-2")
29
24
  return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
30
25
  end
31
- if Aws::Endpoints::Matchers.string_equals?(region, "aws-global")
26
+ if Aws::Endpoints::Matchers.string_equals?(parameters.region, "aws-global")
32
27
  return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
33
28
  end
34
- if Aws::Endpoints::Matchers.string_equals?(region, "ca-central-1")
29
+ if Aws::Endpoints::Matchers.string_equals?(parameters.region, "ca-central-1")
35
30
  return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
36
31
  end
37
- if Aws::Endpoints::Matchers.string_equals?(region, "eu-central-1")
32
+ if Aws::Endpoints::Matchers.string_equals?(parameters.region, "eu-central-1")
38
33
  return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
39
34
  end
40
- if Aws::Endpoints::Matchers.string_equals?(region, "eu-north-1")
35
+ if Aws::Endpoints::Matchers.string_equals?(parameters.region, "eu-north-1")
41
36
  return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
42
37
  end
43
- if Aws::Endpoints::Matchers.string_equals?(region, "eu-west-1")
38
+ if Aws::Endpoints::Matchers.string_equals?(parameters.region, "eu-west-1")
44
39
  return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
45
40
  end
46
- if Aws::Endpoints::Matchers.string_equals?(region, "eu-west-2")
41
+ if Aws::Endpoints::Matchers.string_equals?(parameters.region, "eu-west-2")
47
42
  return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
48
43
  end
49
- if Aws::Endpoints::Matchers.string_equals?(region, "eu-west-3")
44
+ if Aws::Endpoints::Matchers.string_equals?(parameters.region, "eu-west-3")
50
45
  return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
51
46
  end
52
- if Aws::Endpoints::Matchers.string_equals?(region, "sa-east-1")
47
+ if Aws::Endpoints::Matchers.string_equals?(parameters.region, "sa-east-1")
53
48
  return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
54
49
  end
55
- if Aws::Endpoints::Matchers.string_equals?(region, "us-east-1")
50
+ if Aws::Endpoints::Matchers.string_equals?(parameters.region, "us-east-1")
56
51
  return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
57
52
  end
58
- if Aws::Endpoints::Matchers.string_equals?(region, "us-east-2")
53
+ if Aws::Endpoints::Matchers.string_equals?(parameters.region, "us-east-2")
59
54
  return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
60
55
  end
61
- if Aws::Endpoints::Matchers.string_equals?(region, "us-west-1")
56
+ if Aws::Endpoints::Matchers.string_equals?(parameters.region, "us-west-1")
62
57
  return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
63
58
  end
64
- if Aws::Endpoints::Matchers.string_equals?(region, "us-west-2")
59
+ if Aws::Endpoints::Matchers.string_equals?(parameters.region, "us-west-2")
65
60
  return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
66
61
  end
67
- return Aws::Endpoints::Endpoint.new(url: "https://sts.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"#{region}"}]})
62
+ return Aws::Endpoints::Endpoint.new(url: "https://sts.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"#{parameters.region}"}]})
68
63
  end
69
- if Aws::Endpoints::Matchers.set?(endpoint)
70
- if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
64
+ if Aws::Endpoints::Matchers.set?(parameters.endpoint)
65
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true)
71
66
  raise ArgumentError, "Invalid Configuration: FIPS and custom endpoint are not supported"
72
67
  end
73
- if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
68
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_dual_stack, true)
74
69
  raise ArgumentError, "Invalid Configuration: Dualstack and custom endpoint are not supported"
75
70
  end
76
- return Aws::Endpoints::Endpoint.new(url: endpoint, headers: {}, properties: {})
71
+ return Aws::Endpoints::Endpoint.new(url: parameters.endpoint, headers: {}, properties: {})
77
72
  end
78
- if Aws::Endpoints::Matchers.set?(region)
79
- if (partition_result = Aws::Endpoints::Matchers.aws_partition(region))
80
- if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
73
+ if Aws::Endpoints::Matchers.set?(parameters.region)
74
+ if (partition_result = Aws::Endpoints::Matchers.aws_partition(parameters.region))
75
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(parameters.use_dual_stack, true)
81
76
  if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS")) && Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
82
- return Aws::Endpoints::Endpoint.new(url: "https://sts-fips.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
77
+ return Aws::Endpoints::Endpoint.new(url: "https://sts-fips.#{parameters.region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
83
78
  end
84
79
  raise ArgumentError, "FIPS and DualStack are enabled, but this partition does not support one or both"
85
80
  end
86
- if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
81
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true)
87
82
  if Aws::Endpoints::Matchers.boolean_equals?(Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"), true)
88
83
  if Aws::Endpoints::Matchers.string_equals?(Aws::Endpoints::Matchers.attr(partition_result, "name"), "aws-us-gov")
89
- return Aws::Endpoints::Endpoint.new(url: "https://sts.#{region}.amazonaws.com", headers: {}, properties: {})
84
+ return Aws::Endpoints::Endpoint.new(url: "https://sts.#{parameters.region}.amazonaws.com", headers: {}, properties: {})
90
85
  end
91
- return Aws::Endpoints::Endpoint.new(url: "https://sts-fips.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
86
+ return Aws::Endpoints::Endpoint.new(url: "https://sts-fips.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
92
87
  end
93
88
  raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
94
89
  end
95
- if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
90
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_dual_stack, true)
96
91
  if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
97
- return Aws::Endpoints::Endpoint.new(url: "https://sts.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
92
+ return Aws::Endpoints::Endpoint.new(url: "https://sts.#{parameters.region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
98
93
  end
99
94
  raise ArgumentError, "DualStack is enabled but this partition does not support DualStack"
100
95
  end
101
- if Aws::Endpoints::Matchers.string_equals?(region, "aws-global")
96
+ if Aws::Endpoints::Matchers.string_equals?(parameters.region, "aws-global")
102
97
  return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
103
98
  end
104
- return Aws::Endpoints::Endpoint.new(url: "https://sts.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
99
+ return Aws::Endpoints::Endpoint.new(url: "https://sts.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
105
100
  end
106
101
  end
107
102
  raise ArgumentError, "Invalid Configuration: Missing Region"
@@ -29,15 +29,21 @@ module Aws::STS
29
29
  # ## Error Classes
30
30
  # * {ExpiredTokenException}
31
31
  # * {IDPCommunicationErrorException}
32
+ # * This error class is not used. `IDPCommunicationError` is used during parsing instead.
32
33
  # * {IDPRejectedClaimException}
34
+ # * This error class is not used. `IDPRejectedClaim` is used during parsing instead.
33
35
  # * {InvalidAuthorizationMessageException}
34
36
  # * {InvalidIdentityTokenException}
37
+ # * This error class is not used. `InvalidIdentityToken` is used during parsing instead.
35
38
  # * {MalformedPolicyDocumentException}
39
+ # * This error class is not used. `MalformedPolicyDocument` is used during parsing instead.
36
40
  # * {PackedPolicyTooLargeException}
41
+ # * This error class is not used. `PackedPolicyTooLarge` is used during parsing instead.
37
42
  # * {RegionDisabledException}
38
43
  #
39
44
  # Additionally, error classes are dynamically generated for service errors based on the error code
40
45
  # if they are not defined above.
46
+ # Some existing error classes may use a different class name than the one documented.
41
47
  module Errors
42
48
 
43
49
  extend Aws::Errors::DynamicErrors
@@ -57,6 +63,8 @@ module Aws::STS
57
63
  end
58
64
  end
59
65
 
66
+ # @deprecated This error class is not used during parsing.
67
+ # Please use `IDPCommunicationError` instead.
60
68
  class IDPCommunicationErrorException < ServiceError
61
69
 
62
70
  # @param [Seahorse::Client::RequestContext] context
@@ -72,6 +80,8 @@ module Aws::STS
72
80
  end
73
81
  end
74
82
 
83
+ # @deprecated This error class is not used during parsing.
84
+ # Please use `IDPRejectedClaim` instead.
75
85
  class IDPRejectedClaimException < ServiceError
76
86
 
77
87
  # @param [Seahorse::Client::RequestContext] context
@@ -102,6 +112,8 @@ module Aws::STS
102
112
  end
103
113
  end
104
114
 
115
+ # @deprecated This error class is not used during parsing.
116
+ # Please use `InvalidIdentityToken` instead.
105
117
  class InvalidIdentityTokenException < ServiceError
106
118
 
107
119
  # @param [Seahorse::Client::RequestContext] context
@@ -117,6 +129,8 @@ module Aws::STS
117
129
  end
118
130
  end
119
131
 
132
+ # @deprecated This error class is not used during parsing.
133
+ # Please use `MalformedPolicyDocument` instead.
120
134
  class MalformedPolicyDocumentException < ServiceError
121
135
 
122
136
  # @param [Seahorse::Client::RequestContext] context
@@ -132,6 +146,8 @@ module Aws::STS
132
146
  end
133
147
  end
134
148
 
149
+ # @deprecated This error class is not used during parsing.
150
+ # Please use `PackedPolicyTooLarge` instead.
135
151
  class PackedPolicyTooLargeException < ServiceError
136
152
 
137
153
  # @param [Seahorse::Client::RequestContext] context
@@ -291,7 +291,7 @@ module Aws::STS
291
291
  # The regex used to validate this parameter is a string of characters
292
292
  # consisting of upper- and lower-case alphanumeric characters with no
293
293
  # spaces. You can also include underscores or any of the following
294
- # characters: =,.@-. You cannot use a value that begins with the text
294
+ # characters: +=,.@-. You cannot use a value that begins with the text
295
295
  # `aws:`. This prefix is reserved for Amazon Web Services internal
296
296
  # use.
297
297
  #
@@ -717,8 +717,9 @@ module Aws::STS
717
717
  # token by authenticating the user who is using your application with
718
718
  # a web identity provider before the application makes an
719
719
  # `AssumeRoleWithWebIdentity` call. Timestamps in the token must be
720
- # formatted as either an integer or a long integer. Only tokens with
721
- # RSA algorithms (RS256) are supported.
720
+ # formatted as either an integer or a long integer. Tokens must be
721
+ # signed using either RSA keys (RS256, RS384, or RS512) or ECDSA keys
722
+ # (ES256, ES384, or ES512).
722
723
  # @return [String]
723
724
  #
724
725
  # @!attribute [rw] provider_id
@@ -961,9 +962,7 @@ module Aws::STS
961
962
  # @!attribute [rw] task_policy_arn
962
963
  # The identity based policy that scopes the session to the privileged
963
964
  # tasks that can be performed. You can use one of following Amazon Web
964
- # Services managed policies to scope root session actions. You can add
965
- # additional customer managed policies to further limit the
966
- # permissions for the root session.
965
+ # Services managed policies to scope root session actions.
967
966
  #
968
967
  # * [IAMAuditRootUserCredentials][1]
969
968
  #
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.214.0'
59
+ GEM_VERSION = '3.222.2'
60
60
 
61
61
  end
62
62
 
@@ -3,7 +3,6 @@
3
3
  module Seahorse
4
4
  module Client
5
5
  class AsyncBase < Seahorse::Client::Base
6
-
7
6
  # default H2 plugins
8
7
  # @api private
9
8
  @plugins = PluginList.new([
@@ -11,10 +10,10 @@ module Seahorse
11
10
  Plugins::H2,
12
11
  Plugins::ResponseTarget
13
12
  ])
13
+
14
14
  def initialize(plugins, options)
15
- super
16
- @connection = H2::Connection.new(options)
17
- @options = options
15
+ super(plugins, options)
16
+ @connection = H2::Connection.new(@config)
18
17
  end
19
18
 
20
19
  # @return [H2::Connection]
@@ -36,7 +35,7 @@ module Seahorse
36
35
  # @return [Seahorse::Client::H2::Connection]
37
36
  def new_connection
38
37
  if @connection.closed?
39
- @connection = H2::Connection.new(@options)
38
+ @connection = H2::Connection.new(@config)
40
39
  else
41
40
  @connection
42
41
  end
@@ -10,13 +10,8 @@ module Seahorse
10
10
  module Client
11
11
  # @api private
12
12
  module H2
13
-
14
13
  # H2 Connection build on top of `http/2` gem
15
- # (requires Ruby >= 2.1)
16
- # with TLS layer plus ALPN, requires:
17
- # Ruby >= 2.3 and OpenSSL >= 1.0.2
18
14
  class Connection
19
-
20
15
  OPTIONS = {
21
16
  max_concurrent_streams: 100,
22
17
  connection_timeout: 60,
@@ -27,7 +22,7 @@ module Seahorse
27
22
  ssl_ca_bundle: nil,
28
23
  ssl_ca_directory: nil,
29
24
  ssl_ca_store: nil,
30
- enable_alpn: false
25
+ enable_alpn: true
31
26
  }
32
27
 
33
28
  # chunk read size at socket
@@ -41,25 +36,23 @@ module Seahorse
41
36
  instance_variable_set("@#{opt_name}", value)
42
37
  end
43
38
  @h2_client = HTTP2::Client.new(
44
- settings_max_concurrent_streams: max_concurrent_streams
39
+ settings_max_concurrent_streams: @max_concurrent_streams
45
40
  )
46
- @logger = if @http_wire_trace
47
- options[:logger] || Logger.new($stdout)
48
- end
41
+ @logger ||= Logger.new($stdout) if @http_wire_trace
49
42
  @chunk_size = options[:read_chunk_size] || CHUNKSIZE
43
+
50
44
  @errors = []
51
45
  @status = :ready
46
+
52
47
  @mutex = Mutex.new # connection can be shared across requests
53
48
  @socket = nil
54
49
  @socket_thread = nil
55
50
  end
56
51
 
57
52
  OPTIONS.keys.each do |attr_name|
58
- attr_reader(attr_name)
53
+ attr_reader attr_name
59
54
  end
60
55
 
61
- alias ssl_verify_peer? ssl_verify_peer
62
-
63
56
  attr_reader :errors
64
57
 
65
58
  attr_accessor :input_signal_thread
@@ -112,7 +105,7 @@ module Seahorse
112
105
  @h2_client << data
113
106
  rescue IO::WaitReadable
114
107
  begin
115
- unless IO.select([@socket], nil, nil, connection_read_timeout)
108
+ unless IO.select([@socket], nil, nil, @connection_read_timeout)
116
109
  self.debug_output('socket connection read time out')
117
110
  self.close!
118
111
  else
@@ -154,11 +147,11 @@ module Seahorse
154
147
  end
155
148
 
156
149
  def debug_output(msg, type = nil)
157
- prefix = case type
150
+ prefix =
151
+ case type
158
152
  when :send then '-> '
159
153
  when :receive then '<- '
160
- else
161
- ''
154
+ else ''
162
155
  end
163
156
  return unless @logger
164
157
  _debug_entry(prefix + msg)
@@ -206,7 +199,7 @@ module Seahorse
206
199
  begin
207
200
  tcp.connect_nonblock(addr)
208
201
  rescue IO::WaitWritable
209
- unless IO.select(nil, [tcp], nil, connection_timeout)
202
+ unless IO.select(nil, [tcp], nil, @connection_timeout)
210
203
  tcp.close
211
204
  raise
212
205
  end
@@ -220,15 +213,15 @@ module Seahorse
220
213
 
221
214
  def _tls_context
222
215
  ssl_ctx = OpenSSL::SSL::SSLContext.new(:TLSv1_2)
223
- if ssl_verify_peer?
216
+ if @ssl_verify_peer
224
217
  ssl_ctx.verify_mode = OpenSSL::SSL::VERIFY_PEER
225
- ssl_ctx.ca_file = ssl_ca_bundle ? ssl_ca_bundle : _default_ca_bundle
226
- ssl_ctx.ca_path = ssl_ca_directory ? ssl_ca_directory : _default_ca_directory
227
- ssl_ctx.cert_store = ssl_ca_store if ssl_ca_store
218
+ ssl_ctx.ca_file = @ssl_ca_bundle || _default_ca_bundle
219
+ ssl_ctx.ca_path = @ssl_ca_directory || _default_ca_directory
220
+ ssl_ctx.cert_store = @ssl_ca_store if @ssl_ca_store
228
221
  else
229
222
  ssl_ctx.verify_mode = OpenSSL::SSL::VERIFY_NONE
230
223
  end
231
- if enable_alpn
224
+ if @enable_alpn
232
225
  debug_output('enabling ALPN for TLS ...')
233
226
  ssl_ctx.alpn_protocols = ['h2']
234
227
  end
@@ -236,15 +229,12 @@ module Seahorse
236
229
  end
237
230
 
238
231
  def _default_ca_bundle
239
- File.exist?(OpenSSL::X509::DEFAULT_CERT_FILE) ?
240
- OpenSSL::X509::DEFAULT_CERT_FILE : nil
232
+ OpenSSL::X509::DEFAULT_CERT_FILE if File.exist?(OpenSSL::X509::DEFAULT_CERT_FILE)
241
233
  end
242
234
 
243
235
  def _default_ca_directory
244
- Dir.exist?(OpenSSL::X509::DEFAULT_CERT_DIR) ?
245
- OpenSSL::X509::DEFAULT_CERT_DIR : nil
236
+ OpenSSL::X509::DEFAULT_CERT_DIR if Dir.exist?(OpenSSL::X509::DEFAULT_CERT_DIR)
246
237
  end
247
-
248
238
  end
249
239
  end
250
240
  end
@@ -336,6 +336,8 @@ module Seahorse
336
336
  attr_reader :last_used
337
337
 
338
338
  def __getobj__
339
+ return yield if block_given? && !defined?(@http)
340
+
339
341
  @http
340
342
  end
341
343
 
@@ -39,7 +39,7 @@ module Seahorse
39
39
 
40
40
  end
41
41
 
42
- # Rasied when trying to use an closed connection
42
+ # Raised when trying to use an closed connection
43
43
  class Http2ConnectionClosedError < StandardError; end
44
44
  end
45
45
  end
@@ -53,10 +53,10 @@ When `true`, SSL peer certificates are verified when establishing a connection.
53
53
  When `true`, HTTP2 debug output will be sent to the `:logger`.
54
54
  DOCS
55
55
 
56
- option(:enable_alpn, default: false, doc_type: 'Boolean', docstring: <<-DOCS)
57
- Set to `true` to enable ALPN in HTTP2 over TLS. Requires Openssl version >= 1.0.2.
58
- Defaults to false. Note: not all service HTTP2 operations supports ALPN on server
59
- side, please refer to service documentation.
56
+ option(:enable_alpn, default: true, doc_type: 'Boolean', docstring: <<-DOCS)
57
+ Set to `false` to disable ALPN in HTTP2 over TLS. ALPN requires Openssl version >= 1.0.2.
58
+ Note: RFC7540 requires HTTP2 to use ALPN over TLS but some
59
+ services may not fully support ALPN and require setting this to `false`.
60
60
  DOCS
61
61
 
62
62
  option(:logger)
@@ -75,6 +75,8 @@ module Seahorse
75
75
  # Necessary to define as a subclass of Delegator
76
76
  # @api private
77
77
  def __getobj__
78
+ return yield if block_given? && !defined?(@data)
79
+
78
80
  @data
79
81
  end
80
82