<filename>sdk/dotnet/Vpn/Outputs/IpsecServerIkeConfig.cs// *** 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 IpsecServerIkeConfig
    {
        /// <summary>
        /// The authentication algorithm that is used in Phase 1 negotiations. Default value: `sha1`.
        /// </summary>
        public readonly string? IkeAuthAlg;
        /// <summary>
        /// The encryption algorithm that is used in Phase 1 negotiations. Default value: `aes`.
        /// </summary>
        public readonly string? IkeEncAlg;
        /// <summary>
        /// IkeLifetime: the SA lifetime determined by Phase 1 negotiations. Valid values: `0` to `86400`. Default value: `86400`. Unit: `seconds`.
        /// </summary>
        public readonly int? IkeLifetime;
        /// <summary>
        /// The IKE negotiation mode. Default value: `main`.
        /// </summary>
        public readonly string? IkeMode;
        /// <summary>
        /// The Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiations. Default value: `group2`.
        /// </summary>
        public readonly string? IkePfs;
        /// <summary>
        /// The IKE version. Valid values: `ikev1` and `ikev2`. Default value: `ikev2`.
        /// </summary>
        public readonly string? IkeVersion;
        /// <summary>
        /// The identifier of the IPsec server. The value can be a fully qualified domain name (FQDN) or an IP address. The default value is the public IP address of the VPN gateway.
        /// </summary>
        public readonly string? LocalId;
        /// <summary>
        /// The identifier of the customer gateway. The value can be an FQDN or an IP address. By default, this parameter is not specified.
        /// </summary>
        public readonly string? RemoteId;

        [OutputConstructor]
        private IpsecServerIkeConfig(
            string? ikeAuthAlg,

            string? ikeEncAlg,

            int? ikeLifetime,

            string? ikeMode,

            string? ikePfs,

            string? ikeVersion,

            string? localId,

            string? remoteId)
        {
            IkeAuthAlg = ikeAuthAlg;
            IkeEncAlg = ikeEncAlg;
            IkeLifetime = ikeLifetime;
            IkeMode = ikeMode;
            IkePfs = ikePfs;
            IkeVersion = ikeVersion;
            LocalId = localId;
            RemoteId = remoteId;
        }
    }
}
