# coding: utf-8

"""
    Marketing Emails

    No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)  # noqa: E501

    The version of the OpenAPI document: v3
    Generated by: https://openapi-generator.tech
"""


try:
    from inspect import getfullargspec
except ImportError:
    from inspect import getargspec as getfullargspec
import pprint
import re  # noqa: F401
import six

from hubspot.marketing.emails.configuration import Configuration


class EmailCreateRequest(object):
    """NOTE: This class is auto generated by OpenAPI Generator.
    Ref: https://openapi-generator.tech

    Do not edit the class manually.
    """

    """
    Attributes:
      openapi_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    openapi_types = {
        "feedback_survey_id": "str",
        "rss_data": "PublicRssEmailDetails",
        "subject": "str",
        "testing": "PublicEmailTestingDetails",
        "publish_date": "datetime",
        "language": "str",
        "business_unit_id": "int",
        "content": "PublicEmailContent",
        "webversion": "PublicWebversionDetails",
        "archived": "bool",
        "subscription_details": "PublicEmailSubscriptionDetails",
        "active_domain": "str",
        "name": "str",
        "campaign": "str",
        "_from": "PublicEmailFromDetails",
        "jitter_send_time": "bool",
        "state": "str",
        "to": "PublicEmailToDetails",
        "subcategory": "str",
        "send_on_publish": "bool",
    }

    attribute_map = {
        "feedback_survey_id": "feedbackSurveyId",
        "rss_data": "rssData",
        "subject": "subject",
        "testing": "testing",
        "publish_date": "publishDate",
        "language": "language",
        "business_unit_id": "businessUnitId",
        "content": "content",
        "webversion": "webversion",
        "archived": "archived",
        "subscription_details": "subscriptionDetails",
        "active_domain": "activeDomain",
        "name": "name",
        "campaign": "campaign",
        "_from": "from",
        "jitter_send_time": "jitterSendTime",
        "state": "state",
        "to": "to",
        "subcategory": "subcategory",
        "send_on_publish": "sendOnPublish",
    }

    def __init__(
        self,
        feedback_survey_id=None,
        rss_data=None,
        subject=None,
        testing=None,
        publish_date=None,
        language=None,
        business_unit_id=None,
        content=None,
        webversion=None,
        archived=None,
        subscription_details=None,
        active_domain=None,
        name=None,
        campaign=None,
        _from=None,
        jitter_send_time=None,
        state=None,
        to=None,
        subcategory=None,
        send_on_publish=None,
        local_vars_configuration=None,
    ):  # noqa: E501
        """EmailCreateRequest - a model defined in OpenAPI"""  # noqa: E501
        if local_vars_configuration is None:
            local_vars_configuration = Configuration.get_default_copy()
        self.local_vars_configuration = local_vars_configuration

        self._feedback_survey_id = None
        self._rss_data = None
        self._subject = None
        self._testing = None
        self._publish_date = None
        self._language = None
        self._business_unit_id = None
        self._content = None
        self._webversion = None
        self._archived = None
        self._subscription_details = None
        self._active_domain = None
        self._name = None
        self._campaign = None
        self.__from = None
        self._jitter_send_time = None
        self._state = None
        self._to = None
        self._subcategory = None
        self._send_on_publish = None
        self.discriminator = None

        if feedback_survey_id is not None:
            self.feedback_survey_id = feedback_survey_id
        if rss_data is not None:
            self.rss_data = rss_data
        if subject is not None:
            self.subject = subject
        if testing is not None:
            self.testing = testing
        if publish_date is not None:
            self.publish_date = publish_date
        if language is not None:
            self.language = language
        if business_unit_id is not None:
            self.business_unit_id = business_unit_id
        if content is not None:
            self.content = content
        if webversion is not None:
            self.webversion = webversion
        if archived is not None:
            self.archived = archived
        if subscription_details is not None:
            self.subscription_details = subscription_details
        if active_domain is not None:
            self.active_domain = active_domain
        self.name = name
        if campaign is not None:
            self.campaign = campaign
        if _from is not None:
            self._from = _from
        if jitter_send_time is not None:
            self.jitter_send_time = jitter_send_time
        if state is not None:
            self.state = state
        if to is not None:
            self.to = to
        if subcategory is not None:
            self.subcategory = subcategory
        if send_on_publish is not None:
            self.send_on_publish = send_on_publish

    @property
    def feedback_survey_id(self):
        """Gets the feedback_survey_id of this EmailCreateRequest.  # noqa: E501

        The ID of the feedback survey linked to the email.  # noqa: E501

        :return: The feedback_survey_id of this EmailCreateRequest.  # noqa: E501
        :rtype: str
        """
        return self._feedback_survey_id

    @feedback_survey_id.setter
    def feedback_survey_id(self, feedback_survey_id):
        """Sets the feedback_survey_id of this EmailCreateRequest.

        The ID of the feedback survey linked to the email.  # noqa: E501

        :param feedback_survey_id: The feedback_survey_id of this EmailCreateRequest.  # noqa: E501
        :type feedback_survey_id: str
        """

        self._feedback_survey_id = feedback_survey_id

    @property
    def rss_data(self):
        """Gets the rss_data of this EmailCreateRequest.  # noqa: E501


        :return: The rss_data of this EmailCreateRequest.  # noqa: E501
        :rtype: PublicRssEmailDetails
        """
        return self._rss_data

    @rss_data.setter
    def rss_data(self, rss_data):
        """Sets the rss_data of this EmailCreateRequest.


        :param rss_data: The rss_data of this EmailCreateRequest.  # noqa: E501
        :type rss_data: PublicRssEmailDetails
        """

        self._rss_data = rss_data

    @property
    def subject(self):
        """Gets the subject of this EmailCreateRequest.  # noqa: E501

        The subject of the email.  # noqa: E501

        :return: The subject of this EmailCreateRequest.  # noqa: E501
        :rtype: str
        """
        return self._subject

    @subject.setter
    def subject(self, subject):
        """Sets the subject of this EmailCreateRequest.

        The subject of the email.  # noqa: E501

        :param subject: The subject of this EmailCreateRequest.  # noqa: E501
        :type subject: str
        """

        self._subject = subject

    @property
    def testing(self):
        """Gets the testing of this EmailCreateRequest.  # noqa: E501


        :return: The testing of this EmailCreateRequest.  # noqa: E501
        :rtype: PublicEmailTestingDetails
        """
        return self._testing

    @testing.setter
    def testing(self, testing):
        """Sets the testing of this EmailCreateRequest.


        :param testing: The testing of this EmailCreateRequest.  # noqa: E501
        :type testing: PublicEmailTestingDetails
        """

        self._testing = testing

    @property
    def publish_date(self):
        """Gets the publish_date of this EmailCreateRequest.  # noqa: E501

        The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.  # noqa: E501

        :return: The publish_date of this EmailCreateRequest.  # noqa: E501
        :rtype: datetime
        """
        return self._publish_date

    @publish_date.setter
    def publish_date(self, publish_date):
        """Sets the publish_date of this EmailCreateRequest.

        The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.  # noqa: E501

        :param publish_date: The publish_date of this EmailCreateRequest.  # noqa: E501
        :type publish_date: datetime
        """

        self._publish_date = publish_date

    @property
    def language(self):
        """Gets the language of this EmailCreateRequest.  # noqa: E501


        :return: The language of this EmailCreateRequest.  # noqa: E501
        :rtype: str
        """
        return self._language

    @language.setter
    def language(self, language):
        """Sets the language of this EmailCreateRequest.


        :param language: The language of this EmailCreateRequest.  # noqa: E501
        :type language: str
        """
        allowed_values = [
            "af",
            "af-na",
            "af-za",
            "agq",
            "agq-cm",
            "ak",
            "ak-gh",
            "am",
            "am-et",
            "ann",
            "ann-ng",
            "ar",
            "ar-001",
            "ar-ae",
            "ar-bh",
            "ar-dj",
            "ar-dz",
            "ar-eg",
            "ar-eh",
            "ar-er",
            "ar-il",
            "ar-iq",
            "ar-jo",
            "ar-km",
            "ar-kw",
            "ar-lb",
            "ar-ly",
            "ar-ma",
            "ar-mr",
            "ar-om",
            "ar-ps",
            "ar-qa",
            "ar-sa",
            "ar-sd",
            "ar-so",
            "ar-ss",
            "ar-sy",
            "ar-td",
            "ar-tn",
            "ar-ye",
            "as",
            "asa",
            "asa-tz",
            "ast",
            "ast-es",
            "as-in",
            "az",
            "az-az",
            "bas",
            "bas-cm",
            "be",
            "bem",
            "bem-zm",
            "bez",
            "bez-tz",
            "be-by",
            "bg",
            "bgc",
            "bgc-in",
            "bg-bg",
            "bho",
            "bho-in",
            "bm",
            "bm-ml",
            "bn",
            "bn-bd",
            "bn-in",
            "bo",
            "bo-cn",
            "bo-in",
            "br",
            "brx",
            "brx-in",
            "br-fr",
            "bs",
            "bs-ba",
            "ca",
            "ca-ad",
            "ca-es",
            "ca-fr",
            "ca-it",
            "ccp",
            "ccp-bd",
            "ccp-in",
            "ce",
            "ceb",
            "ceb-ph",
            "ce-ru",
            "cgg",
            "cgg-ug",
            "chr",
            "chr-us",
            "ckb",
            "ckb-iq",
            "ckb-ir",
            "cs",
            "cs-cz",
            "cu",
            "cu-ru",
            "cv",
            "cv-ru",
            "cy",
            "cy-gb",
            "da",
            "dav",
            "dav-ke",
            "da-dk",
            "da-gl",
            "de",
            "de-at",
            "de-be",
            "de-ch",
            "de-de",
            "de-gr",
            "de-it",
            "de-li",
            "de-lu",
            "dje",
            "dje-ne",
            "doi",
            "doi-in",
            "dsb",
            "dsb-de",
            "dua",
            "dua-cm",
            "dyo",
            "dyo-sn",
            "dz",
            "dz-bt",
            "ebu",
            "ebu-ke",
            "ee",
            "ee-gh",
            "ee-tg",
            "el",
            "el-cy",
            "el-gr",
            "en",
            "en-001",
            "en-150",
            "en-ae",
            "en-ag",
            "en-ai",
            "en-as",
            "en-at",
            "en-au",
            "en-bb",
            "en-be",
            "en-bi",
            "en-bm",
            "en-bs",
            "en-bw",
            "en-bz",
            "en-ca",
            "en-cc",
            "en-ch",
            "en-ck",
            "en-cm",
            "en-cn",
            "en-cx",
            "en-cy",
            "en-de",
            "en-dg",
            "en-dk",
            "en-dm",
            "en-ee",
            "en-er",
            "en-fi",
            "en-fj",
            "en-fk",
            "en-fm",
            "en-fr",
            "en-gb",
            "en-gd",
            "en-gg",
            "en-gh",
            "en-gi",
            "en-gm",
            "en-gu",
            "en-gy",
            "en-hk",
            "en-ie",
            "en-il",
            "en-im",
            "en-in",
            "en-io",
            "en-je",
            "en-jm",
            "en-ke",
            "en-ki",
            "en-kn",
            "en-ky",
            "en-lc",
            "en-lr",
            "en-ls",
            "en-lu",
            "en-mg",
            "en-mh",
            "en-mo",
            "en-mp",
            "en-ms",
            "en-mt",
            "en-mu",
            "en-mv",
            "en-mw",
            "en-mx",
            "en-my",
            "en-na",
            "en-nf",
            "en-ng",
            "en-nl",
            "en-nr",
            "en-nu",
            "en-nz",
            "en-pg",
            "en-ph",
            "en-pk",
            "en-pn",
            "en-pr",
            "en-pw",
            "en-rw",
            "en-sb",
            "en-sc",
            "en-sd",
            "en-se",
            "en-sg",
            "en-sh",
            "en-si",
            "en-sl",
            "en-ss",
            "en-sx",
            "en-sz",
            "en-tc",
            "en-tk",
            "en-to",
            "en-tt",
            "en-tv",
            "en-tz",
            "en-ug",
            "en-um",
            "en-us",
            "en-vc",
            "en-vg",
            "en-vi",
            "en-vu",
            "en-ws",
            "en-za",
            "en-zm",
            "en-zw",
            "eo",
            "eo-001",
            "es",
            "es-419",
            "es-ar",
            "es-bo",
            "es-br",
            "es-bz",
            "es-cl",
            "es-co",
            "es-cr",
            "es-cu",
            "es-do",
            "es-ea",
            "es-ec",
            "es-es",
            "es-gq",
            "es-gt",
            "es-hn",
            "es-ic",
            "es-mx",
            "es-ni",
            "es-pa",
            "es-pe",
            "es-ph",
            "es-pr",
            "es-py",
            "es-sv",
            "es-us",
            "es-uy",
            "es-ve",
            "et",
            "et-ee",
            "eu",
            "eu-es",
            "ewo",
            "ewo-cm",
            "fa",
            "fa-af",
            "fa-ir",
            "ff",
            "ff-bf",
            "ff-cm",
            "ff-gh",
            "ff-gm",
            "ff-gn",
            "ff-gw",
            "ff-lr",
            "ff-mr",
            "ff-ne",
            "ff-ng",
            "ff-sl",
            "ff-sn",
            "fi",
            "fil",
            "fil-ph",
            "fi-fi",
            "fo",
            "fo-dk",
            "fo-fo",
            "fr",
            "frr",
            "frr-de",
            "fr-be",
            "fr-bf",
            "fr-bi",
            "fr-bj",
            "fr-bl",
            "fr-ca",
            "fr-cd",
            "fr-cf",
            "fr-cg",
            "fr-ch",
            "fr-ci",
            "fr-cm",
            "fr-dj",
            "fr-dz",
            "fr-fr",
            "fr-ga",
            "fr-gf",
            "fr-gn",
            "fr-gp",
            "fr-gq",
            "fr-ht",
            "fr-km",
            "fr-lu",
            "fr-ma",
            "fr-mc",
            "fr-mf",
            "fr-mg",
            "fr-ml",
            "fr-mq",
            "fr-mr",
            "fr-mu",
            "fr-nc",
            "fr-ne",
            "fr-pf",
            "fr-pm",
            "fr-re",
            "fr-rw",
            "fr-sc",
            "fr-sn",
            "fr-sy",
            "fr-td",
            "fr-tg",
            "fr-tn",
            "fr-vu",
            "fr-wf",
            "fr-yt",
            "fur",
            "fur-it",
            "fy",
            "fy-nl",
            "ga",
            "ga-gb",
            "ga-ie",
            "gd",
            "gd-gb",
            "gl",
            "gl-es",
            "gsw",
            "gsw-ch",
            "gsw-fr",
            "gsw-li",
            "gu",
            "guz",
            "guz-ke",
            "gu-in",
            "gv",
            "gv-im",
            "ha",
            "haw",
            "haw-us",
            "ha-gh",
            "ha-ne",
            "ha-ng",
            "he",
            "hi",
            "hi-in",
            "hr",
            "hr-ba",
            "hr-hr",
            "hsb",
            "hsb-de",
            "hu",
            "hu-hu",
            "hy",
            "hy-am",
            "ia",
            "ia-001",
            "id",
            "ig",
            "ig-ng",
            "ii",
            "ii-cn",
            "id-id",
            "is",
            "is-is",
            "it",
            "it-ch",
            "it-it",
            "it-sm",
            "it-va",
            "he-il",
            "ja",
            "ja-jp",
            "jgo",
            "jgo-cm",
            "yi",
            "yi-001",
            "jmc",
            "jmc-tz",
            "jv",
            "jv-id",
            "ka",
            "kab",
            "kab-dz",
            "kam",
            "kam-ke",
            "ka-ge",
            "kde",
            "kde-tz",
            "kea",
            "kea-cv",
            "kgp",
            "kgp-br",
            "khq",
            "khq-ml",
            "ki",
            "ki-ke",
            "kk",
            "kkj",
            "kkj-cm",
            "kk-kz",
            "kl",
            "kln",
            "kln-ke",
            "kl-gl",
            "km",
            "km-kh",
            "kn",
            "kn-in",
            "ko",
            "kok",
            "kok-in",
            "ko-kp",
            "ko-kr",
            "ks",
            "ksb",
            "ksb-tz",
            "ksf",
            "ksf-cm",
            "ksh",
            "ksh-de",
            "ks-in",
            "ku",
            "ku-tr",
            "kw",
            "kw-gb",
            "ky",
            "ky-kg",
            "lag",
            "lag-tz",
            "lb",
            "lb-lu",
            "lg",
            "lg-ug",
            "lkt",
            "lkt-us",
            "ln",
            "ln-ao",
            "ln-cd",
            "ln-cf",
            "ln-cg",
            "lo",
            "lo-la",
            "lrc",
            "lrc-iq",
            "lrc-ir",
            "lt",
            "lt-lt",
            "lu",
            "luo",
            "luo-ke",
            "luy",
            "luy-ke",
            "lu-cd",
            "lv",
            "lv-lv",
            "mai",
            "mai-in",
            "mas",
            "mas-ke",
            "mas-tz",
            "mdf",
            "mdf-ru",
            "mer",
            "mer-ke",
            "mfe",
            "mfe-mu",
            "mg",
            "mgh",
            "mgh-mz",
            "mgo",
            "mgo-cm",
            "mg-mg",
            "mi",
            "mi-nz",
            "mk",
            "mk-mk",
            "ml",
            "ml-in",
            "mn",
            "mni",
            "mni-in",
            "mn-mn",
            "mr",
            "mr-in",
            "ms",
            "ms-bn",
            "ms-id",
            "ms-my",
            "ms-sg",
            "mt",
            "mt-mt",
            "mua",
            "mua-cm",
            "my",
            "my-mm",
            "mzn",
            "mzn-ir",
            "naq",
            "naq-na",
            "nb",
            "nb-no",
            "nb-sj",
            "nd",
            "nds",
            "nds-de",
            "nds-nl",
            "nd-zw",
            "ne",
            "ne-in",
            "ne-np",
            "nl",
            "nl-aw",
            "nl-be",
            "nl-bq",
            "nl-ch",
            "nl-cw",
            "nl-lu",
            "nl-nl",
            "nl-sr",
            "nl-sx",
            "nmg",
            "nmg-cm",
            "nn",
            "nnh",
            "nnh-cm",
            "nn-no",
            "no",
            "no-no",
            "nus",
            "nus-ss",
            "nyn",
            "nyn-ug",
            "oc",
            "oc-es",
            "oc-fr",
            "om",
            "om-et",
            "om-ke",
            "or",
            "or-in",
            "os",
            "os-ge",
            "os-ru",
            "pa",
            "pa-in",
            "pa-pk",
            "pcm",
            "pcm-ng",
            "pis",
            "pis-sb",
            "pl",
            "pl-pl",
            "prg",
            "prg-001",
            "ps",
            "ps-af",
            "ps-pk",
            "pt",
            "pt-ao",
            "pt-br",
            "pt-ch",
            "pt-cv",
            "pt-gq",
            "pt-gw",
            "pt-lu",
            "pt-mo",
            "pt-mz",
            "pt-pt",
            "pt-st",
            "pt-tl",
            "qu",
            "qu-bo",
            "qu-ec",
            "qu-pe",
            "raj",
            "raj-in",
            "rm",
            "rm-ch",
            "rn",
            "rn-bi",
            "ro",
            "rof",
            "rof-tz",
            "ro-md",
            "ro-ro",
            "ru",
            "ru-by",
            "ru-kg",
            "ru-kz",
            "ru-md",
            "ru-ru",
            "ru-ua",
            "rw",
            "rwk",
            "rwk-tz",
            "rw-rw",
            "sa",
            "sah",
            "sah-ru",
            "saq",
            "saq-ke",
            "sat",
            "sat-in",
            "sa-in",
            "sbp",
            "sbp-tz",
            "sc",
            "sc-it",
            "sd",
            "sd-in",
            "sd-pk",
            "se",
            "seh",
            "seh-mz",
            "ses",
            "ses-ml",
            "se-fi",
            "se-no",
            "se-se",
            "sg",
            "sg-cf",
            "shi",
            "shi-ma",
            "si",
            "si-lk",
            "sk",
            "sk-sk",
            "sl",
            "sl-si",
            "smn",
            "smn-fi",
            "sms",
            "sms-fi",
            "sn",
            "sn-zw",
            "so",
            "so-dj",
            "so-et",
            "so-ke",
            "so-so",
            "sq",
            "sq-al",
            "sq-mk",
            "sq-xk",
            "sr",
            "sr-ba",
            "sr-cs",
            "sr-me",
            "sr-rs",
            "sr-xk",
            "su",
            "su-id",
            "sv",
            "sv-ax",
            "sv-fi",
            "sv-se",
            "sw",
            "sw-cd",
            "sw-ke",
            "sw-tz",
            "sw-ug",
            "sy",
            "ta",
            "ta-in",
            "ta-lk",
            "ta-my",
            "ta-sg",
            "te",
            "teo",
            "teo-ke",
            "teo-ug",
            "te-in",
            "tg",
            "tg-tj",
            "th",
            "th-th",
            "ti",
            "ti-er",
            "ti-et",
            "tk",
            "tk-tm",
            "tl",
            "to",
            "tok",
            "tok-001",
            "to-to",
            "tr",
            "tr-cy",
            "tr-tr",
            "tt",
            "tt-ru",
            "twq",
            "twq-ne",
            "tzm",
            "tzm-ma",
            "ug",
            "ug-cn",
            "uk",
            "uk-ua",
            "ur",
            "ur-in",
            "ur-pk",
            "uz",
            "uz-af",
            "uz-uz",
            "vai",
            "vai-lr",
            "vi",
            "vi-vn",
            "vo",
            "vo-001",
            "vun",
            "vun-tz",
            "wae",
            "wae-ch",
            "wo",
            "wo-sn",
            "xh",
            "xh-za",
            "xog",
            "xog-ug",
            "yav",
            "yav-cm",
            "yo",
            "yo-bj",
            "yo-ng",
            "yrl",
            "yrl-br",
            "yrl-co",
            "yrl-ve",
            "yue",
            "yue-cn",
            "yue-hk",
            "zgh",
            "zgh-ma",
            "zh",
            "zh-cn",
            "zh-hans",
            "zh-hant",
            "zh-hk",
            "zh-mo",
            "zh-sg",
            "zh-tw",
            "zu",
            "zu-za",
        ]  # noqa: E501
        if self.local_vars_configuration.client_side_validation and language not in allowed_values:  # noqa: E501
            raise ValueError("Invalid value for `language` ({0}), must be one of {1}".format(language, allowed_values))  # noqa: E501

        self._language = language

    @property
    def business_unit_id(self):
        """Gets the business_unit_id of this EmailCreateRequest.  # noqa: E501


        :return: The business_unit_id of this EmailCreateRequest.  # noqa: E501
        :rtype: int
        """
        return self._business_unit_id

    @business_unit_id.setter
    def business_unit_id(self, business_unit_id):
        """Sets the business_unit_id of this EmailCreateRequest.


        :param business_unit_id: The business_unit_id of this EmailCreateRequest.  # noqa: E501
        :type business_unit_id: int
        """

        self._business_unit_id = business_unit_id

    @property
    def content(self):
        """Gets the content of this EmailCreateRequest.  # noqa: E501


        :return: The content of this EmailCreateRequest.  # noqa: E501
        :rtype: PublicEmailContent
        """
        return self._content

    @content.setter
    def content(self, content):
        """Sets the content of this EmailCreateRequest.


        :param content: The content of this EmailCreateRequest.  # noqa: E501
        :type content: PublicEmailContent
        """

        self._content = content

    @property
    def webversion(self):
        """Gets the webversion of this EmailCreateRequest.  # noqa: E501


        :return: The webversion of this EmailCreateRequest.  # noqa: E501
        :rtype: PublicWebversionDetails
        """
        return self._webversion

    @webversion.setter
    def webversion(self, webversion):
        """Sets the webversion of this EmailCreateRequest.


        :param webversion: The webversion of this EmailCreateRequest.  # noqa: E501
        :type webversion: PublicWebversionDetails
        """

        self._webversion = webversion

    @property
    def archived(self):
        """Gets the archived of this EmailCreateRequest.  # noqa: E501

        Determines if the email is archived or not.  # noqa: E501

        :return: The archived of this EmailCreateRequest.  # noqa: E501
        :rtype: bool
        """
        return self._archived

    @archived.setter
    def archived(self, archived):
        """Sets the archived of this EmailCreateRequest.

        Determines if the email is archived or not.  # noqa: E501

        :param archived: The archived of this EmailCreateRequest.  # noqa: E501
        :type archived: bool
        """

        self._archived = archived

    @property
    def subscription_details(self):
        """Gets the subscription_details of this EmailCreateRequest.  # noqa: E501


        :return: The subscription_details of this EmailCreateRequest.  # noqa: E501
        :rtype: PublicEmailSubscriptionDetails
        """
        return self._subscription_details

    @subscription_details.setter
    def subscription_details(self, subscription_details):
        """Sets the subscription_details of this EmailCreateRequest.


        :param subscription_details: The subscription_details of this EmailCreateRequest.  # noqa: E501
        :type subscription_details: PublicEmailSubscriptionDetails
        """

        self._subscription_details = subscription_details

    @property
    def active_domain(self):
        """Gets the active_domain of this EmailCreateRequest.  # noqa: E501

        The active domain of the email.  # noqa: E501

        :return: The active_domain of this EmailCreateRequest.  # noqa: E501
        :rtype: str
        """
        return self._active_domain

    @active_domain.setter
    def active_domain(self, active_domain):
        """Sets the active_domain of this EmailCreateRequest.

        The active domain of the email.  # noqa: E501

        :param active_domain: The active_domain of this EmailCreateRequest.  # noqa: E501
        :type active_domain: str
        """

        self._active_domain = active_domain

    @property
    def name(self):
        """Gets the name of this EmailCreateRequest.  # noqa: E501

        The name of the email, as displayed on the email dashboard.  # noqa: E501

        :return: The name of this EmailCreateRequest.  # noqa: E501
        :rtype: str
        """
        return self._name

    @name.setter
    def name(self, name):
        """Sets the name of this EmailCreateRequest.

        The name of the email, as displayed on the email dashboard.  # noqa: E501

        :param name: The name of this EmailCreateRequest.  # noqa: E501
        :type name: str
        """
        if self.local_vars_configuration.client_side_validation and name is None:  # noqa: E501
            raise ValueError("Invalid value for `name`, must not be `None`")  # noqa: E501

        self._name = name

    @property
    def campaign(self):
        """Gets the campaign of this EmailCreateRequest.  # noqa: E501

        The ID of the campaign this email is associated to.  # noqa: E501

        :return: The campaign of this EmailCreateRequest.  # noqa: E501
        :rtype: str
        """
        return self._campaign

    @campaign.setter
    def campaign(self, campaign):
        """Sets the campaign of this EmailCreateRequest.

        The ID of the campaign this email is associated to.  # noqa: E501

        :param campaign: The campaign of this EmailCreateRequest.  # noqa: E501
        :type campaign: str
        """

        self._campaign = campaign

    @property
    def _from(self):
        """Gets the _from of this EmailCreateRequest.  # noqa: E501


        :return: The _from of this EmailCreateRequest.  # noqa: E501
        :rtype: PublicEmailFromDetails
        """
        return self.__from

    @_from.setter
    def _from(self, _from):
        """Sets the _from of this EmailCreateRequest.


        :param _from: The _from of this EmailCreateRequest.  # noqa: E501
        :type _from: PublicEmailFromDetails
        """

        self.__from = _from

    @property
    def jitter_send_time(self):
        """Gets the jitter_send_time of this EmailCreateRequest.  # noqa: E501


        :return: The jitter_send_time of this EmailCreateRequest.  # noqa: E501
        :rtype: bool
        """
        return self._jitter_send_time

    @jitter_send_time.setter
    def jitter_send_time(self, jitter_send_time):
        """Sets the jitter_send_time of this EmailCreateRequest.


        :param jitter_send_time: The jitter_send_time of this EmailCreateRequest.  # noqa: E501
        :type jitter_send_time: bool
        """

        self._jitter_send_time = jitter_send_time

    @property
    def state(self):
        """Gets the state of this EmailCreateRequest.  # noqa: E501

        The email state.  # noqa: E501

        :return: The state of this EmailCreateRequest.  # noqa: E501
        :rtype: str
        """
        return self._state

    @state.setter
    def state(self, state):
        """Sets the state of this EmailCreateRequest.

        The email state.  # noqa: E501

        :param state: The state of this EmailCreateRequest.  # noqa: E501
        :type state: str
        """
        allowed_values = [
            "AUTOMATED",
            "AUTOMATED_DRAFT",
            "AUTOMATED_SENDING",
            "AUTOMATED_FOR_FORM",
            "AUTOMATED_FOR_FORM_BUFFER",
            "AUTOMATED_FOR_FORM_DRAFT",
            "AUTOMATED_FOR_FORM_LEGACY",
            "BLOG_EMAIL_DRAFT",
            "BLOG_EMAIL_PUBLISHED",
            "DRAFT",
            "DRAFT_AB",
            "DRAFT_AB_VARIANT",
            "ERROR",
            "LOSER_AB_VARIANT",
            "PAGE_STUB",
            "PRE_PROCESSING",
            "PROCESSING",
            "PUBLISHED",
            "PUBLISHED_AB",
            "PUBLISHED_AB_VARIANT",
            "PUBLISHED_OR_SCHEDULED",
            "RSS_TO_EMAIL_DRAFT",
            "RSS_TO_EMAIL_PUBLISHED",
            "SCHEDULED",
            "SCHEDULED_AB",
            "SCHEDULED_OR_PUBLISHED",
            "AUTOMATED_AB",
            "AUTOMATED_AB_VARIANT",
            "AUTOMATED_DRAFT_AB",
            "AUTOMATED_DRAFT_ABVARIANT",
            "AUTOMATED_LOSER_ABVARIANT",
        ]  # noqa: E501
        if self.local_vars_configuration.client_side_validation and state not in allowed_values:  # noqa: E501
            raise ValueError("Invalid value for `state` ({0}), must be one of {1}".format(state, allowed_values))  # noqa: E501

        self._state = state

    @property
    def to(self):
        """Gets the to of this EmailCreateRequest.  # noqa: E501


        :return: The to of this EmailCreateRequest.  # noqa: E501
        :rtype: PublicEmailToDetails
        """
        return self._to

    @to.setter
    def to(self, to):
        """Sets the to of this EmailCreateRequest.


        :param to: The to of this EmailCreateRequest.  # noqa: E501
        :type to: PublicEmailToDetails
        """

        self._to = to

    @property
    def subcategory(self):
        """Gets the subcategory of this EmailCreateRequest.  # noqa: E501

        The email subcategory.  # noqa: E501

        :return: The subcategory of this EmailCreateRequest.  # noqa: E501
        :rtype: str
        """
        return self._subcategory

    @subcategory.setter
    def subcategory(self, subcategory):
        """Sets the subcategory of this EmailCreateRequest.

        The email subcategory.  # noqa: E501

        :param subcategory: The subcategory of this EmailCreateRequest.  # noqa: E501
        :type subcategory: str
        """
        allowed_values = [
            "ab_master",
            "ab_variant",
            "ab_loser_variant",
            "page_stub",
            "landing_page",
            "site_page",
            "legacy_page",
            "ab_master_site_page",
            "ab_variant_site_page",
            "ab_loser_variant_site_page",
            "performable_landing_page",
            "performable_landing_page_cutover",
            "staged_page",
            "automated",
            "automated_for_deal",
            "automated_for_form",
            "automated_for_form_legacy",
            "automated_for_form_buffer",
            "automated_for_form_draft",
            "rss_to_email",
            "rss_to_email_child",
            "blog_email",
            "blog_email_child",
            "optin_email",
            "optin_followup_email",
            "batch",
            "resubscribe_email",
            "unsubscribe_confirmation_email",
            "resubscribe_confirmation_email",
            "single_send_api",
            "marketing_single_send_api",
            "smtp_token",
            "localtime",
            "automated_for_ticket",
            "automated_for_leadflow",
            "automated_for_feedback_ces",
            "automated_for_feedback_nps",
            "automated_for_feedback_custom",
            "membership_registration",
            "membership_password_saved",
            "membership_password_reset",
            "membership_otp_login",
            "membership_passwordless_auth",
            "membership_email_verification",
            "membership_registration_follow_up",
            "membership_verification",
            "membership_follow_up",
            "ticket_closed_kickback_email",
            "ticket_opened_kickback_email",
            "automated_for_custom_survey",
            "discardable_stub",
            "normal_blog_post",
            "legacy_blog_post",
            "imported_blog_post",
            "automated_ab_master",
            "automated_ab_variant",
            "web_interactive",
            "portal_content",
            "page_instance_layout",
            "kb_article_instance_layout",
            "kb_listing",
            "kb_search_results",
            "kb_support_form",
            "case_study",
            "case_study_listing",
            "case_study_instance_layout",
            "UNKNOWN",
        ]  # noqa: E501
        if self.local_vars_configuration.client_side_validation and subcategory not in allowed_values:  # noqa: E501
            raise ValueError("Invalid value for `subcategory` ({0}), must be one of {1}".format(subcategory, allowed_values))  # noqa: E501

        self._subcategory = subcategory

    @property
    def send_on_publish(self):
        """Gets the send_on_publish of this EmailCreateRequest.  # noqa: E501

        Determines whether the email will be sent immediately on publish.  # noqa: E501

        :return: The send_on_publish of this EmailCreateRequest.  # noqa: E501
        :rtype: bool
        """
        return self._send_on_publish

    @send_on_publish.setter
    def send_on_publish(self, send_on_publish):
        """Sets the send_on_publish of this EmailCreateRequest.

        Determines whether the email will be sent immediately on publish.  # noqa: E501

        :param send_on_publish: The send_on_publish of this EmailCreateRequest.  # noqa: E501
        :type send_on_publish: bool
        """

        self._send_on_publish = send_on_publish

    def to_dict(self, serialize=False):
        """Returns the model properties as a dict"""
        result = {}

        def convert(x):
            if hasattr(x, "to_dict"):
                args = getfullargspec(x.to_dict).args
                if len(args) == 1:
                    return x.to_dict()
                else:
                    return x.to_dict(serialize)
            else:
                return x

        for attr, _ in six.iteritems(self.openapi_types):
            value = getattr(self, attr)
            attr = self.attribute_map.get(attr, attr) if serialize else attr
            if isinstance(value, list):
                result[attr] = list(map(lambda x: convert(x), value))
            elif isinstance(value, dict):
                result[attr] = dict(map(lambda item: (item[0], convert(item[1])), value.items()))
            else:
                result[attr] = convert(value)

        return result

    def to_str(self):
        """Returns the string representation of the model"""
        return pprint.pformat(self.to_dict())

    def __repr__(self):
        """For `print` and `pprint`"""
        return self.to_str()

    def __eq__(self, other):
        """Returns true if both objects are equal"""
        if not isinstance(other, EmailCreateRequest):
            return False

        return self.to_dict() == other.to_dict()

    def __ne__(self, other):
        """Returns true if both objects are not equal"""
        if not isinstance(other, EmailCreateRequest):
            return True

        return self.to_dict() != other.to_dict()
