# 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 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__ = [
    'GetDomainsDomainResult',
    'GetMailAddressesAddressResult',
    'GetReceiversReceiverseResult',
    'GetTagsTagResult',
]

@pulumi.output_type
class GetDomainsDomainResult(dict):
    def __init__(__self__, *,
                 cname_auth_status: str,
                 cname_confirm_status: str,
                 cname_record: str,
                 create_time: str,
                 default_domain: str,
                 dkim_auth_status: str,
                 dkim_public_key: str,
                 dkim_rr: str,
                 dmarc_auth_status: str,
                 dmarc_host_record: str,
                 dmarc_record: str,
                 dns_dmarc: str,
                 dns_mx: str,
                 dns_spf: str,
                 dns_txt: str,
                 domain_id: str,
                 domain_name: str,
                 domain_record: str,
                 domain_type: str,
                 host_record: str,
                 icp_status: str,
                 id: str,
                 mx_auth_status: str,
                 mx_record: str,
                 spf_auth_status: str,
                 spf_record: str,
                 status: str,
                 tl_domain_name: str,
                 tracef_record: str):
        """
        :param str cname_auth_status: Indicates whether your ownership of the domain is verified.
        :param str cname_confirm_status: Indicates whether the CNAME record is successfully verified. **Note:** `cname_confirm_status` takes effect only if `enable_details` is set to `true`.
        :param str cname_record: The value of the CNAME record. **Note:** `cname_record` takes effect only if `enable_details` is set to `true`.
        :param str create_time: The time when the DNS record was created.
        :param str default_domain: The default domain name. **Note:** `default_domain` takes effect only if `enable_details` is set to `true`.
        :param str dkim_auth_status: (Available since v1.227.1) The DKIM validation flag. **Note:** `dkim_auth_status` takes effect only if `enable_details` is set to `true`.
        :param str dkim_public_key: (Available since v1.227.1) The DKIM public key. **Note:** `dkim_public_key` takes effect only if `enable_details` is set to `true`.
        :param str dkim_rr: (Available since v1.227.1) The DKIM Host Record. **Note:** `dkim_rr` takes effect only if `enable_details` is set to `true`.
        :param str dmarc_auth_status: (Available since v1.227.1) The DMARC validation flag. **Note:** `dmarc_auth_status` takes effect only if `enable_details` is set to `true`.
        :param str dmarc_host_record: (Available since v1.227.1) The DMARC Host Record. **Note:** `dmarc_host_record` takes effect only if `enable_details` is set to `true`.
        :param str dmarc_record: (Available since v1.227.1) The DMARC record. **Note:** `dmarc_record` takes effect only if `enable_details` is set to `true`.
        :param str dns_dmarc: (Available since v1.227.1) The DMARC record value resolved through public DNS. **Note:** `dns_dmarc` takes effect only if `enable_details` is set to `true`.
        :param str dns_mx: The MX record value resolved through public DNS. **Note:** `dns_mx` takes effect only if `enable_details` is set to `true`.
        :param str dns_spf: The SPF record value resolved through public DNS. **Note:** `dns_spf` takes effect only if `enable_details` is set to `true`.
        :param str dns_txt: The TXT record value resolved through public DNS. **Note:** `dns_txt` takes effect only if `enable_details` is set to `true`.
        :param str domain_id: The ID of the domain name.
        :param str domain_name: The domain name.
        :param str domain_record: (Available since v1.227.1) The value of the Domain record.
        :param str domain_type: The type of the domain. **Note:** `domain_type` takes effect only if `enable_details` is set to `true`.
        :param str host_record: (Available since v1.227.1) The value of the host record. **Note:** `host_record` takes effect only if `enable_details` is set to `true`.
        :param str icp_status: The status of ICP filing.
        :param str id: The ID of the Domain.
        :param str mx_auth_status: Indicates whether the MX record is successfully verified.
        :param str mx_record: The MX verification record provided by the Direct Mail console. **Note:** `mx_record` takes effect only if `enable_details` is set to `true`.
        :param str spf_auth_status: Indicates whether the SPF record is successfully verified.
        :param str spf_record: The SPF verification record provided by the Direct Mail console. **Note:** `spf_record` takes effect only if `enable_details` is set to `true`.
        :param str status: The status of the domain name. Valid values:
        :param str tl_domain_name: The primary domain name. **Note:** `tl_domain_name` takes effect only if `enable_details` is set to `true`.
        :param str tracef_record: The CNAME verification record provided by the Direct Mail console. **Note:** `tracef_record` takes effect only if `enable_details` is set to `true`.
        """
        pulumi.set(__self__, "cname_auth_status", cname_auth_status)
        pulumi.set(__self__, "cname_confirm_status", cname_confirm_status)
        pulumi.set(__self__, "cname_record", cname_record)
        pulumi.set(__self__, "create_time", create_time)
        pulumi.set(__self__, "default_domain", default_domain)
        pulumi.set(__self__, "dkim_auth_status", dkim_auth_status)
        pulumi.set(__self__, "dkim_public_key", dkim_public_key)
        pulumi.set(__self__, "dkim_rr", dkim_rr)
        pulumi.set(__self__, "dmarc_auth_status", dmarc_auth_status)
        pulumi.set(__self__, "dmarc_host_record", dmarc_host_record)
        pulumi.set(__self__, "dmarc_record", dmarc_record)
        pulumi.set(__self__, "dns_dmarc", dns_dmarc)
        pulumi.set(__self__, "dns_mx", dns_mx)
        pulumi.set(__self__, "dns_spf", dns_spf)
        pulumi.set(__self__, "dns_txt", dns_txt)
        pulumi.set(__self__, "domain_id", domain_id)
        pulumi.set(__self__, "domain_name", domain_name)
        pulumi.set(__self__, "domain_record", domain_record)
        pulumi.set(__self__, "domain_type", domain_type)
        pulumi.set(__self__, "host_record", host_record)
        pulumi.set(__self__, "icp_status", icp_status)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "mx_auth_status", mx_auth_status)
        pulumi.set(__self__, "mx_record", mx_record)
        pulumi.set(__self__, "spf_auth_status", spf_auth_status)
        pulumi.set(__self__, "spf_record", spf_record)
        pulumi.set(__self__, "status", status)
        pulumi.set(__self__, "tl_domain_name", tl_domain_name)
        pulumi.set(__self__, "tracef_record", tracef_record)

    @property
    @pulumi.getter(name="cnameAuthStatus")
    def cname_auth_status(self) -> str:
        """
        Indicates whether your ownership of the domain is verified.
        """
        return pulumi.get(self, "cname_auth_status")

    @property
    @pulumi.getter(name="cnameConfirmStatus")
    def cname_confirm_status(self) -> str:
        """
        Indicates whether the CNAME record is successfully verified. **Note:** `cname_confirm_status` takes effect only if `enable_details` is set to `true`.
        """
        return pulumi.get(self, "cname_confirm_status")

    @property
    @pulumi.getter(name="cnameRecord")
    def cname_record(self) -> str:
        """
        The value of the CNAME record. **Note:** `cname_record` takes effect only if `enable_details` is set to `true`.
        """
        return pulumi.get(self, "cname_record")

    @property
    @pulumi.getter(name="createTime")
    def create_time(self) -> str:
        """
        The time when the DNS record was created.
        """
        return pulumi.get(self, "create_time")

    @property
    @pulumi.getter(name="defaultDomain")
    def default_domain(self) -> str:
        """
        The default domain name. **Note:** `default_domain` takes effect only if `enable_details` is set to `true`.
        """
        return pulumi.get(self, "default_domain")

    @property
    @pulumi.getter(name="dkimAuthStatus")
    def dkim_auth_status(self) -> str:
        """
        (Available since v1.227.1) The DKIM validation flag. **Note:** `dkim_auth_status` takes effect only if `enable_details` is set to `true`.
        """
        return pulumi.get(self, "dkim_auth_status")

    @property
    @pulumi.getter(name="dkimPublicKey")
    def dkim_public_key(self) -> str:
        """
        (Available since v1.227.1) The DKIM public key. **Note:** `dkim_public_key` takes effect only if `enable_details` is set to `true`.
        """
        return pulumi.get(self, "dkim_public_key")

    @property
    @pulumi.getter(name="dkimRr")
    def dkim_rr(self) -> str:
        """
        (Available since v1.227.1) The DKIM Host Record. **Note:** `dkim_rr` takes effect only if `enable_details` is set to `true`.
        """
        return pulumi.get(self, "dkim_rr")

    @property
    @pulumi.getter(name="dmarcAuthStatus")
    def dmarc_auth_status(self) -> str:
        """
        (Available since v1.227.1) The DMARC validation flag. **Note:** `dmarc_auth_status` takes effect only if `enable_details` is set to `true`.
        """
        return pulumi.get(self, "dmarc_auth_status")

    @property
    @pulumi.getter(name="dmarcHostRecord")
    def dmarc_host_record(self) -> str:
        """
        (Available since v1.227.1) The DMARC Host Record. **Note:** `dmarc_host_record` takes effect only if `enable_details` is set to `true`.
        """
        return pulumi.get(self, "dmarc_host_record")

    @property
    @pulumi.getter(name="dmarcRecord")
    def dmarc_record(self) -> str:
        """
        (Available since v1.227.1) The DMARC record. **Note:** `dmarc_record` takes effect only if `enable_details` is set to `true`.
        """
        return pulumi.get(self, "dmarc_record")

    @property
    @pulumi.getter(name="dnsDmarc")
    def dns_dmarc(self) -> str:
        """
        (Available since v1.227.1) The DMARC record value resolved through public DNS. **Note:** `dns_dmarc` takes effect only if `enable_details` is set to `true`.
        """
        return pulumi.get(self, "dns_dmarc")

    @property
    @pulumi.getter(name="dnsMx")
    def dns_mx(self) -> str:
        """
        The MX record value resolved through public DNS. **Note:** `dns_mx` takes effect only if `enable_details` is set to `true`.
        """
        return pulumi.get(self, "dns_mx")

    @property
    @pulumi.getter(name="dnsSpf")
    def dns_spf(self) -> str:
        """
        The SPF record value resolved through public DNS. **Note:** `dns_spf` takes effect only if `enable_details` is set to `true`.
        """
        return pulumi.get(self, "dns_spf")

    @property
    @pulumi.getter(name="dnsTxt")
    def dns_txt(self) -> str:
        """
        The TXT record value resolved through public DNS. **Note:** `dns_txt` takes effect only if `enable_details` is set to `true`.
        """
        return pulumi.get(self, "dns_txt")

    @property
    @pulumi.getter(name="domainId")
    def domain_id(self) -> str:
        """
        The ID of the domain name.
        """
        return pulumi.get(self, "domain_id")

    @property
    @pulumi.getter(name="domainName")
    def domain_name(self) -> str:
        """
        The domain name.
        """
        return pulumi.get(self, "domain_name")

    @property
    @pulumi.getter(name="domainRecord")
    def domain_record(self) -> str:
        """
        (Available since v1.227.1) The value of the Domain record.
        """
        return pulumi.get(self, "domain_record")

    @property
    @pulumi.getter(name="domainType")
    def domain_type(self) -> str:
        """
        The type of the domain. **Note:** `domain_type` takes effect only if `enable_details` is set to `true`.
        """
        return pulumi.get(self, "domain_type")

    @property
    @pulumi.getter(name="hostRecord")
    def host_record(self) -> str:
        """
        (Available since v1.227.1) The value of the host record. **Note:** `host_record` takes effect only if `enable_details` is set to `true`.
        """
        return pulumi.get(self, "host_record")

    @property
    @pulumi.getter(name="icpStatus")
    def icp_status(self) -> str:
        """
        The status of ICP filing.
        """
        return pulumi.get(self, "icp_status")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The ID of the Domain.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="mxAuthStatus")
    def mx_auth_status(self) -> str:
        """
        Indicates whether the MX record is successfully verified.
        """
        return pulumi.get(self, "mx_auth_status")

    @property
    @pulumi.getter(name="mxRecord")
    def mx_record(self) -> str:
        """
        The MX verification record provided by the Direct Mail console. **Note:** `mx_record` takes effect only if `enable_details` is set to `true`.
        """
        return pulumi.get(self, "mx_record")

    @property
    @pulumi.getter(name="spfAuthStatus")
    def spf_auth_status(self) -> str:
        """
        Indicates whether the SPF record is successfully verified.
        """
        return pulumi.get(self, "spf_auth_status")

    @property
    @pulumi.getter(name="spfRecord")
    def spf_record(self) -> str:
        """
        The SPF verification record provided by the Direct Mail console. **Note:** `spf_record` takes effect only if `enable_details` is set to `true`.
        """
        return pulumi.get(self, "spf_record")

    @property
    @pulumi.getter
    def status(self) -> str:
        """
        The status of the domain name. Valid values:
        """
        return pulumi.get(self, "status")

    @property
    @pulumi.getter(name="tlDomainName")
    def tl_domain_name(self) -> str:
        """
        The primary domain name. **Note:** `tl_domain_name` takes effect only if `enable_details` is set to `true`.
        """
        return pulumi.get(self, "tl_domain_name")

    @property
    @pulumi.getter(name="tracefRecord")
    def tracef_record(self) -> str:
        """
        The CNAME verification record provided by the Direct Mail console. **Note:** `tracef_record` takes effect only if `enable_details` is set to `true`.
        """
        return pulumi.get(self, "tracef_record")


@pulumi.output_type
class GetMailAddressesAddressResult(dict):
    def __init__(__self__, *,
                 account_name: str,
                 create_time: str,
                 daily_count: str,
                 daily_req_count: str,
                 domain_status: str,
                 id: str,
                 mail_address_id: str,
                 month_count: str,
                 month_req_count: str,
                 reply_address: str,
                 reply_status: str,
                 sendtype: str,
                 status: str):
        """
        :param str account_name: The sender address.
        :param str create_time: The creation of the record time.
        :param str daily_count: On the quota limit.
        :param str daily_req_count: On the quota.
        :param str domain_status: Domain name status. Valid values: `0`, `1`.
        :param str id: The ID of the Mail Address.
        :param str mail_address_id: The sender address ID.
        :param str month_count: Monthly quota limit.
        :param str month_req_count: Months amount.
        :param str reply_address: Return address.
        :param str reply_status: If using STMP address status.
        :param str sendtype: Account type.
        :param str status: Account Status. Valid values: `0`, `1`. Freeze: 1, normal: 0.
        """
        pulumi.set(__self__, "account_name", account_name)
        pulumi.set(__self__, "create_time", create_time)
        pulumi.set(__self__, "daily_count", daily_count)
        pulumi.set(__self__, "daily_req_count", daily_req_count)
        pulumi.set(__self__, "domain_status", domain_status)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "mail_address_id", mail_address_id)
        pulumi.set(__self__, "month_count", month_count)
        pulumi.set(__self__, "month_req_count", month_req_count)
        pulumi.set(__self__, "reply_address", reply_address)
        pulumi.set(__self__, "reply_status", reply_status)
        pulumi.set(__self__, "sendtype", sendtype)
        pulumi.set(__self__, "status", status)

    @property
    @pulumi.getter(name="accountName")
    def account_name(self) -> str:
        """
        The sender address.
        """
        return pulumi.get(self, "account_name")

    @property
    @pulumi.getter(name="createTime")
    def create_time(self) -> str:
        """
        The creation of the record time.
        """
        return pulumi.get(self, "create_time")

    @property
    @pulumi.getter(name="dailyCount")
    def daily_count(self) -> str:
        """
        On the quota limit.
        """
        return pulumi.get(self, "daily_count")

    @property
    @pulumi.getter(name="dailyReqCount")
    def daily_req_count(self) -> str:
        """
        On the quota.
        """
        return pulumi.get(self, "daily_req_count")

    @property
    @pulumi.getter(name="domainStatus")
    def domain_status(self) -> str:
        """
        Domain name status. Valid values: `0`, `1`.
        """
        return pulumi.get(self, "domain_status")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The ID of the Mail Address.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="mailAddressId")
    def mail_address_id(self) -> str:
        """
        The sender address ID.
        """
        return pulumi.get(self, "mail_address_id")

    @property
    @pulumi.getter(name="monthCount")
    def month_count(self) -> str:
        """
        Monthly quota limit.
        """
        return pulumi.get(self, "month_count")

    @property
    @pulumi.getter(name="monthReqCount")
    def month_req_count(self) -> str:
        """
        Months amount.
        """
        return pulumi.get(self, "month_req_count")

    @property
    @pulumi.getter(name="replyAddress")
    def reply_address(self) -> str:
        """
        Return address.
        """
        return pulumi.get(self, "reply_address")

    @property
    @pulumi.getter(name="replyStatus")
    def reply_status(self) -> str:
        """
        If using STMP address status.
        """
        return pulumi.get(self, "reply_status")

    @property
    @pulumi.getter
    def sendtype(self) -> str:
        """
        Account type.
        """
        return pulumi.get(self, "sendtype")

    @property
    @pulumi.getter
    def status(self) -> str:
        """
        Account Status. Valid values: `0`, `1`. Freeze: 1, normal: 0.
        """
        return pulumi.get(self, "status")


@pulumi.output_type
class GetReceiversReceiverseResult(dict):
    def __init__(__self__, *,
                 create_time: str,
                 description: str,
                 id: str,
                 receivers_alias: str,
                 receivers_id: str,
                 receivers_name: str,
                 status: int):
        """
        :param str create_time: The creation time of the resource.
        :param str description: The description.
        :param str id: The ID of the Receivers.
        :param str receivers_alias: The Receivers Alias.
        :param str receivers_id: The first ID of the resource.
        :param str receivers_name: The name of the resource.
        :param int status: The status of the resource.
        """
        pulumi.set(__self__, "create_time", create_time)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "receivers_alias", receivers_alias)
        pulumi.set(__self__, "receivers_id", receivers_id)
        pulumi.set(__self__, "receivers_name", receivers_name)
        pulumi.set(__self__, "status", status)

    @property
    @pulumi.getter(name="createTime")
    def create_time(self) -> str:
        """
        The creation time of the resource.
        """
        return pulumi.get(self, "create_time")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        The description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The ID of the Receivers.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="receiversAlias")
    def receivers_alias(self) -> str:
        """
        The Receivers Alias.
        """
        return pulumi.get(self, "receivers_alias")

    @property
    @pulumi.getter(name="receiversId")
    def receivers_id(self) -> str:
        """
        The first ID of the resource.
        """
        return pulumi.get(self, "receivers_id")

    @property
    @pulumi.getter(name="receiversName")
    def receivers_name(self) -> str:
        """
        The name of the resource.
        """
        return pulumi.get(self, "receivers_name")

    @property
    @pulumi.getter
    def status(self) -> int:
        """
        The status of the resource.
        """
        return pulumi.get(self, "status")


@pulumi.output_type
class GetTagsTagResult(dict):
    def __init__(__self__, *,
                 id: str,
                 tag_id: str,
                 tag_name: str):
        """
        :param str id: The ID of the tag.
        :param str tag_id: The ID of the tag.
        :param str tag_name: The name of the tag.
        """
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "tag_id", tag_id)
        pulumi.set(__self__, "tag_name", tag_name)

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The ID of the tag.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="tagId")
    def tag_id(self) -> str:
        """
        The ID of the tag.
        """
        return pulumi.get(self, "tag_id")

    @property
    @pulumi.getter(name="tagName")
    def tag_name(self) -> str:
        """
        The name of the tag.
        """
        return pulumi.get(self, "tag_name")


