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

com.pulumi.keycloak.RealmArgs Maven / Gradle / Ivy

There is a newer version: 6.2.1
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.keycloak;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import com.pulumi.keycloak.inputs.RealmInternationalizationArgs;
import com.pulumi.keycloak.inputs.RealmOtpPolicyArgs;
import com.pulumi.keycloak.inputs.RealmSecurityDefensesArgs;
import com.pulumi.keycloak.inputs.RealmSmtpServerArgs;
import com.pulumi.keycloak.inputs.RealmWebAuthnPasswordlessPolicyArgs;
import com.pulumi.keycloak.inputs.RealmWebAuthnPolicyArgs;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final RealmArgs Empty = new RealmArgs();

    @Import(name="accessCodeLifespan")
    private @Nullable Output accessCodeLifespan;

    public Optional> accessCodeLifespan() {
        return Optional.ofNullable(this.accessCodeLifespan);
    }

    @Import(name="accessCodeLifespanLogin")
    private @Nullable Output accessCodeLifespanLogin;

    public Optional> accessCodeLifespanLogin() {
        return Optional.ofNullable(this.accessCodeLifespanLogin);
    }

    @Import(name="accessCodeLifespanUserAction")
    private @Nullable Output accessCodeLifespanUserAction;

    public Optional> accessCodeLifespanUserAction() {
        return Optional.ofNullable(this.accessCodeLifespanUserAction);
    }

    @Import(name="accessTokenLifespan")
    private @Nullable Output accessTokenLifespan;

    public Optional> accessTokenLifespan() {
        return Optional.ofNullable(this.accessTokenLifespan);
    }

    @Import(name="accessTokenLifespanForImplicitFlow")
    private @Nullable Output accessTokenLifespanForImplicitFlow;

    public Optional> accessTokenLifespanForImplicitFlow() {
        return Optional.ofNullable(this.accessTokenLifespanForImplicitFlow);
    }

    @Import(name="accountTheme")
    private @Nullable Output accountTheme;

    public Optional> accountTheme() {
        return Optional.ofNullable(this.accountTheme);
    }

    @Import(name="actionTokenGeneratedByAdminLifespan")
    private @Nullable Output actionTokenGeneratedByAdminLifespan;

    public Optional> actionTokenGeneratedByAdminLifespan() {
        return Optional.ofNullable(this.actionTokenGeneratedByAdminLifespan);
    }

    @Import(name="actionTokenGeneratedByUserLifespan")
    private @Nullable Output actionTokenGeneratedByUserLifespan;

    public Optional> actionTokenGeneratedByUserLifespan() {
        return Optional.ofNullable(this.actionTokenGeneratedByUserLifespan);
    }

    @Import(name="adminTheme")
    private @Nullable Output adminTheme;

    public Optional> adminTheme() {
        return Optional.ofNullable(this.adminTheme);
    }

    @Import(name="attributes")
    private @Nullable Output> attributes;

    public Optional>> attributes() {
        return Optional.ofNullable(this.attributes);
    }

    /**
     * Which flow should be used for BrowserFlow
     * 
     */
    @Import(name="browserFlow")
    private @Nullable Output browserFlow;

    /**
     * @return Which flow should be used for BrowserFlow
     * 
     */
    public Optional> browserFlow() {
        return Optional.ofNullable(this.browserFlow);
    }

    /**
     * Which flow should be used for ClientAuthenticationFlow
     * 
     */
    @Import(name="clientAuthenticationFlow")
    private @Nullable Output clientAuthenticationFlow;

    /**
     * @return Which flow should be used for ClientAuthenticationFlow
     * 
     */
    public Optional> clientAuthenticationFlow() {
        return Optional.ofNullable(this.clientAuthenticationFlow);
    }

    @Import(name="clientSessionIdleTimeout")
    private @Nullable Output clientSessionIdleTimeout;

    public Optional> clientSessionIdleTimeout() {
        return Optional.ofNullable(this.clientSessionIdleTimeout);
    }

    @Import(name="clientSessionMaxLifespan")
    private @Nullable Output clientSessionMaxLifespan;

    public Optional> clientSessionMaxLifespan() {
        return Optional.ofNullable(this.clientSessionMaxLifespan);
    }

    @Import(name="defaultDefaultClientScopes")
    private @Nullable Output> defaultDefaultClientScopes;

    public Optional>> defaultDefaultClientScopes() {
        return Optional.ofNullable(this.defaultDefaultClientScopes);
    }

    @Import(name="defaultOptionalClientScopes")
    private @Nullable Output> defaultOptionalClientScopes;

    public Optional>> defaultOptionalClientScopes() {
        return Optional.ofNullable(this.defaultOptionalClientScopes);
    }

    @Import(name="defaultSignatureAlgorithm")
    private @Nullable Output defaultSignatureAlgorithm;

    public Optional> defaultSignatureAlgorithm() {
        return Optional.ofNullable(this.defaultSignatureAlgorithm);
    }

    /**
     * Which flow should be used for DirectGrantFlow
     * 
     */
    @Import(name="directGrantFlow")
    private @Nullable Output directGrantFlow;

    /**
     * @return Which flow should be used for DirectGrantFlow
     * 
     */
    public Optional> directGrantFlow() {
        return Optional.ofNullable(this.directGrantFlow);
    }

    @Import(name="displayName")
    private @Nullable Output displayName;

    public Optional> displayName() {
        return Optional.ofNullable(this.displayName);
    }

    @Import(name="displayNameHtml")
    private @Nullable Output displayNameHtml;

    public Optional> displayNameHtml() {
        return Optional.ofNullable(this.displayNameHtml);
    }

    /**
     * Which flow should be used for DockerAuthenticationFlow
     * 
     */
    @Import(name="dockerAuthenticationFlow")
    private @Nullable Output dockerAuthenticationFlow;

    /**
     * @return Which flow should be used for DockerAuthenticationFlow
     * 
     */
    public Optional> dockerAuthenticationFlow() {
        return Optional.ofNullable(this.dockerAuthenticationFlow);
    }

    @Import(name="duplicateEmailsAllowed")
    private @Nullable Output duplicateEmailsAllowed;

    public Optional> duplicateEmailsAllowed() {
        return Optional.ofNullable(this.duplicateEmailsAllowed);
    }

    @Import(name="editUsernameAllowed")
    private @Nullable Output editUsernameAllowed;

    public Optional> editUsernameAllowed() {
        return Optional.ofNullable(this.editUsernameAllowed);
    }

    @Import(name="emailTheme")
    private @Nullable Output emailTheme;

    public Optional> emailTheme() {
        return Optional.ofNullable(this.emailTheme);
    }

    @Import(name="enabled")
    private @Nullable Output enabled;

    public Optional> enabled() {
        return Optional.ofNullable(this.enabled);
    }

    @Import(name="internalId")
    private @Nullable Output internalId;

    public Optional> internalId() {
        return Optional.ofNullable(this.internalId);
    }

    @Import(name="internationalization")
    private @Nullable Output internationalization;

    public Optional> internationalization() {
        return Optional.ofNullable(this.internationalization);
    }

    @Import(name="loginTheme")
    private @Nullable Output loginTheme;

    public Optional> loginTheme() {
        return Optional.ofNullable(this.loginTheme);
    }

    @Import(name="loginWithEmailAllowed")
    private @Nullable Output loginWithEmailAllowed;

    public Optional> loginWithEmailAllowed() {
        return Optional.ofNullable(this.loginWithEmailAllowed);
    }

    @Import(name="oauth2DeviceCodeLifespan")
    private @Nullable Output oauth2DeviceCodeLifespan;

    public Optional> oauth2DeviceCodeLifespan() {
        return Optional.ofNullable(this.oauth2DeviceCodeLifespan);
    }

    @Import(name="oauth2DevicePollingInterval")
    private @Nullable Output oauth2DevicePollingInterval;

    public Optional> oauth2DevicePollingInterval() {
        return Optional.ofNullable(this.oauth2DevicePollingInterval);
    }

    @Import(name="offlineSessionIdleTimeout")
    private @Nullable Output offlineSessionIdleTimeout;

    public Optional> offlineSessionIdleTimeout() {
        return Optional.ofNullable(this.offlineSessionIdleTimeout);
    }

    @Import(name="offlineSessionMaxLifespan")
    private @Nullable Output offlineSessionMaxLifespan;

    public Optional> offlineSessionMaxLifespan() {
        return Optional.ofNullable(this.offlineSessionMaxLifespan);
    }

    @Import(name="offlineSessionMaxLifespanEnabled")
    private @Nullable Output offlineSessionMaxLifespanEnabled;

    public Optional> offlineSessionMaxLifespanEnabled() {
        return Optional.ofNullable(this.offlineSessionMaxLifespanEnabled);
    }

    @Import(name="otpPolicy")
    private @Nullable Output otpPolicy;

    public Optional> otpPolicy() {
        return Optional.ofNullable(this.otpPolicy);
    }

    /**
     * String that represents the passwordPolicies that are in place. Each policy is separated with " and ". Supported policies
     * can be found in the server-info providers page. example: "upperCase(1) and length(8) and forceExpiredPasswordChange(365)
     * and notUsername(undefined)"
     * 
     */
    @Import(name="passwordPolicy")
    private @Nullable Output passwordPolicy;

    /**
     * @return String that represents the passwordPolicies that are in place. Each policy is separated with " and ". Supported policies
     * can be found in the server-info providers page. example: "upperCase(1) and length(8) and forceExpiredPasswordChange(365)
     * and notUsername(undefined)"
     * 
     */
    public Optional> passwordPolicy() {
        return Optional.ofNullable(this.passwordPolicy);
    }

    @Import(name="realm", required=true)
    private Output realm;

    public Output realm() {
        return this.realm;
    }

    @Import(name="refreshTokenMaxReuse")
    private @Nullable Output refreshTokenMaxReuse;

    public Optional> refreshTokenMaxReuse() {
        return Optional.ofNullable(this.refreshTokenMaxReuse);
    }

    @Import(name="registrationAllowed")
    private @Nullable Output registrationAllowed;

    public Optional> registrationAllowed() {
        return Optional.ofNullable(this.registrationAllowed);
    }

    @Import(name="registrationEmailAsUsername")
    private @Nullable Output registrationEmailAsUsername;

    public Optional> registrationEmailAsUsername() {
        return Optional.ofNullable(this.registrationEmailAsUsername);
    }

    /**
     * Which flow should be used for RegistrationFlow
     * 
     */
    @Import(name="registrationFlow")
    private @Nullable Output registrationFlow;

    /**
     * @return Which flow should be used for RegistrationFlow
     * 
     */
    public Optional> registrationFlow() {
        return Optional.ofNullable(this.registrationFlow);
    }

    @Import(name="rememberMe")
    private @Nullable Output rememberMe;

    public Optional> rememberMe() {
        return Optional.ofNullable(this.rememberMe);
    }

    /**
     * Which flow should be used for ResetCredentialsFlow
     * 
     */
    @Import(name="resetCredentialsFlow")
    private @Nullable Output resetCredentialsFlow;

    /**
     * @return Which flow should be used for ResetCredentialsFlow
     * 
     */
    public Optional> resetCredentialsFlow() {
        return Optional.ofNullable(this.resetCredentialsFlow);
    }

    @Import(name="resetPasswordAllowed")
    private @Nullable Output resetPasswordAllowed;

    public Optional> resetPasswordAllowed() {
        return Optional.ofNullable(this.resetPasswordAllowed);
    }

    @Import(name="revokeRefreshToken")
    private @Nullable Output revokeRefreshToken;

    public Optional> revokeRefreshToken() {
        return Optional.ofNullable(this.revokeRefreshToken);
    }

    @Import(name="securityDefenses")
    private @Nullable Output securityDefenses;

    public Optional> securityDefenses() {
        return Optional.ofNullable(this.securityDefenses);
    }

    @Import(name="smtpServer")
    private @Nullable Output smtpServer;

    public Optional> smtpServer() {
        return Optional.ofNullable(this.smtpServer);
    }

    /**
     * SSL Required: Values can be 'none', 'external' or 'all'.
     * 
     */
    @Import(name="sslRequired")
    private @Nullable Output sslRequired;

    /**
     * @return SSL Required: Values can be 'none', 'external' or 'all'.
     * 
     */
    public Optional> sslRequired() {
        return Optional.ofNullable(this.sslRequired);
    }

    @Import(name="ssoSessionIdleTimeout")
    private @Nullable Output ssoSessionIdleTimeout;

    public Optional> ssoSessionIdleTimeout() {
        return Optional.ofNullable(this.ssoSessionIdleTimeout);
    }

    @Import(name="ssoSessionIdleTimeoutRememberMe")
    private @Nullable Output ssoSessionIdleTimeoutRememberMe;

    public Optional> ssoSessionIdleTimeoutRememberMe() {
        return Optional.ofNullable(this.ssoSessionIdleTimeoutRememberMe);
    }

    @Import(name="ssoSessionMaxLifespan")
    private @Nullable Output ssoSessionMaxLifespan;

    public Optional> ssoSessionMaxLifespan() {
        return Optional.ofNullable(this.ssoSessionMaxLifespan);
    }

    @Import(name="ssoSessionMaxLifespanRememberMe")
    private @Nullable Output ssoSessionMaxLifespanRememberMe;

    public Optional> ssoSessionMaxLifespanRememberMe() {
        return Optional.ofNullable(this.ssoSessionMaxLifespanRememberMe);
    }

    @Import(name="userManagedAccess")
    private @Nullable Output userManagedAccess;

    public Optional> userManagedAccess() {
        return Optional.ofNullable(this.userManagedAccess);
    }

    @Import(name="verifyEmail")
    private @Nullable Output verifyEmail;

    public Optional> verifyEmail() {
        return Optional.ofNullable(this.verifyEmail);
    }

    @Import(name="webAuthnPasswordlessPolicy")
    private @Nullable Output webAuthnPasswordlessPolicy;

    public Optional> webAuthnPasswordlessPolicy() {
        return Optional.ofNullable(this.webAuthnPasswordlessPolicy);
    }

    @Import(name="webAuthnPolicy")
    private @Nullable Output webAuthnPolicy;

    public Optional> webAuthnPolicy() {
        return Optional.ofNullable(this.webAuthnPolicy);
    }

    private RealmArgs() {}

    private RealmArgs(RealmArgs $) {
        this.accessCodeLifespan = $.accessCodeLifespan;
        this.accessCodeLifespanLogin = $.accessCodeLifespanLogin;
        this.accessCodeLifespanUserAction = $.accessCodeLifespanUserAction;
        this.accessTokenLifespan = $.accessTokenLifespan;
        this.accessTokenLifespanForImplicitFlow = $.accessTokenLifespanForImplicitFlow;
        this.accountTheme = $.accountTheme;
        this.actionTokenGeneratedByAdminLifespan = $.actionTokenGeneratedByAdminLifespan;
        this.actionTokenGeneratedByUserLifespan = $.actionTokenGeneratedByUserLifespan;
        this.adminTheme = $.adminTheme;
        this.attributes = $.attributes;
        this.browserFlow = $.browserFlow;
        this.clientAuthenticationFlow = $.clientAuthenticationFlow;
        this.clientSessionIdleTimeout = $.clientSessionIdleTimeout;
        this.clientSessionMaxLifespan = $.clientSessionMaxLifespan;
        this.defaultDefaultClientScopes = $.defaultDefaultClientScopes;
        this.defaultOptionalClientScopes = $.defaultOptionalClientScopes;
        this.defaultSignatureAlgorithm = $.defaultSignatureAlgorithm;
        this.directGrantFlow = $.directGrantFlow;
        this.displayName = $.displayName;
        this.displayNameHtml = $.displayNameHtml;
        this.dockerAuthenticationFlow = $.dockerAuthenticationFlow;
        this.duplicateEmailsAllowed = $.duplicateEmailsAllowed;
        this.editUsernameAllowed = $.editUsernameAllowed;
        this.emailTheme = $.emailTheme;
        this.enabled = $.enabled;
        this.internalId = $.internalId;
        this.internationalization = $.internationalization;
        this.loginTheme = $.loginTheme;
        this.loginWithEmailAllowed = $.loginWithEmailAllowed;
        this.oauth2DeviceCodeLifespan = $.oauth2DeviceCodeLifespan;
        this.oauth2DevicePollingInterval = $.oauth2DevicePollingInterval;
        this.offlineSessionIdleTimeout = $.offlineSessionIdleTimeout;
        this.offlineSessionMaxLifespan = $.offlineSessionMaxLifespan;
        this.offlineSessionMaxLifespanEnabled = $.offlineSessionMaxLifespanEnabled;
        this.otpPolicy = $.otpPolicy;
        this.passwordPolicy = $.passwordPolicy;
        this.realm = $.realm;
        this.refreshTokenMaxReuse = $.refreshTokenMaxReuse;
        this.registrationAllowed = $.registrationAllowed;
        this.registrationEmailAsUsername = $.registrationEmailAsUsername;
        this.registrationFlow = $.registrationFlow;
        this.rememberMe = $.rememberMe;
        this.resetCredentialsFlow = $.resetCredentialsFlow;
        this.resetPasswordAllowed = $.resetPasswordAllowed;
        this.revokeRefreshToken = $.revokeRefreshToken;
        this.securityDefenses = $.securityDefenses;
        this.smtpServer = $.smtpServer;
        this.sslRequired = $.sslRequired;
        this.ssoSessionIdleTimeout = $.ssoSessionIdleTimeout;
        this.ssoSessionIdleTimeoutRememberMe = $.ssoSessionIdleTimeoutRememberMe;
        this.ssoSessionMaxLifespan = $.ssoSessionMaxLifespan;
        this.ssoSessionMaxLifespanRememberMe = $.ssoSessionMaxLifespanRememberMe;
        this.userManagedAccess = $.userManagedAccess;
        this.verifyEmail = $.verifyEmail;
        this.webAuthnPasswordlessPolicy = $.webAuthnPasswordlessPolicy;
        this.webAuthnPolicy = $.webAuthnPolicy;
    }

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

    public static final class Builder {
        private RealmArgs $;

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

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

        public Builder accessCodeLifespan(@Nullable Output accessCodeLifespan) {
            $.accessCodeLifespan = accessCodeLifespan;
            return this;
        }

        public Builder accessCodeLifespan(String accessCodeLifespan) {
            return accessCodeLifespan(Output.of(accessCodeLifespan));
        }

        public Builder accessCodeLifespanLogin(@Nullable Output accessCodeLifespanLogin) {
            $.accessCodeLifespanLogin = accessCodeLifespanLogin;
            return this;
        }

        public Builder accessCodeLifespanLogin(String accessCodeLifespanLogin) {
            return accessCodeLifespanLogin(Output.of(accessCodeLifespanLogin));
        }

        public Builder accessCodeLifespanUserAction(@Nullable Output accessCodeLifespanUserAction) {
            $.accessCodeLifespanUserAction = accessCodeLifespanUserAction;
            return this;
        }

        public Builder accessCodeLifespanUserAction(String accessCodeLifespanUserAction) {
            return accessCodeLifespanUserAction(Output.of(accessCodeLifespanUserAction));
        }

        public Builder accessTokenLifespan(@Nullable Output accessTokenLifespan) {
            $.accessTokenLifespan = accessTokenLifespan;
            return this;
        }

        public Builder accessTokenLifespan(String accessTokenLifespan) {
            return accessTokenLifespan(Output.of(accessTokenLifespan));
        }

        public Builder accessTokenLifespanForImplicitFlow(@Nullable Output accessTokenLifespanForImplicitFlow) {
            $.accessTokenLifespanForImplicitFlow = accessTokenLifespanForImplicitFlow;
            return this;
        }

        public Builder accessTokenLifespanForImplicitFlow(String accessTokenLifespanForImplicitFlow) {
            return accessTokenLifespanForImplicitFlow(Output.of(accessTokenLifespanForImplicitFlow));
        }

        public Builder accountTheme(@Nullable Output accountTheme) {
            $.accountTheme = accountTheme;
            return this;
        }

        public Builder accountTheme(String accountTheme) {
            return accountTheme(Output.of(accountTheme));
        }

        public Builder actionTokenGeneratedByAdminLifespan(@Nullable Output actionTokenGeneratedByAdminLifespan) {
            $.actionTokenGeneratedByAdminLifespan = actionTokenGeneratedByAdminLifespan;
            return this;
        }

        public Builder actionTokenGeneratedByAdminLifespan(String actionTokenGeneratedByAdminLifespan) {
            return actionTokenGeneratedByAdminLifespan(Output.of(actionTokenGeneratedByAdminLifespan));
        }

        public Builder actionTokenGeneratedByUserLifespan(@Nullable Output actionTokenGeneratedByUserLifespan) {
            $.actionTokenGeneratedByUserLifespan = actionTokenGeneratedByUserLifespan;
            return this;
        }

        public Builder actionTokenGeneratedByUserLifespan(String actionTokenGeneratedByUserLifespan) {
            return actionTokenGeneratedByUserLifespan(Output.of(actionTokenGeneratedByUserLifespan));
        }

        public Builder adminTheme(@Nullable Output adminTheme) {
            $.adminTheme = adminTheme;
            return this;
        }

        public Builder adminTheme(String adminTheme) {
            return adminTheme(Output.of(adminTheme));
        }

        public Builder attributes(@Nullable Output> attributes) {
            $.attributes = attributes;
            return this;
        }

        public Builder attributes(Map attributes) {
            return attributes(Output.of(attributes));
        }

        /**
         * @param browserFlow Which flow should be used for BrowserFlow
         * 
         * @return builder
         * 
         */
        public Builder browserFlow(@Nullable Output browserFlow) {
            $.browserFlow = browserFlow;
            return this;
        }

        /**
         * @param browserFlow Which flow should be used for BrowserFlow
         * 
         * @return builder
         * 
         */
        public Builder browserFlow(String browserFlow) {
            return browserFlow(Output.of(browserFlow));
        }

        /**
         * @param clientAuthenticationFlow Which flow should be used for ClientAuthenticationFlow
         * 
         * @return builder
         * 
         */
        public Builder clientAuthenticationFlow(@Nullable Output clientAuthenticationFlow) {
            $.clientAuthenticationFlow = clientAuthenticationFlow;
            return this;
        }

        /**
         * @param clientAuthenticationFlow Which flow should be used for ClientAuthenticationFlow
         * 
         * @return builder
         * 
         */
        public Builder clientAuthenticationFlow(String clientAuthenticationFlow) {
            return clientAuthenticationFlow(Output.of(clientAuthenticationFlow));
        }

        public Builder clientSessionIdleTimeout(@Nullable Output clientSessionIdleTimeout) {
            $.clientSessionIdleTimeout = clientSessionIdleTimeout;
            return this;
        }

        public Builder clientSessionIdleTimeout(String clientSessionIdleTimeout) {
            return clientSessionIdleTimeout(Output.of(clientSessionIdleTimeout));
        }

        public Builder clientSessionMaxLifespan(@Nullable Output clientSessionMaxLifespan) {
            $.clientSessionMaxLifespan = clientSessionMaxLifespan;
            return this;
        }

        public Builder clientSessionMaxLifespan(String clientSessionMaxLifespan) {
            return clientSessionMaxLifespan(Output.of(clientSessionMaxLifespan));
        }

        public Builder defaultDefaultClientScopes(@Nullable Output> defaultDefaultClientScopes) {
            $.defaultDefaultClientScopes = defaultDefaultClientScopes;
            return this;
        }

        public Builder defaultDefaultClientScopes(List defaultDefaultClientScopes) {
            return defaultDefaultClientScopes(Output.of(defaultDefaultClientScopes));
        }

        public Builder defaultDefaultClientScopes(String... defaultDefaultClientScopes) {
            return defaultDefaultClientScopes(List.of(defaultDefaultClientScopes));
        }

        public Builder defaultOptionalClientScopes(@Nullable Output> defaultOptionalClientScopes) {
            $.defaultOptionalClientScopes = defaultOptionalClientScopes;
            return this;
        }

        public Builder defaultOptionalClientScopes(List defaultOptionalClientScopes) {
            return defaultOptionalClientScopes(Output.of(defaultOptionalClientScopes));
        }

        public Builder defaultOptionalClientScopes(String... defaultOptionalClientScopes) {
            return defaultOptionalClientScopes(List.of(defaultOptionalClientScopes));
        }

        public Builder defaultSignatureAlgorithm(@Nullable Output defaultSignatureAlgorithm) {
            $.defaultSignatureAlgorithm = defaultSignatureAlgorithm;
            return this;
        }

        public Builder defaultSignatureAlgorithm(String defaultSignatureAlgorithm) {
            return defaultSignatureAlgorithm(Output.of(defaultSignatureAlgorithm));
        }

        /**
         * @param directGrantFlow Which flow should be used for DirectGrantFlow
         * 
         * @return builder
         * 
         */
        public Builder directGrantFlow(@Nullable Output directGrantFlow) {
            $.directGrantFlow = directGrantFlow;
            return this;
        }

        /**
         * @param directGrantFlow Which flow should be used for DirectGrantFlow
         * 
         * @return builder
         * 
         */
        public Builder directGrantFlow(String directGrantFlow) {
            return directGrantFlow(Output.of(directGrantFlow));
        }

        public Builder displayName(@Nullable Output displayName) {
            $.displayName = displayName;
            return this;
        }

        public Builder displayName(String displayName) {
            return displayName(Output.of(displayName));
        }

        public Builder displayNameHtml(@Nullable Output displayNameHtml) {
            $.displayNameHtml = displayNameHtml;
            return this;
        }

        public Builder displayNameHtml(String displayNameHtml) {
            return displayNameHtml(Output.of(displayNameHtml));
        }

        /**
         * @param dockerAuthenticationFlow Which flow should be used for DockerAuthenticationFlow
         * 
         * @return builder
         * 
         */
        public Builder dockerAuthenticationFlow(@Nullable Output dockerAuthenticationFlow) {
            $.dockerAuthenticationFlow = dockerAuthenticationFlow;
            return this;
        }

        /**
         * @param dockerAuthenticationFlow Which flow should be used for DockerAuthenticationFlow
         * 
         * @return builder
         * 
         */
        public Builder dockerAuthenticationFlow(String dockerAuthenticationFlow) {
            return dockerAuthenticationFlow(Output.of(dockerAuthenticationFlow));
        }

        public Builder duplicateEmailsAllowed(@Nullable Output duplicateEmailsAllowed) {
            $.duplicateEmailsAllowed = duplicateEmailsAllowed;
            return this;
        }

        public Builder duplicateEmailsAllowed(Boolean duplicateEmailsAllowed) {
            return duplicateEmailsAllowed(Output.of(duplicateEmailsAllowed));
        }

        public Builder editUsernameAllowed(@Nullable Output editUsernameAllowed) {
            $.editUsernameAllowed = editUsernameAllowed;
            return this;
        }

        public Builder editUsernameAllowed(Boolean editUsernameAllowed) {
            return editUsernameAllowed(Output.of(editUsernameAllowed));
        }

        public Builder emailTheme(@Nullable Output emailTheme) {
            $.emailTheme = emailTheme;
            return this;
        }

        public Builder emailTheme(String emailTheme) {
            return emailTheme(Output.of(emailTheme));
        }

        public Builder enabled(@Nullable Output enabled) {
            $.enabled = enabled;
            return this;
        }

        public Builder enabled(Boolean enabled) {
            return enabled(Output.of(enabled));
        }

        public Builder internalId(@Nullable Output internalId) {
            $.internalId = internalId;
            return this;
        }

        public Builder internalId(String internalId) {
            return internalId(Output.of(internalId));
        }

        public Builder internationalization(@Nullable Output internationalization) {
            $.internationalization = internationalization;
            return this;
        }

        public Builder internationalization(RealmInternationalizationArgs internationalization) {
            return internationalization(Output.of(internationalization));
        }

        public Builder loginTheme(@Nullable Output loginTheme) {
            $.loginTheme = loginTheme;
            return this;
        }

        public Builder loginTheme(String loginTheme) {
            return loginTheme(Output.of(loginTheme));
        }

        public Builder loginWithEmailAllowed(@Nullable Output loginWithEmailAllowed) {
            $.loginWithEmailAllowed = loginWithEmailAllowed;
            return this;
        }

        public Builder loginWithEmailAllowed(Boolean loginWithEmailAllowed) {
            return loginWithEmailAllowed(Output.of(loginWithEmailAllowed));
        }

        public Builder oauth2DeviceCodeLifespan(@Nullable Output oauth2DeviceCodeLifespan) {
            $.oauth2DeviceCodeLifespan = oauth2DeviceCodeLifespan;
            return this;
        }

        public Builder oauth2DeviceCodeLifespan(String oauth2DeviceCodeLifespan) {
            return oauth2DeviceCodeLifespan(Output.of(oauth2DeviceCodeLifespan));
        }

        public Builder oauth2DevicePollingInterval(@Nullable Output oauth2DevicePollingInterval) {
            $.oauth2DevicePollingInterval = oauth2DevicePollingInterval;
            return this;
        }

        public Builder oauth2DevicePollingInterval(Integer oauth2DevicePollingInterval) {
            return oauth2DevicePollingInterval(Output.of(oauth2DevicePollingInterval));
        }

        public Builder offlineSessionIdleTimeout(@Nullable Output offlineSessionIdleTimeout) {
            $.offlineSessionIdleTimeout = offlineSessionIdleTimeout;
            return this;
        }

        public Builder offlineSessionIdleTimeout(String offlineSessionIdleTimeout) {
            return offlineSessionIdleTimeout(Output.of(offlineSessionIdleTimeout));
        }

        public Builder offlineSessionMaxLifespan(@Nullable Output offlineSessionMaxLifespan) {
            $.offlineSessionMaxLifespan = offlineSessionMaxLifespan;
            return this;
        }

        public Builder offlineSessionMaxLifespan(String offlineSessionMaxLifespan) {
            return offlineSessionMaxLifespan(Output.of(offlineSessionMaxLifespan));
        }

        public Builder offlineSessionMaxLifespanEnabled(@Nullable Output offlineSessionMaxLifespanEnabled) {
            $.offlineSessionMaxLifespanEnabled = offlineSessionMaxLifespanEnabled;
            return this;
        }

        public Builder offlineSessionMaxLifespanEnabled(Boolean offlineSessionMaxLifespanEnabled) {
            return offlineSessionMaxLifespanEnabled(Output.of(offlineSessionMaxLifespanEnabled));
        }

        public Builder otpPolicy(@Nullable Output otpPolicy) {
            $.otpPolicy = otpPolicy;
            return this;
        }

        public Builder otpPolicy(RealmOtpPolicyArgs otpPolicy) {
            return otpPolicy(Output.of(otpPolicy));
        }

        /**
         * @param passwordPolicy String that represents the passwordPolicies that are in place. Each policy is separated with " and ". Supported policies
         * can be found in the server-info providers page. example: "upperCase(1) and length(8) and forceExpiredPasswordChange(365)
         * and notUsername(undefined)"
         * 
         * @return builder
         * 
         */
        public Builder passwordPolicy(@Nullable Output passwordPolicy) {
            $.passwordPolicy = passwordPolicy;
            return this;
        }

        /**
         * @param passwordPolicy String that represents the passwordPolicies that are in place. Each policy is separated with " and ". Supported policies
         * can be found in the server-info providers page. example: "upperCase(1) and length(8) and forceExpiredPasswordChange(365)
         * and notUsername(undefined)"
         * 
         * @return builder
         * 
         */
        public Builder passwordPolicy(String passwordPolicy) {
            return passwordPolicy(Output.of(passwordPolicy));
        }

        public Builder realm(Output realm) {
            $.realm = realm;
            return this;
        }

        public Builder realm(String realm) {
            return realm(Output.of(realm));
        }

        public Builder refreshTokenMaxReuse(@Nullable Output refreshTokenMaxReuse) {
            $.refreshTokenMaxReuse = refreshTokenMaxReuse;
            return this;
        }

        public Builder refreshTokenMaxReuse(Integer refreshTokenMaxReuse) {
            return refreshTokenMaxReuse(Output.of(refreshTokenMaxReuse));
        }

        public Builder registrationAllowed(@Nullable Output registrationAllowed) {
            $.registrationAllowed = registrationAllowed;
            return this;
        }

        public Builder registrationAllowed(Boolean registrationAllowed) {
            return registrationAllowed(Output.of(registrationAllowed));
        }

        public Builder registrationEmailAsUsername(@Nullable Output registrationEmailAsUsername) {
            $.registrationEmailAsUsername = registrationEmailAsUsername;
            return this;
        }

        public Builder registrationEmailAsUsername(Boolean registrationEmailAsUsername) {
            return registrationEmailAsUsername(Output.of(registrationEmailAsUsername));
        }

        /**
         * @param registrationFlow Which flow should be used for RegistrationFlow
         * 
         * @return builder
         * 
         */
        public Builder registrationFlow(@Nullable Output registrationFlow) {
            $.registrationFlow = registrationFlow;
            return this;
        }

        /**
         * @param registrationFlow Which flow should be used for RegistrationFlow
         * 
         * @return builder
         * 
         */
        public Builder registrationFlow(String registrationFlow) {
            return registrationFlow(Output.of(registrationFlow));
        }

        public Builder rememberMe(@Nullable Output rememberMe) {
            $.rememberMe = rememberMe;
            return this;
        }

        public Builder rememberMe(Boolean rememberMe) {
            return rememberMe(Output.of(rememberMe));
        }

        /**
         * @param resetCredentialsFlow Which flow should be used for ResetCredentialsFlow
         * 
         * @return builder
         * 
         */
        public Builder resetCredentialsFlow(@Nullable Output resetCredentialsFlow) {
            $.resetCredentialsFlow = resetCredentialsFlow;
            return this;
        }

        /**
         * @param resetCredentialsFlow Which flow should be used for ResetCredentialsFlow
         * 
         * @return builder
         * 
         */
        public Builder resetCredentialsFlow(String resetCredentialsFlow) {
            return resetCredentialsFlow(Output.of(resetCredentialsFlow));
        }

        public Builder resetPasswordAllowed(@Nullable Output resetPasswordAllowed) {
            $.resetPasswordAllowed = resetPasswordAllowed;
            return this;
        }

        public Builder resetPasswordAllowed(Boolean resetPasswordAllowed) {
            return resetPasswordAllowed(Output.of(resetPasswordAllowed));
        }

        public Builder revokeRefreshToken(@Nullable Output revokeRefreshToken) {
            $.revokeRefreshToken = revokeRefreshToken;
            return this;
        }

        public Builder revokeRefreshToken(Boolean revokeRefreshToken) {
            return revokeRefreshToken(Output.of(revokeRefreshToken));
        }

        public Builder securityDefenses(@Nullable Output securityDefenses) {
            $.securityDefenses = securityDefenses;
            return this;
        }

        public Builder securityDefenses(RealmSecurityDefensesArgs securityDefenses) {
            return securityDefenses(Output.of(securityDefenses));
        }

        public Builder smtpServer(@Nullable Output smtpServer) {
            $.smtpServer = smtpServer;
            return this;
        }

        public Builder smtpServer(RealmSmtpServerArgs smtpServer) {
            return smtpServer(Output.of(smtpServer));
        }

        /**
         * @param sslRequired SSL Required: Values can be 'none', 'external' or 'all'.
         * 
         * @return builder
         * 
         */
        public Builder sslRequired(@Nullable Output sslRequired) {
            $.sslRequired = sslRequired;
            return this;
        }

        /**
         * @param sslRequired SSL Required: Values can be 'none', 'external' or 'all'.
         * 
         * @return builder
         * 
         */
        public Builder sslRequired(String sslRequired) {
            return sslRequired(Output.of(sslRequired));
        }

        public Builder ssoSessionIdleTimeout(@Nullable Output ssoSessionIdleTimeout) {
            $.ssoSessionIdleTimeout = ssoSessionIdleTimeout;
            return this;
        }

        public Builder ssoSessionIdleTimeout(String ssoSessionIdleTimeout) {
            return ssoSessionIdleTimeout(Output.of(ssoSessionIdleTimeout));
        }

        public Builder ssoSessionIdleTimeoutRememberMe(@Nullable Output ssoSessionIdleTimeoutRememberMe) {
            $.ssoSessionIdleTimeoutRememberMe = ssoSessionIdleTimeoutRememberMe;
            return this;
        }

        public Builder ssoSessionIdleTimeoutRememberMe(String ssoSessionIdleTimeoutRememberMe) {
            return ssoSessionIdleTimeoutRememberMe(Output.of(ssoSessionIdleTimeoutRememberMe));
        }

        public Builder ssoSessionMaxLifespan(@Nullable Output ssoSessionMaxLifespan) {
            $.ssoSessionMaxLifespan = ssoSessionMaxLifespan;
            return this;
        }

        public Builder ssoSessionMaxLifespan(String ssoSessionMaxLifespan) {
            return ssoSessionMaxLifespan(Output.of(ssoSessionMaxLifespan));
        }

        public Builder ssoSessionMaxLifespanRememberMe(@Nullable Output ssoSessionMaxLifespanRememberMe) {
            $.ssoSessionMaxLifespanRememberMe = ssoSessionMaxLifespanRememberMe;
            return this;
        }

        public Builder ssoSessionMaxLifespanRememberMe(String ssoSessionMaxLifespanRememberMe) {
            return ssoSessionMaxLifespanRememberMe(Output.of(ssoSessionMaxLifespanRememberMe));
        }

        public Builder userManagedAccess(@Nullable Output userManagedAccess) {
            $.userManagedAccess = userManagedAccess;
            return this;
        }

        public Builder userManagedAccess(Boolean userManagedAccess) {
            return userManagedAccess(Output.of(userManagedAccess));
        }

        public Builder verifyEmail(@Nullable Output verifyEmail) {
            $.verifyEmail = verifyEmail;
            return this;
        }

        public Builder verifyEmail(Boolean verifyEmail) {
            return verifyEmail(Output.of(verifyEmail));
        }

        public Builder webAuthnPasswordlessPolicy(@Nullable Output webAuthnPasswordlessPolicy) {
            $.webAuthnPasswordlessPolicy = webAuthnPasswordlessPolicy;
            return this;
        }

        public Builder webAuthnPasswordlessPolicy(RealmWebAuthnPasswordlessPolicyArgs webAuthnPasswordlessPolicy) {
            return webAuthnPasswordlessPolicy(Output.of(webAuthnPasswordlessPolicy));
        }

        public Builder webAuthnPolicy(@Nullable Output webAuthnPolicy) {
            $.webAuthnPolicy = webAuthnPolicy;
            return this;
        }

        public Builder webAuthnPolicy(RealmWebAuthnPolicyArgs webAuthnPolicy) {
            return webAuthnPolicy(Output.of(webAuthnPolicy));
        }

        public RealmArgs build() {
            if ($.realm == null) {
                throw new MissingRequiredPropertyException("RealmArgs", "realm");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy