# 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__ = [
    'ConnectionIkeConfigArgs',
    'ConnectionIpsecConfigArgs',
]

@pulumi.input_type
class ConnectionIkeConfigArgs:
    def __init__(__self__, *,
                 ike_auth_alg: Optional[pulumi.Input[str]] = None,
                 ike_enc_alg: Optional[pulumi.Input[str]] = None,
                 ike_lifetime: Optional[pulumi.Input[int]] = None,
                 ike_local_id: Optional[pulumi.Input[str]] = None,
                 ike_mode: Optional[pulumi.Input[str]] = None,
                 ike_pfs: Optional[pulumi.Input[str]] = None,
                 ike_remote_id: Optional[pulumi.Input[str]] = None,
                 ike_version: Optional[pulumi.Input[str]] = None,
                 psk: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] ike_auth_alg: The authentication algorithm of phase-one negotiation. Valid value: md5 | sha1 . Default value: md5
        :param pulumi.Input[str] ike_enc_alg: The encryption algorithm of phase-one negotiation. Valid value: aes | aes192 | aes256 | des | 3des. Default Valid value: aes
        :param pulumi.Input[int] ike_lifetime: The SA lifecycle as the result of phase-one negotiation. The valid value of n is [0, 86400], the unit is second and the default value is 86400.
        :param pulumi.Input[str] ike_local_id: The identification of the VPN gateway.
        :param pulumi.Input[str] ike_mode: The negotiation mode of IKE V1. Valid value: main (main mode) | aggressive (aggressive mode). Default value: main
        :param pulumi.Input[str] ike_pfs: The Diffie-Hellman key exchange algorithm used by phase-one negotiation. Valid value: group1 | group2 | group5 | group14 | group24. Default value: group2
        :param pulumi.Input[str] ike_remote_id: The identification of the customer gateway.
        :param pulumi.Input[str] ike_version: The version of the IKE protocol. Valid value: ikev1 | ikev2. Default value: ikev1
        :param pulumi.Input[str] psk: Used for authentication between the IPsec VPN gateway and the customer gateway.
        """
        if ike_auth_alg is not None:
            pulumi.set(__self__, "ike_auth_alg", ike_auth_alg)
        if ike_enc_alg is not None:
            pulumi.set(__self__, "ike_enc_alg", ike_enc_alg)
        if ike_lifetime is not None:
            pulumi.set(__self__, "ike_lifetime", ike_lifetime)
        if ike_local_id is not None:
            pulumi.set(__self__, "ike_local_id", ike_local_id)
        if ike_mode is not None:
            pulumi.set(__self__, "ike_mode", ike_mode)
        if ike_pfs is not None:
            pulumi.set(__self__, "ike_pfs", ike_pfs)
        if ike_remote_id is not None:
            pulumi.set(__self__, "ike_remote_id", ike_remote_id)
        if ike_version is not None:
            pulumi.set(__self__, "ike_version", ike_version)
        if psk is not None:
            pulumi.set(__self__, "psk", psk)

    @property
    @pulumi.getter(name="ikeAuthAlg")
    def ike_auth_alg(self) -> Optional[pulumi.Input[str]]:
        """
        The authentication algorithm of phase-one negotiation. Valid value: md5 | sha1 . Default value: md5
        """
        return pulumi.get(self, "ike_auth_alg")

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

    @property
    @pulumi.getter(name="ikeEncAlg")
    def ike_enc_alg(self) -> Optional[pulumi.Input[str]]:
        """
        The encryption algorithm of phase-one negotiation. Valid value: aes | aes192 | aes256 | des | 3des. Default Valid value: aes
        """
        return pulumi.get(self, "ike_enc_alg")

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

    @property
    @pulumi.getter(name="ikeLifetime")
    def ike_lifetime(self) -> Optional[pulumi.Input[int]]:
        """
        The SA lifecycle as the result of phase-one negotiation. The valid value of n is [0, 86400], the unit is second and the default value is 86400.
        """
        return pulumi.get(self, "ike_lifetime")

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

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

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

    @property
    @pulumi.getter(name="ikeMode")
    def ike_mode(self) -> Optional[pulumi.Input[str]]:
        """
        The negotiation mode of IKE V1. Valid value: main (main mode) | aggressive (aggressive mode). Default value: main
        """
        return pulumi.get(self, "ike_mode")

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

    @property
    @pulumi.getter(name="ikePfs")
    def ike_pfs(self) -> Optional[pulumi.Input[str]]:
        """
        The Diffie-Hellman key exchange algorithm used by phase-one negotiation. Valid value: group1 | group2 | group5 | group14 | group24. Default value: group2
        """
        return pulumi.get(self, "ike_pfs")

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

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

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

    @property
    @pulumi.getter(name="ikeVersion")
    def ike_version(self) -> Optional[pulumi.Input[str]]:
        """
        The version of the IKE protocol. Valid value: ikev1 | ikev2. Default value: 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
    def psk(self) -> Optional[pulumi.Input[str]]:
        """
        Used for authentication between the IPsec VPN gateway and the customer gateway.
        """
        return pulumi.get(self, "psk")

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


@pulumi.input_type
class ConnectionIpsecConfigArgs:
    def __init__(__self__, *,
                 ipsec_auth_alg: Optional[pulumi.Input[str]] = None,
                 ipsec_enc_alg: Optional[pulumi.Input[str]] = None,
                 ipsec_lifetime: Optional[pulumi.Input[int]] = None,
                 ipsec_pfs: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] ipsec_auth_alg: The authentication algorithm of phase-two negotiation. Valid value: md5 | sha1 | sha256 | sha384 | sha512 |. Default value: sha1
        :param pulumi.Input[str] ipsec_enc_alg: The encryption algorithm of phase-two negotiation. Valid value: aes | aes192 | aes256 | des | 3des. Default value: aes
        :param pulumi.Input[int] ipsec_lifetime: The SA lifecycle as the result of phase-two negotiation. The valid value is [0, 86400], the unit is second and the default value is 86400.
        :param pulumi.Input[str] ipsec_pfs: The Diffie-Hellman key exchange algorithm used by phase-two negotiation. Valid value: group1 | group2 | group5 | group14 | group24| disabled. Default value: group2
        """
        if ipsec_auth_alg is not None:
            pulumi.set(__self__, "ipsec_auth_alg", ipsec_auth_alg)
        if ipsec_enc_alg is not None:
            pulumi.set(__self__, "ipsec_enc_alg", ipsec_enc_alg)
        if ipsec_lifetime is not None:
            pulumi.set(__self__, "ipsec_lifetime", ipsec_lifetime)
        if ipsec_pfs is not None:
            pulumi.set(__self__, "ipsec_pfs", ipsec_pfs)

    @property
    @pulumi.getter(name="ipsecAuthAlg")
    def ipsec_auth_alg(self) -> Optional[pulumi.Input[str]]:
        """
        The authentication algorithm of phase-two negotiation. Valid value: md5 | sha1 | sha256 | sha384 | sha512 |. Default value: sha1
        """
        return pulumi.get(self, "ipsec_auth_alg")

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

    @property
    @pulumi.getter(name="ipsecEncAlg")
    def ipsec_enc_alg(self) -> Optional[pulumi.Input[str]]:
        """
        The encryption algorithm of phase-two negotiation. Valid value: aes | aes192 | aes256 | des | 3des. Default value: aes
        """
        return pulumi.get(self, "ipsec_enc_alg")

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

    @property
    @pulumi.getter(name="ipsecLifetime")
    def ipsec_lifetime(self) -> Optional[pulumi.Input[int]]:
        """
        The SA lifecycle as the result of phase-two negotiation. The valid value is [0, 86400], the unit is second and the default value is 86400.
        """
        return pulumi.get(self, "ipsec_lifetime")

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

    @property
    @pulumi.getter(name="ipsecPfs")
    def ipsec_pfs(self) -> Optional[pulumi.Input[str]]:
        """
        The Diffie-Hellman key exchange algorithm used by phase-two negotiation. Valid value: group1 | group2 | group5 | group14 | group24| disabled. Default value: group2
        """
        return pulumi.get(self, "ipsec_pfs")

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


