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

__all__ = ['CustomerGatewayArgs', 'CustomerGateway']

@pulumi.input_type
class CustomerGatewayArgs:
    def __init__(__self__, *,
                 ip_address: pulumi.Input[builtins.str],
                 asn: Optional[pulumi.Input[builtins.int]] = None,
                 customer_gateway_name: Optional[pulumi.Input[builtins.str]] = None,
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 ip_version: Optional[pulumi.Input[builtins.str]] = None,
                 project_name: Optional[pulumi.Input[builtins.str]] = None,
                 tags: Optional[pulumi.Input[Sequence[pulumi.Input['CustomerGatewayTagArgs']]]] = None):
        """
        The set of arguments for constructing a CustomerGateway resource.
        :param pulumi.Input[builtins.str] ip_address: 对端本地数据中心网关的静态公网IP地址或其他VPC的VPN网关出口IP地址。若对端为非固定静态公网IP，此处需传入0.0.0.0。
        :param pulumi.Input[builtins.int] asn: 用户网关的ASN（Autonomous System Number）。如需使用BGP功能，则此参数必须填写。ASN有效范围1～4294967295（137718 、150436、65533除外）。
        :param pulumi.Input[builtins.str] customer_gateway_name: 用户网关的名称。以中文、字母、数字开头，只能包含中文、字母、数字、点号（.）、下划线（_）和短划线（-）。长度限制为1 ~ 128个字符。不填默认为用户网关的ID。
        :param pulumi.Input[builtins.str] description: 用户网关的描述信息。以中文、字母、数字开头，只能包含中文、字母、数字、点号（.）、空格（ ）、下划线（_）、中划线（-）、等号（=）、英文逗号（,）、中文逗号（，）、中文句号（。）。长度限制为0 ~ 255个字符。不填默认为空字符串。
        :param pulumi.Input[builtins.str] ip_version: VPN网关的IP地址协议类型，取值如下：ipv4 （默认值）ipv6
        :param pulumi.Input[builtins.str] project_name: 用户网关所属的项目。不填默认为default，即创建的资源属于default项目。
        """
        pulumi.set(__self__, "ip_address", ip_address)
        if asn is not None:
            pulumi.set(__self__, "asn", asn)
        if customer_gateway_name is not None:
            pulumi.set(__self__, "customer_gateway_name", customer_gateway_name)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if ip_version is not None:
            pulumi.set(__self__, "ip_version", ip_version)
        if project_name is not None:
            pulumi.set(__self__, "project_name", project_name)
        if tags is not None:
            pulumi.set(__self__, "tags", tags)

    @property
    @pulumi.getter(name="ipAddress")
    def ip_address(self) -> pulumi.Input[builtins.str]:
        """
        对端本地数据中心网关的静态公网IP地址或其他VPC的VPN网关出口IP地址。若对端为非固定静态公网IP，此处需传入0.0.0.0。
        """
        return pulumi.get(self, "ip_address")

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

    @property
    @pulumi.getter
    def asn(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        用户网关的ASN（Autonomous System Number）。如需使用BGP功能，则此参数必须填写。ASN有效范围1～4294967295（137718 、150436、65533除外）。
        """
        return pulumi.get(self, "asn")

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

    @property
    @pulumi.getter(name="customerGatewayName")
    def customer_gateway_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        用户网关的名称。以中文、字母、数字开头，只能包含中文、字母、数字、点号（.）、下划线（_）和短划线（-）。长度限制为1 ~ 128个字符。不填默认为用户网关的ID。
        """
        return pulumi.get(self, "customer_gateway_name")

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

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        用户网关的描述信息。以中文、字母、数字开头，只能包含中文、字母、数字、点号（.）、空格（ ）、下划线（_）、中划线（-）、等号（=）、英文逗号（,）、中文逗号（，）、中文句号（。）。长度限制为0 ~ 255个字符。不填默认为空字符串。
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter(name="ipVersion")
    def ip_version(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        VPN网关的IP地址协议类型，取值如下：ipv4 （默认值）ipv6
        """
        return pulumi.get(self, "ip_version")

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

    @property
    @pulumi.getter(name="projectName")
    def project_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        用户网关所属的项目。不填默认为default，即创建的资源属于default项目。
        """
        return pulumi.get(self, "project_name")

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

    @property
    @pulumi.getter
    def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['CustomerGatewayTagArgs']]]]:
        return pulumi.get(self, "tags")

    @tags.setter
    def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['CustomerGatewayTagArgs']]]]):
        pulumi.set(self, "tags", value)


@pulumi.input_type
class _CustomerGatewayState:
    def __init__(__self__, *,
                 account_id: Optional[pulumi.Input[builtins.str]] = None,
                 asn: Optional[pulumi.Input[builtins.int]] = None,
                 connection_count: Optional[pulumi.Input[builtins.int]] = None,
                 created_time: Optional[pulumi.Input[builtins.str]] = None,
                 customer_gateway_id: Optional[pulumi.Input[builtins.str]] = None,
                 customer_gateway_name: Optional[pulumi.Input[builtins.str]] = None,
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 ip_address: Optional[pulumi.Input[builtins.str]] = None,
                 ip_version: Optional[pulumi.Input[builtins.str]] = None,
                 project_name: Optional[pulumi.Input[builtins.str]] = None,
                 status: Optional[pulumi.Input[builtins.str]] = None,
                 tags: Optional[pulumi.Input[Sequence[pulumi.Input['CustomerGatewayTagArgs']]]] = None,
                 updated_time: Optional[pulumi.Input[builtins.str]] = None):
        """
        Input properties used for looking up and filtering CustomerGateway resources.
        :param pulumi.Input[builtins.str] account_id: 用户网关所属账户的ID。
        :param pulumi.Input[builtins.int] asn: 用户网关的ASN（Autonomous System Number）。如需使用BGP功能，则此参数必须填写。ASN有效范围1～4294967295（137718 、150436、65533除外）。
        :param pulumi.Input[builtins.int] connection_count: 用户网关关联的IPsec连接的数量。
        :param pulumi.Input[builtins.str] created_time: 创建用户网关的时间。
        :param pulumi.Input[builtins.str] customer_gateway_id: 网关ID。
        :param pulumi.Input[builtins.str] customer_gateway_name: 用户网关的名称。以中文、字母、数字开头，只能包含中文、字母、数字、点号（.）、下划线（_）和短划线（-）。长度限制为1 ~ 128个字符。不填默认为用户网关的ID。
        :param pulumi.Input[builtins.str] description: 用户网关的描述信息。以中文、字母、数字开头，只能包含中文、字母、数字、点号（.）、空格（ ）、下划线（_）、中划线（-）、等号（=）、英文逗号（,）、中文逗号（，）、中文句号（。）。长度限制为0 ~ 255个字符。不填默认为空字符串。
        :param pulumi.Input[builtins.str] ip_address: 对端本地数据中心网关的静态公网IP地址或其他VPC的VPN网关出口IP地址。若对端为非固定静态公网IP，此处需传入0.0.0.0。
        :param pulumi.Input[builtins.str] ip_version: VPN网关的IP地址协议类型，取值如下：ipv4 （默认值）ipv6
        :param pulumi.Input[builtins.str] project_name: 用户网关所属的项目。不填默认为default，即创建的资源属于default项目。
        :param pulumi.Input[builtins.str] status: 用户网关的状态。Creating: 创建中。Deleting: 删除中。Pending：配置中。Available：可用。
        :param pulumi.Input[builtins.str] updated_time: 更新用户网关的时间。
        """
        if account_id is not None:
            pulumi.set(__self__, "account_id", account_id)
        if asn is not None:
            pulumi.set(__self__, "asn", asn)
        if connection_count is not None:
            pulumi.set(__self__, "connection_count", connection_count)
        if created_time is not None:
            pulumi.set(__self__, "created_time", created_time)
        if customer_gateway_id is not None:
            pulumi.set(__self__, "customer_gateway_id", customer_gateway_id)
        if customer_gateway_name is not None:
            pulumi.set(__self__, "customer_gateway_name", customer_gateway_name)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if ip_address is not None:
            pulumi.set(__self__, "ip_address", ip_address)
        if ip_version is not None:
            pulumi.set(__self__, "ip_version", ip_version)
        if project_name is not None:
            pulumi.set(__self__, "project_name", project_name)
        if status is not None:
            pulumi.set(__self__, "status", status)
        if tags is not None:
            pulumi.set(__self__, "tags", tags)
        if updated_time is not None:
            pulumi.set(__self__, "updated_time", updated_time)

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        用户网关所属账户的ID。
        """
        return pulumi.get(self, "account_id")

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

    @property
    @pulumi.getter
    def asn(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        用户网关的ASN（Autonomous System Number）。如需使用BGP功能，则此参数必须填写。ASN有效范围1～4294967295（137718 、150436、65533除外）。
        """
        return pulumi.get(self, "asn")

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

    @property
    @pulumi.getter(name="connectionCount")
    def connection_count(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        用户网关关联的IPsec连接的数量。
        """
        return pulumi.get(self, "connection_count")

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

    @property
    @pulumi.getter(name="createdTime")
    def created_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        创建用户网关的时间。
        """
        return pulumi.get(self, "created_time")

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

    @property
    @pulumi.getter(name="customerGatewayId")
    def customer_gateway_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        网关ID。
        """
        return pulumi.get(self, "customer_gateway_id")

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

    @property
    @pulumi.getter(name="customerGatewayName")
    def customer_gateway_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        用户网关的名称。以中文、字母、数字开头，只能包含中文、字母、数字、点号（.）、下划线（_）和短划线（-）。长度限制为1 ~ 128个字符。不填默认为用户网关的ID。
        """
        return pulumi.get(self, "customer_gateway_name")

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

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        用户网关的描述信息。以中文、字母、数字开头，只能包含中文、字母、数字、点号（.）、空格（ ）、下划线（_）、中划线（-）、等号（=）、英文逗号（,）、中文逗号（，）、中文句号（。）。长度限制为0 ~ 255个字符。不填默认为空字符串。
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter(name="ipAddress")
    def ip_address(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        对端本地数据中心网关的静态公网IP地址或其他VPC的VPN网关出口IP地址。若对端为非固定静态公网IP，此处需传入0.0.0.0。
        """
        return pulumi.get(self, "ip_address")

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

    @property
    @pulumi.getter(name="ipVersion")
    def ip_version(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        VPN网关的IP地址协议类型，取值如下：ipv4 （默认值）ipv6
        """
        return pulumi.get(self, "ip_version")

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

    @property
    @pulumi.getter(name="projectName")
    def project_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        用户网关所属的项目。不填默认为default，即创建的资源属于default项目。
        """
        return pulumi.get(self, "project_name")

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

    @property
    @pulumi.getter
    def status(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        用户网关的状态。Creating: 创建中。Deleting: 删除中。Pending：配置中。Available：可用。
        """
        return pulumi.get(self, "status")

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

    @property
    @pulumi.getter
    def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['CustomerGatewayTagArgs']]]]:
        return pulumi.get(self, "tags")

    @tags.setter
    def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['CustomerGatewayTagArgs']]]]):
        pulumi.set(self, "tags", value)

    @property
    @pulumi.getter(name="updatedTime")
    def updated_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        更新用户网关的时间。
        """
        return pulumi.get(self, "updated_time")

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


@pulumi.type_token("bytepluscc:vpn/customerGateway:CustomerGateway")
class CustomerGateway(pulumi.CustomResource):
    @overload
    def __init__(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 asn: Optional[pulumi.Input[builtins.int]] = None,
                 customer_gateway_name: Optional[pulumi.Input[builtins.str]] = None,
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 ip_address: Optional[pulumi.Input[builtins.str]] = None,
                 ip_version: Optional[pulumi.Input[builtins.str]] = None,
                 project_name: Optional[pulumi.Input[builtins.str]] = None,
                 tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['CustomerGatewayTagArgs', 'CustomerGatewayTagArgsDict']]]]] = None,
                 __props__=None):
        """
        用户网关是您本地网关侧的信息集合和抽象。通过用户网关，您可以把本地网关的信息注册到云上VPC之中。一个用户网关，可以对接多个VPN网关。

        ## Example Usage

        ```python
        import pulumi
        import pulumi_bytepluscc as bytepluscc

        vpncustomergateway_demo = bytepluscc.vpn.CustomerGateway("vpncustomergatewayDemo",
            asn=64513,
            customer_gateway_name="ccapi-test",
            description="testdesc",
            ip_address="115.***.151.5",
            ip_version="ipv4",
            project_name="default")
        ```

        ## Import

        ```sh
        $ pulumi import bytepluscc:vpn/customerGateway:CustomerGateway example "customer_gateway_id"
        ```

        :param str resource_name: The name of the resource.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[builtins.int] asn: 用户网关的ASN（Autonomous System Number）。如需使用BGP功能，则此参数必须填写。ASN有效范围1～4294967295（137718 、150436、65533除外）。
        :param pulumi.Input[builtins.str] customer_gateway_name: 用户网关的名称。以中文、字母、数字开头，只能包含中文、字母、数字、点号（.）、下划线（_）和短划线（-）。长度限制为1 ~ 128个字符。不填默认为用户网关的ID。
        :param pulumi.Input[builtins.str] description: 用户网关的描述信息。以中文、字母、数字开头，只能包含中文、字母、数字、点号（.）、空格（ ）、下划线（_）、中划线（-）、等号（=）、英文逗号（,）、中文逗号（，）、中文句号（。）。长度限制为0 ~ 255个字符。不填默认为空字符串。
        :param pulumi.Input[builtins.str] ip_address: 对端本地数据中心网关的静态公网IP地址或其他VPC的VPN网关出口IP地址。若对端为非固定静态公网IP，此处需传入0.0.0.0。
        :param pulumi.Input[builtins.str] ip_version: VPN网关的IP地址协议类型，取值如下：ipv4 （默认值）ipv6
        :param pulumi.Input[builtins.str] project_name: 用户网关所属的项目。不填默认为default，即创建的资源属于default项目。
        """
        ...
    @overload
    def __init__(__self__,
                 resource_name: str,
                 args: CustomerGatewayArgs,
                 opts: Optional[pulumi.ResourceOptions] = None):
        """
        用户网关是您本地网关侧的信息集合和抽象。通过用户网关，您可以把本地网关的信息注册到云上VPC之中。一个用户网关，可以对接多个VPN网关。

        ## Example Usage

        ```python
        import pulumi
        import pulumi_bytepluscc as bytepluscc

        vpncustomergateway_demo = bytepluscc.vpn.CustomerGateway("vpncustomergatewayDemo",
            asn=64513,
            customer_gateway_name="ccapi-test",
            description="testdesc",
            ip_address="115.***.151.5",
            ip_version="ipv4",
            project_name="default")
        ```

        ## Import

        ```sh
        $ pulumi import bytepluscc:vpn/customerGateway:CustomerGateway example "customer_gateway_id"
        ```

        :param str resource_name: The name of the resource.
        :param CustomerGatewayArgs args: The arguments to use to populate this resource's properties.
        :param pulumi.ResourceOptions opts: Options for the resource.
        """
        ...
    def __init__(__self__, resource_name: str, *args, **kwargs):
        resource_args, opts = _utilities.get_resource_args_opts(CustomerGatewayArgs, pulumi.ResourceOptions, *args, **kwargs)
        if resource_args is not None:
            __self__._internal_init(resource_name, opts, **resource_args.__dict__)
        else:
            __self__._internal_init(resource_name, *args, **kwargs)

    def _internal_init(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 asn: Optional[pulumi.Input[builtins.int]] = None,
                 customer_gateway_name: Optional[pulumi.Input[builtins.str]] = None,
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 ip_address: Optional[pulumi.Input[builtins.str]] = None,
                 ip_version: Optional[pulumi.Input[builtins.str]] = None,
                 project_name: Optional[pulumi.Input[builtins.str]] = None,
                 tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['CustomerGatewayTagArgs', 'CustomerGatewayTagArgsDict']]]]] = None,
                 __props__=None):
        opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
        if not isinstance(opts, pulumi.ResourceOptions):
            raise TypeError('Expected resource options to be a ResourceOptions instance')
        if opts.id is None:
            if __props__ is not None:
                raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
            __props__ = CustomerGatewayArgs.__new__(CustomerGatewayArgs)

            __props__.__dict__["asn"] = asn
            __props__.__dict__["customer_gateway_name"] = customer_gateway_name
            __props__.__dict__["description"] = description
            if ip_address is None and not opts.urn:
                raise TypeError("Missing required property 'ip_address'")
            __props__.__dict__["ip_address"] = ip_address
            __props__.__dict__["ip_version"] = ip_version
            __props__.__dict__["project_name"] = project_name
            __props__.__dict__["tags"] = tags
            __props__.__dict__["account_id"] = None
            __props__.__dict__["connection_count"] = None
            __props__.__dict__["created_time"] = None
            __props__.__dict__["customer_gateway_id"] = None
            __props__.__dict__["status"] = None
            __props__.__dict__["updated_time"] = None
        super(CustomerGateway, __self__).__init__(
            'bytepluscc:vpn/customerGateway:CustomerGateway',
            resource_name,
            __props__,
            opts)

    @staticmethod
    def get(resource_name: str,
            id: pulumi.Input[str],
            opts: Optional[pulumi.ResourceOptions] = None,
            account_id: Optional[pulumi.Input[builtins.str]] = None,
            asn: Optional[pulumi.Input[builtins.int]] = None,
            connection_count: Optional[pulumi.Input[builtins.int]] = None,
            created_time: Optional[pulumi.Input[builtins.str]] = None,
            customer_gateway_id: Optional[pulumi.Input[builtins.str]] = None,
            customer_gateway_name: Optional[pulumi.Input[builtins.str]] = None,
            description: Optional[pulumi.Input[builtins.str]] = None,
            ip_address: Optional[pulumi.Input[builtins.str]] = None,
            ip_version: Optional[pulumi.Input[builtins.str]] = None,
            project_name: Optional[pulumi.Input[builtins.str]] = None,
            status: Optional[pulumi.Input[builtins.str]] = None,
            tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['CustomerGatewayTagArgs', 'CustomerGatewayTagArgsDict']]]]] = None,
            updated_time: Optional[pulumi.Input[builtins.str]] = None) -> 'CustomerGateway':
        """
        Get an existing CustomerGateway resource's state with the given name, id, and optional extra
        properties used to qualify the lookup.

        :param str resource_name: The unique name of the resulting resource.
        :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[builtins.str] account_id: 用户网关所属账户的ID。
        :param pulumi.Input[builtins.int] asn: 用户网关的ASN（Autonomous System Number）。如需使用BGP功能，则此参数必须填写。ASN有效范围1～4294967295（137718 、150436、65533除外）。
        :param pulumi.Input[builtins.int] connection_count: 用户网关关联的IPsec连接的数量。
        :param pulumi.Input[builtins.str] created_time: 创建用户网关的时间。
        :param pulumi.Input[builtins.str] customer_gateway_id: 网关ID。
        :param pulumi.Input[builtins.str] customer_gateway_name: 用户网关的名称。以中文、字母、数字开头，只能包含中文、字母、数字、点号（.）、下划线（_）和短划线（-）。长度限制为1 ~ 128个字符。不填默认为用户网关的ID。
        :param pulumi.Input[builtins.str] description: 用户网关的描述信息。以中文、字母、数字开头，只能包含中文、字母、数字、点号（.）、空格（ ）、下划线（_）、中划线（-）、等号（=）、英文逗号（,）、中文逗号（，）、中文句号（。）。长度限制为0 ~ 255个字符。不填默认为空字符串。
        :param pulumi.Input[builtins.str] ip_address: 对端本地数据中心网关的静态公网IP地址或其他VPC的VPN网关出口IP地址。若对端为非固定静态公网IP，此处需传入0.0.0.0。
        :param pulumi.Input[builtins.str] ip_version: VPN网关的IP地址协议类型，取值如下：ipv4 （默认值）ipv6
        :param pulumi.Input[builtins.str] project_name: 用户网关所属的项目。不填默认为default，即创建的资源属于default项目。
        :param pulumi.Input[builtins.str] status: 用户网关的状态。Creating: 创建中。Deleting: 删除中。Pending：配置中。Available：可用。
        :param pulumi.Input[builtins.str] updated_time: 更新用户网关的时间。
        """
        opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))

        __props__ = _CustomerGatewayState.__new__(_CustomerGatewayState)

        __props__.__dict__["account_id"] = account_id
        __props__.__dict__["asn"] = asn
        __props__.__dict__["connection_count"] = connection_count
        __props__.__dict__["created_time"] = created_time
        __props__.__dict__["customer_gateway_id"] = customer_gateway_id
        __props__.__dict__["customer_gateway_name"] = customer_gateway_name
        __props__.__dict__["description"] = description
        __props__.__dict__["ip_address"] = ip_address
        __props__.__dict__["ip_version"] = ip_version
        __props__.__dict__["project_name"] = project_name
        __props__.__dict__["status"] = status
        __props__.__dict__["tags"] = tags
        __props__.__dict__["updated_time"] = updated_time
        return CustomerGateway(resource_name, opts=opts, __props__=__props__)

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> pulumi.Output[builtins.str]:
        """
        用户网关所属账户的ID。
        """
        return pulumi.get(self, "account_id")

    @property
    @pulumi.getter
    def asn(self) -> pulumi.Output[builtins.int]:
        """
        用户网关的ASN（Autonomous System Number）。如需使用BGP功能，则此参数必须填写。ASN有效范围1～4294967295（137718 、150436、65533除外）。
        """
        return pulumi.get(self, "asn")

    @property
    @pulumi.getter(name="connectionCount")
    def connection_count(self) -> pulumi.Output[builtins.int]:
        """
        用户网关关联的IPsec连接的数量。
        """
        return pulumi.get(self, "connection_count")

    @property
    @pulumi.getter(name="createdTime")
    def created_time(self) -> pulumi.Output[builtins.str]:
        """
        创建用户网关的时间。
        """
        return pulumi.get(self, "created_time")

    @property
    @pulumi.getter(name="customerGatewayId")
    def customer_gateway_id(self) -> pulumi.Output[builtins.str]:
        """
        网关ID。
        """
        return pulumi.get(self, "customer_gateway_id")

    @property
    @pulumi.getter(name="customerGatewayName")
    def customer_gateway_name(self) -> pulumi.Output[builtins.str]:
        """
        用户网关的名称。以中文、字母、数字开头，只能包含中文、字母、数字、点号（.）、下划线（_）和短划线（-）。长度限制为1 ~ 128个字符。不填默认为用户网关的ID。
        """
        return pulumi.get(self, "customer_gateway_name")

    @property
    @pulumi.getter
    def description(self) -> pulumi.Output[builtins.str]:
        """
        用户网关的描述信息。以中文、字母、数字开头，只能包含中文、字母、数字、点号（.）、空格（ ）、下划线（_）、中划线（-）、等号（=）、英文逗号（,）、中文逗号（，）、中文句号（。）。长度限制为0 ~ 255个字符。不填默认为空字符串。
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="ipAddress")
    def ip_address(self) -> pulumi.Output[builtins.str]:
        """
        对端本地数据中心网关的静态公网IP地址或其他VPC的VPN网关出口IP地址。若对端为非固定静态公网IP，此处需传入0.0.0.0。
        """
        return pulumi.get(self, "ip_address")

    @property
    @pulumi.getter(name="ipVersion")
    def ip_version(self) -> pulumi.Output[builtins.str]:
        """
        VPN网关的IP地址协议类型，取值如下：ipv4 （默认值）ipv6
        """
        return pulumi.get(self, "ip_version")

    @property
    @pulumi.getter(name="projectName")
    def project_name(self) -> pulumi.Output[builtins.str]:
        """
        用户网关所属的项目。不填默认为default，即创建的资源属于default项目。
        """
        return pulumi.get(self, "project_name")

    @property
    @pulumi.getter
    def status(self) -> pulumi.Output[builtins.str]:
        """
        用户网关的状态。Creating: 创建中。Deleting: 删除中。Pending：配置中。Available：可用。
        """
        return pulumi.get(self, "status")

    @property
    @pulumi.getter
    def tags(self) -> pulumi.Output[Sequence['outputs.CustomerGatewayTag']]:
        return pulumi.get(self, "tags")

    @property
    @pulumi.getter(name="updatedTime")
    def updated_time(self) -> pulumi.Output[builtins.str]:
        """
        更新用户网关的时间。
        """
        return pulumi.get(self, "updated_time")

