@aws-sdk/client-iam 3.691.0 → 3.693.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 (63) hide show
  1. package/README.md +40 -0
  2. package/dist-cjs/index.js +510 -10
  3. package/dist-es/IAM.js +10 -0
  4. package/dist-es/commands/DisableOrganizationsRootCredentialsManagementCommand.js +22 -0
  5. package/dist-es/commands/DisableOrganizationsRootSessionsCommand.js +22 -0
  6. package/dist-es/commands/EnableOrganizationsRootCredentialsManagementCommand.js +22 -0
  7. package/dist-es/commands/EnableOrganizationsRootSessionsCommand.js +22 -0
  8. package/dist-es/commands/ListOrganizationsFeaturesCommand.js +22 -0
  9. package/dist-es/commands/index.js +5 -0
  10. package/dist-es/models/models_0.js +70 -9
  11. package/dist-es/models/models_1.js +9 -0
  12. package/dist-es/protocols/Aws_query.js +310 -1
  13. package/dist-types/IAM.d.ts +43 -0
  14. package/dist-types/IAMClient.d.ts +7 -2
  15. package/dist-types/commands/CreateLoginProfileCommand.d.ts +3 -3
  16. package/dist-types/commands/DeactivateMFADeviceCommand.d.ts +1 -1
  17. package/dist-types/commands/DeleteLoginProfileCommand.d.ts +2 -2
  18. package/dist-types/commands/DisableOrganizationsRootCredentialsManagementCommand.d.ts +108 -0
  19. package/dist-types/commands/DisableOrganizationsRootSessionsCommand.d.ts +108 -0
  20. package/dist-types/commands/EnableOrganizationsRootCredentialsManagementCommand.d.ts +124 -0
  21. package/dist-types/commands/EnableOrganizationsRootSessionsCommand.d.ts +124 -0
  22. package/dist-types/commands/GetLoginProfileCommand.d.ts +2 -2
  23. package/dist-types/commands/ListAccountAliasesCommand.d.ts +3 -3
  24. package/dist-types/commands/ListOrganizationsFeaturesCommand.d.ts +106 -0
  25. package/dist-types/commands/SimulateCustomPolicyCommand.d.ts +2 -1
  26. package/dist-types/commands/SimulatePrincipalPolicyCommand.d.ts +1 -1
  27. package/dist-types/commands/TagInstanceProfileCommand.d.ts +1 -1
  28. package/dist-types/commands/TagMFADeviceCommand.d.ts +1 -1
  29. package/dist-types/commands/TagOpenIDConnectProviderCommand.d.ts +1 -1
  30. package/dist-types/commands/TagPolicyCommand.d.ts +1 -1
  31. package/dist-types/commands/TagRoleCommand.d.ts +1 -1
  32. package/dist-types/commands/TagSAMLProviderCommand.d.ts +1 -1
  33. package/dist-types/commands/TagServerCertificateCommand.d.ts +1 -1
  34. package/dist-types/commands/TagUserCommand.d.ts +1 -1
  35. package/dist-types/commands/index.d.ts +5 -0
  36. package/dist-types/models/models_0.d.ts +203 -615
  37. package/dist-types/models/models_1.d.ts +611 -1
  38. package/dist-types/protocols/Aws_query.d.ts +45 -0
  39. package/dist-types/ts3.4/IAM.d.ts +105 -0
  40. package/dist-types/ts3.4/IAMClient.d.ts +30 -0
  41. package/dist-types/ts3.4/commands/CreateLoginProfileCommand.d.ts +1 -1
  42. package/dist-types/ts3.4/commands/DeleteLoginProfileCommand.d.ts +1 -1
  43. package/dist-types/ts3.4/commands/DisableOrganizationsRootCredentialsManagementCommand.d.ts +51 -0
  44. package/dist-types/ts3.4/commands/DisableOrganizationsRootSessionsCommand.d.ts +51 -0
  45. package/dist-types/ts3.4/commands/EnableOrganizationsRootCredentialsManagementCommand.d.ts +51 -0
  46. package/dist-types/ts3.4/commands/EnableOrganizationsRootSessionsCommand.d.ts +51 -0
  47. package/dist-types/ts3.4/commands/GetLoginProfileCommand.d.ts +1 -1
  48. package/dist-types/ts3.4/commands/ListOrganizationsFeaturesCommand.d.ts +51 -0
  49. package/dist-types/ts3.4/commands/SimulateCustomPolicyCommand.d.ts +2 -4
  50. package/dist-types/ts3.4/commands/SimulatePrincipalPolicyCommand.d.ts +1 -1
  51. package/dist-types/ts3.4/commands/TagInstanceProfileCommand.d.ts +1 -1
  52. package/dist-types/ts3.4/commands/TagMFADeviceCommand.d.ts +1 -1
  53. package/dist-types/ts3.4/commands/TagOpenIDConnectProviderCommand.d.ts +1 -1
  54. package/dist-types/ts3.4/commands/TagPolicyCommand.d.ts +1 -1
  55. package/dist-types/ts3.4/commands/TagRoleCommand.d.ts +1 -1
  56. package/dist-types/ts3.4/commands/TagSAMLProviderCommand.d.ts +1 -1
  57. package/dist-types/ts3.4/commands/TagServerCertificateCommand.d.ts +1 -1
  58. package/dist-types/ts3.4/commands/TagUserCommand.d.ts +1 -1
  59. package/dist-types/ts3.4/commands/index.d.ts +5 -0
  60. package/dist-types/ts3.4/models/models_0.d.ts +88 -106
  61. package/dist-types/ts3.4/models/models_1.d.ts +104 -0
  62. package/dist-types/ts3.4/protocols/Aws_query.d.ts +60 -0
  63. package/package.json +36 -36
@@ -1,6 +1,616 @@
1
1
  import { ExceptionOptionType as __ExceptionOptionType } from "@smithy/smithy-client";
2
2
  import { IAMServiceException as __BaseException } from "./IAMServiceException";
3
- import { Role, ServerCertificateMetadata, SigningCertificate, SSHPublicKey, StatusType, Tag } from "./models_0";
3
+ import { ContextEntry, PolicyEvaluationDecisionType, Position, Role, ServerCertificateMetadata, SigningCertificate, SSHPublicKey, StatusType, Tag } from "./models_0";
4
+ /**
5
+ * @public
6
+ * @enum
7
+ */
8
+ export declare const PolicySourceType: {
9
+ readonly AWS_MANAGED: "aws-managed";
10
+ readonly GROUP: "group";
11
+ readonly NONE: "none";
12
+ readonly RESOURCE: "resource";
13
+ readonly ROLE: "role";
14
+ readonly USER: "user";
15
+ readonly USER_MANAGED: "user-managed";
16
+ };
17
+ /**
18
+ * @public
19
+ */
20
+ export type PolicySourceType = (typeof PolicySourceType)[keyof typeof PolicySourceType];
21
+ /**
22
+ * <p>Contains a reference to a <code>Statement</code> element in a policy document that
23
+ * determines the result of the simulation.</p>
24
+ * <p>This data type is used by the <code>MatchedStatements</code> member of the <code>
25
+ * <a>EvaluationResult</a>
26
+ * </code> type.</p>
27
+ * @public
28
+ */
29
+ export interface Statement {
30
+ /**
31
+ * <p>The identifier of the policy that was provided as an input.</p>
32
+ * @public
33
+ */
34
+ SourcePolicyId?: string | undefined;
35
+ /**
36
+ * <p>The type of the policy.</p>
37
+ * @public
38
+ */
39
+ SourcePolicyType?: PolicySourceType | undefined;
40
+ /**
41
+ * <p>The row and column of the beginning of the <code>Statement</code> in an IAM
42
+ * policy.</p>
43
+ * @public
44
+ */
45
+ StartPosition?: Position | undefined;
46
+ /**
47
+ * <p>The row and column of the end of a <code>Statement</code> in an IAM policy.</p>
48
+ * @public
49
+ */
50
+ EndPosition?: Position | undefined;
51
+ }
52
+ /**
53
+ * <p>Contains information about the effect that Organizations has on a policy simulation.</p>
54
+ * @public
55
+ */
56
+ export interface OrganizationsDecisionDetail {
57
+ /**
58
+ * <p>Specifies whether the simulated operation is allowed by the Organizations service control
59
+ * policies that impact the simulated user's account.</p>
60
+ * @public
61
+ */
62
+ AllowedByOrganizations?: boolean | undefined;
63
+ }
64
+ /**
65
+ * <p>Contains information about the effect that a permissions boundary has on a policy
66
+ * simulation when the boundary is applied to an IAM entity.</p>
67
+ * @public
68
+ */
69
+ export interface PermissionsBoundaryDecisionDetail {
70
+ /**
71
+ * <p>Specifies whether an action is allowed by a permissions boundary that is applied to an
72
+ * IAM entity (user or role). A value of <code>true</code> means that the permissions
73
+ * boundary does not deny the action. This means that the policy includes an
74
+ * <code>Allow</code> statement that matches the request. In this case, if an
75
+ * identity-based policy also allows the action, the request is allowed. A value of
76
+ * <code>false</code> means that either the requested action is not allowed (implicitly
77
+ * denied) or that the action is explicitly denied by the permissions boundary. In both of
78
+ * these cases, the action is not allowed, regardless of the identity-based policy.</p>
79
+ * @public
80
+ */
81
+ AllowedByPermissionsBoundary?: boolean | undefined;
82
+ }
83
+ /**
84
+ * <p>Contains the result of the simulation of a single API operation call on a single
85
+ * resource.</p>
86
+ * <p>This data type is used by a member of the <a>EvaluationResult</a> data
87
+ * type.</p>
88
+ * @public
89
+ */
90
+ export interface ResourceSpecificResult {
91
+ /**
92
+ * <p>The name of the simulated resource, in Amazon Resource Name (ARN) format.</p>
93
+ * @public
94
+ */
95
+ EvalResourceName: string | undefined;
96
+ /**
97
+ * <p>The result of the simulation of the simulated API operation on the resource specified in
98
+ * <code>EvalResourceName</code>.</p>
99
+ * @public
100
+ */
101
+ EvalResourceDecision: PolicyEvaluationDecisionType | undefined;
102
+ /**
103
+ * <p>A list of the statements in the input policies that determine the result for this part
104
+ * of the simulation. Remember that even if multiple statements allow the operation on the
105
+ * resource, if <i>any</i> statement denies that operation, then the explicit
106
+ * deny overrides any allow. In addition, the deny statement is the only entry included in the
107
+ * result.</p>
108
+ * @public
109
+ */
110
+ MatchedStatements?: Statement[] | undefined;
111
+ /**
112
+ * <p>A list of context keys that are required by the included input policies but that were
113
+ * not provided by one of the input parameters. This list is used when a list of ARNs is
114
+ * included in the <code>ResourceArns</code> parameter instead of "*". If you do not specify
115
+ * individual resources, by setting <code>ResourceArns</code> to "*" or by not including the
116
+ * <code>ResourceArns</code> parameter, then any missing context values are instead
117
+ * included under the <code>EvaluationResults</code> section. To discover the context keys
118
+ * used by a set of policies, you can call <a>GetContextKeysForCustomPolicy</a> or
119
+ * <a>GetContextKeysForPrincipalPolicy</a>.</p>
120
+ * @public
121
+ */
122
+ MissingContextValues?: string[] | undefined;
123
+ /**
124
+ * <p>Additional details about the results of the evaluation decision on a single resource.
125
+ * This parameter is returned only for cross-account simulations. This parameter explains how
126
+ * each policy type contributes to the resource-specific evaluation decision.</p>
127
+ * @public
128
+ */
129
+ EvalDecisionDetails?: Record<string, PolicyEvaluationDecisionType> | undefined;
130
+ /**
131
+ * <p>Contains information about the effect that a permissions boundary has on a policy
132
+ * simulation when that boundary is applied to an IAM entity.</p>
133
+ * @public
134
+ */
135
+ PermissionsBoundaryDecisionDetail?: PermissionsBoundaryDecisionDetail | undefined;
136
+ }
137
+ /**
138
+ * <p>Contains the results of a simulation.</p>
139
+ * <p>This data type is used by the return parameter of <code>
140
+ * <a>SimulateCustomPolicy</a>
141
+ * </code> and <code>
142
+ * <a>SimulatePrincipalPolicy</a>
143
+ * </code>.</p>
144
+ * @public
145
+ */
146
+ export interface EvaluationResult {
147
+ /**
148
+ * <p>The name of the API operation tested on the indicated resource.</p>
149
+ * @public
150
+ */
151
+ EvalActionName: string | undefined;
152
+ /**
153
+ * <p>The ARN of the resource that the indicated API operation was tested on.</p>
154
+ * @public
155
+ */
156
+ EvalResourceName?: string | undefined;
157
+ /**
158
+ * <p>The result of the simulation.</p>
159
+ * @public
160
+ */
161
+ EvalDecision: PolicyEvaluationDecisionType | undefined;
162
+ /**
163
+ * <p>A list of the statements in the input policies that determine the result for this
164
+ * scenario. Remember that even if multiple statements allow the operation on the resource, if
165
+ * only one statement denies that operation, then the explicit deny overrides any allow. In
166
+ * addition, the deny statement is the only entry included in the result.</p>
167
+ * @public
168
+ */
169
+ MatchedStatements?: Statement[] | undefined;
170
+ /**
171
+ * <p>A list of context keys that are required by the included input policies but that were
172
+ * not provided by one of the input parameters. This list is used when the resource in a
173
+ * simulation is "*", either explicitly, or when the <code>ResourceArns</code> parameter
174
+ * blank. If you include a list of resources, then any missing context values are instead
175
+ * included under the <code>ResourceSpecificResults</code> section. To discover the context
176
+ * keys used by a set of policies, you can call <a>GetContextKeysForCustomPolicy</a> or <a>GetContextKeysForPrincipalPolicy</a>.</p>
177
+ * @public
178
+ */
179
+ MissingContextValues?: string[] | undefined;
180
+ /**
181
+ * <p>A structure that details how Organizations and its service control policies affect the results of
182
+ * the simulation. Only applies if the simulated user's account is part of an
183
+ * organization.</p>
184
+ * @public
185
+ */
186
+ OrganizationsDecisionDetail?: OrganizationsDecisionDetail | undefined;
187
+ /**
188
+ * <p>Contains information about the effect that a permissions boundary has on a policy
189
+ * simulation when the boundary is applied to an IAM entity.</p>
190
+ * @public
191
+ */
192
+ PermissionsBoundaryDecisionDetail?: PermissionsBoundaryDecisionDetail | undefined;
193
+ /**
194
+ * <p>Additional details about the results of the cross-account evaluation decision. This
195
+ * parameter is populated for only cross-account simulations. It contains a brief summary of
196
+ * how each policy type contributes to the final evaluation decision.</p>
197
+ * <p>If the simulation evaluates policies within the same account and includes a resource
198
+ * ARN, then the parameter is present but the response is empty. If the simulation evaluates
199
+ * policies within the same account and specifies all resources (<code>*</code>), then the
200
+ * parameter is not returned.</p>
201
+ * <p>When you make a cross-account request, Amazon Web Services evaluates the request in the trusting
202
+ * account and the trusted account. The request is allowed only if both evaluations return
203
+ * <code>true</code>. For more information about how policies are evaluated, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-basics">Evaluating policies within a single account</a>.</p>
204
+ * <p>If an Organizations SCP included in the evaluation denies access, the simulation ends. In
205
+ * this case, policy evaluation does not proceed any further and this parameter is not
206
+ * returned.</p>
207
+ * @public
208
+ */
209
+ EvalDecisionDetails?: Record<string, PolicyEvaluationDecisionType> | undefined;
210
+ /**
211
+ * <p>The individual results of the simulation of the API operation specified in
212
+ * EvalActionName on each resource.</p>
213
+ * @public
214
+ */
215
+ ResourceSpecificResults?: ResourceSpecificResult[] | undefined;
216
+ }
217
+ /**
218
+ * <p>Contains the response to a successful <a>SimulatePrincipalPolicy</a> or
219
+ * <a>SimulateCustomPolicy</a> request.</p>
220
+ * @public
221
+ */
222
+ export interface SimulatePolicyResponse {
223
+ /**
224
+ * <p>The results of the simulation.</p>
225
+ * @public
226
+ */
227
+ EvaluationResults?: EvaluationResult[] | undefined;
228
+ /**
229
+ * <p>A flag that indicates whether there are more items to return. If your
230
+ * results were truncated, you can make a subsequent pagination request using the <code>Marker</code>
231
+ * request parameter to retrieve more items. Note that IAM might return fewer than the
232
+ * <code>MaxItems</code> number of results even when there are more results available. We recommend
233
+ * that you check <code>IsTruncated</code> after every call to ensure that you receive all your
234
+ * results.</p>
235
+ * @public
236
+ */
237
+ IsTruncated?: boolean | undefined;
238
+ /**
239
+ * <p>When <code>IsTruncated</code> is <code>true</code>, this element
240
+ * is present and contains the value to use for the <code>Marker</code> parameter in a subsequent
241
+ * pagination request.</p>
242
+ * @public
243
+ */
244
+ Marker?: string | undefined;
245
+ }
246
+ /**
247
+ * @public
248
+ */
249
+ export interface SimulatePrincipalPolicyRequest {
250
+ /**
251
+ * <p>The Amazon Resource Name (ARN) of a user, group, or role whose policies you want to
252
+ * include in the simulation. If you specify a user, group, or role, the simulation
253
+ * includes all policies that are associated with that entity. If you specify a user, the
254
+ * simulation also includes all policies that are attached to any groups the user belongs
255
+ * to.</p>
256
+ * <p>The maximum length of the policy document that you can pass in this operation,
257
+ * including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length">IAM and STS character quotas</a>.</p>
258
+ * <p>For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.</p>
259
+ * @public
260
+ */
261
+ PolicySourceArn: string | undefined;
262
+ /**
263
+ * <p>An optional list of additional policy documents to include in the simulation. Each
264
+ * document is specified as a string containing the complete, valid JSON text of an IAM
265
+ * policy.</p>
266
+ * <p>The <a href="http://wikipedia.org/wiki/regex">regex pattern</a>
267
+ * used to validate this parameter is a string of characters consisting of the following:</p>
268
+ * <ul>
269
+ * <li>
270
+ * <p>Any printable ASCII
271
+ * character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range</p>
272
+ * </li>
273
+ * <li>
274
+ * <p>The printable characters in the Basic Latin and Latin-1 Supplement character set
275
+ * (through <code>\u00FF</code>)</p>
276
+ * </li>
277
+ * <li>
278
+ * <p>The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and
279
+ * carriage return (<code>\u000D</code>)</p>
280
+ * </li>
281
+ * </ul>
282
+ * @public
283
+ */
284
+ PolicyInputList?: string[] | undefined;
285
+ /**
286
+ * <p>The IAM permissions boundary policy to simulate. The permissions boundary sets the
287
+ * maximum permissions that the entity can have. You can input only one permissions
288
+ * boundary when you pass a policy to this operation. An IAM entity can only have one
289
+ * permissions boundary in effect at a time. For example, if a permissions boundary is
290
+ * attached to an entity and you pass in a different permissions boundary policy using this
291
+ * parameter, then the new permissions boundary policy is used for the simulation. For more
292
+ * information about permissions boundaries, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html">Permissions boundaries for IAM
293
+ * entities</a> in the <i>IAM User Guide</i>. The policy input is
294
+ * specified as a string containing the complete, valid JSON text of a permissions boundary
295
+ * policy.</p>
296
+ * <p>The maximum length of the policy document that you can pass in this operation,
297
+ * including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length">IAM and STS character quotas</a>.</p>
298
+ * <p>The <a href="http://wikipedia.org/wiki/regex">regex pattern</a>
299
+ * used to validate this parameter is a string of characters consisting of the following:</p>
300
+ * <ul>
301
+ * <li>
302
+ * <p>Any printable ASCII
303
+ * character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range</p>
304
+ * </li>
305
+ * <li>
306
+ * <p>The printable characters in the Basic Latin and Latin-1 Supplement character set
307
+ * (through <code>\u00FF</code>)</p>
308
+ * </li>
309
+ * <li>
310
+ * <p>The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and
311
+ * carriage return (<code>\u000D</code>)</p>
312
+ * </li>
313
+ * </ul>
314
+ * @public
315
+ */
316
+ PermissionsBoundaryPolicyInputList?: string[] | undefined;
317
+ /**
318
+ * <p>A list of names of API operations to evaluate in the simulation. Each operation is
319
+ * evaluated for each resource. Each operation must include the service identifier, such as
320
+ * <code>iam:CreateUser</code>.</p>
321
+ * @public
322
+ */
323
+ ActionNames: string[] | undefined;
324
+ /**
325
+ * <p>A list of ARNs of Amazon Web Services resources to include in the simulation. If this parameter is
326
+ * not provided, then the value defaults to <code>*</code> (all resources). Each API in the
327
+ * <code>ActionNames</code> parameter is evaluated for each resource in this list. The
328
+ * simulation determines the access result (allowed or denied) of each combination and
329
+ * reports it in the response. You can simulate resources that don't exist in your
330
+ * account.</p>
331
+ * <p>The simulation does not automatically retrieve policies for the specified resources.
332
+ * If you want to include a resource policy in the simulation, then you must include the
333
+ * policy as a string in the <code>ResourcePolicy</code> parameter.</p>
334
+ * <p>For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.</p>
335
+ * <note>
336
+ * <p>Simulation of resource-based policies isn't supported for IAM roles.</p>
337
+ * </note>
338
+ * @public
339
+ */
340
+ ResourceArns?: string[] | undefined;
341
+ /**
342
+ * <p>A resource-based policy to include in the simulation provided as a string. Each
343
+ * resource in the simulation is treated as if it had this policy attached. You can include
344
+ * only one resource-based policy in a simulation.</p>
345
+ * <p>The maximum length of the policy document that you can pass in this operation,
346
+ * including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length">IAM and STS character quotas</a>.</p>
347
+ * <p>The <a href="http://wikipedia.org/wiki/regex">regex pattern</a>
348
+ * used to validate this parameter is a string of characters consisting of the following:</p>
349
+ * <ul>
350
+ * <li>
351
+ * <p>Any printable ASCII
352
+ * character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range</p>
353
+ * </li>
354
+ * <li>
355
+ * <p>The printable characters in the Basic Latin and Latin-1 Supplement character set
356
+ * (through <code>\u00FF</code>)</p>
357
+ * </li>
358
+ * <li>
359
+ * <p>The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and
360
+ * carriage return (<code>\u000D</code>)</p>
361
+ * </li>
362
+ * </ul>
363
+ * <note>
364
+ * <p>Simulation of resource-based policies isn't supported for IAM roles.</p>
365
+ * </note>
366
+ * @public
367
+ */
368
+ ResourcePolicy?: string | undefined;
369
+ /**
370
+ * <p>An Amazon Web Services account ID that specifies the owner of any simulated resource that does not
371
+ * identify its owner in the resource ARN. Examples of resource ARNs include an S3 bucket
372
+ * or object. If <code>ResourceOwner</code> is specified, it is also used as the account
373
+ * owner of any <code>ResourcePolicy</code> included in the simulation. If the
374
+ * <code>ResourceOwner</code> parameter is not specified, then the owner of the
375
+ * resources and the resource policy defaults to the account of the identity provided in
376
+ * <code>CallerArn</code>. This parameter is required only if you specify a
377
+ * resource-based policy and account that owns the resource is different from the account
378
+ * that owns the simulated calling user <code>CallerArn</code>.</p>
379
+ * @public
380
+ */
381
+ ResourceOwner?: string | undefined;
382
+ /**
383
+ * <p>The ARN of the IAM user that you want to specify as the simulated caller of the API
384
+ * operations. If you do not specify a <code>CallerArn</code>, it defaults to the ARN of
385
+ * the user that you specify in <code>PolicySourceArn</code>, if you specified a user. If
386
+ * you include both a <code>PolicySourceArn</code> (for example,
387
+ * <code>arn:aws:iam::123456789012:user/David</code>) and a <code>CallerArn</code> (for
388
+ * example, <code>arn:aws:iam::123456789012:user/Bob</code>), the result is that you
389
+ * simulate calling the API operations as Bob, as if Bob had David's policies.</p>
390
+ * <p>You can specify only the ARN of an IAM user. You cannot specify the ARN of an
391
+ * assumed role, federated user, or a service principal.</p>
392
+ * <p>
393
+ * <code>CallerArn</code> is required if you include a <code>ResourcePolicy</code> and
394
+ * the <code>PolicySourceArn</code> is not the ARN for an IAM user. This is required so
395
+ * that the resource-based policy's <code>Principal</code> element has a value to use in
396
+ * evaluating the policy.</p>
397
+ * <p>For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.</p>
398
+ * @public
399
+ */
400
+ CallerArn?: string | undefined;
401
+ /**
402
+ * <p>A list of context keys and corresponding values for the simulation to use. Whenever a
403
+ * context key is evaluated in one of the simulated IAM permissions policies, the
404
+ * corresponding value is supplied.</p>
405
+ * @public
406
+ */
407
+ ContextEntries?: ContextEntry[] | undefined;
408
+ /**
409
+ * <p>Specifies the type of simulation to run. Different API operations that support
410
+ * resource-based policies require different combinations of resources. By specifying the
411
+ * type of simulation to run, you enable the policy simulator to enforce the presence of
412
+ * the required resources to ensure reliable simulation results. If your simulation does
413
+ * not match one of the following scenarios, then you can omit this parameter. The
414
+ * following list shows each of the supported scenario values and the resources that you
415
+ * must define to run the simulation.</p>
416
+ * <p>Each of the Amazon EC2 scenarios requires that you specify instance, image, and security
417
+ * group resources. If your scenario includes an EBS volume, then you must specify that
418
+ * volume as a resource. If the Amazon EC2 scenario includes VPC, then you must supply the
419
+ * network interface resource. If it includes an IP subnet, then you must specify the
420
+ * subnet resource. For more information on the Amazon EC2 scenario options, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html">Supported platforms</a> in the <i>Amazon EC2 User Guide</i>.</p>
421
+ * <ul>
422
+ * <li>
423
+ * <p>
424
+ * <b>EC2-VPC-InstanceStore</b>
425
+ * </p>
426
+ * <p>instance, image, security group, network interface</p>
427
+ * </li>
428
+ * <li>
429
+ * <p>
430
+ * <b>EC2-VPC-InstanceStore-Subnet</b>
431
+ * </p>
432
+ * <p>instance, image, security group, network interface, subnet</p>
433
+ * </li>
434
+ * <li>
435
+ * <p>
436
+ * <b>EC2-VPC-EBS</b>
437
+ * </p>
438
+ * <p>instance, image, security group, network interface, volume</p>
439
+ * </li>
440
+ * <li>
441
+ * <p>
442
+ * <b>EC2-VPC-EBS-Subnet</b>
443
+ * </p>
444
+ * <p>instance, image, security group, network interface, subnet, volume</p>
445
+ * </li>
446
+ * </ul>
447
+ * @public
448
+ */
449
+ ResourceHandlingOption?: string | undefined;
450
+ /**
451
+ * <p>Use this only when paginating results to indicate the
452
+ * maximum number of items you want in the response. If additional items exist beyond the maximum
453
+ * you specify, the <code>IsTruncated</code> response element is <code>true</code>.</p>
454
+ * <p>If you do not include this parameter, the number of items defaults to 100. Note that
455
+ * IAM might return fewer results, even when there are more results available. In that case, the
456
+ * <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code>
457
+ * contains a value to include in the subsequent call that tells the service where to continue
458
+ * from.</p>
459
+ * @public
460
+ */
461
+ MaxItems?: number | undefined;
462
+ /**
463
+ * <p>Use this parameter only when paginating results and only after
464
+ * you receive a response indicating that the results are truncated. Set it to the value of the
465
+ * <code>Marker</code> element in the response that you received to indicate where the next call
466
+ * should start.</p>
467
+ * @public
468
+ */
469
+ Marker?: string | undefined;
470
+ }
471
+ /**
472
+ * @public
473
+ */
474
+ export interface TagInstanceProfileRequest {
475
+ /**
476
+ * <p>The name of the IAM instance profile to which you want to add tags.</p>
477
+ * <p>This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric
478
+ * characters with no spaces. You can also include any of the following characters: _+=,.@-</p>
479
+ * @public
480
+ */
481
+ InstanceProfileName: string | undefined;
482
+ /**
483
+ * <p>The list of tags that you want to attach to the IAM instance profile.
484
+ * Each tag consists of a key name and an associated value.</p>
485
+ * @public
486
+ */
487
+ Tags: Tag[] | undefined;
488
+ }
489
+ /**
490
+ * @public
491
+ */
492
+ export interface TagMFADeviceRequest {
493
+ /**
494
+ * <p>The unique identifier for the IAM virtual MFA device to which you want to add tags.
495
+ * For virtual MFA devices, the serial number is the same as the ARN.</p>
496
+ * <p>This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric
497
+ * characters with no spaces. You can also include any of the following characters: _+=,.@-</p>
498
+ * @public
499
+ */
500
+ SerialNumber: string | undefined;
501
+ /**
502
+ * <p>The list of tags that you want to attach to the IAM virtual MFA device.
503
+ * Each tag consists of a key name and an associated value.</p>
504
+ * @public
505
+ */
506
+ Tags: Tag[] | undefined;
507
+ }
508
+ /**
509
+ * @public
510
+ */
511
+ export interface TagOpenIDConnectProviderRequest {
512
+ /**
513
+ * <p>The ARN of the OIDC identity provider in IAM to which you want to add tags.</p>
514
+ * <p>This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric
515
+ * characters with no spaces. You can also include any of the following characters: _+=,.@-</p>
516
+ * @public
517
+ */
518
+ OpenIDConnectProviderArn: string | undefined;
519
+ /**
520
+ * <p>The list of tags that you want to attach to the OIDC identity provider in IAM.
521
+ * Each tag consists of a key name and an associated value.</p>
522
+ * @public
523
+ */
524
+ Tags: Tag[] | undefined;
525
+ }
526
+ /**
527
+ * @public
528
+ */
529
+ export interface TagPolicyRequest {
530
+ /**
531
+ * <p>The ARN of the IAM customer managed policy to which you want to add tags.</p>
532
+ * <p>This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric
533
+ * characters with no spaces. You can also include any of the following characters: _+=,.@-</p>
534
+ * @public
535
+ */
536
+ PolicyArn: string | undefined;
537
+ /**
538
+ * <p>The list of tags that you want to attach to the IAM customer managed policy.
539
+ * Each tag consists of a key name and an associated value.</p>
540
+ * @public
541
+ */
542
+ Tags: Tag[] | undefined;
543
+ }
544
+ /**
545
+ * @public
546
+ */
547
+ export interface TagRoleRequest {
548
+ /**
549
+ * <p>The name of the IAM role to which you want to add tags.</p>
550
+ * <p>This parameter accepts (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters that consist of upper and lowercase alphanumeric
551
+ * characters with no spaces. You can also include any of the following characters: _+=,.@-</p>
552
+ * @public
553
+ */
554
+ RoleName: string | undefined;
555
+ /**
556
+ * <p>The list of tags that you want to attach to the IAM role. Each tag consists of a key name and an associated value.</p>
557
+ * @public
558
+ */
559
+ Tags: Tag[] | undefined;
560
+ }
561
+ /**
562
+ * @public
563
+ */
564
+ export interface TagSAMLProviderRequest {
565
+ /**
566
+ * <p>The ARN of the SAML identity provider in IAM to which you want to add tags.</p>
567
+ * <p>This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric
568
+ * characters with no spaces. You can also include any of the following characters: _+=,.@-</p>
569
+ * @public
570
+ */
571
+ SAMLProviderArn: string | undefined;
572
+ /**
573
+ * <p>The list of tags that you want to attach to the SAML identity provider in IAM.
574
+ * Each tag consists of a key name and an associated value.</p>
575
+ * @public
576
+ */
577
+ Tags: Tag[] | undefined;
578
+ }
579
+ /**
580
+ * @public
581
+ */
582
+ export interface TagServerCertificateRequest {
583
+ /**
584
+ * <p>The name of the IAM server certificate to which you want to add tags.</p>
585
+ * <p>This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric
586
+ * characters with no spaces. You can also include any of the following characters: _+=,.@-</p>
587
+ * @public
588
+ */
589
+ ServerCertificateName: string | undefined;
590
+ /**
591
+ * <p>The list of tags that you want to attach to the IAM server certificate.
592
+ * Each tag consists of a key name and an associated value.</p>
593
+ * @public
594
+ */
595
+ Tags: Tag[] | undefined;
596
+ }
597
+ /**
598
+ * @public
599
+ */
600
+ export interface TagUserRequest {
601
+ /**
602
+ * <p>The name of the IAM user to which you want to add tags.</p>
603
+ * <p>This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric
604
+ * characters with no spaces. You can also include any of the following characters: _+=,.@-</p>
605
+ * @public
606
+ */
607
+ UserName: string | undefined;
608
+ /**
609
+ * <p>The list of tags that you want to attach to the IAM user. Each tag consists of a key name and an associated value.</p>
610
+ * @public
611
+ */
612
+ Tags: Tag[] | undefined;
613
+ }
4
614
  /**
5
615
  * @public
6
616
  */