aws-sdk-core 3.233.0 → 3.239.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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +58 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-core/assume_role_credentials.rb +8 -8
  5. data/lib/aws-sdk-core/assume_role_web_identity_credentials.rb +2 -2
  6. data/lib/aws-sdk-core/credential_provider_chain.rb +71 -22
  7. data/lib/aws-sdk-core/ecs_credentials.rb +13 -13
  8. data/lib/aws-sdk-core/errors.rb +3 -0
  9. data/lib/aws-sdk-core/instance_profile_credentials.rb +7 -7
  10. data/lib/aws-sdk-core/login_credentials.rb +229 -0
  11. data/lib/aws-sdk-core/plugins/checksum_algorithm.rb +28 -14
  12. data/lib/aws-sdk-core/plugins/user_agent.rb +3 -1
  13. data/lib/aws-sdk-core/refreshing_credentials.rb +8 -11
  14. data/lib/aws-sdk-core/shared_config.rb +20 -0
  15. data/lib/aws-sdk-core/sso_credentials.rb +1 -1
  16. data/lib/aws-sdk-core.rb +4 -0
  17. data/lib/aws-sdk-signin/client.rb +604 -0
  18. data/lib/aws-sdk-signin/client_api.rb +119 -0
  19. data/lib/aws-sdk-signin/customizations.rb +1 -0
  20. data/lib/aws-sdk-signin/endpoint_parameters.rb +69 -0
  21. data/lib/aws-sdk-signin/endpoint_provider.rb +59 -0
  22. data/lib/aws-sdk-signin/endpoints.rb +20 -0
  23. data/lib/aws-sdk-signin/errors.rb +122 -0
  24. data/lib/aws-sdk-signin/plugins/endpoints.rb +77 -0
  25. data/lib/aws-sdk-signin/resource.rb +26 -0
  26. data/lib/aws-sdk-signin/types.rb +299 -0
  27. data/lib/aws-sdk-signin.rb +63 -0
  28. data/lib/aws-sdk-sso/client.rb +1 -1
  29. data/lib/aws-sdk-sso/endpoint_parameters.rb +4 -4
  30. data/lib/aws-sdk-sso.rb +1 -1
  31. data/lib/aws-sdk-ssooidc/client.rb +1 -1
  32. data/lib/aws-sdk-ssooidc/endpoint_parameters.rb +4 -4
  33. data/lib/aws-sdk-ssooidc.rb +1 -1
  34. data/lib/aws-sdk-sts/client.rb +136 -12
  35. data/lib/aws-sdk-sts/client_api.rb +72 -0
  36. data/lib/aws-sdk-sts/endpoint_parameters.rb +5 -5
  37. data/lib/aws-sdk-sts/errors.rb +64 -0
  38. data/lib/aws-sdk-sts/types.rb +175 -6
  39. data/lib/aws-sdk-sts.rb +1 -1
  40. data/lib/seahorse/client/h2/handler.rb +6 -1
  41. metadata +13 -1
@@ -619,7 +619,7 @@ module Aws::STS
619
619
  # The regex used to validate this parameter is a string of characters
620
620
  # consisting of upper- and lower-case alphanumeric characters with no
621
621
  # spaces. You can also include underscores or any of the following
622
- # characters: =,.@-
622
+ # characters: +=,.@-
623
623
  #
624
624
  #
625
625
  #
@@ -813,7 +813,7 @@ module Aws::STS
813
813
  # The regex used to validate this parameter is a string of characters
814
814
  # consisting of upper- and lower-case alphanumeric characters with no
815
815
  # spaces. You can also include underscores or any of the following
816
- # characters: =,.@:/-
816
+ # characters: +=,.@:\\/-
817
817
  #
818
818
  #
819
819
  #
@@ -831,7 +831,7 @@ module Aws::STS
831
831
  # The regex used to validate this parameter is a string of characters
832
832
  # consisting of upper- and lower-case alphanumeric characters with no
833
833
  # spaces. You can also include underscores or any of the following
834
- # characters: =,.@-
834
+ # characters: +=/:,.@-
835
835
  #
836
836
  # @option params [String] :token_code
837
837
  # The value provided by the MFA device, if the trust policy of the role
@@ -892,7 +892,7 @@ module Aws::STS
892
892
  #
893
893
  # resp = client.assume_role({
894
894
  # external_id: "123ABC",
895
- # policy: "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Stmt1\",\"Effect\":\"Allow\",\"Action\":\"s3:ListAllMyBuckets\",\"Resource\":\"*\"}]}",
895
+ # policy: "escaped-JSON-IAM-POLICY",
896
896
  # role_arn: "arn:aws:iam::123456789012:role/demo",
897
897
  # role_session_name: "testAssumeRoleSession",
898
898
  # tags: [
@@ -996,6 +996,11 @@ module Aws::STS
996
996
  # Applications can use these temporary security credentials to sign
997
997
  # calls to Amazon Web Services services.
998
998
  #
999
+ # <note markdown="1"> AssumeRoleWithSAML will not work on IAM Identity Center managed roles.
1000
+ # These roles' names start with `AWSReservedSSO_`.
1001
+ #
1002
+ # </note>
1003
+ #
999
1004
  # **Session Duration**
1000
1005
  #
1001
1006
  # By default, the temporary security credentials created by
@@ -1414,7 +1419,8 @@ module Aws::STS
1414
1419
  # (Optional) You can configure your IdP to pass attributes into your web
1415
1420
  # identity token as session tags. Each session tag consists of a key
1416
1421
  # name and an associated value. For more information about session tags,
1417
- # see [Passing Session Tags in STS][9] in the *IAM User Guide*.
1422
+ # see [Passing session tags using AssumeRoleWithWebIdentity][9] in the
1423
+ # *IAM User Guide*.
1418
1424
  #
1419
1425
  # You can pass up to 50 session tags. The plaintext session tag keys
1420
1426
  # can’t exceed 128 characters and the values can’t exceed 256
@@ -1482,7 +1488,7 @@ module Aws::STS
1482
1488
  # [6]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-settings.html#id_roles_update-session-duration
1483
1489
  # [7]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html
1484
1490
  # [8]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
1485
- # [9]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html
1491
+ # [9]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_adding-assume-role-idp
1486
1492
  # [10]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length
1487
1493
  # [11]: https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html
1488
1494
  # [12]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining
@@ -1673,7 +1679,7 @@ module Aws::STS
1673
1679
  #
1674
1680
  # resp = client.assume_role_with_web_identity({
1675
1681
  # duration_seconds: 3600,
1676
- # policy: "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Stmt1\",\"Effect\":\"Allow\",\"Action\":\"s3:ListAllMyBuckets\",\"Resource\":\"*\"}]}",
1682
+ # policy: "escaped-JSON-IAM-POLICY",
1677
1683
  # provider_id: "www.amazon.com",
1678
1684
  # role_arn: "arn:aws:iam::123456789012:role/FederatedWebIdentityRole",
1679
1685
  # role_session_name: "app1",
@@ -1738,7 +1744,10 @@ module Aws::STS
1738
1744
  end
1739
1745
 
1740
1746
  # Returns a set of short term credentials you can use to perform
1741
- # privileged tasks on a member account in your organization.
1747
+ # privileged tasks on a member account in your organization. You must
1748
+ # use credentials from an Organizations management account or a
1749
+ # delegated administrator account for IAM to call `AssumeRoot`. You
1750
+ # cannot use root user credentials to make this call.
1742
1751
  #
1743
1752
  # Before you can launch a privileged session, you must have centralized
1744
1753
  # root access in your organization. For steps to enable this feature,
@@ -1755,19 +1764,29 @@ module Aws::STS
1755
1764
  # were performed in a session. For more information, see [Track
1756
1765
  # privileged tasks in CloudTrail][3] in the *IAM User Guide*.
1757
1766
  #
1767
+ # When granting access to privileged tasks you should only grant the
1768
+ # necessary permissions required to perform that task. For more
1769
+ # information, see [Security best practices in IAM][4]. In addition, you
1770
+ # can use [service control policies][5] (SCPs) to manage and limit
1771
+ # permissions in your organization. See [General examples][6] in the
1772
+ # *Organizations User Guide* for more information on SCPs.
1773
+ #
1758
1774
  #
1759
1775
  #
1760
1776
  # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-enable-root-access.html
1761
1777
  # [2]: https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html#sts-endpoints
1762
1778
  # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-track-privileged-tasks.html
1779
+ # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html
1780
+ # [5]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html
1781
+ # [6]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_examples_general.html
1763
1782
  #
1764
1783
  # @option params [required, String] :target_principal
1765
1784
  # The member account principal ARN or account ID.
1766
1785
  #
1767
1786
  # @option params [required, Types::PolicyDescriptorType] :task_policy_arn
1768
1787
  # The identity based policy that scopes the session to the privileged
1769
- # tasks that can be performed. You can use one of following Amazon Web
1770
- # Services managed policies to scope root session actions.
1788
+ # tasks that can be performed. You must use one of following Amazon Web
1789
+ # Services managed policies to scope root session actions:
1771
1790
  #
1772
1791
  # * [IAMAuditRootUserCredentials][1]
1773
1792
  #
@@ -2078,6 +2097,46 @@ module Aws::STS
2078
2097
  req.send_request(options)
2079
2098
  end
2080
2099
 
2100
+ # Exchanges a trade-in token for temporary Amazon Web Services
2101
+ # credentials with the permissions associated with the assumed
2102
+ # principal. This operation allows you to obtain credentials for a
2103
+ # specific principal based on a trade-in token, enabling delegation of
2104
+ # access to Amazon Web Services resources.
2105
+ #
2106
+ # @option params [required, String] :trade_in_token
2107
+ # The token to exchange for temporary Amazon Web Services credentials.
2108
+ # This token must be valid and unexpired at the time of the request.
2109
+ #
2110
+ # @return [Types::GetDelegatedAccessTokenResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2111
+ #
2112
+ # * {Types::GetDelegatedAccessTokenResponse#credentials #credentials} => Types::Credentials
2113
+ # * {Types::GetDelegatedAccessTokenResponse#packed_policy_size #packed_policy_size} => Integer
2114
+ # * {Types::GetDelegatedAccessTokenResponse#assumed_principal #assumed_principal} => String
2115
+ #
2116
+ # @example Request syntax with placeholder values
2117
+ #
2118
+ # resp = client.get_delegated_access_token({
2119
+ # trade_in_token: "tradeInTokenType", # required
2120
+ # })
2121
+ #
2122
+ # @example Response structure
2123
+ #
2124
+ # resp.credentials.access_key_id #=> String
2125
+ # resp.credentials.secret_access_key #=> String
2126
+ # resp.credentials.session_token #=> String
2127
+ # resp.credentials.expiration #=> Time
2128
+ # resp.packed_policy_size #=> Integer
2129
+ # resp.assumed_principal #=> String
2130
+ #
2131
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetDelegatedAccessToken AWS API Documentation
2132
+ #
2133
+ # @overload get_delegated_access_token(params = {})
2134
+ # @param [Hash] params ({})
2135
+ def get_delegated_access_token(params = {}, options = {})
2136
+ req = build_request(:get_delegated_access_token, params)
2137
+ req.send_request(options)
2138
+ end
2139
+
2081
2140
  # Returns a set of temporary security credentials (consisting of an
2082
2141
  # access key ID, a secret access key, and a security token) for a user.
2083
2142
  # A typical use is in a proxy application that gets temporary security
@@ -2360,7 +2419,7 @@ module Aws::STS
2360
2419
  # resp = client.get_federation_token({
2361
2420
  # duration_seconds: 3600,
2362
2421
  # name: "testFedUserSession",
2363
- # policy: "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Stmt1\",\"Effect\":\"Allow\",\"Action\":\"s3:ListAllMyBuckets\",\"Resource\":\"*\"}]}",
2422
+ # policy: "escaped-JSON-IAM-POLICY",
2364
2423
  # tags: [
2365
2424
  # {
2366
2425
  # key: "Project",
@@ -2583,6 +2642,71 @@ module Aws::STS
2583
2642
  req.send_request(options)
2584
2643
  end
2585
2644
 
2645
+ # Returns a signed JSON Web Token (JWT) that represents the calling
2646
+ # Amazon Web Services identity. The returned JWT can be used to
2647
+ # authenticate with external services that support OIDC discovery. The
2648
+ # token is signed by Amazon Web Services STS and can be publicly
2649
+ # verified using the verification keys published at the issuer's JWKS
2650
+ # endpoint.
2651
+ #
2652
+ # @option params [required, Array<String>] :audience
2653
+ # The intended recipient of the web identity token. This value populates
2654
+ # the `aud` claim in the JWT and should identify the service or
2655
+ # application that will validate and use the token. The external service
2656
+ # should verify this claim to ensure the token was intended for their
2657
+ # use.
2658
+ #
2659
+ # @option params [Integer] :duration_seconds
2660
+ # The duration, in seconds, for which the JSON Web Token (JWT) will
2661
+ # remain valid. The value can range from 60 seconds (1 minute) to 3600
2662
+ # seconds (1 hour). If not specified, the default duration is 300
2663
+ # seconds (5 minutes). The token is designed to be short-lived and
2664
+ # should be used for proof of identity, then exchanged for credentials
2665
+ # or short-lived tokens in the external service.
2666
+ #
2667
+ # @option params [required, String] :signing_algorithm
2668
+ # The cryptographic algorithm to use for signing the JSON Web Token
2669
+ # (JWT). Valid values are RS256 (RSA with SHA-256) and ES384 (ECDSA
2670
+ # using P-384 curve with SHA-384).
2671
+ #
2672
+ # @option params [Array<Types::Tag>] :tags
2673
+ # An optional list of tags to include in the JSON Web Token (JWT). These
2674
+ # tags are added as custom claims to the JWT and can be used by the
2675
+ # downstream service for authorization decisions.
2676
+ #
2677
+ # @return [Types::GetWebIdentityTokenResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2678
+ #
2679
+ # * {Types::GetWebIdentityTokenResponse#web_identity_token #web_identity_token} => String
2680
+ # * {Types::GetWebIdentityTokenResponse#expiration #expiration} => Time
2681
+ #
2682
+ # @example Request syntax with placeholder values
2683
+ #
2684
+ # resp = client.get_web_identity_token({
2685
+ # audience: ["webIdentityTokenAudienceStringType"], # required
2686
+ # duration_seconds: 1,
2687
+ # signing_algorithm: "jwtAlgorithmType", # required
2688
+ # tags: [
2689
+ # {
2690
+ # key: "tagKeyType", # required
2691
+ # value: "tagValueType", # required
2692
+ # },
2693
+ # ],
2694
+ # })
2695
+ #
2696
+ # @example Response structure
2697
+ #
2698
+ # resp.web_identity_token #=> String
2699
+ # resp.expiration #=> Time
2700
+ #
2701
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetWebIdentityToken AWS API Documentation
2702
+ #
2703
+ # @overload get_web_identity_token(params = {})
2704
+ # @param [Hash] params ({})
2705
+ def get_web_identity_token(params = {}, options = {})
2706
+ req = build_request(:get_web_identity_token, params)
2707
+ req.send_request(options)
2708
+ end
2709
+
2586
2710
  # @!endgroup
2587
2711
 
2588
2712
  # @param params ({})
@@ -2601,7 +2725,7 @@ module Aws::STS
2601
2725
  tracer: tracer
2602
2726
  )
2603
2727
  context[:gem_name] = 'aws-sdk-core'
2604
- context[:gem_version] = '3.233.0'
2728
+ context[:gem_version] = '3.239.2'
2605
2729
  Seahorse::Client::Request.new(handlers, context)
2606
2730
  end
2607
2731
 
@@ -28,22 +28,29 @@ module Aws::STS
28
28
  DecodeAuthorizationMessageRequest = Shapes::StructureShape.new(name: 'DecodeAuthorizationMessageRequest')
29
29
  DecodeAuthorizationMessageResponse = Shapes::StructureShape.new(name: 'DecodeAuthorizationMessageResponse')
30
30
  ExpiredTokenException = Shapes::StructureShape.new(name: 'ExpiredTokenException', error: {"code" => "ExpiredTokenException", "httpStatusCode" => 400, "senderFault" => true})
31
+ ExpiredTradeInTokenException = Shapes::StructureShape.new(name: 'ExpiredTradeInTokenException', error: {"code" => "ExpiredTradeInTokenException", "httpStatusCode" => 400, "senderFault" => true})
31
32
  FederatedUser = Shapes::StructureShape.new(name: 'FederatedUser')
32
33
  GetAccessKeyInfoRequest = Shapes::StructureShape.new(name: 'GetAccessKeyInfoRequest')
33
34
  GetAccessKeyInfoResponse = Shapes::StructureShape.new(name: 'GetAccessKeyInfoResponse')
34
35
  GetCallerIdentityRequest = Shapes::StructureShape.new(name: 'GetCallerIdentityRequest')
35
36
  GetCallerIdentityResponse = Shapes::StructureShape.new(name: 'GetCallerIdentityResponse')
37
+ GetDelegatedAccessTokenRequest = Shapes::StructureShape.new(name: 'GetDelegatedAccessTokenRequest')
38
+ GetDelegatedAccessTokenResponse = Shapes::StructureShape.new(name: 'GetDelegatedAccessTokenResponse')
36
39
  GetFederationTokenRequest = Shapes::StructureShape.new(name: 'GetFederationTokenRequest')
37
40
  GetFederationTokenResponse = Shapes::StructureShape.new(name: 'GetFederationTokenResponse')
38
41
  GetSessionTokenRequest = Shapes::StructureShape.new(name: 'GetSessionTokenRequest')
39
42
  GetSessionTokenResponse = Shapes::StructureShape.new(name: 'GetSessionTokenResponse')
43
+ GetWebIdentityTokenRequest = Shapes::StructureShape.new(name: 'GetWebIdentityTokenRequest')
44
+ GetWebIdentityTokenResponse = Shapes::StructureShape.new(name: 'GetWebIdentityTokenResponse')
40
45
  IDPCommunicationErrorException = Shapes::StructureShape.new(name: 'IDPCommunicationErrorException', error: {"code" => "IDPCommunicationError", "httpStatusCode" => 400, "senderFault" => true})
41
46
  IDPRejectedClaimException = Shapes::StructureShape.new(name: 'IDPRejectedClaimException', error: {"code" => "IDPRejectedClaim", "httpStatusCode" => 403, "senderFault" => true})
42
47
  InvalidAuthorizationMessageException = Shapes::StructureShape.new(name: 'InvalidAuthorizationMessageException', error: {"code" => "InvalidAuthorizationMessageException", "httpStatusCode" => 400, "senderFault" => true})
43
48
  InvalidIdentityTokenException = Shapes::StructureShape.new(name: 'InvalidIdentityTokenException', error: {"code" => "InvalidIdentityToken", "httpStatusCode" => 400, "senderFault" => true})
44
49
  Issuer = Shapes::StringShape.new(name: 'Issuer')
50
+ JWTPayloadSizeExceededException = Shapes::StructureShape.new(name: 'JWTPayloadSizeExceededException', error: {"code" => "JWTPayloadSizeExceededException", "httpStatusCode" => 400, "senderFault" => true})
45
51
  MalformedPolicyDocumentException = Shapes::StructureShape.new(name: 'MalformedPolicyDocumentException', error: {"code" => "MalformedPolicyDocument", "httpStatusCode" => 400, "senderFault" => true})
46
52
  NameQualifier = Shapes::StringShape.new(name: 'NameQualifier')
53
+ OutboundWebIdentityFederationDisabledException = Shapes::StructureShape.new(name: 'OutboundWebIdentityFederationDisabledException', error: {"code" => "OutboundWebIdentityFederationDisabledException", "httpStatusCode" => 403, "senderFault" => true})
47
54
  PackedPolicyTooLargeException = Shapes::StructureShape.new(name: 'PackedPolicyTooLargeException', error: {"code" => "PackedPolicyTooLarge", "httpStatusCode" => 400, "senderFault" => true})
48
55
  PolicyDescriptorType = Shapes::StructureShape.new(name: 'PolicyDescriptorType')
49
56
  ProvidedContext = Shapes::StructureShape.new(name: 'ProvidedContext')
@@ -51,6 +58,7 @@ module Aws::STS
51
58
  RegionDisabledException = Shapes::StructureShape.new(name: 'RegionDisabledException', error: {"code" => "RegionDisabledException", "httpStatusCode" => 403, "senderFault" => true})
52
59
  RootDurationSecondsType = Shapes::IntegerShape.new(name: 'RootDurationSecondsType')
53
60
  SAMLAssertionType = Shapes::StringShape.new(name: 'SAMLAssertionType')
61
+ SessionDurationEscalationException = Shapes::StructureShape.new(name: 'SessionDurationEscalationException', error: {"code" => "SessionDurationEscalationException", "httpStatusCode" => 403, "senderFault" => true})
54
62
  Subject = Shapes::StringShape.new(name: 'Subject')
55
63
  SubjectType = Shapes::StringShape.new(name: 'SubjectType')
56
64
  Tag = Shapes::StructureShape.new(name: 'Tag')
@@ -67,20 +75,25 @@ module Aws::STS
67
75
  durationSecondsType = Shapes::IntegerShape.new(name: 'durationSecondsType')
68
76
  encodedMessageType = Shapes::StringShape.new(name: 'encodedMessageType')
69
77
  expiredIdentityTokenMessage = Shapes::StringShape.new(name: 'expiredIdentityTokenMessage')
78
+ expiredTradeInTokenExceptionMessage = Shapes::StringShape.new(name: 'expiredTradeInTokenExceptionMessage')
70
79
  externalIdType = Shapes::StringShape.new(name: 'externalIdType')
71
80
  federatedIdType = Shapes::StringShape.new(name: 'federatedIdType')
72
81
  idpCommunicationErrorMessage = Shapes::StringShape.new(name: 'idpCommunicationErrorMessage')
73
82
  idpRejectedClaimMessage = Shapes::StringShape.new(name: 'idpRejectedClaimMessage')
74
83
  invalidAuthorizationMessage = Shapes::StringShape.new(name: 'invalidAuthorizationMessage')
75
84
  invalidIdentityTokenMessage = Shapes::StringShape.new(name: 'invalidIdentityTokenMessage')
85
+ jwtAlgorithmType = Shapes::StringShape.new(name: 'jwtAlgorithmType')
86
+ jwtPayloadSizeExceededException = Shapes::StringShape.new(name: 'jwtPayloadSizeExceededException')
76
87
  malformedPolicyDocumentMessage = Shapes::StringShape.new(name: 'malformedPolicyDocumentMessage')
77
88
  nonNegativeIntegerType = Shapes::IntegerShape.new(name: 'nonNegativeIntegerType')
89
+ outboundWebIdentityFederationDisabledException = Shapes::StringShape.new(name: 'outboundWebIdentityFederationDisabledException')
78
90
  packedPolicyTooLargeMessage = Shapes::StringShape.new(name: 'packedPolicyTooLargeMessage')
79
91
  policyDescriptorListType = Shapes::ListShape.new(name: 'policyDescriptorListType')
80
92
  regionDisabledMessage = Shapes::StringShape.new(name: 'regionDisabledMessage')
81
93
  roleDurationSecondsType = Shapes::IntegerShape.new(name: 'roleDurationSecondsType')
82
94
  roleSessionNameType = Shapes::StringShape.new(name: 'roleSessionNameType')
83
95
  serialNumberType = Shapes::StringShape.new(name: 'serialNumberType')
96
+ sessionDurationEscalationException = Shapes::StringShape.new(name: 'sessionDurationEscalationException')
84
97
  sessionPolicyDocumentType = Shapes::StringShape.new(name: 'sessionPolicyDocumentType')
85
98
  sourceIdentityType = Shapes::StringShape.new(name: 'sourceIdentityType')
86
99
  tagKeyListType = Shapes::ListShape.new(name: 'tagKeyListType')
@@ -89,11 +102,16 @@ module Aws::STS
89
102
  tagValueType = Shapes::StringShape.new(name: 'tagValueType')
90
103
  tokenCodeType = Shapes::StringShape.new(name: 'tokenCodeType')
91
104
  tokenType = Shapes::StringShape.new(name: 'tokenType')
105
+ tradeInTokenType = Shapes::StringShape.new(name: 'tradeInTokenType')
92
106
  unrestrictedSessionPolicyDocumentType = Shapes::StringShape.new(name: 'unrestrictedSessionPolicyDocumentType')
93
107
  urlType = Shapes::StringShape.new(name: 'urlType')
94
108
  userIdType = Shapes::StringShape.new(name: 'userIdType')
95
109
  userNameType = Shapes::StringShape.new(name: 'userNameType')
96
110
  webIdentitySubjectType = Shapes::StringShape.new(name: 'webIdentitySubjectType')
111
+ webIdentityTokenAudienceListType = Shapes::ListShape.new(name: 'webIdentityTokenAudienceListType')
112
+ webIdentityTokenAudienceStringType = Shapes::StringShape.new(name: 'webIdentityTokenAudienceStringType')
113
+ webIdentityTokenDurationSecondsType = Shapes::IntegerShape.new(name: 'webIdentityTokenDurationSecondsType')
114
+ webIdentityTokenType = Shapes::StringShape.new(name: 'webIdentityTokenType')
97
115
 
98
116
  AssumeRoleRequest.add_member(:role_arn, Shapes::ShapeRef.new(shape: arnType, required: true, location_name: "RoleArn"))
99
117
  AssumeRoleRequest.add_member(:role_session_name, Shapes::ShapeRef.new(shape: roleSessionNameType, required: true, location_name: "RoleSessionName"))
@@ -180,6 +198,9 @@ module Aws::STS
180
198
  ExpiredTokenException.add_member(:message, Shapes::ShapeRef.new(shape: expiredIdentityTokenMessage, location_name: "message"))
181
199
  ExpiredTokenException.struct_class = Types::ExpiredTokenException
182
200
 
201
+ ExpiredTradeInTokenException.add_member(:message, Shapes::ShapeRef.new(shape: expiredTradeInTokenExceptionMessage, location_name: "message"))
202
+ ExpiredTradeInTokenException.struct_class = Types::ExpiredTradeInTokenException
203
+
183
204
  FederatedUser.add_member(:federated_user_id, Shapes::ShapeRef.new(shape: federatedIdType, required: true, location_name: "FederatedUserId"))
184
205
  FederatedUser.add_member(:arn, Shapes::ShapeRef.new(shape: arnType, required: true, location_name: "Arn"))
185
206
  FederatedUser.struct_class = Types::FederatedUser
@@ -197,6 +218,14 @@ module Aws::STS
197
218
  GetCallerIdentityResponse.add_member(:arn, Shapes::ShapeRef.new(shape: arnType, location_name: "Arn"))
198
219
  GetCallerIdentityResponse.struct_class = Types::GetCallerIdentityResponse
199
220
 
221
+ GetDelegatedAccessTokenRequest.add_member(:trade_in_token, Shapes::ShapeRef.new(shape: tradeInTokenType, required: true, location_name: "TradeInToken"))
222
+ GetDelegatedAccessTokenRequest.struct_class = Types::GetDelegatedAccessTokenRequest
223
+
224
+ GetDelegatedAccessTokenResponse.add_member(:credentials, Shapes::ShapeRef.new(shape: Credentials, location_name: "Credentials"))
225
+ GetDelegatedAccessTokenResponse.add_member(:packed_policy_size, Shapes::ShapeRef.new(shape: nonNegativeIntegerType, location_name: "PackedPolicySize"))
226
+ GetDelegatedAccessTokenResponse.add_member(:assumed_principal, Shapes::ShapeRef.new(shape: arnType, location_name: "AssumedPrincipal"))
227
+ GetDelegatedAccessTokenResponse.struct_class = Types::GetDelegatedAccessTokenResponse
228
+
200
229
  GetFederationTokenRequest.add_member(:name, Shapes::ShapeRef.new(shape: userNameType, required: true, location_name: "Name"))
201
230
  GetFederationTokenRequest.add_member(:policy, Shapes::ShapeRef.new(shape: sessionPolicyDocumentType, location_name: "Policy"))
202
231
  GetFederationTokenRequest.add_member(:policy_arns, Shapes::ShapeRef.new(shape: policyDescriptorListType, location_name: "PolicyArns"))
@@ -217,6 +246,16 @@ module Aws::STS
217
246
  GetSessionTokenResponse.add_member(:credentials, Shapes::ShapeRef.new(shape: Credentials, location_name: "Credentials"))
218
247
  GetSessionTokenResponse.struct_class = Types::GetSessionTokenResponse
219
248
 
249
+ GetWebIdentityTokenRequest.add_member(:audience, Shapes::ShapeRef.new(shape: webIdentityTokenAudienceListType, required: true, location_name: "Audience"))
250
+ GetWebIdentityTokenRequest.add_member(:duration_seconds, Shapes::ShapeRef.new(shape: webIdentityTokenDurationSecondsType, location_name: "DurationSeconds"))
251
+ GetWebIdentityTokenRequest.add_member(:signing_algorithm, Shapes::ShapeRef.new(shape: jwtAlgorithmType, required: true, location_name: "SigningAlgorithm"))
252
+ GetWebIdentityTokenRequest.add_member(:tags, Shapes::ShapeRef.new(shape: tagListType, location_name: "Tags"))
253
+ GetWebIdentityTokenRequest.struct_class = Types::GetWebIdentityTokenRequest
254
+
255
+ GetWebIdentityTokenResponse.add_member(:web_identity_token, Shapes::ShapeRef.new(shape: webIdentityTokenType, location_name: "WebIdentityToken"))
256
+ GetWebIdentityTokenResponse.add_member(:expiration, Shapes::ShapeRef.new(shape: dateType, location_name: "Expiration"))
257
+ GetWebIdentityTokenResponse.struct_class = Types::GetWebIdentityTokenResponse
258
+
220
259
  IDPCommunicationErrorException.add_member(:message, Shapes::ShapeRef.new(shape: idpCommunicationErrorMessage, location_name: "message"))
221
260
  IDPCommunicationErrorException.struct_class = Types::IDPCommunicationErrorException
222
261
 
@@ -229,9 +268,15 @@ module Aws::STS
229
268
  InvalidIdentityTokenException.add_member(:message, Shapes::ShapeRef.new(shape: invalidIdentityTokenMessage, location_name: "message"))
230
269
  InvalidIdentityTokenException.struct_class = Types::InvalidIdentityTokenException
231
270
 
271
+ JWTPayloadSizeExceededException.add_member(:message, Shapes::ShapeRef.new(shape: jwtPayloadSizeExceededException, location_name: "message"))
272
+ JWTPayloadSizeExceededException.struct_class = Types::JWTPayloadSizeExceededException
273
+
232
274
  MalformedPolicyDocumentException.add_member(:message, Shapes::ShapeRef.new(shape: malformedPolicyDocumentMessage, location_name: "message"))
233
275
  MalformedPolicyDocumentException.struct_class = Types::MalformedPolicyDocumentException
234
276
 
277
+ OutboundWebIdentityFederationDisabledException.add_member(:message, Shapes::ShapeRef.new(shape: outboundWebIdentityFederationDisabledException, location_name: "message"))
278
+ OutboundWebIdentityFederationDisabledException.struct_class = Types::OutboundWebIdentityFederationDisabledException
279
+
235
280
  PackedPolicyTooLargeException.add_member(:message, Shapes::ShapeRef.new(shape: packedPolicyTooLargeMessage, location_name: "message"))
236
281
  PackedPolicyTooLargeException.struct_class = Types::PackedPolicyTooLargeException
237
282
 
@@ -247,6 +292,9 @@ module Aws::STS
247
292
  RegionDisabledException.add_member(:message, Shapes::ShapeRef.new(shape: regionDisabledMessage, location_name: "message"))
248
293
  RegionDisabledException.struct_class = Types::RegionDisabledException
249
294
 
295
+ SessionDurationEscalationException.add_member(:message, Shapes::ShapeRef.new(shape: sessionDurationEscalationException, location_name: "message"))
296
+ SessionDurationEscalationException.struct_class = Types::SessionDurationEscalationException
297
+
250
298
  Tag.add_member(:key, Shapes::ShapeRef.new(shape: tagKeyType, required: true, location_name: "Key"))
251
299
  Tag.add_member(:value, Shapes::ShapeRef.new(shape: tagValueType, required: true, location_name: "Value"))
252
300
  Tag.struct_class = Types::Tag
@@ -257,6 +305,8 @@ module Aws::STS
257
305
 
258
306
  tagListType.member = Shapes::ShapeRef.new(shape: Tag)
259
307
 
308
+ webIdentityTokenAudienceListType.member = Shapes::ShapeRef.new(shape: webIdentityTokenAudienceStringType)
309
+
260
310
 
261
311
  # @api private
262
312
  API = Seahorse::Model::Api.new.tap do |api|
@@ -358,6 +408,17 @@ module Aws::STS
358
408
  o.output = Shapes::ShapeRef.new(shape: GetCallerIdentityResponse)
359
409
  end)
360
410
 
411
+ api.add_operation(:get_delegated_access_token, Seahorse::Model::Operation.new.tap do |o|
412
+ o.name = "GetDelegatedAccessToken"
413
+ o.http_method = "POST"
414
+ o.http_request_uri = "/"
415
+ o.input = Shapes::ShapeRef.new(shape: GetDelegatedAccessTokenRequest)
416
+ o.output = Shapes::ShapeRef.new(shape: GetDelegatedAccessTokenResponse)
417
+ o.errors << Shapes::ShapeRef.new(shape: ExpiredTradeInTokenException)
418
+ o.errors << Shapes::ShapeRef.new(shape: RegionDisabledException)
419
+ o.errors << Shapes::ShapeRef.new(shape: PackedPolicyTooLargeException)
420
+ end)
421
+
361
422
  api.add_operation(:get_federation_token, Seahorse::Model::Operation.new.tap do |o|
362
423
  o.name = "GetFederationToken"
363
424
  o.http_method = "POST"
@@ -377,6 +438,17 @@ module Aws::STS
377
438
  o.output = Shapes::ShapeRef.new(shape: GetSessionTokenResponse)
378
439
  o.errors << Shapes::ShapeRef.new(shape: RegionDisabledException)
379
440
  end)
441
+
442
+ api.add_operation(:get_web_identity_token, Seahorse::Model::Operation.new.tap do |o|
443
+ o.name = "GetWebIdentityToken"
444
+ o.http_method = "POST"
445
+ o.http_request_uri = "/"
446
+ o.input = Shapes::ShapeRef.new(shape: GetWebIdentityTokenRequest)
447
+ o.output = Shapes::ShapeRef.new(shape: GetWebIdentityTokenResponse)
448
+ o.errors << Shapes::ShapeRef.new(shape: SessionDurationEscalationException)
449
+ o.errors << Shapes::ShapeRef.new(shape: OutboundWebIdentityFederationDisabledException)
450
+ o.errors << Shapes::ShapeRef.new(shape: JWTPayloadSizeExceededException)
451
+ end)
380
452
  end
381
453
 
382
454
  end
@@ -13,27 +13,27 @@ module Aws::STS
13
13
  # @!attribute region
14
14
  # The AWS region used to dispatch the request.
15
15
  #
16
- # @return [String]
16
+ # @return [string]
17
17
  #
18
18
  # @!attribute use_dual_stack
19
19
  # When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
20
20
  #
21
- # @return [Boolean]
21
+ # @return [boolean]
22
22
  #
23
23
  # @!attribute use_fips
24
24
  # When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.
25
25
  #
26
- # @return [Boolean]
26
+ # @return [boolean]
27
27
  #
28
28
  # @!attribute endpoint
29
29
  # Override the endpoint used to send this request
30
30
  #
31
- # @return [String]
31
+ # @return [string]
32
32
  #
33
33
  # @!attribute use_global_endpoint
34
34
  # Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.
35
35
  #
36
- # @return [Boolean]
36
+ # @return [boolean]
37
37
  #
38
38
  EndpointParameters = Struct.new(
39
39
  :region,
@@ -28,6 +28,7 @@ module Aws::STS
28
28
  #
29
29
  # ## Error Classes
30
30
  # * {ExpiredTokenException}
31
+ # * {ExpiredTradeInTokenException}
31
32
  # * {IDPCommunicationErrorException}
32
33
  # * This error class is not used. `IDPCommunicationError` is used during parsing instead.
33
34
  # * {IDPRejectedClaimException}
@@ -35,11 +36,14 @@ module Aws::STS
35
36
  # * {InvalidAuthorizationMessageException}
36
37
  # * {InvalidIdentityTokenException}
37
38
  # * This error class is not used. `InvalidIdentityToken` is used during parsing instead.
39
+ # * {JWTPayloadSizeExceededException}
38
40
  # * {MalformedPolicyDocumentException}
39
41
  # * This error class is not used. `MalformedPolicyDocument` is used during parsing instead.
42
+ # * {OutboundWebIdentityFederationDisabledException}
40
43
  # * {PackedPolicyTooLargeException}
41
44
  # * This error class is not used. `PackedPolicyTooLarge` is used during parsing instead.
42
45
  # * {RegionDisabledException}
46
+ # * {SessionDurationEscalationException}
43
47
  #
44
48
  # Additionally, error classes are dynamically generated for service errors based on the error code
45
49
  # if they are not defined above.
@@ -62,6 +66,21 @@ module Aws::STS
62
66
  end
63
67
  end
64
68
 
69
+ class ExpiredTradeInTokenException < ServiceError
70
+
71
+ # @param [Seahorse::Client::RequestContext] context
72
+ # @param [String] message
73
+ # @param [Aws::STS::Types::ExpiredTradeInTokenException] data
74
+ def initialize(context, message, data = Aws::EmptyStructure.new)
75
+ super(context, message, data)
76
+ end
77
+
78
+ # @return [String]
79
+ def message
80
+ @message || @data[:message]
81
+ end
82
+ end
83
+
65
84
  # @deprecated This error class is not used during parsing.
66
85
  # Please use `IDPCommunicationError` instead.
67
86
  class IDPCommunicationErrorException < ServiceError
@@ -128,6 +147,21 @@ module Aws::STS
128
147
  end
129
148
  end
130
149
 
150
+ class JWTPayloadSizeExceededException < ServiceError
151
+
152
+ # @param [Seahorse::Client::RequestContext] context
153
+ # @param [String] message
154
+ # @param [Aws::STS::Types::JWTPayloadSizeExceededException] data
155
+ def initialize(context, message, data = Aws::EmptyStructure.new)
156
+ super(context, message, data)
157
+ end
158
+
159
+ # @return [String]
160
+ def message
161
+ @message || @data[:message]
162
+ end
163
+ end
164
+
131
165
  # @deprecated This error class is not used during parsing.
132
166
  # Please use `MalformedPolicyDocument` instead.
133
167
  class MalformedPolicyDocumentException < ServiceError
@@ -145,6 +179,21 @@ module Aws::STS
145
179
  end
146
180
  end
147
181
 
182
+ class OutboundWebIdentityFederationDisabledException < ServiceError
183
+
184
+ # @param [Seahorse::Client::RequestContext] context
185
+ # @param [String] message
186
+ # @param [Aws::STS::Types::OutboundWebIdentityFederationDisabledException] data
187
+ def initialize(context, message, data = Aws::EmptyStructure.new)
188
+ super(context, message, data)
189
+ end
190
+
191
+ # @return [String]
192
+ def message
193
+ @message || @data[:message]
194
+ end
195
+ end
196
+
148
197
  # @deprecated This error class is not used during parsing.
149
198
  # Please use `PackedPolicyTooLarge` instead.
150
199
  class PackedPolicyTooLargeException < ServiceError
@@ -177,5 +226,20 @@ module Aws::STS
177
226
  end
178
227
  end
179
228
 
229
+ class SessionDurationEscalationException < ServiceError
230
+
231
+ # @param [Seahorse::Client::RequestContext] context
232
+ # @param [String] message
233
+ # @param [Aws::STS::Types::SessionDurationEscalationException] data
234
+ def initialize(context, message, data = Aws::EmptyStructure.new)
235
+ super(context, message, data)
236
+ end
237
+
238
+ # @return [String]
239
+ def message
240
+ @message || @data[:message]
241
+ end
242
+ end
243
+
180
244
  end
181
245
  end