# coding=utf-8
# *** WARNING: this file was generated by pulumi-language-python. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import builtins as _builtins
import warnings
import sys
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
    from typing import NotRequired, TypedDict, TypeAlias
else:
    from typing_extensions import NotRequired, TypedDict, TypeAlias
from . import _utilities

__all__ = ['EmailCustomizationArgs', 'EmailCustomization']

@pulumi.input_type
class EmailCustomizationArgs:
    def __init__(__self__, *,
                 brand_id: pulumi.Input[_builtins.str],
                 template_name: pulumi.Input[_builtins.str],
                 body: Optional[pulumi.Input[_builtins.str]] = None,
                 force_is_default: Optional[pulumi.Input[_builtins.str]] = None,
                 is_default: Optional[pulumi.Input[_builtins.bool]] = None,
                 language: Optional[pulumi.Input[_builtins.str]] = None,
                 subject: Optional[pulumi.Input[_builtins.str]] = None):
        """
        The set of arguments for constructing a EmailCustomization resource.
        :param pulumi.Input[_builtins.str] brand_id: Brand ID
        :param pulumi.Input[_builtins.str] template_name: Template Name - Example values: `AccountLockout`,`ADForgotPassword`,`ADForgotPasswordDenied`,`ADSelfServiceUnlock`,`ADUserActivation`,`AuthenticatorEnrolled`,`AuthenticatorReset`,`ChangeEmailConfirmation`,`EmailChallenge`,`EmailChangeConfirmation`,`EmailFactorVerification`,`ForgotPassword`,`ForgotPasswordDenied`,`IGAReviewerEndNotification`,`IGAReviewerNotification`,`IGAReviewerPendingNotification`,`IGAReviewerReassigned`,`LDAPForgotPassword`,`LDAPForgotPasswordDenied`,`LDAPSelfServiceUnlock`,`LDAPUserActivation`,`MyAccountChangeConfirmation`,`NewSignOnNotification`,`OktaVerifyActivation`,`PasswordChanged`,`PasswordResetByAdmin`,`PendingEmailChange`,`RegistrationActivation`,`RegistrationEmailVerification`,`SelfServiceUnlock`,`SelfServiceUnlockOnUnlockedAccount`,`UserActivation`
        :param pulumi.Input[_builtins.str] body: The body of the customization
        :param pulumi.Input[_builtins.str] force_is_default: Force is_default on the create and delete by deleting all email customizations. Comma separated string with values of 'create' or 'destroy' or both `create,destroy'.
        :param pulumi.Input[_builtins.bool] is_default: Whether the customization is the default
        :param pulumi.Input[_builtins.str] language: The language supported by the customization - Example values from [supported languages](https://developer.okta.com/docs/reference/api/brands/#supported-languages)
        :param pulumi.Input[_builtins.str] subject: The subject of the customization
        """
        pulumi.set(__self__, "brand_id", brand_id)
        pulumi.set(__self__, "template_name", template_name)
        if body is not None:
            pulumi.set(__self__, "body", body)
        if force_is_default is not None:
            warnings.warn("""force_is_default is deprecated and now is a no-op in behavior. Rely upon the depends_on meta argument to force dependency of secondary templates to the default template""", DeprecationWarning)
            pulumi.log.warn("""force_is_default is deprecated: force_is_default is deprecated and now is a no-op in behavior. Rely upon the depends_on meta argument to force dependency of secondary templates to the default template""")
        if force_is_default is not None:
            pulumi.set(__self__, "force_is_default", force_is_default)
        if is_default is not None:
            pulumi.set(__self__, "is_default", is_default)
        if language is not None:
            pulumi.set(__self__, "language", language)
        if subject is not None:
            pulumi.set(__self__, "subject", subject)

    @_builtins.property
    @pulumi.getter(name="brandId")
    def brand_id(self) -> pulumi.Input[_builtins.str]:
        """
        Brand ID
        """
        return pulumi.get(self, "brand_id")

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

    @_builtins.property
    @pulumi.getter(name="templateName")
    def template_name(self) -> pulumi.Input[_builtins.str]:
        """
        Template Name - Example values: `AccountLockout`,`ADForgotPassword`,`ADForgotPasswordDenied`,`ADSelfServiceUnlock`,`ADUserActivation`,`AuthenticatorEnrolled`,`AuthenticatorReset`,`ChangeEmailConfirmation`,`EmailChallenge`,`EmailChangeConfirmation`,`EmailFactorVerification`,`ForgotPassword`,`ForgotPasswordDenied`,`IGAReviewerEndNotification`,`IGAReviewerNotification`,`IGAReviewerPendingNotification`,`IGAReviewerReassigned`,`LDAPForgotPassword`,`LDAPForgotPasswordDenied`,`LDAPSelfServiceUnlock`,`LDAPUserActivation`,`MyAccountChangeConfirmation`,`NewSignOnNotification`,`OktaVerifyActivation`,`PasswordChanged`,`PasswordResetByAdmin`,`PendingEmailChange`,`RegistrationActivation`,`RegistrationEmailVerification`,`SelfServiceUnlock`,`SelfServiceUnlockOnUnlockedAccount`,`UserActivation`
        """
        return pulumi.get(self, "template_name")

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

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

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

    @_builtins.property
    @pulumi.getter(name="forceIsDefault")
    @_utilities.deprecated("""force_is_default is deprecated and now is a no-op in behavior. Rely upon the depends_on meta argument to force dependency of secondary templates to the default template""")
    def force_is_default(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Force is_default on the create and delete by deleting all email customizations. Comma separated string with values of 'create' or 'destroy' or both `create,destroy'.
        """
        return pulumi.get(self, "force_is_default")

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

    @_builtins.property
    @pulumi.getter(name="isDefault")
    def is_default(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether the customization is the default
        """
        return pulumi.get(self, "is_default")

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

    @_builtins.property
    @pulumi.getter
    def language(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The language supported by the customization - Example values from [supported languages](https://developer.okta.com/docs/reference/api/brands/#supported-languages)
        """
        return pulumi.get(self, "language")

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

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

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


@pulumi.input_type
class _EmailCustomizationState:
    def __init__(__self__, *,
                 body: Optional[pulumi.Input[_builtins.str]] = None,
                 brand_id: Optional[pulumi.Input[_builtins.str]] = None,
                 force_is_default: Optional[pulumi.Input[_builtins.str]] = None,
                 is_default: Optional[pulumi.Input[_builtins.bool]] = None,
                 language: Optional[pulumi.Input[_builtins.str]] = None,
                 links: Optional[pulumi.Input[_builtins.str]] = None,
                 subject: Optional[pulumi.Input[_builtins.str]] = None,
                 template_name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        Input properties used for looking up and filtering EmailCustomization resources.
        :param pulumi.Input[_builtins.str] body: The body of the customization
        :param pulumi.Input[_builtins.str] brand_id: Brand ID
        :param pulumi.Input[_builtins.str] force_is_default: Force is_default on the create and delete by deleting all email customizations. Comma separated string with values of 'create' or 'destroy' or both `create,destroy'.
        :param pulumi.Input[_builtins.bool] is_default: Whether the customization is the default
        :param pulumi.Input[_builtins.str] language: The language supported by the customization - Example values from [supported languages](https://developer.okta.com/docs/reference/api/brands/#supported-languages)
        :param pulumi.Input[_builtins.str] links: Link relations for this object - JSON HAL - Discoverable resources related to the email template
        :param pulumi.Input[_builtins.str] subject: The subject of the customization
        :param pulumi.Input[_builtins.str] template_name: Template Name - Example values: `AccountLockout`,`ADForgotPassword`,`ADForgotPasswordDenied`,`ADSelfServiceUnlock`,`ADUserActivation`,`AuthenticatorEnrolled`,`AuthenticatorReset`,`ChangeEmailConfirmation`,`EmailChallenge`,`EmailChangeConfirmation`,`EmailFactorVerification`,`ForgotPassword`,`ForgotPasswordDenied`,`IGAReviewerEndNotification`,`IGAReviewerNotification`,`IGAReviewerPendingNotification`,`IGAReviewerReassigned`,`LDAPForgotPassword`,`LDAPForgotPasswordDenied`,`LDAPSelfServiceUnlock`,`LDAPUserActivation`,`MyAccountChangeConfirmation`,`NewSignOnNotification`,`OktaVerifyActivation`,`PasswordChanged`,`PasswordResetByAdmin`,`PendingEmailChange`,`RegistrationActivation`,`RegistrationEmailVerification`,`SelfServiceUnlock`,`SelfServiceUnlockOnUnlockedAccount`,`UserActivation`
        """
        if body is not None:
            pulumi.set(__self__, "body", body)
        if brand_id is not None:
            pulumi.set(__self__, "brand_id", brand_id)
        if force_is_default is not None:
            warnings.warn("""force_is_default is deprecated and now is a no-op in behavior. Rely upon the depends_on meta argument to force dependency of secondary templates to the default template""", DeprecationWarning)
            pulumi.log.warn("""force_is_default is deprecated: force_is_default is deprecated and now is a no-op in behavior. Rely upon the depends_on meta argument to force dependency of secondary templates to the default template""")
        if force_is_default is not None:
            pulumi.set(__self__, "force_is_default", force_is_default)
        if is_default is not None:
            pulumi.set(__self__, "is_default", is_default)
        if language is not None:
            pulumi.set(__self__, "language", language)
        if links is not None:
            pulumi.set(__self__, "links", links)
        if subject is not None:
            pulumi.set(__self__, "subject", subject)
        if template_name is not None:
            pulumi.set(__self__, "template_name", template_name)

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

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

    @_builtins.property
    @pulumi.getter(name="brandId")
    def brand_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Brand ID
        """
        return pulumi.get(self, "brand_id")

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

    @_builtins.property
    @pulumi.getter(name="forceIsDefault")
    @_utilities.deprecated("""force_is_default is deprecated and now is a no-op in behavior. Rely upon the depends_on meta argument to force dependency of secondary templates to the default template""")
    def force_is_default(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Force is_default on the create and delete by deleting all email customizations. Comma separated string with values of 'create' or 'destroy' or both `create,destroy'.
        """
        return pulumi.get(self, "force_is_default")

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

    @_builtins.property
    @pulumi.getter(name="isDefault")
    def is_default(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether the customization is the default
        """
        return pulumi.get(self, "is_default")

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

    @_builtins.property
    @pulumi.getter
    def language(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The language supported by the customization - Example values from [supported languages](https://developer.okta.com/docs/reference/api/brands/#supported-languages)
        """
        return pulumi.get(self, "language")

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

    @_builtins.property
    @pulumi.getter
    def links(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Link relations for this object - JSON HAL - Discoverable resources related to the email template
        """
        return pulumi.get(self, "links")

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

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

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

    @_builtins.property
    @pulumi.getter(name="templateName")
    def template_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Template Name - Example values: `AccountLockout`,`ADForgotPassword`,`ADForgotPasswordDenied`,`ADSelfServiceUnlock`,`ADUserActivation`,`AuthenticatorEnrolled`,`AuthenticatorReset`,`ChangeEmailConfirmation`,`EmailChallenge`,`EmailChangeConfirmation`,`EmailFactorVerification`,`ForgotPassword`,`ForgotPasswordDenied`,`IGAReviewerEndNotification`,`IGAReviewerNotification`,`IGAReviewerPendingNotification`,`IGAReviewerReassigned`,`LDAPForgotPassword`,`LDAPForgotPasswordDenied`,`LDAPSelfServiceUnlock`,`LDAPUserActivation`,`MyAccountChangeConfirmation`,`NewSignOnNotification`,`OktaVerifyActivation`,`PasswordChanged`,`PasswordResetByAdmin`,`PendingEmailChange`,`RegistrationActivation`,`RegistrationEmailVerification`,`SelfServiceUnlock`,`SelfServiceUnlockOnUnlockedAccount`,`UserActivation`
        """
        return pulumi.get(self, "template_name")

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


@pulumi.type_token("okta:index/emailCustomization:EmailCustomization")
class EmailCustomization(pulumi.CustomResource):
    @overload
    def __init__(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 body: Optional[pulumi.Input[_builtins.str]] = None,
                 brand_id: Optional[pulumi.Input[_builtins.str]] = None,
                 force_is_default: Optional[pulumi.Input[_builtins.str]] = None,
                 is_default: Optional[pulumi.Input[_builtins.bool]] = None,
                 language: Optional[pulumi.Input[_builtins.str]] = None,
                 subject: Optional[pulumi.Input[_builtins.str]] = None,
                 template_name: Optional[pulumi.Input[_builtins.str]] = None,
                 __props__=None):
        """
        Create an email customization of an email template belonging to a brand in an Okta organization.
        		Use this resource to create an [email
        		customization](https://developer.okta.com/docs/reference/api/brands/#create-email-customization)
        		of an email template belonging to a brand in an Okta organization.
        		> Okta's public API is strict regarding the behavior of the 'is_default'
        		property in [an email
        		customization](https://developer.okta.com/docs/reference/api/brands/#email-customization).
        		Make use of 'depends_on' meta argument to ensure the provider navigates email customization
        		language versions seamlessly. Have all secondary customizations depend on the primary
        		customization that is marked default. See Example Usage.
        		> Caveats for [creating an email
        		customization](https://developer.okta.com/docs/reference/api/brands/#response-body-19).
        		If this is the first customization being created for the email template, and
        		'is_default' is not set for the customization in its resource configuration, the
        		API will respond with the created customization marked as default. The API will
        		400 if the language parameter is not one of the supported languages or the body
        		parameter does not contain a required variable reference. The API will error 409
        		if 'is_default' is true and a default customization exists. The API will 404 for
        		an invalid 'brand_id' or 'template_name'.
        		> Caveats for [updating an email
        		customization](https://developer.okta.com/docs/reference/api/brands/#response-body-22).
        		If the 'is_default' parameter is true, the previous default email customization
        		has its 'is_default' set to false (see previous note about mitigating this with
        		'depends_on' meta argument). The API will 409 if there’s already another email
        		customization for the specified language or the 'is_default' parameter is false
        		and the email customization being updated is the default. The API will 400 if
        		the language parameter is not one of the supported locales or the body parameter
        		does not contain a required variable reference.  The API will 404 for an invalid
        		'brand_id' or 'template_name'.

        ## Example Usage

        ```python
        import pulumi
        import pulumi_okta as okta

        test = okta.get_brands()
        forgot_password = okta.get_email_customizations(brand_id=test.brands[0].id,
            template_name="ForgotPassword")
        forgot_password_en = okta.EmailCustomization("forgot_password_en",
            brand_id=test.brands[0].id,
            template_name="ForgotPassword",
            language="en",
            is_default=True,
            subject="Account password reset",
            body="Hi $$user.firstName,<br/><br/>Click this link to reset your password: $$resetPasswordLink")
        forgot_password_es = okta.EmailCustomization("forgot_password_es",
            brand_id=test.brands[0].id,
            template_name="ForgotPassword",
            language="es",
            subject="Restablecimiento de contraseña de cuenta",
            body="Hola $$user.firstName,<br/><br/>Haga clic en este enlace para restablecer tu contraseña: $$resetPasswordLink",
            opts = pulumi.ResourceOptions(depends_on=[forgot_password_en]))
        ```

        ## Import

        ```sh
        $ pulumi import okta:index/emailCustomization:EmailCustomization example <customization_id>/<brand_id>/<template_name>
        ```

        :param str resource_name: The name of the resource.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[_builtins.str] body: The body of the customization
        :param pulumi.Input[_builtins.str] brand_id: Brand ID
        :param pulumi.Input[_builtins.str] force_is_default: Force is_default on the create and delete by deleting all email customizations. Comma separated string with values of 'create' or 'destroy' or both `create,destroy'.
        :param pulumi.Input[_builtins.bool] is_default: Whether the customization is the default
        :param pulumi.Input[_builtins.str] language: The language supported by the customization - Example values from [supported languages](https://developer.okta.com/docs/reference/api/brands/#supported-languages)
        :param pulumi.Input[_builtins.str] subject: The subject of the customization
        :param pulumi.Input[_builtins.str] template_name: Template Name - Example values: `AccountLockout`,`ADForgotPassword`,`ADForgotPasswordDenied`,`ADSelfServiceUnlock`,`ADUserActivation`,`AuthenticatorEnrolled`,`AuthenticatorReset`,`ChangeEmailConfirmation`,`EmailChallenge`,`EmailChangeConfirmation`,`EmailFactorVerification`,`ForgotPassword`,`ForgotPasswordDenied`,`IGAReviewerEndNotification`,`IGAReviewerNotification`,`IGAReviewerPendingNotification`,`IGAReviewerReassigned`,`LDAPForgotPassword`,`LDAPForgotPasswordDenied`,`LDAPSelfServiceUnlock`,`LDAPUserActivation`,`MyAccountChangeConfirmation`,`NewSignOnNotification`,`OktaVerifyActivation`,`PasswordChanged`,`PasswordResetByAdmin`,`PendingEmailChange`,`RegistrationActivation`,`RegistrationEmailVerification`,`SelfServiceUnlock`,`SelfServiceUnlockOnUnlockedAccount`,`UserActivation`
        """
        ...
    @overload
    def __init__(__self__,
                 resource_name: str,
                 args: EmailCustomizationArgs,
                 opts: Optional[pulumi.ResourceOptions] = None):
        """
        Create an email customization of an email template belonging to a brand in an Okta organization.
        		Use this resource to create an [email
        		customization](https://developer.okta.com/docs/reference/api/brands/#create-email-customization)
        		of an email template belonging to a brand in an Okta organization.
        		> Okta's public API is strict regarding the behavior of the 'is_default'
        		property in [an email
        		customization](https://developer.okta.com/docs/reference/api/brands/#email-customization).
        		Make use of 'depends_on' meta argument to ensure the provider navigates email customization
        		language versions seamlessly. Have all secondary customizations depend on the primary
        		customization that is marked default. See Example Usage.
        		> Caveats for [creating an email
        		customization](https://developer.okta.com/docs/reference/api/brands/#response-body-19).
        		If this is the first customization being created for the email template, and
        		'is_default' is not set for the customization in its resource configuration, the
        		API will respond with the created customization marked as default. The API will
        		400 if the language parameter is not one of the supported languages or the body
        		parameter does not contain a required variable reference. The API will error 409
        		if 'is_default' is true and a default customization exists. The API will 404 for
        		an invalid 'brand_id' or 'template_name'.
        		> Caveats for [updating an email
        		customization](https://developer.okta.com/docs/reference/api/brands/#response-body-22).
        		If the 'is_default' parameter is true, the previous default email customization
        		has its 'is_default' set to false (see previous note about mitigating this with
        		'depends_on' meta argument). The API will 409 if there’s already another email
        		customization for the specified language or the 'is_default' parameter is false
        		and the email customization being updated is the default. The API will 400 if
        		the language parameter is not one of the supported locales or the body parameter
        		does not contain a required variable reference.  The API will 404 for an invalid
        		'brand_id' or 'template_name'.

        ## Example Usage

        ```python
        import pulumi
        import pulumi_okta as okta

        test = okta.get_brands()
        forgot_password = okta.get_email_customizations(brand_id=test.brands[0].id,
            template_name="ForgotPassword")
        forgot_password_en = okta.EmailCustomization("forgot_password_en",
            brand_id=test.brands[0].id,
            template_name="ForgotPassword",
            language="en",
            is_default=True,
            subject="Account password reset",
            body="Hi $$user.firstName,<br/><br/>Click this link to reset your password: $$resetPasswordLink")
        forgot_password_es = okta.EmailCustomization("forgot_password_es",
            brand_id=test.brands[0].id,
            template_name="ForgotPassword",
            language="es",
            subject="Restablecimiento de contraseña de cuenta",
            body="Hola $$user.firstName,<br/><br/>Haga clic en este enlace para restablecer tu contraseña: $$resetPasswordLink",
            opts = pulumi.ResourceOptions(depends_on=[forgot_password_en]))
        ```

        ## Import

        ```sh
        $ pulumi import okta:index/emailCustomization:EmailCustomization example <customization_id>/<brand_id>/<template_name>
        ```

        :param str resource_name: The name of the resource.
        :param EmailCustomizationArgs args: The arguments to use to populate this resource's properties.
        :param pulumi.ResourceOptions opts: Options for the resource.
        """
        ...
    def __init__(__self__, resource_name: str, *args, **kwargs):
        resource_args, opts = _utilities.get_resource_args_opts(EmailCustomizationArgs, pulumi.ResourceOptions, *args, **kwargs)
        if resource_args is not None:
            __self__._internal_init(resource_name, opts, **resource_args.__dict__)
        else:
            __self__._internal_init(resource_name, *args, **kwargs)

    def _internal_init(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 body: Optional[pulumi.Input[_builtins.str]] = None,
                 brand_id: Optional[pulumi.Input[_builtins.str]] = None,
                 force_is_default: Optional[pulumi.Input[_builtins.str]] = None,
                 is_default: Optional[pulumi.Input[_builtins.bool]] = None,
                 language: Optional[pulumi.Input[_builtins.str]] = None,
                 subject: Optional[pulumi.Input[_builtins.str]] = None,
                 template_name: Optional[pulumi.Input[_builtins.str]] = None,
                 __props__=None):
        opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
        if not isinstance(opts, pulumi.ResourceOptions):
            raise TypeError('Expected resource options to be a ResourceOptions instance')
        if opts.id is None:
            if __props__ is not None:
                raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
            __props__ = EmailCustomizationArgs.__new__(EmailCustomizationArgs)

            __props__.__dict__["body"] = body
            if brand_id is None and not opts.urn:
                raise TypeError("Missing required property 'brand_id'")
            __props__.__dict__["brand_id"] = brand_id
            __props__.__dict__["force_is_default"] = force_is_default
            __props__.__dict__["is_default"] = is_default
            __props__.__dict__["language"] = language
            __props__.__dict__["subject"] = subject
            if template_name is None and not opts.urn:
                raise TypeError("Missing required property 'template_name'")
            __props__.__dict__["template_name"] = template_name
            __props__.__dict__["links"] = None
        super(EmailCustomization, __self__).__init__(
            'okta:index/emailCustomization:EmailCustomization',
            resource_name,
            __props__,
            opts)

    @staticmethod
    def get(resource_name: str,
            id: pulumi.Input[str],
            opts: Optional[pulumi.ResourceOptions] = None,
            body: Optional[pulumi.Input[_builtins.str]] = None,
            brand_id: Optional[pulumi.Input[_builtins.str]] = None,
            force_is_default: Optional[pulumi.Input[_builtins.str]] = None,
            is_default: Optional[pulumi.Input[_builtins.bool]] = None,
            language: Optional[pulumi.Input[_builtins.str]] = None,
            links: Optional[pulumi.Input[_builtins.str]] = None,
            subject: Optional[pulumi.Input[_builtins.str]] = None,
            template_name: Optional[pulumi.Input[_builtins.str]] = None) -> 'EmailCustomization':
        """
        Get an existing EmailCustomization resource's state with the given name, id, and optional extra
        properties used to qualify the lookup.

        :param str resource_name: The unique name of the resulting resource.
        :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[_builtins.str] body: The body of the customization
        :param pulumi.Input[_builtins.str] brand_id: Brand ID
        :param pulumi.Input[_builtins.str] force_is_default: Force is_default on the create and delete by deleting all email customizations. Comma separated string with values of 'create' or 'destroy' or both `create,destroy'.
        :param pulumi.Input[_builtins.bool] is_default: Whether the customization is the default
        :param pulumi.Input[_builtins.str] language: The language supported by the customization - Example values from [supported languages](https://developer.okta.com/docs/reference/api/brands/#supported-languages)
        :param pulumi.Input[_builtins.str] links: Link relations for this object - JSON HAL - Discoverable resources related to the email template
        :param pulumi.Input[_builtins.str] subject: The subject of the customization
        :param pulumi.Input[_builtins.str] template_name: Template Name - Example values: `AccountLockout`,`ADForgotPassword`,`ADForgotPasswordDenied`,`ADSelfServiceUnlock`,`ADUserActivation`,`AuthenticatorEnrolled`,`AuthenticatorReset`,`ChangeEmailConfirmation`,`EmailChallenge`,`EmailChangeConfirmation`,`EmailFactorVerification`,`ForgotPassword`,`ForgotPasswordDenied`,`IGAReviewerEndNotification`,`IGAReviewerNotification`,`IGAReviewerPendingNotification`,`IGAReviewerReassigned`,`LDAPForgotPassword`,`LDAPForgotPasswordDenied`,`LDAPSelfServiceUnlock`,`LDAPUserActivation`,`MyAccountChangeConfirmation`,`NewSignOnNotification`,`OktaVerifyActivation`,`PasswordChanged`,`PasswordResetByAdmin`,`PendingEmailChange`,`RegistrationActivation`,`RegistrationEmailVerification`,`SelfServiceUnlock`,`SelfServiceUnlockOnUnlockedAccount`,`UserActivation`
        """
        opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))

        __props__ = _EmailCustomizationState.__new__(_EmailCustomizationState)

        __props__.__dict__["body"] = body
        __props__.__dict__["brand_id"] = brand_id
        __props__.__dict__["force_is_default"] = force_is_default
        __props__.__dict__["is_default"] = is_default
        __props__.__dict__["language"] = language
        __props__.__dict__["links"] = links
        __props__.__dict__["subject"] = subject
        __props__.__dict__["template_name"] = template_name
        return EmailCustomization(resource_name, opts=opts, __props__=__props__)

    @_builtins.property
    @pulumi.getter
    def body(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        The body of the customization
        """
        return pulumi.get(self, "body")

    @_builtins.property
    @pulumi.getter(name="brandId")
    def brand_id(self) -> pulumi.Output[_builtins.str]:
        """
        Brand ID
        """
        return pulumi.get(self, "brand_id")

    @_builtins.property
    @pulumi.getter(name="forceIsDefault")
    @_utilities.deprecated("""force_is_default is deprecated and now is a no-op in behavior. Rely upon the depends_on meta argument to force dependency of secondary templates to the default template""")
    def force_is_default(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Force is_default on the create and delete by deleting all email customizations. Comma separated string with values of 'create' or 'destroy' or both `create,destroy'.
        """
        return pulumi.get(self, "force_is_default")

    @_builtins.property
    @pulumi.getter(name="isDefault")
    def is_default(self) -> pulumi.Output[Optional[_builtins.bool]]:
        """
        Whether the customization is the default
        """
        return pulumi.get(self, "is_default")

    @_builtins.property
    @pulumi.getter
    def language(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        The language supported by the customization - Example values from [supported languages](https://developer.okta.com/docs/reference/api/brands/#supported-languages)
        """
        return pulumi.get(self, "language")

    @_builtins.property
    @pulumi.getter
    def links(self) -> pulumi.Output[_builtins.str]:
        """
        Link relations for this object - JSON HAL - Discoverable resources related to the email template
        """
        return pulumi.get(self, "links")

    @_builtins.property
    @pulumi.getter
    def subject(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        The subject of the customization
        """
        return pulumi.get(self, "subject")

    @_builtins.property
    @pulumi.getter(name="templateName")
    def template_name(self) -> pulumi.Output[_builtins.str]:
        """
        Template Name - Example values: `AccountLockout`,`ADForgotPassword`,`ADForgotPasswordDenied`,`ADSelfServiceUnlock`,`ADUserActivation`,`AuthenticatorEnrolled`,`AuthenticatorReset`,`ChangeEmailConfirmation`,`EmailChallenge`,`EmailChangeConfirmation`,`EmailFactorVerification`,`ForgotPassword`,`ForgotPasswordDenied`,`IGAReviewerEndNotification`,`IGAReviewerNotification`,`IGAReviewerPendingNotification`,`IGAReviewerReassigned`,`LDAPForgotPassword`,`LDAPForgotPasswordDenied`,`LDAPSelfServiceUnlock`,`LDAPUserActivation`,`MyAccountChangeConfirmation`,`NewSignOnNotification`,`OktaVerifyActivation`,`PasswordChanged`,`PasswordResetByAdmin`,`PendingEmailChange`,`RegistrationActivation`,`RegistrationEmailVerification`,`SelfServiceUnlock`,`SelfServiceUnlockOnUnlockedAccount`,`UserActivation`
        """
        return pulumi.get(self, "template_name")

