aws-sdk-core 3.54.2 → 3.126.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +1247 -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 +2 -0
  11. data/lib/aws-sdk-core/assume_role_web_identity_credentials.rb +104 -0
  12. data/lib/aws-sdk-core/async_client_stubs.rb +4 -2
  13. data/lib/aws-sdk-core/binary/decode_handler.rb +2 -0
  14. data/lib/aws-sdk-core/binary/encode_handler.rb +2 -0
  15. data/lib/aws-sdk-core/binary/event_builder.rb +8 -6
  16. data/lib/aws-sdk-core/binary/event_parser.rb +5 -3
  17. data/lib/aws-sdk-core/binary/event_stream_decoder.rb +2 -0
  18. data/lib/aws-sdk-core/binary/event_stream_encoder.rb +2 -0
  19. data/lib/aws-sdk-core/binary.rb +2 -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 +15 -12
  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 +237 -0
  29. data/lib/aws-sdk-core/ecs_credentials.rb +5 -4
  30. data/lib/aws-sdk-core/endpoint_cache.rb +16 -11
  31. data/lib/aws-sdk-core/errors.rb +102 -15
  32. data/lib/aws-sdk-core/event_emitter.rb +2 -0
  33. data/lib/aws-sdk-core/ini_parser.rb +2 -0
  34. data/lib/aws-sdk-core/instance_profile_credentials.rb +153 -39
  35. data/lib/aws-sdk-core/json/builder.rb +2 -0
  36. data/lib/aws-sdk-core/json/error_handler.rb +2 -0
  37. data/lib/aws-sdk-core/json/handler.rb +2 -0
  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 +55 -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 +2 -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 +2 -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 -108
  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 +5 -0
  87. data/lib/aws-sdk-core/plugins/transfer_encoding.rb +4 -4
  88. data/lib/aws-sdk-core/plugins/user_agent.rb +6 -8
  89. data/lib/aws-sdk-core/process_credentials.rb +8 -7
  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 +2 -0
  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 -122
  110. data/lib/aws-sdk-core/shared_credentials.rb +9 -1
  111. data/lib/aws-sdk-core/sso_credentials.rb +131 -0
  112. data/lib/aws-sdk-core/structure.rb +13 -2
  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 +33 -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 +2 -0
  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 +2 -0
  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 +3 -1
  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 +22 -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 +970 -414
  154. data/lib/aws-sdk-sts/client_api.rb +41 -1
  155. data/lib/aws-sdk-sts/customizations.rb +4 -0
  156. data/lib/aws-sdk-sts/errors.rb +33 -9
  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 +632 -236
  161. data/lib/aws-sdk-sts.rb +16 -6
  162. data/lib/seahorse/client/async_base.rb +2 -0
  163. data/lib/seahorse/client/async_response.rb +2 -0
  164. data/lib/seahorse/client/base.rb +6 -1
  165. data/lib/seahorse/client/block_io.rb +6 -2
  166. data/lib/seahorse/client/configuration.rb +6 -0
  167. data/lib/seahorse/client/events.rb +2 -0
  168. data/lib/seahorse/client/h2/connection.rb +31 -25
  169. data/lib/seahorse/client/h2/handler.rb +6 -5
  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 +2 -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 +5 -3
  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 +2 -0
  185. data/lib/seahorse/client/plugin.rb +9 -6
  186. data/lib/seahorse/client/plugin_list.rb +2 -0
  187. data/lib/seahorse/client/plugins/content_length.rb +13 -7
  188. data/lib/seahorse/client/plugins/endpoint.rb +4 -2
  189. data/lib/seahorse/client/plugins/h2.rb +6 -1
  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 +6 -0
  200. data/lib/seahorse/model/authorizer.rb +2 -0
  201. data/lib/seahorse/model/operation.rb +5 -0
  202. data/lib/seahorse/model/shapes.rb +27 -0
  203. data/lib/seahorse/util.rb +8 -1
  204. data/lib/seahorse/version.rb +2 -0
  205. data/lib/seahorse.rb +3 -0
  206. metadata +43 -11
@@ -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
 
@@ -21,9 +23,17 @@ module Aws::STS
21
23
  # ],
22
24
  # policy: "sessionPolicyDocumentType",
23
25
  # duration_seconds: 1,
26
+ # tags: [
27
+ # {
28
+ # key: "tagKeyType", # required
29
+ # value: "tagValueType", # required
30
+ # },
31
+ # ],
32
+ # transitive_tag_keys: ["tagKeyType"],
24
33
  # external_id: "externalIdType",
25
34
  # serial_number: "serialNumberType",
26
35
  # token_code: "tokenCodeType",
36
+ # source_identity: "sourceIdentityType",
27
37
  # }
28
38
  #
29
39
  # @!attribute [rw] role_arn
@@ -40,7 +50,7 @@ module Aws::STS
40
50
  # role session name is also used in the ARN of the assumed role
41
51
  # principal. This means that subsequent cross-account API requests
42
52
  # that use the temporary security credentials will expose the role
43
- # session name to the external account in their AWS CloudTrail logs.
53
+ # session name to the external account in their CloudTrail logs.
44
54
  #
45
55
  # The regex used to validate this parameter is a string of characters
46
56
  # consisting of upper- and lower-case alphanumeric characters with no
@@ -54,18 +64,18 @@ module Aws::STS
54
64
  # in the same account as the role.
55
65
  #
56
66
  # This parameter is optional. You can provide up to 10 managed policy
57
- # ARNs. However, the plain text that you use for both inline and
58
- # managed session policies shouldn't exceed 2048 characters. For more
59
- # information about ARNs, see [Amazon Resource Names (ARNs) and AWS
60
- # Service Namespaces](general/latest/gr/aws-arns-and-namespaces.html)
61
- # in the AWS General Reference.
62
- #
63
- # <note markdown="1"> The characters in this parameter count towards the 2048 character
64
- # session policy guideline. However, an AWS conversion compresses the
65
- # session policies into a packed binary format that has a separate
66
- # limit. This is the enforced limit. The `PackedPolicySize` response
67
- # element indicates by percentage how close the policy is to the upper
68
- # size limit.
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.
69
79
  #
70
80
  # </note>
71
81
  #
@@ -73,15 +83,16 @@ module Aws::STS
73
83
  # credentials. The resulting session's permissions are the
74
84
  # intersection of the role's identity-based policy and the session
75
85
  # policies. You can use the role's temporary credentials in
76
- # subsequent AWS API calls to access resources in the account that
77
- # owns the role. You cannot use session policies to grant more
78
- # permissions than those allowed by the identity-based policy of the
79
- # role that is being assumed. For more information, see [Session
80
- # Policies][1] in the *IAM User Guide*.
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*.
81
91
  #
82
92
  #
83
93
  #
84
- # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
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
85
96
  # @return [Array<Types::PolicyDescriptorType>]
86
97
  #
87
98
  # @!attribute [rw] policy
@@ -92,25 +103,25 @@ module Aws::STS
92
103
  # returns new temporary credentials. The resulting session's
93
104
  # permissions are the intersection of the role's identity-based
94
105
  # policy and the session policies. You can use the role's temporary
95
- # credentials in subsequent AWS API calls to access resources in the
96
- # account that owns the role. You cannot use session policies to grant
97
- # more permissions than those allowed by the identity-based policy of
98
- # the role that is being assumed. For more information, see [Session
99
- # Policies][1] in the *IAM User Guide*.
100
- #
101
- # The plain text that you use for both inline and managed session
102
- # policies shouldn't exceed 2048 characters. The JSON policy
103
- # characters can be any ASCII character from the space character to
104
- # the end of the valid character list (\\u0020 through \\u00FF). It
105
- # can also include the tab (\\u0009), linefeed (\\u000A), and carriage
106
- # return (\\u000D) characters.
107
- #
108
- # <note markdown="1"> The characters in this parameter count towards the 2048 character
109
- # session policy guideline. However, an AWS conversion compresses the
110
- # session policies into a packed binary format that has a separate
111
- # limit. This is the enforced limit. The `PackedPolicySize` response
112
- # element indicates by percentage how close the policy is to the upper
113
- # size limit.
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
116
+ # include the tab (\\u0009), linefeed (\\u000A), and carriage return
117
+ # (\\u000D) characters.
118
+ #
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.
114
125
  #
115
126
  # </note>
116
127
  #
@@ -120,15 +131,26 @@ module Aws::STS
120
131
  # @return [String]
121
132
  #
122
133
  # @!attribute [rw] duration_seconds
123
- # The duration, in seconds, of the role session. The value can range
124
- # from 900 seconds (15 minutes) up to the maximum session duration
125
- # setting for the role. This setting can have a value from 1 hour to
126
- # 12 hours. If you specify a value higher than this setting, the
127
- # operation fails. For example, if you specify a session duration of
128
- # 12 hours, but your administrator set the maximum session duration to
129
- # 6 hours, your operation fails. To learn how to view the maximum
130
- # value for your role, see [View the Maximum Session Duration Setting
131
- # 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*.
132
154
  #
133
155
  # By default, the value is set to `3600` seconds.
134
156
  #
@@ -137,8 +159,8 @@ module Aws::STS
137
159
  # credentials. The request to the federation endpoint for a console
138
160
  # sign-in token takes a `SessionDuration` parameter that specifies the
139
161
  # maximum length of the console session. For more information, see
140
- # [Creating a URL that Enables Federated Users to Access the AWS
141
- # 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*.
142
164
  #
143
165
  # </note>
144
166
  #
@@ -148,6 +170,70 @@ module Aws::STS
148
170
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html
149
171
  # @return [Integer]
150
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
+ #
151
237
  # @!attribute [rw] external_id
152
238
  # A unique identifier that might be required when you assume a role in
153
239
  # another account. If the administrator of the account to which the
@@ -159,8 +245,8 @@ module Aws::STS
159
245
  # the administrator of the trusted account. That way, only someone
160
246
  # with the ID can assume the role, rather than everyone in the
161
247
  # account. For more information about the external ID, see [How to Use
162
- # an External ID When Granting Access to Your AWS Resources to a Third
163
- # Party][1] in the *IAM User Guide*.
248
+ # an External ID When Granting Access to Your Amazon Web Services
249
+ # Resources to a Third Party][1] in the *IAM User Guide*.
164
250
  #
165
251
  # The regex used to validate this parameter is a string of characters
166
252
  # consisting of upper- and lower-case alphanumeric characters with no
@@ -189,15 +275,41 @@ module Aws::STS
189
275
  #
190
276
  # @!attribute [rw] token_code
191
277
  # The value provided by the MFA device, if the trust policy of the
192
- # role being assumed requires MFA (that is, if the policy includes a
193
- # condition that tests for MFA). If the role being assumed requires
194
- # 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
195
281
  # `AssumeRole` call returns an "access denied" error.
196
282
  #
197
283
  # The format for this parameter, as described by its regex pattern, is
198
284
  # a sequence of six numeric digits.
199
285
  # @return [String]
200
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
+ #
201
313
  # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleRequest AWS API Documentation
202
314
  #
203
315
  class AssumeRoleRequest < Struct.new(
@@ -206,14 +318,19 @@ module Aws::STS
206
318
  :policy_arns,
207
319
  :policy,
208
320
  :duration_seconds,
321
+ :tags,
322
+ :transitive_tag_keys,
209
323
  :external_id,
210
324
  :serial_number,
211
- :token_code)
325
+ :token_code,
326
+ :source_identity)
327
+ SENSITIVE = []
212
328
  include Aws::Structure
213
329
  end
214
330
 
215
331
  # Contains the response to a successful AssumeRole request, including
216
- # 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.
217
334
  #
218
335
  # @!attribute [rw] credentials
219
336
  # The temporary security credentials, which include an access key ID,
@@ -236,17 +353,44 @@ module Aws::STS
236
353
  # @return [Types::AssumedRoleUser]
237
354
  #
238
355
  # @!attribute [rw] packed_policy_size
239
- # A percentage value that indicates the size of the policy in packed
240
- # form. The service rejects any policy with a packed size greater than
241
- # 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.
242
360
  # @return [Integer]
243
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
+ #
244
386
  # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleResponse AWS API Documentation
245
387
  #
246
388
  class AssumeRoleResponse < Struct.new(
247
389
  :credentials,
248
390
  :assumed_role_user,
249
- :packed_policy_size)
391
+ :packed_policy_size,
392
+ :source_identity)
393
+ SENSITIVE = []
250
394
  include Aws::Structure
251
395
  end
252
396
 
@@ -277,8 +421,7 @@ module Aws::STS
277
421
  # @return [String]
278
422
  #
279
423
  # @!attribute [rw] saml_assertion
280
- # The base-64 encoded SAML authentication response provided by the
281
- # IdP.
424
+ # The base64 encoded SAML authentication response provided by the IdP.
282
425
  #
283
426
  # For more information, see [Configuring a Relying Party and Adding
284
427
  # Claims][1] in the *IAM User Guide*.
@@ -294,18 +437,18 @@ module Aws::STS
294
437
  # in the same account as the role.
295
438
  #
296
439
  # This parameter is optional. You can provide up to 10 managed policy
297
- # ARNs. However, the plain text that you use for both inline and
298
- # managed session policies shouldn't exceed 2048 characters. For more
299
- # information about ARNs, see [Amazon Resource Names (ARNs) and AWS
300
- # Service Namespaces](general/latest/gr/aws-arns-and-namespaces.html)
301
- # in the AWS General Reference.
302
- #
303
- # <note markdown="1"> The characters in this parameter count towards the 2048 character
304
- # session policy guideline. However, an AWS conversion compresses the
305
- # session policies into a packed binary format that has a separate
306
- # limit. This is the enforced limit. The `PackedPolicySize` response
307
- # element indicates by percentage how close the policy is to the upper
308
- # size limit.
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.
309
452
  #
310
453
  # </note>
311
454
  #
@@ -313,15 +456,16 @@ module Aws::STS
313
456
  # credentials. The resulting session's permissions are the
314
457
  # intersection of the role's identity-based policy and the session
315
458
  # policies. You can use the role's temporary credentials in
316
- # subsequent AWS API calls to access resources in the account that
317
- # owns the role. You cannot use session policies to grant more
318
- # permissions than those allowed by the identity-based policy of the
319
- # role that is being assumed. For more information, see [Session
320
- # Policies][1] in the *IAM User Guide*.
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*.
321
464
  #
322
465
  #
323
466
  #
324
- # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
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
325
469
  # @return [Array<Types::PolicyDescriptorType>]
326
470
  #
327
471
  # @!attribute [rw] policy
@@ -332,25 +476,25 @@ module Aws::STS
332
476
  # returns new temporary credentials. The resulting session's
333
477
  # permissions are the intersection of the role's identity-based
334
478
  # policy and the session policies. You can use the role's temporary
335
- # credentials in subsequent AWS API calls to access resources in the
336
- # account that owns the role. You cannot use session policies to grant
337
- # more permissions than those allowed by the identity-based policy of
338
- # the role that is being assumed. For more information, see [Session
339
- # Policies][1] in the *IAM User Guide*.
340
- #
341
- # The plain text that you use for both inline and managed session
342
- # policies shouldn't exceed 2048 characters. The JSON policy
343
- # characters can be any ASCII character from the space character to
344
- # the end of the valid character list (\\u0020 through \\u00FF). It
345
- # can also include the tab (\\u0009), linefeed (\\u000A), and carriage
346
- # return (\\u000D) characters.
347
- #
348
- # <note markdown="1"> The characters in this parameter count towards the 2048 character
349
- # session policy guideline. However, an AWS conversion compresses the
350
- # session policies into a packed binary format that has a separate
351
- # limit. This is the enforced limit. The `PackedPolicySize` response
352
- # element indicates by percentage how close the policy is to the upper
353
- # size limit.
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
489
+ # include the tab (\\u0009), linefeed (\\u000A), and carriage return
490
+ # (\\u000D) characters.
491
+ #
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.
354
498
  #
355
499
  # </note>
356
500
  #
@@ -381,8 +525,8 @@ module Aws::STS
381
525
  # credentials. The request to the federation endpoint for a console
382
526
  # sign-in token takes a `SessionDuration` parameter that specifies the
383
527
  # maximum length of the console session. For more information, see
384
- # [Creating a URL that Enables Federated Users to Access the AWS
385
- # 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*.
386
530
  #
387
531
  # </note>
388
532
  #
@@ -401,12 +545,13 @@ module Aws::STS
401
545
  :policy_arns,
402
546
  :policy,
403
547
  :duration_seconds)
548
+ SENSITIVE = []
404
549
  include Aws::Structure
405
550
  end
406
551
 
407
552
  # Contains the response to a successful AssumeRoleWithSAML request,
408
- # including temporary AWS credentials that can be used to make AWS
409
- # requests.
553
+ # including temporary Amazon Web Services credentials that can be used
554
+ # to make Amazon Web Services requests.
410
555
  #
411
556
  # @!attribute [rw] credentials
412
557
  # The temporary security credentials, which include an access key ID,
@@ -425,9 +570,10 @@ module Aws::STS
425
570
  # @return [Types::AssumedRoleUser]
426
571
  #
427
572
  # @!attribute [rw] packed_policy_size
428
- # A percentage value that indicates the size of the policy in packed
429
- # form. The service rejects any policy with a packed size greater than
430
- # 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.
431
577
  # @return [Integer]
432
578
  #
433
579
  # @!attribute [rw] subject
@@ -457,11 +603,17 @@ module Aws::STS
457
603
  # @return [String]
458
604
  #
459
605
  # @!attribute [rw] name_qualifier
460
- # A hash value based on the concatenation of the `Issuer` response
461
- # value, the AWS account ID, and the friendly name (the last part of
462
- # the ARN) of the SAML provider in IAM. The combination of
463
- # `NameQualifier` and `Subject` can be used to uniquely identify a
464
- # 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.
465
617
  #
466
618
  # The following pseudocode shows how the hash value is calculated:
467
619
  #
@@ -469,6 +621,34 @@ module Aws::STS
469
621
  # "/MySAMLIdP" ) )`
470
622
  # @return [String]
471
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
+ #
472
652
  # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAMLResponse AWS API Documentation
473
653
  #
474
654
  class AssumeRoleWithSAMLResponse < Struct.new(
@@ -479,7 +659,9 @@ module Aws::STS
479
659
  :subject_type,
480
660
  :issuer,
481
661
  :audience,
482
- :name_qualifier)
662
+ :name_qualifier,
663
+ :source_identity)
664
+ SENSITIVE = []
483
665
  include Aws::Structure
484
666
  end
485
667
 
@@ -545,18 +727,18 @@ module Aws::STS
545
727
  # in the same account as the role.
546
728
  #
547
729
  # This parameter is optional. You can provide up to 10 managed policy
548
- # ARNs. However, the plain text that you use for both inline and
549
- # managed session policies shouldn't exceed 2048 characters. For more
550
- # information about ARNs, see [Amazon Resource Names (ARNs) and AWS
551
- # Service Namespaces](general/latest/gr/aws-arns-and-namespaces.html)
552
- # in the AWS General Reference.
553
- #
554
- # <note markdown="1"> The characters in this parameter count towards the 2048 character
555
- # session policy guideline. However, an AWS conversion compresses the
556
- # session policies into a packed binary format that has a separate
557
- # limit. This is the enforced limit. The `PackedPolicySize` response
558
- # element indicates by percentage how close the policy is to the upper
559
- # size limit.
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.
560
742
  #
561
743
  # </note>
562
744
  #
@@ -564,15 +746,16 @@ module Aws::STS
564
746
  # credentials. The resulting session's permissions are the
565
747
  # intersection of the role's identity-based policy and the session
566
748
  # policies. You can use the role's temporary credentials in
567
- # subsequent AWS API calls to access resources in the account that
568
- # owns the role. You cannot use session policies to grant more
569
- # permissions than those allowed by the identity-based policy of the
570
- # role that is being assumed. For more information, see [Session
571
- # Policies][1] in the *IAM User Guide*.
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*.
572
754
  #
573
755
  #
574
756
  #
575
- # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
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
576
759
  # @return [Array<Types::PolicyDescriptorType>]
577
760
  #
578
761
  # @!attribute [rw] policy
@@ -583,25 +766,25 @@ module Aws::STS
583
766
  # returns new temporary credentials. The resulting session's
584
767
  # permissions are the intersection of the role's identity-based
585
768
  # policy and the session policies. You can use the role's temporary
586
- # credentials in subsequent AWS API calls to access resources in the
587
- # account that owns the role. You cannot use session policies to grant
588
- # more permissions than those allowed by the identity-based policy of
589
- # the role that is being assumed. For more information, see [Session
590
- # Policies][1] in the *IAM User Guide*.
591
- #
592
- # The plain text that you use for both inline and managed session
593
- # policies shouldn't exceed 2048 characters. The JSON policy
594
- # characters can be any ASCII character from the space character to
595
- # the end of the valid character list (\\u0020 through \\u00FF). It
596
- # can also include the tab (\\u0009), linefeed (\\u000A), and carriage
597
- # return (\\u000D) characters.
598
- #
599
- # <note markdown="1"> The characters in this parameter count towards the 2048 character
600
- # session policy guideline. However, an AWS conversion compresses the
601
- # session policies into a packed binary format that has a separate
602
- # limit. This is the enforced limit. The `PackedPolicySize` response
603
- # element indicates by percentage how close the policy is to the upper
604
- # size limit.
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
779
+ # include the tab (\\u0009), linefeed (\\u000A), and carriage return
780
+ # (\\u000D) characters.
781
+ #
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.
605
788
  #
606
789
  # </note>
607
790
  #
@@ -628,8 +811,8 @@ module Aws::STS
628
811
  # credentials. The request to the federation endpoint for a console
629
812
  # sign-in token takes a `SessionDuration` parameter that specifies the
630
813
  # maximum length of the console session. For more information, see
631
- # [Creating a URL that Enables Federated Users to Access the AWS
632
- # 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*.
633
816
  #
634
817
  # </note>
635
818
  #
@@ -649,12 +832,13 @@ module Aws::STS
649
832
  :policy_arns,
650
833
  :policy,
651
834
  :duration_seconds)
835
+ SENSITIVE = []
652
836
  include Aws::Structure
653
837
  end
654
838
 
655
839
  # Contains the response to a successful AssumeRoleWithWebIdentity
656
- # request, including temporary AWS credentials that can be used to make
657
- # AWS requests.
840
+ # request, including temporary Amazon Web Services credentials that can
841
+ # be used to make Amazon Web Services requests.
658
842
  #
659
843
  # @!attribute [rw] credentials
660
844
  # The temporary security credentials, which include an access key ID,
@@ -687,9 +871,10 @@ module Aws::STS
687
871
  # @return [Types::AssumedRoleUser]
688
872
  #
689
873
  # @!attribute [rw] packed_policy_size
690
- # A percentage value that indicates the size of the policy in packed
691
- # form. The service rejects any policy with a packed size greater than
692
- # 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.
693
878
  # @return [Integer]
694
879
  #
695
880
  # @!attribute [rw] provider
@@ -706,6 +891,38 @@ module Aws::STS
706
891
  # application that requested the web identity token.
707
892
  # @return [String]
708
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
+ #
709
926
  # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentityResponse AWS API Documentation
710
927
  #
711
928
  class AssumeRoleWithWebIdentityResponse < Struct.new(
@@ -714,7 +931,9 @@ module Aws::STS
714
931
  :assumed_role_user,
715
932
  :packed_policy_size,
716
933
  :provider,
717
- :audience)
934
+ :audience,
935
+ :source_identity)
936
+ SENSITIVE = []
718
937
  include Aws::Structure
719
938
  end
720
939
 
@@ -724,13 +943,14 @@ module Aws::STS
724
943
  # @!attribute [rw] assumed_role_id
725
944
  # A unique identifier that contains the role ID and the role session
726
945
  # name of the role that is being assumed. The role ID is generated by
727
- # AWS when the role is created.
946
+ # Amazon Web Services when the role is created.
728
947
  # @return [String]
729
948
  #
730
949
  # @!attribute [rw] arn
731
950
  # The ARN of the temporary security credentials that are returned from
732
951
  # the AssumeRole action. For more information about ARNs and how to
733
- # 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*.
734
954
  #
735
955
  #
736
956
  #
@@ -742,10 +962,11 @@ module Aws::STS
742
962
  class AssumedRoleUser < Struct.new(
743
963
  :assumed_role_id,
744
964
  :arn)
965
+ SENSITIVE = []
745
966
  include Aws::Structure
746
967
  end
747
968
 
748
- # AWS credentials for API authentication.
969
+ # Amazon Web Services credentials for API authentication.
749
970
  #
750
971
  # @!attribute [rw] access_key_id
751
972
  # The access key ID that identifies the temporary security
@@ -772,6 +993,7 @@ module Aws::STS
772
993
  :secret_access_key,
773
994
  :session_token,
774
995
  :expiration)
996
+ SENSITIVE = []
775
997
  include Aws::Structure
776
998
  end
777
999
 
@@ -790,21 +1012,23 @@ module Aws::STS
790
1012
  #
791
1013
  class DecodeAuthorizationMessageRequest < Struct.new(
792
1014
  :encoded_message)
1015
+ SENSITIVE = []
793
1016
  include Aws::Structure
794
1017
  end
795
1018
 
796
1019
  # A document that contains additional information about the
797
1020
  # authorization status of a request from an encoded message that is
798
- # returned in response to an AWS request.
1021
+ # returned in response to an Amazon Web Services request.
799
1022
  #
800
1023
  # @!attribute [rw] decoded_message
801
- # An XML document that contains the decoded message.
1024
+ # The API returns a response with the decoded message.
802
1025
  # @return [String]
803
1026
  #
804
1027
  # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/DecodeAuthorizationMessageResponse AWS API Documentation
805
1028
  #
806
1029
  class DecodeAuthorizationMessageResponse < Struct.new(
807
1030
  :decoded_message)
1031
+ SENSITIVE = []
808
1032
  include Aws::Structure
809
1033
  end
810
1034
 
@@ -819,6 +1043,7 @@ module Aws::STS
819
1043
  #
820
1044
  class ExpiredTokenException < Struct.new(
821
1045
  :message)
1046
+ SENSITIVE = []
822
1047
  include Aws::Structure
823
1048
  end
824
1049
 
@@ -833,7 +1058,7 @@ module Aws::STS
833
1058
  # @!attribute [rw] arn
834
1059
  # The ARN that specifies the federated user that is associated with
835
1060
  # the credentials. For more information about ARNs and how to use them
836
- # in policies, see [IAM Identifiers][1] in *Using IAM*.
1061
+ # in policies, see [IAM Identifiers][1] in the *IAM User Guide*.
837
1062
  #
838
1063
  #
839
1064
  #
@@ -845,6 +1070,42 @@ module Aws::STS
845
1070
  class FederatedUser < Struct.new(
846
1071
  :federated_user_id,
847
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 = []
848
1109
  include Aws::Structure
849
1110
  end
850
1111
 
@@ -870,12 +1131,12 @@ module Aws::STS
870
1131
  # @return [String]
871
1132
  #
872
1133
  # @!attribute [rw] account
873
- # The AWS account ID number of the account that owns or contains the
874
- # calling entity.
1134
+ # The Amazon Web Services account ID number of the account that owns
1135
+ # or contains the calling entity.
875
1136
  # @return [String]
876
1137
  #
877
1138
  # @!attribute [rw] arn
878
- # The AWS ARN associated with the calling entity.
1139
+ # The Amazon Web Services ARN associated with the calling entity.
879
1140
  # @return [String]
880
1141
  #
881
1142
  # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetCallerIdentityResponse AWS API Documentation
@@ -884,6 +1145,7 @@ module Aws::STS
884
1145
  :user_id,
885
1146
  :account,
886
1147
  :arn)
1148
+ SENSITIVE = []
887
1149
  include Aws::Structure
888
1150
  end
889
1151
 
@@ -899,6 +1161,12 @@ module Aws::STS
899
1161
  # },
900
1162
  # ],
901
1163
  # duration_seconds: 1,
1164
+ # tags: [
1165
+ # {
1166
+ # key: "tagKeyType", # required
1167
+ # value: "tagValueType", # required
1168
+ # },
1169
+ # ],
902
1170
  # }
903
1171
  #
904
1172
  # @!attribute [rw] name
@@ -924,10 +1192,7 @@ module Aws::STS
924
1192
  #
925
1193
  # This parameter is optional. However, if you do not pass any session
926
1194
  # policies, then the resulting federated user session has no
927
- # permissions. The only exception is when the credentials are used to
928
- # access a resource that has a resource-based policy that specifically
929
- # references the federated user session in the `Principal` element of
930
- # the policy.
1195
+ # permissions.
931
1196
  #
932
1197
  # When you pass session policies, the session permissions are the
933
1198
  # intersection of the IAM user policies and the session policies that
@@ -937,19 +1202,26 @@ module Aws::STS
937
1202
  # the IAM user. For more information, see [Session Policies][1] in the
938
1203
  # *IAM User Guide*.
939
1204
  #
940
- # The plain text that you use for both inline and managed session
941
- # policies shouldn't exceed 2048 characters. The JSON policy
942
- # characters can be any ASCII character from the space character to
943
- # the end of the valid character list (\\u0020 through \\u00FF). It
944
- # can also include the tab (\\u0009), linefeed (\\u000A), and carriage
945
- # return (\\u000D) characters.
946
- #
947
- # <note markdown="1"> The characters in this parameter count towards the 2048 character
948
- # session policy guideline. However, an AWS conversion compresses the
949
- # session policies into a packed binary format that has a separate
950
- # limit. This is the enforced limit. The `PackedPolicySize` response
951
- # element indicates by percentage how close the policy is to the upper
952
- # size limit.
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
1216
+ # include the tab (\\u0009), linefeed (\\u000A), and carriage return
1217
+ # (\\u000D) characters.
1218
+ #
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.
953
1225
  #
954
1226
  # </note>
955
1227
  #
@@ -967,20 +1239,16 @@ module Aws::STS
967
1239
  # You must pass an inline or managed [session policy][1] to this
968
1240
  # operation. You can pass a single JSON policy document to use as an
969
1241
  # inline session policy. You can also specify up to 10 managed
970
- # policies to use as managed session policies. The plain text that you
971
- # use for both inline and managed session policies shouldn't exceed
972
- # 2048 characters. You can provide up to 10 managed policy ARNs. For
973
- # more information about ARNs, see [Amazon Resource Names (ARNs) and
974
- # AWS Service
975
- # Namespaces](general/latest/gr/aws-arns-and-namespaces.html) in the
976
- # AWS General Reference.
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.
977
1248
  #
978
1249
  # This parameter is optional. However, if you do not pass any session
979
1250
  # policies, then the resulting federated user session has no
980
- # permissions. The only exception is when the credentials are used to
981
- # access a resource that has a resource-based policy that specifically
982
- # references the federated user session in the `Principal` element of
983
- # the policy.
1251
+ # permissions.
984
1252
  #
985
1253
  # When you pass session policies, the session permissions are the
986
1254
  # intersection of the IAM user policies and the session policies that
@@ -990,43 +1258,91 @@ module Aws::STS
990
1258
  # the IAM user. For more information, see [Session Policies][1] in the
991
1259
  # *IAM User Guide*.
992
1260
  #
993
- # <note markdown="1"> The characters in this parameter count towards the 2048 character
994
- # session policy guideline. However, an AWS conversion compresses the
995
- # session policies into a packed binary format that has a separate
996
- # limit. This is the enforced limit. The `PackedPolicySize` response
997
- # element indicates by percentage how close the policy is to the upper
998
- # size limit.
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.
999
1274
  #
1000
1275
  # </note>
1001
1276
  #
1002
1277
  #
1003
1278
  #
1004
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
1005
1281
  # @return [Array<Types::PolicyDescriptorType>]
1006
1282
  #
1007
1283
  # @!attribute [rw] duration_seconds
1008
1284
  # The duration, in seconds, that the session should last. Acceptable
1009
1285
  # durations for federation sessions range from 900 seconds (15
1010
1286
  # minutes) to 129,600 seconds (36 hours), with 43,200 seconds (12
1011
- # hours) as the default. Sessions obtained using AWS account root user
1012
- # credentials are restricted to a maximum of 3,600 seconds (one hour).
1013
- # If the specified duration is longer than one hour, the session
1014
- # obtained by using root user credentials defaults to one hour.
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.
1015
1292
  # @return [Integer]
1016
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
+ #
1017
1331
  # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationTokenRequest AWS API Documentation
1018
1332
  #
1019
1333
  class GetFederationTokenRequest < Struct.new(
1020
1334
  :name,
1021
1335
  :policy,
1022
1336
  :policy_arns,
1023
- :duration_seconds)
1337
+ :duration_seconds,
1338
+ :tags)
1339
+ SENSITIVE = []
1024
1340
  include Aws::Structure
1025
1341
  end
1026
1342
 
1027
1343
  # Contains the response to a successful GetFederationToken request,
1028
- # including temporary AWS credentials that can be used to make AWS
1029
- # requests.
1344
+ # including temporary Amazon Web Services credentials that can be used
1345
+ # to make Amazon Web Services requests.
1030
1346
  #
1031
1347
  # @!attribute [rw] credentials
1032
1348
  # The temporary security credentials, which include an access key ID,
@@ -1047,9 +1363,10 @@ module Aws::STS
1047
1363
  # @return [Types::FederatedUser]
1048
1364
  #
1049
1365
  # @!attribute [rw] packed_policy_size
1050
- # A percentage value indicating the size of the policy in packed form.
1051
- # The service rejects policies for which the packed size is greater
1052
- # 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.
1053
1370
  # @return [Integer]
1054
1371
  #
1055
1372
  # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationTokenResponse AWS API Documentation
@@ -1058,6 +1375,7 @@ module Aws::STS
1058
1375
  :credentials,
1059
1376
  :federated_user,
1060
1377
  :packed_policy_size)
1378
+ SENSITIVE = []
1061
1379
  include Aws::Structure
1062
1380
  end
1063
1381
 
@@ -1074,10 +1392,10 @@ module Aws::STS
1074
1392
  # The duration, in seconds, that the credentials should remain valid.
1075
1393
  # Acceptable durations for IAM user sessions range from 900 seconds
1076
1394
  # (15 minutes) to 129,600 seconds (36 hours), with 43,200 seconds (12
1077
- # hours) as the default. Sessions for AWS account owners are
1078
- # restricted to a maximum of 3,600 seconds (one hour). If the duration
1079
- # is longer than one hour, the session for AWS account owners defaults
1080
- # to one hour.
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.
1081
1399
  # @return [Integer]
1082
1400
  #
1083
1401
  # @!attribute [rw] serial_number
@@ -1087,8 +1405,8 @@ module Aws::STS
1087
1405
  # The value is either the serial number for a hardware device (such as
1088
1406
  # `GAHT12345678`) or an Amazon Resource Name (ARN) for a virtual
1089
1407
  # device (such as `arn:aws:iam::123456789012:mfa/user`). You can find
1090
- # the device for an IAM user by going to the AWS Management Console
1091
- # 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.
1092
1410
  #
1093
1411
  # The regex used to validate this parameter is a string of characters
1094
1412
  # consisting of upper- and lower-case alphanumeric characters with no
@@ -1114,12 +1432,13 @@ module Aws::STS
1114
1432
  :duration_seconds,
1115
1433
  :serial_number,
1116
1434
  :token_code)
1435
+ SENSITIVE = []
1117
1436
  include Aws::Structure
1118
1437
  end
1119
1438
 
1120
1439
  # Contains the response to a successful GetSessionToken request,
1121
- # including temporary AWS credentials that can be used to make AWS
1122
- # requests.
1440
+ # including temporary Amazon Web Services credentials that can be used
1441
+ # to make Amazon Web Services requests.
1123
1442
  #
1124
1443
  # @!attribute [rw] credentials
1125
1444
  # The temporary security credentials, which include an access key ID,
@@ -1136,15 +1455,16 @@ module Aws::STS
1136
1455
  #
1137
1456
  class GetSessionTokenResponse < Struct.new(
1138
1457
  :credentials)
1458
+ SENSITIVE = []
1139
1459
  include Aws::Structure
1140
1460
  end
1141
1461
 
1142
- # The request could not be fulfilled because the non-AWS identity
1143
- # provider (IDP) that was asked to verify the incoming identity token
1144
- # could not be reached. This is often a transient error caused by
1145
- # network conditions. Retry the request a limited number of times so
1146
- # that you don't exceed the request rate. If the error persists, the
1147
- # non-AWS identity provider might be down or not responding.
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.
1148
1468
  #
1149
1469
  # @!attribute [rw] message
1150
1470
  # @return [String]
@@ -1153,6 +1473,7 @@ module Aws::STS
1153
1473
  #
1154
1474
  class IDPCommunicationErrorException < Struct.new(
1155
1475
  :message)
1476
+ SENSITIVE = []
1156
1477
  include Aws::Structure
1157
1478
  end
1158
1479
 
@@ -1170,6 +1491,7 @@ module Aws::STS
1170
1491
  #
1171
1492
  class IDPRejectedClaimException < Struct.new(
1172
1493
  :message)
1494
+ SENSITIVE = []
1173
1495
  include Aws::Structure
1174
1496
  end
1175
1497
 
@@ -1184,12 +1506,13 @@ module Aws::STS
1184
1506
  #
1185
1507
  class InvalidAuthorizationMessageException < Struct.new(
1186
1508
  :message)
1509
+ SENSITIVE = []
1187
1510
  include Aws::Structure
1188
1511
  end
1189
1512
 
1190
- # The web identity token that was passed could not be validated by AWS.
1191
- # Get a new identity token from the identity provider and then retry the
1192
- # request.
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.
1193
1516
  #
1194
1517
  # @!attribute [rw] message
1195
1518
  # @return [String]
@@ -1198,6 +1521,7 @@ module Aws::STS
1198
1521
  #
1199
1522
  class InvalidIdentityTokenException < Struct.new(
1200
1523
  :message)
1524
+ SENSITIVE = []
1201
1525
  include Aws::Structure
1202
1526
  end
1203
1527
 
@@ -1211,12 +1535,27 @@ module Aws::STS
1211
1535
  #
1212
1536
  class MalformedPolicyDocumentException < Struct.new(
1213
1537
  :message)
1538
+ SENSITIVE = []
1214
1539
  include Aws::Structure
1215
1540
  end
1216
1541
 
1217
- # The request was rejected because the policy document was too large.
1218
- # The error message describes how big the policy document is, in packed
1219
- # form, as a percentage of what the API allows.
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
1220
1559
  #
1221
1560
  # @!attribute [rw] message
1222
1561
  # @return [String]
@@ -1225,6 +1564,7 @@ module Aws::STS
1225
1564
  #
1226
1565
  class PackedPolicyTooLargeException < Struct.new(
1227
1566
  :message)
1567
+ SENSITIVE = []
1228
1568
  include Aws::Structure
1229
1569
  end
1230
1570
 
@@ -1241,23 +1581,27 @@ module Aws::STS
1241
1581
  # @!attribute [rw] arn
1242
1582
  # The Amazon Resource Name (ARN) of the IAM managed policy to use as a
1243
1583
  # session policy for the role. For more information about ARNs, see
1244
- # [Amazon Resource Names (ARNs) and AWS Service
1245
- # Namespaces](general/latest/gr/aws-arns-and-namespaces.html) in the
1246
- # *AWS General Reference*.
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
1247
1590
  # @return [String]
1248
1591
  #
1249
1592
  # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/PolicyDescriptorType AWS API Documentation
1250
1593
  #
1251
1594
  class PolicyDescriptorType < Struct.new(
1252
1595
  :arn)
1596
+ SENSITIVE = []
1253
1597
  include Aws::Structure
1254
1598
  end
1255
1599
 
1256
1600
  # STS is not activated in the requested region for the account that is
1257
1601
  # being asked to generate credentials. The account administrator must
1258
1602
  # use the IAM console to activate STS in that region. For more
1259
- # information, see [Activating and Deactivating AWS STS in an AWS
1260
- # Region][1] in the *IAM User Guide*.
1603
+ # information, see [Activating and Deactivating Amazon Web Services STS
1604
+ # in an Amazon Web Services Region][1] in the *IAM User Guide*.
1261
1605
  #
1262
1606
  #
1263
1607
  #
@@ -1270,6 +1614,58 @@ module Aws::STS
1270
1614
  #
1271
1615
  class RegionDisabledException < Struct.new(
1272
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 = []
1273
1669
  include Aws::Structure
1274
1670
  end
1275
1671