aws-sdk-core 3.46.2 → 3.126.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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