# 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__ = [
    'GatewayLogConfigArgs',
    'GatewayLogConfigArgsDict',
    'GatewayLogConfigSlsArgs',
    'GatewayLogConfigSlsArgsDict',
    'GatewayNetworkAccessConfigArgs',
    'GatewayNetworkAccessConfigArgsDict',
    'GatewayVpcArgs',
    'GatewayVpcArgsDict',
    'GatewayVswitchArgs',
    'GatewayVswitchArgsDict',
    'GatewayZoneConfigArgs',
    'GatewayZoneConfigArgsDict',
]

MYPY = False

if not MYPY:
    class GatewayLogConfigArgsDict(TypedDict):
        sls: NotRequired[pulumi.Input['GatewayLogConfigSlsArgsDict']]
        """
        Sls See `sls` below.
        """
elif False:
    GatewayLogConfigArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GatewayLogConfigArgs:
    def __init__(__self__, *,
                 sls: Optional[pulumi.Input['GatewayLogConfigSlsArgs']] = None):
        """
        :param pulumi.Input['GatewayLogConfigSlsArgs'] sls: Sls See `sls` below.
        """
        if sls is not None:
            pulumi.set(__self__, "sls", sls)

    @property
    @pulumi.getter
    def sls(self) -> Optional[pulumi.Input['GatewayLogConfigSlsArgs']]:
        """
        Sls See `sls` below.
        """
        return pulumi.get(self, "sls")

    @sls.setter
    def sls(self, value: Optional[pulumi.Input['GatewayLogConfigSlsArgs']]):
        pulumi.set(self, "sls", value)


if not MYPY:
    class GatewayLogConfigSlsArgsDict(TypedDict):
        enable: NotRequired[pulumi.Input[bool]]
        """
        Enable Log Service
        """
elif False:
    GatewayLogConfigSlsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GatewayLogConfigSlsArgs:
    def __init__(__self__, *,
                 enable: Optional[pulumi.Input[bool]] = None):
        """
        :param pulumi.Input[bool] enable: Enable Log Service
        """
        if enable is not None:
            pulumi.set(__self__, "enable", enable)

    @property
    @pulumi.getter
    def enable(self) -> Optional[pulumi.Input[bool]]:
        """
        Enable Log Service
        """
        return pulumi.get(self, "enable")

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


if not MYPY:
    class GatewayNetworkAccessConfigArgsDict(TypedDict):
        type: NotRequired[pulumi.Input[str]]
        """
        Network Access Type
        """
elif False:
    GatewayNetworkAccessConfigArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GatewayNetworkAccessConfigArgs:
    def __init__(__self__, *,
                 type: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] type: Network Access Type
        """
        if type is not None:
            pulumi.set(__self__, "type", type)

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

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


if not MYPY:
    class GatewayVpcArgsDict(TypedDict):
        vpc_id: pulumi.Input[str]
        """
        The VPC network ID.
        """
        name: NotRequired[pulumi.Input[str]]
        """
        The name of the VPC gateway.
        """
elif False:
    GatewayVpcArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GatewayVpcArgs:
    def __init__(__self__, *,
                 vpc_id: pulumi.Input[str],
                 name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] vpc_id: The VPC network ID.
        :param pulumi.Input[str] name: The name of the VPC gateway.
        """
        pulumi.set(__self__, "vpc_id", vpc_id)
        if name is not None:
            pulumi.set(__self__, "name", name)

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

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

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

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


if not MYPY:
    class GatewayVswitchArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[str]]
        """
        The name of the VPC gateway.
        """
        vswitch_id: NotRequired[pulumi.Input[str]]
        """
        The ID of the virtual switch.
        """
elif False:
    GatewayVswitchArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GatewayVswitchArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[str]] = None,
                 vswitch_id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] name: The name of the VPC gateway.
        :param pulumi.Input[str] vswitch_id: The ID of the virtual switch.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if vswitch_id is not None:
            pulumi.set(__self__, "vswitch_id", vswitch_id)

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

    @name.setter
    def name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "name", 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)


if not MYPY:
    class GatewayZoneConfigArgsDict(TypedDict):
        select_option: pulumi.Input[str]
        """
        Availability Zone Options
        """
elif False:
    GatewayZoneConfigArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GatewayZoneConfigArgs:
    def __init__(__self__, *,
                 select_option: pulumi.Input[str]):
        """
        :param pulumi.Input[str] select_option: Availability Zone Options
        """
        pulumi.set(__self__, "select_option", select_option)

    @property
    @pulumi.getter(name="selectOption")
    def select_option(self) -> pulumi.Input[str]:
        """
        Availability Zone Options
        """
        return pulumi.get(self, "select_option")

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


