import * as core from "@terrascript/core"; export interface AccountPasswordPolicyArgs extends core.ResourceArgs { /** * (Optional) Whether to allow users to change their own password */ allowUsersToChangePassword?: boolean | core.BooleanOut; /** * (Optional) Whether users are prevented from setting a new password after their password has expired * (i.e., require administrator reset) */ hardExpiry?: boolean | core.BooleanOut; /** * (Optional) The number of days that an user password is valid. */ maxPasswordAge?: number | core.NumberOut; /** * (Optional) Minimum length to require for user passwords. */ minimumPasswordLength?: number | core.NumberOut; /** * (Optional) The number of previous passwords that users are prevented from reusing. */ passwordReusePrevention?: number | core.NumberOut; /** * (Optional) Whether to require lowercase characters for user passwords. */ requireLowercaseCharacters?: boolean | core.BooleanOut; /** * (Optional) Whether to require numbers for user passwords. */ requireNumbers?: boolean | core.BooleanOut; /** * (Optional) Whether to require symbols for user passwords. */ requireSymbols?: boolean | core.BooleanOut; /** * (Optional) Whether to require uppercase characters for user passwords. */ requireUppercaseCharacters?: boolean | core.BooleanOut; } export class AccountPasswordPolicy extends core.Resource { /** * (Optional) Whether to allow users to change their own password */ @core.attr(Boolean) public allowUsersToChangePassword?: boolean | core.BooleanOut; /** * Indicates whether passwords in the account expire. Returns `true` if `max_password_age` contains a v * alue greater than `0`. Returns `false` if it is `0` or _not present_. */ @core.attr(Boolean, { computed: true }) public expirePasswords!: boolean | core.BooleanOut; /** * (Optional) Whether users are prevented from setting a new password after their password has expired * (i.e., require administrator reset) */ @core.attr(Boolean, { computed: true }) public hardExpiry?: boolean | core.BooleanOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) The number of days that an user password is valid. */ @core.attr(Number, { computed: true }) public maxPasswordAge?: number | core.NumberOut; /** * (Optional) Minimum length to require for user passwords. */ @core.attr(Number) public minimumPasswordLength?: number | core.NumberOut; /** * (Optional) The number of previous passwords that users are prevented from reusing. */ @core.attr(Number, { computed: true }) public passwordReusePrevention?: number | core.NumberOut; /** * (Optional) Whether to require lowercase characters for user passwords. */ @core.attr(Boolean, { computed: true }) public requireLowercaseCharacters?: boolean | core.BooleanOut; /** * (Optional) Whether to require numbers for user passwords. */ @core.attr(Boolean, { computed: true }) public requireNumbers?: boolean | core.BooleanOut; /** * (Optional) Whether to require symbols for user passwords. */ @core.attr(Boolean, { computed: true }) public requireSymbols?: boolean | core.BooleanOut; /** * (Optional) Whether to require uppercase characters for user passwords. */ @core.attr(Boolean, { computed: true }) public requireUppercaseCharacters?: boolean | core.BooleanOut; constructor(name: string, args?: AccountPasswordPolicyArgs) { super(name, "aws_iam_account_password_policy", args); } public override getNamespace(): string { return "aws_iam"; } }