# 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 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__ = [
    'DnsControlPolicyDomainListV1Args',
    'DnsControlPolicyDomainListV1ArgsDict',
    'DnsControlPolicySourceArgs',
    'DnsControlPolicySourceArgsDict',
]

MYPY = False

if not MYPY:
    class DnsControlPolicyDomainListV1ArgsDict(TypedDict):
        address: NotRequired[pulumi.Input[builtins.str]]
        """
        具体地址信息。
        """
        description: NotRequired[pulumi.Input[builtins.str]]
        """
        描述信息。
        """
        type: NotRequired[pulumi.Input[builtins.str]]
        """
        地址类型。支持的取值如下所示。ip：IPv4 地址；ipv6：IPv6 地址；domain：域名；port：端口。
        """
elif False:
    DnsControlPolicyDomainListV1ArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class DnsControlPolicyDomainListV1Args:
    def __init__(__self__, *,
                 address: Optional[pulumi.Input[builtins.str]] = None,
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 type: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] address: 具体地址信息。
        :param pulumi.Input[builtins.str] description: 描述信息。
        :param pulumi.Input[builtins.str] type: 地址类型。支持的取值如下所示。ip：IPv4 地址；ipv6：IPv6 地址；domain：域名；port：端口。
        """
        if address is not None:
            pulumi.set(__self__, "address", address)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter
    def address(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        具体地址信息。
        """
        return pulumi.get(self, "address")

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

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        描述信息。
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        地址类型。支持的取值如下所示。ip：IPv4 地址；ipv6：IPv6 地址；domain：域名；port：端口。
        """
        return pulumi.get(self, "type")

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


if not MYPY:
    class DnsControlPolicySourceArgsDict(TypedDict):
        region: NotRequired[pulumi.Input[builtins.str]]
        """
        VPC地域信息。
        """
        vpc_id: NotRequired[pulumi.Input[builtins.str]]
        """
        VPC ID。
        """
elif False:
    DnsControlPolicySourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class DnsControlPolicySourceArgs:
    def __init__(__self__, *,
                 region: Optional[pulumi.Input[builtins.str]] = None,
                 vpc_id: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] region: VPC地域信息。
        :param pulumi.Input[builtins.str] vpc_id: VPC ID。
        """
        if region is not None:
            pulumi.set(__self__, "region", region)
        if vpc_id is not None:
            pulumi.set(__self__, "vpc_id", vpc_id)

    @property
    @pulumi.getter
    def region(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        VPC地域信息。
        """
        return pulumi.get(self, "region")

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

    @property
    @pulumi.getter(name="vpcId")
    def vpc_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        VPC ID。
        """
        return pulumi.get(self, "vpc_id")

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


