import * as pulumi from "@pulumi/pulumi";
/**
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as huaweicloud from "@pulumi/huaweicloud";
 *
 * const enhanced = new huaweicloud.Iam.PasswordPolicy("enhanced", {
 *     minimumPasswordLength: 12,
 *     numberOfRecentPasswordsDisallowed: 2,
 *     passwordCharCombination: 4,
 *     passwordValidityPeriod: 180,
 * });
 * ```
 *
 * ## Import
 *
 * Identity password policy can be imported using the account ID or domain ID, e.g. bash
 *
 * ```sh
 *  $ pulumi import huaweicloud:Iam/passwordPolicy:PasswordPolicy example <your account ID>
 * ```
 */
export declare class PasswordPolicy extends pulumi.CustomResource {
    /**
     * Get an existing PasswordPolicy resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: PasswordPolicyState, opts?: pulumi.CustomResourceOptions): PasswordPolicy;
    /**
     * Returns true if the given object is an instance of PasswordPolicy.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is PasswordPolicy;
    /**
     * Specifies the maximum number of times that a character is allowed
     * to consecutively present in a password. The value ranges from `0` to `32` and defaults to `0` which indicates that
     * consecutive identical characters are allowed in a password. For example, value `2` indicates that two consecutive
     * identical characters are not allowed in a password.
     */
    readonly maximumConsecutiveIdenticalChars: pulumi.Output<number>;
    /**
     * The maximum number of characters that a password can contain.
     */
    readonly maximumPasswordLength: pulumi.Output<number>;
    /**
     * Specifies the minimum period (minutes) after which users are allowed to make
     * a password change. The value ranges from `0` to `1,440` and defaults to `0`.
     */
    readonly minimumPasswordAge: pulumi.Output<number>;
    /**
     * Specifies the minimum number of characters that a password must contain.
     * The value ranges from `6` to `32` and defaults to `8`.
     */
    readonly minimumPasswordLength: pulumi.Output<number | undefined>;
    /**
     * Specifies the member of previously used passwords that are
     * not allowed. The value ranges from `0` to `10` and defaults to `1`. For example, value `3` indicates that the user cannot
     * set the last three passwords that the user has previously used when setting a new password.
     */
    readonly numberOfRecentPasswordsDisallowed: pulumi.Output<number | undefined>;
    /**
     * Specifies the minimum number of character types that a password must contain.
     * The value ranges from `2` to `4` and defaults to `2` which indicates that a password must contain at least two of the following:
     * uppercase letters, lowercase letters, digits, and special characters.
     */
    readonly passwordCharCombination: pulumi.Output<number | undefined>;
    /**
     * Specifies whether the password can be the username or the username
     * spelled backwards. Defaults to `true`, which indicates that the username or the inversion of username is not allowed to
     * be used as a password.
     */
    readonly passwordNotUsernameOrInvert: pulumi.Output<boolean | undefined>;
    /**
     * Specifies the password validity period (days).
     * The value ranges from `0` to `180` and defaults to `0` which indicates that this requirement does not apply.
     */
    readonly passwordValidityPeriod: pulumi.Output<number>;
    /**
     * Create a PasswordPolicy resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args?: PasswordPolicyArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering PasswordPolicy resources.
 */
export interface PasswordPolicyState {
    /**
     * Specifies the maximum number of times that a character is allowed
     * to consecutively present in a password. The value ranges from `0` to `32` and defaults to `0` which indicates that
     * consecutive identical characters are allowed in a password. For example, value `2` indicates that two consecutive
     * identical characters are not allowed in a password.
     */
    maximumConsecutiveIdenticalChars?: pulumi.Input<number>;
    /**
     * The maximum number of characters that a password can contain.
     */
    maximumPasswordLength?: pulumi.Input<number>;
    /**
     * Specifies the minimum period (minutes) after which users are allowed to make
     * a password change. The value ranges from `0` to `1,440` and defaults to `0`.
     */
    minimumPasswordAge?: pulumi.Input<number>;
    /**
     * Specifies the minimum number of characters that a password must contain.
     * The value ranges from `6` to `32` and defaults to `8`.
     */
    minimumPasswordLength?: pulumi.Input<number>;
    /**
     * Specifies the member of previously used passwords that are
     * not allowed. The value ranges from `0` to `10` and defaults to `1`. For example, value `3` indicates that the user cannot
     * set the last three passwords that the user has previously used when setting a new password.
     */
    numberOfRecentPasswordsDisallowed?: pulumi.Input<number>;
    /**
     * Specifies the minimum number of character types that a password must contain.
     * The value ranges from `2` to `4` and defaults to `2` which indicates that a password must contain at least two of the following:
     * uppercase letters, lowercase letters, digits, and special characters.
     */
    passwordCharCombination?: pulumi.Input<number>;
    /**
     * Specifies whether the password can be the username or the username
     * spelled backwards. Defaults to `true`, which indicates that the username or the inversion of username is not allowed to
     * be used as a password.
     */
    passwordNotUsernameOrInvert?: pulumi.Input<boolean>;
    /**
     * Specifies the password validity period (days).
     * The value ranges from `0` to `180` and defaults to `0` which indicates that this requirement does not apply.
     */
    passwordValidityPeriod?: pulumi.Input<number>;
}
/**
 * The set of arguments for constructing a PasswordPolicy resource.
 */
export interface PasswordPolicyArgs {
    /**
     * Specifies the maximum number of times that a character is allowed
     * to consecutively present in a password. The value ranges from `0` to `32` and defaults to `0` which indicates that
     * consecutive identical characters are allowed in a password. For example, value `2` indicates that two consecutive
     * identical characters are not allowed in a password.
     */
    maximumConsecutiveIdenticalChars?: pulumi.Input<number>;
    /**
     * Specifies the minimum period (minutes) after which users are allowed to make
     * a password change. The value ranges from `0` to `1,440` and defaults to `0`.
     */
    minimumPasswordAge?: pulumi.Input<number>;
    /**
     * Specifies the minimum number of characters that a password must contain.
     * The value ranges from `6` to `32` and defaults to `8`.
     */
    minimumPasswordLength?: pulumi.Input<number>;
    /**
     * Specifies the member of previously used passwords that are
     * not allowed. The value ranges from `0` to `10` and defaults to `1`. For example, value `3` indicates that the user cannot
     * set the last three passwords that the user has previously used when setting a new password.
     */
    numberOfRecentPasswordsDisallowed?: pulumi.Input<number>;
    /**
     * Specifies the minimum number of character types that a password must contain.
     * The value ranges from `2` to `4` and defaults to `2` which indicates that a password must contain at least two of the following:
     * uppercase letters, lowercase letters, digits, and special characters.
     */
    passwordCharCombination?: pulumi.Input<number>;
    /**
     * Specifies whether the password can be the username or the username
     * spelled backwards. Defaults to `true`, which indicates that the username or the inversion of username is not allowed to
     * be used as a password.
     */
    passwordNotUsernameOrInvert?: pulumi.Input<boolean>;
    /**
     * Specifies the password validity period (days).
     * The value ranges from `0` to `180` and defaults to `0` which indicates that this requirement does not apply.
     */
    passwordValidityPeriod?: pulumi.Input<number>;
}
