# 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
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__ = [
    'DomainReceivingRecordArgs',
    'DomainReceivingRecordArgsDict',
    'DomainReceivingRecordsSetArgs',
    'DomainReceivingRecordsSetArgsDict',
    'DomainSendingRecordArgs',
    'DomainSendingRecordArgsDict',
    'DomainSendingRecordsSetArgs',
    'DomainSendingRecordsSetArgsDict',
]

MYPY = False

if not MYPY:
    class DomainReceivingRecordArgsDict(TypedDict):
        id: NotRequired[pulumi.Input[builtins.str]]
        priority: NotRequired[pulumi.Input[builtins.str]]
        """
        The priority of the record.
        """
        record_type: NotRequired[pulumi.Input[builtins.str]]
        """
        The record type.
        """
        valid: NotRequired[pulumi.Input[builtins.str]]
        """
        `"valid"` if the record is valid.
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        The value of the record.
        """
elif False:
    DomainReceivingRecordArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class DomainReceivingRecordArgs:
    def __init__(__self__, *,
                 id: Optional[pulumi.Input[builtins.str]] = None,
                 priority: Optional[pulumi.Input[builtins.str]] = None,
                 record_type: Optional[pulumi.Input[builtins.str]] = None,
                 valid: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] priority: The priority of the record.
        :param pulumi.Input[builtins.str] record_type: The record type.
        :param pulumi.Input[builtins.str] valid: `"valid"` if the record is valid.
        :param pulumi.Input[builtins.str] value: The value of the record.
        """
        if id is not None:
            pulumi.set(__self__, "id", id)
        if priority is not None:
            pulumi.set(__self__, "priority", priority)
        if record_type is not None:
            pulumi.set(__self__, "record_type", record_type)
        if valid is not None:
            pulumi.set(__self__, "valid", valid)
        if value is not None:
            pulumi.set(__self__, "value", value)

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

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

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

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

    @property
    @pulumi.getter(name="recordType")
    def record_type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        The record type.
        """
        return pulumi.get(self, "record_type")

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

    @property
    @pulumi.getter
    def valid(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        `"valid"` if the record is valid.
        """
        return pulumi.get(self, "valid")

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

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

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


if not MYPY:
    class DomainReceivingRecordsSetArgsDict(TypedDict):
        id: NotRequired[pulumi.Input[builtins.str]]
        priority: NotRequired[pulumi.Input[builtins.str]]
        """
        The priority of the record.
        """
        record_type: NotRequired[pulumi.Input[builtins.str]]
        """
        The record type.
        """
        valid: NotRequired[pulumi.Input[builtins.str]]
        """
        `"valid"` if the record is valid.
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        The value of the record.
        """
elif False:
    DomainReceivingRecordsSetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class DomainReceivingRecordsSetArgs:
    def __init__(__self__, *,
                 id: Optional[pulumi.Input[builtins.str]] = None,
                 priority: Optional[pulumi.Input[builtins.str]] = None,
                 record_type: Optional[pulumi.Input[builtins.str]] = None,
                 valid: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] priority: The priority of the record.
        :param pulumi.Input[builtins.str] record_type: The record type.
        :param pulumi.Input[builtins.str] valid: `"valid"` if the record is valid.
        :param pulumi.Input[builtins.str] value: The value of the record.
        """
        if id is not None:
            pulumi.set(__self__, "id", id)
        if priority is not None:
            pulumi.set(__self__, "priority", priority)
        if record_type is not None:
            pulumi.set(__self__, "record_type", record_type)
        if valid is not None:
            pulumi.set(__self__, "valid", valid)
        if value is not None:
            pulumi.set(__self__, "value", value)

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

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

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

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

    @property
    @pulumi.getter(name="recordType")
    def record_type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        The record type.
        """
        return pulumi.get(self, "record_type")

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

    @property
    @pulumi.getter
    def valid(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        `"valid"` if the record is valid.
        """
        return pulumi.get(self, "valid")

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

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

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


if not MYPY:
    class DomainSendingRecordArgsDict(TypedDict):
        id: NotRequired[pulumi.Input[builtins.str]]
        name: NotRequired[pulumi.Input[builtins.str]]
        """
        The domain to add to Mailgun
        """
        record_type: NotRequired[pulumi.Input[builtins.str]]
        """
        The record type.
        """
        valid: NotRequired[pulumi.Input[builtins.str]]
        """
        `"valid"` if the record is valid.
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        The value of the record.
        """
elif False:
    DomainSendingRecordArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class DomainSendingRecordArgs:
    def __init__(__self__, *,
                 id: Optional[pulumi.Input[builtins.str]] = None,
                 name: Optional[pulumi.Input[builtins.str]] = None,
                 record_type: Optional[pulumi.Input[builtins.str]] = None,
                 valid: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] name: The domain to add to Mailgun
        :param pulumi.Input[builtins.str] record_type: The record type.
        :param pulumi.Input[builtins.str] valid: `"valid"` if the record is valid.
        :param pulumi.Input[builtins.str] value: The value of the record.
        """
        if id is not None:
            pulumi.set(__self__, "id", id)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if record_type is not None:
            pulumi.set(__self__, "record_type", record_type)
        if valid is not None:
            pulumi.set(__self__, "valid", valid)
        if value is not None:
            pulumi.set(__self__, "value", value)

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

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

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        The domain to add to Mailgun
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter(name="recordType")
    def record_type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        The record type.
        """
        return pulumi.get(self, "record_type")

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

    @property
    @pulumi.getter
    def valid(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        `"valid"` if the record is valid.
        """
        return pulumi.get(self, "valid")

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

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

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


if not MYPY:
    class DomainSendingRecordsSetArgsDict(TypedDict):
        id: NotRequired[pulumi.Input[builtins.str]]
        name: NotRequired[pulumi.Input[builtins.str]]
        """
        The domain to add to Mailgun
        """
        record_type: NotRequired[pulumi.Input[builtins.str]]
        """
        The record type.
        """
        valid: NotRequired[pulumi.Input[builtins.str]]
        """
        `"valid"` if the record is valid.
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        The value of the record.
        """
elif False:
    DomainSendingRecordsSetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class DomainSendingRecordsSetArgs:
    def __init__(__self__, *,
                 id: Optional[pulumi.Input[builtins.str]] = None,
                 name: Optional[pulumi.Input[builtins.str]] = None,
                 record_type: Optional[pulumi.Input[builtins.str]] = None,
                 valid: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] name: The domain to add to Mailgun
        :param pulumi.Input[builtins.str] record_type: The record type.
        :param pulumi.Input[builtins.str] valid: `"valid"` if the record is valid.
        :param pulumi.Input[builtins.str] value: The value of the record.
        """
        if id is not None:
            pulumi.set(__self__, "id", id)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if record_type is not None:
            pulumi.set(__self__, "record_type", record_type)
        if valid is not None:
            pulumi.set(__self__, "valid", valid)
        if value is not None:
            pulumi.set(__self__, "value", value)

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

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

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        The domain to add to Mailgun
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter(name="recordType")
    def record_type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        The record type.
        """
        return pulumi.get(self, "record_type")

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

    @property
    @pulumi.getter
    def valid(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        `"valid"` if the record is valid.
        """
        return pulumi.get(self, "valid")

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

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

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


