aws-sdk-core 3.209.1 → 3.220.1

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 (61) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +119 -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/cbor/decoder.rb +0 -2
  7. data/lib/aws-sdk-core/cbor/encoder.rb +2 -2
  8. data/lib/aws-sdk-core/cbor.rb +3 -56
  9. data/lib/aws-sdk-core/client_stubs.rb +29 -55
  10. data/lib/aws-sdk-core/endpoints/matchers.rb +1 -8
  11. data/lib/aws-sdk-core/json/error_handler.rb +2 -1
  12. data/lib/aws-sdk-core/json/handler.rb +1 -0
  13. data/lib/aws-sdk-core/log/param_formatter.rb +7 -3
  14. data/lib/aws-sdk-core/plugins/checksum_algorithm.rb +332 -170
  15. data/lib/aws-sdk-core/plugins/http_checksum.rb +2 -8
  16. data/lib/aws-sdk-core/plugins/regional_endpoint.rb +44 -25
  17. data/lib/aws-sdk-core/plugins/sign.rb +1 -1
  18. data/lib/aws-sdk-core/plugins/stub_responses.rb +24 -8
  19. data/lib/aws-sdk-core/plugins/user_agent.rb +10 -1
  20. data/lib/aws-sdk-core/rest/request/headers.rb +2 -2
  21. data/lib/aws-sdk-core/rpc_v2/builder.rb +1 -1
  22. data/lib/aws-sdk-core/{cbor → rpc_v2}/cbor_engine.rb +4 -5
  23. data/lib/aws-sdk-core/rpc_v2/content_type_handler.rb +3 -1
  24. data/lib/aws-sdk-core/rpc_v2/error_handler.rb +3 -2
  25. data/lib/aws-sdk-core/rpc_v2/handler.rb +2 -1
  26. data/lib/aws-sdk-core/rpc_v2/parser.rb +1 -1
  27. data/lib/aws-sdk-core/rpc_v2.rb +65 -2
  28. data/lib/aws-sdk-core/shared_config.rb +2 -0
  29. data/lib/aws-sdk-core/stubbing/protocols/ec2.rb +12 -11
  30. data/lib/aws-sdk-core/stubbing/protocols/json.rb +11 -10
  31. data/lib/aws-sdk-core/stubbing/protocols/query.rb +7 -6
  32. data/lib/aws-sdk-core/stubbing/protocols/rest.rb +2 -1
  33. data/lib/aws-sdk-core/stubbing/protocols/rest_json.rb +9 -8
  34. data/lib/aws-sdk-core/stubbing/protocols/rest_xml.rb +6 -5
  35. data/lib/aws-sdk-core/stubbing/protocols/rpc_v2.rb +13 -15
  36. data/lib/aws-sdk-core/stubbing.rb +2 -2
  37. data/lib/aws-sdk-sso/client.rb +52 -29
  38. data/lib/aws-sdk-sso/endpoint_parameters.rb +9 -6
  39. data/lib/aws-sdk-sso/endpoint_provider.rb +14 -18
  40. data/lib/aws-sdk-sso/endpoints.rb +2 -42
  41. data/lib/aws-sdk-sso/plugins/endpoints.rb +1 -14
  42. data/lib/aws-sdk-sso.rb +1 -1
  43. data/lib/aws-sdk-ssooidc/client.rb +76 -47
  44. data/lib/aws-sdk-ssooidc/endpoint_parameters.rb +9 -6
  45. data/lib/aws-sdk-ssooidc/endpoint_provider.rb +14 -18
  46. data/lib/aws-sdk-ssooidc/endpoints.rb +2 -42
  47. data/lib/aws-sdk-ssooidc/plugins/endpoints.rb +1 -14
  48. data/lib/aws-sdk-ssooidc/types.rb +20 -15
  49. data/lib/aws-sdk-ssooidc.rb +1 -1
  50. data/lib/aws-sdk-sts/client.rb +260 -81
  51. data/lib/aws-sdk-sts/client_api.rb +23 -0
  52. data/lib/aws-sdk-sts/endpoint_parameters.rb +10 -9
  53. data/lib/aws-sdk-sts/endpoint_provider.rb +33 -38
  54. data/lib/aws-sdk-sts/endpoints.rb +2 -94
  55. data/lib/aws-sdk-sts/errors.rb +16 -0
  56. data/lib/aws-sdk-sts/plugins/endpoints.rb +1 -22
  57. data/lib/aws-sdk-sts/types.rb +170 -28
  58. data/lib/aws-sdk-sts.rb +1 -1
  59. data/lib/seahorse/client/net_http/connection_pool.rb +2 -0
  60. data/lib/seahorse/client/response.rb +2 -0
  61. metadata +25 -11
@@ -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.
@@ -460,8 +483,8 @@ module Aws::STS
460
483
  # token. Typically, you use `AssumeRole` within your account or for
461
484
  # cross-account access. For a comparison of `AssumeRole` with other API
462
485
  # operations that produce temporary credentials, see [Requesting
463
- # Temporary Security Credentials][1] and [Comparing the Amazon Web
464
- # Services STS API operations][2] in the *IAM User Guide*.
486
+ # Temporary Security Credentials][1] and [Compare STS credentials][2] in
487
+ # the *IAM User Guide*.
465
488
  #
466
489
  # **Permissions**
467
490
  #
@@ -470,9 +493,9 @@ module Aws::STS
470
493
  # following exception: You cannot call the Amazon Web Services STS
471
494
  # `GetFederationToken` or `GetSessionToken` API operations.
472
495
  #
473
- # (Optional) You can pass inline or managed [session policies][3] to
474
- # this operation. You can pass a single JSON policy document to use as
475
- # an inline session policy. You can also specify up to 10 managed policy
496
+ # (Optional) You can pass inline or managed session policies to this
497
+ # operation. You can pass a single JSON policy document to use as an
498
+ # inline session policy. You can also specify up to 10 managed policy
476
499
  # Amazon Resource Names (ARNs) to use as managed session policies. The
477
500
  # plaintext that you use for both inline and managed session policies
478
501
  # can't exceed 2,048 characters. Passing policies to this operation
@@ -545,7 +568,7 @@ module Aws::STS
545
568
  # denied. The condition in a trust policy that tests for MFA
546
569
  # authentication might look like the following example.
547
570
  #
548
- # `"Condition": \{"Bool": \{"aws:MultiFactorAuthPresent": true\}\}`
571
+ # `"Condition": {"Bool": {"aws:MultiFactorAuthPresent": true}}`
549
572
  #
550
573
  # For more information, see [Configuring MFA-Protected API Access][8] in
551
574
  # the *IAM User Guide* guide.
@@ -558,7 +581,7 @@ module Aws::STS
558
581
  #
559
582
  #
560
583
  # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
561
- # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
584
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts-comparison.html
562
585
  # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
563
586
  # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html
564
587
  # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html
@@ -581,11 +604,22 @@ module Aws::STS
581
604
  # credentials will expose the role session name to the external account
582
605
  # in their CloudTrail logs.
583
606
  #
607
+ # For security purposes, administrators can view this field in
608
+ # [CloudTrail logs][1] to help identify who performed an action in
609
+ # Amazon Web Services. Your administrator might require that you specify
610
+ # your user name as the session name when you assume the role. For more
611
+ # information, see [ `sts:RoleSessionName` ][2].
612
+ #
584
613
  # The regex used to validate this parameter is a string of characters
585
614
  # consisting of upper- and lower-case alphanumeric characters with no
586
615
  # spaces. You can also include underscores or any of the following
587
616
  # characters: =,.@-
588
617
  #
618
+ #
619
+ #
620
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html#cloudtrail-integration_signin-tempcreds
621
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#ck_rolesessionname
622
+ #
589
623
  # @option params [Array<Types::PolicyDescriptorType>] :policy_arns
590
624
  # The Amazon Resource Names (ARNs) of the IAM managed policies that you
591
625
  # want to use as managed session policies. The policies must exist in
@@ -651,6 +685,9 @@ module Aws::STS
651
685
  #
652
686
  # </note>
653
687
  #
688
+ # For more information about role session permissions, see [Session
689
+ # policies][1].
690
+ #
654
691
  #
655
692
  #
656
693
  # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
@@ -673,9 +710,8 @@ module Aws::STS
673
710
  # depending on the maximum session duration setting for your role.
674
711
  # However, if you assume a role using role chaining and provide a
675
712
  # `DurationSeconds` parameter value greater than one hour, the operation
676
- # fails. To learn how to view the maximum value for your role, see [View
677
- # the Maximum Session Duration Setting for a Role][1] in the *IAM User
678
- # Guide*.
713
+ # fails. To learn how to view the maximum value for your role, see
714
+ # [Update the maximum session duration for a role][1].
679
715
  #
680
716
  # By default, the value is set to `3600` seconds.
681
717
  #
@@ -691,7 +727,7 @@ module Aws::STS
691
727
  #
692
728
  #
693
729
  #
694
- # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session
730
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-settings.html#id_roles_update-session-duration
695
731
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html
696
732
  #
697
733
  # @option params [Array<Types::Tag>] :tags
@@ -744,9 +780,8 @@ module Aws::STS
744
780
  # passes to subsequent sessions in a role chain. For more information,
745
781
  # see [Chaining Roles with Session Tags][1] in the *IAM User Guide*.
746
782
  #
747
- # This parameter is optional. When you set session tags as transitive,
748
- # the session policy and session tags packed binary limit is not
749
- # affected.
783
+ # This parameter is optional. The transitive status of a session tag
784
+ # does not impact its packed binary size.
750
785
  #
751
786
  # If you choose not to specify a transitive tag key, then no tags are
752
787
  # passed from this session to any subsequent sessions.
@@ -804,26 +839,29 @@ module Aws::STS
804
839
  #
805
840
  # @option params [String] :source_identity
806
841
  # The source identity specified by the principal that is calling the
807
- # `AssumeRole` operation.
842
+ # `AssumeRole` operation. The source identity value persists across
843
+ # [chained role][1] sessions.
808
844
  #
809
845
  # You can require users to specify a source identity when they assume a
810
- # role. You do this by using the `sts:SourceIdentity` condition key in a
811
- # role trust policy. You can use source identity information in
846
+ # role. You do this by using the [ `sts:SourceIdentity` ][2] condition
847
+ # key in a role trust policy. You can use source identity information in
812
848
  # CloudTrail logs to determine who took actions with a role. You can use
813
849
  # the `aws:SourceIdentity` condition key to further control access to
814
850
  # Amazon Web Services resources based on the value of source identity.
815
851
  # For more information about using source identity, see [Monitor and
816
- # control actions taken with assumed roles][1] in the *IAM User Guide*.
852
+ # control actions taken with assumed roles][3] in the *IAM User Guide*.
817
853
  #
818
854
  # The regex used to validate this parameter is a string of characters
819
855
  # consisting of upper- and lower-case alphanumeric characters with no
820
856
  # spaces. You can also include underscores or any of the following
821
- # characters: =,.@-. You cannot use a value that begins with the text
857
+ # characters: +=,.@-. You cannot use a value that begins with the text
822
858
  # `aws:`. This prefix is reserved for Amazon Web Services internal use.
823
859
  #
824
860
  #
825
861
  #
826
- # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html
862
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-role-chaining
863
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceidentity
864
+ # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html
827
865
  #
828
866
  # @option params [Array<Types::ProvidedContext>] :provided_contexts
829
867
  # A list of previously acquired trusted context assertions in the format
@@ -834,7 +872,7 @@ module Aws::STS
834
872
  # a single trusted context assertion and the ARN of the context provider
835
873
  # from which the trusted context assertion was generated.
836
874
  #
837
- # `[\{"ProviderArn":"arn:aws:iam::aws:contextProvider/IdentityCenter","ContextAssertion":"trusted-context-assertion"\}]`
875
+ # `[{"ProviderArn":"arn:aws:iam::aws:contextProvider/IdentityCenter","ContextAssertion":"trusted-context-assertion"}]`
838
876
  #
839
877
  # @return [Types::AssumeRoleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
840
878
  #
@@ -944,8 +982,8 @@ module Aws::STS
944
982
  # user-specific credentials or configuration. For a comparison of
945
983
  # `AssumeRoleWithSAML` with the other API operations that produce
946
984
  # temporary credentials, see [Requesting Temporary Security
947
- # Credentials][1] and [Comparing the Amazon Web Services STS API
948
- # operations][2] in the *IAM User Guide*.
985
+ # Credentials][1] and [Compare STS credentials][2] in the *IAM User
986
+ # Guide*.
949
987
  #
950
988
  # The temporary security credentials returned by this operation consist
951
989
  # of an access key ID, a secret access key, and a security token.
@@ -1075,7 +1113,7 @@ module Aws::STS
1075
1113
  #
1076
1114
  #
1077
1115
  # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
1078
- # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
1116
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts-comparison.html
1079
1117
  # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session
1080
1118
  # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html
1081
1119
  # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-role-chaining
@@ -1163,6 +1201,9 @@ module Aws::STS
1163
1201
  # the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D)
1164
1202
  # characters.
1165
1203
  #
1204
+ # For more information about role session permissions, see [Session
1205
+ # policies][1].
1206
+ #
1166
1207
  # <note markdown="1"> An Amazon Web Services conversion compresses the passed inline session
1167
1208
  # policy, managed policy ARNs, and session tags into a packed binary
1168
1209
  # format that has a separate limit. Your request can fail for this limit
@@ -1317,8 +1358,8 @@ module Aws::STS
1317
1358
  # a token from the web identity provider. For a comparison of
1318
1359
  # `AssumeRoleWithWebIdentity` with the other API operations that produce
1319
1360
  # temporary credentials, see [Requesting Temporary Security
1320
- # Credentials][4] and [Comparing the Amazon Web Services STS API
1321
- # operations][5] in the *IAM User Guide*.
1361
+ # Credentials][4] and [Compare STS credentials][5] in the *IAM User
1362
+ # Guide*.
1322
1363
  #
1323
1364
  # The temporary security credentials returned by this API consist of an
1324
1365
  # access key ID, a secret access key, and a security token. Applications
@@ -1333,9 +1374,9 @@ module Aws::STS
1333
1374
  # your session. You can provide a value from 900 seconds (15 minutes) up
1334
1375
  # to the maximum session duration setting for the role. This setting can
1335
1376
  # have a value from 1 hour to 12 hours. To learn how to view the maximum
1336
- # value for your role, see [View the Maximum Session Duration Setting
1337
- # for a Role][6] in the *IAM User Guide*. The maximum session duration
1338
- # limit applies when you use the `AssumeRole*` API operations or the
1377
+ # value for your role, see [Update the maximum session duration for a
1378
+ # role ][6] in the *IAM User Guide*. The maximum session duration limit
1379
+ # applies when you use the `AssumeRole*` API operations or the
1339
1380
  # `assume-role*` CLI commands. However the limit does not apply when you
1340
1381
  # use those operations to create a console URL. For more information,
1341
1382
  # see [Using IAM Roles][7] in the *IAM User Guide*.
@@ -1413,35 +1454,26 @@ module Aws::STS
1413
1454
  # instead use a GUID or a pairwise identifier, as [suggested in the OIDC
1414
1455
  # specification][14].
1415
1456
  #
1416
- # For more information about how to use web identity federation and the
1457
+ # For more information about how to use OIDC federation and the
1417
1458
  # `AssumeRoleWithWebIdentity` API, see the following resources:
1418
1459
  #
1419
1460
  # * [Using Web Identity Federation API Operations for Mobile Apps][15]
1420
1461
  # and [Federation Through a Web-based Identity Provider][16].
1421
1462
  #
1422
- # * [ Web Identity Federation Playground][17]. Walk through the process
1423
- # of authenticating through Login with Amazon, Facebook, or Google,
1424
- # getting temporary security credentials, and then using those
1425
- # credentials to make a request to Amazon Web Services.
1426
- #
1427
1463
  # * [Amazon Web Services SDK for iOS Developer Guide][2] and [Amazon Web
1428
1464
  # Services SDK for Android Developer Guide][3]. These toolkits contain
1429
1465
  # sample apps that show how to invoke the identity providers. The
1430
1466
  # toolkits then show how to use the information from these providers
1431
1467
  # to get and use temporary security credentials.
1432
1468
  #
1433
- # * [Web Identity Federation with Mobile Applications][18]. This article
1434
- # discusses web identity federation and shows an example of how to use
1435
- # web identity federation to get access to content in Amazon S3.
1436
- #
1437
1469
  #
1438
1470
  #
1439
1471
  # [1]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html
1440
1472
  # [2]: http://aws.amazon.com/sdkforios/
1441
1473
  # [3]: http://aws.amazon.com/sdkforandroid/
1442
1474
  # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
1443
- # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
1444
- # [6]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session
1475
+ # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts-comparison.html
1476
+ # [6]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-settings.html#id_roles_update-session-duration
1445
1477
  # [7]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html
1446
1478
  # [8]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
1447
1479
  # [9]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html
@@ -1452,13 +1484,29 @@ module Aws::STS
1452
1484
  # [14]: http://openid.net/specs/openid-connect-core-1_0.html#SubjectIDTypes
1453
1485
  # [15]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_manual.html
1454
1486
  # [16]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity
1455
- # [17]: https://aws.amazon.com/blogs/aws/the-aws-web-identity-federation-playground/
1456
- # [18]: http://aws.amazon.com/articles/web-identity-federation-with-mobile-applications
1457
1487
  #
1458
1488
  # @option params [required, String] :role_arn
1459
1489
  # The Amazon Resource Name (ARN) of the role that the caller is
1460
1490
  # assuming.
1461
1491
  #
1492
+ # <note markdown="1"> Additional considerations apply to Amazon Cognito identity pools that
1493
+ # assume [cross-account IAM roles][1]. The trust policies of these roles
1494
+ # must accept the `cognito-identity.amazonaws.com` service principal and
1495
+ # must contain the `cognito-identity.amazonaws.com:aud` condition key to
1496
+ # restrict role assumption to users from your intended identity pools. A
1497
+ # policy that trusts Amazon Cognito identity pools without this
1498
+ # condition creates a risk that a user from an unintended identity pool
1499
+ # can assume the role. For more information, see [ Trust policies for
1500
+ # IAM roles in Basic (Classic) authentication ][2] in the *Amazon
1501
+ # Cognito Developer Guide*.
1502
+ #
1503
+ # </note>
1504
+ #
1505
+ #
1506
+ #
1507
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html
1508
+ # [2]: https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#trust-policies
1509
+ #
1462
1510
  # @option params [required, String] :role_session_name
1463
1511
  # An identifier for the assumed role session. Typically, you pass the
1464
1512
  # name or identifier that is associated with the user who is using your
@@ -1467,18 +1515,31 @@ module Aws::STS
1467
1515
  # is included as part of the ARN and assumed role ID in the
1468
1516
  # `AssumedRoleUser` response element.
1469
1517
  #
1518
+ # For security purposes, administrators can view this field in
1519
+ # [CloudTrail logs][1] to help identify who performed an action in
1520
+ # Amazon Web Services. Your administrator might require that you specify
1521
+ # your user name as the session name when you assume the role. For more
1522
+ # information, see [ `sts:RoleSessionName` ][2].
1523
+ #
1470
1524
  # The regex used to validate this parameter is a string of characters
1471
1525
  # consisting of upper- and lower-case alphanumeric characters with no
1472
1526
  # spaces. You can also include underscores or any of the following
1473
1527
  # characters: =,.@-
1474
1528
  #
1529
+ #
1530
+ #
1531
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html#cloudtrail-integration_signin-tempcreds
1532
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#ck_rolesessionname
1533
+ #
1475
1534
  # @option params [required, String] :web_identity_token
1476
1535
  # The OAuth 2.0 access token or OpenID Connect ID token that is provided
1477
1536
  # by the identity provider. Your application must get this token by
1478
1537
  # authenticating the user who is using your application with a web
1479
1538
  # identity provider before the application makes an
1480
- # `AssumeRoleWithWebIdentity` call. Only tokens with RSA algorithms
1481
- # (RS256) are supported.
1539
+ # `AssumeRoleWithWebIdentity` call. Timestamps in the token must be
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).
1482
1543
  #
1483
1544
  # @option params [String] :provider_id
1484
1545
  # The fully qualified host component of the domain name of the OAuth 2.0
@@ -1547,6 +1608,9 @@ module Aws::STS
1547
1608
  # the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D)
1548
1609
  # characters.
1549
1610
  #
1611
+ # For more information about role session permissions, see [Session
1612
+ # policies][1].
1613
+ #
1550
1614
  # <note markdown="1"> An Amazon Web Services conversion compresses the passed inline session
1551
1615
  # policy, managed policy ARNs, and session tags into a packed binary
1552
1616
  # format that has a separate limit. Your request can fail for this limit
@@ -1667,6 +1731,121 @@ module Aws::STS
1667
1731
  req.send_request(options)
1668
1732
  end
1669
1733
 
1734
+ # Returns a set of short term credentials you can use to perform
1735
+ # privileged tasks on a member account in your organization.
1736
+ #
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*.
1741
+ #
1742
+ # <note markdown="1"> The STS global endpoint is not supported for AssumeRoot. You must send
1743
+ # this request to a Regional STS endpoint. For more information, see
1744
+ # [Endpoints][2].
1745
+ #
1746
+ # </note>
1747
+ #
1748
+ # You can track AssumeRoot in CloudTrail logs to determine what actions
1749
+ # were performed in a session. For more information, see [Track
1750
+ # privileged tasks in CloudTrail][3] in the *IAM User Guide*.
1751
+ #
1752
+ #
1753
+ #
1754
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-enable-root-access.html
1755
+ # [2]: https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html#sts-endpoints
1756
+ # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-track-privileged-tasks.html
1757
+ #
1758
+ # @option params [required, String] :target_principal
1759
+ # The member account principal ARN or account ID.
1760
+ #
1761
+ # @option params [required, Types::PolicyDescriptorType] :task_policy_arn
1762
+ # The identity based policy that scopes the session to the privileged
1763
+ # tasks that can be performed. You can use one of following Amazon Web
1764
+ # Services managed policies to scope root session actions.
1765
+ #
1766
+ # * [IAMAuditRootUserCredentials][1]
1767
+ #
1768
+ # * [IAMCreateRootUserPassword][2]
1769
+ #
1770
+ # * [IAMDeleteRootUserCredentials][3]
1771
+ #
1772
+ # * [S3UnlockBucketPolicy][4]
1773
+ #
1774
+ # * [SQSUnlockQueuePolicy][5]
1775
+ #
1776
+ #
1777
+ #
1778
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/security-iam-awsmanpol.html#security-iam-awsmanpol-IAMAuditRootUserCredentials
1779
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/security-iam-awsmanpol.html#security-iam-awsmanpol-IAMCreateRootUserPassword
1780
+ # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/security-iam-awsmanpol.html#security-iam-awsmanpol-IAMDeleteRootUserCredentials
1781
+ # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/security-iam-awsmanpol.html#security-iam-awsmanpol-S3UnlockBucketPolicy
1782
+ # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/security-iam-awsmanpol.html#security-iam-awsmanpol-SQSUnlockQueuePolicy
1783
+ #
1784
+ # @option params [Integer] :duration_seconds
1785
+ # The duration, in seconds, of the privileged session. The value can
1786
+ # range from 0 seconds up to the maximum session duration of 900 seconds
1787
+ # (15 minutes). If you specify a value higher than this setting, the
1788
+ # operation fails.
1789
+ #
1790
+ # By default, the value is set to `900` seconds.
1791
+ #
1792
+ # @return [Types::AssumeRootResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1793
+ #
1794
+ # * {Types::AssumeRootResponse#credentials #credentials} => Types::Credentials
1795
+ # * {Types::AssumeRootResponse#source_identity #source_identity} => String
1796
+ #
1797
+ #
1798
+ # @example Example: To launch a privileged session
1799
+ #
1800
+ # # The following command retrieves a set of short-term credentials you can use to unlock an S3 bucket for a member account
1801
+ # # by removing the bucket policy.
1802
+ #
1803
+ # resp = client.assume_root({
1804
+ # duration_seconds: 900,
1805
+ # target_principal: "111122223333",
1806
+ # task_policy_arn: {
1807
+ # arn: "arn:aws:iam::aws:policy/root-task/S3UnlockBucketPolicy",
1808
+ # },
1809
+ # })
1810
+ #
1811
+ # resp.to_h outputs the following:
1812
+ # {
1813
+ # credentials: {
1814
+ # access_key_id: "ASIAJEXAMPLEXEG2JICEA",
1815
+ # expiration: Time.parse("2024-11-15T00:05:07Z"),
1816
+ # secret_access_key: "9drTJvcXLB89EXAMPLELB8923FB892xMFI",
1817
+ # session_token: "AQoXdzELDDY//////////wEaoAK1wvxJY12r2IrDFT2IvAzTCn3zHoZ7YNtpiQLF0MqZye/qwjzP2iEXAMPLEbw/m3hsj8VBTkPORGvr9jM5sgP+w9IZWZnU+LWhmg+a5fDi2oTGUYcdg9uexQ4mtCHIHfi4citgqZTgco40Yqr4lIlo4V2b2Dyauk0eYFNebHtYlFVgAUj+7Indz3LU0aTWk1WKIjHmmMCIoTkyYp/k7kUG7moeEYKSitwQIi6Gjn+nyzM+PtoA3685ixzv0R7i5rjQi0YE0lf1oeie3bDiNHncmzosRM6SFiPzSvp6h/32xQuZsjcypmwsPSDtTPYcs0+YN/8BRi2/IcrxSpnWEXAMPLEXSDFTAQAM6Dl9zR0tXoybnlrZIwMLlMi1Kcgo5OytwU=",
1818
+ # },
1819
+ # source_identity: "Alice",
1820
+ # }
1821
+ #
1822
+ # @example Request syntax with placeholder values
1823
+ #
1824
+ # resp = client.assume_root({
1825
+ # target_principal: "TargetPrincipalType", # required
1826
+ # task_policy_arn: { # required
1827
+ # arn: "arnType",
1828
+ # },
1829
+ # duration_seconds: 1,
1830
+ # })
1831
+ #
1832
+ # @example Response structure
1833
+ #
1834
+ # resp.credentials.access_key_id #=> String
1835
+ # resp.credentials.secret_access_key #=> String
1836
+ # resp.credentials.session_token #=> String
1837
+ # resp.credentials.expiration #=> Time
1838
+ # resp.source_identity #=> String
1839
+ #
1840
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoot AWS API Documentation
1841
+ #
1842
+ # @overload assume_root(params = {})
1843
+ # @param [Hash] params ({})
1844
+ def assume_root(params = {}, options = {})
1845
+ req = build_request(:assume_root, params)
1846
+ req.send_request(options)
1847
+ end
1848
+
1670
1849
  # Decodes additional information about the authorization status of a
1671
1850
  # request from an encoded message returned in response to an Amazon Web
1672
1851
  # Services request.
@@ -1905,8 +2084,8 @@ module Aws::STS
1905
2084
  # usually in a server-based application. For a comparison of
1906
2085
  # `GetFederationToken` with the other API operations that produce
1907
2086
  # temporary credentials, see [Requesting Temporary Security
1908
- # Credentials][1] and [Comparing the Amazon Web Services STS API
1909
- # operations][2] in the *IAM User Guide*.
2087
+ # Credentials][1] and [Compare STS credentials][2] in the *IAM User
2088
+ # Guide*.
1910
2089
  #
1911
2090
  # Although it is possible to call `GetFederationToken` using the
1912
2091
  # security credentials of an Amazon Web Services account root user
@@ -2003,7 +2182,7 @@ module Aws::STS
2003
2182
  #
2004
2183
  #
2005
2184
  # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
2006
- # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
2185
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts-comparison.html
2007
2186
  # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials
2008
2187
  # [4]: http://aws.amazon.com/cognito/
2009
2188
  # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity
@@ -2255,8 +2434,8 @@ module Aws::STS
2255
2434
  # An incorrect MFA code causes the API to return an access denied error.
2256
2435
  # For a comparison of `GetSessionToken` with the other API operations
2257
2436
  # that produce temporary credentials, see [Requesting Temporary Security
2258
- # Credentials][1] and [Comparing the Amazon Web Services STS API
2259
- # operations][2] in the *IAM User Guide*.
2437
+ # Credentials][1] and [Compare STS credentials][2] in the *IAM User
2438
+ # Guide*.
2260
2439
  #
2261
2440
  # <note markdown="1"> No permissions are required for users to perform this operation. The
2262
2441
  # purpose of the `sts:GetSessionToken` operation is to authenticate the
@@ -2311,7 +2490,7 @@ module Aws::STS
2311
2490
  #
2312
2491
  #
2313
2492
  # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
2314
- # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
2493
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts-comparison.html
2315
2494
  # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_getsessiontoken.html
2316
2495
  # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials
2317
2496
  # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getsessiontoken
@@ -2416,7 +2595,7 @@ module Aws::STS
2416
2595
  tracer: tracer
2417
2596
  )
2418
2597
  context[:gem_name] = 'aws-sdk-core'
2419
- context[:gem_version] = '3.209.1'
2598
+ context[:gem_version] = '3.220.1'
2420
2599
  Seahorse::Client::Request.new(handlers, context)
2421
2600
  end
2422
2601
 
@@ -20,6 +20,8 @@ module Aws::STS
20
20
  AssumeRoleWithSAMLResponse = Shapes::StructureShape.new(name: 'AssumeRoleWithSAMLResponse')
21
21
  AssumeRoleWithWebIdentityRequest = Shapes::StructureShape.new(name: 'AssumeRoleWithWebIdentityRequest')
22
22
  AssumeRoleWithWebIdentityResponse = Shapes::StructureShape.new(name: 'AssumeRoleWithWebIdentityResponse')
23
+ AssumeRootRequest = Shapes::StructureShape.new(name: 'AssumeRootRequest')
24
+ AssumeRootResponse = Shapes::StructureShape.new(name: 'AssumeRootResponse')
23
25
  AssumedRoleUser = Shapes::StructureShape.new(name: 'AssumedRoleUser')
24
26
  Audience = Shapes::StringShape.new(name: 'Audience')
25
27
  Credentials = Shapes::StructureShape.new(name: 'Credentials')
@@ -47,10 +49,12 @@ module Aws::STS
47
49
  ProvidedContext = Shapes::StructureShape.new(name: 'ProvidedContext')
48
50
  ProvidedContextsListType = Shapes::ListShape.new(name: 'ProvidedContextsListType')
49
51
  RegionDisabledException = Shapes::StructureShape.new(name: 'RegionDisabledException', error: {"code"=>"RegionDisabledException", "httpStatusCode"=>403, "senderFault"=>true})
52
+ RootDurationSecondsType = Shapes::IntegerShape.new(name: 'RootDurationSecondsType')
50
53
  SAMLAssertionType = Shapes::StringShape.new(name: 'SAMLAssertionType')
51
54
  Subject = Shapes::StringShape.new(name: 'Subject')
52
55
  SubjectType = Shapes::StringShape.new(name: 'SubjectType')
53
56
  Tag = Shapes::StructureShape.new(name: 'Tag')
57
+ TargetPrincipalType = Shapes::StringShape.new(name: 'TargetPrincipalType')
54
58
  accessKeyIdType = Shapes::StringShape.new(name: 'accessKeyIdType')
55
59
  accessKeySecretType = Shapes::StringShape.new(name: 'accessKeySecretType')
56
60
  accountType = Shapes::StringShape.new(name: 'accountType')
@@ -148,6 +152,15 @@ module Aws::STS
148
152
  AssumeRoleWithWebIdentityResponse.add_member(:source_identity, Shapes::ShapeRef.new(shape: sourceIdentityType, location_name: "SourceIdentity"))
149
153
  AssumeRoleWithWebIdentityResponse.struct_class = Types::AssumeRoleWithWebIdentityResponse
150
154
 
155
+ AssumeRootRequest.add_member(:target_principal, Shapes::ShapeRef.new(shape: TargetPrincipalType, required: true, location_name: "TargetPrincipal"))
156
+ AssumeRootRequest.add_member(:task_policy_arn, Shapes::ShapeRef.new(shape: PolicyDescriptorType, required: true, location_name: "TaskPolicyArn"))
157
+ AssumeRootRequest.add_member(:duration_seconds, Shapes::ShapeRef.new(shape: RootDurationSecondsType, location_name: "DurationSeconds"))
158
+ AssumeRootRequest.struct_class = Types::AssumeRootRequest
159
+
160
+ AssumeRootResponse.add_member(:credentials, Shapes::ShapeRef.new(shape: Credentials, location_name: "Credentials"))
161
+ AssumeRootResponse.add_member(:source_identity, Shapes::ShapeRef.new(shape: sourceIdentityType, location_name: "SourceIdentity"))
162
+ AssumeRootResponse.struct_class = Types::AssumeRootResponse
163
+
151
164
  AssumedRoleUser.add_member(:assumed_role_id, Shapes::ShapeRef.new(shape: assumedRoleIdType, required: true, location_name: "AssumedRoleId"))
152
165
  AssumedRoleUser.add_member(:arn, Shapes::ShapeRef.new(shape: arnType, required: true, location_name: "Arn"))
153
166
  AssumedRoleUser.struct_class = Types::AssumedRoleUser
@@ -308,6 +321,16 @@ module Aws::STS
308
321
  o.errors << Shapes::ShapeRef.new(shape: RegionDisabledException)
309
322
  end)
310
323
 
324
+ api.add_operation(:assume_root, Seahorse::Model::Operation.new.tap do |o|
325
+ o.name = "AssumeRoot"
326
+ o.http_method = "POST"
327
+ o.http_request_uri = "/"
328
+ o.input = Shapes::ShapeRef.new(shape: AssumeRootRequest)
329
+ o.output = Shapes::ShapeRef.new(shape: AssumeRootResponse)
330
+ o.errors << Shapes::ShapeRef.new(shape: RegionDisabledException)
331
+ o.errors << Shapes::ShapeRef.new(shape: ExpiredTokenException)
332
+ end)
333
+
311
334
  api.add_operation(:decode_authorization_message, Seahorse::Model::Operation.new.tap do |o|
312
335
  o.name = "DecodeAuthorizationMessage"
313
336
  o.http_method = "POST"