// *** 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;
using Pulumi;

namespace luxifer.Scaleway.Outputs
{

    [OutputType]
    public sealed class GetLbBackendsBackendResult
    {
        /// <summary>
        /// The date at which the backend was created (RFC 3339 format).
        /// </summary>
        public readonly string CreatedAt;
        /// <summary>
        /// Scaleway S3 bucket website to be served in case all backend servers are down.
        /// </summary>
        public readonly string FailoverHost;
        /// <summary>
        /// User sessions will be forwarded to this port of backend servers.
        /// </summary>
        public readonly int ForwardPort;
        /// <summary>
        /// Load balancing algorithm.
        /// </summary>
        public readonly string ForwardPortAlgorithm;
        /// <summary>
        /// Backend protocol.
        /// </summary>
        public readonly string ForwardProtocol;
        /// <summary>
        /// Interval between two HC requests.
        /// </summary>
        public readonly string HealthCheckDelay;
        /// <summary>
        /// This block enable HTTPS health check.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetLbBackendsBackendHealthCheckHttpResult> HealthCheckHttps;
        /// <summary>
        /// Number of allowed failed HC requests before the backend server is marked down.
        /// </summary>
        public readonly int HealthCheckMaxRetries;
        /// <summary>
        /// Port the HC requests will be sent to.
        /// </summary>
        public readonly int HealthCheckPort;
        /// <summary>
        /// This block enable TCP health check.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetLbBackendsBackendHealthCheckTcpResult> HealthCheckTcps;
        /// <summary>
        /// Timeout before we consider a HC request failed.
        /// </summary>
        public readonly string HealthCheckTimeout;
        /// <summary>
        /// The associated backend ID.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Specifies whether the Load Balancer should check the backend server’s certificate before initiating a connection.
        /// </summary>
        public readonly bool IgnoreSslServerVerify;
        /// <summary>
        /// The load-balancer ID this backend is attached to. backends with a LB ID like it are listed.
        /// </summary>
        public readonly string LbId;
        /// <summary>
        /// The backend name used as filter. Backends with a name like it are listed.
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// Modify what occurs when a backend server is marked down.
        /// </summary>
        public readonly string OnMarkedDownAction;
        /// <summary>
        /// The type of PROXY protocol.
        /// </summary>
        public readonly string ProxyProtocol;
        /// <summary>
        /// List of backend server IP addresses.
        /// </summary>
        public readonly ImmutableArray<string> ServerIps;
        /// <summary>
        /// Enables SSL between load balancer and backend servers.
        /// </summary>
        public readonly bool SslBridging;
        /// <summary>
        /// Enables cookie-based session persistence.
        /// </summary>
        public readonly string StickySessions;
        /// <summary>
        /// Cookie name for sticky sessions.
        /// </summary>
        public readonly string StickySessionsCookieName;
        /// <summary>
        /// Maximum initial server connection establishment time.
        /// </summary>
        public readonly string TimeoutConnect;
        /// <summary>
        /// Maximum server connection inactivity time.
        /// </summary>
        public readonly string TimeoutServer;
        /// <summary>
        /// Maximum tunnel inactivity time.
        /// </summary>
        public readonly string TimeoutTunnel;
        /// <summary>
        /// The date at which the backend was last updated (RFC 3339 format).
        /// </summary>
        public readonly string UpdateAt;

        [OutputConstructor]
        private GetLbBackendsBackendResult(
            string createdAt,

            string failoverHost,

            int forwardPort,

            string forwardPortAlgorithm,

            string forwardProtocol,

            string healthCheckDelay,

            ImmutableArray<Outputs.GetLbBackendsBackendHealthCheckHttpResult> healthCheckHttps,

            int healthCheckMaxRetries,

            int healthCheckPort,

            ImmutableArray<Outputs.GetLbBackendsBackendHealthCheckTcpResult> healthCheckTcps,

            string healthCheckTimeout,

            string id,

            bool ignoreSslServerVerify,

            string lbId,

            string name,

            string onMarkedDownAction,

            string proxyProtocol,

            ImmutableArray<string> serverIps,

            bool sslBridging,

            string stickySessions,

            string stickySessionsCookieName,

            string timeoutConnect,

            string timeoutServer,

            string timeoutTunnel,

            string updateAt)
        {
            CreatedAt = createdAt;
            FailoverHost = failoverHost;
            ForwardPort = forwardPort;
            ForwardPortAlgorithm = forwardPortAlgorithm;
            ForwardProtocol = forwardProtocol;
            HealthCheckDelay = healthCheckDelay;
            HealthCheckHttps = healthCheckHttps;
            HealthCheckMaxRetries = healthCheckMaxRetries;
            HealthCheckPort = healthCheckPort;
            HealthCheckTcps = healthCheckTcps;
            HealthCheckTimeout = healthCheckTimeout;
            Id = id;
            IgnoreSslServerVerify = ignoreSslServerVerify;
            LbId = lbId;
            Name = name;
            OnMarkedDownAction = onMarkedDownAction;
            ProxyProtocol = proxyProtocol;
            ServerIps = serverIps;
            SslBridging = sslBridging;
            StickySessions = stickySessions;
            StickySessionsCookieName = stickySessionsCookieName;
            TimeoutConnect = timeoutConnect;
            TimeoutServer = timeoutServer;
            TimeoutTunnel = timeoutTunnel;
            UpdateAt = updateAt;
        }
    }
}
