# 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
from ._enums import *

__all__ = [
    'RegisteredDomainDomainRegistrationArgs',
    'RegisteredDomainDomainRegistrationArgsDict',
    'RegisteredDomainRegistrantChangeArgs',
    'RegisteredDomainRegistrantChangeArgsDict',
    'RegisteredDomainTimeoutsArgs',
    'RegisteredDomainTimeoutsArgsDict',
    'GetCertificateTimeoutsArgs',
    'GetCertificateTimeoutsArgsDict',
]

MYPY = False

if not MYPY:
    class RegisteredDomainDomainRegistrationArgsDict(TypedDict):
        id: NotRequired[pulumi.Input[builtins.int]]
        """
        The ID of this resource.
        """
        period: NotRequired[pulumi.Input[builtins.int]]
        """
        The registration period in years.
        """
        state: NotRequired[pulumi.Input[builtins.str]]
        """
        The state of the domain.
        """
elif False:
    RegisteredDomainDomainRegistrationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class RegisteredDomainDomainRegistrationArgs:
    def __init__(__self__, *,
                 id: Optional[pulumi.Input[builtins.int]] = None,
                 period: Optional[pulumi.Input[builtins.int]] = None,
                 state: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.int] id: The ID of this resource.
        :param pulumi.Input[builtins.int] period: The registration period in years.
        :param pulumi.Input[builtins.str] state: The state of the domain.
        """
        if id is not None:
            pulumi.set(__self__, "id", id)
        if period is not None:
            pulumi.set(__self__, "period", period)
        if state is not None:
            pulumi.set(__self__, "state", state)

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

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

    @property
    @pulumi.getter
    def period(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        The registration period in years.
        """
        return pulumi.get(self, "period")

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

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

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


if not MYPY:
    class RegisteredDomainRegistrantChangeArgsDict(TypedDict):
        account_id: NotRequired[pulumi.Input[builtins.int]]
        """
        DNSimple Account ID to which the registrant change belongs to
        """
        contact_id: NotRequired[pulumi.Input[builtins.int]]
        """
        The ID of the contact to be used for the domain registration. The contact ID can be changed after the domain has been registered. The change will result in a new registrant change this may result in a [60-day lock](https://support.dnsimple.com/articles/icann-60-day-lock-registrant-change/).
        """
        domain_id: NotRequired[pulumi.Input[builtins.str]]
        """
        DNSimple domain ID for which the registrant change is being performed
        """
        extended_attributes: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]
        """
        A map of extended attributes to be set for the domain registration. To see if there are any required extended attributes for any TLD use our [Lists the TLD Extended Attributes API](https://developer.dnsimple.com/v2/tlds/#getTldExtendedAttributes). The values provided in the `extended_attributes` will also be sent when a registrant change is initiated as part of changing the `contact_id`.
        """
        id: NotRequired[pulumi.Input[builtins.int]]
        """
        The ID of this resource.
        """
        irt_lock_lifted_by: NotRequired[pulumi.Input[builtins.str]]
        """
        Date when the registrant change lock was lifted for the domain
        """
        registry_owner_change: NotRequired[pulumi.Input[builtins.bool]]
        """
        True if the registrant change will result in a registry owner change
        """
        state: NotRequired[pulumi.Input[builtins.str]]
        """
        The state of the domain.
        """
elif False:
    RegisteredDomainRegistrantChangeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class RegisteredDomainRegistrantChangeArgs:
    def __init__(__self__, *,
                 account_id: Optional[pulumi.Input[builtins.int]] = None,
                 contact_id: Optional[pulumi.Input[builtins.int]] = None,
                 domain_id: Optional[pulumi.Input[builtins.str]] = None,
                 extended_attributes: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
                 id: Optional[pulumi.Input[builtins.int]] = None,
                 irt_lock_lifted_by: Optional[pulumi.Input[builtins.str]] = None,
                 registry_owner_change: Optional[pulumi.Input[builtins.bool]] = None,
                 state: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.int] account_id: DNSimple Account ID to which the registrant change belongs to
        :param pulumi.Input[builtins.int] contact_id: The ID of the contact to be used for the domain registration. The contact ID can be changed after the domain has been registered. The change will result in a new registrant change this may result in a [60-day lock](https://support.dnsimple.com/articles/icann-60-day-lock-registrant-change/).
        :param pulumi.Input[builtins.str] domain_id: DNSimple domain ID for which the registrant change is being performed
        :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] extended_attributes: A map of extended attributes to be set for the domain registration. To see if there are any required extended attributes for any TLD use our [Lists the TLD Extended Attributes API](https://developer.dnsimple.com/v2/tlds/#getTldExtendedAttributes). The values provided in the `extended_attributes` will also be sent when a registrant change is initiated as part of changing the `contact_id`.
        :param pulumi.Input[builtins.int] id: The ID of this resource.
        :param pulumi.Input[builtins.str] irt_lock_lifted_by: Date when the registrant change lock was lifted for the domain
        :param pulumi.Input[builtins.bool] registry_owner_change: True if the registrant change will result in a registry owner change
        :param pulumi.Input[builtins.str] state: The state of the domain.
        """
        if account_id is not None:
            pulumi.set(__self__, "account_id", account_id)
        if contact_id is not None:
            pulumi.set(__self__, "contact_id", contact_id)
        if domain_id is not None:
            pulumi.set(__self__, "domain_id", domain_id)
        if extended_attributes is not None:
            pulumi.set(__self__, "extended_attributes", extended_attributes)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if irt_lock_lifted_by is not None:
            pulumi.set(__self__, "irt_lock_lifted_by", irt_lock_lifted_by)
        if registry_owner_change is not None:
            pulumi.set(__self__, "registry_owner_change", registry_owner_change)
        if state is not None:
            pulumi.set(__self__, "state", state)

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        DNSimple Account ID to which the registrant change belongs to
        """
        return pulumi.get(self, "account_id")

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

    @property
    @pulumi.getter(name="contactId")
    def contact_id(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        The ID of the contact to be used for the domain registration. The contact ID can be changed after the domain has been registered. The change will result in a new registrant change this may result in a [60-day lock](https://support.dnsimple.com/articles/icann-60-day-lock-registrant-change/).
        """
        return pulumi.get(self, "contact_id")

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

    @property
    @pulumi.getter(name="domainId")
    def domain_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        DNSimple domain ID for which the registrant change is being performed
        """
        return pulumi.get(self, "domain_id")

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

    @property
    @pulumi.getter(name="extendedAttributes")
    def extended_attributes(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]:
        """
        A map of extended attributes to be set for the domain registration. To see if there are any required extended attributes for any TLD use our [Lists the TLD Extended Attributes API](https://developer.dnsimple.com/v2/tlds/#getTldExtendedAttributes). The values provided in the `extended_attributes` will also be sent when a registrant change is initiated as part of changing the `contact_id`.
        """
        return pulumi.get(self, "extended_attributes")

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

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

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

    @property
    @pulumi.getter(name="irtLockLiftedBy")
    def irt_lock_lifted_by(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        Date when the registrant change lock was lifted for the domain
        """
        return pulumi.get(self, "irt_lock_lifted_by")

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

    @property
    @pulumi.getter(name="registryOwnerChange")
    def registry_owner_change(self) -> Optional[pulumi.Input[builtins.bool]]:
        """
        True if the registrant change will result in a registry owner change
        """
        return pulumi.get(self, "registry_owner_change")

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

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

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


if not MYPY:
    class RegisteredDomainTimeoutsArgsDict(TypedDict):
        create: NotRequired[pulumi.Input[builtins.str]]
        """
        Create timeout.
        """
        delete: NotRequired[pulumi.Input[builtins.str]]
        """
        Delete timeout (currently unused).
        """
        update: NotRequired[pulumi.Input[builtins.str]]
        """
        Update timeout.
        """
elif False:
    RegisteredDomainTimeoutsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class RegisteredDomainTimeoutsArgs:
    def __init__(__self__, *,
                 create: Optional[pulumi.Input[builtins.str]] = None,
                 delete: Optional[pulumi.Input[builtins.str]] = None,
                 update: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] create: Create timeout.
        :param pulumi.Input[builtins.str] delete: Delete timeout (currently unused).
        :param pulumi.Input[builtins.str] update: Update timeout.
        """
        if create is not None:
            pulumi.set(__self__, "create", create)
        if delete is not None:
            pulumi.set(__self__, "delete", delete)
        if update is not None:
            pulumi.set(__self__, "update", update)

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

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

    @property
    @pulumi.getter
    def delete(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        Delete timeout (currently unused).
        """
        return pulumi.get(self, "delete")

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

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

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


if not MYPY:
    class GetCertificateTimeoutsArgsDict(TypedDict):
        read: NotRequired[builtins.str]
        """
        (String) - The timeout for the read operation e.g. `5m`
        """
elif False:
    GetCertificateTimeoutsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetCertificateTimeoutsArgs:
    def __init__(__self__, *,
                 read: Optional[builtins.str] = None):
        """
        :param builtins.str read: (String) - The timeout for the read operation e.g. `5m`
        """
        if read is not None:
            pulumi.set(__self__, "read", read)

    @property
    @pulumi.getter
    def read(self) -> Optional[builtins.str]:
        """
        (String) - The timeout for the read operation e.g. `5m`
        """
        return pulumi.get(self, "read")

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


