# coding=utf-8
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import copy
import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from . import _utilities

__all__ = [
    'ActionDependencyArgs',
    'ActionSecretArgs',
    'ActionSupportedTriggersArgs',
    'AttackProtectionBreachedPasswordDetectionArgs',
    'AttackProtectionBreachedPasswordDetectionPreUserRegistrationArgs',
    'AttackProtectionBruteForceProtectionArgs',
    'AttackProtectionSuspiciousIpThrottlingArgs',
    'AttackProtectionSuspiciousIpThrottlingPreLoginArgs',
    'AttackProtectionSuspiciousIpThrottlingPreUserRegistrationArgs',
    'BrandingColorsArgs',
    'BrandingFontArgs',
    'BrandingThemeBordersArgs',
    'BrandingThemeColorsArgs',
    'BrandingThemeFontsArgs',
    'BrandingThemeFontsBodyTextArgs',
    'BrandingThemeFontsButtonsTextArgs',
    'BrandingThemeFontsInputLabelsArgs',
    'BrandingThemeFontsLinksArgs',
    'BrandingThemeFontsSubtitleArgs',
    'BrandingThemeFontsTitleArgs',
    'BrandingThemePageBackgroundArgs',
    'BrandingThemeWidgetArgs',
    'BrandingUniversalLoginArgs',
    'ClientAddonsArgs',
    'ClientAddonsSamlpArgs',
    'ClientCredentialsPrivateKeyJwtArgs',
    'ClientCredentialsPrivateKeyJwtCredentialArgs',
    'ClientJwtConfigurationArgs',
    'ClientMobileArgs',
    'ClientMobileAndroidArgs',
    'ClientMobileIosArgs',
    'ClientNativeSocialLoginArgs',
    'ClientNativeSocialLoginAppleArgs',
    'ClientNativeSocialLoginFacebookArgs',
    'ClientRefreshTokenArgs',
    'ConnectionOptionsArgs',
    'ConnectionOptionsGatewayAuthenticationArgs',
    'ConnectionOptionsIdpInitiatedArgs',
    'ConnectionOptionsMfaArgs',
    'ConnectionOptionsPasswordComplexityOptionsArgs',
    'ConnectionOptionsPasswordDictionaryArgs',
    'ConnectionOptionsPasswordHistoryArgs',
    'ConnectionOptionsPasswordNoPersonalInfoArgs',
    'ConnectionOptionsSigningKeyArgs',
    'ConnectionOptionsTotpArgs',
    'ConnectionOptionsValidationArgs',
    'ConnectionOptionsValidationUsernameArgs',
    'CustomDomainVerificationArgs',
    'EmailCredentialsArgs',
    'EmailSettingsArgs',
    'EmailSettingsHeadersArgs',
    'EmailSettingsMessageArgs',
    'GlobalClientAddonsArgs',
    'GlobalClientAddonsSamlpArgs',
    'GlobalClientJwtConfigurationArgs',
    'GlobalClientMobileArgs',
    'GlobalClientMobileAndroidArgs',
    'GlobalClientMobileIosArgs',
    'GlobalClientNativeSocialLoginArgs',
    'GlobalClientNativeSocialLoginAppleArgs',
    'GlobalClientNativeSocialLoginFacebookArgs',
    'GlobalClientRefreshTokenArgs',
    'GuardianDuoArgs',
    'GuardianPhoneArgs',
    'GuardianPhoneOptionsArgs',
    'GuardianPushArgs',
    'GuardianPushAmazonSnsArgs',
    'GuardianPushCustomAppArgs',
    'GuardianPushDirectApnsArgs',
    'GuardianPushDirectFcmArgs',
    'GuardianWebauthnPlatformArgs',
    'GuardianWebauthnRoamingArgs',
    'LogStreamSinkArgs',
    'OrganizationBrandingArgs',
    'OrganizationConnectionsEnabledConnectionArgs',
    'PagesChangePasswordArgs',
    'PagesErrorArgs',
    'PagesGuardianMfaArgs',
    'PagesLoginArgs',
    'ResourceServerScopeArgs',
    'ResourceServerScopesScopeArgs',
    'RolePermissionArgs',
    'RolePermissionsPermissionArgs',
    'TenantChangePasswordArgs',
    'TenantErrorPageArgs',
    'TenantFlagsArgs',
    'TenantGuardianMfaPageArgs',
    'TenantSessionCookieArgs',
    'TenantUniversalLoginArgs',
    'TenantUniversalLoginColorsArgs',
    'TriggerActionsActionArgs',
    'TriggerBindingActionArgs',
    'UserPermissionArgs',
    'UserPermissionsPermissionArgs',
]

@pulumi.input_type
class ActionDependencyArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[str],
                 version: pulumi.Input[str]):
        """
        :param pulumi.Input[str] name: Dependency name, e.g. `lodash`.
        :param pulumi.Input[str] version: Dependency version, e.g. `latest` or `4.17.21`.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "version", version)

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[str]:
        """
        Dependency name, e.g. `lodash`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[str]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def version(self) -> pulumi.Input[str]:
        """
        Dependency version, e.g. `latest` or `4.17.21`.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: pulumi.Input[str]):
        pulumi.set(self, "version", value)


@pulumi.input_type
class ActionSecretArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[str],
                 value: pulumi.Input[str]):
        """
        :param pulumi.Input[str] name: Secret name.
        :param pulumi.Input[str] value: Secret value.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[str]:
        """
        Secret name.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[str]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def value(self) -> pulumi.Input[str]:
        """
        Secret value.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: pulumi.Input[str]):
        pulumi.set(self, "value", value)


@pulumi.input_type
class ActionSupportedTriggersArgs:
    def __init__(__self__, *,
                 id: pulumi.Input[str],
                 version: pulumi.Input[str]):
        """
        :param pulumi.Input[str] id: The trigger ID.
        :param pulumi.Input[str] version: The trigger version. This regulates which `runtime` versions are supported.
        """
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "version", version)

    @property
    @pulumi.getter
    def id(self) -> pulumi.Input[str]:
        """
        The trigger ID.
        """
        return pulumi.get(self, "id")

    @id.setter
    def id(self, value: pulumi.Input[str]):
        pulumi.set(self, "id", value)

    @property
    @pulumi.getter
    def version(self) -> pulumi.Input[str]:
        """
        The trigger version. This regulates which `runtime` versions are supported.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: pulumi.Input[str]):
        pulumi.set(self, "version", value)


@pulumi.input_type
class AttackProtectionBreachedPasswordDetectionArgs:
    def __init__(__self__, *,
                 admin_notification_frequencies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 enabled: Optional[pulumi.Input[bool]] = None,
                 method: Optional[pulumi.Input[str]] = None,
                 pre_user_registration: Optional[pulumi.Input['AttackProtectionBreachedPasswordDetectionPreUserRegistrationArgs']] = None,
                 shields: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] admin_notification_frequencies: When "admin_notification" is enabled, determines how often email notifications are sent. Possible values: `immediately`, `daily`, `weekly`, `monthly`.
        :param pulumi.Input[bool] enabled: Whether breached password detection is active.
        :param pulumi.Input[str] method: The subscription level for breached password detection methods. Use "enhanced" to enable Credential Guard. Possible values: `standard`, `enhanced`.
        :param pulumi.Input['AttackProtectionBreachedPasswordDetectionPreUserRegistrationArgs'] pre_user_registration: Configuration options that apply before every user registration attempt. Only available on public tenants.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] shields: Action to take when a breached password is detected.
        """
        if admin_notification_frequencies is not None:
            pulumi.set(__self__, "admin_notification_frequencies", admin_notification_frequencies)
        if enabled is not None:
            pulumi.set(__self__, "enabled", enabled)
        if method is not None:
            pulumi.set(__self__, "method", method)
        if pre_user_registration is not None:
            pulumi.set(__self__, "pre_user_registration", pre_user_registration)
        if shields is not None:
            pulumi.set(__self__, "shields", shields)

    @property
    @pulumi.getter(name="adminNotificationFrequencies")
    def admin_notification_frequencies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        When "admin_notification" is enabled, determines how often email notifications are sent. Possible values: `immediately`, `daily`, `weekly`, `monthly`.
        """
        return pulumi.get(self, "admin_notification_frequencies")

    @admin_notification_frequencies.setter
    def admin_notification_frequencies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "admin_notification_frequencies", value)

    @property
    @pulumi.getter
    def enabled(self) -> Optional[pulumi.Input[bool]]:
        """
        Whether breached password detection is active.
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enabled", value)

    @property
    @pulumi.getter
    def method(self) -> Optional[pulumi.Input[str]]:
        """
        The subscription level for breached password detection methods. Use "enhanced" to enable Credential Guard. Possible values: `standard`, `enhanced`.
        """
        return pulumi.get(self, "method")

    @method.setter
    def method(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "method", value)

    @property
    @pulumi.getter(name="preUserRegistration")
    def pre_user_registration(self) -> Optional[pulumi.Input['AttackProtectionBreachedPasswordDetectionPreUserRegistrationArgs']]:
        """
        Configuration options that apply before every user registration attempt. Only available on public tenants.
        """
        return pulumi.get(self, "pre_user_registration")

    @pre_user_registration.setter
    def pre_user_registration(self, value: Optional[pulumi.Input['AttackProtectionBreachedPasswordDetectionPreUserRegistrationArgs']]):
        pulumi.set(self, "pre_user_registration", value)

    @property
    @pulumi.getter
    def shields(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Action to take when a breached password is detected.
        """
        return pulumi.get(self, "shields")

    @shields.setter
    def shields(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "shields", value)


@pulumi.input_type
class AttackProtectionBreachedPasswordDetectionPreUserRegistrationArgs:
    def __init__(__self__, *,
                 shields: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
        if shields is not None:
            pulumi.set(__self__, "shields", shields)

    @property
    @pulumi.getter
    def shields(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        return pulumi.get(self, "shields")

    @shields.setter
    def shields(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "shields", value)


@pulumi.input_type
class AttackProtectionBruteForceProtectionArgs:
    def __init__(__self__, *,
                 allowlists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 enabled: Optional[pulumi.Input[bool]] = None,
                 max_attempts: Optional[pulumi.Input[int]] = None,
                 mode: Optional[pulumi.Input[str]] = None,
                 shields: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowlists: List of trusted IP addresses that will not have attack protection enforced against them.
        :param pulumi.Input[bool] enabled: Whether brute force attack protections are active.
        :param pulumi.Input[int] max_attempts: Maximum number of unsuccessful attempts. Only available on public tenants.
        :param pulumi.Input[str] mode: Determines whether the IP address is used when counting failed attempts. Possible values: `count_per_identifier_and_ip` or `count_per_identifier`.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] shields: Action to take when a brute force protection threshold is violated. Possible values: `block`, `user_notification`
        """
        if allowlists is not None:
            pulumi.set(__self__, "allowlists", allowlists)
        if enabled is not None:
            pulumi.set(__self__, "enabled", enabled)
        if max_attempts is not None:
            pulumi.set(__self__, "max_attempts", max_attempts)
        if mode is not None:
            pulumi.set(__self__, "mode", mode)
        if shields is not None:
            pulumi.set(__self__, "shields", shields)

    @property
    @pulumi.getter
    def allowlists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        List of trusted IP addresses that will not have attack protection enforced against them.
        """
        return pulumi.get(self, "allowlists")

    @allowlists.setter
    def allowlists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "allowlists", value)

    @property
    @pulumi.getter
    def enabled(self) -> Optional[pulumi.Input[bool]]:
        """
        Whether brute force attack protections are active.
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enabled", value)

    @property
    @pulumi.getter(name="maxAttempts")
    def max_attempts(self) -> Optional[pulumi.Input[int]]:
        """
        Maximum number of unsuccessful attempts. Only available on public tenants.
        """
        return pulumi.get(self, "max_attempts")

    @max_attempts.setter
    def max_attempts(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "max_attempts", value)

    @property
    @pulumi.getter
    def mode(self) -> Optional[pulumi.Input[str]]:
        """
        Determines whether the IP address is used when counting failed attempts. Possible values: `count_per_identifier_and_ip` or `count_per_identifier`.
        """
        return pulumi.get(self, "mode")

    @mode.setter
    def mode(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "mode", value)

    @property
    @pulumi.getter
    def shields(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Action to take when a brute force protection threshold is violated. Possible values: `block`, `user_notification`
        """
        return pulumi.get(self, "shields")

    @shields.setter
    def shields(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "shields", value)


@pulumi.input_type
class AttackProtectionSuspiciousIpThrottlingArgs:
    def __init__(__self__, *,
                 allowlists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 enabled: Optional[pulumi.Input[bool]] = None,
                 pre_login: Optional[pulumi.Input['AttackProtectionSuspiciousIpThrottlingPreLoginArgs']] = None,
                 pre_user_registration: Optional[pulumi.Input['AttackProtectionSuspiciousIpThrottlingPreUserRegistrationArgs']] = None,
                 shields: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowlists: List of trusted IP addresses that will not have attack protection enforced against them.
        :param pulumi.Input[bool] enabled: Whether suspicious IP throttling attack protections are active.
        :param pulumi.Input['AttackProtectionSuspiciousIpThrottlingPreLoginArgs'] pre_login: Configuration options that apply before every login attempt. Only available on public tenants.
        :param pulumi.Input['AttackProtectionSuspiciousIpThrottlingPreUserRegistrationArgs'] pre_user_registration: Configuration options that apply before every user registration attempt. Only available on public tenants.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] shields: Action to take when a suspicious IP throttling threshold is violated. Possible values: `block`, `admin_notification`
        """
        if allowlists is not None:
            pulumi.set(__self__, "allowlists", allowlists)
        if enabled is not None:
            pulumi.set(__self__, "enabled", enabled)
        if pre_login is not None:
            pulumi.set(__self__, "pre_login", pre_login)
        if pre_user_registration is not None:
            pulumi.set(__self__, "pre_user_registration", pre_user_registration)
        if shields is not None:
            pulumi.set(__self__, "shields", shields)

    @property
    @pulumi.getter
    def allowlists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        List of trusted IP addresses that will not have attack protection enforced against them.
        """
        return pulumi.get(self, "allowlists")

    @allowlists.setter
    def allowlists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "allowlists", value)

    @property
    @pulumi.getter
    def enabled(self) -> Optional[pulumi.Input[bool]]:
        """
        Whether suspicious IP throttling attack protections are active.
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enabled", value)

    @property
    @pulumi.getter(name="preLogin")
    def pre_login(self) -> Optional[pulumi.Input['AttackProtectionSuspiciousIpThrottlingPreLoginArgs']]:
        """
        Configuration options that apply before every login attempt. Only available on public tenants.
        """
        return pulumi.get(self, "pre_login")

    @pre_login.setter
    def pre_login(self, value: Optional[pulumi.Input['AttackProtectionSuspiciousIpThrottlingPreLoginArgs']]):
        pulumi.set(self, "pre_login", value)

    @property
    @pulumi.getter(name="preUserRegistration")
    def pre_user_registration(self) -> Optional[pulumi.Input['AttackProtectionSuspiciousIpThrottlingPreUserRegistrationArgs']]:
        """
        Configuration options that apply before every user registration attempt. Only available on public tenants.
        """
        return pulumi.get(self, "pre_user_registration")

    @pre_user_registration.setter
    def pre_user_registration(self, value: Optional[pulumi.Input['AttackProtectionSuspiciousIpThrottlingPreUserRegistrationArgs']]):
        pulumi.set(self, "pre_user_registration", value)

    @property
    @pulumi.getter
    def shields(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Action to take when a suspicious IP throttling threshold is violated. Possible values: `block`, `admin_notification`
        """
        return pulumi.get(self, "shields")

    @shields.setter
    def shields(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "shields", value)


@pulumi.input_type
class AttackProtectionSuspiciousIpThrottlingPreLoginArgs:
    def __init__(__self__, *,
                 max_attempts: Optional[pulumi.Input[int]] = None,
                 rate: Optional[pulumi.Input[int]] = None):
        if max_attempts is not None:
            pulumi.set(__self__, "max_attempts", max_attempts)
        if rate is not None:
            pulumi.set(__self__, "rate", rate)

    @property
    @pulumi.getter(name="maxAttempts")
    def max_attempts(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "max_attempts")

    @max_attempts.setter
    def max_attempts(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "max_attempts", value)

    @property
    @pulumi.getter
    def rate(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "rate")

    @rate.setter
    def rate(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "rate", value)


@pulumi.input_type
class AttackProtectionSuspiciousIpThrottlingPreUserRegistrationArgs:
    def __init__(__self__, *,
                 max_attempts: Optional[pulumi.Input[int]] = None,
                 rate: Optional[pulumi.Input[int]] = None):
        if max_attempts is not None:
            pulumi.set(__self__, "max_attempts", max_attempts)
        if rate is not None:
            pulumi.set(__self__, "rate", rate)

    @property
    @pulumi.getter(name="maxAttempts")
    def max_attempts(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "max_attempts")

    @max_attempts.setter
    def max_attempts(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "max_attempts", value)

    @property
    @pulumi.getter
    def rate(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "rate")

    @rate.setter
    def rate(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "rate", value)


@pulumi.input_type
class BrandingColorsArgs:
    def __init__(__self__, *,
                 page_background: Optional[pulumi.Input[str]] = None,
                 primary: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] page_background: Background color of login pages in hexadecimal.
        :param pulumi.Input[str] primary: Primary button background color in hexadecimal.
        """
        if page_background is not None:
            pulumi.set(__self__, "page_background", page_background)
        if primary is not None:
            pulumi.set(__self__, "primary", primary)

    @property
    @pulumi.getter(name="pageBackground")
    def page_background(self) -> Optional[pulumi.Input[str]]:
        """
        Background color of login pages in hexadecimal.
        """
        return pulumi.get(self, "page_background")

    @page_background.setter
    def page_background(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "page_background", value)

    @property
    @pulumi.getter
    def primary(self) -> Optional[pulumi.Input[str]]:
        """
        Primary button background color in hexadecimal.
        """
        return pulumi.get(self, "primary")

    @primary.setter
    def primary(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "primary", value)


@pulumi.input_type
class BrandingFontArgs:
    def __init__(__self__, *,
                 url: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] url: URL for the custom font.
        """
        if url is not None:
            pulumi.set(__self__, "url", url)

    @property
    @pulumi.getter
    def url(self) -> Optional[pulumi.Input[str]]:
        """
        URL for the custom font.
        """
        return pulumi.get(self, "url")

    @url.setter
    def url(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "url", value)


@pulumi.input_type
class BrandingThemeBordersArgs:
    def __init__(__self__, *,
                 button_border_radius: Optional[pulumi.Input[float]] = None,
                 button_border_weight: Optional[pulumi.Input[float]] = None,
                 buttons_style: Optional[pulumi.Input[str]] = None,
                 input_border_radius: Optional[pulumi.Input[float]] = None,
                 input_border_weight: Optional[pulumi.Input[float]] = None,
                 inputs_style: Optional[pulumi.Input[str]] = None,
                 show_widget_shadow: Optional[pulumi.Input[bool]] = None,
                 widget_border_weight: Optional[pulumi.Input[float]] = None,
                 widget_corner_radius: Optional[pulumi.Input[float]] = None):
        """
        :param pulumi.Input[float] button_border_radius: Button border radius. Value needs to be between `1` and `10`. Defaults to `3.0`.
        :param pulumi.Input[float] button_border_weight: Button border weight. Value needs to be between `0` and `10`. Defaults to `1.0`.
        :param pulumi.Input[str] buttons_style: Buttons style. Available options: `pill`, `rounded`, `sharp`. Defaults to `rounded`.
        :param pulumi.Input[float] input_border_radius: Input border radius. Value needs to be between `0` and `10`. Defaults to `3.0`.
        :param pulumi.Input[float] input_border_weight: Input border weight. Value needs to be between `0` and `3`. Defaults to `1.0`.
        :param pulumi.Input[str] inputs_style: Inputs style. Available options: `pill`, `rounded`, `sharp`. Defaults to `rounded`.
        :param pulumi.Input[bool] show_widget_shadow: Show widget shadow. Defaults to `true`.
        :param pulumi.Input[float] widget_border_weight: Widget border weight. Value needs to be between `0` and `10`. Defaults to `0.0`.
        :param pulumi.Input[float] widget_corner_radius: Widget corner radius. Value needs to be between `0` and `50`. Defaults to `5.0`.
        """
        if button_border_radius is not None:
            pulumi.set(__self__, "button_border_radius", button_border_radius)
        if button_border_weight is not None:
            pulumi.set(__self__, "button_border_weight", button_border_weight)
        if buttons_style is not None:
            pulumi.set(__self__, "buttons_style", buttons_style)
        if input_border_radius is not None:
            pulumi.set(__self__, "input_border_radius", input_border_radius)
        if input_border_weight is not None:
            pulumi.set(__self__, "input_border_weight", input_border_weight)
        if inputs_style is not None:
            pulumi.set(__self__, "inputs_style", inputs_style)
        if show_widget_shadow is not None:
            pulumi.set(__self__, "show_widget_shadow", show_widget_shadow)
        if widget_border_weight is not None:
            pulumi.set(__self__, "widget_border_weight", widget_border_weight)
        if widget_corner_radius is not None:
            pulumi.set(__self__, "widget_corner_radius", widget_corner_radius)

    @property
    @pulumi.getter(name="buttonBorderRadius")
    def button_border_radius(self) -> Optional[pulumi.Input[float]]:
        """
        Button border radius. Value needs to be between `1` and `10`. Defaults to `3.0`.
        """
        return pulumi.get(self, "button_border_radius")

    @button_border_radius.setter
    def button_border_radius(self, value: Optional[pulumi.Input[float]]):
        pulumi.set(self, "button_border_radius", value)

    @property
    @pulumi.getter(name="buttonBorderWeight")
    def button_border_weight(self) -> Optional[pulumi.Input[float]]:
        """
        Button border weight. Value needs to be between `0` and `10`. Defaults to `1.0`.
        """
        return pulumi.get(self, "button_border_weight")

    @button_border_weight.setter
    def button_border_weight(self, value: Optional[pulumi.Input[float]]):
        pulumi.set(self, "button_border_weight", value)

    @property
    @pulumi.getter(name="buttonsStyle")
    def buttons_style(self) -> Optional[pulumi.Input[str]]:
        """
        Buttons style. Available options: `pill`, `rounded`, `sharp`. Defaults to `rounded`.
        """
        return pulumi.get(self, "buttons_style")

    @buttons_style.setter
    def buttons_style(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "buttons_style", value)

    @property
    @pulumi.getter(name="inputBorderRadius")
    def input_border_radius(self) -> Optional[pulumi.Input[float]]:
        """
        Input border radius. Value needs to be between `0` and `10`. Defaults to `3.0`.
        """
        return pulumi.get(self, "input_border_radius")

    @input_border_radius.setter
    def input_border_radius(self, value: Optional[pulumi.Input[float]]):
        pulumi.set(self, "input_border_radius", value)

    @property
    @pulumi.getter(name="inputBorderWeight")
    def input_border_weight(self) -> Optional[pulumi.Input[float]]:
        """
        Input border weight. Value needs to be between `0` and `3`. Defaults to `1.0`.
        """
        return pulumi.get(self, "input_border_weight")

    @input_border_weight.setter
    def input_border_weight(self, value: Optional[pulumi.Input[float]]):
        pulumi.set(self, "input_border_weight", value)

    @property
    @pulumi.getter(name="inputsStyle")
    def inputs_style(self) -> Optional[pulumi.Input[str]]:
        """
        Inputs style. Available options: `pill`, `rounded`, `sharp`. Defaults to `rounded`.
        """
        return pulumi.get(self, "inputs_style")

    @inputs_style.setter
    def inputs_style(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "inputs_style", value)

    @property
    @pulumi.getter(name="showWidgetShadow")
    def show_widget_shadow(self) -> Optional[pulumi.Input[bool]]:
        """
        Show widget shadow. Defaults to `true`.
        """
        return pulumi.get(self, "show_widget_shadow")

    @show_widget_shadow.setter
    def show_widget_shadow(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "show_widget_shadow", value)

    @property
    @pulumi.getter(name="widgetBorderWeight")
    def widget_border_weight(self) -> Optional[pulumi.Input[float]]:
        """
        Widget border weight. Value needs to be between `0` and `10`. Defaults to `0.0`.
        """
        return pulumi.get(self, "widget_border_weight")

    @widget_border_weight.setter
    def widget_border_weight(self, value: Optional[pulumi.Input[float]]):
        pulumi.set(self, "widget_border_weight", value)

    @property
    @pulumi.getter(name="widgetCornerRadius")
    def widget_corner_radius(self) -> Optional[pulumi.Input[float]]:
        """
        Widget corner radius. Value needs to be between `0` and `50`. Defaults to `5.0`.
        """
        return pulumi.get(self, "widget_corner_radius")

    @widget_corner_radius.setter
    def widget_corner_radius(self, value: Optional[pulumi.Input[float]]):
        pulumi.set(self, "widget_corner_radius", value)


@pulumi.input_type
class BrandingThemeColorsArgs:
    def __init__(__self__, *,
                 base_focus_color: Optional[pulumi.Input[str]] = None,
                 base_hover_color: Optional[pulumi.Input[str]] = None,
                 body_text: Optional[pulumi.Input[str]] = None,
                 error: Optional[pulumi.Input[str]] = None,
                 header: Optional[pulumi.Input[str]] = None,
                 icons: Optional[pulumi.Input[str]] = None,
                 input_background: Optional[pulumi.Input[str]] = None,
                 input_border: Optional[pulumi.Input[str]] = None,
                 input_filled_text: Optional[pulumi.Input[str]] = None,
                 input_labels_placeholders: Optional[pulumi.Input[str]] = None,
                 links_focused_components: Optional[pulumi.Input[str]] = None,
                 primary_button: Optional[pulumi.Input[str]] = None,
                 primary_button_label: Optional[pulumi.Input[str]] = None,
                 secondary_button_border: Optional[pulumi.Input[str]] = None,
                 secondary_button_label: Optional[pulumi.Input[str]] = None,
                 success: Optional[pulumi.Input[str]] = None,
                 widget_background: Optional[pulumi.Input[str]] = None,
                 widget_border: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] base_focus_color: Base focus color. Defaults to `#635dff`.
        :param pulumi.Input[str] base_hover_color: Base hover color. Defaults to `#000000`.
        :param pulumi.Input[str] body_text: Body text. Defaults to `#1e212a`.
        :param pulumi.Input[str] error: Error. Defaults to `#d03c38`.
        :param pulumi.Input[str] header: Header. Defaults to `#1e212a`.
        :param pulumi.Input[str] icons: Icons. Defaults to `#65676e`.
        :param pulumi.Input[str] input_background: Input background. Defaults to `#ffffff`.
        :param pulumi.Input[str] input_border: Input border. Defaults to `#c9cace`.
        :param pulumi.Input[str] input_filled_text: Input filled text. Defaults to `#000000`.
        :param pulumi.Input[str] input_labels_placeholders: Input labels & placeholders. Defaults to `#65676e`.
        :param pulumi.Input[str] links_focused_components: Links & focused components. Defaults to `#635dff`.
        :param pulumi.Input[str] primary_button: Primary button. Defaults to `#635dff`.
        :param pulumi.Input[str] primary_button_label: Primary button label. Defaults to `#ffffff`.
        :param pulumi.Input[str] secondary_button_border: Secondary button border. Defaults to `#c9cace`.
        :param pulumi.Input[str] secondary_button_label: Secondary button label. Defaults to `#1e212a`.
        :param pulumi.Input[str] success: Success. Defaults to `#13a688`.
        :param pulumi.Input[str] widget_background: Widget background. Defaults to `#ffffff`.
        :param pulumi.Input[str] widget_border: Widget border. Defaults to `#c9cace`.
        """
        if base_focus_color is not None:
            pulumi.set(__self__, "base_focus_color", base_focus_color)
        if base_hover_color is not None:
            pulumi.set(__self__, "base_hover_color", base_hover_color)
        if body_text is not None:
            pulumi.set(__self__, "body_text", body_text)
        if error is not None:
            pulumi.set(__self__, "error", error)
        if header is not None:
            pulumi.set(__self__, "header", header)
        if icons is not None:
            pulumi.set(__self__, "icons", icons)
        if input_background is not None:
            pulumi.set(__self__, "input_background", input_background)
        if input_border is not None:
            pulumi.set(__self__, "input_border", input_border)
        if input_filled_text is not None:
            pulumi.set(__self__, "input_filled_text", input_filled_text)
        if input_labels_placeholders is not None:
            pulumi.set(__self__, "input_labels_placeholders", input_labels_placeholders)
        if links_focused_components is not None:
            pulumi.set(__self__, "links_focused_components", links_focused_components)
        if primary_button is not None:
            pulumi.set(__self__, "primary_button", primary_button)
        if primary_button_label is not None:
            pulumi.set(__self__, "primary_button_label", primary_button_label)
        if secondary_button_border is not None:
            pulumi.set(__self__, "secondary_button_border", secondary_button_border)
        if secondary_button_label is not None:
            pulumi.set(__self__, "secondary_button_label", secondary_button_label)
        if success is not None:
            pulumi.set(__self__, "success", success)
        if widget_background is not None:
            pulumi.set(__self__, "widget_background", widget_background)
        if widget_border is not None:
            pulumi.set(__self__, "widget_border", widget_border)

    @property
    @pulumi.getter(name="baseFocusColor")
    def base_focus_color(self) -> Optional[pulumi.Input[str]]:
        """
        Base focus color. Defaults to `#635dff`.
        """
        return pulumi.get(self, "base_focus_color")

    @base_focus_color.setter
    def base_focus_color(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "base_focus_color", value)

    @property
    @pulumi.getter(name="baseHoverColor")
    def base_hover_color(self) -> Optional[pulumi.Input[str]]:
        """
        Base hover color. Defaults to `#000000`.
        """
        return pulumi.get(self, "base_hover_color")

    @base_hover_color.setter
    def base_hover_color(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "base_hover_color", value)

    @property
    @pulumi.getter(name="bodyText")
    def body_text(self) -> Optional[pulumi.Input[str]]:
        """
        Body text. Defaults to `#1e212a`.
        """
        return pulumi.get(self, "body_text")

    @body_text.setter
    def body_text(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "body_text", value)

    @property
    @pulumi.getter
    def error(self) -> Optional[pulumi.Input[str]]:
        """
        Error. Defaults to `#d03c38`.
        """
        return pulumi.get(self, "error")

    @error.setter
    def error(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "error", value)

    @property
    @pulumi.getter
    def header(self) -> Optional[pulumi.Input[str]]:
        """
        Header. Defaults to `#1e212a`.
        """
        return pulumi.get(self, "header")

    @header.setter
    def header(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "header", value)

    @property
    @pulumi.getter
    def icons(self) -> Optional[pulumi.Input[str]]:
        """
        Icons. Defaults to `#65676e`.
        """
        return pulumi.get(self, "icons")

    @icons.setter
    def icons(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "icons", value)

    @property
    @pulumi.getter(name="inputBackground")
    def input_background(self) -> Optional[pulumi.Input[str]]:
        """
        Input background. Defaults to `#ffffff`.
        """
        return pulumi.get(self, "input_background")

    @input_background.setter
    def input_background(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "input_background", value)

    @property
    @pulumi.getter(name="inputBorder")
    def input_border(self) -> Optional[pulumi.Input[str]]:
        """
        Input border. Defaults to `#c9cace`.
        """
        return pulumi.get(self, "input_border")

    @input_border.setter
    def input_border(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "input_border", value)

    @property
    @pulumi.getter(name="inputFilledText")
    def input_filled_text(self) -> Optional[pulumi.Input[str]]:
        """
        Input filled text. Defaults to `#000000`.
        """
        return pulumi.get(self, "input_filled_text")

    @input_filled_text.setter
    def input_filled_text(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "input_filled_text", value)

    @property
    @pulumi.getter(name="inputLabelsPlaceholders")
    def input_labels_placeholders(self) -> Optional[pulumi.Input[str]]:
        """
        Input labels & placeholders. Defaults to `#65676e`.
        """
        return pulumi.get(self, "input_labels_placeholders")

    @input_labels_placeholders.setter
    def input_labels_placeholders(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "input_labels_placeholders", value)

    @property
    @pulumi.getter(name="linksFocusedComponents")
    def links_focused_components(self) -> Optional[pulumi.Input[str]]:
        """
        Links & focused components. Defaults to `#635dff`.
        """
        return pulumi.get(self, "links_focused_components")

    @links_focused_components.setter
    def links_focused_components(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "links_focused_components", value)

    @property
    @pulumi.getter(name="primaryButton")
    def primary_button(self) -> Optional[pulumi.Input[str]]:
        """
        Primary button. Defaults to `#635dff`.
        """
        return pulumi.get(self, "primary_button")

    @primary_button.setter
    def primary_button(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "primary_button", value)

    @property
    @pulumi.getter(name="primaryButtonLabel")
    def primary_button_label(self) -> Optional[pulumi.Input[str]]:
        """
        Primary button label. Defaults to `#ffffff`.
        """
        return pulumi.get(self, "primary_button_label")

    @primary_button_label.setter
    def primary_button_label(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "primary_button_label", value)

    @property
    @pulumi.getter(name="secondaryButtonBorder")
    def secondary_button_border(self) -> Optional[pulumi.Input[str]]:
        """
        Secondary button border. Defaults to `#c9cace`.
        """
        return pulumi.get(self, "secondary_button_border")

    @secondary_button_border.setter
    def secondary_button_border(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "secondary_button_border", value)

    @property
    @pulumi.getter(name="secondaryButtonLabel")
    def secondary_button_label(self) -> Optional[pulumi.Input[str]]:
        """
        Secondary button label. Defaults to `#1e212a`.
        """
        return pulumi.get(self, "secondary_button_label")

    @secondary_button_label.setter
    def secondary_button_label(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "secondary_button_label", value)

    @property
    @pulumi.getter
    def success(self) -> Optional[pulumi.Input[str]]:
        """
        Success. Defaults to `#13a688`.
        """
        return pulumi.get(self, "success")

    @success.setter
    def success(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "success", value)

    @property
    @pulumi.getter(name="widgetBackground")
    def widget_background(self) -> Optional[pulumi.Input[str]]:
        """
        Widget background. Defaults to `#ffffff`.
        """
        return pulumi.get(self, "widget_background")

    @widget_background.setter
    def widget_background(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "widget_background", value)

    @property
    @pulumi.getter(name="widgetBorder")
    def widget_border(self) -> Optional[pulumi.Input[str]]:
        """
        Widget border. Defaults to `#c9cace`.
        """
        return pulumi.get(self, "widget_border")

    @widget_border.setter
    def widget_border(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "widget_border", value)


@pulumi.input_type
class BrandingThemeFontsArgs:
    def __init__(__self__, *,
                 body_text: pulumi.Input['BrandingThemeFontsBodyTextArgs'],
                 buttons_text: pulumi.Input['BrandingThemeFontsButtonsTextArgs'],
                 input_labels: pulumi.Input['BrandingThemeFontsInputLabelsArgs'],
                 links: pulumi.Input['BrandingThemeFontsLinksArgs'],
                 subtitle: pulumi.Input['BrandingThemeFontsSubtitleArgs'],
                 title: pulumi.Input['BrandingThemeFontsTitleArgs'],
                 font_url: Optional[pulumi.Input[str]] = None,
                 links_style: Optional[pulumi.Input[str]] = None,
                 reference_text_size: Optional[pulumi.Input[float]] = None):
        """
        :param pulumi.Input['BrandingThemeFontsBodyTextArgs'] body_text: Body text.
        :param pulumi.Input['BrandingThemeFontsButtonsTextArgs'] buttons_text: Buttons text.
        :param pulumi.Input['BrandingThemeFontsInputLabelsArgs'] input_labels: Input labels.
        :param pulumi.Input['BrandingThemeFontsLinksArgs'] links: Links.
        :param pulumi.Input['BrandingThemeFontsSubtitleArgs'] subtitle: Subtitle.
        :param pulumi.Input['BrandingThemeFontsTitleArgs'] title: Title.
        :param pulumi.Input[str] font_url: Font URL. Defaults to an empty string.
        :param pulumi.Input[str] links_style: Links style. Defaults to `normal`.
        :param pulumi.Input[float] reference_text_size: Reference text size. Value needs to be between `12` and `24`. Defaults to `16.0`.
        """
        pulumi.set(__self__, "body_text", body_text)
        pulumi.set(__self__, "buttons_text", buttons_text)
        pulumi.set(__self__, "input_labels", input_labels)
        pulumi.set(__self__, "links", links)
        pulumi.set(__self__, "subtitle", subtitle)
        pulumi.set(__self__, "title", title)
        if font_url is not None:
            pulumi.set(__self__, "font_url", font_url)
        if links_style is not None:
            pulumi.set(__self__, "links_style", links_style)
        if reference_text_size is not None:
            pulumi.set(__self__, "reference_text_size", reference_text_size)

    @property
    @pulumi.getter(name="bodyText")
    def body_text(self) -> pulumi.Input['BrandingThemeFontsBodyTextArgs']:
        """
        Body text.
        """
        return pulumi.get(self, "body_text")

    @body_text.setter
    def body_text(self, value: pulumi.Input['BrandingThemeFontsBodyTextArgs']):
        pulumi.set(self, "body_text", value)

    @property
    @pulumi.getter(name="buttonsText")
    def buttons_text(self) -> pulumi.Input['BrandingThemeFontsButtonsTextArgs']:
        """
        Buttons text.
        """
        return pulumi.get(self, "buttons_text")

    @buttons_text.setter
    def buttons_text(self, value: pulumi.Input['BrandingThemeFontsButtonsTextArgs']):
        pulumi.set(self, "buttons_text", value)

    @property
    @pulumi.getter(name="inputLabels")
    def input_labels(self) -> pulumi.Input['BrandingThemeFontsInputLabelsArgs']:
        """
        Input labels.
        """
        return pulumi.get(self, "input_labels")

    @input_labels.setter
    def input_labels(self, value: pulumi.Input['BrandingThemeFontsInputLabelsArgs']):
        pulumi.set(self, "input_labels", value)

    @property
    @pulumi.getter
    def links(self) -> pulumi.Input['BrandingThemeFontsLinksArgs']:
        """
        Links.
        """
        return pulumi.get(self, "links")

    @links.setter
    def links(self, value: pulumi.Input['BrandingThemeFontsLinksArgs']):
        pulumi.set(self, "links", value)

    @property
    @pulumi.getter
    def subtitle(self) -> pulumi.Input['BrandingThemeFontsSubtitleArgs']:
        """
        Subtitle.
        """
        return pulumi.get(self, "subtitle")

    @subtitle.setter
    def subtitle(self, value: pulumi.Input['BrandingThemeFontsSubtitleArgs']):
        pulumi.set(self, "subtitle", value)

    @property
    @pulumi.getter
    def title(self) -> pulumi.Input['BrandingThemeFontsTitleArgs']:
        """
        Title.
        """
        return pulumi.get(self, "title")

    @title.setter
    def title(self, value: pulumi.Input['BrandingThemeFontsTitleArgs']):
        pulumi.set(self, "title", value)

    @property
    @pulumi.getter(name="fontUrl")
    def font_url(self) -> Optional[pulumi.Input[str]]:
        """
        Font URL. Defaults to an empty string.
        """
        return pulumi.get(self, "font_url")

    @font_url.setter
    def font_url(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "font_url", value)

    @property
    @pulumi.getter(name="linksStyle")
    def links_style(self) -> Optional[pulumi.Input[str]]:
        """
        Links style. Defaults to `normal`.
        """
        return pulumi.get(self, "links_style")

    @links_style.setter
    def links_style(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "links_style", value)

    @property
    @pulumi.getter(name="referenceTextSize")
    def reference_text_size(self) -> Optional[pulumi.Input[float]]:
        """
        Reference text size. Value needs to be between `12` and `24`. Defaults to `16.0`.
        """
        return pulumi.get(self, "reference_text_size")

    @reference_text_size.setter
    def reference_text_size(self, value: Optional[pulumi.Input[float]]):
        pulumi.set(self, "reference_text_size", value)


@pulumi.input_type
class BrandingThemeFontsBodyTextArgs:
    def __init__(__self__, *,
                 bold: Optional[pulumi.Input[bool]] = None,
                 size: Optional[pulumi.Input[float]] = None):
        if bold is not None:
            pulumi.set(__self__, "bold", bold)
        if size is not None:
            pulumi.set(__self__, "size", size)

    @property
    @pulumi.getter
    def bold(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "bold")

    @bold.setter
    def bold(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "bold", value)

    @property
    @pulumi.getter
    def size(self) -> Optional[pulumi.Input[float]]:
        return pulumi.get(self, "size")

    @size.setter
    def size(self, value: Optional[pulumi.Input[float]]):
        pulumi.set(self, "size", value)


@pulumi.input_type
class BrandingThemeFontsButtonsTextArgs:
    def __init__(__self__, *,
                 bold: Optional[pulumi.Input[bool]] = None,
                 size: Optional[pulumi.Input[float]] = None):
        if bold is not None:
            pulumi.set(__self__, "bold", bold)
        if size is not None:
            pulumi.set(__self__, "size", size)

    @property
    @pulumi.getter
    def bold(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "bold")

    @bold.setter
    def bold(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "bold", value)

    @property
    @pulumi.getter
    def size(self) -> Optional[pulumi.Input[float]]:
        return pulumi.get(self, "size")

    @size.setter
    def size(self, value: Optional[pulumi.Input[float]]):
        pulumi.set(self, "size", value)


@pulumi.input_type
class BrandingThemeFontsInputLabelsArgs:
    def __init__(__self__, *,
                 bold: Optional[pulumi.Input[bool]] = None,
                 size: Optional[pulumi.Input[float]] = None):
        if bold is not None:
            pulumi.set(__self__, "bold", bold)
        if size is not None:
            pulumi.set(__self__, "size", size)

    @property
    @pulumi.getter
    def bold(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "bold")

    @bold.setter
    def bold(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "bold", value)

    @property
    @pulumi.getter
    def size(self) -> Optional[pulumi.Input[float]]:
        return pulumi.get(self, "size")

    @size.setter
    def size(self, value: Optional[pulumi.Input[float]]):
        pulumi.set(self, "size", value)


@pulumi.input_type
class BrandingThemeFontsLinksArgs:
    def __init__(__self__, *,
                 bold: Optional[pulumi.Input[bool]] = None,
                 size: Optional[pulumi.Input[float]] = None):
        if bold is not None:
            pulumi.set(__self__, "bold", bold)
        if size is not None:
            pulumi.set(__self__, "size", size)

    @property
    @pulumi.getter
    def bold(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "bold")

    @bold.setter
    def bold(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "bold", value)

    @property
    @pulumi.getter
    def size(self) -> Optional[pulumi.Input[float]]:
        return pulumi.get(self, "size")

    @size.setter
    def size(self, value: Optional[pulumi.Input[float]]):
        pulumi.set(self, "size", value)


@pulumi.input_type
class BrandingThemeFontsSubtitleArgs:
    def __init__(__self__, *,
                 bold: Optional[pulumi.Input[bool]] = None,
                 size: Optional[pulumi.Input[float]] = None):
        if bold is not None:
            pulumi.set(__self__, "bold", bold)
        if size is not None:
            pulumi.set(__self__, "size", size)

    @property
    @pulumi.getter
    def bold(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "bold")

    @bold.setter
    def bold(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "bold", value)

    @property
    @pulumi.getter
    def size(self) -> Optional[pulumi.Input[float]]:
        return pulumi.get(self, "size")

    @size.setter
    def size(self, value: Optional[pulumi.Input[float]]):
        pulumi.set(self, "size", value)


@pulumi.input_type
class BrandingThemeFontsTitleArgs:
    def __init__(__self__, *,
                 bold: Optional[pulumi.Input[bool]] = None,
                 size: Optional[pulumi.Input[float]] = None):
        if bold is not None:
            pulumi.set(__self__, "bold", bold)
        if size is not None:
            pulumi.set(__self__, "size", size)

    @property
    @pulumi.getter
    def bold(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "bold")

    @bold.setter
    def bold(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "bold", value)

    @property
    @pulumi.getter
    def size(self) -> Optional[pulumi.Input[float]]:
        return pulumi.get(self, "size")

    @size.setter
    def size(self, value: Optional[pulumi.Input[float]]):
        pulumi.set(self, "size", value)


@pulumi.input_type
class BrandingThemePageBackgroundArgs:
    def __init__(__self__, *,
                 background_color: Optional[pulumi.Input[str]] = None,
                 background_image_url: Optional[pulumi.Input[str]] = None,
                 page_layout: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] background_color: Background color. Defaults to `#000000`.
        :param pulumi.Input[str] background_image_url: Background image url. Defaults to an empty string.
        :param pulumi.Input[str] page_layout: Page layout. Available options: `center`, `left`, `right`. Defaults to `center`.
        """
        if background_color is not None:
            pulumi.set(__self__, "background_color", background_color)
        if background_image_url is not None:
            pulumi.set(__self__, "background_image_url", background_image_url)
        if page_layout is not None:
            pulumi.set(__self__, "page_layout", page_layout)

    @property
    @pulumi.getter(name="backgroundColor")
    def background_color(self) -> Optional[pulumi.Input[str]]:
        """
        Background color. Defaults to `#000000`.
        """
        return pulumi.get(self, "background_color")

    @background_color.setter
    def background_color(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "background_color", value)

    @property
    @pulumi.getter(name="backgroundImageUrl")
    def background_image_url(self) -> Optional[pulumi.Input[str]]:
        """
        Background image url. Defaults to an empty string.
        """
        return pulumi.get(self, "background_image_url")

    @background_image_url.setter
    def background_image_url(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "background_image_url", value)

    @property
    @pulumi.getter(name="pageLayout")
    def page_layout(self) -> Optional[pulumi.Input[str]]:
        """
        Page layout. Available options: `center`, `left`, `right`. Defaults to `center`.
        """
        return pulumi.get(self, "page_layout")

    @page_layout.setter
    def page_layout(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "page_layout", value)


@pulumi.input_type
class BrandingThemeWidgetArgs:
    def __init__(__self__, *,
                 header_text_alignment: Optional[pulumi.Input[str]] = None,
                 logo_height: Optional[pulumi.Input[float]] = None,
                 logo_position: Optional[pulumi.Input[str]] = None,
                 logo_url: Optional[pulumi.Input[str]] = None,
                 social_buttons_layout: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] header_text_alignment: Header text alignment. Available options: `center`, `left`, `right`. Defaults to `center`.
        :param pulumi.Input[float] logo_height: Logo height. Value needs to be between `1` and `100`. Defaults to `52.0`.
        :param pulumi.Input[str] logo_position: Logo position. Available options: `center`, `left`, `right`, `none`. Defaults to `center`.
        :param pulumi.Input[str] logo_url: Logo url. Defaults to an empty string.
        :param pulumi.Input[str] social_buttons_layout: Social buttons layout. Available options: `bottom`, `top`. Defaults to `bottom`.
        """
        if header_text_alignment is not None:
            pulumi.set(__self__, "header_text_alignment", header_text_alignment)
        if logo_height is not None:
            pulumi.set(__self__, "logo_height", logo_height)
        if logo_position is not None:
            pulumi.set(__self__, "logo_position", logo_position)
        if logo_url is not None:
            pulumi.set(__self__, "logo_url", logo_url)
        if social_buttons_layout is not None:
            pulumi.set(__self__, "social_buttons_layout", social_buttons_layout)

    @property
    @pulumi.getter(name="headerTextAlignment")
    def header_text_alignment(self) -> Optional[pulumi.Input[str]]:
        """
        Header text alignment. Available options: `center`, `left`, `right`. Defaults to `center`.
        """
        return pulumi.get(self, "header_text_alignment")

    @header_text_alignment.setter
    def header_text_alignment(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "header_text_alignment", value)

    @property
    @pulumi.getter(name="logoHeight")
    def logo_height(self) -> Optional[pulumi.Input[float]]:
        """
        Logo height. Value needs to be between `1` and `100`. Defaults to `52.0`.
        """
        return pulumi.get(self, "logo_height")

    @logo_height.setter
    def logo_height(self, value: Optional[pulumi.Input[float]]):
        pulumi.set(self, "logo_height", value)

    @property
    @pulumi.getter(name="logoPosition")
    def logo_position(self) -> Optional[pulumi.Input[str]]:
        """
        Logo position. Available options: `center`, `left`, `right`, `none`. Defaults to `center`.
        """
        return pulumi.get(self, "logo_position")

    @logo_position.setter
    def logo_position(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "logo_position", value)

    @property
    @pulumi.getter(name="logoUrl")
    def logo_url(self) -> Optional[pulumi.Input[str]]:
        """
        Logo url. Defaults to an empty string.
        """
        return pulumi.get(self, "logo_url")

    @logo_url.setter
    def logo_url(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "logo_url", value)

    @property
    @pulumi.getter(name="socialButtonsLayout")
    def social_buttons_layout(self) -> Optional[pulumi.Input[str]]:
        """
        Social buttons layout. Available options: `bottom`, `top`. Defaults to `bottom`.
        """
        return pulumi.get(self, "social_buttons_layout")

    @social_buttons_layout.setter
    def social_buttons_layout(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "social_buttons_layout", value)


@pulumi.input_type
class BrandingUniversalLoginArgs:
    def __init__(__self__, *,
                 body: pulumi.Input[str]):
        """
        :param pulumi.Input[str] body: The html template for the New Universal Login Experience.
        """
        pulumi.set(__self__, "body", body)

    @property
    @pulumi.getter
    def body(self) -> pulumi.Input[str]:
        """
        The html template for the New Universal Login Experience.
        """
        return pulumi.get(self, "body")

    @body.setter
    def body(self, value: pulumi.Input[str]):
        pulumi.set(self, "body", value)


@pulumi.input_type
class ClientAddonsArgs:
    def __init__(__self__, *,
                 aws: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 azure_blob: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 azure_sb: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 box: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 cloudbees: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 concur: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 dropbox: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 echosign: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 egnyte: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 firebase: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 layer: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 mscrm: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 newrelic: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 office365: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 rms: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 salesforce: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 salesforce_api: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 salesforce_sandbox_api: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 samlp: Optional[pulumi.Input['ClientAddonsSamlpArgs']] = None,
                 sap_api: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 sentry: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 sharepoint: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 slack: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 springcm: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 wams: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 wsfed: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 zendesk: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 zoom: Optional[pulumi.Input[Mapping[str, Any]]] = None):
        """
        :param pulumi.Input['ClientAddonsSamlpArgs'] samlp: Configuration settings for a SAML add-on.
        :param pulumi.Input[Mapping[str, Any]] wsfed: WS-Fed (WIF) addon indicator. Actual configuration is stored in callback and `client_aliases` properties on the client.
        """
        if aws is not None:
            pulumi.set(__self__, "aws", aws)
        if azure_blob is not None:
            pulumi.set(__self__, "azure_blob", azure_blob)
        if azure_sb is not None:
            pulumi.set(__self__, "azure_sb", azure_sb)
        if box is not None:
            pulumi.set(__self__, "box", box)
        if cloudbees is not None:
            pulumi.set(__self__, "cloudbees", cloudbees)
        if concur is not None:
            pulumi.set(__self__, "concur", concur)
        if dropbox is not None:
            pulumi.set(__self__, "dropbox", dropbox)
        if echosign is not None:
            pulumi.set(__self__, "echosign", echosign)
        if egnyte is not None:
            pulumi.set(__self__, "egnyte", egnyte)
        if firebase is not None:
            pulumi.set(__self__, "firebase", firebase)
        if layer is not None:
            pulumi.set(__self__, "layer", layer)
        if mscrm is not None:
            pulumi.set(__self__, "mscrm", mscrm)
        if newrelic is not None:
            pulumi.set(__self__, "newrelic", newrelic)
        if office365 is not None:
            pulumi.set(__self__, "office365", office365)
        if rms is not None:
            pulumi.set(__self__, "rms", rms)
        if salesforce is not None:
            pulumi.set(__self__, "salesforce", salesforce)
        if salesforce_api is not None:
            pulumi.set(__self__, "salesforce_api", salesforce_api)
        if salesforce_sandbox_api is not None:
            pulumi.set(__self__, "salesforce_sandbox_api", salesforce_sandbox_api)
        if samlp is not None:
            pulumi.set(__self__, "samlp", samlp)
        if sap_api is not None:
            pulumi.set(__self__, "sap_api", sap_api)
        if sentry is not None:
            pulumi.set(__self__, "sentry", sentry)
        if sharepoint is not None:
            pulumi.set(__self__, "sharepoint", sharepoint)
        if slack is not None:
            pulumi.set(__self__, "slack", slack)
        if springcm is not None:
            pulumi.set(__self__, "springcm", springcm)
        if wams is not None:
            pulumi.set(__self__, "wams", wams)
        if wsfed is not None:
            pulumi.set(__self__, "wsfed", wsfed)
        if zendesk is not None:
            pulumi.set(__self__, "zendesk", zendesk)
        if zoom is not None:
            pulumi.set(__self__, "zoom", zoom)

    @property
    @pulumi.getter
    def aws(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "aws")

    @aws.setter
    def aws(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "aws", value)

    @property
    @pulumi.getter(name="azureBlob")
    def azure_blob(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "azure_blob")

    @azure_blob.setter
    def azure_blob(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "azure_blob", value)

    @property
    @pulumi.getter(name="azureSb")
    def azure_sb(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "azure_sb")

    @azure_sb.setter
    def azure_sb(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "azure_sb", value)

    @property
    @pulumi.getter
    def box(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "box")

    @box.setter
    def box(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "box", value)

    @property
    @pulumi.getter
    def cloudbees(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "cloudbees")

    @cloudbees.setter
    def cloudbees(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "cloudbees", value)

    @property
    @pulumi.getter
    def concur(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "concur")

    @concur.setter
    def concur(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "concur", value)

    @property
    @pulumi.getter
    def dropbox(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "dropbox")

    @dropbox.setter
    def dropbox(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "dropbox", value)

    @property
    @pulumi.getter
    def echosign(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "echosign")

    @echosign.setter
    def echosign(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "echosign", value)

    @property
    @pulumi.getter
    def egnyte(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "egnyte")

    @egnyte.setter
    def egnyte(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "egnyte", value)

    @property
    @pulumi.getter
    def firebase(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "firebase")

    @firebase.setter
    def firebase(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "firebase", value)

    @property
    @pulumi.getter
    def layer(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "layer")

    @layer.setter
    def layer(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "layer", value)

    @property
    @pulumi.getter
    def mscrm(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "mscrm")

    @mscrm.setter
    def mscrm(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "mscrm", value)

    @property
    @pulumi.getter
    def newrelic(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "newrelic")

    @newrelic.setter
    def newrelic(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "newrelic", value)

    @property
    @pulumi.getter
    def office365(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "office365")

    @office365.setter
    def office365(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "office365", value)

    @property
    @pulumi.getter
    def rms(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "rms")

    @rms.setter
    def rms(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "rms", value)

    @property
    @pulumi.getter
    def salesforce(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "salesforce")

    @salesforce.setter
    def salesforce(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "salesforce", value)

    @property
    @pulumi.getter(name="salesforceApi")
    def salesforce_api(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "salesforce_api")

    @salesforce_api.setter
    def salesforce_api(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "salesforce_api", value)

    @property
    @pulumi.getter(name="salesforceSandboxApi")
    def salesforce_sandbox_api(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "salesforce_sandbox_api")

    @salesforce_sandbox_api.setter
    def salesforce_sandbox_api(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "salesforce_sandbox_api", value)

    @property
    @pulumi.getter
    def samlp(self) -> Optional[pulumi.Input['ClientAddonsSamlpArgs']]:
        """
        Configuration settings for a SAML add-on.
        """
        return pulumi.get(self, "samlp")

    @samlp.setter
    def samlp(self, value: Optional[pulumi.Input['ClientAddonsSamlpArgs']]):
        pulumi.set(self, "samlp", value)

    @property
    @pulumi.getter(name="sapApi")
    def sap_api(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "sap_api")

    @sap_api.setter
    def sap_api(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "sap_api", value)

    @property
    @pulumi.getter
    def sentry(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "sentry")

    @sentry.setter
    def sentry(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "sentry", value)

    @property
    @pulumi.getter
    def sharepoint(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "sharepoint")

    @sharepoint.setter
    def sharepoint(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "sharepoint", value)

    @property
    @pulumi.getter
    def slack(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "slack")

    @slack.setter
    def slack(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "slack", value)

    @property
    @pulumi.getter
    def springcm(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "springcm")

    @springcm.setter
    def springcm(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "springcm", value)

    @property
    @pulumi.getter
    def wams(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "wams")

    @wams.setter
    def wams(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "wams", value)

    @property
    @pulumi.getter
    def wsfed(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        """
        WS-Fed (WIF) addon indicator. Actual configuration is stored in callback and `client_aliases` properties on the client.
        """
        return pulumi.get(self, "wsfed")

    @wsfed.setter
    def wsfed(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "wsfed", value)

    @property
    @pulumi.getter
    def zendesk(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "zendesk")

    @zendesk.setter
    def zendesk(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "zendesk", value)

    @property
    @pulumi.getter
    def zoom(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "zoom")

    @zoom.setter
    def zoom(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "zoom", value)


@pulumi.input_type
class ClientAddonsSamlpArgs:
    def __init__(__self__, *,
                 audience: Optional[pulumi.Input[str]] = None,
                 authn_context_class_ref: Optional[pulumi.Input[str]] = None,
                 binding: Optional[pulumi.Input[str]] = None,
                 create_upn_claim: Optional[pulumi.Input[bool]] = None,
                 destination: Optional[pulumi.Input[str]] = None,
                 digest_algorithm: Optional[pulumi.Input[str]] = None,
                 include_attribute_name_format: Optional[pulumi.Input[bool]] = None,
                 issuer: Optional[pulumi.Input[str]] = None,
                 lifetime_in_seconds: Optional[pulumi.Input[int]] = None,
                 logout: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 map_identities: Optional[pulumi.Input[bool]] = None,
                 map_unknown_claims_as_is: Optional[pulumi.Input[bool]] = None,
                 mappings: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 name_identifier_format: Optional[pulumi.Input[str]] = None,
                 name_identifier_probes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 passthrough_claims_with_no_mapping: Optional[pulumi.Input[bool]] = None,
                 recipient: Optional[pulumi.Input[str]] = None,
                 sign_response: Optional[pulumi.Input[bool]] = None,
                 signature_algorithm: Optional[pulumi.Input[str]] = None,
                 signing_cert: Optional[pulumi.Input[str]] = None,
                 typed_attributes: Optional[pulumi.Input[bool]] = None):
        if audience is not None:
            pulumi.set(__self__, "audience", audience)
        if authn_context_class_ref is not None:
            pulumi.set(__self__, "authn_context_class_ref", authn_context_class_ref)
        if binding is not None:
            pulumi.set(__self__, "binding", binding)
        if create_upn_claim is not None:
            pulumi.set(__self__, "create_upn_claim", create_upn_claim)
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if digest_algorithm is not None:
            pulumi.set(__self__, "digest_algorithm", digest_algorithm)
        if include_attribute_name_format is not None:
            pulumi.set(__self__, "include_attribute_name_format", include_attribute_name_format)
        if issuer is not None:
            pulumi.set(__self__, "issuer", issuer)
        if lifetime_in_seconds is not None:
            pulumi.set(__self__, "lifetime_in_seconds", lifetime_in_seconds)
        if logout is not None:
            pulumi.set(__self__, "logout", logout)
        if map_identities is not None:
            pulumi.set(__self__, "map_identities", map_identities)
        if map_unknown_claims_as_is is not None:
            pulumi.set(__self__, "map_unknown_claims_as_is", map_unknown_claims_as_is)
        if mappings is not None:
            pulumi.set(__self__, "mappings", mappings)
        if name_identifier_format is not None:
            pulumi.set(__self__, "name_identifier_format", name_identifier_format)
        if name_identifier_probes is not None:
            pulumi.set(__self__, "name_identifier_probes", name_identifier_probes)
        if passthrough_claims_with_no_mapping is not None:
            pulumi.set(__self__, "passthrough_claims_with_no_mapping", passthrough_claims_with_no_mapping)
        if recipient is not None:
            pulumi.set(__self__, "recipient", recipient)
        if sign_response is not None:
            pulumi.set(__self__, "sign_response", sign_response)
        if signature_algorithm is not None:
            pulumi.set(__self__, "signature_algorithm", signature_algorithm)
        if signing_cert is not None:
            pulumi.set(__self__, "signing_cert", signing_cert)
        if typed_attributes is not None:
            pulumi.set(__self__, "typed_attributes", typed_attributes)

    @property
    @pulumi.getter
    def audience(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "audience")

    @audience.setter
    def audience(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "audience", value)

    @property
    @pulumi.getter(name="authnContextClassRef")
    def authn_context_class_ref(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "authn_context_class_ref")

    @authn_context_class_ref.setter
    def authn_context_class_ref(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "authn_context_class_ref", value)

    @property
    @pulumi.getter
    def binding(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "binding")

    @binding.setter
    def binding(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "binding", value)

    @property
    @pulumi.getter(name="createUpnClaim")
    def create_upn_claim(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "create_upn_claim")

    @create_upn_claim.setter
    def create_upn_claim(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "create_upn_claim", value)

    @property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "destination", value)

    @property
    @pulumi.getter(name="digestAlgorithm")
    def digest_algorithm(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "digest_algorithm")

    @digest_algorithm.setter
    def digest_algorithm(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "digest_algorithm", value)

    @property
    @pulumi.getter(name="includeAttributeNameFormat")
    def include_attribute_name_format(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "include_attribute_name_format")

    @include_attribute_name_format.setter
    def include_attribute_name_format(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "include_attribute_name_format", value)

    @property
    @pulumi.getter
    def issuer(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "issuer")

    @issuer.setter
    def issuer(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "issuer", value)

    @property
    @pulumi.getter(name="lifetimeInSeconds")
    def lifetime_in_seconds(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "lifetime_in_seconds")

    @lifetime_in_seconds.setter
    def lifetime_in_seconds(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "lifetime_in_seconds", value)

    @property
    @pulumi.getter
    def logout(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "logout")

    @logout.setter
    def logout(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "logout", value)

    @property
    @pulumi.getter(name="mapIdentities")
    def map_identities(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "map_identities")

    @map_identities.setter
    def map_identities(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "map_identities", value)

    @property
    @pulumi.getter(name="mapUnknownClaimsAsIs")
    def map_unknown_claims_as_is(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "map_unknown_claims_as_is")

    @map_unknown_claims_as_is.setter
    def map_unknown_claims_as_is(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "map_unknown_claims_as_is", value)

    @property
    @pulumi.getter
    def mappings(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "mappings")

    @mappings.setter
    def mappings(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "mappings", value)

    @property
    @pulumi.getter(name="nameIdentifierFormat")
    def name_identifier_format(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "name_identifier_format")

    @name_identifier_format.setter
    def name_identifier_format(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "name_identifier_format", value)

    @property
    @pulumi.getter(name="nameIdentifierProbes")
    def name_identifier_probes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        return pulumi.get(self, "name_identifier_probes")

    @name_identifier_probes.setter
    def name_identifier_probes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "name_identifier_probes", value)

    @property
    @pulumi.getter(name="passthroughClaimsWithNoMapping")
    def passthrough_claims_with_no_mapping(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "passthrough_claims_with_no_mapping")

    @passthrough_claims_with_no_mapping.setter
    def passthrough_claims_with_no_mapping(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "passthrough_claims_with_no_mapping", value)

    @property
    @pulumi.getter
    def recipient(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "recipient")

    @recipient.setter
    def recipient(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "recipient", value)

    @property
    @pulumi.getter(name="signResponse")
    def sign_response(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "sign_response")

    @sign_response.setter
    def sign_response(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "sign_response", value)

    @property
    @pulumi.getter(name="signatureAlgorithm")
    def signature_algorithm(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "signature_algorithm")

    @signature_algorithm.setter
    def signature_algorithm(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "signature_algorithm", value)

    @property
    @pulumi.getter(name="signingCert")
    def signing_cert(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "signing_cert")

    @signing_cert.setter
    def signing_cert(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "signing_cert", value)

    @property
    @pulumi.getter(name="typedAttributes")
    def typed_attributes(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "typed_attributes")

    @typed_attributes.setter
    def typed_attributes(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "typed_attributes", value)


@pulumi.input_type
class ClientCredentialsPrivateKeyJwtArgs:
    def __init__(__self__, *,
                 credentials: pulumi.Input[Sequence[pulumi.Input['ClientCredentialsPrivateKeyJwtCredentialArgs']]]):
        """
        :param pulumi.Input[Sequence[pulumi.Input['ClientCredentialsPrivateKeyJwtCredentialArgs']]] credentials: Client credentials available for use when Private Key JWT is in use as the client authentication method. A maximum of 2 client credentials can be set.
        """
        pulumi.set(__self__, "credentials", credentials)

    @property
    @pulumi.getter
    def credentials(self) -> pulumi.Input[Sequence[pulumi.Input['ClientCredentialsPrivateKeyJwtCredentialArgs']]]:
        """
        Client credentials available for use when Private Key JWT is in use as the client authentication method. A maximum of 2 client credentials can be set.
        """
        return pulumi.get(self, "credentials")

    @credentials.setter
    def credentials(self, value: pulumi.Input[Sequence[pulumi.Input['ClientCredentialsPrivateKeyJwtCredentialArgs']]]):
        pulumi.set(self, "credentials", value)


@pulumi.input_type
class ClientCredentialsPrivateKeyJwtCredentialArgs:
    def __init__(__self__, *,
                 credential_type: pulumi.Input[str],
                 pem: pulumi.Input[str],
                 algorithm: Optional[pulumi.Input[str]] = None,
                 created_at: Optional[pulumi.Input[str]] = None,
                 expires_at: Optional[pulumi.Input[str]] = None,
                 id: Optional[pulumi.Input[str]] = None,
                 key_id: Optional[pulumi.Input[str]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 parse_expiry_from_cert: Optional[pulumi.Input[bool]] = None,
                 updated_at: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] id: The ID of this resource.
        """
        pulumi.set(__self__, "credential_type", credential_type)
        pulumi.set(__self__, "pem", pem)
        if algorithm is not None:
            pulumi.set(__self__, "algorithm", algorithm)
        if created_at is not None:
            pulumi.set(__self__, "created_at", created_at)
        if expires_at is not None:
            pulumi.set(__self__, "expires_at", expires_at)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if key_id is not None:
            pulumi.set(__self__, "key_id", key_id)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if parse_expiry_from_cert is not None:
            pulumi.set(__self__, "parse_expiry_from_cert", parse_expiry_from_cert)
        if updated_at is not None:
            pulumi.set(__self__, "updated_at", updated_at)

    @property
    @pulumi.getter(name="credentialType")
    def credential_type(self) -> pulumi.Input[str]:
        return pulumi.get(self, "credential_type")

    @credential_type.setter
    def credential_type(self, value: pulumi.Input[str]):
        pulumi.set(self, "credential_type", value)

    @property
    @pulumi.getter
    def pem(self) -> pulumi.Input[str]:
        return pulumi.get(self, "pem")

    @pem.setter
    def pem(self, value: pulumi.Input[str]):
        pulumi.set(self, "pem", value)

    @property
    @pulumi.getter
    def algorithm(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "algorithm")

    @algorithm.setter
    def algorithm(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "algorithm", value)

    @property
    @pulumi.getter(name="createdAt")
    def created_at(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "created_at")

    @created_at.setter
    def created_at(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "created_at", value)

    @property
    @pulumi.getter(name="expiresAt")
    def expires_at(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "expires_at")

    @expires_at.setter
    def expires_at(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "expires_at", value)

    @property
    @pulumi.getter
    def id(self) -> Optional[pulumi.Input[str]]:
        """
        The ID of this resource.
        """
        return pulumi.get(self, "id")

    @id.setter
    def id(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "id", value)

    @property
    @pulumi.getter(name="keyId")
    def key_id(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "key_id")

    @key_id.setter
    def key_id(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "key_id", value)

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter(name="parseExpiryFromCert")
    def parse_expiry_from_cert(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "parse_expiry_from_cert")

    @parse_expiry_from_cert.setter
    def parse_expiry_from_cert(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "parse_expiry_from_cert", value)

    @property
    @pulumi.getter(name="updatedAt")
    def updated_at(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "updated_at")

    @updated_at.setter
    def updated_at(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "updated_at", value)


@pulumi.input_type
class ClientJwtConfigurationArgs:
    def __init__(__self__, *,
                 alg: Optional[pulumi.Input[str]] = None,
                 lifetime_in_seconds: Optional[pulumi.Input[int]] = None,
                 scopes: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                 secret_encoded: Optional[pulumi.Input[bool]] = None):
        """
        :param pulumi.Input[str] alg: Algorithm used to sign JWTs.
        :param pulumi.Input[int] lifetime_in_seconds: Number of seconds during which the JWT will be valid.
        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] scopes: Permissions (scopes) included in JWTs.
        :param pulumi.Input[bool] secret_encoded: Indicates whether the client secret is Base64-encoded.
        """
        if alg is not None:
            pulumi.set(__self__, "alg", alg)
        if lifetime_in_seconds is not None:
            pulumi.set(__self__, "lifetime_in_seconds", lifetime_in_seconds)
        if scopes is not None:
            pulumi.set(__self__, "scopes", scopes)
        if secret_encoded is not None:
            pulumi.set(__self__, "secret_encoded", secret_encoded)

    @property
    @pulumi.getter
    def alg(self) -> Optional[pulumi.Input[str]]:
        """
        Algorithm used to sign JWTs.
        """
        return pulumi.get(self, "alg")

    @alg.setter
    def alg(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "alg", value)

    @property
    @pulumi.getter(name="lifetimeInSeconds")
    def lifetime_in_seconds(self) -> Optional[pulumi.Input[int]]:
        """
        Number of seconds during which the JWT will be valid.
        """
        return pulumi.get(self, "lifetime_in_seconds")

    @lifetime_in_seconds.setter
    def lifetime_in_seconds(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "lifetime_in_seconds", value)

    @property
    @pulumi.getter
    def scopes(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
        """
        Permissions (scopes) included in JWTs.
        """
        return pulumi.get(self, "scopes")

    @scopes.setter
    def scopes(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
        pulumi.set(self, "scopes", value)

    @property
    @pulumi.getter(name="secretEncoded")
    def secret_encoded(self) -> Optional[pulumi.Input[bool]]:
        """
        Indicates whether the client secret is Base64-encoded.
        """
        return pulumi.get(self, "secret_encoded")

    @secret_encoded.setter
    def secret_encoded(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "secret_encoded", value)


@pulumi.input_type
class ClientMobileArgs:
    def __init__(__self__, *,
                 android: Optional[pulumi.Input['ClientMobileAndroidArgs']] = None,
                 ios: Optional[pulumi.Input['ClientMobileIosArgs']] = None):
        """
        :param pulumi.Input['ClientMobileAndroidArgs'] android: Configuration settings for Android native apps.
        :param pulumi.Input['ClientMobileIosArgs'] ios: Configuration settings for i0S native apps.
        """
        if android is not None:
            pulumi.set(__self__, "android", android)
        if ios is not None:
            pulumi.set(__self__, "ios", ios)

    @property
    @pulumi.getter
    def android(self) -> Optional[pulumi.Input['ClientMobileAndroidArgs']]:
        """
        Configuration settings for Android native apps.
        """
        return pulumi.get(self, "android")

    @android.setter
    def android(self, value: Optional[pulumi.Input['ClientMobileAndroidArgs']]):
        pulumi.set(self, "android", value)

    @property
    @pulumi.getter
    def ios(self) -> Optional[pulumi.Input['ClientMobileIosArgs']]:
        """
        Configuration settings for i0S native apps.
        """
        return pulumi.get(self, "ios")

    @ios.setter
    def ios(self, value: Optional[pulumi.Input['ClientMobileIosArgs']]):
        pulumi.set(self, "ios", value)


@pulumi.input_type
class ClientMobileAndroidArgs:
    def __init__(__self__, *,
                 app_package_name: Optional[pulumi.Input[str]] = None,
                 sha256_cert_fingerprints: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
        if app_package_name is not None:
            pulumi.set(__self__, "app_package_name", app_package_name)
        if sha256_cert_fingerprints is not None:
            pulumi.set(__self__, "sha256_cert_fingerprints", sha256_cert_fingerprints)

    @property
    @pulumi.getter(name="appPackageName")
    def app_package_name(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "app_package_name")

    @app_package_name.setter
    def app_package_name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "app_package_name", value)

    @property
    @pulumi.getter(name="sha256CertFingerprints")
    def sha256_cert_fingerprints(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        return pulumi.get(self, "sha256_cert_fingerprints")

    @sha256_cert_fingerprints.setter
    def sha256_cert_fingerprints(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "sha256_cert_fingerprints", value)


@pulumi.input_type
class ClientMobileIosArgs:
    def __init__(__self__, *,
                 app_bundle_identifier: Optional[pulumi.Input[str]] = None,
                 team_id: Optional[pulumi.Input[str]] = None):
        if app_bundle_identifier is not None:
            pulumi.set(__self__, "app_bundle_identifier", app_bundle_identifier)
        if team_id is not None:
            pulumi.set(__self__, "team_id", team_id)

    @property
    @pulumi.getter(name="appBundleIdentifier")
    def app_bundle_identifier(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "app_bundle_identifier")

    @app_bundle_identifier.setter
    def app_bundle_identifier(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "app_bundle_identifier", value)

    @property
    @pulumi.getter(name="teamId")
    def team_id(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "team_id")

    @team_id.setter
    def team_id(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "team_id", value)


@pulumi.input_type
class ClientNativeSocialLoginArgs:
    def __init__(__self__, *,
                 apple: Optional[pulumi.Input['ClientNativeSocialLoginAppleArgs']] = None,
                 facebook: Optional[pulumi.Input['ClientNativeSocialLoginFacebookArgs']] = None):
        if apple is not None:
            pulumi.set(__self__, "apple", apple)
        if facebook is not None:
            pulumi.set(__self__, "facebook", facebook)

    @property
    @pulumi.getter
    def apple(self) -> Optional[pulumi.Input['ClientNativeSocialLoginAppleArgs']]:
        return pulumi.get(self, "apple")

    @apple.setter
    def apple(self, value: Optional[pulumi.Input['ClientNativeSocialLoginAppleArgs']]):
        pulumi.set(self, "apple", value)

    @property
    @pulumi.getter
    def facebook(self) -> Optional[pulumi.Input['ClientNativeSocialLoginFacebookArgs']]:
        return pulumi.get(self, "facebook")

    @facebook.setter
    def facebook(self, value: Optional[pulumi.Input['ClientNativeSocialLoginFacebookArgs']]):
        pulumi.set(self, "facebook", value)


@pulumi.input_type
class ClientNativeSocialLoginAppleArgs:
    def __init__(__self__, *,
                 enabled: Optional[pulumi.Input[bool]] = None):
        if enabled is not None:
            pulumi.set(__self__, "enabled", enabled)

    @property
    @pulumi.getter
    def enabled(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enabled", value)


@pulumi.input_type
class ClientNativeSocialLoginFacebookArgs:
    def __init__(__self__, *,
                 enabled: Optional[pulumi.Input[bool]] = None):
        if enabled is not None:
            pulumi.set(__self__, "enabled", enabled)

    @property
    @pulumi.getter
    def enabled(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enabled", value)


@pulumi.input_type
class ClientRefreshTokenArgs:
    def __init__(__self__, *,
                 expiration_type: pulumi.Input[str],
                 rotation_type: pulumi.Input[str],
                 idle_token_lifetime: Optional[pulumi.Input[int]] = None,
                 infinite_idle_token_lifetime: Optional[pulumi.Input[bool]] = None,
                 infinite_token_lifetime: Optional[pulumi.Input[bool]] = None,
                 leeway: Optional[pulumi.Input[int]] = None,
                 token_lifetime: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[str] expiration_type: Options include `expiring`, `non-expiring`. Whether a refresh token will expire based on an absolute lifetime, after which the token can no longer be used. If rotation is `rotating`, this must be set to `expiring`.
        :param pulumi.Input[str] rotation_type: Options include `rotating`, `non-rotating`. When `rotating`, exchanging a refresh token will cause a new refresh token to be issued and the existing token will be invalidated. This allows for automatic detection of token reuse if the token is leaked.
        :param pulumi.Input[int] idle_token_lifetime: The time in seconds after which inactive refresh tokens will expire.
        :param pulumi.Input[bool] infinite_idle_token_lifetime: Whether inactive refresh tokens should remain valid indefinitely.
        :param pulumi.Input[bool] infinite_token_lifetime: Whether refresh tokens should remain valid indefinitely. If false, `token_lifetime` should also be set.
        :param pulumi.Input[int] leeway: The amount of time in seconds in which a refresh token may be reused without triggering reuse detection.
        :param pulumi.Input[int] token_lifetime: The absolute lifetime of a refresh token in seconds.
        """
        pulumi.set(__self__, "expiration_type", expiration_type)
        pulumi.set(__self__, "rotation_type", rotation_type)
        if idle_token_lifetime is not None:
            pulumi.set(__self__, "idle_token_lifetime", idle_token_lifetime)
        if infinite_idle_token_lifetime is not None:
            pulumi.set(__self__, "infinite_idle_token_lifetime", infinite_idle_token_lifetime)
        if infinite_token_lifetime is not None:
            pulumi.set(__self__, "infinite_token_lifetime", infinite_token_lifetime)
        if leeway is not None:
            pulumi.set(__self__, "leeway", leeway)
        if token_lifetime is not None:
            pulumi.set(__self__, "token_lifetime", token_lifetime)

    @property
    @pulumi.getter(name="expirationType")
    def expiration_type(self) -> pulumi.Input[str]:
        """
        Options include `expiring`, `non-expiring`. Whether a refresh token will expire based on an absolute lifetime, after which the token can no longer be used. If rotation is `rotating`, this must be set to `expiring`.
        """
        return pulumi.get(self, "expiration_type")

    @expiration_type.setter
    def expiration_type(self, value: pulumi.Input[str]):
        pulumi.set(self, "expiration_type", value)

    @property
    @pulumi.getter(name="rotationType")
    def rotation_type(self) -> pulumi.Input[str]:
        """
        Options include `rotating`, `non-rotating`. When `rotating`, exchanging a refresh token will cause a new refresh token to be issued and the existing token will be invalidated. This allows for automatic detection of token reuse if the token is leaked.
        """
        return pulumi.get(self, "rotation_type")

    @rotation_type.setter
    def rotation_type(self, value: pulumi.Input[str]):
        pulumi.set(self, "rotation_type", value)

    @property
    @pulumi.getter(name="idleTokenLifetime")
    def idle_token_lifetime(self) -> Optional[pulumi.Input[int]]:
        """
        The time in seconds after which inactive refresh tokens will expire.
        """
        return pulumi.get(self, "idle_token_lifetime")

    @idle_token_lifetime.setter
    def idle_token_lifetime(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "idle_token_lifetime", value)

    @property
    @pulumi.getter(name="infiniteIdleTokenLifetime")
    def infinite_idle_token_lifetime(self) -> Optional[pulumi.Input[bool]]:
        """
        Whether inactive refresh tokens should remain valid indefinitely.
        """
        return pulumi.get(self, "infinite_idle_token_lifetime")

    @infinite_idle_token_lifetime.setter
    def infinite_idle_token_lifetime(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "infinite_idle_token_lifetime", value)

    @property
    @pulumi.getter(name="infiniteTokenLifetime")
    def infinite_token_lifetime(self) -> Optional[pulumi.Input[bool]]:
        """
        Whether refresh tokens should remain valid indefinitely. If false, `token_lifetime` should also be set.
        """
        return pulumi.get(self, "infinite_token_lifetime")

    @infinite_token_lifetime.setter
    def infinite_token_lifetime(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "infinite_token_lifetime", value)

    @property
    @pulumi.getter
    def leeway(self) -> Optional[pulumi.Input[int]]:
        """
        The amount of time in seconds in which a refresh token may be reused without triggering reuse detection.
        """
        return pulumi.get(self, "leeway")

    @leeway.setter
    def leeway(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "leeway", value)

    @property
    @pulumi.getter(name="tokenLifetime")
    def token_lifetime(self) -> Optional[pulumi.Input[int]]:
        """
        The absolute lifetime of a refresh token in seconds.
        """
        return pulumi.get(self, "token_lifetime")

    @token_lifetime.setter
    def token_lifetime(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "token_lifetime", value)


@pulumi.input_type
class ConnectionOptionsArgs:
    def __init__(__self__, *,
                 adfs_server: Optional[pulumi.Input[str]] = None,
                 allowed_audiences: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 api_enable_users: Optional[pulumi.Input[bool]] = None,
                 app_id: Optional[pulumi.Input[str]] = None,
                 auth_params: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                 authorization_endpoint: Optional[pulumi.Input[str]] = None,
                 brute_force_protection: Optional[pulumi.Input[bool]] = None,
                 client_id: Optional[pulumi.Input[str]] = None,
                 client_secret: Optional[pulumi.Input[str]] = None,
                 community_base_url: Optional[pulumi.Input[str]] = None,
                 configuration: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 custom_scripts: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                 debug: Optional[pulumi.Input[bool]] = None,
                 digest_algorithm: Optional[pulumi.Input[str]] = None,
                 disable_cache: Optional[pulumi.Input[bool]] = None,
                 disable_self_service_change_password: Optional[pulumi.Input[bool]] = None,
                 disable_sign_out: Optional[pulumi.Input[bool]] = None,
                 disable_signup: Optional[pulumi.Input[bool]] = None,
                 discovery_url: Optional[pulumi.Input[str]] = None,
                 domain: Optional[pulumi.Input[str]] = None,
                 domain_aliases: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 enable_script_context: Optional[pulumi.Input[bool]] = None,
                 enabled_database_customization: Optional[pulumi.Input[bool]] = None,
                 entity_id: Optional[pulumi.Input[str]] = None,
                 fed_metadata_xml: Optional[pulumi.Input[str]] = None,
                 fields_map: Optional[pulumi.Input[str]] = None,
                 forward_request_info: Optional[pulumi.Input[bool]] = None,
                 from_: Optional[pulumi.Input[str]] = None,
                 gateway_authentication: Optional[pulumi.Input['ConnectionOptionsGatewayAuthenticationArgs']] = None,
                 gateway_url: Optional[pulumi.Input[str]] = None,
                 icon_url: Optional[pulumi.Input[str]] = None,
                 identity_api: Optional[pulumi.Input[str]] = None,
                 idp_initiated: Optional[pulumi.Input['ConnectionOptionsIdpInitiatedArgs']] = None,
                 import_mode: Optional[pulumi.Input[bool]] = None,
                 ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 issuer: Optional[pulumi.Input[str]] = None,
                 jwks_uri: Optional[pulumi.Input[str]] = None,
                 key_id: Optional[pulumi.Input[str]] = None,
                 max_groups_to_retrieve: Optional[pulumi.Input[str]] = None,
                 messaging_service_sid: Optional[pulumi.Input[str]] = None,
                 metadata_url: Optional[pulumi.Input[str]] = None,
                 metadata_xml: Optional[pulumi.Input[str]] = None,
                 mfa: Optional[pulumi.Input['ConnectionOptionsMfaArgs']] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 non_persistent_attrs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 password_complexity_options: Optional[pulumi.Input['ConnectionOptionsPasswordComplexityOptionsArgs']] = None,
                 password_dictionary: Optional[pulumi.Input['ConnectionOptionsPasswordDictionaryArgs']] = None,
                 password_histories: Optional[pulumi.Input[Sequence[pulumi.Input['ConnectionOptionsPasswordHistoryArgs']]]] = None,
                 password_no_personal_info: Optional[pulumi.Input['ConnectionOptionsPasswordNoPersonalInfoArgs']] = None,
                 password_policy: Optional[pulumi.Input[str]] = None,
                 ping_federate_base_url: Optional[pulumi.Input[str]] = None,
                 pkce_enabled: Optional[pulumi.Input[bool]] = None,
                 protocol_binding: Optional[pulumi.Input[str]] = None,
                 provider: Optional[pulumi.Input[str]] = None,
                 request_template: Optional[pulumi.Input[str]] = None,
                 requires_username: Optional[pulumi.Input[bool]] = None,
                 scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 scripts: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                 set_user_root_attributes: Optional[pulumi.Input[str]] = None,
                 should_trust_email_verified_connection: Optional[pulumi.Input[str]] = None,
                 sign_in_endpoint: Optional[pulumi.Input[str]] = None,
                 sign_out_endpoint: Optional[pulumi.Input[str]] = None,
                 sign_saml_request: Optional[pulumi.Input[bool]] = None,
                 signature_algorithm: Optional[pulumi.Input[str]] = None,
                 signing_cert: Optional[pulumi.Input[str]] = None,
                 signing_key: Optional[pulumi.Input['ConnectionOptionsSigningKeyArgs']] = None,
                 strategy_version: Optional[pulumi.Input[int]] = None,
                 subject: Optional[pulumi.Input[str]] = None,
                 syntax: Optional[pulumi.Input[str]] = None,
                 team_id: Optional[pulumi.Input[str]] = None,
                 template: Optional[pulumi.Input[str]] = None,
                 tenant_domain: Optional[pulumi.Input[str]] = None,
                 token_endpoint: Optional[pulumi.Input[str]] = None,
                 totp: Optional[pulumi.Input['ConnectionOptionsTotpArgs']] = None,
                 twilio_sid: Optional[pulumi.Input[str]] = None,
                 twilio_token: Optional[pulumi.Input[str]] = None,
                 type: Optional[pulumi.Input[str]] = None,
                 upstream_params: Optional[pulumi.Input[str]] = None,
                 use_cert_auth: Optional[pulumi.Input[bool]] = None,
                 use_kerberos: Optional[pulumi.Input[bool]] = None,
                 use_wsfed: Optional[pulumi.Input[bool]] = None,
                 user_id_attribute: Optional[pulumi.Input[str]] = None,
                 userinfo_endpoint: Optional[pulumi.Input[str]] = None,
                 validation: Optional[pulumi.Input['ConnectionOptionsValidationArgs']] = None,
                 waad_common_endpoint: Optional[pulumi.Input[bool]] = None,
                 waad_protocol: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] adfs_server: ADFS URL where to fetch the metadata source.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_audiences: List of allowed audiences.
        :param pulumi.Input[bool] api_enable_users: Enable API Access to users.
        :param pulumi.Input[str] app_id: App ID.
        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] auth_params: Query string parameters to be included as part of the generated passwordless email link.
        :param pulumi.Input[str] authorization_endpoint: Authorization endpoint.
        :param pulumi.Input[bool] brute_force_protection: Indicates whether to enable brute force protection, which will limit the number of signups and failed logins from a suspicious IP address.
        :param pulumi.Input[str] client_id: The strategy's client ID.
        :param pulumi.Input[str] client_secret: The strategy's client secret.
        :param pulumi.Input[str] community_base_url: Salesforce community base URL.
        :param pulumi.Input[Mapping[str, Any]] configuration: A case-sensitive map of key value pairs used as configuration variables for the `custom_script`.
        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] custom_scripts: A map of scripts used to integrate with a custom database.
        :param pulumi.Input[bool] debug: When enabled, additional debug information will be generated.
        :param pulumi.Input[str] digest_algorithm: Sign Request Algorithm Digest.
        :param pulumi.Input[bool] disable_cache: Indicates whether to disable the cache or not.
        :param pulumi.Input[bool] disable_self_service_change_password: Indicates whether to remove the forgot password link within the New Universal Login.
        :param pulumi.Input[bool] disable_sign_out: When enabled, will disable sign out.
        :param pulumi.Input[bool] disable_signup: Indicates whether to allow user sign-ups to your application.
        :param pulumi.Input[str] discovery_url: OpenID discovery URL, e.g. `https://auth.example.com/.well-known/openid-configuration`.
        :param pulumi.Input[str] domain: Domain name.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] domain_aliases: List of the domains that can be authenticated using the identity provider. Only needed for Identifier First authentication flows.
        :param pulumi.Input[bool] enable_script_context: Set to `true` to inject context into custom DB scripts (warning: cannot be disabled once enabled).
        :param pulumi.Input[bool] enabled_database_customization: Set to `true` to use a legacy user store.
        :param pulumi.Input[str] entity_id: Custom Entity ID for the connection.
        :param pulumi.Input[str] fed_metadata_xml: Federation Metadata for the ADFS connection.
        :param pulumi.Input[str] fields_map: If you're configuring a SAML enterprise connection for a non-standard PingFederate Server, you must update the attribute mappings.
        :param pulumi.Input[bool] forward_request_info: Specifies whether or not request info should be forwarded to sms gateway.
        :param pulumi.Input[str] from_: Address to use as the sender.
        :param pulumi.Input['ConnectionOptionsGatewayAuthenticationArgs'] gateway_authentication: Defines the parameters used to generate the auth token for the custom gateway.
        :param pulumi.Input[str] gateway_url: Defines a custom sms gateway to use instead of Twilio.
        :param pulumi.Input[str] icon_url: Icon URL.
        :param pulumi.Input[str] identity_api: Azure AD Identity API. Available options are: `microsoft-identity-platform-v2.0` or `azure-active-directory-v1.0`.
        :param pulumi.Input['ConnectionOptionsIdpInitiatedArgs'] idp_initiated: Configuration options for IDP Initiated Authentication. This is an object with the properties: `client_id`, `client_protocol`, and `client_authorize_query`.
        :param pulumi.Input[bool] import_mode: Indicates whether you have a legacy user store and want to gradually migrate those users to the Auth0 user store.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] ips: A list of IPs.
        :param pulumi.Input[str] issuer: Issuer URL, e.g. `https://auth.example.com`.
        :param pulumi.Input[str] jwks_uri: JWKS URI.
        :param pulumi.Input[str] key_id: Apple Key ID.
        :param pulumi.Input[str] max_groups_to_retrieve: Maximum number of groups to retrieve.
        :param pulumi.Input[str] messaging_service_sid: SID for Copilot. Used when SMS Source is Copilot.
        :param pulumi.Input[str] metadata_url: The URL of the SAML metadata document.
        :param pulumi.Input[str] metadata_xml: The XML content for the SAML metadata document.
        :param pulumi.Input['ConnectionOptionsMfaArgs'] mfa: Configuration options for multifactor authentication.
        :param pulumi.Input[str] name: The public name of the email or SMS Connection. In most cases this is the same name as the connection name.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] non_persistent_attrs: If there are user fields that should not be stored in Auth0 databases due to privacy reasons, you can add them to the DenyList here.
        :param pulumi.Input['ConnectionOptionsPasswordComplexityOptionsArgs'] password_complexity_options: Configuration settings for password complexity.
        :param pulumi.Input['ConnectionOptionsPasswordDictionaryArgs'] password_dictionary: Configuration settings for the password dictionary check, which does not allow passwords that are part of the password dictionary.
        :param pulumi.Input[Sequence[pulumi.Input['ConnectionOptionsPasswordHistoryArgs']]] password_histories: Configuration settings for the password history that is maintained for each user to prevent the reuse of passwords.
        :param pulumi.Input['ConnectionOptionsPasswordNoPersonalInfoArgs'] password_no_personal_info: Configuration settings for the password personal info check, which does not allow passwords that contain any part of the user's personal data, including user's `name`, `username`, `nickname`, `user_metadata.name`, `user_metadata.first`, `user_metadata.last`, user's `email`, or first part of the user's `email`.
        :param pulumi.Input[str] password_policy: Indicates level of password strength to enforce during authentication. A strong password policy will make it difficult, if not improbable, for someone to guess a password through either manual or automated means. Options include `none`, `low`, `fair`, `good`, `excellent`.
        :param pulumi.Input[str] ping_federate_base_url: Ping Federate Server URL.
        :param pulumi.Input[bool] pkce_enabled: Enables Proof Key for Code Exchange (PKCE) functionality for OAuth2 connections.
        :param pulumi.Input[str] protocol_binding: The SAML Response Binding: how the SAML token is received by Auth0 from the IdP.
        :param pulumi.Input[str] provider: Defines the custom `sms_gateway` provider.
        :param pulumi.Input[str] request_template: Template that formats the SAML request.
        :param pulumi.Input[bool] requires_username: Indicates whether the user is required to provide a username in addition to an email address.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] scopes: Permissions to grant to the connection. Within the Auth0 dashboard these appear under the "Attributes" and "Extended Attributes" sections. Some examples: `basic_profile`, `ext_profile`, `ext_nested_groups`, etc.
        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] scripts: A map of scripts used for an OAuth connection. Only accepts a `fetchUserProfile` script.
        :param pulumi.Input[str] set_user_root_attributes: Determines whether to sync user profile attributes (`name`, `given_name`, `family_name`, `nickname`, `picture`) at each login or only on the first login. Options include: `on_each_login`, `on_first_login`. Default value: `on_each_login`.
        :param pulumi.Input[str] should_trust_email_verified_connection: Choose how Auth0 sets the email_verified field in the user profile.
        :param pulumi.Input[str] sign_in_endpoint: SAML single login URL for the connection.
        :param pulumi.Input[str] sign_out_endpoint: SAML single logout URL for the connection.
        :param pulumi.Input[bool] sign_saml_request: When enabled, the SAML authentication request will be signed.
        :param pulumi.Input[str] signature_algorithm: Sign Request Algorithm.
        :param pulumi.Input[str] signing_cert: X.509 signing certificate (encoded in PEM or CER) you retrieved from the IdP, Base64-encoded.
        :param pulumi.Input['ConnectionOptionsSigningKeyArgs'] signing_key: The key used to sign requests in the connection. Uses the `key` and `cert` properties to provide the private key and certificate respectively.
        :param pulumi.Input[int] strategy_version: Version 1 is deprecated, use version 2.
        :param pulumi.Input[str] subject: Subject line of the email.
        :param pulumi.Input[str] syntax: Syntax of the template body.
        :param pulumi.Input[str] team_id: Apple Team ID.
        :param pulumi.Input[str] template: Body of the template.
        :param pulumi.Input[str] tenant_domain: Tenant domain name.
        :param pulumi.Input[str] token_endpoint: Token endpoint.
        :param pulumi.Input['ConnectionOptionsTotpArgs'] totp: Configuration options for one-time passwords.
        :param pulumi.Input[str] twilio_sid: SID for your Twilio account.
        :param pulumi.Input[str] twilio_token: AuthToken for your Twilio account.
        :param pulumi.Input[str] type: Value can be `back_channel` or `front_channel`. Front Channel will use OIDC protocol with `response_mode=form_post` and `response_type=id_token`. Back Channel will use `response_type=code`.
        :param pulumi.Input[str] upstream_params: You can pass provider-specific parameters to an identity provider during authentication. The values can either be static per connection or dynamic per user.
        :param pulumi.Input[bool] use_cert_auth: Indicates whether to use cert auth or not.
        :param pulumi.Input[bool] use_kerberos: Indicates whether to use Kerberos or not.
        :param pulumi.Input[bool] use_wsfed: Whether to use WS-Fed.
        :param pulumi.Input[str] user_id_attribute: Attribute in the SAML token that will be mapped to the user_id property in Auth0.
        :param pulumi.Input[str] userinfo_endpoint: User info endpoint.
        :param pulumi.Input['ConnectionOptionsValidationArgs'] validation: Validation of the minimum and maximum values allowed for a user to have as username.
        :param pulumi.Input[bool] waad_common_endpoint: Indicates whether to use the common endpoint rather than the default endpoint. Typically enabled if you're using this for a multi-tenant application in Azure AD.
        :param pulumi.Input[str] waad_protocol: Protocol to use.
        """
        if adfs_server is not None:
            pulumi.set(__self__, "adfs_server", adfs_server)
        if allowed_audiences is not None:
            pulumi.set(__self__, "allowed_audiences", allowed_audiences)
        if api_enable_users is not None:
            pulumi.set(__self__, "api_enable_users", api_enable_users)
        if app_id is not None:
            pulumi.set(__self__, "app_id", app_id)
        if auth_params is not None:
            pulumi.set(__self__, "auth_params", auth_params)
        if authorization_endpoint is not None:
            pulumi.set(__self__, "authorization_endpoint", authorization_endpoint)
        if brute_force_protection is not None:
            pulumi.set(__self__, "brute_force_protection", brute_force_protection)
        if client_id is not None:
            pulumi.set(__self__, "client_id", client_id)
        if client_secret is not None:
            pulumi.set(__self__, "client_secret", client_secret)
        if community_base_url is not None:
            pulumi.set(__self__, "community_base_url", community_base_url)
        if configuration is not None:
            pulumi.set(__self__, "configuration", configuration)
        if custom_scripts is not None:
            pulumi.set(__self__, "custom_scripts", custom_scripts)
        if debug is not None:
            pulumi.set(__self__, "debug", debug)
        if digest_algorithm is not None:
            pulumi.set(__self__, "digest_algorithm", digest_algorithm)
        if disable_cache is not None:
            pulumi.set(__self__, "disable_cache", disable_cache)
        if disable_self_service_change_password is not None:
            pulumi.set(__self__, "disable_self_service_change_password", disable_self_service_change_password)
        if disable_sign_out is not None:
            pulumi.set(__self__, "disable_sign_out", disable_sign_out)
        if disable_signup is not None:
            pulumi.set(__self__, "disable_signup", disable_signup)
        if discovery_url is not None:
            pulumi.set(__self__, "discovery_url", discovery_url)
        if domain is not None:
            pulumi.set(__self__, "domain", domain)
        if domain_aliases is not None:
            pulumi.set(__self__, "domain_aliases", domain_aliases)
        if enable_script_context is not None:
            pulumi.set(__self__, "enable_script_context", enable_script_context)
        if enabled_database_customization is not None:
            pulumi.set(__self__, "enabled_database_customization", enabled_database_customization)
        if entity_id is not None:
            pulumi.set(__self__, "entity_id", entity_id)
        if fed_metadata_xml is not None:
            pulumi.set(__self__, "fed_metadata_xml", fed_metadata_xml)
        if fields_map is not None:
            pulumi.set(__self__, "fields_map", fields_map)
        if forward_request_info is not None:
            pulumi.set(__self__, "forward_request_info", forward_request_info)
        if from_ is not None:
            pulumi.set(__self__, "from_", from_)
        if gateway_authentication is not None:
            pulumi.set(__self__, "gateway_authentication", gateway_authentication)
        if gateway_url is not None:
            pulumi.set(__self__, "gateway_url", gateway_url)
        if icon_url is not None:
            pulumi.set(__self__, "icon_url", icon_url)
        if identity_api is not None:
            pulumi.set(__self__, "identity_api", identity_api)
        if idp_initiated is not None:
            pulumi.set(__self__, "idp_initiated", idp_initiated)
        if import_mode is not None:
            pulumi.set(__self__, "import_mode", import_mode)
        if ips is not None:
            pulumi.set(__self__, "ips", ips)
        if issuer is not None:
            pulumi.set(__self__, "issuer", issuer)
        if jwks_uri is not None:
            pulumi.set(__self__, "jwks_uri", jwks_uri)
        if key_id is not None:
            pulumi.set(__self__, "key_id", key_id)
        if max_groups_to_retrieve is not None:
            pulumi.set(__self__, "max_groups_to_retrieve", max_groups_to_retrieve)
        if messaging_service_sid is not None:
            pulumi.set(__self__, "messaging_service_sid", messaging_service_sid)
        if metadata_url is not None:
            pulumi.set(__self__, "metadata_url", metadata_url)
        if metadata_xml is not None:
            pulumi.set(__self__, "metadata_xml", metadata_xml)
        if mfa is not None:
            pulumi.set(__self__, "mfa", mfa)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if non_persistent_attrs is not None:
            pulumi.set(__self__, "non_persistent_attrs", non_persistent_attrs)
        if password_complexity_options is not None:
            pulumi.set(__self__, "password_complexity_options", password_complexity_options)
        if password_dictionary is not None:
            pulumi.set(__self__, "password_dictionary", password_dictionary)
        if password_histories is not None:
            pulumi.set(__self__, "password_histories", password_histories)
        if password_no_personal_info is not None:
            pulumi.set(__self__, "password_no_personal_info", password_no_personal_info)
        if password_policy is not None:
            pulumi.set(__self__, "password_policy", password_policy)
        if ping_federate_base_url is not None:
            pulumi.set(__self__, "ping_federate_base_url", ping_federate_base_url)
        if pkce_enabled is not None:
            pulumi.set(__self__, "pkce_enabled", pkce_enabled)
        if protocol_binding is not None:
            pulumi.set(__self__, "protocol_binding", protocol_binding)
        if provider is not None:
            pulumi.set(__self__, "provider", provider)
        if request_template is not None:
            pulumi.set(__self__, "request_template", request_template)
        if requires_username is not None:
            pulumi.set(__self__, "requires_username", requires_username)
        if scopes is not None:
            pulumi.set(__self__, "scopes", scopes)
        if scripts is not None:
            pulumi.set(__self__, "scripts", scripts)
        if set_user_root_attributes is not None:
            pulumi.set(__self__, "set_user_root_attributes", set_user_root_attributes)
        if should_trust_email_verified_connection is not None:
            pulumi.set(__self__, "should_trust_email_verified_connection", should_trust_email_verified_connection)
        if sign_in_endpoint is not None:
            pulumi.set(__self__, "sign_in_endpoint", sign_in_endpoint)
        if sign_out_endpoint is not None:
            pulumi.set(__self__, "sign_out_endpoint", sign_out_endpoint)
        if sign_saml_request is not None:
            pulumi.set(__self__, "sign_saml_request", sign_saml_request)
        if signature_algorithm is not None:
            pulumi.set(__self__, "signature_algorithm", signature_algorithm)
        if signing_cert is not None:
            pulumi.set(__self__, "signing_cert", signing_cert)
        if signing_key is not None:
            pulumi.set(__self__, "signing_key", signing_key)
        if strategy_version is not None:
            pulumi.set(__self__, "strategy_version", strategy_version)
        if subject is not None:
            pulumi.set(__self__, "subject", subject)
        if syntax is not None:
            pulumi.set(__self__, "syntax", syntax)
        if team_id is not None:
            pulumi.set(__self__, "team_id", team_id)
        if template is not None:
            pulumi.set(__self__, "template", template)
        if tenant_domain is not None:
            pulumi.set(__self__, "tenant_domain", tenant_domain)
        if token_endpoint is not None:
            pulumi.set(__self__, "token_endpoint", token_endpoint)
        if totp is not None:
            pulumi.set(__self__, "totp", totp)
        if twilio_sid is not None:
            pulumi.set(__self__, "twilio_sid", twilio_sid)
        if twilio_token is not None:
            pulumi.set(__self__, "twilio_token", twilio_token)
        if type is not None:
            pulumi.set(__self__, "type", type)
        if upstream_params is not None:
            pulumi.set(__self__, "upstream_params", upstream_params)
        if use_cert_auth is not None:
            pulumi.set(__self__, "use_cert_auth", use_cert_auth)
        if use_kerberos is not None:
            pulumi.set(__self__, "use_kerberos", use_kerberos)
        if use_wsfed is not None:
            pulumi.set(__self__, "use_wsfed", use_wsfed)
        if user_id_attribute is not None:
            pulumi.set(__self__, "user_id_attribute", user_id_attribute)
        if userinfo_endpoint is not None:
            pulumi.set(__self__, "userinfo_endpoint", userinfo_endpoint)
        if validation is not None:
            pulumi.set(__self__, "validation", validation)
        if waad_common_endpoint is not None:
            pulumi.set(__self__, "waad_common_endpoint", waad_common_endpoint)
        if waad_protocol is not None:
            pulumi.set(__self__, "waad_protocol", waad_protocol)

    @property
    @pulumi.getter(name="adfsServer")
    def adfs_server(self) -> Optional[pulumi.Input[str]]:
        """
        ADFS URL where to fetch the metadata source.
        """
        return pulumi.get(self, "adfs_server")

    @adfs_server.setter
    def adfs_server(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "adfs_server", value)

    @property
    @pulumi.getter(name="allowedAudiences")
    def allowed_audiences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        List of allowed audiences.
        """
        return pulumi.get(self, "allowed_audiences")

    @allowed_audiences.setter
    def allowed_audiences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "allowed_audiences", value)

    @property
    @pulumi.getter(name="apiEnableUsers")
    def api_enable_users(self) -> Optional[pulumi.Input[bool]]:
        """
        Enable API Access to users.
        """
        return pulumi.get(self, "api_enable_users")

    @api_enable_users.setter
    def api_enable_users(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "api_enable_users", value)

    @property
    @pulumi.getter(name="appId")
    def app_id(self) -> Optional[pulumi.Input[str]]:
        """
        App ID.
        """
        return pulumi.get(self, "app_id")

    @app_id.setter
    def app_id(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "app_id", value)

    @property
    @pulumi.getter(name="authParams")
    def auth_params(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
        """
        Query string parameters to be included as part of the generated passwordless email link.
        """
        return pulumi.get(self, "auth_params")

    @auth_params.setter
    def auth_params(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
        pulumi.set(self, "auth_params", value)

    @property
    @pulumi.getter(name="authorizationEndpoint")
    def authorization_endpoint(self) -> Optional[pulumi.Input[str]]:
        """
        Authorization endpoint.
        """
        return pulumi.get(self, "authorization_endpoint")

    @authorization_endpoint.setter
    def authorization_endpoint(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "authorization_endpoint", value)

    @property
    @pulumi.getter(name="bruteForceProtection")
    def brute_force_protection(self) -> Optional[pulumi.Input[bool]]:
        """
        Indicates whether to enable brute force protection, which will limit the number of signups and failed logins from a suspicious IP address.
        """
        return pulumi.get(self, "brute_force_protection")

    @brute_force_protection.setter
    def brute_force_protection(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "brute_force_protection", value)

    @property
    @pulumi.getter(name="clientId")
    def client_id(self) -> Optional[pulumi.Input[str]]:
        """
        The strategy's client ID.
        """
        return pulumi.get(self, "client_id")

    @client_id.setter
    def client_id(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "client_id", value)

    @property
    @pulumi.getter(name="clientSecret")
    def client_secret(self) -> Optional[pulumi.Input[str]]:
        """
        The strategy's client secret.
        """
        return pulumi.get(self, "client_secret")

    @client_secret.setter
    def client_secret(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "client_secret", value)

    @property
    @pulumi.getter(name="communityBaseUrl")
    def community_base_url(self) -> Optional[pulumi.Input[str]]:
        """
        Salesforce community base URL.
        """
        return pulumi.get(self, "community_base_url")

    @community_base_url.setter
    def community_base_url(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "community_base_url", value)

    @property
    @pulumi.getter
    def configuration(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        """
        A case-sensitive map of key value pairs used as configuration variables for the `custom_script`.
        """
        return pulumi.get(self, "configuration")

    @configuration.setter
    def configuration(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "configuration", value)

    @property
    @pulumi.getter(name="customScripts")
    def custom_scripts(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
        """
        A map of scripts used to integrate with a custom database.
        """
        return pulumi.get(self, "custom_scripts")

    @custom_scripts.setter
    def custom_scripts(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
        pulumi.set(self, "custom_scripts", value)

    @property
    @pulumi.getter
    def debug(self) -> Optional[pulumi.Input[bool]]:
        """
        When enabled, additional debug information will be generated.
        """
        return pulumi.get(self, "debug")

    @debug.setter
    def debug(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "debug", value)

    @property
    @pulumi.getter(name="digestAlgorithm")
    def digest_algorithm(self) -> Optional[pulumi.Input[str]]:
        """
        Sign Request Algorithm Digest.
        """
        return pulumi.get(self, "digest_algorithm")

    @digest_algorithm.setter
    def digest_algorithm(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "digest_algorithm", value)

    @property
    @pulumi.getter(name="disableCache")
    def disable_cache(self) -> Optional[pulumi.Input[bool]]:
        """
        Indicates whether to disable the cache or not.
        """
        return pulumi.get(self, "disable_cache")

    @disable_cache.setter
    def disable_cache(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "disable_cache", value)

    @property
    @pulumi.getter(name="disableSelfServiceChangePassword")
    def disable_self_service_change_password(self) -> Optional[pulumi.Input[bool]]:
        """
        Indicates whether to remove the forgot password link within the New Universal Login.
        """
        return pulumi.get(self, "disable_self_service_change_password")

    @disable_self_service_change_password.setter
    def disable_self_service_change_password(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "disable_self_service_change_password", value)

    @property
    @pulumi.getter(name="disableSignOut")
    def disable_sign_out(self) -> Optional[pulumi.Input[bool]]:
        """
        When enabled, will disable sign out.
        """
        return pulumi.get(self, "disable_sign_out")

    @disable_sign_out.setter
    def disable_sign_out(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "disable_sign_out", value)

    @property
    @pulumi.getter(name="disableSignup")
    def disable_signup(self) -> Optional[pulumi.Input[bool]]:
        """
        Indicates whether to allow user sign-ups to your application.
        """
        return pulumi.get(self, "disable_signup")

    @disable_signup.setter
    def disable_signup(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "disable_signup", value)

    @property
    @pulumi.getter(name="discoveryUrl")
    def discovery_url(self) -> Optional[pulumi.Input[str]]:
        """
        OpenID discovery URL, e.g. `https://auth.example.com/.well-known/openid-configuration`.
        """
        return pulumi.get(self, "discovery_url")

    @discovery_url.setter
    def discovery_url(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "discovery_url", value)

    @property
    @pulumi.getter
    def domain(self) -> Optional[pulumi.Input[str]]:
        """
        Domain name.
        """
        return pulumi.get(self, "domain")

    @domain.setter
    def domain(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "domain", value)

    @property
    @pulumi.getter(name="domainAliases")
    def domain_aliases(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        List of the domains that can be authenticated using the identity provider. Only needed for Identifier First authentication flows.
        """
        return pulumi.get(self, "domain_aliases")

    @domain_aliases.setter
    def domain_aliases(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "domain_aliases", value)

    @property
    @pulumi.getter(name="enableScriptContext")
    def enable_script_context(self) -> Optional[pulumi.Input[bool]]:
        """
        Set to `true` to inject context into custom DB scripts (warning: cannot be disabled once enabled).
        """
        return pulumi.get(self, "enable_script_context")

    @enable_script_context.setter
    def enable_script_context(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enable_script_context", value)

    @property
    @pulumi.getter(name="enabledDatabaseCustomization")
    def enabled_database_customization(self) -> Optional[pulumi.Input[bool]]:
        """
        Set to `true` to use a legacy user store.
        """
        return pulumi.get(self, "enabled_database_customization")

    @enabled_database_customization.setter
    def enabled_database_customization(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enabled_database_customization", value)

    @property
    @pulumi.getter(name="entityId")
    def entity_id(self) -> Optional[pulumi.Input[str]]:
        """
        Custom Entity ID for the connection.
        """
        return pulumi.get(self, "entity_id")

    @entity_id.setter
    def entity_id(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "entity_id", value)

    @property
    @pulumi.getter(name="fedMetadataXml")
    def fed_metadata_xml(self) -> Optional[pulumi.Input[str]]:
        """
        Federation Metadata for the ADFS connection.
        """
        return pulumi.get(self, "fed_metadata_xml")

    @fed_metadata_xml.setter
    def fed_metadata_xml(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "fed_metadata_xml", value)

    @property
    @pulumi.getter(name="fieldsMap")
    def fields_map(self) -> Optional[pulumi.Input[str]]:
        """
        If you're configuring a SAML enterprise connection for a non-standard PingFederate Server, you must update the attribute mappings.
        """
        return pulumi.get(self, "fields_map")

    @fields_map.setter
    def fields_map(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "fields_map", value)

    @property
    @pulumi.getter(name="forwardRequestInfo")
    def forward_request_info(self) -> Optional[pulumi.Input[bool]]:
        """
        Specifies whether or not request info should be forwarded to sms gateway.
        """
        return pulumi.get(self, "forward_request_info")

    @forward_request_info.setter
    def forward_request_info(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "forward_request_info", value)

    @property
    @pulumi.getter(name="from")
    def from_(self) -> Optional[pulumi.Input[str]]:
        """
        Address to use as the sender.
        """
        return pulumi.get(self, "from_")

    @from_.setter
    def from_(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "from_", value)

    @property
    @pulumi.getter(name="gatewayAuthentication")
    def gateway_authentication(self) -> Optional[pulumi.Input['ConnectionOptionsGatewayAuthenticationArgs']]:
        """
        Defines the parameters used to generate the auth token for the custom gateway.
        """
        return pulumi.get(self, "gateway_authentication")

    @gateway_authentication.setter
    def gateway_authentication(self, value: Optional[pulumi.Input['ConnectionOptionsGatewayAuthenticationArgs']]):
        pulumi.set(self, "gateway_authentication", value)

    @property
    @pulumi.getter(name="gatewayUrl")
    def gateway_url(self) -> Optional[pulumi.Input[str]]:
        """
        Defines a custom sms gateway to use instead of Twilio.
        """
        return pulumi.get(self, "gateway_url")

    @gateway_url.setter
    def gateway_url(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "gateway_url", value)

    @property
    @pulumi.getter(name="iconUrl")
    def icon_url(self) -> Optional[pulumi.Input[str]]:
        """
        Icon URL.
        """
        return pulumi.get(self, "icon_url")

    @icon_url.setter
    def icon_url(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "icon_url", value)

    @property
    @pulumi.getter(name="identityApi")
    def identity_api(self) -> Optional[pulumi.Input[str]]:
        """
        Azure AD Identity API. Available options are: `microsoft-identity-platform-v2.0` or `azure-active-directory-v1.0`.
        """
        return pulumi.get(self, "identity_api")

    @identity_api.setter
    def identity_api(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "identity_api", value)

    @property
    @pulumi.getter(name="idpInitiated")
    def idp_initiated(self) -> Optional[pulumi.Input['ConnectionOptionsIdpInitiatedArgs']]:
        """
        Configuration options for IDP Initiated Authentication. This is an object with the properties: `client_id`, `client_protocol`, and `client_authorize_query`.
        """
        return pulumi.get(self, "idp_initiated")

    @idp_initiated.setter
    def idp_initiated(self, value: Optional[pulumi.Input['ConnectionOptionsIdpInitiatedArgs']]):
        pulumi.set(self, "idp_initiated", value)

    @property
    @pulumi.getter(name="importMode")
    def import_mode(self) -> Optional[pulumi.Input[bool]]:
        """
        Indicates whether you have a legacy user store and want to gradually migrate those users to the Auth0 user store.
        """
        return pulumi.get(self, "import_mode")

    @import_mode.setter
    def import_mode(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "import_mode", value)

    @property
    @pulumi.getter
    def ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        A list of IPs.
        """
        return pulumi.get(self, "ips")

    @ips.setter
    def ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "ips", value)

    @property
    @pulumi.getter
    def issuer(self) -> Optional[pulumi.Input[str]]:
        """
        Issuer URL, e.g. `https://auth.example.com`.
        """
        return pulumi.get(self, "issuer")

    @issuer.setter
    def issuer(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "issuer", value)

    @property
    @pulumi.getter(name="jwksUri")
    def jwks_uri(self) -> Optional[pulumi.Input[str]]:
        """
        JWKS URI.
        """
        return pulumi.get(self, "jwks_uri")

    @jwks_uri.setter
    def jwks_uri(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "jwks_uri", value)

    @property
    @pulumi.getter(name="keyId")
    def key_id(self) -> Optional[pulumi.Input[str]]:
        """
        Apple Key ID.
        """
        return pulumi.get(self, "key_id")

    @key_id.setter
    def key_id(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "key_id", value)

    @property
    @pulumi.getter(name="maxGroupsToRetrieve")
    def max_groups_to_retrieve(self) -> Optional[pulumi.Input[str]]:
        """
        Maximum number of groups to retrieve.
        """
        return pulumi.get(self, "max_groups_to_retrieve")

    @max_groups_to_retrieve.setter
    def max_groups_to_retrieve(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "max_groups_to_retrieve", value)

    @property
    @pulumi.getter(name="messagingServiceSid")
    def messaging_service_sid(self) -> Optional[pulumi.Input[str]]:
        """
        SID for Copilot. Used when SMS Source is Copilot.
        """
        return pulumi.get(self, "messaging_service_sid")

    @messaging_service_sid.setter
    def messaging_service_sid(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "messaging_service_sid", value)

    @property
    @pulumi.getter(name="metadataUrl")
    def metadata_url(self) -> Optional[pulumi.Input[str]]:
        """
        The URL of the SAML metadata document.
        """
        return pulumi.get(self, "metadata_url")

    @metadata_url.setter
    def metadata_url(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "metadata_url", value)

    @property
    @pulumi.getter(name="metadataXml")
    def metadata_xml(self) -> Optional[pulumi.Input[str]]:
        """
        The XML content for the SAML metadata document.
        """
        return pulumi.get(self, "metadata_xml")

    @metadata_xml.setter
    def metadata_xml(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "metadata_xml", value)

    @property
    @pulumi.getter
    def mfa(self) -> Optional[pulumi.Input['ConnectionOptionsMfaArgs']]:
        """
        Configuration options for multifactor authentication.
        """
        return pulumi.get(self, "mfa")

    @mfa.setter
    def mfa(self, value: Optional[pulumi.Input['ConnectionOptionsMfaArgs']]):
        pulumi.set(self, "mfa", value)

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        """
        The public name of the email or SMS Connection. In most cases this is the same name as the connection name.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter(name="nonPersistentAttrs")
    def non_persistent_attrs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        If there are user fields that should not be stored in Auth0 databases due to privacy reasons, you can add them to the DenyList here.
        """
        return pulumi.get(self, "non_persistent_attrs")

    @non_persistent_attrs.setter
    def non_persistent_attrs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "non_persistent_attrs", value)

    @property
    @pulumi.getter(name="passwordComplexityOptions")
    def password_complexity_options(self) -> Optional[pulumi.Input['ConnectionOptionsPasswordComplexityOptionsArgs']]:
        """
        Configuration settings for password complexity.
        """
        return pulumi.get(self, "password_complexity_options")

    @password_complexity_options.setter
    def password_complexity_options(self, value: Optional[pulumi.Input['ConnectionOptionsPasswordComplexityOptionsArgs']]):
        pulumi.set(self, "password_complexity_options", value)

    @property
    @pulumi.getter(name="passwordDictionary")
    def password_dictionary(self) -> Optional[pulumi.Input['ConnectionOptionsPasswordDictionaryArgs']]:
        """
        Configuration settings for the password dictionary check, which does not allow passwords that are part of the password dictionary.
        """
        return pulumi.get(self, "password_dictionary")

    @password_dictionary.setter
    def password_dictionary(self, value: Optional[pulumi.Input['ConnectionOptionsPasswordDictionaryArgs']]):
        pulumi.set(self, "password_dictionary", value)

    @property
    @pulumi.getter(name="passwordHistories")
    def password_histories(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ConnectionOptionsPasswordHistoryArgs']]]]:
        """
        Configuration settings for the password history that is maintained for each user to prevent the reuse of passwords.
        """
        return pulumi.get(self, "password_histories")

    @password_histories.setter
    def password_histories(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ConnectionOptionsPasswordHistoryArgs']]]]):
        pulumi.set(self, "password_histories", value)

    @property
    @pulumi.getter(name="passwordNoPersonalInfo")
    def password_no_personal_info(self) -> Optional[pulumi.Input['ConnectionOptionsPasswordNoPersonalInfoArgs']]:
        """
        Configuration settings for the password personal info check, which does not allow passwords that contain any part of the user's personal data, including user's `name`, `username`, `nickname`, `user_metadata.name`, `user_metadata.first`, `user_metadata.last`, user's `email`, or first part of the user's `email`.
        """
        return pulumi.get(self, "password_no_personal_info")

    @password_no_personal_info.setter
    def password_no_personal_info(self, value: Optional[pulumi.Input['ConnectionOptionsPasswordNoPersonalInfoArgs']]):
        pulumi.set(self, "password_no_personal_info", value)

    @property
    @pulumi.getter(name="passwordPolicy")
    def password_policy(self) -> Optional[pulumi.Input[str]]:
        """
        Indicates level of password strength to enforce during authentication. A strong password policy will make it difficult, if not improbable, for someone to guess a password through either manual or automated means. Options include `none`, `low`, `fair`, `good`, `excellent`.
        """
        return pulumi.get(self, "password_policy")

    @password_policy.setter
    def password_policy(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "password_policy", value)

    @property
    @pulumi.getter(name="pingFederateBaseUrl")
    def ping_federate_base_url(self) -> Optional[pulumi.Input[str]]:
        """
        Ping Federate Server URL.
        """
        return pulumi.get(self, "ping_federate_base_url")

    @ping_federate_base_url.setter
    def ping_federate_base_url(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "ping_federate_base_url", value)

    @property
    @pulumi.getter(name="pkceEnabled")
    def pkce_enabled(self) -> Optional[pulumi.Input[bool]]:
        """
        Enables Proof Key for Code Exchange (PKCE) functionality for OAuth2 connections.
        """
        return pulumi.get(self, "pkce_enabled")

    @pkce_enabled.setter
    def pkce_enabled(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "pkce_enabled", value)

    @property
    @pulumi.getter(name="protocolBinding")
    def protocol_binding(self) -> Optional[pulumi.Input[str]]:
        """
        The SAML Response Binding: how the SAML token is received by Auth0 from the IdP.
        """
        return pulumi.get(self, "protocol_binding")

    @protocol_binding.setter
    def protocol_binding(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "protocol_binding", value)

    @property
    @pulumi.getter
    def provider(self) -> Optional[pulumi.Input[str]]:
        """
        Defines the custom `sms_gateway` provider.
        """
        return pulumi.get(self, "provider")

    @provider.setter
    def provider(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "provider", value)

    @property
    @pulumi.getter(name="requestTemplate")
    def request_template(self) -> Optional[pulumi.Input[str]]:
        """
        Template that formats the SAML request.
        """
        return pulumi.get(self, "request_template")

    @request_template.setter
    def request_template(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "request_template", value)

    @property
    @pulumi.getter(name="requiresUsername")
    def requires_username(self) -> Optional[pulumi.Input[bool]]:
        """
        Indicates whether the user is required to provide a username in addition to an email address.
        """
        return pulumi.get(self, "requires_username")

    @requires_username.setter
    def requires_username(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "requires_username", value)

    @property
    @pulumi.getter
    def scopes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Permissions to grant to the connection. Within the Auth0 dashboard these appear under the "Attributes" and "Extended Attributes" sections. Some examples: `basic_profile`, `ext_profile`, `ext_nested_groups`, etc.
        """
        return pulumi.get(self, "scopes")

    @scopes.setter
    def scopes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "scopes", value)

    @property
    @pulumi.getter
    def scripts(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
        """
        A map of scripts used for an OAuth connection. Only accepts a `fetchUserProfile` script.
        """
        return pulumi.get(self, "scripts")

    @scripts.setter
    def scripts(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
        pulumi.set(self, "scripts", value)

    @property
    @pulumi.getter(name="setUserRootAttributes")
    def set_user_root_attributes(self) -> Optional[pulumi.Input[str]]:
        """
        Determines whether to sync user profile attributes (`name`, `given_name`, `family_name`, `nickname`, `picture`) at each login or only on the first login. Options include: `on_each_login`, `on_first_login`. Default value: `on_each_login`.
        """
        return pulumi.get(self, "set_user_root_attributes")

    @set_user_root_attributes.setter
    def set_user_root_attributes(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "set_user_root_attributes", value)

    @property
    @pulumi.getter(name="shouldTrustEmailVerifiedConnection")
    def should_trust_email_verified_connection(self) -> Optional[pulumi.Input[str]]:
        """
        Choose how Auth0 sets the email_verified field in the user profile.
        """
        return pulumi.get(self, "should_trust_email_verified_connection")

    @should_trust_email_verified_connection.setter
    def should_trust_email_verified_connection(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "should_trust_email_verified_connection", value)

    @property
    @pulumi.getter(name="signInEndpoint")
    def sign_in_endpoint(self) -> Optional[pulumi.Input[str]]:
        """
        SAML single login URL for the connection.
        """
        return pulumi.get(self, "sign_in_endpoint")

    @sign_in_endpoint.setter
    def sign_in_endpoint(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "sign_in_endpoint", value)

    @property
    @pulumi.getter(name="signOutEndpoint")
    def sign_out_endpoint(self) -> Optional[pulumi.Input[str]]:
        """
        SAML single logout URL for the connection.
        """
        return pulumi.get(self, "sign_out_endpoint")

    @sign_out_endpoint.setter
    def sign_out_endpoint(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "sign_out_endpoint", value)

    @property
    @pulumi.getter(name="signSamlRequest")
    def sign_saml_request(self) -> Optional[pulumi.Input[bool]]:
        """
        When enabled, the SAML authentication request will be signed.
        """
        return pulumi.get(self, "sign_saml_request")

    @sign_saml_request.setter
    def sign_saml_request(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "sign_saml_request", value)

    @property
    @pulumi.getter(name="signatureAlgorithm")
    def signature_algorithm(self) -> Optional[pulumi.Input[str]]:
        """
        Sign Request Algorithm.
        """
        return pulumi.get(self, "signature_algorithm")

    @signature_algorithm.setter
    def signature_algorithm(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "signature_algorithm", value)

    @property
    @pulumi.getter(name="signingCert")
    def signing_cert(self) -> Optional[pulumi.Input[str]]:
        """
        X.509 signing certificate (encoded in PEM or CER) you retrieved from the IdP, Base64-encoded.
        """
        return pulumi.get(self, "signing_cert")

    @signing_cert.setter
    def signing_cert(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "signing_cert", value)

    @property
    @pulumi.getter(name="signingKey")
    def signing_key(self) -> Optional[pulumi.Input['ConnectionOptionsSigningKeyArgs']]:
        """
        The key used to sign requests in the connection. Uses the `key` and `cert` properties to provide the private key and certificate respectively.
        """
        return pulumi.get(self, "signing_key")

    @signing_key.setter
    def signing_key(self, value: Optional[pulumi.Input['ConnectionOptionsSigningKeyArgs']]):
        pulumi.set(self, "signing_key", value)

    @property
    @pulumi.getter(name="strategyVersion")
    def strategy_version(self) -> Optional[pulumi.Input[int]]:
        """
        Version 1 is deprecated, use version 2.
        """
        return pulumi.get(self, "strategy_version")

    @strategy_version.setter
    def strategy_version(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "strategy_version", value)

    @property
    @pulumi.getter
    def subject(self) -> Optional[pulumi.Input[str]]:
        """
        Subject line of the email.
        """
        return pulumi.get(self, "subject")

    @subject.setter
    def subject(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "subject", value)

    @property
    @pulumi.getter
    def syntax(self) -> Optional[pulumi.Input[str]]:
        """
        Syntax of the template body.
        """
        return pulumi.get(self, "syntax")

    @syntax.setter
    def syntax(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "syntax", value)

    @property
    @pulumi.getter(name="teamId")
    def team_id(self) -> Optional[pulumi.Input[str]]:
        """
        Apple Team ID.
        """
        return pulumi.get(self, "team_id")

    @team_id.setter
    def team_id(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "team_id", value)

    @property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input[str]]:
        """
        Body of the template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "template", value)

    @property
    @pulumi.getter(name="tenantDomain")
    def tenant_domain(self) -> Optional[pulumi.Input[str]]:
        """
        Tenant domain name.
        """
        return pulumi.get(self, "tenant_domain")

    @tenant_domain.setter
    def tenant_domain(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "tenant_domain", value)

    @property
    @pulumi.getter(name="tokenEndpoint")
    def token_endpoint(self) -> Optional[pulumi.Input[str]]:
        """
        Token endpoint.
        """
        return pulumi.get(self, "token_endpoint")

    @token_endpoint.setter
    def token_endpoint(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "token_endpoint", value)

    @property
    @pulumi.getter
    def totp(self) -> Optional[pulumi.Input['ConnectionOptionsTotpArgs']]:
        """
        Configuration options for one-time passwords.
        """
        return pulumi.get(self, "totp")

    @totp.setter
    def totp(self, value: Optional[pulumi.Input['ConnectionOptionsTotpArgs']]):
        pulumi.set(self, "totp", value)

    @property
    @pulumi.getter(name="twilioSid")
    def twilio_sid(self) -> Optional[pulumi.Input[str]]:
        """
        SID for your Twilio account.
        """
        return pulumi.get(self, "twilio_sid")

    @twilio_sid.setter
    def twilio_sid(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "twilio_sid", value)

    @property
    @pulumi.getter(name="twilioToken")
    def twilio_token(self) -> Optional[pulumi.Input[str]]:
        """
        AuthToken for your Twilio account.
        """
        return pulumi.get(self, "twilio_token")

    @twilio_token.setter
    def twilio_token(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "twilio_token", value)

    @property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[str]]:
        """
        Value can be `back_channel` or `front_channel`. Front Channel will use OIDC protocol with `response_mode=form_post` and `response_type=id_token`. Back Channel will use `response_type=code`.
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "type", value)

    @property
    @pulumi.getter(name="upstreamParams")
    def upstream_params(self) -> Optional[pulumi.Input[str]]:
        """
        You can pass provider-specific parameters to an identity provider during authentication. The values can either be static per connection or dynamic per user.
        """
        return pulumi.get(self, "upstream_params")

    @upstream_params.setter
    def upstream_params(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "upstream_params", value)

    @property
    @pulumi.getter(name="useCertAuth")
    def use_cert_auth(self) -> Optional[pulumi.Input[bool]]:
        """
        Indicates whether to use cert auth or not.
        """
        return pulumi.get(self, "use_cert_auth")

    @use_cert_auth.setter
    def use_cert_auth(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "use_cert_auth", value)

    @property
    @pulumi.getter(name="useKerberos")
    def use_kerberos(self) -> Optional[pulumi.Input[bool]]:
        """
        Indicates whether to use Kerberos or not.
        """
        return pulumi.get(self, "use_kerberos")

    @use_kerberos.setter
    def use_kerberos(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "use_kerberos", value)

    @property
    @pulumi.getter(name="useWsfed")
    def use_wsfed(self) -> Optional[pulumi.Input[bool]]:
        """
        Whether to use WS-Fed.
        """
        return pulumi.get(self, "use_wsfed")

    @use_wsfed.setter
    def use_wsfed(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "use_wsfed", value)

    @property
    @pulumi.getter(name="userIdAttribute")
    def user_id_attribute(self) -> Optional[pulumi.Input[str]]:
        """
        Attribute in the SAML token that will be mapped to the user_id property in Auth0.
        """
        return pulumi.get(self, "user_id_attribute")

    @user_id_attribute.setter
    def user_id_attribute(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "user_id_attribute", value)

    @property
    @pulumi.getter(name="userinfoEndpoint")
    def userinfo_endpoint(self) -> Optional[pulumi.Input[str]]:
        """
        User info endpoint.
        """
        return pulumi.get(self, "userinfo_endpoint")

    @userinfo_endpoint.setter
    def userinfo_endpoint(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "userinfo_endpoint", value)

    @property
    @pulumi.getter
    def validation(self) -> Optional[pulumi.Input['ConnectionOptionsValidationArgs']]:
        """
        Validation of the minimum and maximum values allowed for a user to have as username.
        """
        return pulumi.get(self, "validation")

    @validation.setter
    def validation(self, value: Optional[pulumi.Input['ConnectionOptionsValidationArgs']]):
        pulumi.set(self, "validation", value)

    @property
    @pulumi.getter(name="waadCommonEndpoint")
    def waad_common_endpoint(self) -> Optional[pulumi.Input[bool]]:
        """
        Indicates whether to use the common endpoint rather than the default endpoint. Typically enabled if you're using this for a multi-tenant application in Azure AD.
        """
        return pulumi.get(self, "waad_common_endpoint")

    @waad_common_endpoint.setter
    def waad_common_endpoint(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "waad_common_endpoint", value)

    @property
    @pulumi.getter(name="waadProtocol")
    def waad_protocol(self) -> Optional[pulumi.Input[str]]:
        """
        Protocol to use.
        """
        return pulumi.get(self, "waad_protocol")

    @waad_protocol.setter
    def waad_protocol(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "waad_protocol", value)


@pulumi.input_type
class ConnectionOptionsGatewayAuthenticationArgs:
    def __init__(__self__, *,
                 audience: Optional[pulumi.Input[str]] = None,
                 method: Optional[pulumi.Input[str]] = None,
                 secret: Optional[pulumi.Input[str]] = None,
                 secret_base64_encoded: Optional[pulumi.Input[bool]] = None,
                 subject: Optional[pulumi.Input[str]] = None):
        if audience is not None:
            pulumi.set(__self__, "audience", audience)
        if method is not None:
            pulumi.set(__self__, "method", method)
        if secret is not None:
            pulumi.set(__self__, "secret", secret)
        if secret_base64_encoded is not None:
            pulumi.set(__self__, "secret_base64_encoded", secret_base64_encoded)
        if subject is not None:
            pulumi.set(__self__, "subject", subject)

    @property
    @pulumi.getter
    def audience(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "audience")

    @audience.setter
    def audience(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "audience", value)

    @property
    @pulumi.getter
    def method(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "method")

    @method.setter
    def method(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "method", value)

    @property
    @pulumi.getter
    def secret(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "secret")

    @secret.setter
    def secret(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "secret", value)

    @property
    @pulumi.getter(name="secretBase64Encoded")
    def secret_base64_encoded(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "secret_base64_encoded")

    @secret_base64_encoded.setter
    def secret_base64_encoded(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "secret_base64_encoded", value)

    @property
    @pulumi.getter
    def subject(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "subject")

    @subject.setter
    def subject(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "subject", value)


@pulumi.input_type
class ConnectionOptionsIdpInitiatedArgs:
    def __init__(__self__, *,
                 client_authorize_query: Optional[pulumi.Input[str]] = None,
                 client_id: Optional[pulumi.Input[str]] = None,
                 client_protocol: Optional[pulumi.Input[str]] = None):
        if client_authorize_query is not None:
            pulumi.set(__self__, "client_authorize_query", client_authorize_query)
        if client_id is not None:
            pulumi.set(__self__, "client_id", client_id)
        if client_protocol is not None:
            pulumi.set(__self__, "client_protocol", client_protocol)

    @property
    @pulumi.getter(name="clientAuthorizeQuery")
    def client_authorize_query(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "client_authorize_query")

    @client_authorize_query.setter
    def client_authorize_query(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "client_authorize_query", value)

    @property
    @pulumi.getter(name="clientId")
    def client_id(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "client_id")

    @client_id.setter
    def client_id(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "client_id", value)

    @property
    @pulumi.getter(name="clientProtocol")
    def client_protocol(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "client_protocol")

    @client_protocol.setter
    def client_protocol(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "client_protocol", value)


@pulumi.input_type
class ConnectionOptionsMfaArgs:
    def __init__(__self__, *,
                 active: Optional[pulumi.Input[bool]] = None,
                 return_enroll_settings: Optional[pulumi.Input[bool]] = None):
        if active is not None:
            pulumi.set(__self__, "active", active)
        if return_enroll_settings is not None:
            pulumi.set(__self__, "return_enroll_settings", return_enroll_settings)

    @property
    @pulumi.getter
    def active(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "active")

    @active.setter
    def active(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "active", value)

    @property
    @pulumi.getter(name="returnEnrollSettings")
    def return_enroll_settings(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "return_enroll_settings")

    @return_enroll_settings.setter
    def return_enroll_settings(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "return_enroll_settings", value)


@pulumi.input_type
class ConnectionOptionsPasswordComplexityOptionsArgs:
    def __init__(__self__, *,
                 min_length: Optional[pulumi.Input[int]] = None):
        if min_length is not None:
            pulumi.set(__self__, "min_length", min_length)

    @property
    @pulumi.getter(name="minLength")
    def min_length(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "min_length")

    @min_length.setter
    def min_length(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "min_length", value)


@pulumi.input_type
class ConnectionOptionsPasswordDictionaryArgs:
    def __init__(__self__, *,
                 dictionaries: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 enable: Optional[pulumi.Input[bool]] = None):
        if dictionaries is not None:
            pulumi.set(__self__, "dictionaries", dictionaries)
        if enable is not None:
            pulumi.set(__self__, "enable", enable)

    @property
    @pulumi.getter
    def dictionaries(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        return pulumi.get(self, "dictionaries")

    @dictionaries.setter
    def dictionaries(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "dictionaries", value)

    @property
    @pulumi.getter
    def enable(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "enable")

    @enable.setter
    def enable(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enable", value)


@pulumi.input_type
class ConnectionOptionsPasswordHistoryArgs:
    def __init__(__self__, *,
                 enable: Optional[pulumi.Input[bool]] = None,
                 size: Optional[pulumi.Input[int]] = None):
        if enable is not None:
            pulumi.set(__self__, "enable", enable)
        if size is not None:
            pulumi.set(__self__, "size", size)

    @property
    @pulumi.getter
    def enable(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "enable")

    @enable.setter
    def enable(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enable", value)

    @property
    @pulumi.getter
    def size(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "size")

    @size.setter
    def size(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "size", value)


@pulumi.input_type
class ConnectionOptionsPasswordNoPersonalInfoArgs:
    def __init__(__self__, *,
                 enable: Optional[pulumi.Input[bool]] = None):
        if enable is not None:
            pulumi.set(__self__, "enable", enable)

    @property
    @pulumi.getter
    def enable(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "enable")

    @enable.setter
    def enable(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enable", value)


@pulumi.input_type
class ConnectionOptionsSigningKeyArgs:
    def __init__(__self__, *,
                 cert: pulumi.Input[str],
                 key: pulumi.Input[str]):
        pulumi.set(__self__, "cert", cert)
        pulumi.set(__self__, "key", key)

    @property
    @pulumi.getter
    def cert(self) -> pulumi.Input[str]:
        return pulumi.get(self, "cert")

    @cert.setter
    def cert(self, value: pulumi.Input[str]):
        pulumi.set(self, "cert", value)

    @property
    @pulumi.getter
    def key(self) -> pulumi.Input[str]:
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[str]):
        pulumi.set(self, "key", value)


@pulumi.input_type
class ConnectionOptionsTotpArgs:
    def __init__(__self__, *,
                 length: Optional[pulumi.Input[int]] = None,
                 time_step: Optional[pulumi.Input[int]] = None):
        if length is not None:
            pulumi.set(__self__, "length", length)
        if time_step is not None:
            pulumi.set(__self__, "time_step", time_step)

    @property
    @pulumi.getter
    def length(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "length")

    @length.setter
    def length(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "length", value)

    @property
    @pulumi.getter(name="timeStep")
    def time_step(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "time_step")

    @time_step.setter
    def time_step(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "time_step", value)


@pulumi.input_type
class ConnectionOptionsValidationArgs:
    def __init__(__self__, *,
                 username: Optional[pulumi.Input['ConnectionOptionsValidationUsernameArgs']] = None):
        if username is not None:
            pulumi.set(__self__, "username", username)

    @property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input['ConnectionOptionsValidationUsernameArgs']]:
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input['ConnectionOptionsValidationUsernameArgs']]):
        pulumi.set(self, "username", value)


@pulumi.input_type
class ConnectionOptionsValidationUsernameArgs:
    def __init__(__self__, *,
                 max: Optional[pulumi.Input[int]] = None,
                 min: Optional[pulumi.Input[int]] = None):
        if max is not None:
            pulumi.set(__self__, "max", max)
        if min is not None:
            pulumi.set(__self__, "min", min)

    @property
    @pulumi.getter
    def max(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "max")

    @max.setter
    def max(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "max", value)

    @property
    @pulumi.getter
    def min(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "min")

    @min.setter
    def min(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "min", value)


@pulumi.input_type
class CustomDomainVerificationArgs:
    def __init__(__self__, *,
                 methods: Optional[pulumi.Input[Sequence[Any]]] = None):
        if methods is not None:
            pulumi.set(__self__, "methods", methods)

    @property
    @pulumi.getter
    def methods(self) -> Optional[pulumi.Input[Sequence[Any]]]:
        return pulumi.get(self, "methods")

    @methods.setter
    def methods(self, value: Optional[pulumi.Input[Sequence[Any]]]):
        pulumi.set(self, "methods", value)


@pulumi.input_type
class EmailCredentialsArgs:
    def __init__(__self__, *,
                 access_key_id: Optional[pulumi.Input[str]] = None,
                 api_key: Optional[pulumi.Input[str]] = None,
                 api_user: Optional[pulumi.Input[str]] = None,
                 domain: Optional[pulumi.Input[str]] = None,
                 region: Optional[pulumi.Input[str]] = None,
                 secret_access_key: Optional[pulumi.Input[str]] = None,
                 smtp_host: Optional[pulumi.Input[str]] = None,
                 smtp_pass: Optional[pulumi.Input[str]] = None,
                 smtp_port: Optional[pulumi.Input[int]] = None,
                 smtp_user: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] access_key_id: AWS Access Key ID. Used only for AWS.
        :param pulumi.Input[str] api_key: API Key for your email service. Will always be encrypted in our database.
        :param pulumi.Input[str] api_user: API User for your email service. This field is not accepted by the API any more so it will be removed in a future major version.
        :param pulumi.Input[str] domain: Domain name.
        :param pulumi.Input[str] region: Default region. Used only for AWS, Mailgun, and SparkPost.
        :param pulumi.Input[str] secret_access_key: AWS Secret Key. Will always be encrypted in our database. Used only for AWS.
        :param pulumi.Input[str] smtp_host: Hostname or IP address of your SMTP server. Used only for SMTP.
        :param pulumi.Input[str] smtp_pass: SMTP password. Used only for SMTP.
        :param pulumi.Input[int] smtp_port: Port used by your SMTP server. Please avoid using port 25 if possible because many providers have limitations on this port. Used only for SMTP.
        :param pulumi.Input[str] smtp_user: SMTP username. Used only for SMTP.
        """
        if access_key_id is not None:
            pulumi.set(__self__, "access_key_id", access_key_id)
        if api_key is not None:
            pulumi.set(__self__, "api_key", api_key)
        if api_user is not None:
            warnings.warn("""This field is not accepted by the API any more so it will be removed soon.""", DeprecationWarning)
            pulumi.log.warn("""api_user is deprecated: This field is not accepted by the API any more so it will be removed soon.""")
        if api_user is not None:
            pulumi.set(__self__, "api_user", api_user)
        if domain is not None:
            pulumi.set(__self__, "domain", domain)
        if region is not None:
            pulumi.set(__self__, "region", region)
        if secret_access_key is not None:
            pulumi.set(__self__, "secret_access_key", secret_access_key)
        if smtp_host is not None:
            pulumi.set(__self__, "smtp_host", smtp_host)
        if smtp_pass is not None:
            pulumi.set(__self__, "smtp_pass", smtp_pass)
        if smtp_port is not None:
            pulumi.set(__self__, "smtp_port", smtp_port)
        if smtp_user is not None:
            pulumi.set(__self__, "smtp_user", smtp_user)

    @property
    @pulumi.getter(name="accessKeyId")
    def access_key_id(self) -> Optional[pulumi.Input[str]]:
        """
        AWS Access Key ID. Used only for AWS.
        """
        return pulumi.get(self, "access_key_id")

    @access_key_id.setter
    def access_key_id(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "access_key_id", value)

    @property
    @pulumi.getter(name="apiKey")
    def api_key(self) -> Optional[pulumi.Input[str]]:
        """
        API Key for your email service. Will always be encrypted in our database.
        """
        return pulumi.get(self, "api_key")

    @api_key.setter
    def api_key(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "api_key", value)

    @property
    @pulumi.getter(name="apiUser")
    def api_user(self) -> Optional[pulumi.Input[str]]:
        """
        API User for your email service. This field is not accepted by the API any more so it will be removed in a future major version.
        """
        warnings.warn("""This field is not accepted by the API any more so it will be removed soon.""", DeprecationWarning)
        pulumi.log.warn("""api_user is deprecated: This field is not accepted by the API any more so it will be removed soon.""")

        return pulumi.get(self, "api_user")

    @api_user.setter
    def api_user(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "api_user", value)

    @property
    @pulumi.getter
    def domain(self) -> Optional[pulumi.Input[str]]:
        """
        Domain name.
        """
        return pulumi.get(self, "domain")

    @domain.setter
    def domain(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "domain", value)

    @property
    @pulumi.getter
    def region(self) -> Optional[pulumi.Input[str]]:
        """
        Default region. Used only for AWS, Mailgun, and SparkPost.
        """
        return pulumi.get(self, "region")

    @region.setter
    def region(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "region", value)

    @property
    @pulumi.getter(name="secretAccessKey")
    def secret_access_key(self) -> Optional[pulumi.Input[str]]:
        """
        AWS Secret Key. Will always be encrypted in our database. Used only for AWS.
        """
        return pulumi.get(self, "secret_access_key")

    @secret_access_key.setter
    def secret_access_key(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "secret_access_key", value)

    @property
    @pulumi.getter(name="smtpHost")
    def smtp_host(self) -> Optional[pulumi.Input[str]]:
        """
        Hostname or IP address of your SMTP server. Used only for SMTP.
        """
        return pulumi.get(self, "smtp_host")

    @smtp_host.setter
    def smtp_host(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "smtp_host", value)

    @property
    @pulumi.getter(name="smtpPass")
    def smtp_pass(self) -> Optional[pulumi.Input[str]]:
        """
        SMTP password. Used only for SMTP.
        """
        return pulumi.get(self, "smtp_pass")

    @smtp_pass.setter
    def smtp_pass(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "smtp_pass", value)

    @property
    @pulumi.getter(name="smtpPort")
    def smtp_port(self) -> Optional[pulumi.Input[int]]:
        """
        Port used by your SMTP server. Please avoid using port 25 if possible because many providers have limitations on this port. Used only for SMTP.
        """
        return pulumi.get(self, "smtp_port")

    @smtp_port.setter
    def smtp_port(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "smtp_port", value)

    @property
    @pulumi.getter(name="smtpUser")
    def smtp_user(self) -> Optional[pulumi.Input[str]]:
        """
        SMTP username. Used only for SMTP.
        """
        return pulumi.get(self, "smtp_user")

    @smtp_user.setter
    def smtp_user(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "smtp_user", value)


@pulumi.input_type
class EmailSettingsArgs:
    def __init__(__self__, *,
                 headers: Optional[pulumi.Input['EmailSettingsHeadersArgs']] = None,
                 message: Optional[pulumi.Input['EmailSettingsMessageArgs']] = None):
        """
        :param pulumi.Input['EmailSettingsHeadersArgs'] headers: Headers settings for the `smtp` email provider.
        :param pulumi.Input['EmailSettingsMessageArgs'] message: Message settings for the `mandrill` or `ses` email provider.
        """
        if headers is not None:
            pulumi.set(__self__, "headers", headers)
        if message is not None:
            pulumi.set(__self__, "message", message)

    @property
    @pulumi.getter
    def headers(self) -> Optional[pulumi.Input['EmailSettingsHeadersArgs']]:
        """
        Headers settings for the `smtp` email provider.
        """
        return pulumi.get(self, "headers")

    @headers.setter
    def headers(self, value: Optional[pulumi.Input['EmailSettingsHeadersArgs']]):
        pulumi.set(self, "headers", value)

    @property
    @pulumi.getter
    def message(self) -> Optional[pulumi.Input['EmailSettingsMessageArgs']]:
        """
        Message settings for the `mandrill` or `ses` email provider.
        """
        return pulumi.get(self, "message")

    @message.setter
    def message(self, value: Optional[pulumi.Input['EmailSettingsMessageArgs']]):
        pulumi.set(self, "message", value)


@pulumi.input_type
class EmailSettingsHeadersArgs:
    def __init__(__self__, *,
                 x_mc_view_content_link: Optional[pulumi.Input[str]] = None,
                 x_ses_configuration_set: Optional[pulumi.Input[str]] = None):
        if x_mc_view_content_link is not None:
            pulumi.set(__self__, "x_mc_view_content_link", x_mc_view_content_link)
        if x_ses_configuration_set is not None:
            pulumi.set(__self__, "x_ses_configuration_set", x_ses_configuration_set)

    @property
    @pulumi.getter(name="xMcViewContentLink")
    def x_mc_view_content_link(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "x_mc_view_content_link")

    @x_mc_view_content_link.setter
    def x_mc_view_content_link(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "x_mc_view_content_link", value)

    @property
    @pulumi.getter(name="xSesConfigurationSet")
    def x_ses_configuration_set(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "x_ses_configuration_set")

    @x_ses_configuration_set.setter
    def x_ses_configuration_set(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "x_ses_configuration_set", value)


@pulumi.input_type
class EmailSettingsMessageArgs:
    def __init__(__self__, *,
                 configuration_set_name: Optional[pulumi.Input[str]] = None,
                 view_content_link: Optional[pulumi.Input[bool]] = None):
        if configuration_set_name is not None:
            pulumi.set(__self__, "configuration_set_name", configuration_set_name)
        if view_content_link is not None:
            pulumi.set(__self__, "view_content_link", view_content_link)

    @property
    @pulumi.getter(name="configurationSetName")
    def configuration_set_name(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "configuration_set_name")

    @configuration_set_name.setter
    def configuration_set_name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "configuration_set_name", value)

    @property
    @pulumi.getter(name="viewContentLink")
    def view_content_link(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "view_content_link")

    @view_content_link.setter
    def view_content_link(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "view_content_link", value)


@pulumi.input_type
class GlobalClientAddonsArgs:
    def __init__(__self__, *,
                 aws: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 azure_blob: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 azure_sb: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 box: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 cloudbees: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 concur: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 dropbox: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 echosign: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 egnyte: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 firebase: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 layer: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 mscrm: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 newrelic: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 office365: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 rms: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 salesforce: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 salesforce_api: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 salesforce_sandbox_api: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 samlp: Optional[pulumi.Input['GlobalClientAddonsSamlpArgs']] = None,
                 sap_api: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 sentry: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 sharepoint: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 slack: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 springcm: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 wams: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 wsfed: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 zendesk: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 zoom: Optional[pulumi.Input[Mapping[str, Any]]] = None):
        """
        :param pulumi.Input['GlobalClientAddonsSamlpArgs'] samlp: Configuration settings for a SAML add-on.
        :param pulumi.Input[Mapping[str, Any]] wsfed: WS-Fed (WIF) addon indicator. Actual configuration is stored in callback and `client_aliases` properties on the client.
        """
        if aws is not None:
            pulumi.set(__self__, "aws", aws)
        if azure_blob is not None:
            pulumi.set(__self__, "azure_blob", azure_blob)
        if azure_sb is not None:
            pulumi.set(__self__, "azure_sb", azure_sb)
        if box is not None:
            pulumi.set(__self__, "box", box)
        if cloudbees is not None:
            pulumi.set(__self__, "cloudbees", cloudbees)
        if concur is not None:
            pulumi.set(__self__, "concur", concur)
        if dropbox is not None:
            pulumi.set(__self__, "dropbox", dropbox)
        if echosign is not None:
            pulumi.set(__self__, "echosign", echosign)
        if egnyte is not None:
            pulumi.set(__self__, "egnyte", egnyte)
        if firebase is not None:
            pulumi.set(__self__, "firebase", firebase)
        if layer is not None:
            pulumi.set(__self__, "layer", layer)
        if mscrm is not None:
            pulumi.set(__self__, "mscrm", mscrm)
        if newrelic is not None:
            pulumi.set(__self__, "newrelic", newrelic)
        if office365 is not None:
            pulumi.set(__self__, "office365", office365)
        if rms is not None:
            pulumi.set(__self__, "rms", rms)
        if salesforce is not None:
            pulumi.set(__self__, "salesforce", salesforce)
        if salesforce_api is not None:
            pulumi.set(__self__, "salesforce_api", salesforce_api)
        if salesforce_sandbox_api is not None:
            pulumi.set(__self__, "salesforce_sandbox_api", salesforce_sandbox_api)
        if samlp is not None:
            pulumi.set(__self__, "samlp", samlp)
        if sap_api is not None:
            pulumi.set(__self__, "sap_api", sap_api)
        if sentry is not None:
            pulumi.set(__self__, "sentry", sentry)
        if sharepoint is not None:
            pulumi.set(__self__, "sharepoint", sharepoint)
        if slack is not None:
            pulumi.set(__self__, "slack", slack)
        if springcm is not None:
            pulumi.set(__self__, "springcm", springcm)
        if wams is not None:
            pulumi.set(__self__, "wams", wams)
        if wsfed is not None:
            pulumi.set(__self__, "wsfed", wsfed)
        if zendesk is not None:
            pulumi.set(__self__, "zendesk", zendesk)
        if zoom is not None:
            pulumi.set(__self__, "zoom", zoom)

    @property
    @pulumi.getter
    def aws(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "aws")

    @aws.setter
    def aws(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "aws", value)

    @property
    @pulumi.getter(name="azureBlob")
    def azure_blob(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "azure_blob")

    @azure_blob.setter
    def azure_blob(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "azure_blob", value)

    @property
    @pulumi.getter(name="azureSb")
    def azure_sb(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "azure_sb")

    @azure_sb.setter
    def azure_sb(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "azure_sb", value)

    @property
    @pulumi.getter
    def box(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "box")

    @box.setter
    def box(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "box", value)

    @property
    @pulumi.getter
    def cloudbees(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "cloudbees")

    @cloudbees.setter
    def cloudbees(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "cloudbees", value)

    @property
    @pulumi.getter
    def concur(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "concur")

    @concur.setter
    def concur(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "concur", value)

    @property
    @pulumi.getter
    def dropbox(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "dropbox")

    @dropbox.setter
    def dropbox(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "dropbox", value)

    @property
    @pulumi.getter
    def echosign(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "echosign")

    @echosign.setter
    def echosign(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "echosign", value)

    @property
    @pulumi.getter
    def egnyte(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "egnyte")

    @egnyte.setter
    def egnyte(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "egnyte", value)

    @property
    @pulumi.getter
    def firebase(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "firebase")

    @firebase.setter
    def firebase(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "firebase", value)

    @property
    @pulumi.getter
    def layer(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "layer")

    @layer.setter
    def layer(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "layer", value)

    @property
    @pulumi.getter
    def mscrm(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "mscrm")

    @mscrm.setter
    def mscrm(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "mscrm", value)

    @property
    @pulumi.getter
    def newrelic(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "newrelic")

    @newrelic.setter
    def newrelic(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "newrelic", value)

    @property
    @pulumi.getter
    def office365(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "office365")

    @office365.setter
    def office365(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "office365", value)

    @property
    @pulumi.getter
    def rms(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "rms")

    @rms.setter
    def rms(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "rms", value)

    @property
    @pulumi.getter
    def salesforce(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "salesforce")

    @salesforce.setter
    def salesforce(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "salesforce", value)

    @property
    @pulumi.getter(name="salesforceApi")
    def salesforce_api(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "salesforce_api")

    @salesforce_api.setter
    def salesforce_api(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "salesforce_api", value)

    @property
    @pulumi.getter(name="salesforceSandboxApi")
    def salesforce_sandbox_api(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "salesforce_sandbox_api")

    @salesforce_sandbox_api.setter
    def salesforce_sandbox_api(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "salesforce_sandbox_api", value)

    @property
    @pulumi.getter
    def samlp(self) -> Optional[pulumi.Input['GlobalClientAddonsSamlpArgs']]:
        """
        Configuration settings for a SAML add-on.
        """
        return pulumi.get(self, "samlp")

    @samlp.setter
    def samlp(self, value: Optional[pulumi.Input['GlobalClientAddonsSamlpArgs']]):
        pulumi.set(self, "samlp", value)

    @property
    @pulumi.getter(name="sapApi")
    def sap_api(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "sap_api")

    @sap_api.setter
    def sap_api(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "sap_api", value)

    @property
    @pulumi.getter
    def sentry(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "sentry")

    @sentry.setter
    def sentry(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "sentry", value)

    @property
    @pulumi.getter
    def sharepoint(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "sharepoint")

    @sharepoint.setter
    def sharepoint(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "sharepoint", value)

    @property
    @pulumi.getter
    def slack(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "slack")

    @slack.setter
    def slack(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "slack", value)

    @property
    @pulumi.getter
    def springcm(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "springcm")

    @springcm.setter
    def springcm(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "springcm", value)

    @property
    @pulumi.getter
    def wams(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "wams")

    @wams.setter
    def wams(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "wams", value)

    @property
    @pulumi.getter
    def wsfed(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        """
        WS-Fed (WIF) addon indicator. Actual configuration is stored in callback and `client_aliases` properties on the client.
        """
        return pulumi.get(self, "wsfed")

    @wsfed.setter
    def wsfed(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "wsfed", value)

    @property
    @pulumi.getter
    def zendesk(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "zendesk")

    @zendesk.setter
    def zendesk(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "zendesk", value)

    @property
    @pulumi.getter
    def zoom(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "zoom")

    @zoom.setter
    def zoom(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "zoom", value)


@pulumi.input_type
class GlobalClientAddonsSamlpArgs:
    def __init__(__self__, *,
                 audience: Optional[pulumi.Input[str]] = None,
                 authn_context_class_ref: Optional[pulumi.Input[str]] = None,
                 binding: Optional[pulumi.Input[str]] = None,
                 create_upn_claim: Optional[pulumi.Input[bool]] = None,
                 destination: Optional[pulumi.Input[str]] = None,
                 digest_algorithm: Optional[pulumi.Input[str]] = None,
                 include_attribute_name_format: Optional[pulumi.Input[bool]] = None,
                 issuer: Optional[pulumi.Input[str]] = None,
                 lifetime_in_seconds: Optional[pulumi.Input[int]] = None,
                 logout: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 map_identities: Optional[pulumi.Input[bool]] = None,
                 map_unknown_claims_as_is: Optional[pulumi.Input[bool]] = None,
                 mappings: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 name_identifier_format: Optional[pulumi.Input[str]] = None,
                 name_identifier_probes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 passthrough_claims_with_no_mapping: Optional[pulumi.Input[bool]] = None,
                 recipient: Optional[pulumi.Input[str]] = None,
                 sign_response: Optional[pulumi.Input[bool]] = None,
                 signature_algorithm: Optional[pulumi.Input[str]] = None,
                 signing_cert: Optional[pulumi.Input[str]] = None,
                 typed_attributes: Optional[pulumi.Input[bool]] = None):
        if audience is not None:
            pulumi.set(__self__, "audience", audience)
        if authn_context_class_ref is not None:
            pulumi.set(__self__, "authn_context_class_ref", authn_context_class_ref)
        if binding is not None:
            pulumi.set(__self__, "binding", binding)
        if create_upn_claim is not None:
            pulumi.set(__self__, "create_upn_claim", create_upn_claim)
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if digest_algorithm is not None:
            pulumi.set(__self__, "digest_algorithm", digest_algorithm)
        if include_attribute_name_format is not None:
            pulumi.set(__self__, "include_attribute_name_format", include_attribute_name_format)
        if issuer is not None:
            pulumi.set(__self__, "issuer", issuer)
        if lifetime_in_seconds is not None:
            pulumi.set(__self__, "lifetime_in_seconds", lifetime_in_seconds)
        if logout is not None:
            pulumi.set(__self__, "logout", logout)
        if map_identities is not None:
            pulumi.set(__self__, "map_identities", map_identities)
        if map_unknown_claims_as_is is not None:
            pulumi.set(__self__, "map_unknown_claims_as_is", map_unknown_claims_as_is)
        if mappings is not None:
            pulumi.set(__self__, "mappings", mappings)
        if name_identifier_format is not None:
            pulumi.set(__self__, "name_identifier_format", name_identifier_format)
        if name_identifier_probes is not None:
            pulumi.set(__self__, "name_identifier_probes", name_identifier_probes)
        if passthrough_claims_with_no_mapping is not None:
            pulumi.set(__self__, "passthrough_claims_with_no_mapping", passthrough_claims_with_no_mapping)
        if recipient is not None:
            pulumi.set(__self__, "recipient", recipient)
        if sign_response is not None:
            pulumi.set(__self__, "sign_response", sign_response)
        if signature_algorithm is not None:
            pulumi.set(__self__, "signature_algorithm", signature_algorithm)
        if signing_cert is not None:
            pulumi.set(__self__, "signing_cert", signing_cert)
        if typed_attributes is not None:
            pulumi.set(__self__, "typed_attributes", typed_attributes)

    @property
    @pulumi.getter
    def audience(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "audience")

    @audience.setter
    def audience(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "audience", value)

    @property
    @pulumi.getter(name="authnContextClassRef")
    def authn_context_class_ref(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "authn_context_class_ref")

    @authn_context_class_ref.setter
    def authn_context_class_ref(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "authn_context_class_ref", value)

    @property
    @pulumi.getter
    def binding(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "binding")

    @binding.setter
    def binding(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "binding", value)

    @property
    @pulumi.getter(name="createUpnClaim")
    def create_upn_claim(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "create_upn_claim")

    @create_upn_claim.setter
    def create_upn_claim(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "create_upn_claim", value)

    @property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "destination", value)

    @property
    @pulumi.getter(name="digestAlgorithm")
    def digest_algorithm(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "digest_algorithm")

    @digest_algorithm.setter
    def digest_algorithm(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "digest_algorithm", value)

    @property
    @pulumi.getter(name="includeAttributeNameFormat")
    def include_attribute_name_format(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "include_attribute_name_format")

    @include_attribute_name_format.setter
    def include_attribute_name_format(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "include_attribute_name_format", value)

    @property
    @pulumi.getter
    def issuer(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "issuer")

    @issuer.setter
    def issuer(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "issuer", value)

    @property
    @pulumi.getter(name="lifetimeInSeconds")
    def lifetime_in_seconds(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "lifetime_in_seconds")

    @lifetime_in_seconds.setter
    def lifetime_in_seconds(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "lifetime_in_seconds", value)

    @property
    @pulumi.getter
    def logout(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "logout")

    @logout.setter
    def logout(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "logout", value)

    @property
    @pulumi.getter(name="mapIdentities")
    def map_identities(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "map_identities")

    @map_identities.setter
    def map_identities(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "map_identities", value)

    @property
    @pulumi.getter(name="mapUnknownClaimsAsIs")
    def map_unknown_claims_as_is(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "map_unknown_claims_as_is")

    @map_unknown_claims_as_is.setter
    def map_unknown_claims_as_is(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "map_unknown_claims_as_is", value)

    @property
    @pulumi.getter
    def mappings(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        return pulumi.get(self, "mappings")

    @mappings.setter
    def mappings(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "mappings", value)

    @property
    @pulumi.getter(name="nameIdentifierFormat")
    def name_identifier_format(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "name_identifier_format")

    @name_identifier_format.setter
    def name_identifier_format(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "name_identifier_format", value)

    @property
    @pulumi.getter(name="nameIdentifierProbes")
    def name_identifier_probes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        return pulumi.get(self, "name_identifier_probes")

    @name_identifier_probes.setter
    def name_identifier_probes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "name_identifier_probes", value)

    @property
    @pulumi.getter(name="passthroughClaimsWithNoMapping")
    def passthrough_claims_with_no_mapping(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "passthrough_claims_with_no_mapping")

    @passthrough_claims_with_no_mapping.setter
    def passthrough_claims_with_no_mapping(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "passthrough_claims_with_no_mapping", value)

    @property
    @pulumi.getter
    def recipient(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "recipient")

    @recipient.setter
    def recipient(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "recipient", value)

    @property
    @pulumi.getter(name="signResponse")
    def sign_response(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "sign_response")

    @sign_response.setter
    def sign_response(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "sign_response", value)

    @property
    @pulumi.getter(name="signatureAlgorithm")
    def signature_algorithm(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "signature_algorithm")

    @signature_algorithm.setter
    def signature_algorithm(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "signature_algorithm", value)

    @property
    @pulumi.getter(name="signingCert")
    def signing_cert(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "signing_cert")

    @signing_cert.setter
    def signing_cert(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "signing_cert", value)

    @property
    @pulumi.getter(name="typedAttributes")
    def typed_attributes(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "typed_attributes")

    @typed_attributes.setter
    def typed_attributes(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "typed_attributes", value)


@pulumi.input_type
class GlobalClientJwtConfigurationArgs:
    def __init__(__self__, *,
                 alg: Optional[pulumi.Input[str]] = None,
                 lifetime_in_seconds: Optional[pulumi.Input[int]] = None,
                 scopes: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                 secret_encoded: Optional[pulumi.Input[bool]] = None):
        """
        :param pulumi.Input[str] alg: Algorithm used to sign JWTs.
        :param pulumi.Input[int] lifetime_in_seconds: Number of seconds during which the JWT will be valid.
        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] scopes: Permissions (scopes) included in JWTs.
        :param pulumi.Input[bool] secret_encoded: Indicates whether the client secret is Base64-encoded.
        """
        if alg is not None:
            pulumi.set(__self__, "alg", alg)
        if lifetime_in_seconds is not None:
            pulumi.set(__self__, "lifetime_in_seconds", lifetime_in_seconds)
        if scopes is not None:
            pulumi.set(__self__, "scopes", scopes)
        if secret_encoded is not None:
            pulumi.set(__self__, "secret_encoded", secret_encoded)

    @property
    @pulumi.getter
    def alg(self) -> Optional[pulumi.Input[str]]:
        """
        Algorithm used to sign JWTs.
        """
        return pulumi.get(self, "alg")

    @alg.setter
    def alg(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "alg", value)

    @property
    @pulumi.getter(name="lifetimeInSeconds")
    def lifetime_in_seconds(self) -> Optional[pulumi.Input[int]]:
        """
        Number of seconds during which the JWT will be valid.
        """
        return pulumi.get(self, "lifetime_in_seconds")

    @lifetime_in_seconds.setter
    def lifetime_in_seconds(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "lifetime_in_seconds", value)

    @property
    @pulumi.getter
    def scopes(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
        """
        Permissions (scopes) included in JWTs.
        """
        return pulumi.get(self, "scopes")

    @scopes.setter
    def scopes(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
        pulumi.set(self, "scopes", value)

    @property
    @pulumi.getter(name="secretEncoded")
    def secret_encoded(self) -> Optional[pulumi.Input[bool]]:
        """
        Indicates whether the client secret is Base64-encoded.
        """
        return pulumi.get(self, "secret_encoded")

    @secret_encoded.setter
    def secret_encoded(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "secret_encoded", value)


@pulumi.input_type
class GlobalClientMobileArgs:
    def __init__(__self__, *,
                 android: Optional[pulumi.Input['GlobalClientMobileAndroidArgs']] = None,
                 ios: Optional[pulumi.Input['GlobalClientMobileIosArgs']] = None):
        """
        :param pulumi.Input['GlobalClientMobileAndroidArgs'] android: Configuration settings for Android native apps.
        :param pulumi.Input['GlobalClientMobileIosArgs'] ios: Configuration settings for i0S native apps.
        """
        if android is not None:
            pulumi.set(__self__, "android", android)
        if ios is not None:
            pulumi.set(__self__, "ios", ios)

    @property
    @pulumi.getter
    def android(self) -> Optional[pulumi.Input['GlobalClientMobileAndroidArgs']]:
        """
        Configuration settings for Android native apps.
        """
        return pulumi.get(self, "android")

    @android.setter
    def android(self, value: Optional[pulumi.Input['GlobalClientMobileAndroidArgs']]):
        pulumi.set(self, "android", value)

    @property
    @pulumi.getter
    def ios(self) -> Optional[pulumi.Input['GlobalClientMobileIosArgs']]:
        """
        Configuration settings for i0S native apps.
        """
        return pulumi.get(self, "ios")

    @ios.setter
    def ios(self, value: Optional[pulumi.Input['GlobalClientMobileIosArgs']]):
        pulumi.set(self, "ios", value)


@pulumi.input_type
class GlobalClientMobileAndroidArgs:
    def __init__(__self__, *,
                 app_package_name: Optional[pulumi.Input[str]] = None,
                 sha256_cert_fingerprints: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
        if app_package_name is not None:
            pulumi.set(__self__, "app_package_name", app_package_name)
        if sha256_cert_fingerprints is not None:
            pulumi.set(__self__, "sha256_cert_fingerprints", sha256_cert_fingerprints)

    @property
    @pulumi.getter(name="appPackageName")
    def app_package_name(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "app_package_name")

    @app_package_name.setter
    def app_package_name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "app_package_name", value)

    @property
    @pulumi.getter(name="sha256CertFingerprints")
    def sha256_cert_fingerprints(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        return pulumi.get(self, "sha256_cert_fingerprints")

    @sha256_cert_fingerprints.setter
    def sha256_cert_fingerprints(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "sha256_cert_fingerprints", value)


@pulumi.input_type
class GlobalClientMobileIosArgs:
    def __init__(__self__, *,
                 app_bundle_identifier: Optional[pulumi.Input[str]] = None,
                 team_id: Optional[pulumi.Input[str]] = None):
        if app_bundle_identifier is not None:
            pulumi.set(__self__, "app_bundle_identifier", app_bundle_identifier)
        if team_id is not None:
            pulumi.set(__self__, "team_id", team_id)

    @property
    @pulumi.getter(name="appBundleIdentifier")
    def app_bundle_identifier(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "app_bundle_identifier")

    @app_bundle_identifier.setter
    def app_bundle_identifier(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "app_bundle_identifier", value)

    @property
    @pulumi.getter(name="teamId")
    def team_id(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "team_id")

    @team_id.setter
    def team_id(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "team_id", value)


@pulumi.input_type
class GlobalClientNativeSocialLoginArgs:
    def __init__(__self__, *,
                 apple: Optional[pulumi.Input['GlobalClientNativeSocialLoginAppleArgs']] = None,
                 facebook: Optional[pulumi.Input['GlobalClientNativeSocialLoginFacebookArgs']] = None):
        if apple is not None:
            pulumi.set(__self__, "apple", apple)
        if facebook is not None:
            pulumi.set(__self__, "facebook", facebook)

    @property
    @pulumi.getter
    def apple(self) -> Optional[pulumi.Input['GlobalClientNativeSocialLoginAppleArgs']]:
        return pulumi.get(self, "apple")

    @apple.setter
    def apple(self, value: Optional[pulumi.Input['GlobalClientNativeSocialLoginAppleArgs']]):
        pulumi.set(self, "apple", value)

    @property
    @pulumi.getter
    def facebook(self) -> Optional[pulumi.Input['GlobalClientNativeSocialLoginFacebookArgs']]:
        return pulumi.get(self, "facebook")

    @facebook.setter
    def facebook(self, value: Optional[pulumi.Input['GlobalClientNativeSocialLoginFacebookArgs']]):
        pulumi.set(self, "facebook", value)


@pulumi.input_type
class GlobalClientNativeSocialLoginAppleArgs:
    def __init__(__self__, *,
                 enabled: Optional[pulumi.Input[bool]] = None):
        if enabled is not None:
            pulumi.set(__self__, "enabled", enabled)

    @property
    @pulumi.getter
    def enabled(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enabled", value)


@pulumi.input_type
class GlobalClientNativeSocialLoginFacebookArgs:
    def __init__(__self__, *,
                 enabled: Optional[pulumi.Input[bool]] = None):
        if enabled is not None:
            pulumi.set(__self__, "enabled", enabled)

    @property
    @pulumi.getter
    def enabled(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enabled", value)


@pulumi.input_type
class GlobalClientRefreshTokenArgs:
    def __init__(__self__, *,
                 expiration_type: pulumi.Input[str],
                 rotation_type: pulumi.Input[str],
                 idle_token_lifetime: Optional[pulumi.Input[int]] = None,
                 infinite_idle_token_lifetime: Optional[pulumi.Input[bool]] = None,
                 infinite_token_lifetime: Optional[pulumi.Input[bool]] = None,
                 leeway: Optional[pulumi.Input[int]] = None,
                 token_lifetime: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[str] expiration_type: Options include `expiring`, `non-expiring`. Whether a refresh token will expire based on an absolute lifetime, after which the token can no longer be used. If rotation is `rotating`, this must be set to `expiring`.
        :param pulumi.Input[str] rotation_type: Options include `rotating`, `non-rotating`. When `rotating`, exchanging a refresh token will cause a new refresh token to be issued and the existing token will be invalidated. This allows for automatic detection of token reuse if the token is leaked.
        :param pulumi.Input[int] idle_token_lifetime: The time in seconds after which inactive refresh tokens will expire.
        :param pulumi.Input[bool] infinite_idle_token_lifetime: Whether inactive refresh tokens should remain valid indefinitely.
        :param pulumi.Input[bool] infinite_token_lifetime: Whether refresh tokens should remain valid indefinitely. If false, `token_lifetime` should also be set.
        :param pulumi.Input[int] leeway: The amount of time in seconds in which a refresh token may be reused without triggering reuse detection.
        :param pulumi.Input[int] token_lifetime: The absolute lifetime of a refresh token in seconds.
        """
        pulumi.set(__self__, "expiration_type", expiration_type)
        pulumi.set(__self__, "rotation_type", rotation_type)
        if idle_token_lifetime is not None:
            pulumi.set(__self__, "idle_token_lifetime", idle_token_lifetime)
        if infinite_idle_token_lifetime is not None:
            pulumi.set(__self__, "infinite_idle_token_lifetime", infinite_idle_token_lifetime)
        if infinite_token_lifetime is not None:
            pulumi.set(__self__, "infinite_token_lifetime", infinite_token_lifetime)
        if leeway is not None:
            pulumi.set(__self__, "leeway", leeway)
        if token_lifetime is not None:
            pulumi.set(__self__, "token_lifetime", token_lifetime)

    @property
    @pulumi.getter(name="expirationType")
    def expiration_type(self) -> pulumi.Input[str]:
        """
        Options include `expiring`, `non-expiring`. Whether a refresh token will expire based on an absolute lifetime, after which the token can no longer be used. If rotation is `rotating`, this must be set to `expiring`.
        """
        return pulumi.get(self, "expiration_type")

    @expiration_type.setter
    def expiration_type(self, value: pulumi.Input[str]):
        pulumi.set(self, "expiration_type", value)

    @property
    @pulumi.getter(name="rotationType")
    def rotation_type(self) -> pulumi.Input[str]:
        """
        Options include `rotating`, `non-rotating`. When `rotating`, exchanging a refresh token will cause a new refresh token to be issued and the existing token will be invalidated. This allows for automatic detection of token reuse if the token is leaked.
        """
        return pulumi.get(self, "rotation_type")

    @rotation_type.setter
    def rotation_type(self, value: pulumi.Input[str]):
        pulumi.set(self, "rotation_type", value)

    @property
    @pulumi.getter(name="idleTokenLifetime")
    def idle_token_lifetime(self) -> Optional[pulumi.Input[int]]:
        """
        The time in seconds after which inactive refresh tokens will expire.
        """
        return pulumi.get(self, "idle_token_lifetime")

    @idle_token_lifetime.setter
    def idle_token_lifetime(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "idle_token_lifetime", value)

    @property
    @pulumi.getter(name="infiniteIdleTokenLifetime")
    def infinite_idle_token_lifetime(self) -> Optional[pulumi.Input[bool]]:
        """
        Whether inactive refresh tokens should remain valid indefinitely.
        """
        return pulumi.get(self, "infinite_idle_token_lifetime")

    @infinite_idle_token_lifetime.setter
    def infinite_idle_token_lifetime(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "infinite_idle_token_lifetime", value)

    @property
    @pulumi.getter(name="infiniteTokenLifetime")
    def infinite_token_lifetime(self) -> Optional[pulumi.Input[bool]]:
        """
        Whether refresh tokens should remain valid indefinitely. If false, `token_lifetime` should also be set.
        """
        return pulumi.get(self, "infinite_token_lifetime")

    @infinite_token_lifetime.setter
    def infinite_token_lifetime(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "infinite_token_lifetime", value)

    @property
    @pulumi.getter
    def leeway(self) -> Optional[pulumi.Input[int]]:
        """
        The amount of time in seconds in which a refresh token may be reused without triggering reuse detection.
        """
        return pulumi.get(self, "leeway")

    @leeway.setter
    def leeway(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "leeway", value)

    @property
    @pulumi.getter(name="tokenLifetime")
    def token_lifetime(self) -> Optional[pulumi.Input[int]]:
        """
        The absolute lifetime of a refresh token in seconds.
        """
        return pulumi.get(self, "token_lifetime")

    @token_lifetime.setter
    def token_lifetime(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "token_lifetime", value)


@pulumi.input_type
class GuardianDuoArgs:
    def __init__(__self__, *,
                 enabled: pulumi.Input[bool],
                 hostname: Optional[pulumi.Input[str]] = None,
                 integration_key: Optional[pulumi.Input[str]] = None,
                 secret_key: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[bool] enabled: Indicates whether Duo MFA is enabled.
        :param pulumi.Input[str] hostname: Duo API Hostname, see the Duo documentation for more details on Duo setup.
        :param pulumi.Input[str] integration_key: Duo client ID, see the Duo documentation for more details on Duo setup.
        :param pulumi.Input[str] secret_key: Duo client secret, see the Duo documentation for more details on Duo setup.
        """
        pulumi.set(__self__, "enabled", enabled)
        if hostname is not None:
            pulumi.set(__self__, "hostname", hostname)
        if integration_key is not None:
            pulumi.set(__self__, "integration_key", integration_key)
        if secret_key is not None:
            pulumi.set(__self__, "secret_key", secret_key)

    @property
    @pulumi.getter
    def enabled(self) -> pulumi.Input[bool]:
        """
        Indicates whether Duo MFA is enabled.
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: pulumi.Input[bool]):
        pulumi.set(self, "enabled", value)

    @property
    @pulumi.getter
    def hostname(self) -> Optional[pulumi.Input[str]]:
        """
        Duo API Hostname, see the Duo documentation for more details on Duo setup.
        """
        return pulumi.get(self, "hostname")

    @hostname.setter
    def hostname(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "hostname", value)

    @property
    @pulumi.getter(name="integrationKey")
    def integration_key(self) -> Optional[pulumi.Input[str]]:
        """
        Duo client ID, see the Duo documentation for more details on Duo setup.
        """
        return pulumi.get(self, "integration_key")

    @integration_key.setter
    def integration_key(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "integration_key", value)

    @property
    @pulumi.getter(name="secretKey")
    def secret_key(self) -> Optional[pulumi.Input[str]]:
        """
        Duo client secret, see the Duo documentation for more details on Duo setup.
        """
        return pulumi.get(self, "secret_key")

    @secret_key.setter
    def secret_key(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "secret_key", value)


@pulumi.input_type
class GuardianPhoneArgs:
    def __init__(__self__, *,
                 enabled: pulumi.Input[bool],
                 message_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 options: Optional[pulumi.Input['GuardianPhoneOptionsArgs']] = None,
                 provider: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[bool] enabled: Indicates whether Phone MFA is enabled.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] message_types: Message types to use, array of `sms` and/or `voice`. Adding both to the array should enable the user to choose.
        :param pulumi.Input['GuardianPhoneOptionsArgs'] options: Options for the various providers.
        :param pulumi.Input[str] provider: Provider to use, one of `auth0`, `twilio` or `phone-message-hook`. Selecting `phone-message-hook` will require a Phone Message Action to be created before. [Learn how](https://auth0.com/docs/customize/actions/flows-and-triggers/send-phone-message-flow).
        """
        pulumi.set(__self__, "enabled", enabled)
        if message_types is not None:
            pulumi.set(__self__, "message_types", message_types)
        if options is not None:
            pulumi.set(__self__, "options", options)
        if provider is not None:
            pulumi.set(__self__, "provider", provider)

    @property
    @pulumi.getter
    def enabled(self) -> pulumi.Input[bool]:
        """
        Indicates whether Phone MFA is enabled.
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: pulumi.Input[bool]):
        pulumi.set(self, "enabled", value)

    @property
    @pulumi.getter(name="messageTypes")
    def message_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Message types to use, array of `sms` and/or `voice`. Adding both to the array should enable the user to choose.
        """
        return pulumi.get(self, "message_types")

    @message_types.setter
    def message_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "message_types", value)

    @property
    @pulumi.getter
    def options(self) -> Optional[pulumi.Input['GuardianPhoneOptionsArgs']]:
        """
        Options for the various providers.
        """
        return pulumi.get(self, "options")

    @options.setter
    def options(self, value: Optional[pulumi.Input['GuardianPhoneOptionsArgs']]):
        pulumi.set(self, "options", value)

    @property
    @pulumi.getter
    def provider(self) -> Optional[pulumi.Input[str]]:
        """
        Provider to use, one of `auth0`, `twilio` or `phone-message-hook`. Selecting `phone-message-hook` will require a Phone Message Action to be created before. [Learn how](https://auth0.com/docs/customize/actions/flows-and-triggers/send-phone-message-flow).
        """
        return pulumi.get(self, "provider")

    @provider.setter
    def provider(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "provider", value)


@pulumi.input_type
class GuardianPhoneOptionsArgs:
    def __init__(__self__, *,
                 auth_token: Optional[pulumi.Input[str]] = None,
                 enrollment_message: Optional[pulumi.Input[str]] = None,
                 from_: Optional[pulumi.Input[str]] = None,
                 messaging_service_sid: Optional[pulumi.Input[str]] = None,
                 sid: Optional[pulumi.Input[str]] = None,
                 verification_message: Optional[pulumi.Input[str]] = None):
        if auth_token is not None:
            pulumi.set(__self__, "auth_token", auth_token)
        if enrollment_message is not None:
            pulumi.set(__self__, "enrollment_message", enrollment_message)
        if from_ is not None:
            pulumi.set(__self__, "from_", from_)
        if messaging_service_sid is not None:
            pulumi.set(__self__, "messaging_service_sid", messaging_service_sid)
        if sid is not None:
            pulumi.set(__self__, "sid", sid)
        if verification_message is not None:
            pulumi.set(__self__, "verification_message", verification_message)

    @property
    @pulumi.getter(name="authToken")
    def auth_token(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "auth_token")

    @auth_token.setter
    def auth_token(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "auth_token", value)

    @property
    @pulumi.getter(name="enrollmentMessage")
    def enrollment_message(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "enrollment_message")

    @enrollment_message.setter
    def enrollment_message(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "enrollment_message", value)

    @property
    @pulumi.getter(name="from")
    def from_(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "from_")

    @from_.setter
    def from_(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "from_", value)

    @property
    @pulumi.getter(name="messagingServiceSid")
    def messaging_service_sid(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "messaging_service_sid")

    @messaging_service_sid.setter
    def messaging_service_sid(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "messaging_service_sid", value)

    @property
    @pulumi.getter
    def sid(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "sid")

    @sid.setter
    def sid(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "sid", value)

    @property
    @pulumi.getter(name="verificationMessage")
    def verification_message(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "verification_message")

    @verification_message.setter
    def verification_message(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "verification_message", value)


@pulumi.input_type
class GuardianPushArgs:
    def __init__(__self__, *,
                 enabled: pulumi.Input[bool],
                 amazon_sns: Optional[pulumi.Input['GuardianPushAmazonSnsArgs']] = None,
                 custom_app: Optional[pulumi.Input['GuardianPushCustomAppArgs']] = None,
                 direct_apns: Optional[pulumi.Input['GuardianPushDirectApnsArgs']] = None,
                 direct_fcm: Optional[pulumi.Input['GuardianPushDirectFcmArgs']] = None,
                 provider: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[bool] enabled: Indicates whether Push MFA is enabled.
        :param pulumi.Input['GuardianPushAmazonSnsArgs'] amazon_sns: Configuration for Amazon SNS.
        :param pulumi.Input['GuardianPushCustomAppArgs'] custom_app: Configuration for the Guardian Custom App.
        :param pulumi.Input['GuardianPushDirectApnsArgs'] direct_apns: Configuration for the Apple Push Notification service (APNs) settings.
        :param pulumi.Input['GuardianPushDirectFcmArgs'] direct_fcm: Configuration for Firebase Cloud Messaging (FCM) settings.
        :param pulumi.Input[str] provider: Provider to use, one of `direct`, `guardian`, `sns`.
        """
        pulumi.set(__self__, "enabled", enabled)
        if amazon_sns is not None:
            pulumi.set(__self__, "amazon_sns", amazon_sns)
        if custom_app is not None:
            pulumi.set(__self__, "custom_app", custom_app)
        if direct_apns is not None:
            pulumi.set(__self__, "direct_apns", direct_apns)
        if direct_fcm is not None:
            pulumi.set(__self__, "direct_fcm", direct_fcm)
        if provider is not None:
            pulumi.set(__self__, "provider", provider)

    @property
    @pulumi.getter
    def enabled(self) -> pulumi.Input[bool]:
        """
        Indicates whether Push MFA is enabled.
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: pulumi.Input[bool]):
        pulumi.set(self, "enabled", value)

    @property
    @pulumi.getter(name="amazonSns")
    def amazon_sns(self) -> Optional[pulumi.Input['GuardianPushAmazonSnsArgs']]:
        """
        Configuration for Amazon SNS.
        """
        return pulumi.get(self, "amazon_sns")

    @amazon_sns.setter
    def amazon_sns(self, value: Optional[pulumi.Input['GuardianPushAmazonSnsArgs']]):
        pulumi.set(self, "amazon_sns", value)

    @property
    @pulumi.getter(name="customApp")
    def custom_app(self) -> Optional[pulumi.Input['GuardianPushCustomAppArgs']]:
        """
        Configuration for the Guardian Custom App.
        """
        return pulumi.get(self, "custom_app")

    @custom_app.setter
    def custom_app(self, value: Optional[pulumi.Input['GuardianPushCustomAppArgs']]):
        pulumi.set(self, "custom_app", value)

    @property
    @pulumi.getter(name="directApns")
    def direct_apns(self) -> Optional[pulumi.Input['GuardianPushDirectApnsArgs']]:
        """
        Configuration for the Apple Push Notification service (APNs) settings.
        """
        return pulumi.get(self, "direct_apns")

    @direct_apns.setter
    def direct_apns(self, value: Optional[pulumi.Input['GuardianPushDirectApnsArgs']]):
        pulumi.set(self, "direct_apns", value)

    @property
    @pulumi.getter(name="directFcm")
    def direct_fcm(self) -> Optional[pulumi.Input['GuardianPushDirectFcmArgs']]:
        """
        Configuration for Firebase Cloud Messaging (FCM) settings.
        """
        return pulumi.get(self, "direct_fcm")

    @direct_fcm.setter
    def direct_fcm(self, value: Optional[pulumi.Input['GuardianPushDirectFcmArgs']]):
        pulumi.set(self, "direct_fcm", value)

    @property
    @pulumi.getter
    def provider(self) -> Optional[pulumi.Input[str]]:
        """
        Provider to use, one of `direct`, `guardian`, `sns`.
        """
        return pulumi.get(self, "provider")

    @provider.setter
    def provider(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "provider", value)


@pulumi.input_type
class GuardianPushAmazonSnsArgs:
    def __init__(__self__, *,
                 aws_access_key_id: pulumi.Input[str],
                 aws_region: pulumi.Input[str],
                 aws_secret_access_key: pulumi.Input[str],
                 sns_apns_platform_application_arn: pulumi.Input[str],
                 sns_gcm_platform_application_arn: pulumi.Input[str]):
        pulumi.set(__self__, "aws_access_key_id", aws_access_key_id)
        pulumi.set(__self__, "aws_region", aws_region)
        pulumi.set(__self__, "aws_secret_access_key", aws_secret_access_key)
        pulumi.set(__self__, "sns_apns_platform_application_arn", sns_apns_platform_application_arn)
        pulumi.set(__self__, "sns_gcm_platform_application_arn", sns_gcm_platform_application_arn)

    @property
    @pulumi.getter(name="awsAccessKeyId")
    def aws_access_key_id(self) -> pulumi.Input[str]:
        return pulumi.get(self, "aws_access_key_id")

    @aws_access_key_id.setter
    def aws_access_key_id(self, value: pulumi.Input[str]):
        pulumi.set(self, "aws_access_key_id", value)

    @property
    @pulumi.getter(name="awsRegion")
    def aws_region(self) -> pulumi.Input[str]:
        return pulumi.get(self, "aws_region")

    @aws_region.setter
    def aws_region(self, value: pulumi.Input[str]):
        pulumi.set(self, "aws_region", value)

    @property
    @pulumi.getter(name="awsSecretAccessKey")
    def aws_secret_access_key(self) -> pulumi.Input[str]:
        return pulumi.get(self, "aws_secret_access_key")

    @aws_secret_access_key.setter
    def aws_secret_access_key(self, value: pulumi.Input[str]):
        pulumi.set(self, "aws_secret_access_key", value)

    @property
    @pulumi.getter(name="snsApnsPlatformApplicationArn")
    def sns_apns_platform_application_arn(self) -> pulumi.Input[str]:
        return pulumi.get(self, "sns_apns_platform_application_arn")

    @sns_apns_platform_application_arn.setter
    def sns_apns_platform_application_arn(self, value: pulumi.Input[str]):
        pulumi.set(self, "sns_apns_platform_application_arn", value)

    @property
    @pulumi.getter(name="snsGcmPlatformApplicationArn")
    def sns_gcm_platform_application_arn(self) -> pulumi.Input[str]:
        return pulumi.get(self, "sns_gcm_platform_application_arn")

    @sns_gcm_platform_application_arn.setter
    def sns_gcm_platform_application_arn(self, value: pulumi.Input[str]):
        pulumi.set(self, "sns_gcm_platform_application_arn", value)


@pulumi.input_type
class GuardianPushCustomAppArgs:
    def __init__(__self__, *,
                 app_name: Optional[pulumi.Input[str]] = None,
                 apple_app_link: Optional[pulumi.Input[str]] = None,
                 google_app_link: Optional[pulumi.Input[str]] = None):
        if app_name is not None:
            pulumi.set(__self__, "app_name", app_name)
        if apple_app_link is not None:
            pulumi.set(__self__, "apple_app_link", apple_app_link)
        if google_app_link is not None:
            pulumi.set(__self__, "google_app_link", google_app_link)

    @property
    @pulumi.getter(name="appName")
    def app_name(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "app_name")

    @app_name.setter
    def app_name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "app_name", value)

    @property
    @pulumi.getter(name="appleAppLink")
    def apple_app_link(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "apple_app_link")

    @apple_app_link.setter
    def apple_app_link(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "apple_app_link", value)

    @property
    @pulumi.getter(name="googleAppLink")
    def google_app_link(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "google_app_link")

    @google_app_link.setter
    def google_app_link(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "google_app_link", value)


@pulumi.input_type
class GuardianPushDirectApnsArgs:
    def __init__(__self__, *,
                 bundle_id: pulumi.Input[str],
                 p12: pulumi.Input[str],
                 sandbox: pulumi.Input[bool],
                 enabled: Optional[pulumi.Input[bool]] = None):
        pulumi.set(__self__, "bundle_id", bundle_id)
        pulumi.set(__self__, "p12", p12)
        pulumi.set(__self__, "sandbox", sandbox)
        if enabled is not None:
            pulumi.set(__self__, "enabled", enabled)

    @property
    @pulumi.getter(name="bundleId")
    def bundle_id(self) -> pulumi.Input[str]:
        return pulumi.get(self, "bundle_id")

    @bundle_id.setter
    def bundle_id(self, value: pulumi.Input[str]):
        pulumi.set(self, "bundle_id", value)

    @property
    @pulumi.getter
    def p12(self) -> pulumi.Input[str]:
        return pulumi.get(self, "p12")

    @p12.setter
    def p12(self, value: pulumi.Input[str]):
        pulumi.set(self, "p12", value)

    @property
    @pulumi.getter
    def sandbox(self) -> pulumi.Input[bool]:
        return pulumi.get(self, "sandbox")

    @sandbox.setter
    def sandbox(self, value: pulumi.Input[bool]):
        pulumi.set(self, "sandbox", value)

    @property
    @pulumi.getter
    def enabled(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enabled", value)


@pulumi.input_type
class GuardianPushDirectFcmArgs:
    def __init__(__self__, *,
                 server_key: pulumi.Input[str]):
        pulumi.set(__self__, "server_key", server_key)

    @property
    @pulumi.getter(name="serverKey")
    def server_key(self) -> pulumi.Input[str]:
        return pulumi.get(self, "server_key")

    @server_key.setter
    def server_key(self, value: pulumi.Input[str]):
        pulumi.set(self, "server_key", value)


@pulumi.input_type
class GuardianWebauthnPlatformArgs:
    def __init__(__self__, *,
                 enabled: pulumi.Input[bool],
                 override_relying_party: Optional[pulumi.Input[bool]] = None,
                 relying_party_identifier: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[bool] enabled: Indicates whether WebAuthn with FIDO Device Biometrics MFA is enabled.
        :param pulumi.Input[bool] override_relying_party: The Relying Party is the domain for which the WebAuthn keys will be issued, set to `true` if you are customizing the identifier.
        :param pulumi.Input[str] relying_party_identifier: The Relying Party should be a suffix of the custom domain.
        """
        pulumi.set(__self__, "enabled", enabled)
        if override_relying_party is not None:
            pulumi.set(__self__, "override_relying_party", override_relying_party)
        if relying_party_identifier is not None:
            pulumi.set(__self__, "relying_party_identifier", relying_party_identifier)

    @property
    @pulumi.getter
    def enabled(self) -> pulumi.Input[bool]:
        """
        Indicates whether WebAuthn with FIDO Device Biometrics MFA is enabled.
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: pulumi.Input[bool]):
        pulumi.set(self, "enabled", value)

    @property
    @pulumi.getter(name="overrideRelyingParty")
    def override_relying_party(self) -> Optional[pulumi.Input[bool]]:
        """
        The Relying Party is the domain for which the WebAuthn keys will be issued, set to `true` if you are customizing the identifier.
        """
        return pulumi.get(self, "override_relying_party")

    @override_relying_party.setter
    def override_relying_party(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "override_relying_party", value)

    @property
    @pulumi.getter(name="relyingPartyIdentifier")
    def relying_party_identifier(self) -> Optional[pulumi.Input[str]]:
        """
        The Relying Party should be a suffix of the custom domain.
        """
        return pulumi.get(self, "relying_party_identifier")

    @relying_party_identifier.setter
    def relying_party_identifier(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "relying_party_identifier", value)


@pulumi.input_type
class GuardianWebauthnRoamingArgs:
    def __init__(__self__, *,
                 enabled: pulumi.Input[bool],
                 override_relying_party: Optional[pulumi.Input[bool]] = None,
                 relying_party_identifier: Optional[pulumi.Input[str]] = None,
                 user_verification: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[bool] enabled: Indicates whether WebAuthn with FIDO Security Keys MFA is enabled.
        :param pulumi.Input[bool] override_relying_party: The Relying Party is the domain for which the WebAuthn keys will be issued, set to `true` if you are customizing the identifier.
        :param pulumi.Input[str] relying_party_identifier: The Relying Party should be a suffix of the custom domain.
        :param pulumi.Input[str] user_verification: User verification, one of `discouraged`, `preferred` or `required`.
        """
        pulumi.set(__self__, "enabled", enabled)
        if override_relying_party is not None:
            pulumi.set(__self__, "override_relying_party", override_relying_party)
        if relying_party_identifier is not None:
            pulumi.set(__self__, "relying_party_identifier", relying_party_identifier)
        if user_verification is not None:
            pulumi.set(__self__, "user_verification", user_verification)

    @property
    @pulumi.getter
    def enabled(self) -> pulumi.Input[bool]:
        """
        Indicates whether WebAuthn with FIDO Security Keys MFA is enabled.
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: pulumi.Input[bool]):
        pulumi.set(self, "enabled", value)

    @property
    @pulumi.getter(name="overrideRelyingParty")
    def override_relying_party(self) -> Optional[pulumi.Input[bool]]:
        """
        The Relying Party is the domain for which the WebAuthn keys will be issued, set to `true` if you are customizing the identifier.
        """
        return pulumi.get(self, "override_relying_party")

    @override_relying_party.setter
    def override_relying_party(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "override_relying_party", value)

    @property
    @pulumi.getter(name="relyingPartyIdentifier")
    def relying_party_identifier(self) -> Optional[pulumi.Input[str]]:
        """
        The Relying Party should be a suffix of the custom domain.
        """
        return pulumi.get(self, "relying_party_identifier")

    @relying_party_identifier.setter
    def relying_party_identifier(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "relying_party_identifier", value)

    @property
    @pulumi.getter(name="userVerification")
    def user_verification(self) -> Optional[pulumi.Input[str]]:
        """
        User verification, one of `discouraged`, `preferred` or `required`.
        """
        return pulumi.get(self, "user_verification")

    @user_verification.setter
    def user_verification(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "user_verification", value)


@pulumi.input_type
class LogStreamSinkArgs:
    def __init__(__self__, *,
                 aws_account_id: Optional[pulumi.Input[str]] = None,
                 aws_partner_event_source: Optional[pulumi.Input[str]] = None,
                 aws_region: Optional[pulumi.Input[str]] = None,
                 azure_partner_topic: Optional[pulumi.Input[str]] = None,
                 azure_region: Optional[pulumi.Input[str]] = None,
                 azure_resource_group: Optional[pulumi.Input[str]] = None,
                 azure_subscription_id: Optional[pulumi.Input[str]] = None,
                 datadog_api_key: Optional[pulumi.Input[str]] = None,
                 datadog_region: Optional[pulumi.Input[str]] = None,
                 http_authorization: Optional[pulumi.Input[str]] = None,
                 http_content_format: Optional[pulumi.Input[str]] = None,
                 http_content_type: Optional[pulumi.Input[str]] = None,
                 http_custom_headers: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]]] = None,
                 http_endpoint: Optional[pulumi.Input[str]] = None,
                 mixpanel_project_id: Optional[pulumi.Input[str]] = None,
                 mixpanel_region: Optional[pulumi.Input[str]] = None,
                 mixpanel_service_account_password: Optional[pulumi.Input[str]] = None,
                 mixpanel_service_account_username: Optional[pulumi.Input[str]] = None,
                 segment_write_key: Optional[pulumi.Input[str]] = None,
                 splunk_domain: Optional[pulumi.Input[str]] = None,
                 splunk_port: Optional[pulumi.Input[str]] = None,
                 splunk_secure: Optional[pulumi.Input[bool]] = None,
                 splunk_token: Optional[pulumi.Input[str]] = None,
                 sumo_source_address: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] aws_account_id: The AWS Account ID.
        :param pulumi.Input[str] aws_partner_event_source: Name of the Partner Event Source to be used with AWS. Generally generated by Auth0 and passed to AWS, so this should be an output attribute.
        :param pulumi.Input[str] aws_region: The AWS Region, e.g. "us-east-2").
        :param pulumi.Input[str] azure_partner_topic: Name of the Partner Topic to be used with Azure. Generally should not be specified.
        :param pulumi.Input[str] azure_region: The Azure region code, e.g. "ne")
        :param pulumi.Input[str] azure_resource_group: The Azure EventGrid resource group which allows you to manage all Azure assets within one subscription.
        :param pulumi.Input[str] azure_subscription_id: The unique alphanumeric string that identifies your Azure subscription.
        :param pulumi.Input[str] datadog_api_key: The Datadog API key.
        :param pulumi.Input[str] datadog_region: The Datadog region. Options are ["us", "eu", "us3", "us5"].
        :param pulumi.Input[str] http_authorization: Sent in the HTTP "Authorization" header with each request.
        :param pulumi.Input[str] http_content_format: The format of data sent over HTTP. Options are "JSONLINES", "JSONARRAY" or "JSONOBJECT"
        :param pulumi.Input[str] http_content_type: The "Content-Type" header to send over HTTP. Common value is "application/json".
        :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]] http_custom_headers: Additional HTTP headers to be included as part of the HTTP request.
        :param pulumi.Input[str] http_endpoint: The HTTP endpoint to send streaming logs.
        :param pulumi.Input[str] mixpanel_project_id: The Mixpanel project ID, found on the Project Settings page.
        :param pulumi.Input[str] mixpanel_region: The Mixpanel region. Options are ["us", "eu"]. EU is required for customers with EU data residency requirements.
        :param pulumi.Input[str] mixpanel_service_account_password: The Mixpanel Service Account password.
        :param pulumi.Input[str] mixpanel_service_account_username: The Mixpanel Service Account username. Services Accounts can be created in the Project Settings page.
        :param pulumi.Input[str] segment_write_key: The [Segment Write Key](https://segment.com/docs/connections/find-writekey/).
        :param pulumi.Input[str] splunk_domain: The Splunk domain name.
        :param pulumi.Input[str] splunk_port: The Splunk port.
        :param pulumi.Input[bool] splunk_secure: This toggle should be turned off when using self-signed certificates.
        :param pulumi.Input[str] splunk_token: The Splunk access token.
        :param pulumi.Input[str] sumo_source_address: Generated URL for your defined HTTP source in Sumo Logic for collecting streaming data from Auth0.
        """
        if aws_account_id is not None:
            pulumi.set(__self__, "aws_account_id", aws_account_id)
        if aws_partner_event_source is not None:
            pulumi.set(__self__, "aws_partner_event_source", aws_partner_event_source)
        if aws_region is not None:
            pulumi.set(__self__, "aws_region", aws_region)
        if azure_partner_topic is not None:
            pulumi.set(__self__, "azure_partner_topic", azure_partner_topic)
        if azure_region is not None:
            pulumi.set(__self__, "azure_region", azure_region)
        if azure_resource_group is not None:
            pulumi.set(__self__, "azure_resource_group", azure_resource_group)
        if azure_subscription_id is not None:
            pulumi.set(__self__, "azure_subscription_id", azure_subscription_id)
        if datadog_api_key is not None:
            pulumi.set(__self__, "datadog_api_key", datadog_api_key)
        if datadog_region is not None:
            pulumi.set(__self__, "datadog_region", datadog_region)
        if http_authorization is not None:
            pulumi.set(__self__, "http_authorization", http_authorization)
        if http_content_format is not None:
            pulumi.set(__self__, "http_content_format", http_content_format)
        if http_content_type is not None:
            pulumi.set(__self__, "http_content_type", http_content_type)
        if http_custom_headers is not None:
            pulumi.set(__self__, "http_custom_headers", http_custom_headers)
        if http_endpoint is not None:
            pulumi.set(__self__, "http_endpoint", http_endpoint)
        if mixpanel_project_id is not None:
            pulumi.set(__self__, "mixpanel_project_id", mixpanel_project_id)
        if mixpanel_region is not None:
            pulumi.set(__self__, "mixpanel_region", mixpanel_region)
        if mixpanel_service_account_password is not None:
            pulumi.set(__self__, "mixpanel_service_account_password", mixpanel_service_account_password)
        if mixpanel_service_account_username is not None:
            pulumi.set(__self__, "mixpanel_service_account_username", mixpanel_service_account_username)
        if segment_write_key is not None:
            pulumi.set(__self__, "segment_write_key", segment_write_key)
        if splunk_domain is not None:
            pulumi.set(__self__, "splunk_domain", splunk_domain)
        if splunk_port is not None:
            pulumi.set(__self__, "splunk_port", splunk_port)
        if splunk_secure is not None:
            pulumi.set(__self__, "splunk_secure", splunk_secure)
        if splunk_token is not None:
            pulumi.set(__self__, "splunk_token", splunk_token)
        if sumo_source_address is not None:
            pulumi.set(__self__, "sumo_source_address", sumo_source_address)

    @property
    @pulumi.getter(name="awsAccountId")
    def aws_account_id(self) -> Optional[pulumi.Input[str]]:
        """
        The AWS Account ID.
        """
        return pulumi.get(self, "aws_account_id")

    @aws_account_id.setter
    def aws_account_id(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "aws_account_id", value)

    @property
    @pulumi.getter(name="awsPartnerEventSource")
    def aws_partner_event_source(self) -> Optional[pulumi.Input[str]]:
        """
        Name of the Partner Event Source to be used with AWS. Generally generated by Auth0 and passed to AWS, so this should be an output attribute.
        """
        return pulumi.get(self, "aws_partner_event_source")

    @aws_partner_event_source.setter
    def aws_partner_event_source(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "aws_partner_event_source", value)

    @property
    @pulumi.getter(name="awsRegion")
    def aws_region(self) -> Optional[pulumi.Input[str]]:
        """
        The AWS Region, e.g. "us-east-2").
        """
        return pulumi.get(self, "aws_region")

    @aws_region.setter
    def aws_region(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "aws_region", value)

    @property
    @pulumi.getter(name="azurePartnerTopic")
    def azure_partner_topic(self) -> Optional[pulumi.Input[str]]:
        """
        Name of the Partner Topic to be used with Azure. Generally should not be specified.
        """
        return pulumi.get(self, "azure_partner_topic")

    @azure_partner_topic.setter
    def azure_partner_topic(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "azure_partner_topic", value)

    @property
    @pulumi.getter(name="azureRegion")
    def azure_region(self) -> Optional[pulumi.Input[str]]:
        """
        The Azure region code, e.g. "ne")
        """
        return pulumi.get(self, "azure_region")

    @azure_region.setter
    def azure_region(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "azure_region", value)

    @property
    @pulumi.getter(name="azureResourceGroup")
    def azure_resource_group(self) -> Optional[pulumi.Input[str]]:
        """
        The Azure EventGrid resource group which allows you to manage all Azure assets within one subscription.
        """
        return pulumi.get(self, "azure_resource_group")

    @azure_resource_group.setter
    def azure_resource_group(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "azure_resource_group", value)

    @property
    @pulumi.getter(name="azureSubscriptionId")
    def azure_subscription_id(self) -> Optional[pulumi.Input[str]]:
        """
        The unique alphanumeric string that identifies your Azure subscription.
        """
        return pulumi.get(self, "azure_subscription_id")

    @azure_subscription_id.setter
    def azure_subscription_id(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "azure_subscription_id", value)

    @property
    @pulumi.getter(name="datadogApiKey")
    def datadog_api_key(self) -> Optional[pulumi.Input[str]]:
        """
        The Datadog API key.
        """
        return pulumi.get(self, "datadog_api_key")

    @datadog_api_key.setter
    def datadog_api_key(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "datadog_api_key", value)

    @property
    @pulumi.getter(name="datadogRegion")
    def datadog_region(self) -> Optional[pulumi.Input[str]]:
        """
        The Datadog region. Options are ["us", "eu", "us3", "us5"].
        """
        return pulumi.get(self, "datadog_region")

    @datadog_region.setter
    def datadog_region(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "datadog_region", value)

    @property
    @pulumi.getter(name="httpAuthorization")
    def http_authorization(self) -> Optional[pulumi.Input[str]]:
        """
        Sent in the HTTP "Authorization" header with each request.
        """
        return pulumi.get(self, "http_authorization")

    @http_authorization.setter
    def http_authorization(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "http_authorization", value)

    @property
    @pulumi.getter(name="httpContentFormat")
    def http_content_format(self) -> Optional[pulumi.Input[str]]:
        """
        The format of data sent over HTTP. Options are "JSONLINES", "JSONARRAY" or "JSONOBJECT"
        """
        return pulumi.get(self, "http_content_format")

    @http_content_format.setter
    def http_content_format(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "http_content_format", value)

    @property
    @pulumi.getter(name="httpContentType")
    def http_content_type(self) -> Optional[pulumi.Input[str]]:
        """
        The "Content-Type" header to send over HTTP. Common value is "application/json".
        """
        return pulumi.get(self, "http_content_type")

    @http_content_type.setter
    def http_content_type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "http_content_type", value)

    @property
    @pulumi.getter(name="httpCustomHeaders")
    def http_custom_headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]]]:
        """
        Additional HTTP headers to be included as part of the HTTP request.
        """
        return pulumi.get(self, "http_custom_headers")

    @http_custom_headers.setter
    def http_custom_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]]]):
        pulumi.set(self, "http_custom_headers", value)

    @property
    @pulumi.getter(name="httpEndpoint")
    def http_endpoint(self) -> Optional[pulumi.Input[str]]:
        """
        The HTTP endpoint to send streaming logs.
        """
        return pulumi.get(self, "http_endpoint")

    @http_endpoint.setter
    def http_endpoint(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "http_endpoint", value)

    @property
    @pulumi.getter(name="mixpanelProjectId")
    def mixpanel_project_id(self) -> Optional[pulumi.Input[str]]:
        """
        The Mixpanel project ID, found on the Project Settings page.
        """
        return pulumi.get(self, "mixpanel_project_id")

    @mixpanel_project_id.setter
    def mixpanel_project_id(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "mixpanel_project_id", value)

    @property
    @pulumi.getter(name="mixpanelRegion")
    def mixpanel_region(self) -> Optional[pulumi.Input[str]]:
        """
        The Mixpanel region. Options are ["us", "eu"]. EU is required for customers with EU data residency requirements.
        """
        return pulumi.get(self, "mixpanel_region")

    @mixpanel_region.setter
    def mixpanel_region(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "mixpanel_region", value)

    @property
    @pulumi.getter(name="mixpanelServiceAccountPassword")
    def mixpanel_service_account_password(self) -> Optional[pulumi.Input[str]]:
        """
        The Mixpanel Service Account password.
        """
        return pulumi.get(self, "mixpanel_service_account_password")

    @mixpanel_service_account_password.setter
    def mixpanel_service_account_password(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "mixpanel_service_account_password", value)

    @property
    @pulumi.getter(name="mixpanelServiceAccountUsername")
    def mixpanel_service_account_username(self) -> Optional[pulumi.Input[str]]:
        """
        The Mixpanel Service Account username. Services Accounts can be created in the Project Settings page.
        """
        return pulumi.get(self, "mixpanel_service_account_username")

    @mixpanel_service_account_username.setter
    def mixpanel_service_account_username(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "mixpanel_service_account_username", value)

    @property
    @pulumi.getter(name="segmentWriteKey")
    def segment_write_key(self) -> Optional[pulumi.Input[str]]:
        """
        The [Segment Write Key](https://segment.com/docs/connections/find-writekey/).
        """
        return pulumi.get(self, "segment_write_key")

    @segment_write_key.setter
    def segment_write_key(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "segment_write_key", value)

    @property
    @pulumi.getter(name="splunkDomain")
    def splunk_domain(self) -> Optional[pulumi.Input[str]]:
        """
        The Splunk domain name.
        """
        return pulumi.get(self, "splunk_domain")

    @splunk_domain.setter
    def splunk_domain(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "splunk_domain", value)

    @property
    @pulumi.getter(name="splunkPort")
    def splunk_port(self) -> Optional[pulumi.Input[str]]:
        """
        The Splunk port.
        """
        return pulumi.get(self, "splunk_port")

    @splunk_port.setter
    def splunk_port(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "splunk_port", value)

    @property
    @pulumi.getter(name="splunkSecure")
    def splunk_secure(self) -> Optional[pulumi.Input[bool]]:
        """
        This toggle should be turned off when using self-signed certificates.
        """
        return pulumi.get(self, "splunk_secure")

    @splunk_secure.setter
    def splunk_secure(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "splunk_secure", value)

    @property
    @pulumi.getter(name="splunkToken")
    def splunk_token(self) -> Optional[pulumi.Input[str]]:
        """
        The Splunk access token.
        """
        return pulumi.get(self, "splunk_token")

    @splunk_token.setter
    def splunk_token(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "splunk_token", value)

    @property
    @pulumi.getter(name="sumoSourceAddress")
    def sumo_source_address(self) -> Optional[pulumi.Input[str]]:
        """
        Generated URL for your defined HTTP source in Sumo Logic for collecting streaming data from Auth0.
        """
        return pulumi.get(self, "sumo_source_address")

    @sumo_source_address.setter
    def sumo_source_address(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "sumo_source_address", value)


@pulumi.input_type
class OrganizationBrandingArgs:
    def __init__(__self__, *,
                 colors: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                 logo_url: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] colors: Color scheme used to customize the login pages.
        :param pulumi.Input[str] logo_url: URL of logo to display on login page.
        """
        if colors is not None:
            pulumi.set(__self__, "colors", colors)
        if logo_url is not None:
            pulumi.set(__self__, "logo_url", logo_url)

    @property
    @pulumi.getter
    def colors(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
        """
        Color scheme used to customize the login pages.
        """
        return pulumi.get(self, "colors")

    @colors.setter
    def colors(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
        pulumi.set(self, "colors", value)

    @property
    @pulumi.getter(name="logoUrl")
    def logo_url(self) -> Optional[pulumi.Input[str]]:
        """
        URL of logo to display on login page.
        """
        return pulumi.get(self, "logo_url")

    @logo_url.setter
    def logo_url(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "logo_url", value)


@pulumi.input_type
class OrganizationConnectionsEnabledConnectionArgs:
    def __init__(__self__, *,
                 connection_id: pulumi.Input[str],
                 assign_membership_on_login: Optional[pulumi.Input[bool]] = None):
        """
        :param pulumi.Input[str] connection_id: The ID of the connection to enable for the organization.
        :param pulumi.Input[bool] assign_membership_on_login: When true, all users that log in with this connection will be automatically granted membership in the organization. When false, users must be granted membership in the organization before logging in with this connection.
        """
        pulumi.set(__self__, "connection_id", connection_id)
        if assign_membership_on_login is not None:
            pulumi.set(__self__, "assign_membership_on_login", assign_membership_on_login)

    @property
    @pulumi.getter(name="connectionId")
    def connection_id(self) -> pulumi.Input[str]:
        """
        The ID of the connection to enable for the organization.
        """
        return pulumi.get(self, "connection_id")

    @connection_id.setter
    def connection_id(self, value: pulumi.Input[str]):
        pulumi.set(self, "connection_id", value)

    @property
    @pulumi.getter(name="assignMembershipOnLogin")
    def assign_membership_on_login(self) -> Optional[pulumi.Input[bool]]:
        """
        When true, all users that log in with this connection will be automatically granted membership in the organization. When false, users must be granted membership in the organization before logging in with this connection.
        """
        return pulumi.get(self, "assign_membership_on_login")

    @assign_membership_on_login.setter
    def assign_membership_on_login(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "assign_membership_on_login", value)


@pulumi.input_type
class PagesChangePasswordArgs:
    def __init__(__self__, *,
                 enabled: pulumi.Input[bool],
                 html: pulumi.Input[str]):
        """
        :param pulumi.Input[bool] enabled: Indicates whether to use the custom Reset Password HTML (`true`) or the default Auth0 page (`false`).
        :param pulumi.Input[str] html: Customized content for the Reset Password page. HTML format with supported [Liquid syntax](https://github.com/Shopify/liquid/wiki/Liquid-for-Designers).
        """
        pulumi.set(__self__, "enabled", enabled)
        pulumi.set(__self__, "html", html)

    @property
    @pulumi.getter
    def enabled(self) -> pulumi.Input[bool]:
        """
        Indicates whether to use the custom Reset Password HTML (`true`) or the default Auth0 page (`false`).
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: pulumi.Input[bool]):
        pulumi.set(self, "enabled", value)

    @property
    @pulumi.getter
    def html(self) -> pulumi.Input[str]:
        """
        Customized content for the Reset Password page. HTML format with supported [Liquid syntax](https://github.com/Shopify/liquid/wiki/Liquid-for-Designers).
        """
        return pulumi.get(self, "html")

    @html.setter
    def html(self, value: pulumi.Input[str]):
        pulumi.set(self, "html", value)


@pulumi.input_type
class PagesErrorArgs:
    def __init__(__self__, *,
                 show_log_link: pulumi.Input[bool],
                 html: Optional[pulumi.Input[str]] = None,
                 url: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[bool] show_log_link: Indicates whether to show the link to logs as part of the default error page.
        :param pulumi.Input[str] html: Customized content for the Error page. HTML format with supported [Liquid syntax](https://github.com/Shopify/liquid/wiki/Liquid-for-Designers).
        :param pulumi.Input[str] url: URL to redirect to when an error occurs, instead of showing the default error page.
        """
        pulumi.set(__self__, "show_log_link", show_log_link)
        if html is not None:
            pulumi.set(__self__, "html", html)
        if url is not None:
            pulumi.set(__self__, "url", url)

    @property
    @pulumi.getter(name="showLogLink")
    def show_log_link(self) -> pulumi.Input[bool]:
        """
        Indicates whether to show the link to logs as part of the default error page.
        """
        return pulumi.get(self, "show_log_link")

    @show_log_link.setter
    def show_log_link(self, value: pulumi.Input[bool]):
        pulumi.set(self, "show_log_link", value)

    @property
    @pulumi.getter
    def html(self) -> Optional[pulumi.Input[str]]:
        """
        Customized content for the Error page. HTML format with supported [Liquid syntax](https://github.com/Shopify/liquid/wiki/Liquid-for-Designers).
        """
        return pulumi.get(self, "html")

    @html.setter
    def html(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "html", value)

    @property
    @pulumi.getter
    def url(self) -> Optional[pulumi.Input[str]]:
        """
        URL to redirect to when an error occurs, instead of showing the default error page.
        """
        return pulumi.get(self, "url")

    @url.setter
    def url(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "url", value)


@pulumi.input_type
class PagesGuardianMfaArgs:
    def __init__(__self__, *,
                 enabled: pulumi.Input[bool],
                 html: pulumi.Input[str]):
        """
        :param pulumi.Input[bool] enabled: Indicates whether to use the custom Guardian MFA HTML (`true`) or the default Auth0 page (`false`).
        :param pulumi.Input[str] html: Customized content for the Guardian MFA page. HTML format with supported [Liquid syntax](https://github.com/Shopify/liquid/wiki/Liquid-for-Designers).
        """
        pulumi.set(__self__, "enabled", enabled)
        pulumi.set(__self__, "html", html)

    @property
    @pulumi.getter
    def enabled(self) -> pulumi.Input[bool]:
        """
        Indicates whether to use the custom Guardian MFA HTML (`true`) or the default Auth0 page (`false`).
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: pulumi.Input[bool]):
        pulumi.set(self, "enabled", value)

    @property
    @pulumi.getter
    def html(self) -> pulumi.Input[str]:
        """
        Customized content for the Guardian MFA page. HTML format with supported [Liquid syntax](https://github.com/Shopify/liquid/wiki/Liquid-for-Designers).
        """
        return pulumi.get(self, "html")

    @html.setter
    def html(self, value: pulumi.Input[str]):
        pulumi.set(self, "html", value)


@pulumi.input_type
class PagesLoginArgs:
    def __init__(__self__, *,
                 enabled: pulumi.Input[bool],
                 html: pulumi.Input[str]):
        """
        :param pulumi.Input[bool] enabled: Indicates whether to use the custom Login page HTML (`true`) or the default Auth0 page (`false`).
        :param pulumi.Input[str] html: Customized content for the Login page. HTML format with supported [Liquid syntax](https://github.com/Shopify/liquid/wiki/Liquid-for-Designers).
        """
        pulumi.set(__self__, "enabled", enabled)
        pulumi.set(__self__, "html", html)

    @property
    @pulumi.getter
    def enabled(self) -> pulumi.Input[bool]:
        """
        Indicates whether to use the custom Login page HTML (`true`) or the default Auth0 page (`false`).
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: pulumi.Input[bool]):
        pulumi.set(self, "enabled", value)

    @property
    @pulumi.getter
    def html(self) -> pulumi.Input[str]:
        """
        Customized content for the Login page. HTML format with supported [Liquid syntax](https://github.com/Shopify/liquid/wiki/Liquid-for-Designers).
        """
        return pulumi.get(self, "html")

    @html.setter
    def html(self, value: pulumi.Input[str]):
        pulumi.set(self, "html", value)


@pulumi.input_type
class ResourceServerScopeArgs:
    def __init__(__self__, *,
                 value: pulumi.Input[str],
                 description: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] value: Name of the permission (scope). Examples include `read:appointments` or `delete:appointments`.
        :param pulumi.Input[str] description: Description of the permission (scope).
        """
        pulumi.set(__self__, "value", value)
        if description is not None:
            pulumi.set(__self__, "description", description)

    @property
    @pulumi.getter
    def value(self) -> pulumi.Input[str]:
        """
        Name of the permission (scope). Examples include `read:appointments` or `delete:appointments`.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: pulumi.Input[str]):
        pulumi.set(self, "value", value)

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[str]]:
        """
        Description of the permission (scope).
        """
        return pulumi.get(self, "description")

    @description.setter
    def description(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "description", value)


@pulumi.input_type
class ResourceServerScopesScopeArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[str],
                 description: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] name: Name of the scope (permission). Examples include `read:appointments` or `delete:appointments`.
        :param pulumi.Input[str] description: User-friendly description of the scope (permission).
        """
        pulumi.set(__self__, "name", name)
        if description is not None:
            pulumi.set(__self__, "description", description)

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[str]:
        """
        Name of the scope (permission). Examples include `read:appointments` or `delete:appointments`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[str]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[str]]:
        """
        User-friendly description of the scope (permission).
        """
        return pulumi.get(self, "description")

    @description.setter
    def description(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "description", value)


@pulumi.input_type
class RolePermissionArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[str],
                 resource_server_identifier: pulumi.Input[str],
                 description: Optional[pulumi.Input[str]] = None,
                 resource_server_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] name: Name of the permission (scope) configured on the resource server. If referencing a scope from an `ResourceServer` resource, use the `value` property, for example `auth0_resource_server.my_resource_server.scopes[0].value`.
        :param pulumi.Input[str] resource_server_identifier: Unique identifier for the resource server.
        :param pulumi.Input[str] description: Description of the permission.
        :param pulumi.Input[str] resource_server_name: Name of resource server that the permission is associated with.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "resource_server_identifier", resource_server_identifier)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if resource_server_name is not None:
            pulumi.set(__self__, "resource_server_name", resource_server_name)

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[str]:
        """
        Name of the permission (scope) configured on the resource server. If referencing a scope from an `ResourceServer` resource, use the `value` property, for example `auth0_resource_server.my_resource_server.scopes[0].value`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[str]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter(name="resourceServerIdentifier")
    def resource_server_identifier(self) -> pulumi.Input[str]:
        """
        Unique identifier for the resource server.
        """
        return pulumi.get(self, "resource_server_identifier")

    @resource_server_identifier.setter
    def resource_server_identifier(self, value: pulumi.Input[str]):
        pulumi.set(self, "resource_server_identifier", value)

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[str]]:
        """
        Description of the permission.
        """
        return pulumi.get(self, "description")

    @description.setter
    def description(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "description", value)

    @property
    @pulumi.getter(name="resourceServerName")
    def resource_server_name(self) -> Optional[pulumi.Input[str]]:
        """
        Name of resource server that the permission is associated with.
        """
        return pulumi.get(self, "resource_server_name")

    @resource_server_name.setter
    def resource_server_name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "resource_server_name", value)


@pulumi.input_type
class RolePermissionsPermissionArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[str],
                 resource_server_identifier: pulumi.Input[str],
                 description: Optional[pulumi.Input[str]] = None,
                 resource_server_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] name: Name of permission.
        :param pulumi.Input[str] resource_server_identifier: Resource server identifier associated with the permission.
        :param pulumi.Input[str] description: Description of the permission.
        :param pulumi.Input[str] resource_server_name: Name of resource server that the permission is associated with.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "resource_server_identifier", resource_server_identifier)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if resource_server_name is not None:
            pulumi.set(__self__, "resource_server_name", resource_server_name)

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[str]:
        """
        Name of permission.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[str]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter(name="resourceServerIdentifier")
    def resource_server_identifier(self) -> pulumi.Input[str]:
        """
        Resource server identifier associated with the permission.
        """
        return pulumi.get(self, "resource_server_identifier")

    @resource_server_identifier.setter
    def resource_server_identifier(self, value: pulumi.Input[str]):
        pulumi.set(self, "resource_server_identifier", value)

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[str]]:
        """
        Description of the permission.
        """
        return pulumi.get(self, "description")

    @description.setter
    def description(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "description", value)

    @property
    @pulumi.getter(name="resourceServerName")
    def resource_server_name(self) -> Optional[pulumi.Input[str]]:
        """
        Name of resource server that the permission is associated with.
        """
        return pulumi.get(self, "resource_server_name")

    @resource_server_name.setter
    def resource_server_name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "resource_server_name", value)


@pulumi.input_type
class TenantChangePasswordArgs:
    def __init__(__self__, *,
                 enabled: pulumi.Input[bool],
                 html: pulumi.Input[str]):
        """
        :param pulumi.Input[bool] enabled: Indicates whether to use the custom change password page.
        :param pulumi.Input[str] html: HTML format with supported Liquid syntax. Customized content of the change password page.
        """
        pulumi.set(__self__, "enabled", enabled)
        pulumi.set(__self__, "html", html)

    @property
    @pulumi.getter
    def enabled(self) -> pulumi.Input[bool]:
        """
        Indicates whether to use the custom change password page.
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: pulumi.Input[bool]):
        pulumi.set(self, "enabled", value)

    @property
    @pulumi.getter
    def html(self) -> pulumi.Input[str]:
        """
        HTML format with supported Liquid syntax. Customized content of the change password page.
        """
        return pulumi.get(self, "html")

    @html.setter
    def html(self, value: pulumi.Input[str]):
        pulumi.set(self, "html", value)


@pulumi.input_type
class TenantErrorPageArgs:
    def __init__(__self__, *,
                 html: pulumi.Input[str],
                 show_log_link: pulumi.Input[bool],
                 url: pulumi.Input[str]):
        """
        :param pulumi.Input[str] html: HTML format with supported Liquid syntax. Customized content of the error page.
        :param pulumi.Input[bool] show_log_link: Indicates whether to show the link to logs as part of the default error page.
        :param pulumi.Input[str] url: URL to redirect to when an error occurs rather than showing the default error page.
        """
        pulumi.set(__self__, "html", html)
        pulumi.set(__self__, "show_log_link", show_log_link)
        pulumi.set(__self__, "url", url)

    @property
    @pulumi.getter
    def html(self) -> pulumi.Input[str]:
        """
        HTML format with supported Liquid syntax. Customized content of the error page.
        """
        return pulumi.get(self, "html")

    @html.setter
    def html(self, value: pulumi.Input[str]):
        pulumi.set(self, "html", value)

    @property
    @pulumi.getter(name="showLogLink")
    def show_log_link(self) -> pulumi.Input[bool]:
        """
        Indicates whether to show the link to logs as part of the default error page.
        """
        return pulumi.get(self, "show_log_link")

    @show_log_link.setter
    def show_log_link(self, value: pulumi.Input[bool]):
        pulumi.set(self, "show_log_link", value)

    @property
    @pulumi.getter
    def url(self) -> pulumi.Input[str]:
        """
        URL to redirect to when an error occurs rather than showing the default error page.
        """
        return pulumi.get(self, "url")

    @url.setter
    def url(self, value: pulumi.Input[str]):
        pulumi.set(self, "url", value)


@pulumi.input_type
class TenantFlagsArgs:
    def __init__(__self__, *,
                 allow_legacy_delegation_grant_types: Optional[pulumi.Input[bool]] = None,
                 allow_legacy_ro_grant_types: Optional[pulumi.Input[bool]] = None,
                 allow_legacy_tokeninfo_endpoint: Optional[pulumi.Input[bool]] = None,
                 dashboard_insights_view: Optional[pulumi.Input[bool]] = None,
                 dashboard_log_streams_next: Optional[pulumi.Input[bool]] = None,
                 disable_clickjack_protection_headers: Optional[pulumi.Input[bool]] = None,
                 disable_fields_map_fix: Optional[pulumi.Input[bool]] = None,
                 disable_management_api_sms_obfuscation: Optional[pulumi.Input[bool]] = None,
                 enable_adfs_waad_email_verification: Optional[pulumi.Input[bool]] = None,
                 enable_apis_section: Optional[pulumi.Input[bool]] = None,
                 enable_client_connections: Optional[pulumi.Input[bool]] = None,
                 enable_custom_domain_in_emails: Optional[pulumi.Input[bool]] = None,
                 enable_dynamic_client_registration: Optional[pulumi.Input[bool]] = None,
                 enable_idtoken_api2: Optional[pulumi.Input[bool]] = None,
                 enable_legacy_logs_search_v2: Optional[pulumi.Input[bool]] = None,
                 enable_legacy_profile: Optional[pulumi.Input[bool]] = None,
                 enable_pipeline2: Optional[pulumi.Input[bool]] = None,
                 enable_public_signup_user_exists_error: Optional[pulumi.Input[bool]] = None,
                 mfa_show_factor_list_on_enrollment: Optional[pulumi.Input[bool]] = None,
                 no_disclose_enterprise_connections: Optional[pulumi.Input[bool]] = None,
                 revoke_refresh_token_grant: Optional[pulumi.Input[bool]] = None,
                 universal_login: Optional[pulumi.Input[bool]] = None,
                 use_scope_descriptions_for_consent: Optional[pulumi.Input[bool]] = None):
        """
        :param pulumi.Input[bool] allow_legacy_delegation_grant_types: Whether the legacy delegation endpoint will be enabled for your account (true) or not available (false).
        :param pulumi.Input[bool] allow_legacy_ro_grant_types: Whether the legacy `auth/ro` endpoint (used with resource owner password and passwordless features) will be enabled for your account (true) or not available (false).
        :param pulumi.Input[bool] allow_legacy_tokeninfo_endpoint: If enabled, customers can use Tokeninfo Endpoint, otherwise they can not use it.
        :param pulumi.Input[bool] dashboard_insights_view: Enables new insights activity page view.
        :param pulumi.Input[bool] dashboard_log_streams_next: Enables beta access to log streaming changes.
        :param pulumi.Input[bool] disable_clickjack_protection_headers: Indicates whether classic Universal Login prompts include additional security headers to prevent clickjacking.
        :param pulumi.Input[bool] disable_fields_map_fix: Disables SAML fields map fix for bad mappings with repeated attributes.
        :param pulumi.Input[bool] disable_management_api_sms_obfuscation: If true, SMS phone numbers will not be obfuscated in Management API GET calls.
        :param pulumi.Input[bool] enable_adfs_waad_email_verification: If enabled, users will be presented with an email verification prompt during their first login when using Azure AD or ADFS connections.
        :param pulumi.Input[bool] enable_apis_section: Indicates whether the APIs section is enabled for the tenant.
        :param pulumi.Input[bool] enable_client_connections: Indicates whether all current connections should be enabled when a new client is created.
        :param pulumi.Input[bool] enable_custom_domain_in_emails: Indicates whether the tenant allows custom domains in emails.
        :param pulumi.Input[bool] enable_dynamic_client_registration: Indicates whether the tenant allows dynamic client registration.
        :param pulumi.Input[bool] enable_idtoken_api2: Whether ID tokens can be used to authorize some types of requests to API v2 (true) or not (false).
        :param pulumi.Input[bool] enable_legacy_logs_search_v2: Indicates whether to use the older v2 legacy logs search.
        :param pulumi.Input[bool] enable_legacy_profile: Whether ID tokens and the userinfo endpoint includes a complete user profile (true) or only OpenID Connect claims (false).
        :param pulumi.Input[bool] enable_pipeline2: Indicates whether advanced API Authorization scenarios are enabled.
        :param pulumi.Input[bool] enable_public_signup_user_exists_error: Indicates whether the public sign up process shows a `user_exists` error if the user already exists.
        :param pulumi.Input[bool] mfa_show_factor_list_on_enrollment: Used to allow users to pick which factor to enroll with from the list of available MFA factors.
        :param pulumi.Input[bool] no_disclose_enterprise_connections: Do not Publish Enterprise Connections Information with IdP domains on the lock configuration file.
        :param pulumi.Input[bool] revoke_refresh_token_grant: Delete underlying grant when a refresh token is revoked via the Authentication API.
        :param pulumi.Input[bool] universal_login: Indicates whether the New Universal Login Experience is enabled.
        :param pulumi.Input[bool] use_scope_descriptions_for_consent: Indicates whether to use scope descriptions for consent.
        """
        if allow_legacy_delegation_grant_types is not None:
            pulumi.set(__self__, "allow_legacy_delegation_grant_types", allow_legacy_delegation_grant_types)
        if allow_legacy_ro_grant_types is not None:
            pulumi.set(__self__, "allow_legacy_ro_grant_types", allow_legacy_ro_grant_types)
        if allow_legacy_tokeninfo_endpoint is not None:
            pulumi.set(__self__, "allow_legacy_tokeninfo_endpoint", allow_legacy_tokeninfo_endpoint)
        if dashboard_insights_view is not None:
            pulumi.set(__self__, "dashboard_insights_view", dashboard_insights_view)
        if dashboard_log_streams_next is not None:
            pulumi.set(__self__, "dashboard_log_streams_next", dashboard_log_streams_next)
        if disable_clickjack_protection_headers is not None:
            pulumi.set(__self__, "disable_clickjack_protection_headers", disable_clickjack_protection_headers)
        if disable_fields_map_fix is not None:
            pulumi.set(__self__, "disable_fields_map_fix", disable_fields_map_fix)
        if disable_management_api_sms_obfuscation is not None:
            pulumi.set(__self__, "disable_management_api_sms_obfuscation", disable_management_api_sms_obfuscation)
        if enable_adfs_waad_email_verification is not None:
            pulumi.set(__self__, "enable_adfs_waad_email_verification", enable_adfs_waad_email_verification)
        if enable_apis_section is not None:
            pulumi.set(__self__, "enable_apis_section", enable_apis_section)
        if enable_client_connections is not None:
            pulumi.set(__self__, "enable_client_connections", enable_client_connections)
        if enable_custom_domain_in_emails is not None:
            pulumi.set(__self__, "enable_custom_domain_in_emails", enable_custom_domain_in_emails)
        if enable_dynamic_client_registration is not None:
            pulumi.set(__self__, "enable_dynamic_client_registration", enable_dynamic_client_registration)
        if enable_idtoken_api2 is not None:
            pulumi.set(__self__, "enable_idtoken_api2", enable_idtoken_api2)
        if enable_legacy_logs_search_v2 is not None:
            pulumi.set(__self__, "enable_legacy_logs_search_v2", enable_legacy_logs_search_v2)
        if enable_legacy_profile is not None:
            pulumi.set(__self__, "enable_legacy_profile", enable_legacy_profile)
        if enable_pipeline2 is not None:
            pulumi.set(__self__, "enable_pipeline2", enable_pipeline2)
        if enable_public_signup_user_exists_error is not None:
            pulumi.set(__self__, "enable_public_signup_user_exists_error", enable_public_signup_user_exists_error)
        if mfa_show_factor_list_on_enrollment is not None:
            pulumi.set(__self__, "mfa_show_factor_list_on_enrollment", mfa_show_factor_list_on_enrollment)
        if no_disclose_enterprise_connections is not None:
            pulumi.set(__self__, "no_disclose_enterprise_connections", no_disclose_enterprise_connections)
        if revoke_refresh_token_grant is not None:
            pulumi.set(__self__, "revoke_refresh_token_grant", revoke_refresh_token_grant)
        if universal_login is not None:
            warnings.warn("""This attribute is deprecated. Use the `universal_login_experience` attribute on the `auth0_prompt` resource to toggle the new or classic experience instead.""", DeprecationWarning)
            pulumi.log.warn("""universal_login is deprecated: This attribute is deprecated. Use the `universal_login_experience` attribute on the `auth0_prompt` resource to toggle the new or classic experience instead.""")
        if universal_login is not None:
            pulumi.set(__self__, "universal_login", universal_login)
        if use_scope_descriptions_for_consent is not None:
            pulumi.set(__self__, "use_scope_descriptions_for_consent", use_scope_descriptions_for_consent)

    @property
    @pulumi.getter(name="allowLegacyDelegationGrantTypes")
    def allow_legacy_delegation_grant_types(self) -> Optional[pulumi.Input[bool]]:
        """
        Whether the legacy delegation endpoint will be enabled for your account (true) or not available (false).
        """
        return pulumi.get(self, "allow_legacy_delegation_grant_types")

    @allow_legacy_delegation_grant_types.setter
    def allow_legacy_delegation_grant_types(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "allow_legacy_delegation_grant_types", value)

    @property
    @pulumi.getter(name="allowLegacyRoGrantTypes")
    def allow_legacy_ro_grant_types(self) -> Optional[pulumi.Input[bool]]:
        """
        Whether the legacy `auth/ro` endpoint (used with resource owner password and passwordless features) will be enabled for your account (true) or not available (false).
        """
        return pulumi.get(self, "allow_legacy_ro_grant_types")

    @allow_legacy_ro_grant_types.setter
    def allow_legacy_ro_grant_types(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "allow_legacy_ro_grant_types", value)

    @property
    @pulumi.getter(name="allowLegacyTokeninfoEndpoint")
    def allow_legacy_tokeninfo_endpoint(self) -> Optional[pulumi.Input[bool]]:
        """
        If enabled, customers can use Tokeninfo Endpoint, otherwise they can not use it.
        """
        return pulumi.get(self, "allow_legacy_tokeninfo_endpoint")

    @allow_legacy_tokeninfo_endpoint.setter
    def allow_legacy_tokeninfo_endpoint(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "allow_legacy_tokeninfo_endpoint", value)

    @property
    @pulumi.getter(name="dashboardInsightsView")
    def dashboard_insights_view(self) -> Optional[pulumi.Input[bool]]:
        """
        Enables new insights activity page view.
        """
        return pulumi.get(self, "dashboard_insights_view")

    @dashboard_insights_view.setter
    def dashboard_insights_view(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "dashboard_insights_view", value)

    @property
    @pulumi.getter(name="dashboardLogStreamsNext")
    def dashboard_log_streams_next(self) -> Optional[pulumi.Input[bool]]:
        """
        Enables beta access to log streaming changes.
        """
        return pulumi.get(self, "dashboard_log_streams_next")

    @dashboard_log_streams_next.setter
    def dashboard_log_streams_next(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "dashboard_log_streams_next", value)

    @property
    @pulumi.getter(name="disableClickjackProtectionHeaders")
    def disable_clickjack_protection_headers(self) -> Optional[pulumi.Input[bool]]:
        """
        Indicates whether classic Universal Login prompts include additional security headers to prevent clickjacking.
        """
        return pulumi.get(self, "disable_clickjack_protection_headers")

    @disable_clickjack_protection_headers.setter
    def disable_clickjack_protection_headers(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "disable_clickjack_protection_headers", value)

    @property
    @pulumi.getter(name="disableFieldsMapFix")
    def disable_fields_map_fix(self) -> Optional[pulumi.Input[bool]]:
        """
        Disables SAML fields map fix for bad mappings with repeated attributes.
        """
        return pulumi.get(self, "disable_fields_map_fix")

    @disable_fields_map_fix.setter
    def disable_fields_map_fix(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "disable_fields_map_fix", value)

    @property
    @pulumi.getter(name="disableManagementApiSmsObfuscation")
    def disable_management_api_sms_obfuscation(self) -> Optional[pulumi.Input[bool]]:
        """
        If true, SMS phone numbers will not be obfuscated in Management API GET calls.
        """
        return pulumi.get(self, "disable_management_api_sms_obfuscation")

    @disable_management_api_sms_obfuscation.setter
    def disable_management_api_sms_obfuscation(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "disable_management_api_sms_obfuscation", value)

    @property
    @pulumi.getter(name="enableAdfsWaadEmailVerification")
    def enable_adfs_waad_email_verification(self) -> Optional[pulumi.Input[bool]]:
        """
        If enabled, users will be presented with an email verification prompt during their first login when using Azure AD or ADFS connections.
        """
        return pulumi.get(self, "enable_adfs_waad_email_verification")

    @enable_adfs_waad_email_verification.setter
    def enable_adfs_waad_email_verification(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enable_adfs_waad_email_verification", value)

    @property
    @pulumi.getter(name="enableApisSection")
    def enable_apis_section(self) -> Optional[pulumi.Input[bool]]:
        """
        Indicates whether the APIs section is enabled for the tenant.
        """
        return pulumi.get(self, "enable_apis_section")

    @enable_apis_section.setter
    def enable_apis_section(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enable_apis_section", value)

    @property
    @pulumi.getter(name="enableClientConnections")
    def enable_client_connections(self) -> Optional[pulumi.Input[bool]]:
        """
        Indicates whether all current connections should be enabled when a new client is created.
        """
        return pulumi.get(self, "enable_client_connections")

    @enable_client_connections.setter
    def enable_client_connections(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enable_client_connections", value)

    @property
    @pulumi.getter(name="enableCustomDomainInEmails")
    def enable_custom_domain_in_emails(self) -> Optional[pulumi.Input[bool]]:
        """
        Indicates whether the tenant allows custom domains in emails.
        """
        return pulumi.get(self, "enable_custom_domain_in_emails")

    @enable_custom_domain_in_emails.setter
    def enable_custom_domain_in_emails(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enable_custom_domain_in_emails", value)

    @property
    @pulumi.getter(name="enableDynamicClientRegistration")
    def enable_dynamic_client_registration(self) -> Optional[pulumi.Input[bool]]:
        """
        Indicates whether the tenant allows dynamic client registration.
        """
        return pulumi.get(self, "enable_dynamic_client_registration")

    @enable_dynamic_client_registration.setter
    def enable_dynamic_client_registration(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enable_dynamic_client_registration", value)

    @property
    @pulumi.getter(name="enableIdtokenApi2")
    def enable_idtoken_api2(self) -> Optional[pulumi.Input[bool]]:
        """
        Whether ID tokens can be used to authorize some types of requests to API v2 (true) or not (false).
        """
        return pulumi.get(self, "enable_idtoken_api2")

    @enable_idtoken_api2.setter
    def enable_idtoken_api2(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enable_idtoken_api2", value)

    @property
    @pulumi.getter(name="enableLegacyLogsSearchV2")
    def enable_legacy_logs_search_v2(self) -> Optional[pulumi.Input[bool]]:
        """
        Indicates whether to use the older v2 legacy logs search.
        """
        return pulumi.get(self, "enable_legacy_logs_search_v2")

    @enable_legacy_logs_search_v2.setter
    def enable_legacy_logs_search_v2(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enable_legacy_logs_search_v2", value)

    @property
    @pulumi.getter(name="enableLegacyProfile")
    def enable_legacy_profile(self) -> Optional[pulumi.Input[bool]]:
        """
        Whether ID tokens and the userinfo endpoint includes a complete user profile (true) or only OpenID Connect claims (false).
        """
        return pulumi.get(self, "enable_legacy_profile")

    @enable_legacy_profile.setter
    def enable_legacy_profile(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enable_legacy_profile", value)

    @property
    @pulumi.getter(name="enablePipeline2")
    def enable_pipeline2(self) -> Optional[pulumi.Input[bool]]:
        """
        Indicates whether advanced API Authorization scenarios are enabled.
        """
        return pulumi.get(self, "enable_pipeline2")

    @enable_pipeline2.setter
    def enable_pipeline2(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enable_pipeline2", value)

    @property
    @pulumi.getter(name="enablePublicSignupUserExistsError")
    def enable_public_signup_user_exists_error(self) -> Optional[pulumi.Input[bool]]:
        """
        Indicates whether the public sign up process shows a `user_exists` error if the user already exists.
        """
        return pulumi.get(self, "enable_public_signup_user_exists_error")

    @enable_public_signup_user_exists_error.setter
    def enable_public_signup_user_exists_error(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enable_public_signup_user_exists_error", value)

    @property
    @pulumi.getter(name="mfaShowFactorListOnEnrollment")
    def mfa_show_factor_list_on_enrollment(self) -> Optional[pulumi.Input[bool]]:
        """
        Used to allow users to pick which factor to enroll with from the list of available MFA factors.
        """
        return pulumi.get(self, "mfa_show_factor_list_on_enrollment")

    @mfa_show_factor_list_on_enrollment.setter
    def mfa_show_factor_list_on_enrollment(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "mfa_show_factor_list_on_enrollment", value)

    @property
    @pulumi.getter(name="noDiscloseEnterpriseConnections")
    def no_disclose_enterprise_connections(self) -> Optional[pulumi.Input[bool]]:
        """
        Do not Publish Enterprise Connections Information with IdP domains on the lock configuration file.
        """
        return pulumi.get(self, "no_disclose_enterprise_connections")

    @no_disclose_enterprise_connections.setter
    def no_disclose_enterprise_connections(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "no_disclose_enterprise_connections", value)

    @property
    @pulumi.getter(name="revokeRefreshTokenGrant")
    def revoke_refresh_token_grant(self) -> Optional[pulumi.Input[bool]]:
        """
        Delete underlying grant when a refresh token is revoked via the Authentication API.
        """
        return pulumi.get(self, "revoke_refresh_token_grant")

    @revoke_refresh_token_grant.setter
    def revoke_refresh_token_grant(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "revoke_refresh_token_grant", value)

    @property
    @pulumi.getter(name="universalLogin")
    def universal_login(self) -> Optional[pulumi.Input[bool]]:
        """
        Indicates whether the New Universal Login Experience is enabled.
        """
        warnings.warn("""This attribute is deprecated. Use the `universal_login_experience` attribute on the `auth0_prompt` resource to toggle the new or classic experience instead.""", DeprecationWarning)
        pulumi.log.warn("""universal_login is deprecated: This attribute is deprecated. Use the `universal_login_experience` attribute on the `auth0_prompt` resource to toggle the new or classic experience instead.""")

        return pulumi.get(self, "universal_login")

    @universal_login.setter
    def universal_login(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "universal_login", value)

    @property
    @pulumi.getter(name="useScopeDescriptionsForConsent")
    def use_scope_descriptions_for_consent(self) -> Optional[pulumi.Input[bool]]:
        """
        Indicates whether to use scope descriptions for consent.
        """
        return pulumi.get(self, "use_scope_descriptions_for_consent")

    @use_scope_descriptions_for_consent.setter
    def use_scope_descriptions_for_consent(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "use_scope_descriptions_for_consent", value)


@pulumi.input_type
class TenantGuardianMfaPageArgs:
    def __init__(__self__, *,
                 enabled: pulumi.Input[bool],
                 html: pulumi.Input[str]):
        """
        :param pulumi.Input[bool] enabled: Indicates whether to use the custom Guardian page.
        :param pulumi.Input[str] html: HTML format with supported Liquid syntax. Customized content of the Guardian page.
        """
        pulumi.set(__self__, "enabled", enabled)
        pulumi.set(__self__, "html", html)

    @property
    @pulumi.getter
    def enabled(self) -> pulumi.Input[bool]:
        """
        Indicates whether to use the custom Guardian page.
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: pulumi.Input[bool]):
        pulumi.set(self, "enabled", value)

    @property
    @pulumi.getter
    def html(self) -> pulumi.Input[str]:
        """
        HTML format with supported Liquid syntax. Customized content of the Guardian page.
        """
        return pulumi.get(self, "html")

    @html.setter
    def html(self, value: pulumi.Input[str]):
        pulumi.set(self, "html", value)


@pulumi.input_type
class TenantSessionCookieArgs:
    def __init__(__self__, *,
                 mode: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] mode: Behavior of tenant session cookie. Accepts either "persistent" or "non-persistent".
        """
        if mode is not None:
            pulumi.set(__self__, "mode", mode)

    @property
    @pulumi.getter
    def mode(self) -> Optional[pulumi.Input[str]]:
        """
        Behavior of tenant session cookie. Accepts either "persistent" or "non-persistent".
        """
        return pulumi.get(self, "mode")

    @mode.setter
    def mode(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "mode", value)


@pulumi.input_type
class TenantUniversalLoginArgs:
    def __init__(__self__, *,
                 colors: Optional[pulumi.Input['TenantUniversalLoginColorsArgs']] = None):
        """
        :param pulumi.Input['TenantUniversalLoginColorsArgs'] colors: Configuration settings for Universal Login colors.
        """
        if colors is not None:
            pulumi.set(__self__, "colors", colors)

    @property
    @pulumi.getter
    def colors(self) -> Optional[pulumi.Input['TenantUniversalLoginColorsArgs']]:
        """
        Configuration settings for Universal Login colors.
        """
        return pulumi.get(self, "colors")

    @colors.setter
    def colors(self, value: Optional[pulumi.Input['TenantUniversalLoginColorsArgs']]):
        pulumi.set(self, "colors", value)


@pulumi.input_type
class TenantUniversalLoginColorsArgs:
    def __init__(__self__, *,
                 page_background: Optional[pulumi.Input[str]] = None,
                 primary: Optional[pulumi.Input[str]] = None):
        if page_background is not None:
            pulumi.set(__self__, "page_background", page_background)
        if primary is not None:
            pulumi.set(__self__, "primary", primary)

    @property
    @pulumi.getter(name="pageBackground")
    def page_background(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "page_background")

    @page_background.setter
    def page_background(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "page_background", value)

    @property
    @pulumi.getter
    def primary(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "primary")

    @primary.setter
    def primary(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "primary", value)


@pulumi.input_type
class TriggerActionsActionArgs:
    def __init__(__self__, *,
                 display_name: pulumi.Input[str],
                 id: pulumi.Input[str]):
        """
        :param pulumi.Input[str] display_name: The display name of the action within the flow.
        :param pulumi.Input[str] id: Action ID.
        """
        pulumi.set(__self__, "display_name", display_name)
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> pulumi.Input[str]:
        """
        The display name of the action within the flow.
        """
        return pulumi.get(self, "display_name")

    @display_name.setter
    def display_name(self, value: pulumi.Input[str]):
        pulumi.set(self, "display_name", value)

    @property
    @pulumi.getter
    def id(self) -> pulumi.Input[str]:
        """
        Action ID.
        """
        return pulumi.get(self, "id")

    @id.setter
    def id(self, value: pulumi.Input[str]):
        pulumi.set(self, "id", value)


@pulumi.input_type
class TriggerBindingActionArgs:
    def __init__(__self__, *,
                 display_name: pulumi.Input[str],
                 id: pulumi.Input[str]):
        """
        :param pulumi.Input[str] display_name: The display name of the action within the flow.
        :param pulumi.Input[str] id: Action ID.
        """
        pulumi.set(__self__, "display_name", display_name)
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> pulumi.Input[str]:
        """
        The display name of the action within the flow.
        """
        return pulumi.get(self, "display_name")

    @display_name.setter
    def display_name(self, value: pulumi.Input[str]):
        pulumi.set(self, "display_name", value)

    @property
    @pulumi.getter
    def id(self) -> pulumi.Input[str]:
        """
        Action ID.
        """
        return pulumi.get(self, "id")

    @id.setter
    def id(self, value: pulumi.Input[str]):
        pulumi.set(self, "id", value)


@pulumi.input_type
class UserPermissionArgs:
    def __init__(__self__, *,
                 description: Optional[pulumi.Input[str]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 resource_server_identifier: Optional[pulumi.Input[str]] = None,
                 resource_server_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] name: Name of the user. This value can only be updated if the connection is a database connection (using the Auth0 store), a passwordless connection (email or sms) or has disabled 'Sync user profile attributes at each login'. For more information, see: [Configure Identity Provider Connection for User Profile Updates](https://auth0.com/docs/manage-users/user-accounts/user-profiles/configure-connection-sync-with-auth0).
        """
        if description is not None:
            pulumi.set(__self__, "description", description)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if resource_server_identifier is not None:
            pulumi.set(__self__, "resource_server_identifier", resource_server_identifier)
        if resource_server_name is not None:
            pulumi.set(__self__, "resource_server_name", resource_server_name)

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "description")

    @description.setter
    def description(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "description", value)

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        """
        Name of the user. This value can only be updated if the connection is a database connection (using the Auth0 store), a passwordless connection (email or sms) or has disabled 'Sync user profile attributes at each login'. For more information, see: [Configure Identity Provider Connection for User Profile Updates](https://auth0.com/docs/manage-users/user-accounts/user-profiles/configure-connection-sync-with-auth0).
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter(name="resourceServerIdentifier")
    def resource_server_identifier(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "resource_server_identifier")

    @resource_server_identifier.setter
    def resource_server_identifier(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "resource_server_identifier", value)

    @property
    @pulumi.getter(name="resourceServerName")
    def resource_server_name(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "resource_server_name")

    @resource_server_name.setter
    def resource_server_name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "resource_server_name", value)


@pulumi.input_type
class UserPermissionsPermissionArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[str],
                 resource_server_identifier: pulumi.Input[str],
                 description: Optional[pulumi.Input[str]] = None,
                 resource_server_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] name: Name of permission.
        :param pulumi.Input[str] resource_server_identifier: Resource server identifier associated with the permission.
        :param pulumi.Input[str] description: Description of the permission.
        :param pulumi.Input[str] resource_server_name: Name of resource server that the permission is associated with.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "resource_server_identifier", resource_server_identifier)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if resource_server_name is not None:
            pulumi.set(__self__, "resource_server_name", resource_server_name)

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[str]:
        """
        Name of permission.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[str]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter(name="resourceServerIdentifier")
    def resource_server_identifier(self) -> pulumi.Input[str]:
        """
        Resource server identifier associated with the permission.
        """
        return pulumi.get(self, "resource_server_identifier")

    @resource_server_identifier.setter
    def resource_server_identifier(self, value: pulumi.Input[str]):
        pulumi.set(self, "resource_server_identifier", value)

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[str]]:
        """
        Description of the permission.
        """
        return pulumi.get(self, "description")

    @description.setter
    def description(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "description", value)

    @property
    @pulumi.getter(name="resourceServerName")
    def resource_server_name(self) -> Optional[pulumi.Input[str]]:
        """
        Name of resource server that the permission is associated with.
        """
        return pulumi.get(self, "resource_server_name")

    @resource_server_name.setter
    def resource_server_name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "resource_server_name", value)


