All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.okta.policy.inputs.PasswordState Maven / Gradle / Ivy

There is a newer version: 4.13.0-alpha.1732774005
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.okta.policy.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class PasswordState extends com.pulumi.resources.ResourceArgs {

    public static final PasswordState Empty = new PasswordState();

    /**
     * Authentication Provider: `OKTA`, `ACTIVE_DIRECTORY` or `LDAP`. Default: `OKTA`
     * 
     */
    @Import(name="authProvider")
    private @Nullable Output authProvider;

    /**
     * @return Authentication Provider: `OKTA`, `ACTIVE_DIRECTORY` or `LDAP`. Default: `OKTA`
     * 
     */
    public Optional> authProvider() {
        return Optional.ofNullable(this.authProvider);
    }

    /**
     * Enable or disable voice call recovery: `ACTIVE` or `INACTIVE`. Default: `INACTIVE`
     * 
     */
    @Import(name="callRecovery")
    private @Nullable Output callRecovery;

    /**
     * @return Enable or disable voice call recovery: `ACTIVE` or `INACTIVE`. Default: `INACTIVE`
     * 
     */
    public Optional> callRecovery() {
        return Optional.ofNullable(this.callRecovery);
    }

    /**
     * Policy Description
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return Policy Description
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * Enable or disable email password recovery: `ACTIVE` or `INACTIVE`. Default: `ACTIVE`
     * 
     */
    @Import(name="emailRecovery")
    private @Nullable Output emailRecovery;

    /**
     * @return Enable or disable email password recovery: `ACTIVE` or `INACTIVE`. Default: `ACTIVE`
     * 
     */
    public Optional> emailRecovery() {
        return Optional.ofNullable(this.emailRecovery);
    }

    /**
     * List of Group IDs to Include
     * 
     */
    @Import(name="groupsIncludeds")
    private @Nullable Output> groupsIncludeds;

    /**
     * @return List of Group IDs to Include
     * 
     */
    public Optional>> groupsIncludeds() {
        return Optional.ofNullable(this.groupsIncludeds);
    }

    /**
     * Policy Name
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return Policy Name
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * Number of minutes before a locked account is unlocked: 0 = no limit. Default: `0`
     * 
     */
    @Import(name="passwordAutoUnlockMinutes")
    private @Nullable Output passwordAutoUnlockMinutes;

    /**
     * @return Number of minutes before a locked account is unlocked: 0 = no limit. Default: `0`
     * 
     */
    public Optional> passwordAutoUnlockMinutes() {
        return Optional.ofNullable(this.passwordAutoUnlockMinutes);
    }

    /**
     * Check Passwords Against Common Password Dictionary. Default: `false`
     * 
     */
    @Import(name="passwordDictionaryLookup")
    private @Nullable Output passwordDictionaryLookup;

    /**
     * @return Check Passwords Against Common Password Dictionary. Default: `false`
     * 
     */
    public Optional> passwordDictionaryLookup() {
        return Optional.ofNullable(this.passwordDictionaryLookup);
    }

    /**
     * User firstName attribute must be excluded from the password
     * 
     */
    @Import(name="passwordExcludeFirstName")
    private @Nullable Output passwordExcludeFirstName;

    /**
     * @return User firstName attribute must be excluded from the password
     * 
     */
    public Optional> passwordExcludeFirstName() {
        return Optional.ofNullable(this.passwordExcludeFirstName);
    }

    /**
     * User lastName attribute must be excluded from the password
     * 
     */
    @Import(name="passwordExcludeLastName")
    private @Nullable Output passwordExcludeLastName;

    /**
     * @return User lastName attribute must be excluded from the password
     * 
     */
    public Optional> passwordExcludeLastName() {
        return Optional.ofNullable(this.passwordExcludeLastName);
    }

    /**
     * If the user name must be excluded from the password. Default: `true`
     * 
     */
    @Import(name="passwordExcludeUsername")
    private @Nullable Output passwordExcludeUsername;

    /**
     * @return If the user name must be excluded from the password. Default: `true`
     * 
     */
    public Optional> passwordExcludeUsername() {
        return Optional.ofNullable(this.passwordExcludeUsername);
    }

    /**
     * Length in days a user will be warned before password expiry: 0 = no warning. Default: `0`
     * 
     */
    @Import(name="passwordExpireWarnDays")
    private @Nullable Output passwordExpireWarnDays;

    /**
     * @return Length in days a user will be warned before password expiry: 0 = no warning. Default: `0`
     * 
     */
    public Optional> passwordExpireWarnDays() {
        return Optional.ofNullable(this.passwordExpireWarnDays);
    }

    /**
     * Number of distinct passwords that must be created before they can be reused: 0 = none. Default: `0`
     * 
     */
    @Import(name="passwordHistoryCount")
    private @Nullable Output passwordHistoryCount;

    /**
     * @return Number of distinct passwords that must be created before they can be reused: 0 = none. Default: `0`
     * 
     */
    public Optional> passwordHistoryCount() {
        return Optional.ofNullable(this.passwordHistoryCount);
    }

    /**
     * Notification channels to use to notify a user when their account has been locked.
     * 
     */
    @Import(name="passwordLockoutNotificationChannels")
    private @Nullable Output> passwordLockoutNotificationChannels;

    /**
     * @return Notification channels to use to notify a user when their account has been locked.
     * 
     */
    public Optional>> passwordLockoutNotificationChannels() {
        return Optional.ofNullable(this.passwordLockoutNotificationChannels);
    }

    /**
     * Length in days a password is valid before expiry: 0 = no limit. Default: `0`
     * 
     */
    @Import(name="passwordMaxAgeDays")
    private @Nullable Output passwordMaxAgeDays;

    /**
     * @return Length in days a password is valid before expiry: 0 = no limit. Default: `0`
     * 
     */
    public Optional> passwordMaxAgeDays() {
        return Optional.ofNullable(this.passwordMaxAgeDays);
    }

    /**
     * Number of unsuccessful login attempts allowed before lockout: 0 = no limit. Default: `10`
     * 
     */
    @Import(name="passwordMaxLockoutAttempts")
    private @Nullable Output passwordMaxLockoutAttempts;

    /**
     * @return Number of unsuccessful login attempts allowed before lockout: 0 = no limit. Default: `10`
     * 
     */
    public Optional> passwordMaxLockoutAttempts() {
        return Optional.ofNullable(this.passwordMaxLockoutAttempts);
    }

    /**
     * Minimum time interval in minutes between password changes: 0 = no limit. Default: `0`
     * 
     */
    @Import(name="passwordMinAgeMinutes")
    private @Nullable Output passwordMinAgeMinutes;

    /**
     * @return Minimum time interval in minutes between password changes: 0 = no limit. Default: `0`
     * 
     */
    public Optional> passwordMinAgeMinutes() {
        return Optional.ofNullable(this.passwordMinAgeMinutes);
    }

    /**
     * Minimum password length. Default: `8`
     * 
     */
    @Import(name="passwordMinLength")
    private @Nullable Output passwordMinLength;

    /**
     * @return Minimum password length. Default: `8`
     * 
     */
    public Optional> passwordMinLength() {
        return Optional.ofNullable(this.passwordMinLength);
    }

    /**
     * If a password must contain at least one lower case letter: 0 = no, 1 = yes. Default: `1`
     * 
     */
    @Import(name="passwordMinLowercase")
    private @Nullable Output passwordMinLowercase;

    /**
     * @return If a password must contain at least one lower case letter: 0 = no, 1 = yes. Default: `1`
     * 
     */
    public Optional> passwordMinLowercase() {
        return Optional.ofNullable(this.passwordMinLowercase);
    }

    /**
     * If a password must contain at least one number: 0 = no, 1 = yes. Default: `1`
     * 
     */
    @Import(name="passwordMinNumber")
    private @Nullable Output passwordMinNumber;

    /**
     * @return If a password must contain at least one number: 0 = no, 1 = yes. Default: `1`
     * 
     */
    public Optional> passwordMinNumber() {
        return Optional.ofNullable(this.passwordMinNumber);
    }

    /**
     * If a password must contain at least one symbol (!{@literal @}#$%^&*): 0 = no, 1 = yes. Default: `0`
     * 
     */
    @Import(name="passwordMinSymbol")
    private @Nullable Output passwordMinSymbol;

    /**
     * @return If a password must contain at least one symbol (!{@literal @}#$%^&*): 0 = no, 1 = yes. Default: `0`
     * 
     */
    public Optional> passwordMinSymbol() {
        return Optional.ofNullable(this.passwordMinSymbol);
    }

    /**
     * If a password must contain at least one upper case letter: 0 = no, 1 = yes. Default: `1`
     * 
     */
    @Import(name="passwordMinUppercase")
    private @Nullable Output passwordMinUppercase;

    /**
     * @return If a password must contain at least one upper case letter: 0 = no, 1 = yes. Default: `1`
     * 
     */
    public Optional> passwordMinUppercase() {
        return Optional.ofNullable(this.passwordMinUppercase);
    }

    /**
     * If a user should be informed when their account is locked. Default: `false`
     * 
     */
    @Import(name="passwordShowLockoutFailures")
    private @Nullable Output passwordShowLockoutFailures;

    /**
     * @return If a user should be informed when their account is locked. Default: `false`
     * 
     */
    public Optional> passwordShowLockoutFailures() {
        return Optional.ofNullable(this.passwordShowLockoutFailures);
    }

    /**
     * Policy Priority, this attribute can be set to a valid priority. To avoid endless diff situation we error if an invalid priority is provided. API defaults it to the last (lowest) if not there.
     * 
     */
    @Import(name="priority")
    private @Nullable Output priority;

    /**
     * @return Policy Priority, this attribute can be set to a valid priority. To avoid endless diff situation we error if an invalid priority is provided. API defaults it to the last (lowest) if not there.
     * 
     */
    public Optional> priority() {
        return Optional.ofNullable(this.priority);
    }

    /**
     * Min length of the password recovery question answer. Default: `4`
     * 
     */
    @Import(name="questionMinLength")
    private @Nullable Output questionMinLength;

    /**
     * @return Min length of the password recovery question answer. Default: `4`
     * 
     */
    public Optional> questionMinLength() {
        return Optional.ofNullable(this.questionMinLength);
    }

    /**
     * Enable or disable security question password recovery: `ACTIVE` or `INACTIVE`. Default: `ACTIVE`
     * 
     */
    @Import(name="questionRecovery")
    private @Nullable Output questionRecovery;

    /**
     * @return Enable or disable security question password recovery: `ACTIVE` or `INACTIVE`. Default: `ACTIVE`
     * 
     */
    public Optional> questionRecovery() {
        return Optional.ofNullable(this.questionRecovery);
    }

    /**
     * Lifetime in minutes of the recovery email token. Default: `60`
     * 
     */
    @Import(name="recoveryEmailToken")
    private @Nullable Output recoveryEmailToken;

    /**
     * @return Lifetime in minutes of the recovery email token. Default: `60`
     * 
     */
    public Optional> recoveryEmailToken() {
        return Optional.ofNullable(this.recoveryEmailToken);
    }

    /**
     * When an Active Directory user is locked out of Okta, the Okta unlock operation should also attempt to unlock the user's Windows account. Default: `false`
     * 
     */
    @Import(name="skipUnlock")
    private @Nullable Output skipUnlock;

    /**
     * @return When an Active Directory user is locked out of Okta, the Okta unlock operation should also attempt to unlock the user's Windows account. Default: `false`
     * 
     */
    public Optional> skipUnlock() {
        return Optional.ofNullable(this.skipUnlock);
    }

    /**
     * Enable or disable SMS password recovery: `ACTIVE` or `INACTIVE`. Default: `INACTIVE`
     * 
     */
    @Import(name="smsRecovery")
    private @Nullable Output smsRecovery;

    /**
     * @return Enable or disable SMS password recovery: `ACTIVE` or `INACTIVE`. Default: `INACTIVE`
     * 
     */
    public Optional> smsRecovery() {
        return Optional.ofNullable(this.smsRecovery);
    }

    /**
     * Policy Status: `ACTIVE` or `INACTIVE`. Default: `ACTIVE`
     * 
     */
    @Import(name="status")
    private @Nullable Output status;

    /**
     * @return Policy Status: `ACTIVE` or `INACTIVE`. Default: `ACTIVE`
     * 
     */
    public Optional> status() {
        return Optional.ofNullable(this.status);
    }

    private PasswordState() {}

    private PasswordState(PasswordState $) {
        this.authProvider = $.authProvider;
        this.callRecovery = $.callRecovery;
        this.description = $.description;
        this.emailRecovery = $.emailRecovery;
        this.groupsIncludeds = $.groupsIncludeds;
        this.name = $.name;
        this.passwordAutoUnlockMinutes = $.passwordAutoUnlockMinutes;
        this.passwordDictionaryLookup = $.passwordDictionaryLookup;
        this.passwordExcludeFirstName = $.passwordExcludeFirstName;
        this.passwordExcludeLastName = $.passwordExcludeLastName;
        this.passwordExcludeUsername = $.passwordExcludeUsername;
        this.passwordExpireWarnDays = $.passwordExpireWarnDays;
        this.passwordHistoryCount = $.passwordHistoryCount;
        this.passwordLockoutNotificationChannels = $.passwordLockoutNotificationChannels;
        this.passwordMaxAgeDays = $.passwordMaxAgeDays;
        this.passwordMaxLockoutAttempts = $.passwordMaxLockoutAttempts;
        this.passwordMinAgeMinutes = $.passwordMinAgeMinutes;
        this.passwordMinLength = $.passwordMinLength;
        this.passwordMinLowercase = $.passwordMinLowercase;
        this.passwordMinNumber = $.passwordMinNumber;
        this.passwordMinSymbol = $.passwordMinSymbol;
        this.passwordMinUppercase = $.passwordMinUppercase;
        this.passwordShowLockoutFailures = $.passwordShowLockoutFailures;
        this.priority = $.priority;
        this.questionMinLength = $.questionMinLength;
        this.questionRecovery = $.questionRecovery;
        this.recoveryEmailToken = $.recoveryEmailToken;
        this.skipUnlock = $.skipUnlock;
        this.smsRecovery = $.smsRecovery;
        this.status = $.status;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(PasswordState defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private PasswordState $;

        public Builder() {
            $ = new PasswordState();
        }

        public Builder(PasswordState defaults) {
            $ = new PasswordState(Objects.requireNonNull(defaults));
        }

        /**
         * @param authProvider Authentication Provider: `OKTA`, `ACTIVE_DIRECTORY` or `LDAP`. Default: `OKTA`
         * 
         * @return builder
         * 
         */
        public Builder authProvider(@Nullable Output authProvider) {
            $.authProvider = authProvider;
            return this;
        }

        /**
         * @param authProvider Authentication Provider: `OKTA`, `ACTIVE_DIRECTORY` or `LDAP`. Default: `OKTA`
         * 
         * @return builder
         * 
         */
        public Builder authProvider(String authProvider) {
            return authProvider(Output.of(authProvider));
        }

        /**
         * @param callRecovery Enable or disable voice call recovery: `ACTIVE` or `INACTIVE`. Default: `INACTIVE`
         * 
         * @return builder
         * 
         */
        public Builder callRecovery(@Nullable Output callRecovery) {
            $.callRecovery = callRecovery;
            return this;
        }

        /**
         * @param callRecovery Enable or disable voice call recovery: `ACTIVE` or `INACTIVE`. Default: `INACTIVE`
         * 
         * @return builder
         * 
         */
        public Builder callRecovery(String callRecovery) {
            return callRecovery(Output.of(callRecovery));
        }

        /**
         * @param description Policy Description
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description Policy Description
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param emailRecovery Enable or disable email password recovery: `ACTIVE` or `INACTIVE`. Default: `ACTIVE`
         * 
         * @return builder
         * 
         */
        public Builder emailRecovery(@Nullable Output emailRecovery) {
            $.emailRecovery = emailRecovery;
            return this;
        }

        /**
         * @param emailRecovery Enable or disable email password recovery: `ACTIVE` or `INACTIVE`. Default: `ACTIVE`
         * 
         * @return builder
         * 
         */
        public Builder emailRecovery(String emailRecovery) {
            return emailRecovery(Output.of(emailRecovery));
        }

        /**
         * @param groupsIncludeds List of Group IDs to Include
         * 
         * @return builder
         * 
         */
        public Builder groupsIncludeds(@Nullable Output> groupsIncludeds) {
            $.groupsIncludeds = groupsIncludeds;
            return this;
        }

        /**
         * @param groupsIncludeds List of Group IDs to Include
         * 
         * @return builder
         * 
         */
        public Builder groupsIncludeds(List groupsIncludeds) {
            return groupsIncludeds(Output.of(groupsIncludeds));
        }

        /**
         * @param groupsIncludeds List of Group IDs to Include
         * 
         * @return builder
         * 
         */
        public Builder groupsIncludeds(String... groupsIncludeds) {
            return groupsIncludeds(List.of(groupsIncludeds));
        }

        /**
         * @param name Policy Name
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Policy Name
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param passwordAutoUnlockMinutes Number of minutes before a locked account is unlocked: 0 = no limit. Default: `0`
         * 
         * @return builder
         * 
         */
        public Builder passwordAutoUnlockMinutes(@Nullable Output passwordAutoUnlockMinutes) {
            $.passwordAutoUnlockMinutes = passwordAutoUnlockMinutes;
            return this;
        }

        /**
         * @param passwordAutoUnlockMinutes Number of minutes before a locked account is unlocked: 0 = no limit. Default: `0`
         * 
         * @return builder
         * 
         */
        public Builder passwordAutoUnlockMinutes(Integer passwordAutoUnlockMinutes) {
            return passwordAutoUnlockMinutes(Output.of(passwordAutoUnlockMinutes));
        }

        /**
         * @param passwordDictionaryLookup Check Passwords Against Common Password Dictionary. Default: `false`
         * 
         * @return builder
         * 
         */
        public Builder passwordDictionaryLookup(@Nullable Output passwordDictionaryLookup) {
            $.passwordDictionaryLookup = passwordDictionaryLookup;
            return this;
        }

        /**
         * @param passwordDictionaryLookup Check Passwords Against Common Password Dictionary. Default: `false`
         * 
         * @return builder
         * 
         */
        public Builder passwordDictionaryLookup(Boolean passwordDictionaryLookup) {
            return passwordDictionaryLookup(Output.of(passwordDictionaryLookup));
        }

        /**
         * @param passwordExcludeFirstName User firstName attribute must be excluded from the password
         * 
         * @return builder
         * 
         */
        public Builder passwordExcludeFirstName(@Nullable Output passwordExcludeFirstName) {
            $.passwordExcludeFirstName = passwordExcludeFirstName;
            return this;
        }

        /**
         * @param passwordExcludeFirstName User firstName attribute must be excluded from the password
         * 
         * @return builder
         * 
         */
        public Builder passwordExcludeFirstName(Boolean passwordExcludeFirstName) {
            return passwordExcludeFirstName(Output.of(passwordExcludeFirstName));
        }

        /**
         * @param passwordExcludeLastName User lastName attribute must be excluded from the password
         * 
         * @return builder
         * 
         */
        public Builder passwordExcludeLastName(@Nullable Output passwordExcludeLastName) {
            $.passwordExcludeLastName = passwordExcludeLastName;
            return this;
        }

        /**
         * @param passwordExcludeLastName User lastName attribute must be excluded from the password
         * 
         * @return builder
         * 
         */
        public Builder passwordExcludeLastName(Boolean passwordExcludeLastName) {
            return passwordExcludeLastName(Output.of(passwordExcludeLastName));
        }

        /**
         * @param passwordExcludeUsername If the user name must be excluded from the password. Default: `true`
         * 
         * @return builder
         * 
         */
        public Builder passwordExcludeUsername(@Nullable Output passwordExcludeUsername) {
            $.passwordExcludeUsername = passwordExcludeUsername;
            return this;
        }

        /**
         * @param passwordExcludeUsername If the user name must be excluded from the password. Default: `true`
         * 
         * @return builder
         * 
         */
        public Builder passwordExcludeUsername(Boolean passwordExcludeUsername) {
            return passwordExcludeUsername(Output.of(passwordExcludeUsername));
        }

        /**
         * @param passwordExpireWarnDays Length in days a user will be warned before password expiry: 0 = no warning. Default: `0`
         * 
         * @return builder
         * 
         */
        public Builder passwordExpireWarnDays(@Nullable Output passwordExpireWarnDays) {
            $.passwordExpireWarnDays = passwordExpireWarnDays;
            return this;
        }

        /**
         * @param passwordExpireWarnDays Length in days a user will be warned before password expiry: 0 = no warning. Default: `0`
         * 
         * @return builder
         * 
         */
        public Builder passwordExpireWarnDays(Integer passwordExpireWarnDays) {
            return passwordExpireWarnDays(Output.of(passwordExpireWarnDays));
        }

        /**
         * @param passwordHistoryCount Number of distinct passwords that must be created before they can be reused: 0 = none. Default: `0`
         * 
         * @return builder
         * 
         */
        public Builder passwordHistoryCount(@Nullable Output passwordHistoryCount) {
            $.passwordHistoryCount = passwordHistoryCount;
            return this;
        }

        /**
         * @param passwordHistoryCount Number of distinct passwords that must be created before they can be reused: 0 = none. Default: `0`
         * 
         * @return builder
         * 
         */
        public Builder passwordHistoryCount(Integer passwordHistoryCount) {
            return passwordHistoryCount(Output.of(passwordHistoryCount));
        }

        /**
         * @param passwordLockoutNotificationChannels Notification channels to use to notify a user when their account has been locked.
         * 
         * @return builder
         * 
         */
        public Builder passwordLockoutNotificationChannels(@Nullable Output> passwordLockoutNotificationChannels) {
            $.passwordLockoutNotificationChannels = passwordLockoutNotificationChannels;
            return this;
        }

        /**
         * @param passwordLockoutNotificationChannels Notification channels to use to notify a user when their account has been locked.
         * 
         * @return builder
         * 
         */
        public Builder passwordLockoutNotificationChannels(List passwordLockoutNotificationChannels) {
            return passwordLockoutNotificationChannels(Output.of(passwordLockoutNotificationChannels));
        }

        /**
         * @param passwordLockoutNotificationChannels Notification channels to use to notify a user when their account has been locked.
         * 
         * @return builder
         * 
         */
        public Builder passwordLockoutNotificationChannels(String... passwordLockoutNotificationChannels) {
            return passwordLockoutNotificationChannels(List.of(passwordLockoutNotificationChannels));
        }

        /**
         * @param passwordMaxAgeDays Length in days a password is valid before expiry: 0 = no limit. Default: `0`
         * 
         * @return builder
         * 
         */
        public Builder passwordMaxAgeDays(@Nullable Output passwordMaxAgeDays) {
            $.passwordMaxAgeDays = passwordMaxAgeDays;
            return this;
        }

        /**
         * @param passwordMaxAgeDays Length in days a password is valid before expiry: 0 = no limit. Default: `0`
         * 
         * @return builder
         * 
         */
        public Builder passwordMaxAgeDays(Integer passwordMaxAgeDays) {
            return passwordMaxAgeDays(Output.of(passwordMaxAgeDays));
        }

        /**
         * @param passwordMaxLockoutAttempts Number of unsuccessful login attempts allowed before lockout: 0 = no limit. Default: `10`
         * 
         * @return builder
         * 
         */
        public Builder passwordMaxLockoutAttempts(@Nullable Output passwordMaxLockoutAttempts) {
            $.passwordMaxLockoutAttempts = passwordMaxLockoutAttempts;
            return this;
        }

        /**
         * @param passwordMaxLockoutAttempts Number of unsuccessful login attempts allowed before lockout: 0 = no limit. Default: `10`
         * 
         * @return builder
         * 
         */
        public Builder passwordMaxLockoutAttempts(Integer passwordMaxLockoutAttempts) {
            return passwordMaxLockoutAttempts(Output.of(passwordMaxLockoutAttempts));
        }

        /**
         * @param passwordMinAgeMinutes Minimum time interval in minutes between password changes: 0 = no limit. Default: `0`
         * 
         * @return builder
         * 
         */
        public Builder passwordMinAgeMinutes(@Nullable Output passwordMinAgeMinutes) {
            $.passwordMinAgeMinutes = passwordMinAgeMinutes;
            return this;
        }

        /**
         * @param passwordMinAgeMinutes Minimum time interval in minutes between password changes: 0 = no limit. Default: `0`
         * 
         * @return builder
         * 
         */
        public Builder passwordMinAgeMinutes(Integer passwordMinAgeMinutes) {
            return passwordMinAgeMinutes(Output.of(passwordMinAgeMinutes));
        }

        /**
         * @param passwordMinLength Minimum password length. Default: `8`
         * 
         * @return builder
         * 
         */
        public Builder passwordMinLength(@Nullable Output passwordMinLength) {
            $.passwordMinLength = passwordMinLength;
            return this;
        }

        /**
         * @param passwordMinLength Minimum password length. Default: `8`
         * 
         * @return builder
         * 
         */
        public Builder passwordMinLength(Integer passwordMinLength) {
            return passwordMinLength(Output.of(passwordMinLength));
        }

        /**
         * @param passwordMinLowercase If a password must contain at least one lower case letter: 0 = no, 1 = yes. Default: `1`
         * 
         * @return builder
         * 
         */
        public Builder passwordMinLowercase(@Nullable Output passwordMinLowercase) {
            $.passwordMinLowercase = passwordMinLowercase;
            return this;
        }

        /**
         * @param passwordMinLowercase If a password must contain at least one lower case letter: 0 = no, 1 = yes. Default: `1`
         * 
         * @return builder
         * 
         */
        public Builder passwordMinLowercase(Integer passwordMinLowercase) {
            return passwordMinLowercase(Output.of(passwordMinLowercase));
        }

        /**
         * @param passwordMinNumber If a password must contain at least one number: 0 = no, 1 = yes. Default: `1`
         * 
         * @return builder
         * 
         */
        public Builder passwordMinNumber(@Nullable Output passwordMinNumber) {
            $.passwordMinNumber = passwordMinNumber;
            return this;
        }

        /**
         * @param passwordMinNumber If a password must contain at least one number: 0 = no, 1 = yes. Default: `1`
         * 
         * @return builder
         * 
         */
        public Builder passwordMinNumber(Integer passwordMinNumber) {
            return passwordMinNumber(Output.of(passwordMinNumber));
        }

        /**
         * @param passwordMinSymbol If a password must contain at least one symbol (!{@literal @}#$%^&*): 0 = no, 1 = yes. Default: `0`
         * 
         * @return builder
         * 
         */
        public Builder passwordMinSymbol(@Nullable Output passwordMinSymbol) {
            $.passwordMinSymbol = passwordMinSymbol;
            return this;
        }

        /**
         * @param passwordMinSymbol If a password must contain at least one symbol (!{@literal @}#$%^&*): 0 = no, 1 = yes. Default: `0`
         * 
         * @return builder
         * 
         */
        public Builder passwordMinSymbol(Integer passwordMinSymbol) {
            return passwordMinSymbol(Output.of(passwordMinSymbol));
        }

        /**
         * @param passwordMinUppercase If a password must contain at least one upper case letter: 0 = no, 1 = yes. Default: `1`
         * 
         * @return builder
         * 
         */
        public Builder passwordMinUppercase(@Nullable Output passwordMinUppercase) {
            $.passwordMinUppercase = passwordMinUppercase;
            return this;
        }

        /**
         * @param passwordMinUppercase If a password must contain at least one upper case letter: 0 = no, 1 = yes. Default: `1`
         * 
         * @return builder
         * 
         */
        public Builder passwordMinUppercase(Integer passwordMinUppercase) {
            return passwordMinUppercase(Output.of(passwordMinUppercase));
        }

        /**
         * @param passwordShowLockoutFailures If a user should be informed when their account is locked. Default: `false`
         * 
         * @return builder
         * 
         */
        public Builder passwordShowLockoutFailures(@Nullable Output passwordShowLockoutFailures) {
            $.passwordShowLockoutFailures = passwordShowLockoutFailures;
            return this;
        }

        /**
         * @param passwordShowLockoutFailures If a user should be informed when their account is locked. Default: `false`
         * 
         * @return builder
         * 
         */
        public Builder passwordShowLockoutFailures(Boolean passwordShowLockoutFailures) {
            return passwordShowLockoutFailures(Output.of(passwordShowLockoutFailures));
        }

        /**
         * @param priority Policy Priority, this attribute can be set to a valid priority. To avoid endless diff situation we error if an invalid priority is provided. API defaults it to the last (lowest) if not there.
         * 
         * @return builder
         * 
         */
        public Builder priority(@Nullable Output priority) {
            $.priority = priority;
            return this;
        }

        /**
         * @param priority Policy Priority, this attribute can be set to a valid priority. To avoid endless diff situation we error if an invalid priority is provided. API defaults it to the last (lowest) if not there.
         * 
         * @return builder
         * 
         */
        public Builder priority(Integer priority) {
            return priority(Output.of(priority));
        }

        /**
         * @param questionMinLength Min length of the password recovery question answer. Default: `4`
         * 
         * @return builder
         * 
         */
        public Builder questionMinLength(@Nullable Output questionMinLength) {
            $.questionMinLength = questionMinLength;
            return this;
        }

        /**
         * @param questionMinLength Min length of the password recovery question answer. Default: `4`
         * 
         * @return builder
         * 
         */
        public Builder questionMinLength(Integer questionMinLength) {
            return questionMinLength(Output.of(questionMinLength));
        }

        /**
         * @param questionRecovery Enable or disable security question password recovery: `ACTIVE` or `INACTIVE`. Default: `ACTIVE`
         * 
         * @return builder
         * 
         */
        public Builder questionRecovery(@Nullable Output questionRecovery) {
            $.questionRecovery = questionRecovery;
            return this;
        }

        /**
         * @param questionRecovery Enable or disable security question password recovery: `ACTIVE` or `INACTIVE`. Default: `ACTIVE`
         * 
         * @return builder
         * 
         */
        public Builder questionRecovery(String questionRecovery) {
            return questionRecovery(Output.of(questionRecovery));
        }

        /**
         * @param recoveryEmailToken Lifetime in minutes of the recovery email token. Default: `60`
         * 
         * @return builder
         * 
         */
        public Builder recoveryEmailToken(@Nullable Output recoveryEmailToken) {
            $.recoveryEmailToken = recoveryEmailToken;
            return this;
        }

        /**
         * @param recoveryEmailToken Lifetime in minutes of the recovery email token. Default: `60`
         * 
         * @return builder
         * 
         */
        public Builder recoveryEmailToken(Integer recoveryEmailToken) {
            return recoveryEmailToken(Output.of(recoveryEmailToken));
        }

        /**
         * @param skipUnlock When an Active Directory user is locked out of Okta, the Okta unlock operation should also attempt to unlock the user's Windows account. Default: `false`
         * 
         * @return builder
         * 
         */
        public Builder skipUnlock(@Nullable Output skipUnlock) {
            $.skipUnlock = skipUnlock;
            return this;
        }

        /**
         * @param skipUnlock When an Active Directory user is locked out of Okta, the Okta unlock operation should also attempt to unlock the user's Windows account. Default: `false`
         * 
         * @return builder
         * 
         */
        public Builder skipUnlock(Boolean skipUnlock) {
            return skipUnlock(Output.of(skipUnlock));
        }

        /**
         * @param smsRecovery Enable or disable SMS password recovery: `ACTIVE` or `INACTIVE`. Default: `INACTIVE`
         * 
         * @return builder
         * 
         */
        public Builder smsRecovery(@Nullable Output smsRecovery) {
            $.smsRecovery = smsRecovery;
            return this;
        }

        /**
         * @param smsRecovery Enable or disable SMS password recovery: `ACTIVE` or `INACTIVE`. Default: `INACTIVE`
         * 
         * @return builder
         * 
         */
        public Builder smsRecovery(String smsRecovery) {
            return smsRecovery(Output.of(smsRecovery));
        }

        /**
         * @param status Policy Status: `ACTIVE` or `INACTIVE`. Default: `ACTIVE`
         * 
         * @return builder
         * 
         */
        public Builder status(@Nullable Output status) {
            $.status = status;
            return this;
        }

        /**
         * @param status Policy Status: `ACTIVE` or `INACTIVE`. Default: `ACTIVE`
         * 
         * @return builder
         * 
         */
        public Builder status(String status) {
            return status(Output.of(status));
        }

        public PasswordState build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy