// *** 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.Vpc.Outputs
{

    [OutputType]
    public sealed class GetIpsecServersServerResult
    {
        /// <summary>
        /// The CIDR block of the client, which is assigned an access address to the virtual NIC of the client.
        /// </summary>
        public readonly string ClientIpPool;
        /// <summary>
        /// The creation time of the IPsec server. T represents the delimiter, and Z represents UTC, which is World Standard Time.
        /// </summary>
        public readonly string CreateTime;
        /// <summary>
        /// Indicates whether the current IPsec tunnel is deleted and negotiations are reinitiated.
        /// </summary>
        public readonly bool EffectImmediately;
        /// <summary>
        /// The ID of the Ipsec Server.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// The ID of the Identity as a Service (IDaaS) instance.
        /// </summary>
        public readonly string IdaasInstanceId;
        /// <summary>
        /// The configurations of Phase 1 negotiations.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetIpsecServersServerIkeConfigResult> IkeConfigs;
        /// <summary>
        /// The public IP address of the VPN gateway.
        /// </summary>
        public readonly string InternetIp;
        /// <summary>
        /// The configuration of Phase 2 negotiations.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetIpsecServersServerIpsecConfigResult> IpsecConfigs;
        /// <summary>
        /// The ID of the IPsec server.
        /// </summary>
        public readonly string IpsecServerId;
        /// <summary>
        /// The name of the IPsec server.
        /// </summary>
        public readonly string IpsecServerName;
        /// <summary>
        /// Local network segment: the network segment on The VPC side that needs to be interconnected with the client network segment.
        /// </summary>
        public readonly string LocalSubnet;
        /// <summary>
        /// The number of SSL connections of the VPN gateway. SSL-VPN the number of SSL connections shared with the IPsec server. For example, if the number of SSL connections is 5 and you have three SSL clients connected to the SSL-VPN, you can also use two clients to connect to the IPsec server.
        /// </summary>
        public readonly int MaxConnections;
        /// <summary>
        /// Whether the two-factor authentication function has been turned on.
        /// </summary>
        public readonly bool MultiFactorAuthEnabled;
        /// <summary>
        /// The number of clients that have connected to the IPsec server.
        /// </summary>
        public readonly int OnlineClientCount;
        /// <summary>
        /// The pre-shared key.
        /// </summary>
        public readonly string Psk;
        /// <summary>
        /// Whether to enable the pre-shared key authentication method. The value is only `true`, which indicates that the pre-shared key authentication method is enabled.
        /// </summary>
        public readonly bool PskEnabled;
        /// <summary>
        /// The ID of the VPN gateway.
        /// </summary>
        public readonly string VpnGatewayId;

        [OutputConstructor]
        private GetIpsecServersServerResult(
            string clientIpPool,

            string createTime,

            bool effectImmediately,

            string id,

            string idaasInstanceId,

            ImmutableArray<Outputs.GetIpsecServersServerIkeConfigResult> ikeConfigs,

            string internetIp,

            ImmutableArray<Outputs.GetIpsecServersServerIpsecConfigResult> ipsecConfigs,

            string ipsecServerId,

            string ipsecServerName,

            string localSubnet,

            int maxConnections,

            bool multiFactorAuthEnabled,

            int onlineClientCount,

            string psk,

            bool pskEnabled,

            string vpnGatewayId)
        {
            ClientIpPool = clientIpPool;
            CreateTime = createTime;
            EffectImmediately = effectImmediately;
            Id = id;
            IdaasInstanceId = idaasInstanceId;
            IkeConfigs = ikeConfigs;
            InternetIp = internetIp;
            IpsecConfigs = ipsecConfigs;
            IpsecServerId = ipsecServerId;
            IpsecServerName = ipsecServerName;
            LocalSubnet = localSubnet;
            MaxConnections = maxConnections;
            MultiFactorAuthEnabled = multiFactorAuthEnabled;
            OnlineClientCount = onlineClientCount;
            Psk = psk;
            PskEnabled = pskEnabled;
            VpnGatewayId = vpnGatewayId;
        }
    }
}
