aws-sdk-core 3.211.0 → 3.225.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 (54) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +161 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-defaults/default_configuration.rb +1 -2
  5. data/lib/aws-sdk-core/arn.rb +1 -3
  6. data/lib/aws-sdk-core/assume_role_credentials.rb +1 -0
  7. data/lib/aws-sdk-core/assume_role_web_identity_credentials.rb +1 -0
  8. data/lib/aws-sdk-core/cbor/decoder.rb +0 -2
  9. data/lib/aws-sdk-core/cbor/encoder.rb +2 -2
  10. data/lib/aws-sdk-core/client_stubs.rb +22 -48
  11. data/lib/aws-sdk-core/credential_provider.rb +4 -0
  12. data/lib/aws-sdk-core/credential_provider_chain.rb +27 -7
  13. data/lib/aws-sdk-core/credentials.rb +6 -0
  14. data/lib/aws-sdk-core/ecs_credentials.rb +1 -0
  15. data/lib/aws-sdk-core/errors.rb +2 -2
  16. data/lib/aws-sdk-core/instance_profile_credentials.rb +1 -0
  17. data/lib/aws-sdk-core/log/param_formatter.rb +7 -3
  18. data/lib/aws-sdk-core/plugins/checksum_algorithm.rb +332 -170
  19. data/lib/aws-sdk-core/plugins/client_metrics_plugin.rb +0 -1
  20. data/lib/aws-sdk-core/plugins/endpoint_pattern.rb +40 -32
  21. data/lib/aws-sdk-core/plugins/http_checksum.rb +2 -8
  22. data/lib/aws-sdk-core/plugins/sign.rb +16 -2
  23. data/lib/aws-sdk-core/plugins/stub_responses.rb +24 -8
  24. data/lib/aws-sdk-core/plugins/user_agent.rb +32 -2
  25. data/lib/aws-sdk-core/process_credentials.rb +1 -1
  26. data/lib/aws-sdk-core/rest/request/headers.rb +1 -1
  27. data/lib/aws-sdk-core/shared_config.rb +74 -21
  28. data/lib/aws-sdk-core/shared_credentials.rb +1 -0
  29. data/lib/aws-sdk-core/sso_credentials.rb +2 -0
  30. data/lib/aws-sdk-sso/client.rb +53 -31
  31. data/lib/aws-sdk-sso/endpoint_provider.rb +14 -18
  32. data/lib/aws-sdk-sso.rb +1 -1
  33. data/lib/aws-sdk-ssooidc/client.rb +90 -51
  34. data/lib/aws-sdk-ssooidc/client_api.rb +6 -0
  35. data/lib/aws-sdk-ssooidc/endpoint_provider.rb +14 -18
  36. data/lib/aws-sdk-ssooidc/types.rb +48 -16
  37. data/lib/aws-sdk-ssooidc.rb +1 -1
  38. data/lib/aws-sdk-sts/client.rb +261 -83
  39. data/lib/aws-sdk-sts/client_api.rb +31 -8
  40. data/lib/aws-sdk-sts/endpoint_provider.rb +50 -55
  41. data/lib/aws-sdk-sts/errors.rb +16 -0
  42. data/lib/aws-sdk-sts/types.rb +170 -28
  43. data/lib/aws-sdk-sts.rb +1 -1
  44. data/lib/seahorse/client/async_base.rb +4 -5
  45. data/lib/seahorse/client/base.rb +0 -14
  46. data/lib/seahorse/client/h2/connection.rb +18 -28
  47. data/lib/seahorse/client/http/response.rb +1 -1
  48. data/lib/seahorse/client/net_http/connection_pool.rb +2 -0
  49. data/lib/seahorse/client/networking_error.rb +1 -1
  50. data/lib/seahorse/client/plugins/h2.rb +4 -4
  51. data/lib/seahorse/client/response.rb +2 -0
  52. data/sig/aws-sdk-core/async_client_stubs.rbs +21 -0
  53. data/sig/seahorse/client/async_base.rbs +18 -0
  54. metadata +40 -14
@@ -10,43 +10,39 @@
10
10
  module Aws::SSO
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
- if Aws::Endpoints::Matchers.set?(endpoint)
18
- if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
13
+ if Aws::Endpoints::Matchers.set?(parameters.endpoint)
14
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true)
19
15
  raise ArgumentError, "Invalid Configuration: FIPS and custom endpoint are not supported"
20
16
  end
21
- if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
17
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_dual_stack, true)
22
18
  raise ArgumentError, "Invalid Configuration: Dualstack and custom endpoint are not supported"
23
19
  end
24
- return Aws::Endpoints::Endpoint.new(url: endpoint, headers: {}, properties: {})
20
+ return Aws::Endpoints::Endpoint.new(url: parameters.endpoint, headers: {}, properties: {})
25
21
  end
26
- if Aws::Endpoints::Matchers.set?(region)
27
- if (partition_result = Aws::Endpoints::Matchers.aws_partition(region))
28
- if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
22
+ if Aws::Endpoints::Matchers.set?(parameters.region)
23
+ if (partition_result = Aws::Endpoints::Matchers.aws_partition(parameters.region))
24
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(parameters.use_dual_stack, true)
29
25
  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"))
30
- return Aws::Endpoints::Endpoint.new(url: "https://portal.sso-fips.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
26
+ return Aws::Endpoints::Endpoint.new(url: "https://portal.sso-fips.#{parameters.region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
31
27
  end
32
28
  raise ArgumentError, "FIPS and DualStack are enabled, but this partition does not support one or both"
33
29
  end
34
- if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
30
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true)
35
31
  if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"))
36
32
  if Aws::Endpoints::Matchers.string_equals?("aws-us-gov", Aws::Endpoints::Matchers.attr(partition_result, "name"))
37
- return Aws::Endpoints::Endpoint.new(url: "https://portal.sso.#{region}.amazonaws.com", headers: {}, properties: {})
33
+ return Aws::Endpoints::Endpoint.new(url: "https://portal.sso.#{parameters.region}.amazonaws.com", headers: {}, properties: {})
38
34
  end
39
- return Aws::Endpoints::Endpoint.new(url: "https://portal.sso-fips.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
35
+ return Aws::Endpoints::Endpoint.new(url: "https://portal.sso-fips.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
40
36
  end
41
37
  raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
42
38
  end
43
- if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
39
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_dual_stack, true)
44
40
  if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
45
- return Aws::Endpoints::Endpoint.new(url: "https://portal.sso.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
41
+ return Aws::Endpoints::Endpoint.new(url: "https://portal.sso.#{parameters.region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
46
42
  end
47
43
  raise ArgumentError, "DualStack is enabled but this partition does not support DualStack"
48
44
  end
49
- return Aws::Endpoints::Endpoint.new(url: "https://portal.sso.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
45
+ return Aws::Endpoints::Endpoint.new(url: "https://portal.sso.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
50
46
  end
51
47
  end
52
48
  raise ArgumentError, "Invalid Configuration: Missing Region"
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.211.0'
59
+ GEM_VERSION = '3.225.0'
60
60
 
61
61
  end
62
62
 
@@ -7,34 +7,34 @@
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/rest_json.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/rest_json'
38
38
 
39
39
  module Aws::SSOOIDC
40
40
  # An API client for SSOOIDC. To construct a client, you need to configure a `:region` and `:credentials`.
@@ -200,8 +200,7 @@ module Aws::SSOOIDC
200
200
  # accepted modes and the configuration defaults that are included.
201
201
  #
202
202
  # @option options [Boolean] :disable_host_prefix_injection (false)
203
- # Set to true to disable SDK automatically adding host prefix
204
- # to default service endpoint when available.
203
+ # When `true`, the SDK will not prepend the modeled host prefix to the endpoint.
205
204
  #
206
205
  # @option options [Boolean] :disable_request_compression (false)
207
206
  # When set to 'true' the request body will not be compressed
@@ -257,11 +256,34 @@ module Aws::SSOOIDC
257
256
  # Used when loading credentials from the shared credentials file
258
257
  # at HOME/.aws/credentials. When not specified, 'default' is used.
259
258
  #
259
+ # @option options [String] :request_checksum_calculation ("when_supported")
260
+ # Determines when a checksum will be calculated for request payloads. Values are:
261
+ #
262
+ # * `when_supported` - (default) When set, a checksum will be
263
+ # calculated for all request payloads of operations modeled with the
264
+ # `httpChecksum` trait where `requestChecksumRequired` is `true` and/or a
265
+ # `requestAlgorithmMember` is modeled.
266
+ # * `when_required` - When set, a checksum will only be calculated for
267
+ # request payloads of operations modeled with the `httpChecksum` trait where
268
+ # `requestChecksumRequired` is `true` or where a `requestAlgorithmMember`
269
+ # is modeled and supplied.
270
+ #
260
271
  # @option options [Integer] :request_min_compression_size_bytes (10240)
261
272
  # The minimum size in bytes that triggers compression for request
262
273
  # bodies. The value must be non-negative integer value between 0
263
274
  # and 10485780 bytes inclusive.
264
275
  #
276
+ # @option options [String] :response_checksum_validation ("when_supported")
277
+ # Determines when checksum validation will be performed on response payloads. Values are:
278
+ #
279
+ # * `when_supported` - (default) When set, checksum validation is performed on all
280
+ # response payloads of operations modeled with the `httpChecksum` trait where
281
+ # `responseAlgorithms` is modeled, except when no modeled checksum algorithms
282
+ # are supported.
283
+ # * `when_required` - When set, checksum validation is not performed on
284
+ # response payloads of operations unless the checksum algorithm is supported and
285
+ # the `requestValidationModeMember` member is set to `ENABLED`.
286
+ #
265
287
  # @option options [Proc] :retry_backoff
266
288
  # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
267
289
  # This option is only used in the `legacy` retry mode.
@@ -449,7 +471,7 @@ module Aws::SSOOIDC
449
471
 
450
472
  # Creates and returns access and refresh tokens for clients that are
451
473
  # authenticated using client secrets. The access token can be used to
452
- # fetch short-term credentials for the assigned AWS accounts or to
474
+ # fetch short-lived credentials for the assigned AWS accounts or to
453
475
  # access application APIs using `bearer` authentication.
454
476
  #
455
477
  # @option params [required, String] :client_id
@@ -461,30 +483,28 @@ module Aws::SSOOIDC
461
483
  # the persisted result of the RegisterClient API.
462
484
  #
463
485
  # @option params [required, String] :grant_type
464
- # Supports the following OAuth grant types: Device Code and Refresh
465
- # Token. Specify either of the following values, depending on the grant
466
- # type that you want:
486
+ # Supports the following OAuth grant types: Authorization Code, Device
487
+ # Code, and Refresh Token. Specify one of the following values,
488
+ # depending on the grant type that you want:
489
+ #
490
+ # * Authorization Code - `authorization_code`
467
491
  #
468
492
  # * Device Code - `urn:ietf:params:oauth:grant-type:device_code`
469
493
  #
470
494
  # * Refresh Token - `refresh_token`
471
495
  #
472
- # For information about how to obtain the device code, see the
473
- # StartDeviceAuthorization topic.
474
- #
475
496
  # @option params [String] :device_code
476
497
  # Used only when calling this API for the Device Code grant type. This
477
- # short-term code is used to identify this authorization request. This
498
+ # short-lived code is used to identify this authorization request. This
478
499
  # comes from the result of the StartDeviceAuthorization API.
479
500
  #
480
501
  # @option params [String] :code
481
502
  # Used only when calling this API for the Authorization Code grant type.
482
- # The short-term code is used to identify this authorization request.
483
- # This grant type is currently unsupported for the CreateToken API.
503
+ # The short-lived code is used to identify this authorization request.
484
504
  #
485
505
  # @option params [String] :refresh_token
486
506
  # Used only when calling this API for the Refresh Token grant type. This
487
- # token is used to refresh short-term tokens, such as the access token,
507
+ # token is used to refresh short-lived tokens, such as the access token,
488
508
  # that might expire.
489
509
  #
490
510
  # For more information about the features and limitations of the current
@@ -590,7 +610,7 @@ module Aws::SSOOIDC
590
610
 
591
611
  # Creates and returns access and refresh tokens for clients and
592
612
  # applications that are authenticated using IAM entities. The access
593
- # token can be used to fetch short-term credentials for the assigned
613
+ # token can be used to fetch short-lived credentials for the assigned
594
614
  # Amazon Web Services accounts or to access application APIs using
595
615
  # `bearer` authentication.
596
616
  #
@@ -613,14 +633,14 @@ module Aws::SSOOIDC
613
633
  #
614
634
  # @option params [String] :code
615
635
  # Used only when calling this API for the Authorization Code grant type.
616
- # This short-term code is used to identify this authorization request.
636
+ # This short-lived code is used to identify this authorization request.
617
637
  # The code is obtained through a redirect from IAM Identity Center to a
618
638
  # redirect URI persisted in the Authorization Code GrantOptions for the
619
639
  # application.
620
640
  #
621
641
  # @option params [String] :refresh_token
622
642
  # Used only when calling this API for the Refresh Token grant type. This
623
- # token is used to refresh short-term tokens, such as the access token,
643
+ # token is used to refresh short-lived tokens, such as the access token,
624
644
  # that might expire.
625
645
  #
626
646
  # For more information about the features and limitations of the current
@@ -687,6 +707,7 @@ module Aws::SSOOIDC
687
707
  # * {Types::CreateTokenWithIAMResponse#id_token #id_token} => String
688
708
  # * {Types::CreateTokenWithIAMResponse#issued_token_type #issued_token_type} => String
689
709
  # * {Types::CreateTokenWithIAMResponse#scope #scope} => Array<String>
710
+ # * {Types::CreateTokenWithIAMResponse#aws_additional_details #aws_additional_details} => Types::AwsAdditionalDetails
690
711
  #
691
712
  #
692
713
  # @example Example: Call OAuth/OIDC /token endpoint for Authorization Code grant with IAM authentication
@@ -706,6 +727,9 @@ module Aws::SSOOIDC
706
727
  # resp.to_h outputs the following:
707
728
  # {
708
729
  # access_token: "aoal-YigITUDiNX1xZwOMXM5MxOWDL0E0jg9P6_C_jKQPxS_SKCP6f0kh1Up4g7TtvQqkMnD-GJiU_S1gvug6SrggAkc0:MGYCMQD3IatVjV7jAJU91kK3PkS/SfA2wtgWzOgZWDOR7sDGN9t0phCZz5It/aes/3C1Zj0CMQCKWOgRaiz6AIhza3DSXQNMLjRKXC8F8ceCsHlgYLMZ7hZidEXAMPLEACCESSTOKEN",
730
+ # aws_additional_details: {
731
+ # identity_context: "EXAMPLEIDENTITYCONTEXT",
732
+ # },
709
733
  # expires_in: 1579729529,
710
734
  # id_token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhd3M6aWRlbnRpdHlfc3RvcmVfaWQiOiJkLTMzMzMzMzMzMzMiLCJzdWIiOiI3MzA0NDhmMi1lMGExLTcwYTctYzk1NC0wMDAwMDAwMDAwMDAiLCJhd3M6aW5zdGFuY2VfYWNjb3VudCI6IjExMTExMTExMTExMSIsInN0czppZGVudGl0eV9jb250ZXh0IjoiRVhBTVBMRUlERU5USVRZQ09OVEVYVCIsInN0czphdWRpdF9jb250ZXh0IjoiRVhBTVBMRUFVRElUQ09OVEVYVCIsImlzcyI6Imh0dHBzOi8vaWRlbnRpdHljZW50ZXIuYW1hem9uYXdzLmNvbS9zc29pbnMtMTExMTExMTExMTExIiwiYXdzOmlkZW50aXR5X3N0b3JlX2FybiI6ImFybjphd3M6aWRlbnRpdHlzdG9yZTo6MTExMTExMTExMTExOmlkZW50aXR5c3RvcmUvZC0zMzMzMzMzMzMzIiwiYXVkIjoiYXJuOmF3czpzc286OjEyMzQ1Njc4OTAxMjphcHBsaWNhdGlvbi9zc29pbnMtMTExMTExMTExMTExL2FwbC0yMjIyMjIyMjIyMjIiLCJhd3M6aW5zdGFuY2VfYXJuIjoiYXJuOmF3czpzc286OjppbnN0YW5jZS9zc29pbnMtMTExMTExMTExMTExIiwiYXdzOmNyZWRlbnRpYWxfaWQiOiJfWlIyTjZhVkJqMjdGUEtheWpfcEtwVjc3QVBERl80MXB4ZXRfWWpJdUpONlVJR2RBdkpFWEFNUExFQ1JFRElEIiwiYXV0aF90aW1lIjoiMjAyMC0wMS0yMlQxMjo0NToyOVoiLCJleHAiOjE1Nzk3Mjk1MjksImlhdCI6MTU3OTcyNTkyOX0.Xyah6qbk78qThzJ41iFU2yfGuRqqtKXHrJYwQ8L9Ip0",
711
735
  # issued_token_type: "urn:ietf:params:oauth:token-type:refresh_token",
@@ -751,6 +775,9 @@ module Aws::SSOOIDC
751
775
  # resp.to_h outputs the following:
752
776
  # {
753
777
  # access_token: "aoal-YigITUDiNX1xZwOMXM5MxOWDL0E0jg9P6_C_jKQPxS_SKCP6f0kh1Up4g7TtvQqkMnD-GJiU_S1gvug6SrggAkc0:MGYCMQD3IatVjV7jAJU91kK3PkS/SfA2wtgWzOgZWDOR7sDGN9t0phCZz5It/aes/3C1Zj0CMQCKWOgRaiz6AIhza3DSXQNMLjRKXC8F8ceCsHlgYLMZ7hZidEXAMPLEACCESSTOKEN",
778
+ # aws_additional_details: {
779
+ # identity_context: "EXAMPLEIDENTITYCONTEXT",
780
+ # },
754
781
  # expires_in: 1579729529,
755
782
  # id_token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhd3M6aWRlbnRpdHlfc3RvcmVfaWQiOiJkLTMzMzMzMzMzMzMiLCJzdWIiOiI3MzA0NDhmMi1lMGExLTcwYTctYzk1NC0wMDAwMDAwMDAwMDAiLCJhd3M6aW5zdGFuY2VfYWNjb3VudCI6IjExMTExMTExMTExMSIsInN0czppZGVudGl0eV9jb250ZXh0IjoiRVhBTVBMRUlERU5USVRZQ09OVEVYVCIsInN0czphdWRpdF9jb250ZXh0IjoiRVhBTVBMRUFVRElUQ09OVEVYVCIsImlzcyI6Imh0dHBzOi8vaWRlbnRpdHljZW50ZXIuYW1hem9uYXdzLmNvbS9zc29pbnMtMTExMTExMTExMTExIiwiYXdzOmlkZW50aXR5X3N0b3JlX2FybiI6ImFybjphd3M6aWRlbnRpdHlzdG9yZTo6MTExMTExMTExMTExOmlkZW50aXR5c3RvcmUvZC0zMzMzMzMzMzMzIiwiYXVkIjoiYXJuOmF3czpzc286OjEyMzQ1Njc4OTAxMjphcHBsaWNhdGlvbi9zc29pbnMtMTExMTExMTExMTExL2FwbC0yMjIyMjIyMjIyMjIiLCJhd3M6aW5zdGFuY2VfYXJuIjoiYXJuOmF3czpzc286OjppbnN0YW5jZS9zc29pbnMtMTExMTExMTExMTExIiwiYXdzOmNyZWRlbnRpYWxfaWQiOiJfWlIyTjZhVkJqMjdGUEtheWpfcEtwVjc3QVBERl80MXB4ZXRfWWpJdUpONlVJR2RBdkpFWEFNUExFQ1JFRElEIiwiYXV0aF90aW1lIjoiMjAyMC0wMS0yMlQxMjo0NToyOVoiLCJleHAiOjE1Nzk3Mjk1MjksImlhdCI6MTU3OTcyNTkyOX0.Xyah6qbk78qThzJ41iFU2yfGuRqqtKXHrJYwQ8L9Ip0",
756
783
  # issued_token_type: "urn:ietf:params:oauth:token-type:refresh_token",
@@ -776,6 +803,9 @@ module Aws::SSOOIDC
776
803
  # resp.to_h outputs the following:
777
804
  # {
778
805
  # access_token: "aoal-YigITUDiNX1xZwOMXM5MxOWDL0E0jg9P6_C_jKQPxS_SKCP6f0kh1Up4g7TtvQqkMnD-GJiU_S1gvug6SrggAkc0:MGYCMQD3IatVjV7jAJU91kK3PkS/SfA2wtgWzOgZWDOR7sDGN9t0phCZz5It/aes/3C1Zj0CMQCKWOgRaiz6AIhza3DSXQNMLjRKXC8F8ceCsHlgYLMZ7hZidEXAMPLEACCESSTOKEN",
806
+ # aws_additional_details: {
807
+ # identity_context: "EXAMPLEIDENTITYCONTEXT",
808
+ # },
779
809
  # expires_in: 1579729529,
780
810
  # id_token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhd3M6aWRlbnRpdHlfc3RvcmVfaWQiOiJkLTMzMzMzMzMzMzMiLCJzdWIiOiI3MzA0NDhmMi1lMGExLTcwYTctYzk1NC0wMDAwMDAwMDAwMDAiLCJhd3M6aW5zdGFuY2VfYWNjb3VudCI6IjExMTExMTExMTExMSIsInN0czppZGVudGl0eV9jb250ZXh0IjoiRVhBTVBMRUlERU5USVRZQ09OVEVYVCIsImlzcyI6Imh0dHBzOi8vaWRlbnRpdHljZW50ZXIuYW1hem9uYXdzLmNvbS9zc29pbnMtMTExMTExMTExMTExIiwiYXdzOmlkZW50aXR5X3N0b3JlX2FybiI6ImFybjphd3M6aWRlbnRpdHlzdG9yZTo6MTExMTExMTExMTExOmlkZW50aXR5c3RvcmUvZC0zMzMzMzMzMzMzIiwiYXVkIjoiYXJuOmF3czpzc286OjEyMzQ1Njc4OTAxMjphcHBsaWNhdGlvbi9zc29pbnMtMTExMTExMTExMTExL2FwbC0yMjIyMjIyMjIyMjIiLCJhd3M6aW5zdGFuY2VfYXJuIjoiYXJuOmF3czpzc286OjppbnN0YW5jZS9zc29pbnMtMTExMTExMTExMTExIiwiYXdzOmNyZWRlbnRpYWxfaWQiOiJfWlIyTjZhVkJqMjdGUEtheWpfcEtwVjc3QVBERl80MXB4ZXRfWWpJdUpONlVJR2RBdkpFWEFNUExFQ1JFRElEIiwiYXV0aF90aW1lIjoiMjAyMC0wMS0yMlQxMjo0NToyOVoiLCJleHAiOjE1Nzk3Mjk1MjksImlhdCI6MTU3OTcyNTkyOX0.5SYiW1kMsuUr7nna-l5tlakM0GNbMHvIM2_n0QD23jM",
781
811
  # issued_token_type: "urn:ietf:params:oauth:token-type:access_token",
@@ -813,6 +843,7 @@ module Aws::SSOOIDC
813
843
  # resp.issued_token_type #=> String
814
844
  # resp.scope #=> Array
815
845
  # resp.scope[0] #=> String
846
+ # resp.aws_additional_details.identity_context #=> String
816
847
  #
817
848
  # @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/CreateTokenWithIAM AWS API Documentation
818
849
  #
@@ -823,9 +854,10 @@ module Aws::SSOOIDC
823
854
  req.send_request(options)
824
855
  end
825
856
 
826
- # Registers a client with IAM Identity Center. This allows clients to
827
- # initiate device authorization. The output should be persisted for
828
- # reuse through many authentication requests.
857
+ # Registers a public client with IAM Identity Center. This allows
858
+ # clients to perform authorization using the authorization
859
+ # code grant with Proof Key for Code Exchange (PKCE) or the device
860
+ # code grant.
829
861
  #
830
862
  # @option params [required, String] :client_name
831
863
  # The friendly name of the client.
@@ -847,7 +879,14 @@ module Aws::SSOOIDC
847
879
  # @option params [Array<String>] :grant_types
848
880
  # The list of OAuth 2.0 grant types that are defined by the client. This
849
881
  # list is used to restrict the token granting flows available to the
850
- # client.
882
+ # client. Supports the following OAuth 2.0 grant types: Authorization
883
+ # Code, Device Code, and Refresh Token.
884
+ #
885
+ # * Authorization Code - `authorization_code`
886
+ #
887
+ # * Device Code - `urn:ietf:params:oauth:grant-type:device_code`
888
+ #
889
+ # * Refresh Token - `refresh_token`
851
890
  #
852
891
  # @option params [String] :issuer_url
853
892
  # The IAM Identity Center Issuer URL associated with an instance of IAM
@@ -974,8 +1013,8 @@ module Aws::SSOOIDC
974
1013
  # expires_in: 1579729529,
975
1014
  # interval: 1,
976
1015
  # user_code: "makdfsk83yJraWQiOiJrZXktMTU2Njk2sImFsZyI6IkhTMzIn0EXAMPLEUSERCODE",
977
- # verification_uri: "https://device.sso.us-west-2.amazonaws.com",
978
- # verification_uri_complete: "https://device.sso.us-west-2.amazonaws.com?user_code=makdfsk83yJraWQiOiJrZXktMTU2Njk2sImFsZyI6IkhTMzIn0EXAMPLEUSERCODE",
1016
+ # verification_uri: "https://directory-alias-example.awsapps.com/start/#/device",
1017
+ # verification_uri_complete: "https://directory-alias-example.awsapps.com/start/#/device?user_code=makdfsk83yJraWQiOiJrZXktMTU2Njk2sImFsZyI6IkhTMzIn0EXAMPLEUSERCODE",
979
1018
  # }
980
1019
  #
981
1020
  # @example Request syntax with placeholder values
@@ -1022,7 +1061,7 @@ module Aws::SSOOIDC
1022
1061
  tracer: tracer
1023
1062
  )
1024
1063
  context[:gem_name] = 'aws-sdk-core'
1025
- context[:gem_version] = '3.211.0'
1064
+ context[:gem_version] = '3.225.0'
1026
1065
  Seahorse::Client::Request.new(handlers, context)
1027
1066
  end
1028
1067
 
@@ -20,6 +20,7 @@ module Aws::SSOOIDC
20
20
  Assertion = Shapes::StringShape.new(name: 'Assertion')
21
21
  AuthCode = Shapes::StringShape.new(name: 'AuthCode')
22
22
  AuthorizationPendingException = Shapes::StructureShape.new(name: 'AuthorizationPendingException')
23
+ AwsAdditionalDetails = Shapes::StructureShape.new(name: 'AwsAdditionalDetails')
23
24
  ClientId = Shapes::StringShape.new(name: 'ClientId')
24
25
  ClientName = Shapes::StringShape.new(name: 'ClientName')
25
26
  ClientSecret = Shapes::StringShape.new(name: 'ClientSecret')
@@ -37,6 +38,7 @@ module Aws::SSOOIDC
37
38
  GrantType = Shapes::StringShape.new(name: 'GrantType')
38
39
  GrantTypes = Shapes::ListShape.new(name: 'GrantTypes')
39
40
  IdToken = Shapes::StringShape.new(name: 'IdToken')
41
+ IdentityContext = Shapes::StringShape.new(name: 'IdentityContext')
40
42
  InternalServerException = Shapes::StructureShape.new(name: 'InternalServerException')
41
43
  IntervalInSeconds = Shapes::IntegerShape.new(name: 'IntervalInSeconds')
42
44
  InvalidClientException = Shapes::StructureShape.new(name: 'InvalidClientException')
@@ -74,6 +76,9 @@ module Aws::SSOOIDC
74
76
  AuthorizationPendingException.add_member(:error_description, Shapes::ShapeRef.new(shape: ErrorDescription, location_name: "error_description"))
75
77
  AuthorizationPendingException.struct_class = Types::AuthorizationPendingException
76
78
 
79
+ AwsAdditionalDetails.add_member(:identity_context, Shapes::ShapeRef.new(shape: IdentityContext, location_name: "identityContext"))
80
+ AwsAdditionalDetails.struct_class = Types::AwsAdditionalDetails
81
+
77
82
  CreateTokenRequest.add_member(:client_id, Shapes::ShapeRef.new(shape: ClientId, required: true, location_name: "clientId"))
78
83
  CreateTokenRequest.add_member(:client_secret, Shapes::ShapeRef.new(shape: ClientSecret, required: true, location_name: "clientSecret"))
79
84
  CreateTokenRequest.add_member(:grant_type, Shapes::ShapeRef.new(shape: GrantType, required: true, location_name: "grantType"))
@@ -112,6 +117,7 @@ module Aws::SSOOIDC
112
117
  CreateTokenWithIAMResponse.add_member(:id_token, Shapes::ShapeRef.new(shape: IdToken, location_name: "idToken"))
113
118
  CreateTokenWithIAMResponse.add_member(:issued_token_type, Shapes::ShapeRef.new(shape: TokenTypeURI, location_name: "issuedTokenType"))
114
119
  CreateTokenWithIAMResponse.add_member(:scope, Shapes::ShapeRef.new(shape: Scopes, location_name: "scope"))
120
+ CreateTokenWithIAMResponse.add_member(:aws_additional_details, Shapes::ShapeRef.new(shape: AwsAdditionalDetails, location_name: "awsAdditionalDetails"))
115
121
  CreateTokenWithIAMResponse.struct_class = Types::CreateTokenWithIAMResponse
116
122
 
117
123
  ExpiredTokenException.add_member(:error, Shapes::ShapeRef.new(shape: Error, location_name: "error"))
@@ -10,43 +10,39 @@
10
10
  module Aws::SSOOIDC
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
- if Aws::Endpoints::Matchers.set?(endpoint)
18
- if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
13
+ if Aws::Endpoints::Matchers.set?(parameters.endpoint)
14
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true)
19
15
  raise ArgumentError, "Invalid Configuration: FIPS and custom endpoint are not supported"
20
16
  end
21
- if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
17
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_dual_stack, true)
22
18
  raise ArgumentError, "Invalid Configuration: Dualstack and custom endpoint are not supported"
23
19
  end
24
- return Aws::Endpoints::Endpoint.new(url: endpoint, headers: {}, properties: {})
20
+ return Aws::Endpoints::Endpoint.new(url: parameters.endpoint, headers: {}, properties: {})
25
21
  end
26
- if Aws::Endpoints::Matchers.set?(region)
27
- if (partition_result = Aws::Endpoints::Matchers.aws_partition(region))
28
- if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
22
+ if Aws::Endpoints::Matchers.set?(parameters.region)
23
+ if (partition_result = Aws::Endpoints::Matchers.aws_partition(parameters.region))
24
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(parameters.use_dual_stack, true)
29
25
  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"))
30
- return Aws::Endpoints::Endpoint.new(url: "https://oidc-fips.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
26
+ return Aws::Endpoints::Endpoint.new(url: "https://oidc-fips.#{parameters.region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
31
27
  end
32
28
  raise ArgumentError, "FIPS and DualStack are enabled, but this partition does not support one or both"
33
29
  end
34
- if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
30
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true)
35
31
  if Aws::Endpoints::Matchers.boolean_equals?(Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"), true)
36
32
  if Aws::Endpoints::Matchers.string_equals?(Aws::Endpoints::Matchers.attr(partition_result, "name"), "aws-us-gov")
37
- return Aws::Endpoints::Endpoint.new(url: "https://oidc.#{region}.amazonaws.com", headers: {}, properties: {})
33
+ return Aws::Endpoints::Endpoint.new(url: "https://oidc.#{parameters.region}.amazonaws.com", headers: {}, properties: {})
38
34
  end
39
- return Aws::Endpoints::Endpoint.new(url: "https://oidc-fips.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
35
+ return Aws::Endpoints::Endpoint.new(url: "https://oidc-fips.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
40
36
  end
41
37
  raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
42
38
  end
43
- if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
39
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_dual_stack, true)
44
40
  if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
45
- return Aws::Endpoints::Endpoint.new(url: "https://oidc.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
41
+ return Aws::Endpoints::Endpoint.new(url: "https://oidc.#{parameters.region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
46
42
  end
47
43
  raise ArgumentError, "DualStack is enabled but this partition does not support DualStack"
48
44
  end
49
- return Aws::Endpoints::Endpoint.new(url: "https://oidc.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
45
+ return Aws::Endpoints::Endpoint.new(url: "https://oidc.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
50
46
  end
51
47
  end
52
48
  raise ArgumentError, "Invalid Configuration: Missing Region"
@@ -53,6 +53,25 @@ module Aws::SSOOIDC
53
53
  include Aws::Structure
54
54
  end
55
55
 
56
+ # This structure contains Amazon Web Services-specific parameter
57
+ # extensions for the token endpoint responses and includes the identity
58
+ # context.
59
+ #
60
+ # @!attribute [rw] identity_context
61
+ # STS context assertion that carries a user identifier to the Amazon
62
+ # Web Services service that it calls and can be used to obtain an
63
+ # identity-enhanced IAM role session. This value corresponds to the
64
+ # `sts:identity_context` claim in the ID token.
65
+ # @return [String]
66
+ #
67
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/AwsAdditionalDetails AWS API Documentation
68
+ #
69
+ class AwsAdditionalDetails < Struct.new(
70
+ :identity_context)
71
+ SENSITIVE = []
72
+ include Aws::Structure
73
+ end
74
+
56
75
  # @!attribute [rw] client_id
57
76
  # The unique identifier string for the client or application. This
58
77
  # value comes from the result of the RegisterClient API.
@@ -64,34 +83,32 @@ module Aws::SSOOIDC
64
83
  # @return [String]
65
84
  #
66
85
  # @!attribute [rw] grant_type
67
- # Supports the following OAuth grant types: Device Code and Refresh
68
- # Token. Specify either of the following values, depending on the
69
- # grant type that you want:
86
+ # Supports the following OAuth grant types: Authorization Code, Device
87
+ # Code, and Refresh Token. Specify one of the following values,
88
+ # depending on the grant type that you want:
89
+ #
90
+ # * Authorization Code - `authorization_code`
70
91
  #
71
92
  # * Device Code - `urn:ietf:params:oauth:grant-type:device_code`
72
93
  #
73
94
  # * Refresh Token - `refresh_token`
74
- #
75
- # For information about how to obtain the device code, see the
76
- # StartDeviceAuthorization topic.
77
95
  # @return [String]
78
96
  #
79
97
  # @!attribute [rw] device_code
80
98
  # Used only when calling this API for the Device Code grant type. This
81
- # short-term code is used to identify this authorization request. This
82
- # comes from the result of the StartDeviceAuthorization API.
99
+ # short-lived code is used to identify this authorization request.
100
+ # This comes from the result of the StartDeviceAuthorization API.
83
101
  # @return [String]
84
102
  #
85
103
  # @!attribute [rw] code
86
104
  # Used only when calling this API for the Authorization Code grant
87
- # type. The short-term code is used to identify this authorization
88
- # request. This grant type is currently unsupported for the
89
- # CreateToken API.
105
+ # type. The short-lived code is used to identify this authorization
106
+ # request.
90
107
  # @return [String]
91
108
  #
92
109
  # @!attribute [rw] refresh_token
93
110
  # Used only when calling this API for the Refresh Token grant type.
94
- # This token is used to refresh short-term tokens, such as the access
111
+ # This token is used to refresh short-lived tokens, such as the access
95
112
  # token, that might expire.
96
113
  #
97
114
  # For more information about the features and limitations of the
@@ -217,7 +234,7 @@ module Aws::SSOOIDC
217
234
  #
218
235
  # @!attribute [rw] code
219
236
  # Used only when calling this API for the Authorization Code grant
220
- # type. This short-term code is used to identify this authorization
237
+ # type. This short-lived code is used to identify this authorization
221
238
  # request. The code is obtained through a redirect from IAM Identity
222
239
  # Center to a redirect URI persisted in the Authorization Code
223
240
  # GrantOptions for the application.
@@ -225,7 +242,7 @@ module Aws::SSOOIDC
225
242
  #
226
243
  # @!attribute [rw] refresh_token
227
244
  # Used only when calling this API for the Refresh Token grant type.
228
- # This token is used to refresh short-term tokens, such as the access
245
+ # This token is used to refresh short-lived tokens, such as the access
229
246
  # token, that might expire.
230
247
  #
231
248
  # For more information about the features and limitations of the
@@ -358,6 +375,13 @@ module Aws::SSOOIDC
358
375
  # token that is issued is limited to the scopes that are granted.
359
376
  # @return [Array<String>]
360
377
  #
378
+ # @!attribute [rw] aws_additional_details
379
+ # A structure containing information from the `idToken`. Only the
380
+ # `identityContext` is in it, which is a value extracted from the
381
+ # `idToken`. This provides direct access to identity information
382
+ # without requiring JWT parsing.
383
+ # @return [Types::AwsAdditionalDetails]
384
+ #
361
385
  # @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/CreateTokenWithIAMResponse AWS API Documentation
362
386
  #
363
387
  class CreateTokenWithIAMResponse < Struct.new(
@@ -367,7 +391,8 @@ module Aws::SSOOIDC
367
391
  :refresh_token,
368
392
  :id_token,
369
393
  :issued_token_type,
370
- :scope)
394
+ :scope,
395
+ :aws_additional_details)
371
396
  SENSITIVE = [:access_token, :refresh_token, :id_token]
372
397
  include Aws::Structure
373
398
  end
@@ -606,7 +631,14 @@ module Aws::SSOOIDC
606
631
  # @!attribute [rw] grant_types
607
632
  # The list of OAuth 2.0 grant types that are defined by the client.
608
633
  # This list is used to restrict the token granting flows available to
609
- # the client.
634
+ # the client. Supports the following OAuth 2.0 grant types:
635
+ # Authorization Code, Device Code, and Refresh Token.
636
+ #
637
+ # * Authorization Code - `authorization_code`
638
+ #
639
+ # * Device Code - `urn:ietf:params:oauth:grant-type:device_code`
640
+ #
641
+ # * Refresh Token - `refresh_token`
610
642
  # @return [Array<String>]
611
643
  #
612
644
  # @!attribute [rw] issuer_url
@@ -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.211.0'
59
+ GEM_VERSION = '3.225.0'
60
60
 
61
61
  end
62
62