// *** 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! ***

using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;

namespace Pulumi.AliCloud.Vpn.Outputs
{

    [OutputType]
    public sealed class ConnectionIkeConfig
    {
        /// <summary>
        /// The authentication algorithm of phase-one negotiation. Valid value: md5 | sha1 . Default value: md5
        /// </summary>
        public readonly string? IkeAuthAlg;
        /// <summary>
        /// The encryption algorithm of phase-one negotiation. Valid value: aes | aes192 | aes256 | des | 3des. Default Valid value: aes
        /// </summary>
        public readonly string? IkeEncAlg;
        /// <summary>
        /// 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.
        /// </summary>
        public readonly int? IkeLifetime;
        /// <summary>
        /// The identification of the VPN gateway.
        /// </summary>
        public readonly string? IkeLocalId;
        /// <summary>
        /// The negotiation mode of IKE V1. Valid value: main (main mode) | aggressive (aggressive mode). Default value: main
        /// </summary>
        public readonly string? IkeMode;
        /// <summary>
        /// The Diffie-Hellman key exchange algorithm used by phase-one negotiation. Valid value: group1 | group2 | group5 | group14 | group24. Default value: group2
        /// </summary>
        public readonly string? IkePfs;
        /// <summary>
        /// The identification of the customer gateway.
        /// </summary>
        public readonly string? IkeRemoteId;
        /// <summary>
        /// The version of the IKE protocol. Valid value: ikev1 | ikev2. Default value: ikev1
        /// </summary>
        public readonly string? IkeVersion;
        /// <summary>
        /// Used for authentication between the IPsec VPN gateway and the customer gateway.
        /// </summary>
        public readonly string? Psk;

        [OutputConstructor]
        private ConnectionIkeConfig(
            string? ikeAuthAlg,

            string? ikeEncAlg,

            int? ikeLifetime,

            string? ikeLocalId,

            string? ikeMode,

            string? ikePfs,

            string? ikeRemoteId,

            string? ikeVersion,

            string? psk)
        {
            IkeAuthAlg = ikeAuthAlg;
            IkeEncAlg = ikeEncAlg;
            IkeLifetime = ikeLifetime;
            IkeLocalId = ikeLocalId;
            IkeMode = ikeMode;
            IkePfs = ikePfs;
            IkeRemoteId = ikeRemoteId;
            IkeVersion = ikeVersion;
            Psk = psk;
        }
    }
}
