UNPKG

129 kBTypeScriptView Raw
1import * as cdk from '@aws-cdk/core';
2import * as cfn_parse from '@aws-cdk/core/lib/helpers-internal';
3/**
4 * Properties for defining a `CfnAccessKey`
5 *
6 * @struct
7 * @stability external
8 *
9 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html
10 */
11export interface CfnAccessKeyProps {
12 /**
13 * The name of the IAM user that the new key will belong to.
14 *
15 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
16 *
17 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html#cfn-iam-accesskey-username
18 */
19 readonly userName: string;
20 /**
21 * This value is specific to CloudFormation and can only be *incremented* . Incrementing this value notifies CloudFormation that you want to rotate your access key. When you update your stack, CloudFormation will replace the existing access key with a new key.
22 *
23 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html#cfn-iam-accesskey-serial
24 */
25 readonly serial?: number;
26 /**
27 * The status of the access key. `Active` means that the key is valid for API calls, while `Inactive` means it is not.
28 *
29 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html#cfn-iam-accesskey-status
30 */
31 readonly status?: string;
32}
33/**
34 * A CloudFormation `AWS::IAM::AccessKey`
35 *
36 * Creates a new AWS secret access key and corresponding AWS access key ID for the specified user. The default status for new keys is `Active` .
37 *
38 * If you do not specify a user name, IAM determines the user name implicitly based on the AWS access key ID signing the request. This operation works for access keys under the AWS account . Consequently, you can use this operation to manage AWS account root user credentials. This is true even if the AWS account has no associated users.
39 *
40 * For information about quotas on the number of keys you can create, see [IAM and AWS STS quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide* .
41 *
42 * > To ensure the security of your AWS account , the secret access key is accessible only during key and user creation. You must save the key (for example, in a text file) if you want to be able to access it again. If a secret key is lost, you can delete the access keys for the associated user and then create new keys.
43 *
44 * @cloudformationResource AWS::IAM::AccessKey
45 * @stability external
46 *
47 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html
48 */
49export declare class CfnAccessKey extends cdk.CfnResource implements cdk.IInspectable {
50 /**
51 * The CloudFormation resource type name for this resource class.
52 */
53 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::IAM::AccessKey";
54 /**
55 * A factory method that creates a new instance of this class from an object
56 * containing the CloudFormation properties of this resource.
57 * Used in the @aws-cdk/cloudformation-include module.
58 *
59 * @internal
60 */
61 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnAccessKey;
62 /**
63 * Returns the secret access key for the specified AWS::IAM::AccessKey resource. For example: wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY.
64 * @cloudformationAttribute SecretAccessKey
65 */
66 readonly attrSecretAccessKey: string;
67 /**
68 * The name of the IAM user that the new key will belong to.
69 *
70 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
71 *
72 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html#cfn-iam-accesskey-username
73 */
74 userName: string;
75 /**
76 * This value is specific to CloudFormation and can only be *incremented* . Incrementing this value notifies CloudFormation that you want to rotate your access key. When you update your stack, CloudFormation will replace the existing access key with a new key.
77 *
78 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html#cfn-iam-accesskey-serial
79 */
80 serial: number | undefined;
81 /**
82 * The status of the access key. `Active` means that the key is valid for API calls, while `Inactive` means it is not.
83 *
84 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html#cfn-iam-accesskey-status
85 */
86 status: string | undefined;
87 /**
88 * Create a new `AWS::IAM::AccessKey`.
89 *
90 * @param scope - scope in which this resource is defined
91 * @param id - scoped id of the resource
92 * @param props - resource properties
93 */
94 constructor(scope: cdk.Construct, id: string, props: CfnAccessKeyProps);
95 /**
96 * Examines the CloudFormation resource and discloses attributes.
97 *
98 * @param inspector - tree inspector to collect and process attributes
99 *
100 */
101 inspect(inspector: cdk.TreeInspector): void;
102 protected get cfnProperties(): {
103 [key: string]: any;
104 };
105 protected renderProperties(props: {
106 [key: string]: any;
107 }): {
108 [key: string]: any;
109 };
110}
111/**
112 * Properties for defining a `CfnGroup`
113 *
114 * @struct
115 * @stability external
116 *
117 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html
118 */
119export interface CfnGroupProps {
120 /**
121 * The name of the group to create. Do not include the path in this value.
122 *
123 * The group name must be unique within the account. Group names are not distinguished by case. For example, you cannot create groups named both "ADMINS" and "admins". If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the group name.
124 *
125 * > If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
126 *
127 * If you specify a name, you must specify the `CAPABILITY_NAMED_IAM` value to acknowledge your template's capabilities. For more information, see [Acknowledging IAM Resources in AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities) .
128 *
129 * > Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using `Fn::Join` and `AWS::Region` to create a Region-specific name, as in the following example: `{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}` .
130 *
131 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html#cfn-iam-group-groupname
132 */
133 readonly groupName?: string;
134 /**
135 * The Amazon Resource Name (ARN) of the IAM policy you want to attach.
136 *
137 * For more information about ARNs, see [Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *AWS General Reference* .
138 *
139 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html#cfn-iam-group-managepolicyarns
140 */
141 readonly managedPolicyArns?: string[];
142 /**
143 * The path to the group. For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide* .
144 *
145 * This parameter is optional. If it is not included, it defaults to a slash (/).
146 *
147 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! ( `\ u0021` ) through the DEL character ( `\ u007F` ), including most punctuation characters, digits, and upper and lowercased letters.
148 *
149 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html#cfn-iam-group-path
150 */
151 readonly path?: string;
152 /**
153 * Adds or updates an inline policy document that is embedded in the specified IAM group. To view AWS::IAM::Group snippets, see [Declaring an IAM Group Resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-iam-group) .
154 *
155 * > The name of each inline policy for a role, user, or group must be unique. If you don't choose unique names, updates to the IAM identity will fail.
156 *
157 * For information about limits on the number of inline policies that you can embed in a group, see [Limitations on IAM Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *IAM User Guide* .
158 *
159 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html#cfn-iam-group-policies
160 */
161 readonly policies?: Array<CfnGroup.PolicyProperty | cdk.IResolvable> | cdk.IResolvable;
162}
163/**
164 * A CloudFormation `AWS::IAM::Group`
165 *
166 * Creates a new group.
167 *
168 * For information about the number of groups you can create, see [Limitations on IAM Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *IAM User Guide* .
169 *
170 * @cloudformationResource AWS::IAM::Group
171 * @stability external
172 *
173 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html
174 */
175export declare class CfnGroup extends cdk.CfnResource implements cdk.IInspectable {
176 /**
177 * The CloudFormation resource type name for this resource class.
178 */
179 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::IAM::Group";
180 /**
181 * A factory method that creates a new instance of this class from an object
182 * containing the CloudFormation properties of this resource.
183 * Used in the @aws-cdk/cloudformation-include module.
184 *
185 * @internal
186 */
187 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnGroup;
188 /**
189 * Returns the Amazon Resource Name (ARN) for the specified `AWS::IAM::Group` resource. For example: `arn:aws:iam::123456789012:group/mystack-mygroup-1DZETITOWEKVO` .
190 * @cloudformationAttribute Arn
191 */
192 readonly attrArn: string;
193 /**
194 * The name of the group to create. Do not include the path in this value.
195 *
196 * The group name must be unique within the account. Group names are not distinguished by case. For example, you cannot create groups named both "ADMINS" and "admins". If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the group name.
197 *
198 * > If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
199 *
200 * If you specify a name, you must specify the `CAPABILITY_NAMED_IAM` value to acknowledge your template's capabilities. For more information, see [Acknowledging IAM Resources in AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities) .
201 *
202 * > Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using `Fn::Join` and `AWS::Region` to create a Region-specific name, as in the following example: `{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}` .
203 *
204 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html#cfn-iam-group-groupname
205 */
206 groupName: string | undefined;
207 /**
208 * The Amazon Resource Name (ARN) of the IAM policy you want to attach.
209 *
210 * For more information about ARNs, see [Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *AWS General Reference* .
211 *
212 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html#cfn-iam-group-managepolicyarns
213 */
214 managedPolicyArns: string[] | undefined;
215 /**
216 * The path to the group. For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide* .
217 *
218 * This parameter is optional. If it is not included, it defaults to a slash (/).
219 *
220 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! ( `\ u0021` ) through the DEL character ( `\ u007F` ), including most punctuation characters, digits, and upper and lowercased letters.
221 *
222 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html#cfn-iam-group-path
223 */
224 path: string | undefined;
225 /**
226 * Adds or updates an inline policy document that is embedded in the specified IAM group. To view AWS::IAM::Group snippets, see [Declaring an IAM Group Resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-iam-group) .
227 *
228 * > The name of each inline policy for a role, user, or group must be unique. If you don't choose unique names, updates to the IAM identity will fail.
229 *
230 * For information about limits on the number of inline policies that you can embed in a group, see [Limitations on IAM Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *IAM User Guide* .
231 *
232 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html#cfn-iam-group-policies
233 */
234 policies: Array<CfnGroup.PolicyProperty | cdk.IResolvable> | cdk.IResolvable | undefined;
235 /**
236 * Create a new `AWS::IAM::Group`.
237 *
238 * @param scope - scope in which this resource is defined
239 * @param id - scoped id of the resource
240 * @param props - resource properties
241 */
242 constructor(scope: cdk.Construct, id: string, props?: CfnGroupProps);
243 /**
244 * Examines the CloudFormation resource and discloses attributes.
245 *
246 * @param inspector - tree inspector to collect and process attributes
247 *
248 */
249 inspect(inspector: cdk.TreeInspector): void;
250 protected get cfnProperties(): {
251 [key: string]: any;
252 };
253 protected renderProperties(props: {
254 [key: string]: any;
255 }): {
256 [key: string]: any;
257 };
258}
259export declare namespace CfnGroup {
260 /**
261 * Contains information about an attached policy.
262 *
263 * An attached policy is a managed policy that has been attached to a user, group, or role.
264 *
265 * For more information about managed policies, see [Managed Policies and Inline Policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide* .
266 *
267 * @struct
268 * @stability external
269 *
270 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html
271 */
272 interface PolicyProperty {
273 /**
274 * The policy document.
275 *
276 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html#cfn-iam-policies-policydocument
277 */
278 readonly policyDocument: any | cdk.IResolvable;
279 /**
280 * The friendly name (not ARN) identifying the policy.
281 *
282 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html#cfn-iam-policies-policyname
283 */
284 readonly policyName: string;
285 }
286}
287/**
288 * Properties for defining a `CfnInstanceProfile`
289 *
290 * @struct
291 * @stability external
292 *
293 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html
294 */
295export interface CfnInstanceProfileProps {
296 /**
297 * The name of the role to associate with the instance profile. Only one role can be assigned to an EC2 instance at a time, and all applications on the instance share the same role and permissions.
298 *
299 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html#cfn-iam-instanceprofile-roles
300 */
301 readonly roles: string[];
302 /**
303 * The name of the instance profile to create.
304 *
305 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
306 *
307 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html#cfn-iam-instanceprofile-instanceprofilename
308 */
309 readonly instanceProfileName?: string;
310 /**
311 * The path to the instance profile. For more information about paths, see [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide* .
312 *
313 * This parameter is optional. If it is not included, it defaults to a slash (/).
314 *
315 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! ( `\ u0021` ) through the DEL character ( `\ u007F` ), including most punctuation characters, digits, and upper and lowercased letters.
316 *
317 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html#cfn-iam-instanceprofile-path
318 */
319 readonly path?: string;
320}
321/**
322 * A CloudFormation `AWS::IAM::InstanceProfile`
323 *
324 * Creates a new instance profile. For information about instance profiles, see [Using instance profiles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) .
325 *
326 * For information about the number of instance profiles you can create, see [IAM object quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide* .
327 *
328 * @cloudformationResource AWS::IAM::InstanceProfile
329 * @stability external
330 *
331 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html
332 */
333export declare class CfnInstanceProfile extends cdk.CfnResource implements cdk.IInspectable {
334 /**
335 * The CloudFormation resource type name for this resource class.
336 */
337 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::IAM::InstanceProfile";
338 /**
339 * A factory method that creates a new instance of this class from an object
340 * containing the CloudFormation properties of this resource.
341 * Used in the @aws-cdk/cloudformation-include module.
342 *
343 * @internal
344 */
345 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnInstanceProfile;
346 /**
347 * Returns the Amazon Resource Name (ARN) for the instance profile. For example:
348 *
349 * `{"Fn::GetAtt" : ["MyProfile", "Arn"] }`
350 *
351 * This returns a value such as `arn:aws:iam::1234567890:instance-profile/MyProfile-ASDNSDLKJ` .
352 * @cloudformationAttribute Arn
353 */
354 readonly attrArn: string;
355 /**
356 * The name of the role to associate with the instance profile. Only one role can be assigned to an EC2 instance at a time, and all applications on the instance share the same role and permissions.
357 *
358 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html#cfn-iam-instanceprofile-roles
359 */
360 roles: string[];
361 /**
362 * The name of the instance profile to create.
363 *
364 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
365 *
366 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html#cfn-iam-instanceprofile-instanceprofilename
367 */
368 instanceProfileName: string | undefined;
369 /**
370 * The path to the instance profile. For more information about paths, see [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide* .
371 *
372 * This parameter is optional. If it is not included, it defaults to a slash (/).
373 *
374 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! ( `\ u0021` ) through the DEL character ( `\ u007F` ), including most punctuation characters, digits, and upper and lowercased letters.
375 *
376 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html#cfn-iam-instanceprofile-path
377 */
378 path: string | undefined;
379 /**
380 * Create a new `AWS::IAM::InstanceProfile`.
381 *
382 * @param scope - scope in which this resource is defined
383 * @param id - scoped id of the resource
384 * @param props - resource properties
385 */
386 constructor(scope: cdk.Construct, id: string, props: CfnInstanceProfileProps);
387 /**
388 * Examines the CloudFormation resource and discloses attributes.
389 *
390 * @param inspector - tree inspector to collect and process attributes
391 *
392 */
393 inspect(inspector: cdk.TreeInspector): void;
394 protected get cfnProperties(): {
395 [key: string]: any;
396 };
397 protected renderProperties(props: {
398 [key: string]: any;
399 }): {
400 [key: string]: any;
401 };
402}
403/**
404 * Properties for defining a `CfnManagedPolicy`
405 *
406 * @struct
407 * @stability external
408 *
409 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html
410 */
411export interface CfnManagedPolicyProps {
412 /**
413 * The JSON policy document that you want to use as the content for the new policy.
414 *
415 * You must provide policies in JSON format in IAM. However, for AWS CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format. AWS CloudFormation always converts a YAML policy to JSON format before submitting it to IAM.
416 *
417 * The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and AWS STS character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length) .
418 *
419 * To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide* .
420 *
421 * The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following:
422 *
423 * - Any printable ASCII character ranging from the space character ( `\ u0020` ) through the end of the ASCII character range
424 * - The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\ u00FF` )
425 * - The special characters tab ( `\ u0009` ), line feed ( `\ u000A` ), and carriage return ( `\ u000D` )
426 *
427 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-policydocument
428 */
429 readonly policyDocument: any | cdk.IResolvable;
430 /**
431 * A friendly description of the policy.
432 *
433 * Typically used to store information about the permissions defined in the policy. For example, "Grants access to production DynamoDB tables."
434 *
435 * The policy description is immutable. After a value is assigned, it cannot be changed.
436 *
437 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-description
438 */
439 readonly description?: string;
440 /**
441 * The name (friendly name, not ARN) of the group to attach the policy to.
442 *
443 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
444 *
445 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-groups
446 */
447 readonly groups?: string[];
448 /**
449 * The friendly name of the policy.
450 *
451 * > If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
452 *
453 * If you specify a name, you must specify the `CAPABILITY_NAMED_IAM` value to acknowledge your template's capabilities. For more information, see [Acknowledging IAM Resources in AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities) .
454 *
455 * > Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using `Fn::Join` and `AWS::Region` to create a Region-specific name, as in the following example: `{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}` .
456 *
457 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-managedpolicyname
458 */
459 readonly managedPolicyName?: string;
460 /**
461 * The path for the policy.
462 *
463 * For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide* .
464 *
465 * This parameter is optional. If it is not included, it defaults to a slash (/).
466 *
467 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! ( `\ u0021` ) through the DEL character ( `\ u007F` ), including most punctuation characters, digits, and upper and lowercased letters.
468 *
469 * > You cannot use an asterisk (*) in the path name.
470 *
471 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-ec2-dhcpoptions-path
472 */
473 readonly path?: string;
474 /**
475 * The name (friendly name, not ARN) of the role to attach the policy to.
476 *
477 * This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
478 *
479 * > If an external policy (such as `AWS::IAM::Policy` or `AWS::IAM::ManagedPolicy` ) has a `Ref` to a role and if a resource (such as `AWS::ECS::Service` ) also has a `Ref` to the same role, add a `DependsOn` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an `AWS::ECS::Service` resource, the `DependsOn` attribute ensures that AWS CloudFormation deletes the `AWS::ECS::Service` resource before deleting its role's policy.
480 *
481 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-roles
482 */
483 readonly roles?: string[];
484 /**
485 * The name (friendly name, not ARN) of the IAM user to attach the policy to.
486 *
487 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
488 *
489 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-users
490 */
491 readonly users?: string[];
492}
493/**
494 * A CloudFormation `AWS::IAM::ManagedPolicy`
495 *
496 * Creates a new managed policy for your AWS account .
497 *
498 * This operation creates a policy version with a version identifier of `v1` and sets v1 as the policy's default version. For more information about policy versions, see [Versioning for managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) in the *IAM User Guide* .
499 *
500 * As a best practice, you can validate your IAM policies. To learn more, see [Validating IAM policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) in the *IAM User Guide* .
501 *
502 * For more information about managed policies in general, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide* .
503 *
504 * @cloudformationResource AWS::IAM::ManagedPolicy
505 * @stability external
506 *
507 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html
508 */
509export declare class CfnManagedPolicy extends cdk.CfnResource implements cdk.IInspectable {
510 /**
511 * The CloudFormation resource type name for this resource class.
512 */
513 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::IAM::ManagedPolicy";
514 /**
515 * A factory method that creates a new instance of this class from an object
516 * containing the CloudFormation properties of this resource.
517 * Used in the @aws-cdk/cloudformation-include module.
518 *
519 * @internal
520 */
521 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnManagedPolicy;
522 /**
523 * The JSON policy document that you want to use as the content for the new policy.
524 *
525 * You must provide policies in JSON format in IAM. However, for AWS CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format. AWS CloudFormation always converts a YAML policy to JSON format before submitting it to IAM.
526 *
527 * The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and AWS STS character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length) .
528 *
529 * To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide* .
530 *
531 * The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following:
532 *
533 * - Any printable ASCII character ranging from the space character ( `\ u0020` ) through the end of the ASCII character range
534 * - The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\ u00FF` )
535 * - The special characters tab ( `\ u0009` ), line feed ( `\ u000A` ), and carriage return ( `\ u000D` )
536 *
537 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-policydocument
538 */
539 policyDocument: any | cdk.IResolvable;
540 /**
541 * A friendly description of the policy.
542 *
543 * Typically used to store information about the permissions defined in the policy. For example, "Grants access to production DynamoDB tables."
544 *
545 * The policy description is immutable. After a value is assigned, it cannot be changed.
546 *
547 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-description
548 */
549 description: string | undefined;
550 /**
551 * The name (friendly name, not ARN) of the group to attach the policy to.
552 *
553 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
554 *
555 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-groups
556 */
557 groups: string[] | undefined;
558 /**
559 * The friendly name of the policy.
560 *
561 * > If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
562 *
563 * If you specify a name, you must specify the `CAPABILITY_NAMED_IAM` value to acknowledge your template's capabilities. For more information, see [Acknowledging IAM Resources in AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities) .
564 *
565 * > Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using `Fn::Join` and `AWS::Region` to create a Region-specific name, as in the following example: `{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}` .
566 *
567 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-managedpolicyname
568 */
569 managedPolicyName: string | undefined;
570 /**
571 * The path for the policy.
572 *
573 * For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide* .
574 *
575 * This parameter is optional. If it is not included, it defaults to a slash (/).
576 *
577 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! ( `\ u0021` ) through the DEL character ( `\ u007F` ), including most punctuation characters, digits, and upper and lowercased letters.
578 *
579 * > You cannot use an asterisk (*) in the path name.
580 *
581 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-ec2-dhcpoptions-path
582 */
583 path: string | undefined;
584 /**
585 * The name (friendly name, not ARN) of the role to attach the policy to.
586 *
587 * This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
588 *
589 * > If an external policy (such as `AWS::IAM::Policy` or `AWS::IAM::ManagedPolicy` ) has a `Ref` to a role and if a resource (such as `AWS::ECS::Service` ) also has a `Ref` to the same role, add a `DependsOn` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an `AWS::ECS::Service` resource, the `DependsOn` attribute ensures that AWS CloudFormation deletes the `AWS::ECS::Service` resource before deleting its role's policy.
590 *
591 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-roles
592 */
593 roles: string[] | undefined;
594 /**
595 * The name (friendly name, not ARN) of the IAM user to attach the policy to.
596 *
597 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
598 *
599 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-users
600 */
601 users: string[] | undefined;
602 /**
603 * Create a new `AWS::IAM::ManagedPolicy`.
604 *
605 * @param scope - scope in which this resource is defined
606 * @param id - scoped id of the resource
607 * @param props - resource properties
608 */
609 constructor(scope: cdk.Construct, id: string, props: CfnManagedPolicyProps);
610 /**
611 * Examines the CloudFormation resource and discloses attributes.
612 *
613 * @param inspector - tree inspector to collect and process attributes
614 *
615 */
616 inspect(inspector: cdk.TreeInspector): void;
617 protected get cfnProperties(): {
618 [key: string]: any;
619 };
620 protected renderProperties(props: {
621 [key: string]: any;
622 }): {
623 [key: string]: any;
624 };
625}
626/**
627 * Properties for defining a `CfnOIDCProvider`
628 *
629 * @struct
630 * @stability external
631 *
632 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html
633 */
634export interface CfnOIDCProviderProps {
635 /**
636 * A list of certificate thumbprints that are associated with the specified IAM OIDC provider resource object. For more information, see [CreateOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html) .
637 *
638 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html#cfn-iam-oidcprovider-thumbprintlist
639 */
640 readonly thumbprintList: string[];
641 /**
642 * A list of client IDs (also known as audiences) that are associated with the specified IAM OIDC provider resource object. For more information, see [CreateOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html) .
643 *
644 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html#cfn-iam-oidcprovider-clientidlist
645 */
646 readonly clientIdList?: string[];
647 /**
648 * A list of tags that are attached to the specified IAM OIDC provider. The returned list of tags is sorted by tag key. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide* .
649 *
650 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html#cfn-iam-oidcprovider-tags
651 */
652 readonly tags?: cdk.CfnTag[];
653 /**
654 * The URL that the IAM OIDC provider resource object is associated with. For more information, see [CreateOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html) .
655 *
656 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html#cfn-iam-oidcprovider-url
657 */
658 readonly url?: string;
659}
660/**
661 * A CloudFormation `AWS::IAM::OIDCProvider`
662 *
663 * Creates an IAM entity to describe an identity provider (IdP) that supports [OpenID Connect (OIDC)](https://docs.aws.amazon.com/http://openid.net/connect/) .
664 *
665 * The OIDC provider that you create with this operation can be used as a principal in a role's trust policy. Such a policy establishes a trust relationship between AWS and the OIDC provider.
666 *
667 * When you create the IAM OIDC provider, you specify the following:
668 *
669 * - The URL of the OIDC identity provider (IdP) to trust
670 * - A list of client IDs (also known as audiences) that identify the application or applications that are allowed to authenticate using the OIDC provider
671 * - A list of thumbprints of one or more server certificates that the IdP uses
672 *
673 * You get all of this information from the OIDC IdP that you want to use to access AWS .
674 *
675 * > The trust for the OIDC provider is derived from the IAM provider that this operation creates. Therefore, it is best to limit access to the [CreateOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html) operation to highly privileged users.
676 *
677 * @cloudformationResource AWS::IAM::OIDCProvider
678 * @stability external
679 *
680 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html
681 */
682export declare class CfnOIDCProvider extends cdk.CfnResource implements cdk.IInspectable {
683 /**
684 * The CloudFormation resource type name for this resource class.
685 */
686 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::IAM::OIDCProvider";
687 /**
688 * A factory method that creates a new instance of this class from an object
689 * containing the CloudFormation properties of this resource.
690 * Used in the @aws-cdk/cloudformation-include module.
691 *
692 * @internal
693 */
694 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnOIDCProvider;
695 /**
696 * Returns the Amazon Resource Name (ARN) for the specified `AWS::IAM::OIDCProvider` resource.
697 * @cloudformationAttribute Arn
698 */
699 readonly attrArn: string;
700 /**
701 * A list of certificate thumbprints that are associated with the specified IAM OIDC provider resource object. For more information, see [CreateOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html) .
702 *
703 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html#cfn-iam-oidcprovider-thumbprintlist
704 */
705 thumbprintList: string[];
706 /**
707 * A list of client IDs (also known as audiences) that are associated with the specified IAM OIDC provider resource object. For more information, see [CreateOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html) .
708 *
709 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html#cfn-iam-oidcprovider-clientidlist
710 */
711 clientIdList: string[] | undefined;
712 /**
713 * A list of tags that are attached to the specified IAM OIDC provider. The returned list of tags is sorted by tag key. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide* .
714 *
715 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html#cfn-iam-oidcprovider-tags
716 */
717 readonly tags: cdk.TagManager;
718 /**
719 * The URL that the IAM OIDC provider resource object is associated with. For more information, see [CreateOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html) .
720 *
721 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html#cfn-iam-oidcprovider-url
722 */
723 url: string | undefined;
724 /**
725 * Create a new `AWS::IAM::OIDCProvider`.
726 *
727 * @param scope - scope in which this resource is defined
728 * @param id - scoped id of the resource
729 * @param props - resource properties
730 */
731 constructor(scope: cdk.Construct, id: string, props: CfnOIDCProviderProps);
732 /**
733 * Examines the CloudFormation resource and discloses attributes.
734 *
735 * @param inspector - tree inspector to collect and process attributes
736 *
737 */
738 inspect(inspector: cdk.TreeInspector): void;
739 protected get cfnProperties(): {
740 [key: string]: any;
741 };
742 protected renderProperties(props: {
743 [key: string]: any;
744 }): {
745 [key: string]: any;
746 };
747}
748/**
749 * Properties for defining a `CfnPolicy`
750 *
751 * @struct
752 * @stability external
753 *
754 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html
755 */
756export interface CfnPolicyProps {
757 /**
758 * The policy document.
759 *
760 * You must provide policies in JSON format in IAM. However, for AWS CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format. AWS CloudFormation always converts a YAML policy to JSON format before submitting it to IAM.
761 *
762 * The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following:
763 *
764 * - Any printable ASCII character ranging from the space character ( `\ u0020` ) through the end of the ASCII character range
765 * - The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\ u00FF` )
766 * - The special characters tab ( `\ u0009` ), line feed ( `\ u000A` ), and carriage return ( `\ u000D` )
767 *
768 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-policydocument
769 */
770 readonly policyDocument: any | cdk.IResolvable;
771 /**
772 * The name of the policy document.
773 *
774 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
775 *
776 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-policyname
777 */
778 readonly policyName: string;
779 /**
780 * The name of the group to associate the policy with.
781 *
782 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-.
783 *
784 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-groups
785 */
786 readonly groups?: string[];
787 /**
788 * The name of the role to associate the policy with.
789 *
790 * This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
791 *
792 * > If an external policy (such as `AWS::IAM::Policy` or `AWS::IAM::ManagedPolicy` ) has a `Ref` to a role and if a resource (such as `AWS::ECS::Service` ) also has a `Ref` to the same role, add a `DependsOn` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an `AWS::ECS::Service` resource, the `DependsOn` attribute ensures that AWS CloudFormation deletes the `AWS::ECS::Service` resource before deleting its role's policy.
793 *
794 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-roles
795 */
796 readonly roles?: string[];
797 /**
798 * The name of the user to associate the policy with.
799 *
800 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
801 *
802 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-users
803 */
804 readonly users?: string[];
805}
806/**
807 * A CloudFormation `AWS::IAM::Policy`
808 *
809 * Adds or updates an inline policy document that is embedded in the specified IAM user, group, or role.
810 *
811 * An IAM user can also have a managed policy attached to it. For information about policies, see [Managed Policies and Inline Policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide* .
812 *
813 * The Groups, Roles, and Users properties are optional. However, you must specify at least one of these properties.
814 *
815 * For information about limits on the number of inline policies that you can embed in an identity, see [Limitations on IAM Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *IAM User Guide* .
816 *
817 * @cloudformationResource AWS::IAM::Policy
818 * @stability external
819 *
820 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html
821 */
822export declare class CfnPolicy extends cdk.CfnResource implements cdk.IInspectable {
823 /**
824 * The CloudFormation resource type name for this resource class.
825 */
826 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::IAM::Policy";
827 /**
828 * A factory method that creates a new instance of this class from an object
829 * containing the CloudFormation properties of this resource.
830 * Used in the @aws-cdk/cloudformation-include module.
831 *
832 * @internal
833 */
834 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnPolicy;
835 /**
836 * The policy document.
837 *
838 * You must provide policies in JSON format in IAM. However, for AWS CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format. AWS CloudFormation always converts a YAML policy to JSON format before submitting it to IAM.
839 *
840 * The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following:
841 *
842 * - Any printable ASCII character ranging from the space character ( `\ u0020` ) through the end of the ASCII character range
843 * - The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\ u00FF` )
844 * - The special characters tab ( `\ u0009` ), line feed ( `\ u000A` ), and carriage return ( `\ u000D` )
845 *
846 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-policydocument
847 */
848 policyDocument: any | cdk.IResolvable;
849 /**
850 * The name of the policy document.
851 *
852 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
853 *
854 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-policyname
855 */
856 policyName: string;
857 /**
858 * The name of the group to associate the policy with.
859 *
860 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-.
861 *
862 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-groups
863 */
864 groups: string[] | undefined;
865 /**
866 * The name of the role to associate the policy with.
867 *
868 * This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
869 *
870 * > If an external policy (such as `AWS::IAM::Policy` or `AWS::IAM::ManagedPolicy` ) has a `Ref` to a role and if a resource (such as `AWS::ECS::Service` ) also has a `Ref` to the same role, add a `DependsOn` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an `AWS::ECS::Service` resource, the `DependsOn` attribute ensures that AWS CloudFormation deletes the `AWS::ECS::Service` resource before deleting its role's policy.
871 *
872 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-roles
873 */
874 roles: string[] | undefined;
875 /**
876 * The name of the user to associate the policy with.
877 *
878 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
879 *
880 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-users
881 */
882 users: string[] | undefined;
883 /**
884 * Create a new `AWS::IAM::Policy`.
885 *
886 * @param scope - scope in which this resource is defined
887 * @param id - scoped id of the resource
888 * @param props - resource properties
889 */
890 constructor(scope: cdk.Construct, id: string, props: CfnPolicyProps);
891 /**
892 * Examines the CloudFormation resource and discloses attributes.
893 *
894 * @param inspector - tree inspector to collect and process attributes
895 *
896 */
897 inspect(inspector: cdk.TreeInspector): void;
898 protected get cfnProperties(): {
899 [key: string]: any;
900 };
901 protected renderProperties(props: {
902 [key: string]: any;
903 }): {
904 [key: string]: any;
905 };
906}
907/**
908 * Properties for defining a `CfnRole`
909 *
910 * @struct
911 * @stability external
912 *
913 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html
914 */
915export interface CfnRoleProps {
916 /**
917 * The trust policy that is associated with this role. Trust policies define which entities can assume the role. You can associate only one trust policy with a role. For an example of a policy that can be used to assume a role, see [Template Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#aws-resource-iam-role--examples) . For more information about the elements that you can use in an IAM policy, see [IAM Policy Elements Reference](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) in the *IAM User Guide* .
918 *
919 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-assumerolepolicydocument
920 */
921 readonly assumeRolePolicyDocument: any | cdk.IResolvable;
922 /**
923 * A description of the role that you provide.
924 *
925 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-description
926 */
927 readonly description?: string;
928 /**
929 * A list of Amazon Resource Names (ARNs) of the IAM managed policies that you want to attach to the role.
930 *
931 * For more information about ARNs, see [Amazon Resource Names (ARNs) and AWS Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *AWS General Reference* .
932 *
933 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-managepolicyarns
934 */
935 readonly managedPolicyArns?: string[];
936 /**
937 * The maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 1 hour to 12 hours.
938 *
939 * Anyone who assumes the role from the or API can use the `DurationSeconds` API parameter or the `duration-seconds` CLI parameter to request a longer session. The `MaxSessionDuration` setting determines the maximum duration that can be requested using the `DurationSeconds` parameter. If users don't specify a value for the `DurationSeconds` parameter, their security credentials are valid for one hour by default. This applies when you use the `AssumeRole*` API operations or the `assume-role*` CLI operations but does not apply when you use those operations to create a console URL. For more information, see [Using IAM roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) in the *IAM User Guide* .
940 *
941 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-maxsessionduration
942 */
943 readonly maxSessionDuration?: number;
944 /**
945 * The path to the role. For more information about paths, see [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide* .
946 *
947 * This parameter is optional. If it is not included, it defaults to a slash (/).
948 *
949 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! ( `\ u0021` ) through the DEL character ( `\ u007F` ), including most punctuation characters, digits, and upper and lowercased letters.
950 *
951 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-path
952 */
953 readonly path?: string;
954 /**
955 * The ARN of the policy used to set the permissions boundary for the role.
956 *
957 * For more information about permissions boundaries, see [Permissions boundaries for IAM identities](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) in the *IAM User Guide* .
958 *
959 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary
960 */
961 readonly permissionsBoundary?: string;
962 /**
963 * Adds or updates an inline policy document that is embedded in the specified IAM role.
964 *
965 * When you embed an inline policy in a role, the inline policy is used as part of the role's access (permissions) policy. The role's trust policy is created at the same time as the role. You can update a role's trust policy later. For more information about IAM roles, go to [Using Roles to Delegate Permissions and Federate Identities](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html) .
966 *
967 * A role can also have an attached managed policy. For information about policies, see [Managed Policies and Inline Policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide* .
968 *
969 * For information about limits on the number of inline policies that you can embed with a role, see [Limitations on IAM Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *IAM User Guide* .
970 *
971 * > If an external policy (such as `AWS::IAM::Policy` or `AWS::IAM::ManagedPolicy` ) has a `Ref` to a role and if a resource (such as `AWS::ECS::Service` ) also has a `Ref` to the same role, add a `DependsOn` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an `AWS::ECS::Service` resource, the `DependsOn` attribute ensures that AWS CloudFormation deletes the `AWS::ECS::Service` resource before deleting its role's policy.
972 *
973 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-policies
974 */
975 readonly policies?: Array<CfnRole.PolicyProperty | cdk.IResolvable> | cdk.IResolvable;
976 /**
977 * A name for the IAM role, up to 64 characters in length. For valid values, see the `RoleName` parameter for the [`CreateRole`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html) action in the *IAM User Guide* .
978 *
979 * This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-. The role name must be unique within the account. Role names are not distinguished by case. For example, you cannot create roles named both "Role1" and "role1".
980 *
981 * If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the role name.
982 *
983 * If you specify a name, you must specify the `CAPABILITY_NAMED_IAM` value to acknowledge your template's capabilities. For more information, see [Acknowledging IAM Resources in AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities) .
984 *
985 * > Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using `Fn::Join` and `AWS::Region` to create a Region-specific name, as in the following example: `{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}` .
986 *
987 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-rolename
988 */
989 readonly roleName?: string;
990 /**
991 * A list of tags that are attached to the role. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide* .
992 *
993 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-tags
994 */
995 readonly tags?: cdk.CfnTag[];
996}
997/**
998 * A CloudFormation `AWS::IAM::Role`
999 *
1000 * Creates a new role for your AWS account . For more information about roles, see [IAM roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html) . For information about quotas for role names and the number of roles you can create, see [IAM and AWS STS quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide* .
1001 *
1002 * @cloudformationResource AWS::IAM::Role
1003 * @stability external
1004 *
1005 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html
1006 */
1007export declare class CfnRole extends cdk.CfnResource implements cdk.IInspectable {
1008 /**
1009 * The CloudFormation resource type name for this resource class.
1010 */
1011 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::IAM::Role";
1012 /**
1013 * A factory method that creates a new instance of this class from an object
1014 * containing the CloudFormation properties of this resource.
1015 * Used in the @aws-cdk/cloudformation-include module.
1016 *
1017 * @internal
1018 */
1019 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnRole;
1020 /**
1021 * Returns the Amazon Resource Name (ARN) for the role. For example:
1022 *
1023 * `{"Fn::GetAtt" : ["MyRole", "Arn"] }`
1024 *
1025 * This will return a value such as `arn:aws:iam::1234567890:role/MyRole-AJJHDSKSDF` .
1026 * @cloudformationAttribute Arn
1027 */
1028 readonly attrArn: string;
1029 /**
1030 * Returns the stable and unique string identifying the role. For example, `AIDAJQABLZS4A3QDU576Q` .
1031 *
1032 * For more information about IDs, see [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) in the *IAM User Guide* .
1033 * @cloudformationAttribute RoleId
1034 */
1035 readonly attrRoleId: string;
1036 /**
1037 * The trust policy that is associated with this role. Trust policies define which entities can assume the role. You can associate only one trust policy with a role. For an example of a policy that can be used to assume a role, see [Template Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#aws-resource-iam-role--examples) . For more information about the elements that you can use in an IAM policy, see [IAM Policy Elements Reference](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) in the *IAM User Guide* .
1038 *
1039 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-assumerolepolicydocument
1040 */
1041 assumeRolePolicyDocument: any | cdk.IResolvable;
1042 /**
1043 * A description of the role that you provide.
1044 *
1045 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-description
1046 */
1047 description: string | undefined;
1048 /**
1049 * A list of Amazon Resource Names (ARNs) of the IAM managed policies that you want to attach to the role.
1050 *
1051 * For more information about ARNs, see [Amazon Resource Names (ARNs) and AWS Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *AWS General Reference* .
1052 *
1053 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-managepolicyarns
1054 */
1055 managedPolicyArns: string[] | undefined;
1056 /**
1057 * The maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 1 hour to 12 hours.
1058 *
1059 * Anyone who assumes the role from the or API can use the `DurationSeconds` API parameter or the `duration-seconds` CLI parameter to request a longer session. The `MaxSessionDuration` setting determines the maximum duration that can be requested using the `DurationSeconds` parameter. If users don't specify a value for the `DurationSeconds` parameter, their security credentials are valid for one hour by default. This applies when you use the `AssumeRole*` API operations or the `assume-role*` CLI operations but does not apply when you use those operations to create a console URL. For more information, see [Using IAM roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) in the *IAM User Guide* .
1060 *
1061 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-maxsessionduration
1062 */
1063 maxSessionDuration: number | undefined;
1064 /**
1065 * The path to the role. For more information about paths, see [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide* .
1066 *
1067 * This parameter is optional. If it is not included, it defaults to a slash (/).
1068 *
1069 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! ( `\ u0021` ) through the DEL character ( `\ u007F` ), including most punctuation characters, digits, and upper and lowercased letters.
1070 *
1071 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-path
1072 */
1073 path: string | undefined;
1074 /**
1075 * The ARN of the policy used to set the permissions boundary for the role.
1076 *
1077 * For more information about permissions boundaries, see [Permissions boundaries for IAM identities](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) in the *IAM User Guide* .
1078 *
1079 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary
1080 */
1081 permissionsBoundary: string | undefined;
1082 /**
1083 * Adds or updates an inline policy document that is embedded in the specified IAM role.
1084 *
1085 * When you embed an inline policy in a role, the inline policy is used as part of the role's access (permissions) policy. The role's trust policy is created at the same time as the role. You can update a role's trust policy later. For more information about IAM roles, go to [Using Roles to Delegate Permissions and Federate Identities](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html) .
1086 *
1087 * A role can also have an attached managed policy. For information about policies, see [Managed Policies and Inline Policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide* .
1088 *
1089 * For information about limits on the number of inline policies that you can embed with a role, see [Limitations on IAM Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *IAM User Guide* .
1090 *
1091 * > If an external policy (such as `AWS::IAM::Policy` or `AWS::IAM::ManagedPolicy` ) has a `Ref` to a role and if a resource (such as `AWS::ECS::Service` ) also has a `Ref` to the same role, add a `DependsOn` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an `AWS::ECS::Service` resource, the `DependsOn` attribute ensures that AWS CloudFormation deletes the `AWS::ECS::Service` resource before deleting its role's policy.
1092 *
1093 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-policies
1094 */
1095 policies: Array<CfnRole.PolicyProperty | cdk.IResolvable> | cdk.IResolvable | undefined;
1096 /**
1097 * A name for the IAM role, up to 64 characters in length. For valid values, see the `RoleName` parameter for the [`CreateRole`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html) action in the *IAM User Guide* .
1098 *
1099 * This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-. The role name must be unique within the account. Role names are not distinguished by case. For example, you cannot create roles named both "Role1" and "role1".
1100 *
1101 * If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the role name.
1102 *
1103 * If you specify a name, you must specify the `CAPABILITY_NAMED_IAM` value to acknowledge your template's capabilities. For more information, see [Acknowledging IAM Resources in AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities) .
1104 *
1105 * > Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using `Fn::Join` and `AWS::Region` to create a Region-specific name, as in the following example: `{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}` .
1106 *
1107 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-rolename
1108 */
1109 roleName: string | undefined;
1110 /**
1111 * A list of tags that are attached to the role. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide* .
1112 *
1113 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-tags
1114 */
1115 readonly tags: cdk.TagManager;
1116 /**
1117 * Create a new `AWS::IAM::Role`.
1118 *
1119 * @param scope - scope in which this resource is defined
1120 * @param id - scoped id of the resource
1121 * @param props - resource properties
1122 */
1123 constructor(scope: cdk.Construct, id: string, props: CfnRoleProps);
1124 /**
1125 * Examines the CloudFormation resource and discloses attributes.
1126 *
1127 * @param inspector - tree inspector to collect and process attributes
1128 *
1129 */
1130 inspect(inspector: cdk.TreeInspector): void;
1131 protected get cfnProperties(): {
1132 [key: string]: any;
1133 };
1134 protected renderProperties(props: {
1135 [key: string]: any;
1136 }): {
1137 [key: string]: any;
1138 };
1139}
1140export declare namespace CfnRole {
1141 /**
1142 * Contains information about an attached policy.
1143 *
1144 * An attached policy is a managed policy that has been attached to a user, group, or role.
1145 *
1146 * For more information about managed policies, refer to [Managed Policies and Inline Policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide* .
1147 *
1148 * @struct
1149 * @stability external
1150 *
1151 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html
1152 */
1153 interface PolicyProperty {
1154 /**
1155 * The policy document.
1156 *
1157 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html#cfn-iam-policies-policydocument
1158 */
1159 readonly policyDocument: any | cdk.IResolvable;
1160 /**
1161 * The friendly name (not ARN) identifying the policy.
1162 *
1163 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html#cfn-iam-policies-policyname
1164 */
1165 readonly policyName: string;
1166 }
1167}
1168/**
1169 * Properties for defining a `CfnSAMLProvider`
1170 *
1171 * @struct
1172 * @stability external
1173 *
1174 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-samlprovider.html
1175 */
1176export interface CfnSAMLProviderProps {
1177 /**
1178 * An XML document generated by an identity provider (IdP) that supports SAML 2.0. The document includes the issuer's name, expiration information, and keys that can be used to validate the SAML authentication response (assertions) that are received from the IdP. You must generate the metadata document using the identity management software that is used as your organization's IdP.
1179 *
1180 * For more information, see [About SAML 2.0-based federation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html) in the *IAM User Guide*
1181 *
1182 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-samlprovider.html#cfn-iam-samlprovider-samlmetadatadocument
1183 */
1184 readonly samlMetadataDocument: string;
1185 /**
1186 * The name of the provider to create.
1187 *
1188 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
1189 *
1190 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-samlprovider.html#cfn-iam-samlprovider-name
1191 */
1192 readonly name?: string;
1193 /**
1194 * A list of tags that you want to attach to the new IAM SAML provider. Each tag consists of a key name and an associated value. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide* .
1195 *
1196 * > If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created.
1197 *
1198 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-samlprovider.html#cfn-iam-samlprovider-tags
1199 */
1200 readonly tags?: cdk.CfnTag[];
1201}
1202/**
1203 * A CloudFormation `AWS::IAM::SAMLProvider`
1204 *
1205 * Creates an IAM resource that describes an identity provider (IdP) that supports SAML 2.0.
1206 *
1207 * The SAML provider resource that you create with this operation can be used as a principal in an IAM role's trust policy. Such a policy can enable federated users who sign in using the SAML IdP to assume the role. You can create an IAM role that supports Web-based single sign-on (SSO) to the AWS Management Console or one that supports API access to AWS .
1208 *
1209 * When you create the SAML provider resource, you upload a SAML metadata document that you get from your IdP. That document includes the issuer's name, expiration information, and keys that can be used to validate the SAML authentication response (assertions) that the IdP sends. You must generate the metadata document using the identity management software that is used as your organization's IdP.
1210 *
1211 * > This operation requires [Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) .
1212 *
1213 * For more information, see [Enabling SAML 2.0 federated users to access the AWS Management Console](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-saml.html) and [About SAML 2.0-based federation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html) in the *IAM User Guide* .
1214 *
1215 * @cloudformationResource AWS::IAM::SAMLProvider
1216 * @stability external
1217 *
1218 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-samlprovider.html
1219 */
1220export declare class CfnSAMLProvider extends cdk.CfnResource implements cdk.IInspectable {
1221 /**
1222 * The CloudFormation resource type name for this resource class.
1223 */
1224 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::IAM::SAMLProvider";
1225 /**
1226 * A factory method that creates a new instance of this class from an object
1227 * containing the CloudFormation properties of this resource.
1228 * Used in the @aws-cdk/cloudformation-include module.
1229 *
1230 * @internal
1231 */
1232 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnSAMLProvider;
1233 /**
1234 * Returns the Amazon Resource Name (ARN) for the specified `AWS::IAM::SAMLProvider` resource.
1235 * @cloudformationAttribute Arn
1236 */
1237 readonly attrArn: string;
1238 /**
1239 * An XML document generated by an identity provider (IdP) that supports SAML 2.0. The document includes the issuer's name, expiration information, and keys that can be used to validate the SAML authentication response (assertions) that are received from the IdP. You must generate the metadata document using the identity management software that is used as your organization's IdP.
1240 *
1241 * For more information, see [About SAML 2.0-based federation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html) in the *IAM User Guide*
1242 *
1243 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-samlprovider.html#cfn-iam-samlprovider-samlmetadatadocument
1244 */
1245 samlMetadataDocument: string;
1246 /**
1247 * The name of the provider to create.
1248 *
1249 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
1250 *
1251 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-samlprovider.html#cfn-iam-samlprovider-name
1252 */
1253 name: string | undefined;
1254 /**
1255 * A list of tags that you want to attach to the new IAM SAML provider. Each tag consists of a key name and an associated value. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide* .
1256 *
1257 * > If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created.
1258 *
1259 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-samlprovider.html#cfn-iam-samlprovider-tags
1260 */
1261 readonly tags: cdk.TagManager;
1262 /**
1263 * Create a new `AWS::IAM::SAMLProvider`.
1264 *
1265 * @param scope - scope in which this resource is defined
1266 * @param id - scoped id of the resource
1267 * @param props - resource properties
1268 */
1269 constructor(scope: cdk.Construct, id: string, props: CfnSAMLProviderProps);
1270 /**
1271 * Examines the CloudFormation resource and discloses attributes.
1272 *
1273 * @param inspector - tree inspector to collect and process attributes
1274 *
1275 */
1276 inspect(inspector: cdk.TreeInspector): void;
1277 protected get cfnProperties(): {
1278 [key: string]: any;
1279 };
1280 protected renderProperties(props: {
1281 [key: string]: any;
1282 }): {
1283 [key: string]: any;
1284 };
1285}
1286/**
1287 * Properties for defining a `CfnServerCertificate`
1288 *
1289 * @struct
1290 * @stability external
1291 *
1292 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html
1293 */
1294export interface CfnServerCertificateProps {
1295 /**
1296 * The contents of the public key certificate.
1297 *
1298 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html#cfn-iam-servercertificate-certificatebody
1299 */
1300 readonly certificateBody?: string;
1301 /**
1302 * The contents of the public key certificate chain.
1303 *
1304 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html#cfn-iam-servercertificate-certificatechain
1305 */
1306 readonly certificateChain?: string;
1307 /**
1308 * The path for the server certificate. For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide* .
1309 *
1310 * This parameter is optional. If it is not included, it defaults to a slash (/). This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! ( `\ u0021` ) through the DEL character ( `\ u007F` ), including most punctuation characters, digits, and upper and lowercased letters.
1311 *
1312 * > If you are uploading a server certificate specifically for use with Amazon CloudFront distributions, you must specify a path using the `path` parameter. The path must begin with `/cloudfront` and must include a trailing slash (for example, `/cloudfront/test/` ).
1313 *
1314 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html#cfn-iam-servercertificate-path
1315 */
1316 readonly path?: string;
1317 /**
1318 * The contents of the private key in PEM-encoded format.
1319 *
1320 * The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following:
1321 *
1322 * - Any printable ASCII character ranging from the space character ( `\ u0020` ) through the end of the ASCII character range
1323 * - The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\ u00FF` )
1324 * - The special characters tab ( `\ u0009` ), line feed ( `\ u000A` ), and carriage return ( `\ u000D` )
1325 *
1326 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html#cfn-iam-servercertificate-privatekey
1327 */
1328 readonly privateKey?: string;
1329 /**
1330 * The name for the server certificate. Do not include the path in this value. The name of the certificate cannot contain any spaces.
1331 *
1332 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
1333 *
1334 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html#cfn-iam-servercertificate-servercertificatename
1335 */
1336 readonly serverCertificateName?: string;
1337 /**
1338 * A list of tags that are attached to the server certificate. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide* .
1339 *
1340 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html#cfn-iam-servercertificate-tags
1341 */
1342 readonly tags?: cdk.CfnTag[];
1343}
1344/**
1345 * A CloudFormation `AWS::IAM::ServerCertificate`
1346 *
1347 * Uploads a server certificate entity for the AWS account . The server certificate entity includes a public key certificate, a private key, and an optional certificate chain, which should all be PEM-encoded.
1348 *
1349 * We recommend that you use [AWS Certificate Manager](https://docs.aws.amazon.com/acm/) to provision, manage, and deploy your server certificates. With ACM you can request a certificate, deploy it to AWS resources, and let ACM handle certificate renewals for you. Certificates provided by ACM are free. For more information about using ACM, see the [AWS Certificate Manager User Guide](https://docs.aws.amazon.com/acm/latest/userguide/) .
1350 *
1351 * For more information about working with server certificates, see [Working with server certificates](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) in the *IAM User Guide* . This topic includes a list of AWS services that can use the server certificates that you manage with IAM.
1352 *
1353 * For information about the number of server certificates you can upload, see [IAM and AWS STS quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide* .
1354 *
1355 * > Because the body of the public key certificate, private key, and the certificate chain can be large, you should use POST rather than GET when calling `UploadServerCertificate` . For information about setting up signatures and authorization through the API, see [Signing AWS API requests](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html) in the *AWS General Reference* . For general information about using the Query API with IAM, see [Calling the API by making HTTP query requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/programming.html) in the *IAM User Guide* .
1356 *
1357 * @cloudformationResource AWS::IAM::ServerCertificate
1358 * @stability external
1359 *
1360 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html
1361 */
1362export declare class CfnServerCertificate extends cdk.CfnResource implements cdk.IInspectable {
1363 /**
1364 * The CloudFormation resource type name for this resource class.
1365 */
1366 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::IAM::ServerCertificate";
1367 /**
1368 * A factory method that creates a new instance of this class from an object
1369 * containing the CloudFormation properties of this resource.
1370 * Used in the @aws-cdk/cloudformation-include module.
1371 *
1372 * @internal
1373 */
1374 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnServerCertificate;
1375 /**
1376 * Returns the Amazon Resource Name (ARN) for the specified `AWS::IAM::ServerCertificate` resource.
1377 * @cloudformationAttribute Arn
1378 */
1379 readonly attrArn: string;
1380 /**
1381 * The contents of the public key certificate.
1382 *
1383 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html#cfn-iam-servercertificate-certificatebody
1384 */
1385 certificateBody: string | undefined;
1386 /**
1387 * The contents of the public key certificate chain.
1388 *
1389 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html#cfn-iam-servercertificate-certificatechain
1390 */
1391 certificateChain: string | undefined;
1392 /**
1393 * The path for the server certificate. For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide* .
1394 *
1395 * This parameter is optional. If it is not included, it defaults to a slash (/). This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! ( `\ u0021` ) through the DEL character ( `\ u007F` ), including most punctuation characters, digits, and upper and lowercased letters.
1396 *
1397 * > If you are uploading a server certificate specifically for use with Amazon CloudFront distributions, you must specify a path using the `path` parameter. The path must begin with `/cloudfront` and must include a trailing slash (for example, `/cloudfront/test/` ).
1398 *
1399 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html#cfn-iam-servercertificate-path
1400 */
1401 path: string | undefined;
1402 /**
1403 * The contents of the private key in PEM-encoded format.
1404 *
1405 * The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following:
1406 *
1407 * - Any printable ASCII character ranging from the space character ( `\ u0020` ) through the end of the ASCII character range
1408 * - The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\ u00FF` )
1409 * - The special characters tab ( `\ u0009` ), line feed ( `\ u000A` ), and carriage return ( `\ u000D` )
1410 *
1411 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html#cfn-iam-servercertificate-privatekey
1412 */
1413 privateKey: string | undefined;
1414 /**
1415 * The name for the server certificate. Do not include the path in this value. The name of the certificate cannot contain any spaces.
1416 *
1417 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
1418 *
1419 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html#cfn-iam-servercertificate-servercertificatename
1420 */
1421 serverCertificateName: string | undefined;
1422 /**
1423 * A list of tags that are attached to the server certificate. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide* .
1424 *
1425 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html#cfn-iam-servercertificate-tags
1426 */
1427 readonly tags: cdk.TagManager;
1428 /**
1429 * Create a new `AWS::IAM::ServerCertificate`.
1430 *
1431 * @param scope - scope in which this resource is defined
1432 * @param id - scoped id of the resource
1433 * @param props - resource properties
1434 */
1435 constructor(scope: cdk.Construct, id: string, props?: CfnServerCertificateProps);
1436 /**
1437 * Examines the CloudFormation resource and discloses attributes.
1438 *
1439 * @param inspector - tree inspector to collect and process attributes
1440 *
1441 */
1442 inspect(inspector: cdk.TreeInspector): void;
1443 protected get cfnProperties(): {
1444 [key: string]: any;
1445 };
1446 protected renderProperties(props: {
1447 [key: string]: any;
1448 }): {
1449 [key: string]: any;
1450 };
1451}
1452/**
1453 * Properties for defining a `CfnServiceLinkedRole`
1454 *
1455 * @struct
1456 * @stability external
1457 *
1458 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servicelinkedrole.html
1459 */
1460export interface CfnServiceLinkedRoleProps {
1461 /**
1462 * The service principal for the AWS service to which this role is attached. You use a string similar to a URL but without the http:// in front. For example: `elasticbeanstalk.amazonaws.com` .
1463 *
1464 * Service principals are unique and case-sensitive. To find the exact service principal for your service-linked role, see [AWS services that work with IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) in the *IAM User Guide* . Look for the services that have *Yes* in the *Service-Linked Role* column. Choose the *Yes* link to view the service-linked role documentation for that service.
1465 *
1466 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servicelinkedrole.html#cfn-iam-servicelinkedrole-awsservicename
1467 */
1468 readonly awsServiceName: string;
1469 /**
1470 * A string that you provide, which is combined with the service-provided prefix to form the complete role name. If you make multiple requests for the same service, then you must supply a different `CustomSuffix` for each request. Otherwise the request fails with a duplicate role name error. For example, you could add `-1` or `-debug` to the suffix.
1471 *
1472 * Some services do not support the `CustomSuffix` parameter. If you provide an optional suffix and the operation fails, try the operation again without the suffix.
1473 *
1474 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servicelinkedrole.html#cfn-iam-servicelinkedrole-customsuffix
1475 */
1476 readonly customSuffix?: string;
1477 /**
1478 * The description of the role.
1479 *
1480 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servicelinkedrole.html#cfn-iam-servicelinkedrole-description
1481 */
1482 readonly description?: string;
1483}
1484/**
1485 * A CloudFormation `AWS::IAM::ServiceLinkedRole`
1486 *
1487 * Creates an IAM role that is linked to a specific AWS service. The service controls the attached policies and when the role can be deleted. This helps ensure that the service is not broken by an unexpectedly changed or deleted role, which could put your AWS resources into an unknown state. Allowing the service to control the role helps improve service stability and proper cleanup when a service and its role are no longer needed. For more information, see [Using service-linked roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html) in the *IAM User Guide* .
1488 *
1489 * To attach a policy to this service-linked role, you must make the request using the AWS service that depends on this role.
1490 *
1491 * @cloudformationResource AWS::IAM::ServiceLinkedRole
1492 * @stability external
1493 *
1494 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servicelinkedrole.html
1495 */
1496export declare class CfnServiceLinkedRole extends cdk.CfnResource implements cdk.IInspectable {
1497 /**
1498 * The CloudFormation resource type name for this resource class.
1499 */
1500 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::IAM::ServiceLinkedRole";
1501 /**
1502 * A factory method that creates a new instance of this class from an object
1503 * containing the CloudFormation properties of this resource.
1504 * Used in the @aws-cdk/cloudformation-include module.
1505 *
1506 * @internal
1507 */
1508 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnServiceLinkedRole;
1509 /**
1510 * The service principal for the AWS service to which this role is attached. You use a string similar to a URL but without the http:// in front. For example: `elasticbeanstalk.amazonaws.com` .
1511 *
1512 * Service principals are unique and case-sensitive. To find the exact service principal for your service-linked role, see [AWS services that work with IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) in the *IAM User Guide* . Look for the services that have *Yes* in the *Service-Linked Role* column. Choose the *Yes* link to view the service-linked role documentation for that service.
1513 *
1514 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servicelinkedrole.html#cfn-iam-servicelinkedrole-awsservicename
1515 */
1516 awsServiceName: string;
1517 /**
1518 * A string that you provide, which is combined with the service-provided prefix to form the complete role name. If you make multiple requests for the same service, then you must supply a different `CustomSuffix` for each request. Otherwise the request fails with a duplicate role name error. For example, you could add `-1` or `-debug` to the suffix.
1519 *
1520 * Some services do not support the `CustomSuffix` parameter. If you provide an optional suffix and the operation fails, try the operation again without the suffix.
1521 *
1522 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servicelinkedrole.html#cfn-iam-servicelinkedrole-customsuffix
1523 */
1524 customSuffix: string | undefined;
1525 /**
1526 * The description of the role.
1527 *
1528 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servicelinkedrole.html#cfn-iam-servicelinkedrole-description
1529 */
1530 description: string | undefined;
1531 /**
1532 * Create a new `AWS::IAM::ServiceLinkedRole`.
1533 *
1534 * @param scope - scope in which this resource is defined
1535 * @param id - scoped id of the resource
1536 * @param props - resource properties
1537 */
1538 constructor(scope: cdk.Construct, id: string, props: CfnServiceLinkedRoleProps);
1539 /**
1540 * Examines the CloudFormation resource and discloses attributes.
1541 *
1542 * @param inspector - tree inspector to collect and process attributes
1543 *
1544 */
1545 inspect(inspector: cdk.TreeInspector): void;
1546 protected get cfnProperties(): {
1547 [key: string]: any;
1548 };
1549 protected renderProperties(props: {
1550 [key: string]: any;
1551 }): {
1552 [key: string]: any;
1553 };
1554}
1555/**
1556 * Properties for defining a `CfnUser`
1557 *
1558 * @struct
1559 * @stability external
1560 *
1561 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html
1562 */
1563export interface CfnUserProps {
1564 /**
1565 * A list of group names to which you want to add the user.
1566 *
1567 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-groups
1568 */
1569 readonly groups?: string[];
1570 /**
1571 * Creates a password for the specified IAM user. A password allows an IAM user to access AWS services through the AWS Management Console .
1572 *
1573 * You can use the AWS CLI , the AWS API, or the *Users* page in the IAM console to create a password for any IAM user. Use [ChangePassword](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ChangePassword.html) to update your own existing password in the *My Security Credentials* page in the AWS Management Console .
1574 *
1575 * For more information about managing passwords, see [Managing passwords](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html) in the *IAM User Guide* .
1576 *
1577 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-loginprofile
1578 */
1579 readonly loginProfile?: CfnUser.LoginProfileProperty | cdk.IResolvable;
1580 /**
1581 * A list of Amazon Resource Names (ARNs) of the IAM managed policies that you want to attach to the user.
1582 *
1583 * For more information about ARNs, see [Amazon Resource Names (ARNs) and AWS Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *AWS General Reference* .
1584 *
1585 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-managepolicyarns
1586 */
1587 readonly managedPolicyArns?: string[];
1588 /**
1589 * The path for the user name. For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide* .
1590 *
1591 * This parameter is optional. If it is not included, it defaults to a slash (/).
1592 *
1593 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! ( `\ u0021` ) through the DEL character ( `\ u007F` ), including most punctuation characters, digits, and upper and lowercased letters.
1594 *
1595 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-path
1596 */
1597 readonly path?: string;
1598 /**
1599 * The ARN of the policy that is used to set the permissions boundary for the user.
1600 *
1601 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-permissionsboundary
1602 */
1603 readonly permissionsBoundary?: string;
1604 /**
1605 * Adds or updates an inline policy document that is embedded in the specified IAM user. To view AWS::IAM::User snippets, see [Declaring an IAM User Resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-iam-user) .
1606 *
1607 * > The name of each policy for a role, user, or group must be unique. If you don't choose unique names, updates to the IAM identity will fail.
1608 *
1609 * For information about limits on the number of inline policies that you can embed in a user, see [Limitations on IAM Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *IAM User Guide* .
1610 *
1611 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-policies
1612 */
1613 readonly policies?: Array<CfnUser.PolicyProperty | cdk.IResolvable> | cdk.IResolvable;
1614 /**
1615 * A list of tags that you want to attach to the new user. Each tag consists of a key name and an associated value. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide* .
1616 *
1617 * > If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created.
1618 *
1619 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-tags
1620 */
1621 readonly tags?: cdk.CfnTag[];
1622 /**
1623 * The name of the user to create. Do not include the path in this value.
1624 *
1625 * This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-. The user name must be unique within the account. User names are not distinguished by case. For example, you cannot create users named both "John" and "john".
1626 *
1627 * If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the user name.
1628 *
1629 * If you specify a name, you must specify the `CAPABILITY_NAMED_IAM` value to acknowledge your template's capabilities. For more information, see [Acknowledging IAM Resources in AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities) .
1630 *
1631 * > Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using `Fn::Join` and `AWS::Region` to create a Region-specific name, as in the following example: `{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}` .
1632 *
1633 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-username
1634 */
1635 readonly userName?: string;
1636}
1637/**
1638 * A CloudFormation `AWS::IAM::User`
1639 *
1640 * Creates a new IAM user for your AWS account .
1641 *
1642 * For information about quotas for the number of IAM users you can create, see [IAM and AWS STS quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide* .
1643 *
1644 * @cloudformationResource AWS::IAM::User
1645 * @stability external
1646 *
1647 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html
1648 */
1649export declare class CfnUser extends cdk.CfnResource implements cdk.IInspectable {
1650 /**
1651 * The CloudFormation resource type name for this resource class.
1652 */
1653 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::IAM::User";
1654 /**
1655 * A factory method that creates a new instance of this class from an object
1656 * containing the CloudFormation properties of this resource.
1657 * Used in the @aws-cdk/cloudformation-include module.
1658 *
1659 * @internal
1660 */
1661 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnUser;
1662 /**
1663 * Returns the Amazon Resource Name (ARN) for the specified `AWS::IAM::User` resource. For example: `arn:aws:iam::123456789012:user/mystack-myuser-1CCXAFG2H2U4D` .
1664 * @cloudformationAttribute Arn
1665 */
1666 readonly attrArn: string;
1667 /**
1668 * A list of group names to which you want to add the user.
1669 *
1670 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-groups
1671 */
1672 groups: string[] | undefined;
1673 /**
1674 * Creates a password for the specified IAM user. A password allows an IAM user to access AWS services through the AWS Management Console .
1675 *
1676 * You can use the AWS CLI , the AWS API, or the *Users* page in the IAM console to create a password for any IAM user. Use [ChangePassword](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ChangePassword.html) to update your own existing password in the *My Security Credentials* page in the AWS Management Console .
1677 *
1678 * For more information about managing passwords, see [Managing passwords](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html) in the *IAM User Guide* .
1679 *
1680 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-loginprofile
1681 */
1682 loginProfile: CfnUser.LoginProfileProperty | cdk.IResolvable | undefined;
1683 /**
1684 * A list of Amazon Resource Names (ARNs) of the IAM managed policies that you want to attach to the user.
1685 *
1686 * For more information about ARNs, see [Amazon Resource Names (ARNs) and AWS Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *AWS General Reference* .
1687 *
1688 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-managepolicyarns
1689 */
1690 managedPolicyArns: string[] | undefined;
1691 /**
1692 * The path for the user name. For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide* .
1693 *
1694 * This parameter is optional. If it is not included, it defaults to a slash (/).
1695 *
1696 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! ( `\ u0021` ) through the DEL character ( `\ u007F` ), including most punctuation characters, digits, and upper and lowercased letters.
1697 *
1698 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-path
1699 */
1700 path: string | undefined;
1701 /**
1702 * The ARN of the policy that is used to set the permissions boundary for the user.
1703 *
1704 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-permissionsboundary
1705 */
1706 permissionsBoundary: string | undefined;
1707 /**
1708 * Adds or updates an inline policy document that is embedded in the specified IAM user. To view AWS::IAM::User snippets, see [Declaring an IAM User Resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-iam-user) .
1709 *
1710 * > The name of each policy for a role, user, or group must be unique. If you don't choose unique names, updates to the IAM identity will fail.
1711 *
1712 * For information about limits on the number of inline policies that you can embed in a user, see [Limitations on IAM Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *IAM User Guide* .
1713 *
1714 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-policies
1715 */
1716 policies: Array<CfnUser.PolicyProperty | cdk.IResolvable> | cdk.IResolvable | undefined;
1717 /**
1718 * A list of tags that you want to attach to the new user. Each tag consists of a key name and an associated value. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide* .
1719 *
1720 * > If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created.
1721 *
1722 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-tags
1723 */
1724 readonly tags: cdk.TagManager;
1725 /**
1726 * The name of the user to create. Do not include the path in this value.
1727 *
1728 * This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-. The user name must be unique within the account. User names are not distinguished by case. For example, you cannot create users named both "John" and "john".
1729 *
1730 * If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the user name.
1731 *
1732 * If you specify a name, you must specify the `CAPABILITY_NAMED_IAM` value to acknowledge your template's capabilities. For more information, see [Acknowledging IAM Resources in AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities) .
1733 *
1734 * > Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using `Fn::Join` and `AWS::Region` to create a Region-specific name, as in the following example: `{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}` .
1735 *
1736 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-username
1737 */
1738 userName: string | undefined;
1739 /**
1740 * Create a new `AWS::IAM::User`.
1741 *
1742 * @param scope - scope in which this resource is defined
1743 * @param id - scoped id of the resource
1744 * @param props - resource properties
1745 */
1746 constructor(scope: cdk.Construct, id: string, props?: CfnUserProps);
1747 /**
1748 * Examines the CloudFormation resource and discloses attributes.
1749 *
1750 * @param inspector - tree inspector to collect and process attributes
1751 *
1752 */
1753 inspect(inspector: cdk.TreeInspector): void;
1754 protected get cfnProperties(): {
1755 [key: string]: any;
1756 };
1757 protected renderProperties(props: {
1758 [key: string]: any;
1759 }): {
1760 [key: string]: any;
1761 };
1762}
1763export declare namespace CfnUser {
1764 /**
1765 * Creates a password for the specified user, giving the user the ability to access AWS services through the AWS Management Console . For more information about managing passwords, see [Managing Passwords](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html) in the *IAM User Guide* .
1766 *
1767 * @struct
1768 * @stability external
1769 *
1770 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user-loginprofile.html
1771 */
1772 interface LoginProfileProperty {
1773 /**
1774 * The user's password.
1775 *
1776 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user-loginprofile.html#cfn-iam-user-loginprofile-password
1777 */
1778 readonly password: string;
1779 /**
1780 * Specifies whether the user is required to set a new password on next sign-in.
1781 *
1782 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user-loginprofile.html#cfn-iam-user-loginprofile-passwordresetrequired
1783 */
1784 readonly passwordResetRequired?: boolean | cdk.IResolvable;
1785 }
1786}
1787export declare namespace CfnUser {
1788 /**
1789 * Contains information about an attached policy.
1790 *
1791 * An attached policy is a managed policy that has been attached to a user, group, or role.
1792 *
1793 * For more information about managed policies, refer to [Managed Policies and Inline Policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide* .
1794 *
1795 * @struct
1796 * @stability external
1797 *
1798 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html
1799 */
1800 interface PolicyProperty {
1801 /**
1802 * The policy document.
1803 *
1804 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html#cfn-iam-policies-policydocument
1805 */
1806 readonly policyDocument: any | cdk.IResolvable;
1807 /**
1808 * The friendly name (not ARN) identifying the policy.
1809 *
1810 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html#cfn-iam-policies-policyname
1811 */
1812 readonly policyName: string;
1813 }
1814}
1815/**
1816 * Properties for defining a `CfnUserToGroupAddition`
1817 *
1818 * @struct
1819 * @stability external
1820 *
1821 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html
1822 */
1823export interface CfnUserToGroupAdditionProps {
1824 /**
1825 * The name of the group to update.
1826 *
1827 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
1828 *
1829 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html#cfn-iam-addusertogroup-groupname
1830 */
1831 readonly groupName: string;
1832 /**
1833 * A list of the names of the users that you want to add to the group.
1834 *
1835 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html#cfn-iam-addusertogroup-users
1836 */
1837 readonly users: string[];
1838}
1839/**
1840 * A CloudFormation `AWS::IAM::UserToGroupAddition`
1841 *
1842 * Adds the specified user to the specified group.
1843 *
1844 * @cloudformationResource AWS::IAM::UserToGroupAddition
1845 * @stability external
1846 *
1847 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html
1848 */
1849export declare class CfnUserToGroupAddition extends cdk.CfnResource implements cdk.IInspectable {
1850 /**
1851 * The CloudFormation resource type name for this resource class.
1852 */
1853 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::IAM::UserToGroupAddition";
1854 /**
1855 * A factory method that creates a new instance of this class from an object
1856 * containing the CloudFormation properties of this resource.
1857 * Used in the @aws-cdk/cloudformation-include module.
1858 *
1859 * @internal
1860 */
1861 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnUserToGroupAddition;
1862 /**
1863 * The name of the group to update.
1864 *
1865 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
1866 *
1867 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html#cfn-iam-addusertogroup-groupname
1868 */
1869 groupName: string;
1870 /**
1871 * A list of the names of the users that you want to add to the group.
1872 *
1873 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html#cfn-iam-addusertogroup-users
1874 */
1875 users: string[];
1876 /**
1877 * Create a new `AWS::IAM::UserToGroupAddition`.
1878 *
1879 * @param scope - scope in which this resource is defined
1880 * @param id - scoped id of the resource
1881 * @param props - resource properties
1882 */
1883 constructor(scope: cdk.Construct, id: string, props: CfnUserToGroupAdditionProps);
1884 /**
1885 * Examines the CloudFormation resource and discloses attributes.
1886 *
1887 * @param inspector - tree inspector to collect and process attributes
1888 *
1889 */
1890 inspect(inspector: cdk.TreeInspector): void;
1891 protected get cfnProperties(): {
1892 [key: string]: any;
1893 };
1894 protected renderProperties(props: {
1895 [key: string]: any;
1896 }): {
1897 [key: string]: any;
1898 };
1899}
1900/**
1901 * Properties for defining a `CfnVirtualMFADevice`
1902 *
1903 * @struct
1904 * @stability external
1905 *
1906 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-virtualmfadevice.html
1907 */
1908export interface CfnVirtualMFADeviceProps {
1909 /**
1910 * The IAM user associated with this virtual MFA device.
1911 *
1912 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-virtualmfadevice.html#cfn-iam-virtualmfadevice-users
1913 */
1914 readonly users: string[];
1915 /**
1916 * The path for the virtual MFA device. For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide* .
1917 *
1918 * This parameter is optional. If it is not included, it defaults to a slash (/).
1919 *
1920 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! ( `\ u0021` ) through the DEL character ( `\ u007F` ), including most punctuation characters, digits, and upper and lowercased letters.
1921 *
1922 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-virtualmfadevice.html#cfn-iam-virtualmfadevice-path
1923 */
1924 readonly path?: string;
1925 /**
1926 * A list of tags that you want to attach to the new IAM virtual MFA device. Each tag consists of a key name and an associated value. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide* .
1927 *
1928 * > If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created.
1929 *
1930 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-virtualmfadevice.html#cfn-iam-virtualmfadevice-tags
1931 */
1932 readonly tags?: cdk.CfnTag[];
1933 /**
1934 * The name of the virtual MFA device. Use with path to uniquely identify a virtual MFA device.
1935 *
1936 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
1937 *
1938 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-virtualmfadevice.html#cfn-iam-virtualmfadevice-virtualmfadevicename
1939 */
1940 readonly virtualMfaDeviceName?: string;
1941}
1942/**
1943 * A CloudFormation `AWS::IAM::VirtualMFADevice`
1944 *
1945 * Creates a new virtual MFA device for the AWS account . After creating the virtual MFA, use [EnableMFADevice](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html) to attach the MFA device to an IAM user. For more information about creating and working with virtual MFA devices, see [Using a virtual MFA device](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html) in the *IAM User Guide* .
1946 *
1947 * For information about the maximum number of MFA devices you can create, see [IAM and AWS STS quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide* .
1948 *
1949 * > The seed information contained in the QR code and the Base32 string should be treated like any other secret access information. In other words, protect the seed information as you would your AWS access keys or your passwords. After you provision your virtual device, you should ensure that the information is destroyed following secure procedures.
1950 *
1951 * @cloudformationResource AWS::IAM::VirtualMFADevice
1952 * @stability external
1953 *
1954 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-virtualmfadevice.html
1955 */
1956export declare class CfnVirtualMFADevice extends cdk.CfnResource implements cdk.IInspectable {
1957 /**
1958 * The CloudFormation resource type name for this resource class.
1959 */
1960 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::IAM::VirtualMFADevice";
1961 /**
1962 * A factory method that creates a new instance of this class from an object
1963 * containing the CloudFormation properties of this resource.
1964 * Used in the @aws-cdk/cloudformation-include module.
1965 *
1966 * @internal
1967 */
1968 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnVirtualMFADevice;
1969 /**
1970 * Returns the serial number for the specified `AWS::IAM::VirtualMFADevice` resource.
1971 * @cloudformationAttribute SerialNumber
1972 */
1973 readonly attrSerialNumber: string;
1974 /**
1975 * The IAM user associated with this virtual MFA device.
1976 *
1977 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-virtualmfadevice.html#cfn-iam-virtualmfadevice-users
1978 */
1979 users: string[];
1980 /**
1981 * The path for the virtual MFA device. For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide* .
1982 *
1983 * This parameter is optional. If it is not included, it defaults to a slash (/).
1984 *
1985 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! ( `\ u0021` ) through the DEL character ( `\ u007F` ), including most punctuation characters, digits, and upper and lowercased letters.
1986 *
1987 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-virtualmfadevice.html#cfn-iam-virtualmfadevice-path
1988 */
1989 path: string | undefined;
1990 /**
1991 * A list of tags that you want to attach to the new IAM virtual MFA device. Each tag consists of a key name and an associated value. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide* .
1992 *
1993 * > If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created.
1994 *
1995 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-virtualmfadevice.html#cfn-iam-virtualmfadevice-tags
1996 */
1997 readonly tags: cdk.TagManager;
1998 /**
1999 * The name of the virtual MFA device. Use with path to uniquely identify a virtual MFA device.
2000 *
2001 * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
2002 *
2003 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-virtualmfadevice.html#cfn-iam-virtualmfadevice-virtualmfadevicename
2004 */
2005 virtualMfaDeviceName: string | undefined;
2006 /**
2007 * Create a new `AWS::IAM::VirtualMFADevice`.
2008 *
2009 * @param scope - scope in which this resource is defined
2010 * @param id - scoped id of the resource
2011 * @param props - resource properties
2012 */
2013 constructor(scope: cdk.Construct, id: string, props: CfnVirtualMFADeviceProps);
2014 /**
2015 * Examines the CloudFormation resource and discloses attributes.
2016 *
2017 * @param inspector - tree inspector to collect and process attributes
2018 *
2019 */
2020 inspect(inspector: cdk.TreeInspector): void;
2021 protected get cfnProperties(): {
2022 [key: string]: any;
2023 };
2024 protected renderProperties(props: {
2025 [key: string]: any;
2026 }): {
2027 [key: string]: any;
2028 };
2029}