# 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__ = [
    'InstancePrivateNetworkArgs',
    'InstancePrivateNetworkArgsDict',
    'InstancePublicNetworkArgs',
    'InstancePublicNetworkArgsDict',
]

MYPY = False

if not MYPY:
    class InstancePrivateNetworkArgsDict(TypedDict):
        pn_id: pulumi.Input[str]
        """
        The ID of the Private Network.
        """
        dns_records: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
        """
        List of DNS records for your endpoint.
        """
        id: NotRequired[pulumi.Input[str]]
        """
        The ID of the endpoint.
        """
        ips: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
        """
        List of IP addresses for your endpoint.
        """
        port: NotRequired[pulumi.Input[int]]
        """
        TCP port of the endpoint.
        """
elif False:
    InstancePrivateNetworkArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InstancePrivateNetworkArgs:
    def __init__(__self__, *,
                 pn_id: pulumi.Input[str],
                 dns_records: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 id: Optional[pulumi.Input[str]] = None,
                 ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 port: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[str] pn_id: The ID of the Private Network.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] dns_records: List of DNS records for your endpoint.
        :param pulumi.Input[str] id: The ID of the endpoint.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] ips: List of IP addresses for your endpoint.
        :param pulumi.Input[int] port: TCP port of the endpoint.
        """
        pulumi.set(__self__, "pn_id", pn_id)
        if dns_records is not None:
            pulumi.set(__self__, "dns_records", dns_records)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if ips is not None:
            pulumi.set(__self__, "ips", ips)
        if port is not None:
            pulumi.set(__self__, "port", port)

    @property
    @pulumi.getter(name="pnId")
    def pn_id(self) -> pulumi.Input[str]:
        """
        The ID of the Private Network.
        """
        return pulumi.get(self, "pn_id")

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

    @property
    @pulumi.getter(name="dnsRecords")
    def dns_records(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        List of DNS records for your endpoint.
        """
        return pulumi.get(self, "dns_records")

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

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

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

    @property
    @pulumi.getter
    def ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        List of IP addresses for your endpoint.
        """
        return pulumi.get(self, "ips")

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

    @property
    @pulumi.getter
    def port(self) -> Optional[pulumi.Input[int]]:
        """
        TCP port of the endpoint.
        """
        return pulumi.get(self, "port")

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


if not MYPY:
    class InstancePublicNetworkArgsDict(TypedDict):
        dns_record: NotRequired[pulumi.Input[str]]
        """
        The DNS record of your endpoint
        """
        id: NotRequired[pulumi.Input[str]]
        """
        The ID of the endpoint.
        """
        port: NotRequired[pulumi.Input[int]]
        """
        TCP port of the endpoint.
        """
elif False:
    InstancePublicNetworkArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InstancePublicNetworkArgs:
    def __init__(__self__, *,
                 dns_record: Optional[pulumi.Input[str]] = None,
                 id: Optional[pulumi.Input[str]] = None,
                 port: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[str] dns_record: The DNS record of your endpoint
        :param pulumi.Input[str] id: The ID of the endpoint.
        :param pulumi.Input[int] port: TCP port of the endpoint.
        """
        if dns_record is not None:
            pulumi.set(__self__, "dns_record", dns_record)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if port is not None:
            pulumi.set(__self__, "port", port)

    @property
    @pulumi.getter(name="dnsRecord")
    def dns_record(self) -> Optional[pulumi.Input[str]]:
        """
        The DNS record of your endpoint
        """
        return pulumi.get(self, "dns_record")

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

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

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

    @property
    @pulumi.getter
    def port(self) -> Optional[pulumi.Input[int]]:
        """
        TCP port of the endpoint.
        """
        return pulumi.get(self, "port")

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


