# 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 warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from .. import _utilities

__all__ = [
    'VPNConnectionIkeConfigArgs',
    'VPNConnectionIpsecConfigArgs',
]

@pulumi.input_type
class VPNConnectionIkeConfigArgs:
    def __init__(__self__, *,
                 pre_shared_key: pulumi.Input[str],
                 authentication_algorithm: Optional[pulumi.Input[str]] = None,
                 dh_group: Optional[pulumi.Input[str]] = None,
                 encryption_algorithm: Optional[pulumi.Input[str]] = None,
                 exchange_mode: Optional[pulumi.Input[str]] = None,
                 ike_version: Optional[pulumi.Input[str]] = None,
                 local_id: Optional[pulumi.Input[str]] = None,
                 remote_id: Optional[pulumi.Input[str]] = None,
                 sa_life_time: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[str] pre_shared_key: The key used for authentication between the VPN gateway and the Customer gateway which contains 1-128 characters and only support English, numbers and special characters: `!@#$%^&*()_+-=[]:,./'~`.
        :param pulumi.Input[str] authentication_algorithm: The authentication algorithm of IPSec negotiation. Possible values: `sha1`, `md5`. (Default: `sha1`)
        :param pulumi.Input[str] dh_group: The Diffie-Hellman group used by IKE negotiation. Possible values: `1`, `2`, `5`, `14`, `15`, `16`. (Default:`15`)
        :param pulumi.Input[str] encryption_algorithm: The encryption algorithm of IPSec negotiation. Possible values: `aes128`, `aes192`, `aes256`, `aes512`, `3des`. (Default: `aes128`).
        :param pulumi.Input[str] exchange_mode: The negotiation exchange mode of IKE V1 of VPN gateway. Possible values: `main` (main mode), `aggressive` (aggressive mode). (Default: `main`)
        :param pulumi.Input[str] ike_version: The version of the IKE protocol which only be supported IKE V1 protocol at present. Possible values: ikev1. (Default: ikev1)
        :param pulumi.Input[str] local_id: The identification of the VPN gateway.
        :param pulumi.Input[str] remote_id: The identification of the Customer gateway.
        :param pulumi.Input[int] sa_life_time: The Security Association lifecycle as the result of IPSec negotiation. Unit: second. Range: 1200-604800. (Default: `3600`)
        """
        pulumi.set(__self__, "pre_shared_key", pre_shared_key)
        if authentication_algorithm is not None:
            pulumi.set(__self__, "authentication_algorithm", authentication_algorithm)
        if dh_group is not None:
            pulumi.set(__self__, "dh_group", dh_group)
        if encryption_algorithm is not None:
            pulumi.set(__self__, "encryption_algorithm", encryption_algorithm)
        if exchange_mode is not None:
            pulumi.set(__self__, "exchange_mode", exchange_mode)
        if ike_version is not None:
            pulumi.set(__self__, "ike_version", ike_version)
        if local_id is not None:
            pulumi.set(__self__, "local_id", local_id)
        if remote_id is not None:
            pulumi.set(__self__, "remote_id", remote_id)
        if sa_life_time is not None:
            pulumi.set(__self__, "sa_life_time", sa_life_time)

    @property
    @pulumi.getter(name="preSharedKey")
    def pre_shared_key(self) -> pulumi.Input[str]:
        """
        The key used for authentication between the VPN gateway and the Customer gateway which contains 1-128 characters and only support English, numbers and special characters: `!@#$%^&*()_+-=[]:,./'~`.
        """
        return pulumi.get(self, "pre_shared_key")

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

    @property
    @pulumi.getter(name="authenticationAlgorithm")
    def authentication_algorithm(self) -> Optional[pulumi.Input[str]]:
        """
        The authentication algorithm of IPSec negotiation. Possible values: `sha1`, `md5`. (Default: `sha1`)
        """
        return pulumi.get(self, "authentication_algorithm")

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

    @property
    @pulumi.getter(name="dhGroup")
    def dh_group(self) -> Optional[pulumi.Input[str]]:
        """
        The Diffie-Hellman group used by IKE negotiation. Possible values: `1`, `2`, `5`, `14`, `15`, `16`. (Default:`15`)
        """
        return pulumi.get(self, "dh_group")

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

    @property
    @pulumi.getter(name="encryptionAlgorithm")
    def encryption_algorithm(self) -> Optional[pulumi.Input[str]]:
        """
        The encryption algorithm of IPSec negotiation. Possible values: `aes128`, `aes192`, `aes256`, `aes512`, `3des`. (Default: `aes128`).
        """
        return pulumi.get(self, "encryption_algorithm")

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

    @property
    @pulumi.getter(name="exchangeMode")
    def exchange_mode(self) -> Optional[pulumi.Input[str]]:
        """
        The negotiation exchange mode of IKE V1 of VPN gateway. Possible values: `main` (main mode), `aggressive` (aggressive mode). (Default: `main`)
        """
        return pulumi.get(self, "exchange_mode")

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

    @property
    @pulumi.getter(name="ikeVersion")
    def ike_version(self) -> Optional[pulumi.Input[str]]:
        """
        The version of the IKE protocol which only be supported IKE V1 protocol at present. Possible values: ikev1. (Default: ikev1)
        """
        return pulumi.get(self, "ike_version")

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

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

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

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

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

    @property
    @pulumi.getter(name="saLifeTime")
    def sa_life_time(self) -> Optional[pulumi.Input[int]]:
        """
        The Security Association lifecycle as the result of IPSec negotiation. Unit: second. Range: 1200-604800. (Default: `3600`)
        """
        return pulumi.get(self, "sa_life_time")

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


@pulumi.input_type
class VPNConnectionIpsecConfigArgs:
    def __init__(__self__, *,
                 local_subnet_ids: pulumi.Input[Sequence[pulumi.Input[str]]],
                 remote_subnets: pulumi.Input[Sequence[pulumi.Input[str]]],
                 authentication_algorithm: Optional[pulumi.Input[str]] = None,
                 encryption_algorithm: Optional[pulumi.Input[str]] = None,
                 pfs_dh_group: Optional[pulumi.Input[str]] = None,
                 protocol: Optional[pulumi.Input[str]] = None,
                 sa_life_time: Optional[pulumi.Input[int]] = None,
                 sa_life_time_bytes: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] local_subnet_ids: The id list of Local subnet.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] remote_subnets: The ip address list of remote subnet.
        :param pulumi.Input[str] authentication_algorithm: The authentication algorithm of IPSec negotiation. Possible values: `sha1`, `md5`. (Default: `sha1`)
        :param pulumi.Input[str] encryption_algorithm: The encryption algorithm of IPSec negotiation. Possible values: `aes128`, `aes192`, `aes256`, `aes512`, `3des`. (Default: `aes128`).
        :param pulumi.Input[str] pfs_dh_group: Whether the PFS of IPSec negotiation is on or off, `disable` as off, The Diffie-Hellman group as open.  Possible values: `disable`, `1`, `2`, `5`, `14`, `15`, `16`. (Default:`disable`)
        :param pulumi.Input[str] protocol: The security protocol of IPSec negotiation. Possible values: `esp`, `ah`. (Default:`esp`)
        :param pulumi.Input[int] sa_life_time: The Security Association lifecycle as the result of IPSec negotiation. Unit: second. Range: 1200-604800. (Default: `3600`)
        :param pulumi.Input[int] sa_life_time_bytes: The Security Association lifecycle in bytes as the result of IPSec negotiation. Unit: second. Range: 1200-604800. (Default: `3600`)
        """
        pulumi.set(__self__, "local_subnet_ids", local_subnet_ids)
        pulumi.set(__self__, "remote_subnets", remote_subnets)
        if authentication_algorithm is not None:
            pulumi.set(__self__, "authentication_algorithm", authentication_algorithm)
        if encryption_algorithm is not None:
            pulumi.set(__self__, "encryption_algorithm", encryption_algorithm)
        if pfs_dh_group is not None:
            pulumi.set(__self__, "pfs_dh_group", pfs_dh_group)
        if protocol is not None:
            pulumi.set(__self__, "protocol", protocol)
        if sa_life_time is not None:
            pulumi.set(__self__, "sa_life_time", sa_life_time)
        if sa_life_time_bytes is not None:
            pulumi.set(__self__, "sa_life_time_bytes", sa_life_time_bytes)

    @property
    @pulumi.getter(name="localSubnetIds")
    def local_subnet_ids(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
        """
        The id list of Local subnet.
        """
        return pulumi.get(self, "local_subnet_ids")

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

    @property
    @pulumi.getter(name="remoteSubnets")
    def remote_subnets(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
        """
        The ip address list of remote subnet.
        """
        return pulumi.get(self, "remote_subnets")

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

    @property
    @pulumi.getter(name="authenticationAlgorithm")
    def authentication_algorithm(self) -> Optional[pulumi.Input[str]]:
        """
        The authentication algorithm of IPSec negotiation. Possible values: `sha1`, `md5`. (Default: `sha1`)
        """
        return pulumi.get(self, "authentication_algorithm")

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

    @property
    @pulumi.getter(name="encryptionAlgorithm")
    def encryption_algorithm(self) -> Optional[pulumi.Input[str]]:
        """
        The encryption algorithm of IPSec negotiation. Possible values: `aes128`, `aes192`, `aes256`, `aes512`, `3des`. (Default: `aes128`).
        """
        return pulumi.get(self, "encryption_algorithm")

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

    @property
    @pulumi.getter(name="pfsDhGroup")
    def pfs_dh_group(self) -> Optional[pulumi.Input[str]]:
        """
        Whether the PFS of IPSec negotiation is on or off, `disable` as off, The Diffie-Hellman group as open.  Possible values: `disable`, `1`, `2`, `5`, `14`, `15`, `16`. (Default:`disable`)
        """
        return pulumi.get(self, "pfs_dh_group")

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

    @property
    @pulumi.getter
    def protocol(self) -> Optional[pulumi.Input[str]]:
        """
        The security protocol of IPSec negotiation. Possible values: `esp`, `ah`. (Default:`esp`)
        """
        return pulumi.get(self, "protocol")

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

    @property
    @pulumi.getter(name="saLifeTime")
    def sa_life_time(self) -> Optional[pulumi.Input[int]]:
        """
        The Security Association lifecycle as the result of IPSec negotiation. Unit: second. Range: 1200-604800. (Default: `3600`)
        """
        return pulumi.get(self, "sa_life_time")

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

    @property
    @pulumi.getter(name="saLifeTimeBytes")
    def sa_life_time_bytes(self) -> Optional[pulumi.Input[int]]:
        """
        The Security Association lifecycle in bytes as the result of IPSec negotiation. Unit: second. Range: 1200-604800. (Default: `3600`)
        """
        return pulumi.get(self, "sa_life_time_bytes")

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



# 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 warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from .. import _utilities

__all__ = [
    'VPNConnectionIkeConfigArgs',
    'VPNConnectionIpsecConfigArgs',
]

@pulumi.input_type
class VPNConnectionIkeConfigArgs:
    def __init__(__self__, *,
                 pre_shared_key: pulumi.Input[str],
                 authentication_algorithm: Optional[pulumi.Input[str]] = None,
                 dh_group: Optional[pulumi.Input[str]] = None,
                 encryption_algorithm: Optional[pulumi.Input[str]] = None,
                 exchange_mode: Optional[pulumi.Input[str]] = None,
                 ike_version: Optional[pulumi.Input[str]] = None,
                 local_id: Optional[pulumi.Input[str]] = None,
                 remote_id: Optional[pulumi.Input[str]] = None,
                 sa_life_time: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[str] pre_shared_key: The key used for authentication between the VPN gateway and the Customer gateway which contains 1-128 characters and only support English, numbers and special characters: `!@#$%^&*()_+-=[]:,./'~`.
        :param pulumi.Input[str] authentication_algorithm: The authentication algorithm of IPSec negotiation. Possible values: `sha1`, `md5`. (Default: `sha1`)
        :param pulumi.Input[str] dh_group: The Diffie-Hellman group used by IKE negotiation. Possible values: `1`, `2`, `5`, `14`, `15`, `16`. (Default:`15`)
        :param pulumi.Input[str] encryption_algorithm: The encryption algorithm of IPSec negotiation. Possible values: `aes128`, `aes192`, `aes256`, `aes512`, `3des`. (Default: `aes128`).
        :param pulumi.Input[str] exchange_mode: The negotiation exchange mode of IKE V1 of VPN gateway. Possible values: `main` (main mode), `aggressive` (aggressive mode). (Default: `main`)
        :param pulumi.Input[str] ike_version: The version of the IKE protocol which only be supported IKE V1 protocol at present. Possible values: ikev1. (Default: ikev1)
        :param pulumi.Input[str] local_id: The identification of the VPN gateway.
        :param pulumi.Input[str] remote_id: The identification of the Customer gateway.
        :param pulumi.Input[int] sa_life_time: The Security Association lifecycle as the result of IPSec negotiation. Unit: second. Range: 1200-604800. (Default: `3600`)
        """
        pulumi.set(__self__, "pre_shared_key", pre_shared_key)
        if authentication_algorithm is not None:
            pulumi.set(__self__, "authentication_algorithm", authentication_algorithm)
        if dh_group is not None:
            pulumi.set(__self__, "dh_group", dh_group)
        if encryption_algorithm is not None:
            pulumi.set(__self__, "encryption_algorithm", encryption_algorithm)
        if exchange_mode is not None:
            pulumi.set(__self__, "exchange_mode", exchange_mode)
        if ike_version is not None:
            pulumi.set(__self__, "ike_version", ike_version)
        if local_id is not None:
            pulumi.set(__self__, "local_id", local_id)
        if remote_id is not None:
            pulumi.set(__self__, "remote_id", remote_id)
        if sa_life_time is not None:
            pulumi.set(__self__, "sa_life_time", sa_life_time)

    @property
    @pulumi.getter(name="preSharedKey")
    def pre_shared_key(self) -> pulumi.Input[str]:
        """
        The key used for authentication between the VPN gateway and the Customer gateway which contains 1-128 characters and only support English, numbers and special characters: `!@#$%^&*()_+-=[]:,./'~`.
        """
        return pulumi.get(self, "pre_shared_key")

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

    @property
    @pulumi.getter(name="authenticationAlgorithm")
    def authentication_algorithm(self) -> Optional[pulumi.Input[str]]:
        """
        The authentication algorithm of IPSec negotiation. Possible values: `sha1`, `md5`. (Default: `sha1`)
        """
        return pulumi.get(self, "authentication_algorithm")

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

    @property
    @pulumi.getter(name="dhGroup")
    def dh_group(self) -> Optional[pulumi.Input[str]]:
        """
        The Diffie-Hellman group used by IKE negotiation. Possible values: `1`, `2`, `5`, `14`, `15`, `16`. (Default:`15`)
        """
        return pulumi.get(self, "dh_group")

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

    @property
    @pulumi.getter(name="encryptionAlgorithm")
    def encryption_algorithm(self) -> Optional[pulumi.Input[str]]:
        """
        The encryption algorithm of IPSec negotiation. Possible values: `aes128`, `aes192`, `aes256`, `aes512`, `3des`. (Default: `aes128`).
        """
        return pulumi.get(self, "encryption_algorithm")

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

    @property
    @pulumi.getter(name="exchangeMode")
    def exchange_mode(self) -> Optional[pulumi.Input[str]]:
        """
        The negotiation exchange mode of IKE V1 of VPN gateway. Possible values: `main` (main mode), `aggressive` (aggressive mode). (Default: `main`)
        """
        return pulumi.get(self, "exchange_mode")

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

    @property
    @pulumi.getter(name="ikeVersion")
    def ike_version(self) -> Optional[pulumi.Input[str]]:
        """
        The version of the IKE protocol which only be supported IKE V1 protocol at present. Possible values: ikev1. (Default: ikev1)
        """
        return pulumi.get(self, "ike_version")

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

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

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

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

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

    @property
    @pulumi.getter(name="saLifeTime")
    def sa_life_time(self) -> Optional[pulumi.Input[int]]:
        """
        The Security Association lifecycle as the result of IPSec negotiation. Unit: second. Range: 1200-604800. (Default: `3600`)
        """
        return pulumi.get(self, "sa_life_time")

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


@pulumi.input_type
class VPNConnectionIpsecConfigArgs:
    def __init__(__self__, *,
                 local_subnet_ids: pulumi.Input[Sequence[pulumi.Input[str]]],
                 remote_subnets: pulumi.Input[Sequence[pulumi.Input[str]]],
                 authentication_algorithm: Optional[pulumi.Input[str]] = None,
                 encryption_algorithm: Optional[pulumi.Input[str]] = None,
                 pfs_dh_group: Optional[pulumi.Input[str]] = None,
                 protocol: Optional[pulumi.Input[str]] = None,
                 sa_life_time: Optional[pulumi.Input[int]] = None,
                 sa_life_time_bytes: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] local_subnet_ids: The id list of Local subnet.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] remote_subnets: The ip address list of remote subnet.
        :param pulumi.Input[str] authentication_algorithm: The authentication algorithm of IPSec negotiation. Possible values: `sha1`, `md5`. (Default: `sha1`)
        :param pulumi.Input[str] encryption_algorithm: The encryption algorithm of IPSec negotiation. Possible values: `aes128`, `aes192`, `aes256`, `aes512`, `3des`. (Default: `aes128`).
        :param pulumi.Input[str] pfs_dh_group: Whether the PFS of IPSec negotiation is on or off, `disable` as off, The Diffie-Hellman group as open.  Possible values: `disable`, `1`, `2`, `5`, `14`, `15`, `16`. (Default:`disable`)
        :param pulumi.Input[str] protocol: The security protocol of IPSec negotiation. Possible values: `esp`, `ah`. (Default:`esp`)
        :param pulumi.Input[int] sa_life_time: The Security Association lifecycle as the result of IPSec negotiation. Unit: second. Range: 1200-604800. (Default: `3600`)
        :param pulumi.Input[int] sa_life_time_bytes: The Security Association lifecycle in bytes as the result of IPSec negotiation. Unit: second. Range: 1200-604800. (Default: `3600`)
        """
        pulumi.set(__self__, "local_subnet_ids", local_subnet_ids)
        pulumi.set(__self__, "remote_subnets", remote_subnets)
        if authentication_algorithm is not None:
            pulumi.set(__self__, "authentication_algorithm", authentication_algorithm)
        if encryption_algorithm is not None:
            pulumi.set(__self__, "encryption_algorithm", encryption_algorithm)
        if pfs_dh_group is not None:
            pulumi.set(__self__, "pfs_dh_group", pfs_dh_group)
        if protocol is not None:
            pulumi.set(__self__, "protocol", protocol)
        if sa_life_time is not None:
            pulumi.set(__self__, "sa_life_time", sa_life_time)
        if sa_life_time_bytes is not None:
            pulumi.set(__self__, "sa_life_time_bytes", sa_life_time_bytes)

    @property
    @pulumi.getter(name="localSubnetIds")
    def local_subnet_ids(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
        """
        The id list of Local subnet.
        """
        return pulumi.get(self, "local_subnet_ids")

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

    @property
    @pulumi.getter(name="remoteSubnets")
    def remote_subnets(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
        """
        The ip address list of remote subnet.
        """
        return pulumi.get(self, "remote_subnets")

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

    @property
    @pulumi.getter(name="authenticationAlgorithm")
    def authentication_algorithm(self) -> Optional[pulumi.Input[str]]:
        """
        The authentication algorithm of IPSec negotiation. Possible values: `sha1`, `md5`. (Default: `sha1`)
        """
        return pulumi.get(self, "authentication_algorithm")

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

    @property
    @pulumi.getter(name="encryptionAlgorithm")
    def encryption_algorithm(self) -> Optional[pulumi.Input[str]]:
        """
        The encryption algorithm of IPSec negotiation. Possible values: `aes128`, `aes192`, `aes256`, `aes512`, `3des`. (Default: `aes128`).
        """
        return pulumi.get(self, "encryption_algorithm")

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

    @property
    @pulumi.getter(name="pfsDhGroup")
    def pfs_dh_group(self) -> Optional[pulumi.Input[str]]:
        """
        Whether the PFS of IPSec negotiation is on or off, `disable` as off, The Diffie-Hellman group as open.  Possible values: `disable`, `1`, `2`, `5`, `14`, `15`, `16`. (Default:`disable`)
        """
        return pulumi.get(self, "pfs_dh_group")

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

    @property
    @pulumi.getter
    def protocol(self) -> Optional[pulumi.Input[str]]:
        """
        The security protocol of IPSec negotiation. Possible values: `esp`, `ah`. (Default:`esp`)
        """
        return pulumi.get(self, "protocol")

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

    @property
    @pulumi.getter(name="saLifeTime")
    def sa_life_time(self) -> Optional[pulumi.Input[int]]:
        """
        The Security Association lifecycle as the result of IPSec negotiation. Unit: second. Range: 1200-604800. (Default: `3600`)
        """
        return pulumi.get(self, "sa_life_time")

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

    @property
    @pulumi.getter(name="saLifeTimeBytes")
    def sa_life_time_bytes(self) -> Optional[pulumi.Input[int]]:
        """
        The Security Association lifecycle in bytes as the result of IPSec negotiation. Unit: second. Range: 1200-604800. (Default: `3600`)
        """
        return pulumi.get(self, "sa_life_time_bytes")

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



# 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! *** :param pulumi.Input[str] pre_shared_key: The key used for authentication between the VPN gateway and the Customer gateway which contains 1-128 characters and only support English, numbers and special characters: `!@#$%^&*()_+-=[]:,./'~`.         :param pulumi.Input[str] authentication_algorithm: The authentication algorithm of IPSec negotiation. Possible values: `sha1`, `md5`. (Default: `sha1`)         :param pulumi.Input[str] dh_group: The Diffie-Hellman group used by IKE negotiation. Possible values: `1`, `2`, `5`, `14`, `15`, `16`. (Default:`15`)         :param pulumi.Input[str] encryption_algorithm: The encryption algorithm of IPSec negotiation. Possible values: `aes128`, `aes192`, `aes256`, `aes512`, `3des`. (Default: `aes128`).         :param pulumi.Input[str] exchange_mode: The negotiation exchange mode of IKE V1 of VPN gateway. Possible values: `main` (main mode), `aggressive` (aggressive mode). (Default: `main`)         :param pulumi.Input[str] ike_version: The version of the IKE protocol which only be supported IKE V1 protocol at present. Possible values: ikev1. (Default: ikev1)         :param pulumi.Input[str] local_id: The identification of the VPN gateway.         :param pulumi.Input[str] remote_id: The identification of the Customer gateway.         :param pulumi.Input[int] sa_life_time: The Security Association lifecycle as the result of IPSec negotiation. Unit: second. Range: 1200-604800. (Default: `3600`) The key used for authentication between the VPN gateway and the Customer gateway which contains 1-128 characters and only support English, numbers and special characters: `!@#$%^&*()_+-=[]:,./'~`. The authentication algorithm of IPSec negotiation. Possible values: `sha1`, `md5`. (Default: `sha1`) The Diffie-Hellman group used by IKE negotiation. Possible values: `1`, `2`, `5`, `14`, `15`, `16`. (Default:`15`) The encryption algorithm of IPSec negotiation. Possible values: `aes128`, `aes192`, `aes256`, `aes512`, `3des`. (Default: `aes128`). The negotiation exchange mode of IKE V1 of VPN gateway. Possible values: `main` (main mode), `aggressive` (aggressive mode). (Default: `main`) The version of the IKE protocol which only be supported IKE V1 protocol at present. Possible values: ikev1. (Default: ikev1) The identification of the VPN gateway. The identification of the Customer gateway. The Security Association lifecycle as the result of IPSec negotiation. Unit: second. Range: 1200-604800. (Default: `3600`) :param pulumi.Input[Sequence[pulumi.Input[str]]] local_subnet_ids: The id list of Local subnet.         :param pulumi.Input[Sequence[pulumi.Input[str]]] remote_subnets: The ip address list of remote subnet.         :param pulumi.Input[str] authentication_algorithm: The authentication algorithm of IPSec negotiation. Possible values: `sha1`, `md5`. (Default: `sha1`)         :param pulumi.Input[str] encryption_algorithm: The encryption algorithm of IPSec negotiation. Possible values: `aes128`, `aes192`, `aes256`, `aes512`, `3des`. (Default: `aes128`).         :param pulumi.Input[str] pfs_dh_group: Whether the PFS of IPSec negotiation is on or off, `disable` as off, The Diffie-Hellman group as open.  Possible values: `disable`, `1`, `2`, `5`, `14`, `15`, `16`. (Default:`disable`)         :param pulumi.Input[str] protocol: The security protocol of IPSec negotiation. Possible values: `esp`, `ah`. (Default:`esp`)         :param pulumi.Input[int] sa_life_time: The Security Association lifecycle as the result of IPSec negotiation. Unit: second. Range: 1200-604800. (Default: `3600`)         :param pulumi.Input[int] sa_life_time_bytes: The Security Association lifecycle in bytes as the result of IPSec negotiation. Unit: second. Range: 1200-604800. (Default: `3600`) The id list of Local subnet. The ip address list of remote subnet. The authentication algorithm of IPSec negotiation. Possible values: `sha1`, `md5`. (Default: `sha1`) The encryption algorithm of IPSec negotiation. Possible values: `aes128`, `aes192`, `aes256`, `aes512`, `3des`. (Default: `aes128`). Whether the PFS of IPSec negotiation is on or off, `disable` as off, The Diffie-Hellman group as open.  Possible values: `disable`, `1`, `2`, `5`, `14`, `15`, `16`. (Default:`disable`) The security protocol of IPSec negotiation. Possible values: `esp`, `ah`. (Default:`esp`) The Security Association lifecycle as the result of IPSec negotiation. Unit: second. Range: 1200-604800. (Default: `3600`) The Security Association lifecycle in bytes as the result of IPSec negotiation. Unit: second. Range: 1200-604800. (Default: `3600`)