# 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__ = [
    'InstanceEndpointArgs',
    'InstanceEndpointArgsDict',
]

MYPY = False

if not MYPY:
    class InstanceEndpointArgsDict(TypedDict):
        alternative_endpoints: NotRequired[pulumi.Input[str]]
        """
        Some old instances have both AnyTunnel and SingleTunnel enabled. When switching from AnyTunnel to SingleTunnel, the endpoints of both are retained. Therefore, one more field is required to store the Endpoint.
        """
        enabled: NotRequired[pulumi.Input[bool]]
        """
        Whether to turn on the network.
        """
        endpoint: NotRequired[pulumi.Input[str]]
        """
        Domain name.
        """
        type: NotRequired[pulumi.Input[str]]
        """
        The network type.
        """
        vpc_id: NotRequired[pulumi.Input[str]]
        """
        VPC primary key.
        """
        vpc_instance_id: NotRequired[pulumi.Input[str]]
        """
        The vpc instance ID.
        """
        vswitch_id: NotRequired[pulumi.Input[str]]
        """
        The ID of the virtual switch.
        """
elif False:
    InstanceEndpointArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InstanceEndpointArgs:
    def __init__(__self__, *,
                 alternative_endpoints: Optional[pulumi.Input[str]] = None,
                 enabled: Optional[pulumi.Input[bool]] = None,
                 endpoint: Optional[pulumi.Input[str]] = None,
                 type: Optional[pulumi.Input[str]] = None,
                 vpc_id: Optional[pulumi.Input[str]] = None,
                 vpc_instance_id: Optional[pulumi.Input[str]] = None,
                 vswitch_id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] alternative_endpoints: Some old instances have both AnyTunnel and SingleTunnel enabled. When switching from AnyTunnel to SingleTunnel, the endpoints of both are retained. Therefore, one more field is required to store the Endpoint.
        :param pulumi.Input[bool] enabled: Whether to turn on the network.
        :param pulumi.Input[str] endpoint: Domain name.
        :param pulumi.Input[str] type: The network type.
        :param pulumi.Input[str] vpc_id: VPC primary key.
        :param pulumi.Input[str] vpc_instance_id: The vpc instance ID.
        :param pulumi.Input[str] vswitch_id: The ID of the virtual switch.
        """
        if alternative_endpoints is not None:
            pulumi.set(__self__, "alternative_endpoints", alternative_endpoints)
        if enabled is not None:
            pulumi.set(__self__, "enabled", enabled)
        if endpoint is not None:
            pulumi.set(__self__, "endpoint", endpoint)
        if type is not None:
            pulumi.set(__self__, "type", type)
        if vpc_id is not None:
            pulumi.set(__self__, "vpc_id", vpc_id)
        if vpc_instance_id is not None:
            pulumi.set(__self__, "vpc_instance_id", vpc_instance_id)
        if vswitch_id is not None:
            pulumi.set(__self__, "vswitch_id", vswitch_id)

    @property
    @pulumi.getter(name="alternativeEndpoints")
    def alternative_endpoints(self) -> Optional[pulumi.Input[str]]:
        """
        Some old instances have both AnyTunnel and SingleTunnel enabled. When switching from AnyTunnel to SingleTunnel, the endpoints of both are retained. Therefore, one more field is required to store the Endpoint.
        """
        return pulumi.get(self, "alternative_endpoints")

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

    @property
    @pulumi.getter
    def enabled(self) -> Optional[pulumi.Input[bool]]:
        """
        Whether to turn on the network.
        """
        return pulumi.get(self, "enabled")

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

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

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

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

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

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

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

    @property
    @pulumi.getter(name="vpcInstanceId")
    def vpc_instance_id(self) -> Optional[pulumi.Input[str]]:
        """
        The vpc instance ID.
        """
        return pulumi.get(self, "vpc_instance_id")

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

    @property
    @pulumi.getter(name="vswitchId")
    def vswitch_id(self) -> Optional[pulumi.Input[str]]:
        """
        The ID of the virtual switch.
        """
        return pulumi.get(self, "vswitch_id")

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


