aws-sdk-core 3.46.2 → 3.126.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (206) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +1258 -0
  3. data/LICENSE.txt +202 -0
  4. data/VERSION +1 -1
  5. data/lib/aws-defaults/default_configuration.rb +153 -0
  6. data/lib/aws-defaults/defaults_mode_config_resolver.rb +107 -0
  7. data/lib/aws-defaults.rb +3 -0
  8. data/lib/aws-sdk-core/arn.rb +92 -0
  9. data/lib/aws-sdk-core/arn_parser.rb +40 -0
  10. data/lib/aws-sdk-core/assume_role_credentials.rb +20 -0
  11. data/lib/aws-sdk-core/assume_role_web_identity_credentials.rb +109 -0
  12. data/lib/aws-sdk-core/async_client_stubs.rb +82 -0
  13. data/lib/aws-sdk-core/binary/decode_handler.rb +11 -1
  14. data/lib/aws-sdk-core/binary/encode_handler.rb +34 -0
  15. data/lib/aws-sdk-core/binary/event_builder.rb +124 -0
  16. data/lib/aws-sdk-core/binary/event_parser.rb +50 -18
  17. data/lib/aws-sdk-core/binary/event_stream_decoder.rb +7 -2
  18. data/lib/aws-sdk-core/binary/event_stream_encoder.rb +55 -0
  19. data/lib/aws-sdk-core/binary.rb +5 -0
  20. data/lib/aws-sdk-core/client_side_monitoring/publisher.rb +11 -1
  21. data/lib/aws-sdk-core/client_side_monitoring/request_metrics.rb +2 -0
  22. data/lib/aws-sdk-core/client_stubs.rb +16 -13
  23. data/lib/aws-sdk-core/credential_provider.rb +1 -30
  24. data/lib/aws-sdk-core/credential_provider_chain.rb +102 -40
  25. data/lib/aws-sdk-core/credentials.rb +2 -0
  26. data/lib/aws-sdk-core/deprecations.rb +17 -11
  27. data/lib/aws-sdk-core/eager_loader.rb +2 -0
  28. data/lib/aws-sdk-core/ec2_metadata.rb +238 -0
  29. data/lib/aws-sdk-core/ecs_credentials.rb +18 -9
  30. data/lib/aws-sdk-core/endpoint_cache.rb +16 -11
  31. data/lib/aws-sdk-core/errors.rb +138 -15
  32. data/lib/aws-sdk-core/event_emitter.rb +44 -0
  33. data/lib/aws-sdk-core/ini_parser.rb +2 -0
  34. data/lib/aws-sdk-core/instance_profile_credentials.rb +179 -42
  35. data/lib/aws-sdk-core/json/builder.rb +2 -0
  36. data/lib/aws-sdk-core/json/error_handler.rb +21 -2
  37. data/lib/aws-sdk-core/json/handler.rb +21 -1
  38. data/lib/aws-sdk-core/json/json_engine.rb +12 -8
  39. data/lib/aws-sdk-core/json/oj_engine.rb +35 -6
  40. data/lib/aws-sdk-core/json/parser.rb +10 -0
  41. data/lib/aws-sdk-core/json.rb +11 -28
  42. data/lib/aws-sdk-core/log/formatter.rb +16 -4
  43. data/lib/aws-sdk-core/log/handler.rb +2 -0
  44. data/lib/aws-sdk-core/log/param_filter.rb +38 -13
  45. data/lib/aws-sdk-core/log/param_formatter.rb +2 -0
  46. data/lib/aws-sdk-core/pageable_response.rb +48 -24
  47. data/lib/aws-sdk-core/pager.rb +5 -0
  48. data/lib/aws-sdk-core/param_converter.rb +2 -0
  49. data/lib/aws-sdk-core/param_validator.rb +63 -7
  50. data/lib/aws-sdk-core/plugins/api_key.rb +5 -1
  51. data/lib/aws-sdk-core/plugins/apig_authorizer_token.rb +2 -0
  52. data/lib/aws-sdk-core/plugins/apig_credentials_configuration.rb +2 -0
  53. data/lib/aws-sdk-core/plugins/apig_user_agent.rb +2 -0
  54. data/lib/aws-sdk-core/plugins/client_metrics_plugin.rb +28 -1
  55. data/lib/aws-sdk-core/plugins/client_metrics_send_plugin.rb +2 -0
  56. data/lib/aws-sdk-core/plugins/credentials_configuration.rb +26 -7
  57. data/lib/aws-sdk-core/plugins/defaults_mode.rb +40 -0
  58. data/lib/aws-sdk-core/plugins/endpoint_discovery.rb +12 -4
  59. data/lib/aws-sdk-core/plugins/endpoint_pattern.rb +8 -6
  60. data/lib/aws-sdk-core/plugins/event_stream_configuration.rb +16 -0
  61. data/lib/aws-sdk-core/plugins/global_configuration.rb +2 -0
  62. data/lib/aws-sdk-core/plugins/helpful_socket_errors.rb +2 -0
  63. data/lib/aws-sdk-core/plugins/http_checksum.rb +57 -0
  64. data/lib/aws-sdk-core/plugins/idempotency_token.rb +2 -0
  65. data/lib/aws-sdk-core/plugins/invocation_id.rb +35 -0
  66. data/lib/aws-sdk-core/plugins/jsonvalue_converter.rb +2 -0
  67. data/lib/aws-sdk-core/plugins/logging.rb +2 -0
  68. data/lib/aws-sdk-core/plugins/param_converter.rb +2 -0
  69. data/lib/aws-sdk-core/plugins/param_validator.rb +2 -0
  70. data/lib/aws-sdk-core/plugins/protocols/api_gateway.rb +19 -0
  71. data/lib/aws-sdk-core/plugins/protocols/ec2.rb +2 -0
  72. data/lib/aws-sdk-core/plugins/protocols/json_rpc.rb +2 -0
  73. data/lib/aws-sdk-core/plugins/protocols/query.rb +2 -0
  74. data/lib/aws-sdk-core/plugins/protocols/rest_json.rb +18 -1
  75. data/lib/aws-sdk-core/plugins/protocols/rest_xml.rb +2 -0
  76. data/lib/aws-sdk-core/plugins/recursion_detection.rb +27 -0
  77. data/lib/aws-sdk-core/plugins/regional_endpoint.rb +74 -16
  78. data/lib/aws-sdk-core/plugins/response_paging.rb +2 -0
  79. data/lib/aws-sdk-core/plugins/retries/client_rate_limiter.rb +139 -0
  80. data/lib/aws-sdk-core/plugins/retries/clock_skew.rb +100 -0
  81. data/lib/aws-sdk-core/plugins/retries/error_inspector.rb +146 -0
  82. data/lib/aws-sdk-core/plugins/retries/retry_quota.rb +59 -0
  83. data/lib/aws-sdk-core/plugins/retry_errors.rb +295 -107
  84. data/lib/aws-sdk-core/plugins/signature_v2.rb +2 -0
  85. data/lib/aws-sdk-core/plugins/signature_v4.rb +28 -25
  86. data/lib/aws-sdk-core/plugins/stub_responses.rb +24 -7
  87. data/lib/aws-sdk-core/plugins/transfer_encoding.rb +53 -0
  88. data/lib/aws-sdk-core/plugins/user_agent.rb +6 -8
  89. data/lib/aws-sdk-core/process_credentials.rb +12 -5
  90. data/lib/aws-sdk-core/query/ec2_param_builder.rb +2 -0
  91. data/lib/aws-sdk-core/query/handler.rb +2 -0
  92. data/lib/aws-sdk-core/query/param.rb +2 -0
  93. data/lib/aws-sdk-core/query/param_builder.rb +2 -0
  94. data/lib/aws-sdk-core/query/param_list.rb +2 -0
  95. data/lib/aws-sdk-core/query.rb +2 -0
  96. data/lib/aws-sdk-core/refreshing_credentials.rb +15 -2
  97. data/lib/aws-sdk-core/resources/collection.rb +2 -0
  98. data/lib/aws-sdk-core/rest/handler.rb +2 -0
  99. data/lib/aws-sdk-core/rest/request/body.rb +21 -1
  100. data/lib/aws-sdk-core/rest/request/builder.rb +2 -0
  101. data/lib/aws-sdk-core/rest/request/endpoint.rb +10 -3
  102. data/lib/aws-sdk-core/rest/request/headers.rb +20 -6
  103. data/lib/aws-sdk-core/rest/request/querystring_builder.rb +4 -2
  104. data/lib/aws-sdk-core/rest/response/body.rb +2 -0
  105. data/lib/aws-sdk-core/rest/response/headers.rb +6 -3
  106. data/lib/aws-sdk-core/rest/response/parser.rb +2 -0
  107. data/lib/aws-sdk-core/rest/response/status_code.rb +2 -0
  108. data/lib/aws-sdk-core/rest.rb +2 -0
  109. data/lib/aws-sdk-core/shared_config.rb +153 -127
  110. data/lib/aws-sdk-core/shared_credentials.rb +9 -1
  111. data/lib/aws-sdk-core/sso_credentials.rb +136 -0
  112. data/lib/aws-sdk-core/structure.rb +14 -4
  113. data/lib/aws-sdk-core/stubbing/data_applicator.rb +2 -0
  114. data/lib/aws-sdk-core/stubbing/empty_stub.rb +2 -0
  115. data/lib/aws-sdk-core/stubbing/protocols/api_gateway.rb +2 -0
  116. data/lib/aws-sdk-core/stubbing/protocols/ec2.rb +2 -0
  117. data/lib/aws-sdk-core/stubbing/protocols/json.rb +3 -1
  118. data/lib/aws-sdk-core/stubbing/protocols/query.rb +4 -2
  119. data/lib/aws-sdk-core/stubbing/protocols/rest.rb +52 -7
  120. data/lib/aws-sdk-core/stubbing/protocols/rest_json.rb +3 -1
  121. data/lib/aws-sdk-core/stubbing/protocols/rest_xml.rb +2 -2
  122. data/lib/aws-sdk-core/stubbing/stub_data.rb +15 -4
  123. data/lib/aws-sdk-core/stubbing/xml_error.rb +2 -0
  124. data/lib/aws-sdk-core/type_builder.rb +2 -0
  125. data/lib/aws-sdk-core/util.rb +6 -0
  126. data/lib/aws-sdk-core/waiters/errors.rb +2 -0
  127. data/lib/aws-sdk-core/waiters/poller.rb +2 -0
  128. data/lib/aws-sdk-core/waiters/waiter.rb +4 -2
  129. data/lib/aws-sdk-core/waiters.rb +2 -0
  130. data/lib/aws-sdk-core/xml/builder.rb +5 -3
  131. data/lib/aws-sdk-core/xml/default_list.rb +2 -0
  132. data/lib/aws-sdk-core/xml/default_map.rb +2 -0
  133. data/lib/aws-sdk-core/xml/doc_builder.rb +15 -4
  134. data/lib/aws-sdk-core/xml/error_handler.rb +29 -4
  135. data/lib/aws-sdk-core/xml/parser/engines/libxml.rb +2 -0
  136. data/lib/aws-sdk-core/xml/parser/engines/nokogiri.rb +2 -0
  137. data/lib/aws-sdk-core/xml/parser/engines/oga.rb +2 -0
  138. data/lib/aws-sdk-core/xml/parser/engines/ox.rb +3 -1
  139. data/lib/aws-sdk-core/xml/parser/engines/rexml.rb +4 -1
  140. data/lib/aws-sdk-core/xml/parser/frame.rb +25 -0
  141. data/lib/aws-sdk-core/xml/parser/parsing_error.rb +2 -0
  142. data/lib/aws-sdk-core/xml/parser/stack.rb +2 -0
  143. data/lib/aws-sdk-core/xml/parser.rb +7 -0
  144. data/lib/aws-sdk-core/xml.rb +2 -0
  145. data/lib/aws-sdk-core.rb +23 -4
  146. data/lib/aws-sdk-sso/client.rb +568 -0
  147. data/lib/aws-sdk-sso/client_api.rb +190 -0
  148. data/lib/aws-sdk-sso/customizations.rb +1 -0
  149. data/lib/aws-sdk-sso/errors.rb +102 -0
  150. data/lib/aws-sdk-sso/resource.rb +26 -0
  151. data/lib/aws-sdk-sso/types.rb +352 -0
  152. data/lib/aws-sdk-sso.rb +55 -0
  153. data/lib/aws-sdk-sts/client.rb +1282 -531
  154. data/lib/aws-sdk-sts/client_api.rb +76 -1
  155. data/lib/aws-sdk-sts/customizations.rb +4 -0
  156. data/lib/aws-sdk-sts/errors.rb +153 -1
  157. data/lib/aws-sdk-sts/plugins/sts_regional_endpoints.rb +38 -0
  158. data/lib/aws-sdk-sts/presigner.rb +75 -0
  159. data/lib/aws-sdk-sts/resource.rb +4 -1
  160. data/lib/aws-sdk-sts/types.rb +958 -229
  161. data/lib/aws-sdk-sts.rb +16 -6
  162. data/lib/seahorse/client/async_base.rb +52 -0
  163. data/lib/seahorse/client/async_response.rb +64 -0
  164. data/lib/seahorse/client/base.rb +7 -2
  165. data/lib/seahorse/client/block_io.rb +6 -2
  166. data/lib/seahorse/client/configuration.rb +7 -1
  167. data/lib/seahorse/client/events.rb +3 -1
  168. data/lib/seahorse/client/h2/connection.rb +250 -0
  169. data/lib/seahorse/client/h2/handler.rb +152 -0
  170. data/lib/seahorse/client/handler.rb +2 -0
  171. data/lib/seahorse/client/handler_builder.rb +2 -0
  172. data/lib/seahorse/client/handler_list.rb +2 -0
  173. data/lib/seahorse/client/handler_list_entry.rb +6 -4
  174. data/lib/seahorse/client/http/async_response.rb +44 -0
  175. data/lib/seahorse/client/http/headers.rb +2 -0
  176. data/lib/seahorse/client/http/request.rb +5 -3
  177. data/lib/seahorse/client/http/response.rb +18 -11
  178. data/lib/seahorse/client/logging/formatter.rb +6 -2
  179. data/lib/seahorse/client/logging/handler.rb +2 -0
  180. data/lib/seahorse/client/managed_file.rb +2 -0
  181. data/lib/seahorse/client/net_http/connection_pool.rb +30 -23
  182. data/lib/seahorse/client/net_http/handler.rb +24 -7
  183. data/lib/seahorse/client/net_http/patches.rb +15 -84
  184. data/lib/seahorse/client/networking_error.rb +30 -0
  185. data/lib/seahorse/client/plugin.rb +10 -7
  186. data/lib/seahorse/client/plugin_list.rb +2 -0
  187. data/lib/seahorse/client/plugins/content_length.rb +14 -3
  188. data/lib/seahorse/client/plugins/endpoint.rb +4 -2
  189. data/lib/seahorse/client/plugins/h2.rb +69 -0
  190. data/lib/seahorse/client/plugins/logging.rb +2 -0
  191. data/lib/seahorse/client/plugins/net_http.rb +39 -3
  192. data/lib/seahorse/client/plugins/operation_methods.rb +2 -0
  193. data/lib/seahorse/client/plugins/raise_response_errors.rb +2 -0
  194. data/lib/seahorse/client/plugins/request_callback.rb +110 -0
  195. data/lib/seahorse/client/plugins/response_target.rb +23 -14
  196. data/lib/seahorse/client/request.rb +2 -0
  197. data/lib/seahorse/client/request_context.rb +2 -0
  198. data/lib/seahorse/client/response.rb +5 -5
  199. data/lib/seahorse/model/api.rb +10 -0
  200. data/lib/seahorse/model/authorizer.rb +2 -0
  201. data/lib/seahorse/model/operation.rb +9 -0
  202. data/lib/seahorse/model/shapes.rb +29 -2
  203. data/lib/seahorse/util.rb +8 -1
  204. data/lib/seahorse/version.rb +2 -0
  205. data/lib/seahorse.rb +12 -0
  206. metadata +64 -14
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
4
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
5
7
  #
6
8
  # WARNING ABOUT GENERATED CODE
7
9
 
@@ -14,11 +16,24 @@ module Aws::STS
14
16
  # {
15
17
  # role_arn: "arnType", # required
16
18
  # role_session_name: "roleSessionNameType", # required
19
+ # policy_arns: [
20
+ # {
21
+ # arn: "arnType",
22
+ # },
23
+ # ],
17
24
  # policy: "sessionPolicyDocumentType",
18
25
  # duration_seconds: 1,
26
+ # tags: [
27
+ # {
28
+ # key: "tagKeyType", # required
29
+ # value: "tagValueType", # required
30
+ # },
31
+ # ],
32
+ # transitive_tag_keys: ["tagKeyType"],
19
33
  # external_id: "externalIdType",
20
34
  # serial_number: "serialNumberType",
21
35
  # token_code: "tokenCodeType",
36
+ # source_identity: "sourceIdentityType",
22
37
  # }
23
38
  #
24
39
  # @!attribute [rw] role_arn
@@ -34,7 +49,7 @@ module Aws::STS
34
49
  # visible to, and can be logged by the account that owns the role. The
35
50
  # role session name is also used in the ARN of the assumed role
36
51
  # principal. This means that subsequent cross-account API requests
37
- # using the temporary security credentials will expose the role
52
+ # that use the temporary security credentials will expose the role
38
53
  # session name to the external account in their CloudTrail logs.
39
54
  #
40
55
  # The regex used to validate this parameter is a string of characters
@@ -43,90 +58,204 @@ module Aws::STS
43
58
  # characters: =,.@-
44
59
  # @return [String]
45
60
  #
46
- # @!attribute [rw] policy
47
- # An IAM policy in JSON format.
48
- #
49
- # This parameter is optional. If you pass a policy, the temporary
50
- # security credentials that are returned by the operation have the
51
- # permissions that are allowed by both (the intersection of) the
52
- # access policy of the role that is being assumed, *and* the policy
53
- # that you pass. This gives you a way to further restrict the
54
- # permissions for the resulting temporary security credentials. You
55
- # cannot use the passed policy to grant permissions that are in excess
56
- # of those allowed by the access policy of the role that is being
57
- # assumed. For more information, see [Permissions for AssumeRole,
58
- # AssumeRoleWithSAML, and AssumeRoleWithWebIdentity][1] in the *IAM
59
- # User Guide*.
61
+ # @!attribute [rw] policy_arns
62
+ # The Amazon Resource Names (ARNs) of the IAM managed policies that
63
+ # you want to use as managed session policies. The policies must exist
64
+ # in the same account as the role.
65
+ #
66
+ # This parameter is optional. You can provide up to 10 managed policy
67
+ # ARNs. However, the plaintext that you use for both inline and
68
+ # managed session policies can't exceed 2,048 characters. For more
69
+ # information about ARNs, see [Amazon Resource Names (ARNs) and Amazon
70
+ # Web Services Service Namespaces][1] in the Amazon Web Services
71
+ # General Reference.
72
+ #
73
+ # <note markdown="1"> An Amazon Web Services conversion compresses the passed session
74
+ # policies and session tags into a packed binary format that has a
75
+ # separate limit. Your request can fail for this limit even if your
76
+ # plaintext meets the other requirements. The `PackedPolicySize`
77
+ # response element indicates by percentage how close the policies and
78
+ # tags for your request are to the upper size limit.
60
79
  #
61
- # The format for this parameter, as described by its regex pattern, is
62
- # a string of characters up to 2048 characters in length. The
63
- # characters can be any ASCII character from the space character to
64
- # the end of the valid character list (\\u0020-\\u00FF). It can also
80
+ # </note>
81
+ #
82
+ # Passing policies to this operation returns new temporary
83
+ # credentials. The resulting session's permissions are the
84
+ # intersection of the role's identity-based policy and the session
85
+ # policies. You can use the role's temporary credentials in
86
+ # subsequent Amazon Web Services API calls to access resources in the
87
+ # account that owns the role. You cannot use session policies to grant
88
+ # more permissions than those allowed by the identity-based policy of
89
+ # the role that is being assumed. For more information, see [Session
90
+ # Policies][2] in the *IAM User Guide*.
91
+ #
92
+ #
93
+ #
94
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
95
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
96
+ # @return [Array<Types::PolicyDescriptorType>]
97
+ #
98
+ # @!attribute [rw] policy
99
+ # An IAM policy in JSON format that you want to use as an inline
100
+ # session policy.
101
+ #
102
+ # This parameter is optional. Passing policies to this operation
103
+ # returns new temporary credentials. The resulting session's
104
+ # permissions are the intersection of the role's identity-based
105
+ # policy and the session policies. You can use the role's temporary
106
+ # credentials in subsequent Amazon Web Services API calls to access
107
+ # resources in the account that owns the role. You cannot use session
108
+ # policies to grant more permissions than those allowed by the
109
+ # identity-based policy of the role that is being assumed. For more
110
+ # information, see [Session Policies][1] in the *IAM User Guide*.
111
+ #
112
+ # The plaintext that you use for both inline and managed session
113
+ # policies can't exceed 2,048 characters. The JSON policy characters
114
+ # can be any ASCII character from the space character to the end of
115
+ # the valid character list (\\u0020 through \\u00FF). It can also
65
116
  # include the tab (\\u0009), linefeed (\\u000A), and carriage return
66
117
  # (\\u000D) characters.
67
118
  #
68
- # <note markdown="1"> The policy plain text must be 2048 bytes or shorter. However, an
69
- # internal conversion compresses it into a packed binary format with a
70
- # separate limit. The PackedPolicySize response element indicates by
71
- # percentage how close to the upper size limit the policy is, with
72
- # 100% equaling the maximum allowed size.
119
+ # <note markdown="1"> An Amazon Web Services conversion compresses the passed session
120
+ # policies and session tags into a packed binary format that has a
121
+ # separate limit. Your request can fail for this limit even if your
122
+ # plaintext meets the other requirements. The `PackedPolicySize`
123
+ # response element indicates by percentage how close the policies and
124
+ # tags for your request are to the upper size limit.
73
125
  #
74
126
  # </note>
75
127
  #
76
128
  #
77
129
  #
78
- # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html
130
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
79
131
  # @return [String]
80
132
  #
81
133
  # @!attribute [rw] duration_seconds
82
- # The duration, in seconds, of the role session. The value can range
83
- # from 900 seconds (15 minutes) up to the maximum session duration
84
- # setting for the role. This setting can have a value from 1 hour to
85
- # 12 hours. If you specify a value higher than this setting, the
86
- # operation fails. For example, if you specify a session duration of
87
- # 12 hours, but your administrator set the maximum session duration to
88
- # 6 hours, your operation fails. To learn how to view the maximum
89
- # value for your role, see [View the Maximum Session Duration Setting
90
- # for a Role][1] in the *IAM User Guide*.
134
+ # The duration, in seconds, of the role session. The value specified
135
+ # can range from 900 seconds (15 minutes) up to the maximum session
136
+ # duration set for the role. The maximum session duration setting can
137
+ # have a value from 1 hour to 12 hours. If you specify a value higher
138
+ # than this setting or the administrator setting (whichever is lower),
139
+ # the operation fails. For example, if you specify a session duration
140
+ # of 12 hours, but your administrator set the maximum session duration
141
+ # to 6 hours, your operation fails.
142
+ #
143
+ # Role chaining limits your Amazon Web Services CLI or Amazon Web
144
+ # Services API role session to a maximum of one hour. When you use the
145
+ # `AssumeRole` API operation to assume a role, you can specify the
146
+ # duration of your role session with the `DurationSeconds` parameter.
147
+ # You can specify a parameter value of up to 43200 seconds (12 hours),
148
+ # depending on the maximum session duration setting for your role.
149
+ # However, if you assume a role using role chaining and provide a
150
+ # `DurationSeconds` parameter value greater than one hour, the
151
+ # operation fails. To learn how to view the maximum value for your
152
+ # role, see [View the Maximum Session Duration Setting for a Role][1]
153
+ # in the *IAM User Guide*.
91
154
  #
92
- # By default, the value is set to 3600 seconds.
155
+ # By default, the value is set to `3600` seconds.
93
156
  #
94
157
  # <note markdown="1"> The `DurationSeconds` parameter is separate from the duration of a
95
158
  # console session that you might request using the returned
96
159
  # credentials. The request to the federation endpoint for a console
97
160
  # sign-in token takes a `SessionDuration` parameter that specifies the
98
161
  # maximum length of the console session. For more information, see
99
- # [Creating a URL that Enables Federated Users to Access the AWS
100
- # Management Console][2] in the *IAM User Guide*.
162
+ # [Creating a URL that Enables Federated Users to Access the Amazon
163
+ # Web Services Management Console][2] in the *IAM User Guide*.
101
164
  #
102
165
  # </note>
103
166
  #
104
167
  #
105
168
  #
106
- # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session
107
- # [2]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html
169
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session
170
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html
108
171
  # @return [Integer]
109
172
  #
173
+ # @!attribute [rw] tags
174
+ # A list of session tags that you want to pass. Each session tag
175
+ # consists of a key name and an associated value. For more information
176
+ # about session tags, see [Tagging Amazon Web Services STS
177
+ # Sessions][1] in the *IAM User Guide*.
178
+ #
179
+ # This parameter is optional. You can pass up to 50 session tags. The
180
+ # plaintext session tag keys can’t exceed 128 characters, and the
181
+ # values can’t exceed 256 characters. For these and additional limits,
182
+ # see [IAM and STS Character Limits][2] in the *IAM User Guide*.
183
+ #
184
+ # <note markdown="1"> An Amazon Web Services conversion compresses the passed session
185
+ # policies and session tags into a packed binary format that has a
186
+ # separate limit. Your request can fail for this limit even if your
187
+ # plaintext meets the other requirements. The `PackedPolicySize`
188
+ # response element indicates by percentage how close the policies and
189
+ # tags for your request are to the upper size limit.
190
+ #
191
+ # </note>
192
+ #
193
+ # You can pass a session tag with the same key as a tag that is
194
+ # already attached to the role. When you do, session tags override a
195
+ # role tag with the same key.
196
+ #
197
+ # Tag key–value pairs are not case sensitive, but case is preserved.
198
+ # This means that you cannot have separate `Department` and
199
+ # `department` tag keys. Assume that the role has the
200
+ # `Department`=`Marketing` tag and you pass the
201
+ # `department`=`engineering` session tag. `Department` and
202
+ # `department` are not saved as separate tags, and the session tag
203
+ # passed in the request takes precedence over the role tag.
204
+ #
205
+ # Additionally, if you used temporary credentials to perform this
206
+ # operation, the new session inherits any transitive session tags from
207
+ # the calling session. If you pass a session tag with the same key as
208
+ # an inherited tag, the operation fails. To view the inherited tags
209
+ # for a session, see the CloudTrail logs. For more information, see
210
+ # [Viewing Session Tags in CloudTrail][3] in the *IAM User Guide*.
211
+ #
212
+ #
213
+ #
214
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html
215
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length
216
+ # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/session-tags.html#id_session-tags_ctlogs
217
+ # @return [Array<Types::Tag>]
218
+ #
219
+ # @!attribute [rw] transitive_tag_keys
220
+ # A list of keys for session tags that you want to set as transitive.
221
+ # If you set a tag key as transitive, the corresponding key and value
222
+ # passes to subsequent sessions in a role chain. For more information,
223
+ # see [Chaining Roles with Session Tags][1] in the *IAM User Guide*.
224
+ #
225
+ # This parameter is optional. When you set session tags as transitive,
226
+ # the session policy and session tags packed binary limit is not
227
+ # affected.
228
+ #
229
+ # If you choose not to specify a transitive tag key, then no tags are
230
+ # passed from this session to any subsequent sessions.
231
+ #
232
+ #
233
+ #
234
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining
235
+ # @return [Array<String>]
236
+ #
110
237
  # @!attribute [rw] external_id
111
- # A unique identifier that is used by third parties when assuming
112
- # roles in their customers' accounts. For each role that the third
113
- # party can assume, they should instruct their customers to ensure the
114
- # role's trust policy checks for the external ID that the third party
115
- # generated. Each time the third party assumes the role, they should
116
- # pass the customer's external ID. The external ID is useful in order
117
- # to help third parties bind a role to the customer who created it.
118
- # For more information about the external ID, see [How to Use an
119
- # External ID When Granting Access to Your AWS Resources to a Third
120
- # Party][1] in the *IAM User Guide*.
121
- #
122
- # The regex used to validated this parameter is a string of characters
238
+ # A unique identifier that might be required when you assume a role in
239
+ # another account. If the administrator of the account to which the
240
+ # role belongs provided you with an external ID, then provide that
241
+ # value in the `ExternalId` parameter. This value can be any string,
242
+ # such as a passphrase or account number. A cross-account role is
243
+ # usually set up to trust everyone in an account. Therefore, the
244
+ # administrator of the trusting account might send an external ID to
245
+ # the administrator of the trusted account. That way, only someone
246
+ # with the ID can assume the role, rather than everyone in the
247
+ # account. For more information about the external ID, see [How to Use
248
+ # an External ID When Granting Access to Your Amazon Web Services
249
+ # Resources to a Third Party][1] in the *IAM User Guide*.
250
+ #
251
+ # The regex used to validate this parameter is a string of characters
123
252
  # consisting of upper- and lower-case alphanumeric characters with no
124
253
  # spaces. You can also include underscores or any of the following
125
254
  # characters: =,.@:/-
126
255
  #
127
256
  #
128
257
  #
129
- # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html
258
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html
130
259
  # @return [String]
131
260
  #
132
261
  # @!attribute [rw] serial_number
@@ -146,40 +275,72 @@ module Aws::STS
146
275
  #
147
276
  # @!attribute [rw] token_code
148
277
  # The value provided by the MFA device, if the trust policy of the
149
- # role being assumed requires MFA (that is, if the policy includes a
150
- # condition that tests for MFA). If the role being assumed requires
151
- # MFA and if the `TokenCode` value is missing or expired, the
278
+ # role being assumed requires MFA. (In other words, if the policy
279
+ # includes a condition that tests for MFA). If the role being assumed
280
+ # requires MFA and if the `TokenCode` value is missing or expired, the
152
281
  # `AssumeRole` call returns an "access denied" error.
153
282
  #
154
283
  # The format for this parameter, as described by its regex pattern, is
155
284
  # a sequence of six numeric digits.
156
285
  # @return [String]
157
286
  #
287
+ # @!attribute [rw] source_identity
288
+ # The source identity specified by the principal that is calling the
289
+ # `AssumeRole` operation.
290
+ #
291
+ # You can require users to specify a source identity when they assume
292
+ # a role. You do this by using the `sts:SourceIdentity` condition key
293
+ # in a role trust policy. You can use source identity information in
294
+ # CloudTrail logs to determine who took actions with a role. You can
295
+ # use the `aws:SourceIdentity` condition key to further control access
296
+ # to Amazon Web Services resources based on the value of source
297
+ # identity. For more information about using source identity, see
298
+ # [Monitor and control actions taken with assumed roles][1] in the
299
+ # *IAM User Guide*.
300
+ #
301
+ # The regex used to validate this parameter is a string of characters
302
+ # consisting of upper- and lower-case alphanumeric characters with no
303
+ # spaces. You can also include underscores or any of the following
304
+ # characters: =,.@-. You cannot use a value that begins with the text
305
+ # `aws:`. This prefix is reserved for Amazon Web Services internal
306
+ # use.
307
+ #
308
+ #
309
+ #
310
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html
311
+ # @return [String]
312
+ #
158
313
  # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleRequest AWS API Documentation
159
314
  #
160
315
  class AssumeRoleRequest < Struct.new(
161
316
  :role_arn,
162
317
  :role_session_name,
318
+ :policy_arns,
163
319
  :policy,
164
320
  :duration_seconds,
321
+ :tags,
322
+ :transitive_tag_keys,
165
323
  :external_id,
166
324
  :serial_number,
167
- :token_code)
325
+ :token_code,
326
+ :source_identity)
327
+ SENSITIVE = []
168
328
  include Aws::Structure
169
329
  end
170
330
 
171
331
  # Contains the response to a successful AssumeRole request, including
172
- # temporary AWS credentials that can be used to make AWS requests.
332
+ # temporary Amazon Web Services credentials that can be used to make
333
+ # Amazon Web Services requests.
173
334
  #
174
335
  # @!attribute [rw] credentials
175
336
  # The temporary security credentials, which include an access key ID,
176
337
  # a secret access key, and a security (or session) token.
177
338
  #
178
- # **Note:** The size of the security token that STS APIs return is not
339
+ # <note markdown="1"> The size of the security token that STS API operations return is not
179
340
  # fixed. We strongly recommend that you make no assumptions about the
180
- # maximum size. As of this writing, the typical size is less than 4096
181
- # bytes, but that can vary. Also, future updates to AWS might require
182
- # larger sizes.
341
+ # maximum size.
342
+ #
343
+ # </note>
183
344
  # @return [Types::Credentials]
184
345
  #
185
346
  # @!attribute [rw] assumed_role_user
@@ -192,17 +353,44 @@ module Aws::STS
192
353
  # @return [Types::AssumedRoleUser]
193
354
  #
194
355
  # @!attribute [rw] packed_policy_size
195
- # A percentage value that indicates the size of the policy in packed
196
- # form. The service rejects any policy with a packed size greater than
197
- # 100 percent, which means the policy exceeded the allowed space.
356
+ # A percentage value that indicates the packed size of the session
357
+ # policies and session tags combined passed in the request. The
358
+ # request fails if the packed size is greater than 100 percent, which
359
+ # means the policies and tags exceeded the allowed space.
198
360
  # @return [Integer]
199
361
  #
362
+ # @!attribute [rw] source_identity
363
+ # The source identity specified by the principal that is calling the
364
+ # `AssumeRole` operation.
365
+ #
366
+ # You can require users to specify a source identity when they assume
367
+ # a role. You do this by using the `sts:SourceIdentity` condition key
368
+ # in a role trust policy. You can use source identity information in
369
+ # CloudTrail logs to determine who took actions with a role. You can
370
+ # use the `aws:SourceIdentity` condition key to further control access
371
+ # to Amazon Web Services resources based on the value of source
372
+ # identity. For more information about using source identity, see
373
+ # [Monitor and control actions taken with assumed roles][1] in the
374
+ # *IAM User Guide*.
375
+ #
376
+ # The regex used to validate this parameter is a string of characters
377
+ # consisting of upper- and lower-case alphanumeric characters with no
378
+ # spaces. You can also include underscores or any of the following
379
+ # characters: =,.@-
380
+ #
381
+ #
382
+ #
383
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html
384
+ # @return [String]
385
+ #
200
386
  # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleResponse AWS API Documentation
201
387
  #
202
388
  class AssumeRoleResponse < Struct.new(
203
389
  :credentials,
204
390
  :assumed_role_user,
205
- :packed_policy_size)
391
+ :packed_policy_size,
392
+ :source_identity)
393
+ SENSITIVE = []
206
394
  include Aws::Structure
207
395
  end
208
396
 
@@ -213,6 +401,11 @@ module Aws::STS
213
401
  # role_arn: "arnType", # required
214
402
  # principal_arn: "arnType", # required
215
403
  # saml_assertion: "SAMLAssertionType", # required
404
+ # policy_arns: [
405
+ # {
406
+ # arn: "arnType",
407
+ # },
408
+ # ],
216
409
  # policy: "sessionPolicyDocumentType",
217
410
  # duration_seconds: 1,
218
411
  # }
@@ -228,49 +421,86 @@ module Aws::STS
228
421
  # @return [String]
229
422
  #
230
423
  # @!attribute [rw] saml_assertion
231
- # The base-64 encoded SAML authentication response provided by the
232
- # IdP.
424
+ # The base64 encoded SAML authentication response provided by the IdP.
233
425
  #
234
426
  # For more information, see [Configuring a Relying Party and Adding
235
- # Claims][1] in the *Using IAM* guide.
427
+ # Claims][1] in the *IAM User Guide*.
236
428
  #
237
429
  #
238
430
  #
239
- # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/create-role-saml-IdP-tasks.html
431
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/create-role-saml-IdP-tasks.html
240
432
  # @return [String]
241
433
  #
242
- # @!attribute [rw] policy
243
- # An IAM policy in JSON format.
434
+ # @!attribute [rw] policy_arns
435
+ # The Amazon Resource Names (ARNs) of the IAM managed policies that
436
+ # you want to use as managed session policies. The policies must exist
437
+ # in the same account as the role.
438
+ #
439
+ # This parameter is optional. You can provide up to 10 managed policy
440
+ # ARNs. However, the plaintext that you use for both inline and
441
+ # managed session policies can't exceed 2,048 characters. For more
442
+ # information about ARNs, see [Amazon Resource Names (ARNs) and Amazon
443
+ # Web Services Service Namespaces][1] in the Amazon Web Services
444
+ # General Reference.
445
+ #
446
+ # <note markdown="1"> An Amazon Web Services conversion compresses the passed session
447
+ # policies and session tags into a packed binary format that has a
448
+ # separate limit. Your request can fail for this limit even if your
449
+ # plaintext meets the other requirements. The `PackedPolicySize`
450
+ # response element indicates by percentage how close the policies and
451
+ # tags for your request are to the upper size limit.
244
452
  #
245
- # The policy parameter is optional. If you pass a policy, the
246
- # temporary security credentials that are returned by the operation
247
- # have the permissions that are allowed by both the access policy of
248
- # the role that is being assumed, <i> <b>and</b> </i> the policy that
249
- # you pass. This gives you a way to further restrict the permissions
250
- # for the resulting temporary security credentials. You cannot use the
251
- # passed policy to grant permissions that are in excess of those
252
- # allowed by the access policy of the role that is being assumed. For
253
- # more information, [Permissions for AssumeRole, AssumeRoleWithSAML,
254
- # and AssumeRoleWithWebIdentity][1] in the *IAM User Guide*.
453
+ # </note>
255
454
  #
256
- # The format for this parameter, as described by its regex pattern, is
257
- # a string of characters up to 2048 characters in length. The
258
- # characters can be any ASCII character from the space character to
259
- # the end of the valid character list (\\u0020-\\u00FF). It can also
455
+ # Passing policies to this operation returns new temporary
456
+ # credentials. The resulting session's permissions are the
457
+ # intersection of the role's identity-based policy and the session
458
+ # policies. You can use the role's temporary credentials in
459
+ # subsequent Amazon Web Services API calls to access resources in the
460
+ # account that owns the role. You cannot use session policies to grant
461
+ # more permissions than those allowed by the identity-based policy of
462
+ # the role that is being assumed. For more information, see [Session
463
+ # Policies][2] in the *IAM User Guide*.
464
+ #
465
+ #
466
+ #
467
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
468
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
469
+ # @return [Array<Types::PolicyDescriptorType>]
470
+ #
471
+ # @!attribute [rw] policy
472
+ # An IAM policy in JSON format that you want to use as an inline
473
+ # session policy.
474
+ #
475
+ # This parameter is optional. Passing policies to this operation
476
+ # returns new temporary credentials. The resulting session's
477
+ # permissions are the intersection of the role's identity-based
478
+ # policy and the session policies. You can use the role's temporary
479
+ # credentials in subsequent Amazon Web Services API calls to access
480
+ # resources in the account that owns the role. You cannot use session
481
+ # policies to grant more permissions than those allowed by the
482
+ # identity-based policy of the role that is being assumed. For more
483
+ # information, see [Session Policies][1] in the *IAM User Guide*.
484
+ #
485
+ # The plaintext that you use for both inline and managed session
486
+ # policies can't exceed 2,048 characters. The JSON policy characters
487
+ # can be any ASCII character from the space character to the end of
488
+ # the valid character list (\\u0020 through \\u00FF). It can also
260
489
  # include the tab (\\u0009), linefeed (\\u000A), and carriage return
261
490
  # (\\u000D) characters.
262
491
  #
263
- # <note markdown="1"> The policy plain text must be 2048 bytes or shorter. However, an
264
- # internal conversion compresses it into a packed binary format with a
265
- # separate limit. The PackedPolicySize response element indicates by
266
- # percentage how close to the upper size limit the policy is, with
267
- # 100% equaling the maximum allowed size.
492
+ # <note markdown="1"> An Amazon Web Services conversion compresses the passed session
493
+ # policies and session tags into a packed binary format that has a
494
+ # separate limit. Your request can fail for this limit even if your
495
+ # plaintext meets the other requirements. The `PackedPolicySize`
496
+ # response element indicates by percentage how close the policies and
497
+ # tags for your request are to the upper size limit.
268
498
  #
269
499
  # </note>
270
500
  #
271
501
  #
272
502
  #
273
- # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html
503
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
274
504
  # @return [String]
275
505
  #
276
506
  # @!attribute [rw] duration_seconds
@@ -288,22 +518,22 @@ module Aws::STS
288
518
  # Maximum Session Duration Setting for a Role][1] in the *IAM User
289
519
  # Guide*.
290
520
  #
291
- # By default, the value is set to 3600 seconds.
521
+ # By default, the value is set to `3600` seconds.
292
522
  #
293
523
  # <note markdown="1"> The `DurationSeconds` parameter is separate from the duration of a
294
524
  # console session that you might request using the returned
295
525
  # credentials. The request to the federation endpoint for a console
296
526
  # sign-in token takes a `SessionDuration` parameter that specifies the
297
527
  # maximum length of the console session. For more information, see
298
- # [Creating a URL that Enables Federated Users to Access the AWS
299
- # Management Console][2] in the *IAM User Guide*.
528
+ # [Creating a URL that Enables Federated Users to Access the Amazon
529
+ # Web Services Management Console][2] in the *IAM User Guide*.
300
530
  #
301
531
  # </note>
302
532
  #
303
533
  #
304
534
  #
305
- # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session
306
- # [2]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html
535
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session
536
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html
307
537
  # @return [Integer]
308
538
  #
309
539
  # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAMLRequest AWS API Documentation
@@ -312,24 +542,26 @@ module Aws::STS
312
542
  :role_arn,
313
543
  :principal_arn,
314
544
  :saml_assertion,
545
+ :policy_arns,
315
546
  :policy,
316
547
  :duration_seconds)
548
+ SENSITIVE = []
317
549
  include Aws::Structure
318
550
  end
319
551
 
320
552
  # Contains the response to a successful AssumeRoleWithSAML request,
321
- # including temporary AWS credentials that can be used to make AWS
322
- # requests.
553
+ # including temporary Amazon Web Services credentials that can be used
554
+ # to make Amazon Web Services requests.
323
555
  #
324
556
  # @!attribute [rw] credentials
325
557
  # The temporary security credentials, which include an access key ID,
326
558
  # a secret access key, and a security (or session) token.
327
559
  #
328
- # **Note:** The size of the security token that STS APIs return is not
560
+ # <note markdown="1"> The size of the security token that STS API operations return is not
329
561
  # fixed. We strongly recommend that you make no assumptions about the
330
- # maximum size. As of this writing, the typical size is less than 4096
331
- # bytes, but that can vary. Also, future updates to AWS might require
332
- # larger sizes.
562
+ # maximum size.
563
+ #
564
+ # </note>
333
565
  # @return [Types::Credentials]
334
566
  #
335
567
  # @!attribute [rw] assumed_role_user
@@ -338,9 +570,10 @@ module Aws::STS
338
570
  # @return [Types::AssumedRoleUser]
339
571
  #
340
572
  # @!attribute [rw] packed_policy_size
341
- # A percentage value that indicates the size of the policy in packed
342
- # form. The service rejects any policy with a packed size greater than
343
- # 100 percent, which means the policy exceeded the allowed space.
573
+ # A percentage value that indicates the packed size of the session
574
+ # policies and session tags combined passed in the request. The
575
+ # request fails if the packed size is greater than 100 percent, which
576
+ # means the policies and tags exceeded the allowed space.
344
577
  # @return [Integer]
345
578
  #
346
579
  # @!attribute [rw] subject
@@ -370,11 +603,17 @@ module Aws::STS
370
603
  # @return [String]
371
604
  #
372
605
  # @!attribute [rw] name_qualifier
373
- # A hash value based on the concatenation of the `Issuer` response
374
- # value, the AWS account ID, and the friendly name (the last part of
375
- # the ARN) of the SAML provider in IAM. The combination of
376
- # `NameQualifier` and `Subject` can be used to uniquely identify a
377
- # federated user.
606
+ # A hash value based on the concatenation of the following:
607
+ #
608
+ # * The `Issuer` response value.
609
+ #
610
+ # * The Amazon Web Services account ID.
611
+ #
612
+ # * The friendly name (the last part of the ARN) of the SAML provider
613
+ # in IAM.
614
+ #
615
+ # The combination of `NameQualifier` and `Subject` can be used to
616
+ # uniquely identify a federated user.
378
617
  #
379
618
  # The following pseudocode shows how the hash value is calculated:
380
619
  #
@@ -382,6 +621,34 @@ module Aws::STS
382
621
  # "/MySAMLIdP" ) )`
383
622
  # @return [String]
384
623
  #
624
+ # @!attribute [rw] source_identity
625
+ # The value in the `SourceIdentity` attribute in the SAML assertion.
626
+ #
627
+ # You can require users to set a source identity value when they
628
+ # assume a role. You do this by using the `sts:SourceIdentity`
629
+ # condition key in a role trust policy. That way, actions that are
630
+ # taken with the role are associated with that user. After the source
631
+ # identity is set, the value cannot be changed. It is present in the
632
+ # request for all actions that are taken by the role and persists
633
+ # across [chained role][1] sessions. You can configure your SAML
634
+ # identity provider to use an attribute associated with your users,
635
+ # like user name or email, as the source identity when calling
636
+ # `AssumeRoleWithSAML`. You do this by adding an attribute to the SAML
637
+ # assertion. For more information about using source identity, see
638
+ # [Monitor and control actions taken with assumed roles][2] in the
639
+ # *IAM User Guide*.
640
+ #
641
+ # The regex used to validate this parameter is a string of characters
642
+ # consisting of upper- and lower-case alphanumeric characters with no
643
+ # spaces. You can also include underscores or any of the following
644
+ # characters: =,.@-
645
+ #
646
+ #
647
+ #
648
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts#iam-term-role-chaining
649
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html
650
+ # @return [String]
651
+ #
385
652
  # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAMLResponse AWS API Documentation
386
653
  #
387
654
  class AssumeRoleWithSAMLResponse < Struct.new(
@@ -392,7 +659,9 @@ module Aws::STS
392
659
  :subject_type,
393
660
  :issuer,
394
661
  :audience,
395
- :name_qualifier)
662
+ :name_qualifier,
663
+ :source_identity)
664
+ SENSITIVE = []
396
665
  include Aws::Structure
397
666
  end
398
667
 
@@ -404,6 +673,11 @@ module Aws::STS
404
673
  # role_session_name: "roleSessionNameType", # required
405
674
  # web_identity_token: "clientTokenType", # required
406
675
  # provider_id: "urlType",
676
+ # policy_arns: [
677
+ # {
678
+ # arn: "arnType",
679
+ # },
680
+ # ],
407
681
  # policy: "sessionPolicyDocumentType",
408
682
  # duration_seconds: 1,
409
683
  # }
@@ -447,38 +721,76 @@ module Aws::STS
447
721
  # Do not specify this value for OpenID Connect ID tokens.
448
722
  # @return [String]
449
723
  #
450
- # @!attribute [rw] policy
451
- # An IAM policy in JSON format.
724
+ # @!attribute [rw] policy_arns
725
+ # The Amazon Resource Names (ARNs) of the IAM managed policies that
726
+ # you want to use as managed session policies. The policies must exist
727
+ # in the same account as the role.
728
+ #
729
+ # This parameter is optional. You can provide up to 10 managed policy
730
+ # ARNs. However, the plaintext that you use for both inline and
731
+ # managed session policies can't exceed 2,048 characters. For more
732
+ # information about ARNs, see [Amazon Resource Names (ARNs) and Amazon
733
+ # Web Services Service Namespaces][1] in the Amazon Web Services
734
+ # General Reference.
735
+ #
736
+ # <note markdown="1"> An Amazon Web Services conversion compresses the passed session
737
+ # policies and session tags into a packed binary format that has a
738
+ # separate limit. Your request can fail for this limit even if your
739
+ # plaintext meets the other requirements. The `PackedPolicySize`
740
+ # response element indicates by percentage how close the policies and
741
+ # tags for your request are to the upper size limit.
452
742
  #
453
- # The policy parameter is optional. If you pass a policy, the
454
- # temporary security credentials that are returned by the operation
455
- # have the permissions that are allowed by both the access policy of
456
- # the role that is being assumed, <i> <b>and</b> </i> the policy that
457
- # you pass. This gives you a way to further restrict the permissions
458
- # for the resulting temporary security credentials. You cannot use the
459
- # passed policy to grant permissions that are in excess of those
460
- # allowed by the access policy of the role that is being assumed. For
461
- # more information, see [Permissions for AssumeRoleWithWebIdentity][1]
462
- # in the *IAM User Guide*.
743
+ # </note>
463
744
  #
464
- # The format for this parameter, as described by its regex pattern, is
465
- # a string of characters up to 2048 characters in length. The
466
- # characters can be any ASCII character from the space character to
467
- # the end of the valid character list (\\u0020-\\u00FF). It can also
745
+ # Passing policies to this operation returns new temporary
746
+ # credentials. The resulting session's permissions are the
747
+ # intersection of the role's identity-based policy and the session
748
+ # policies. You can use the role's temporary credentials in
749
+ # subsequent Amazon Web Services API calls to access resources in the
750
+ # account that owns the role. You cannot use session policies to grant
751
+ # more permissions than those allowed by the identity-based policy of
752
+ # the role that is being assumed. For more information, see [Session
753
+ # Policies][2] in the *IAM User Guide*.
754
+ #
755
+ #
756
+ #
757
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
758
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
759
+ # @return [Array<Types::PolicyDescriptorType>]
760
+ #
761
+ # @!attribute [rw] policy
762
+ # An IAM policy in JSON format that you want to use as an inline
763
+ # session policy.
764
+ #
765
+ # This parameter is optional. Passing policies to this operation
766
+ # returns new temporary credentials. The resulting session's
767
+ # permissions are the intersection of the role's identity-based
768
+ # policy and the session policies. You can use the role's temporary
769
+ # credentials in subsequent Amazon Web Services API calls to access
770
+ # resources in the account that owns the role. You cannot use session
771
+ # policies to grant more permissions than those allowed by the
772
+ # identity-based policy of the role that is being assumed. For more
773
+ # information, see [Session Policies][1] in the *IAM User Guide*.
774
+ #
775
+ # The plaintext that you use for both inline and managed session
776
+ # policies can't exceed 2,048 characters. The JSON policy characters
777
+ # can be any ASCII character from the space character to the end of
778
+ # the valid character list (\\u0020 through \\u00FF). It can also
468
779
  # include the tab (\\u0009), linefeed (\\u000A), and carriage return
469
780
  # (\\u000D) characters.
470
781
  #
471
- # <note markdown="1"> The policy plain text must be 2048 bytes or shorter. However, an
472
- # internal conversion compresses it into a packed binary format with a
473
- # separate limit. The PackedPolicySize response element indicates by
474
- # percentage how close to the upper size limit the policy is, with
475
- # 100% equaling the maximum allowed size.
782
+ # <note markdown="1"> An Amazon Web Services conversion compresses the passed session
783
+ # policies and session tags into a packed binary format that has a
784
+ # separate limit. Your request can fail for this limit even if your
785
+ # plaintext meets the other requirements. The `PackedPolicySize`
786
+ # response element indicates by percentage how close the policies and
787
+ # tags for your request are to the upper size limit.
476
788
  #
477
789
  # </note>
478
790
  #
479
791
  #
480
792
  #
481
- # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html
793
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
482
794
  # @return [String]
483
795
  #
484
796
  # @!attribute [rw] duration_seconds
@@ -492,22 +804,22 @@ module Aws::STS
492
804
  # value for your role, see [View the Maximum Session Duration Setting
493
805
  # for a Role][1] in the *IAM User Guide*.
494
806
  #
495
- # By default, the value is set to 3600 seconds.
807
+ # By default, the value is set to `3600` seconds.
496
808
  #
497
809
  # <note markdown="1"> The `DurationSeconds` parameter is separate from the duration of a
498
810
  # console session that you might request using the returned
499
811
  # credentials. The request to the federation endpoint for a console
500
812
  # sign-in token takes a `SessionDuration` parameter that specifies the
501
813
  # maximum length of the console session. For more information, see
502
- # [Creating a URL that Enables Federated Users to Access the AWS
503
- # Management Console][2] in the *IAM User Guide*.
814
+ # [Creating a URL that Enables Federated Users to Access the Amazon
815
+ # Web Services Management Console][2] in the *IAM User Guide*.
504
816
  #
505
817
  # </note>
506
818
  #
507
819
  #
508
820
  #
509
- # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session
510
- # [2]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html
821
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session
822
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html
511
823
  # @return [Integer]
512
824
  #
513
825
  # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentityRequest AWS API Documentation
@@ -517,24 +829,26 @@ module Aws::STS
517
829
  :role_session_name,
518
830
  :web_identity_token,
519
831
  :provider_id,
832
+ :policy_arns,
520
833
  :policy,
521
834
  :duration_seconds)
835
+ SENSITIVE = []
522
836
  include Aws::Structure
523
837
  end
524
838
 
525
839
  # Contains the response to a successful AssumeRoleWithWebIdentity
526
- # request, including temporary AWS credentials that can be used to make
527
- # AWS requests.
840
+ # request, including temporary Amazon Web Services credentials that can
841
+ # be used to make Amazon Web Services requests.
528
842
  #
529
843
  # @!attribute [rw] credentials
530
844
  # The temporary security credentials, which include an access key ID,
531
845
  # a secret access key, and a security token.
532
846
  #
533
- # **Note:** The size of the security token that STS APIs return is not
847
+ # <note markdown="1"> The size of the security token that STS API operations return is not
534
848
  # fixed. We strongly recommend that you make no assumptions about the
535
- # maximum size. As of this writing, the typical size is less than 4096
536
- # bytes, but that can vary. Also, future updates to AWS might require
537
- # larger sizes.
849
+ # maximum size.
850
+ #
851
+ # </note>
538
852
  # @return [Types::Credentials]
539
853
  #
540
854
  # @!attribute [rw] subject_from_web_identity_token
@@ -557,15 +871,16 @@ module Aws::STS
557
871
  # @return [Types::AssumedRoleUser]
558
872
  #
559
873
  # @!attribute [rw] packed_policy_size
560
- # A percentage value that indicates the size of the policy in packed
561
- # form. The service rejects any policy with a packed size greater than
562
- # 100 percent, which means the policy exceeded the allowed space.
874
+ # A percentage value that indicates the packed size of the session
875
+ # policies and session tags combined passed in the request. The
876
+ # request fails if the packed size is greater than 100 percent, which
877
+ # means the policies and tags exceeded the allowed space.
563
878
  # @return [Integer]
564
879
  #
565
880
  # @!attribute [rw] provider
566
881
  # The issuing authority of the web identity token presented. For
567
- # OpenID Connect ID Tokens this contains the value of the `iss` field.
568
- # For OAuth 2.0 access tokens, this contains the value of the
882
+ # OpenID Connect ID tokens, this contains the value of the `iss`
883
+ # field. For OAuth 2.0 access tokens, this contains the value of the
569
884
  # `ProviderId` parameter that was passed in the
570
885
  # `AssumeRoleWithWebIdentity` request.
571
886
  # @return [String]
@@ -576,6 +891,38 @@ module Aws::STS
576
891
  # application that requested the web identity token.
577
892
  # @return [String]
578
893
  #
894
+ # @!attribute [rw] source_identity
895
+ # The value of the source identity that is returned in the JSON web
896
+ # token (JWT) from the identity provider.
897
+ #
898
+ # You can require users to set a source identity value when they
899
+ # assume a role. You do this by using the `sts:SourceIdentity`
900
+ # condition key in a role trust policy. That way, actions that are
901
+ # taken with the role are associated with that user. After the source
902
+ # identity is set, the value cannot be changed. It is present in the
903
+ # request for all actions that are taken by the role and persists
904
+ # across [chained role][1] sessions. You can configure your identity
905
+ # provider to use an attribute associated with your users, like user
906
+ # name or email, as the source identity when calling
907
+ # `AssumeRoleWithWebIdentity`. You do this by adding a claim to the
908
+ # JSON web token. To learn more about OIDC tokens and claims, see
909
+ # [Using Tokens with User Pools][2] in the *Amazon Cognito Developer
910
+ # Guide*. For more information about using source identity, see
911
+ # [Monitor and control actions taken with assumed roles][3] in the
912
+ # *IAM User Guide*.
913
+ #
914
+ # The regex used to validate this parameter is a string of characters
915
+ # consisting of upper- and lower-case alphanumeric characters with no
916
+ # spaces. You can also include underscores or any of the following
917
+ # characters: =,.@-
918
+ #
919
+ #
920
+ #
921
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts#iam-term-role-chaining
922
+ # [2]: https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html
923
+ # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html
924
+ # @return [String]
925
+ #
579
926
  # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentityResponse AWS API Documentation
580
927
  #
581
928
  class AssumeRoleWithWebIdentityResponse < Struct.new(
@@ -584,7 +931,9 @@ module Aws::STS
584
931
  :assumed_role_user,
585
932
  :packed_policy_size,
586
933
  :provider,
587
- :audience)
934
+ :audience,
935
+ :source_identity)
936
+ SENSITIVE = []
588
937
  include Aws::Structure
589
938
  end
590
939
 
@@ -594,17 +943,18 @@ module Aws::STS
594
943
  # @!attribute [rw] assumed_role_id
595
944
  # A unique identifier that contains the role ID and the role session
596
945
  # name of the role that is being assumed. The role ID is generated by
597
- # AWS when the role is created.
946
+ # Amazon Web Services when the role is created.
598
947
  # @return [String]
599
948
  #
600
949
  # @!attribute [rw] arn
601
950
  # The ARN of the temporary security credentials that are returned from
602
951
  # the AssumeRole action. For more information about ARNs and how to
603
- # use them in policies, see [IAM Identifiers][1] in *Using IAM*.
952
+ # use them in policies, see [IAM Identifiers][1] in the *IAM User
953
+ # Guide*.
604
954
  #
605
955
  #
606
956
  #
607
- # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html
957
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html
608
958
  # @return [String]
609
959
  #
610
960
  # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumedRoleUser AWS API Documentation
@@ -612,10 +962,11 @@ module Aws::STS
612
962
  class AssumedRoleUser < Struct.new(
613
963
  :assumed_role_id,
614
964
  :arn)
965
+ SENSITIVE = []
615
966
  include Aws::Structure
616
967
  end
617
968
 
618
- # AWS credentials for API authentication.
969
+ # Amazon Web Services credentials for API authentication.
619
970
  #
620
971
  # @!attribute [rw] access_key_id
621
972
  # The access key ID that identifies the temporary security
@@ -642,6 +993,7 @@ module Aws::STS
642
993
  :secret_access_key,
643
994
  :session_token,
644
995
  :expiration)
996
+ SENSITIVE = []
645
997
  include Aws::Structure
646
998
  end
647
999
 
@@ -660,21 +1012,38 @@ module Aws::STS
660
1012
  #
661
1013
  class DecodeAuthorizationMessageRequest < Struct.new(
662
1014
  :encoded_message)
1015
+ SENSITIVE = []
663
1016
  include Aws::Structure
664
1017
  end
665
1018
 
666
1019
  # A document that contains additional information about the
667
1020
  # authorization status of a request from an encoded message that is
668
- # returned in response to an AWS request.
1021
+ # returned in response to an Amazon Web Services request.
669
1022
  #
670
1023
  # @!attribute [rw] decoded_message
671
- # An XML document that contains the decoded message.
1024
+ # The API returns a response with the decoded message.
672
1025
  # @return [String]
673
1026
  #
674
1027
  # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/DecodeAuthorizationMessageResponse AWS API Documentation
675
1028
  #
676
1029
  class DecodeAuthorizationMessageResponse < Struct.new(
677
1030
  :decoded_message)
1031
+ SENSITIVE = []
1032
+ include Aws::Structure
1033
+ end
1034
+
1035
+ # The web identity token that was passed is expired or is not valid. Get
1036
+ # a new identity token from the identity provider and then retry the
1037
+ # request.
1038
+ #
1039
+ # @!attribute [rw] message
1040
+ # @return [String]
1041
+ #
1042
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/ExpiredTokenException AWS API Documentation
1043
+ #
1044
+ class ExpiredTokenException < Struct.new(
1045
+ :message)
1046
+ SENSITIVE = []
678
1047
  include Aws::Structure
679
1048
  end
680
1049
 
@@ -689,11 +1058,11 @@ module Aws::STS
689
1058
  # @!attribute [rw] arn
690
1059
  # The ARN that specifies the federated user that is associated with
691
1060
  # the credentials. For more information about ARNs and how to use them
692
- # in policies, see [IAM Identifiers][1] in *Using IAM*.
1061
+ # in policies, see [IAM Identifiers][1] in the *IAM User Guide*.
693
1062
  #
694
1063
  #
695
1064
  #
696
- # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html
1065
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html
697
1066
  # @return [String]
698
1067
  #
699
1068
  # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/FederatedUser AWS API Documentation
@@ -701,6 +1070,42 @@ module Aws::STS
701
1070
  class FederatedUser < Struct.new(
702
1071
  :federated_user_id,
703
1072
  :arn)
1073
+ SENSITIVE = []
1074
+ include Aws::Structure
1075
+ end
1076
+
1077
+ # @note When making an API call, you may pass GetAccessKeyInfoRequest
1078
+ # data as a hash:
1079
+ #
1080
+ # {
1081
+ # access_key_id: "accessKeyIdType", # required
1082
+ # }
1083
+ #
1084
+ # @!attribute [rw] access_key_id
1085
+ # The identifier of an access key.
1086
+ #
1087
+ # This parameter allows (through its regex pattern) a string of
1088
+ # characters that can consist of any upper- or lowercase letter or
1089
+ # digit.
1090
+ # @return [String]
1091
+ #
1092
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetAccessKeyInfoRequest AWS API Documentation
1093
+ #
1094
+ class GetAccessKeyInfoRequest < Struct.new(
1095
+ :access_key_id)
1096
+ SENSITIVE = []
1097
+ include Aws::Structure
1098
+ end
1099
+
1100
+ # @!attribute [rw] account
1101
+ # The number used to identify the Amazon Web Services account.
1102
+ # @return [String]
1103
+ #
1104
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetAccessKeyInfoResponse AWS API Documentation
1105
+ #
1106
+ class GetAccessKeyInfoResponse < Struct.new(
1107
+ :account)
1108
+ SENSITIVE = []
704
1109
  include Aws::Structure
705
1110
  end
706
1111
 
@@ -715,23 +1120,23 @@ module Aws::STS
715
1120
  #
716
1121
  # @!attribute [rw] user_id
717
1122
  # The unique identifier of the calling entity. The exact value depends
718
- # on the type of entity making the call. The values returned are those
719
- # listed in the **aws:userid** column in the [Principal table][1]
720
- # found on the **Policy Variables** reference page in the *IAM User
721
- # Guide*.
1123
+ # on the type of entity that is making the call. The values returned
1124
+ # are those listed in the **aws:userid** column in the [Principal
1125
+ # table][1] found on the **Policy Variables** reference page in the
1126
+ # *IAM User Guide*.
722
1127
  #
723
1128
  #
724
1129
  #
725
- # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#principaltable
1130
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#principaltable
726
1131
  # @return [String]
727
1132
  #
728
1133
  # @!attribute [rw] account
729
- # The AWS account ID number of the account that owns or contains the
730
- # calling entity.
1134
+ # The Amazon Web Services account ID number of the account that owns
1135
+ # or contains the calling entity.
731
1136
  # @return [String]
732
1137
  #
733
1138
  # @!attribute [rw] arn
734
- # The AWS ARN associated with the calling entity.
1139
+ # The Amazon Web Services ARN associated with the calling entity.
735
1140
  # @return [String]
736
1141
  #
737
1142
  # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetCallerIdentityResponse AWS API Documentation
@@ -740,6 +1145,7 @@ module Aws::STS
740
1145
  :user_id,
741
1146
  :account,
742
1147
  :arn)
1148
+ SENSITIVE = []
743
1149
  include Aws::Structure
744
1150
  end
745
1151
 
@@ -749,7 +1155,18 @@ module Aws::STS
749
1155
  # {
750
1156
  # name: "userNameType", # required
751
1157
  # policy: "sessionPolicyDocumentType",
1158
+ # policy_arns: [
1159
+ # {
1160
+ # arn: "arnType",
1161
+ # },
1162
+ # ],
752
1163
  # duration_seconds: 1,
1164
+ # tags: [
1165
+ # {
1166
+ # key: "tagKeyType", # required
1167
+ # value: "tagValueType", # required
1168
+ # },
1169
+ # ],
753
1170
  # }
754
1171
  #
755
1172
  # @!attribute [rw] name
@@ -765,79 +1182,177 @@ module Aws::STS
765
1182
  # @return [String]
766
1183
  #
767
1184
  # @!attribute [rw] policy
768
- # An IAM policy in JSON format that is passed with the
769
- # `GetFederationToken` call and evaluated along with the policy or
770
- # policies that are attached to the IAM user whose credentials are
771
- # used to call `GetFederationToken`. The passed policy is used to
772
- # scope down the permissions that are available to the IAM user, by
773
- # allowing only a subset of the permissions that are granted to the
774
- # IAM user. The passed policy cannot grant more permissions than those
775
- # granted to the IAM user. The final permissions for the federated
776
- # user are the most restrictive set based on the intersection of the
777
- # passed policy and the IAM user policy.
778
- #
779
- # If you do not pass a policy, the resulting temporary security
780
- # credentials have no effective permissions. The only exception is
781
- # when the temporary security credentials are used to access a
782
- # resource that has a resource-based policy that specifically allows
783
- # the federated user to access the resource.
1185
+ # An IAM policy in JSON format that you want to use as an inline
1186
+ # session policy.
784
1187
  #
785
- # The format for this parameter, as described by its regex pattern, is
786
- # a string of characters up to 2048 characters in length. The
787
- # characters can be any ASCII character from the space character to
788
- # the end of the valid character list (\\u0020-\\u00FF). It can also
1188
+ # You must pass an inline or managed [session policy][1] to this
1189
+ # operation. You can pass a single JSON policy document to use as an
1190
+ # inline session policy. You can also specify up to 10 managed
1191
+ # policies to use as managed session policies.
1192
+ #
1193
+ # This parameter is optional. However, if you do not pass any session
1194
+ # policies, then the resulting federated user session has no
1195
+ # permissions.
1196
+ #
1197
+ # When you pass session policies, the session permissions are the
1198
+ # intersection of the IAM user policies and the session policies that
1199
+ # you pass. This gives you a way to further restrict the permissions
1200
+ # for a federated user. You cannot use session policies to grant more
1201
+ # permissions than those that are defined in the permissions policy of
1202
+ # the IAM user. For more information, see [Session Policies][1] in the
1203
+ # *IAM User Guide*.
1204
+ #
1205
+ # The resulting credentials can be used to access a resource that has
1206
+ # a resource-based policy. If that policy specifically references the
1207
+ # federated user session in the `Principal` element of the policy, the
1208
+ # session has the permissions allowed by the policy. These permissions
1209
+ # are granted in addition to the permissions that are granted by the
1210
+ # session policies.
1211
+ #
1212
+ # The plaintext that you use for both inline and managed session
1213
+ # policies can't exceed 2,048 characters. The JSON policy characters
1214
+ # can be any ASCII character from the space character to the end of
1215
+ # the valid character list (\\u0020 through \\u00FF). It can also
789
1216
  # include the tab (\\u0009), linefeed (\\u000A), and carriage return
790
1217
  # (\\u000D) characters.
791
1218
  #
792
- # <note markdown="1"> The policy plain text must be 2048 bytes or shorter. However, an
793
- # internal conversion compresses it into a packed binary format with a
794
- # separate limit. The PackedPolicySize response element indicates by
795
- # percentage how close to the upper size limit the policy is, with
796
- # 100% equaling the maximum allowed size.
1219
+ # <note markdown="1"> An Amazon Web Services conversion compresses the passed session
1220
+ # policies and session tags into a packed binary format that has a
1221
+ # separate limit. Your request can fail for this limit even if your
1222
+ # plaintext meets the other requirements. The `PackedPolicySize`
1223
+ # response element indicates by percentage how close the policies and
1224
+ # tags for your request are to the upper size limit.
797
1225
  #
798
1226
  # </note>
799
1227
  #
800
- # For more information about how permissions work, see [Permissions
801
- # for GetFederationToken][1].
802
- #
803
1228
  #
804
1229
  #
805
- # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_getfederationtoken.html
1230
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
806
1231
  # @return [String]
807
1232
  #
1233
+ # @!attribute [rw] policy_arns
1234
+ # The Amazon Resource Names (ARNs) of the IAM managed policies that
1235
+ # you want to use as a managed session policy. The policies must exist
1236
+ # in the same account as the IAM user that is requesting federated
1237
+ # access.
1238
+ #
1239
+ # You must pass an inline or managed [session policy][1] to this
1240
+ # operation. You can pass a single JSON policy document to use as an
1241
+ # inline session policy. You can also specify up to 10 managed
1242
+ # policies to use as managed session policies. The plaintext that you
1243
+ # use for both inline and managed session policies can't exceed 2,048
1244
+ # characters. You can provide up to 10 managed policy ARNs. For more
1245
+ # information about ARNs, see [Amazon Resource Names (ARNs) and Amazon
1246
+ # Web Services Service Namespaces][2] in the Amazon Web Services
1247
+ # General Reference.
1248
+ #
1249
+ # This parameter is optional. However, if you do not pass any session
1250
+ # policies, then the resulting federated user session has no
1251
+ # permissions.
1252
+ #
1253
+ # When you pass session policies, the session permissions are the
1254
+ # intersection of the IAM user policies and the session policies that
1255
+ # you pass. This gives you a way to further restrict the permissions
1256
+ # for a federated user. You cannot use session policies to grant more
1257
+ # permissions than those that are defined in the permissions policy of
1258
+ # the IAM user. For more information, see [Session Policies][1] in the
1259
+ # *IAM User Guide*.
1260
+ #
1261
+ # The resulting credentials can be used to access a resource that has
1262
+ # a resource-based policy. If that policy specifically references the
1263
+ # federated user session in the `Principal` element of the policy, the
1264
+ # session has the permissions allowed by the policy. These permissions
1265
+ # are granted in addition to the permissions that are granted by the
1266
+ # session policies.
1267
+ #
1268
+ # <note markdown="1"> An Amazon Web Services conversion compresses the passed session
1269
+ # policies and session tags into a packed binary format that has a
1270
+ # separate limit. Your request can fail for this limit even if your
1271
+ # plaintext meets the other requirements. The `PackedPolicySize`
1272
+ # response element indicates by percentage how close the policies and
1273
+ # tags for your request are to the upper size limit.
1274
+ #
1275
+ # </note>
1276
+ #
1277
+ #
1278
+ #
1279
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
1280
+ # [2]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
1281
+ # @return [Array<Types::PolicyDescriptorType>]
1282
+ #
808
1283
  # @!attribute [rw] duration_seconds
809
1284
  # The duration, in seconds, that the session should last. Acceptable
810
1285
  # durations for federation sessions range from 900 seconds (15
811
- # minutes) to 129600 seconds (36 hours), with 43200 seconds (12 hours)
812
- # as the default. Sessions obtained using AWS account (root)
813
- # credentials are restricted to a maximum of 3600 seconds (one hour).
814
- # If the specified duration is longer than one hour, the session
815
- # obtained by using AWS account (root) credentials defaults to one
816
- # hour.
1286
+ # minutes) to 129,600 seconds (36 hours), with 43,200 seconds (12
1287
+ # hours) as the default. Sessions obtained using Amazon Web Services
1288
+ # account root user credentials are restricted to a maximum of 3,600
1289
+ # seconds (one hour). If the specified duration is longer than one
1290
+ # hour, the session obtained by using root user credentials defaults
1291
+ # to one hour.
817
1292
  # @return [Integer]
818
1293
  #
1294
+ # @!attribute [rw] tags
1295
+ # A list of session tags. Each session tag consists of a key name and
1296
+ # an associated value. For more information about session tags, see
1297
+ # [Passing Session Tags in STS][1] in the *IAM User Guide*.
1298
+ #
1299
+ # This parameter is optional. You can pass up to 50 session tags. The
1300
+ # plaintext session tag keys can’t exceed 128 characters and the
1301
+ # values can’t exceed 256 characters. For these and additional limits,
1302
+ # see [IAM and STS Character Limits][2] in the *IAM User Guide*.
1303
+ #
1304
+ # <note markdown="1"> An Amazon Web Services conversion compresses the passed session
1305
+ # policies and session tags into a packed binary format that has a
1306
+ # separate limit. Your request can fail for this limit even if your
1307
+ # plaintext meets the other requirements. The `PackedPolicySize`
1308
+ # response element indicates by percentage how close the policies and
1309
+ # tags for your request are to the upper size limit.
1310
+ #
1311
+ # </note>
1312
+ #
1313
+ # You can pass a session tag with the same key as a tag that is
1314
+ # already attached to the user you are federating. When you do,
1315
+ # session tags override a user tag with the same key.
1316
+ #
1317
+ # Tag key–value pairs are not case sensitive, but case is preserved.
1318
+ # This means that you cannot have separate `Department` and
1319
+ # `department` tag keys. Assume that the role has the
1320
+ # `Department`=`Marketing` tag and you pass the
1321
+ # `department`=`engineering` session tag. `Department` and
1322
+ # `department` are not saved as separate tags, and the session tag
1323
+ # passed in the request takes precedence over the role tag.
1324
+ #
1325
+ #
1326
+ #
1327
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html
1328
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length
1329
+ # @return [Array<Types::Tag>]
1330
+ #
819
1331
  # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationTokenRequest AWS API Documentation
820
1332
  #
821
1333
  class GetFederationTokenRequest < Struct.new(
822
1334
  :name,
823
1335
  :policy,
824
- :duration_seconds)
1336
+ :policy_arns,
1337
+ :duration_seconds,
1338
+ :tags)
1339
+ SENSITIVE = []
825
1340
  include Aws::Structure
826
1341
  end
827
1342
 
828
1343
  # Contains the response to a successful GetFederationToken request,
829
- # including temporary AWS credentials that can be used to make AWS
830
- # requests.
1344
+ # including temporary Amazon Web Services credentials that can be used
1345
+ # to make Amazon Web Services requests.
831
1346
  #
832
1347
  # @!attribute [rw] credentials
833
1348
  # The temporary security credentials, which include an access key ID,
834
1349
  # a secret access key, and a security (or session) token.
835
1350
  #
836
- # **Note:** The size of the security token that STS APIs return is not
1351
+ # <note markdown="1"> The size of the security token that STS API operations return is not
837
1352
  # fixed. We strongly recommend that you make no assumptions about the
838
- # maximum size. As of this writing, the typical size is less than 4096
839
- # bytes, but that can vary. Also, future updates to AWS might require
840
- # larger sizes.
1353
+ # maximum size.
1354
+ #
1355
+ # </note>
841
1356
  # @return [Types::Credentials]
842
1357
  #
843
1358
  # @!attribute [rw] federated_user
@@ -848,9 +1363,10 @@ module Aws::STS
848
1363
  # @return [Types::FederatedUser]
849
1364
  #
850
1365
  # @!attribute [rw] packed_policy_size
851
- # A percentage value indicating the size of the policy in packed form.
852
- # The service rejects policies for which the packed size is greater
853
- # than 100 percent of the allowed value.
1366
+ # A percentage value that indicates the packed size of the session
1367
+ # policies and session tags combined passed in the request. The
1368
+ # request fails if the packed size is greater than 100 percent, which
1369
+ # means the policies and tags exceeded the allowed space.
854
1370
  # @return [Integer]
855
1371
  #
856
1372
  # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationTokenResponse AWS API Documentation
@@ -859,6 +1375,7 @@ module Aws::STS
859
1375
  :credentials,
860
1376
  :federated_user,
861
1377
  :packed_policy_size)
1378
+ SENSITIVE = []
862
1379
  include Aws::Structure
863
1380
  end
864
1381
 
@@ -874,11 +1391,11 @@ module Aws::STS
874
1391
  # @!attribute [rw] duration_seconds
875
1392
  # The duration, in seconds, that the credentials should remain valid.
876
1393
  # Acceptable durations for IAM user sessions range from 900 seconds
877
- # (15 minutes) to 129600 seconds (36 hours), with 43200 seconds (12
878
- # hours) as the default. Sessions for AWS account owners are
879
- # restricted to a maximum of 3600 seconds (one hour). If the duration
880
- # is longer than one hour, the session for AWS account owners defaults
881
- # to one hour.
1394
+ # (15 minutes) to 129,600 seconds (36 hours), with 43,200 seconds (12
1395
+ # hours) as the default. Sessions for Amazon Web Services account
1396
+ # owners are restricted to a maximum of 3,600 seconds (one hour). If
1397
+ # the duration is longer than one hour, the session for Amazon Web
1398
+ # Services account owners defaults to one hour.
882
1399
  # @return [Integer]
883
1400
  #
884
1401
  # @!attribute [rw] serial_number
@@ -888,10 +1405,10 @@ module Aws::STS
888
1405
  # The value is either the serial number for a hardware device (such as
889
1406
  # `GAHT12345678`) or an Amazon Resource Name (ARN) for a virtual
890
1407
  # device (such as `arn:aws:iam::123456789012:mfa/user`). You can find
891
- # the device for an IAM user by going to the AWS Management Console
892
- # and viewing the user's security credentials.
1408
+ # the device for an IAM user by going to the Amazon Web Services
1409
+ # Management Console and viewing the user's security credentials.
893
1410
  #
894
- # The regex used to validated this parameter is a string of characters
1411
+ # The regex used to validate this parameter is a string of characters
895
1412
  # consisting of upper- and lower-case alphanumeric characters with no
896
1413
  # spaces. You can also include underscores or any of the following
897
1414
  # characters: =,.@:/-
@@ -900,9 +1417,9 @@ module Aws::STS
900
1417
  # @!attribute [rw] token_code
901
1418
  # The value provided by the MFA device, if MFA is required. If any
902
1419
  # policy requires the IAM user to submit an MFA code, specify this
903
- # value. If MFA authentication is required, and the user does not
904
- # provide a code when requesting a set of temporary security
905
- # credentials, the user will receive an "access denied" response
1420
+ # value. If MFA authentication is required, the user must provide a
1421
+ # code when requesting a set of temporary security credentials. A user
1422
+ # who fails to provide the code receives an "access denied" response
906
1423
  # when requesting resources that require MFA authentication.
907
1424
  #
908
1425
  # The format for this parameter, as described by its regex pattern, is
@@ -915,28 +1432,240 @@ module Aws::STS
915
1432
  :duration_seconds,
916
1433
  :serial_number,
917
1434
  :token_code)
1435
+ SENSITIVE = []
918
1436
  include Aws::Structure
919
1437
  end
920
1438
 
921
1439
  # Contains the response to a successful GetSessionToken request,
922
- # including temporary AWS credentials that can be used to make AWS
923
- # requests.
1440
+ # including temporary Amazon Web Services credentials that can be used
1441
+ # to make Amazon Web Services requests.
924
1442
  #
925
1443
  # @!attribute [rw] credentials
926
1444
  # The temporary security credentials, which include an access key ID,
927
1445
  # a secret access key, and a security (or session) token.
928
1446
  #
929
- # **Note:** The size of the security token that STS APIs return is not
1447
+ # <note markdown="1"> The size of the security token that STS API operations return is not
930
1448
  # fixed. We strongly recommend that you make no assumptions about the
931
- # maximum size. As of this writing, the typical size is less than 4096
932
- # bytes, but that can vary. Also, future updates to AWS might require
933
- # larger sizes.
1449
+ # maximum size.
1450
+ #
1451
+ # </note>
934
1452
  # @return [Types::Credentials]
935
1453
  #
936
1454
  # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetSessionTokenResponse AWS API Documentation
937
1455
  #
938
1456
  class GetSessionTokenResponse < Struct.new(
939
1457
  :credentials)
1458
+ SENSITIVE = []
1459
+ include Aws::Structure
1460
+ end
1461
+
1462
+ # The request could not be fulfilled because the identity provider (IDP)
1463
+ # that was asked to verify the incoming identity token could not be
1464
+ # reached. This is often a transient error caused by network conditions.
1465
+ # Retry the request a limited number of times so that you don't exceed
1466
+ # the request rate. If the error persists, the identity provider might
1467
+ # be down or not responding.
1468
+ #
1469
+ # @!attribute [rw] message
1470
+ # @return [String]
1471
+ #
1472
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/IDPCommunicationErrorException AWS API Documentation
1473
+ #
1474
+ class IDPCommunicationErrorException < Struct.new(
1475
+ :message)
1476
+ SENSITIVE = []
1477
+ include Aws::Structure
1478
+ end
1479
+
1480
+ # The identity provider (IdP) reported that authentication failed. This
1481
+ # might be because the claim is invalid.
1482
+ #
1483
+ # If this error is returned for the `AssumeRoleWithWebIdentity`
1484
+ # operation, it can also mean that the claim has expired or has been
1485
+ # explicitly revoked.
1486
+ #
1487
+ # @!attribute [rw] message
1488
+ # @return [String]
1489
+ #
1490
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/IDPRejectedClaimException AWS API Documentation
1491
+ #
1492
+ class IDPRejectedClaimException < Struct.new(
1493
+ :message)
1494
+ SENSITIVE = []
1495
+ include Aws::Structure
1496
+ end
1497
+
1498
+ # The error returned if the message passed to
1499
+ # `DecodeAuthorizationMessage` was invalid. This can happen if the token
1500
+ # contains invalid characters, such as linebreaks.
1501
+ #
1502
+ # @!attribute [rw] message
1503
+ # @return [String]
1504
+ #
1505
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/InvalidAuthorizationMessageException AWS API Documentation
1506
+ #
1507
+ class InvalidAuthorizationMessageException < Struct.new(
1508
+ :message)
1509
+ SENSITIVE = []
1510
+ include Aws::Structure
1511
+ end
1512
+
1513
+ # The web identity token that was passed could not be validated by
1514
+ # Amazon Web Services. Get a new identity token from the identity
1515
+ # provider and then retry the request.
1516
+ #
1517
+ # @!attribute [rw] message
1518
+ # @return [String]
1519
+ #
1520
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/InvalidIdentityTokenException AWS API Documentation
1521
+ #
1522
+ class InvalidIdentityTokenException < Struct.new(
1523
+ :message)
1524
+ SENSITIVE = []
1525
+ include Aws::Structure
1526
+ end
1527
+
1528
+ # The request was rejected because the policy document was malformed.
1529
+ # The error message describes the specific error.
1530
+ #
1531
+ # @!attribute [rw] message
1532
+ # @return [String]
1533
+ #
1534
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/MalformedPolicyDocumentException AWS API Documentation
1535
+ #
1536
+ class MalformedPolicyDocumentException < Struct.new(
1537
+ :message)
1538
+ SENSITIVE = []
1539
+ include Aws::Structure
1540
+ end
1541
+
1542
+ # The request was rejected because the total packed size of the session
1543
+ # policies and session tags combined was too large. An Amazon Web
1544
+ # Services conversion compresses the session policy document, session
1545
+ # policy ARNs, and session tags into a packed binary format that has a
1546
+ # separate limit. The error message indicates by percentage how close
1547
+ # the policies and tags are to the upper size limit. For more
1548
+ # information, see [Passing Session Tags in STS][1] in the *IAM User
1549
+ # Guide*.
1550
+ #
1551
+ # You could receive this error even though you meet other defined
1552
+ # session policy and session tag limits. For more information, see [IAM
1553
+ # and STS Entity Character Limits][2] in the *IAM User Guide*.
1554
+ #
1555
+ #
1556
+ #
1557
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html
1558
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-limits-entity-length
1559
+ #
1560
+ # @!attribute [rw] message
1561
+ # @return [String]
1562
+ #
1563
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/PackedPolicyTooLargeException AWS API Documentation
1564
+ #
1565
+ class PackedPolicyTooLargeException < Struct.new(
1566
+ :message)
1567
+ SENSITIVE = []
1568
+ include Aws::Structure
1569
+ end
1570
+
1571
+ # A reference to the IAM managed policy that is passed as a session
1572
+ # policy for a role session or a federated user session.
1573
+ #
1574
+ # @note When making an API call, you may pass PolicyDescriptorType
1575
+ # data as a hash:
1576
+ #
1577
+ # {
1578
+ # arn: "arnType",
1579
+ # }
1580
+ #
1581
+ # @!attribute [rw] arn
1582
+ # The Amazon Resource Name (ARN) of the IAM managed policy to use as a
1583
+ # session policy for the role. For more information about ARNs, see
1584
+ # [Amazon Resource Names (ARNs) and Amazon Web Services Service
1585
+ # Namespaces][1] in the *Amazon Web Services General Reference*.
1586
+ #
1587
+ #
1588
+ #
1589
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
1590
+ # @return [String]
1591
+ #
1592
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/PolicyDescriptorType AWS API Documentation
1593
+ #
1594
+ class PolicyDescriptorType < Struct.new(
1595
+ :arn)
1596
+ SENSITIVE = []
1597
+ include Aws::Structure
1598
+ end
1599
+
1600
+ # STS is not activated in the requested region for the account that is
1601
+ # being asked to generate credentials. The account administrator must
1602
+ # use the IAM console to activate STS in that region. For more
1603
+ # information, see [Activating and Deactivating Amazon Web Services STS
1604
+ # in an Amazon Web Services Region][1] in the *IAM User Guide*.
1605
+ #
1606
+ #
1607
+ #
1608
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html
1609
+ #
1610
+ # @!attribute [rw] message
1611
+ # @return [String]
1612
+ #
1613
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/RegionDisabledException AWS API Documentation
1614
+ #
1615
+ class RegionDisabledException < Struct.new(
1616
+ :message)
1617
+ SENSITIVE = []
1618
+ include Aws::Structure
1619
+ end
1620
+
1621
+ # You can pass custom key-value pair attributes when you assume a role
1622
+ # or federate a user. These are called session tags. You can then use
1623
+ # the session tags to control access to resources. For more information,
1624
+ # see [Tagging Amazon Web Services STS Sessions][1] in the *IAM User
1625
+ # Guide*.
1626
+ #
1627
+ #
1628
+ #
1629
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html
1630
+ #
1631
+ # @note When making an API call, you may pass Tag
1632
+ # data as a hash:
1633
+ #
1634
+ # {
1635
+ # key: "tagKeyType", # required
1636
+ # value: "tagValueType", # required
1637
+ # }
1638
+ #
1639
+ # @!attribute [rw] key
1640
+ # The key for a session tag.
1641
+ #
1642
+ # You can pass up to 50 session tags. The plain text session tag keys
1643
+ # can’t exceed 128 characters. For these and additional limits, see
1644
+ # [IAM and STS Character Limits][1] in the *IAM User Guide*.
1645
+ #
1646
+ #
1647
+ #
1648
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length
1649
+ # @return [String]
1650
+ #
1651
+ # @!attribute [rw] value
1652
+ # The value for a session tag.
1653
+ #
1654
+ # You can pass up to 50 session tags. The plain text session tag
1655
+ # values can’t exceed 256 characters. For these and additional limits,
1656
+ # see [IAM and STS Character Limits][1] in the *IAM User Guide*.
1657
+ #
1658
+ #
1659
+ #
1660
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length
1661
+ # @return [String]
1662
+ #
1663
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/Tag AWS API Documentation
1664
+ #
1665
+ class Tag < Struct.new(
1666
+ :key,
1667
+ :value)
1668
+ SENSITIVE = []
940
1669
  include Aws::Structure
941
1670
  end
942
1671