<reponame>rhysmdnz/pulumi-alicloud-rhys-hacks// *** 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.Alb.Outputs
{

    [OutputType]
    public sealed class GetListenersListenerResult
    {
        /// <summary>
        /// Indicates whether the access log has a custom header field. Valid values: true and false. Default value: false.
        /// </summary>
        public readonly bool AccessLogRecordCustomizedHeadersEnabled;
        /// <summary>
        /// Xtrace Configuration Information.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetListenersListenerAccessLogTracingConfigResult> AccessLogTracingConfigs;
        /// <summary>
        /// The configurations of the access control lists (ACLs).
        /// </summary>
        public readonly ImmutableArray<Outputs.GetListenersListenerAclConfigResult> AclConfigs;
        /// <summary>
        /// The Certificate List.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetListenersListenerCertificateResult> Certificates;
        /// <summary>
        /// The Default Rule Action List.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetListenersListenerDefaultActionResult> DefaultActions;
        /// <summary>
        /// Whether to Enable Gzip Compression, as a Specific File Type on a Compression. Valid Values: `True` Or `False`. Default Value: `True`.
        /// </summary>
        public readonly bool GzipEnabled;
        /// <summary>
        /// Whether to Enable HTTP/2 Features. Valid Values: `True` Or `False`. Default Value: `True`.
        /// </summary>
        public readonly bool Http2Enabled;
        /// <summary>
        /// The ID of the Listener.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Specify the Connection Idle Timeout Value: `1` to `60`. Unit: Seconds.
        /// </summary>
        public readonly int IdleTimeout;
        /// <summary>
        /// Set the IP Address of the Listened Description. Length Is from 2 to 256 Characters.
        /// </summary>
        public readonly string ListenerDescription;
        /// <summary>
        /// on Behalf of the Resource Level Id of the Resources Property Fields.
        /// </summary>
        public readonly string ListenerId;
        /// <summary>
        /// The ALB Instance Front-End, and Those of the Ports Used. Value: `1~65535`.
        /// </summary>
        public readonly int ListenerPort;
        /// <summary>
        /// Snooping Protocols. Valid Values: `HTTP`, `HTTPS` Or `QUIC`.
        /// </summary>
        public readonly string ListenerProtocol;
        /// <summary>
        /// The ALB Instance Id.
        /// </summary>
        public readonly string LoadBalancerId;
        /// <summary>
        /// This Request Returned by the Maximum Number of Records.
        /// </summary>
        public readonly string MaxResults;
        /// <summary>
        /// The Current Call Returns to the Position of the Set to Null Represents the Data Has Been Read to the End of.
        /// </summary>
        public readonly string NextToken;
        /// <summary>
        /// Configuration Associated with the QuIC Listening.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetListenersListenerQuicConfigResult> QuicConfigs;
        /// <summary>
        /// The Specified Request Timeout Time. Value: `1` to `180`. Unit: Seconds. Default Value: 60. If the Timeout Time Within the Back-End Server Has Not Answered the ALB Will Give up Waiting, the Client Returns the HTTP 504 Error Code.
        /// </summary>
        public readonly int RequestTimeout;
        /// <summary>
        /// Security Policy.
        /// </summary>
        public readonly string SecurityPolicyId;
        /// <summary>
        /// The association status between the ACL and the listener.  Valid values: `Associating`, `Associated` Or `Dissociating`. `Associating`: The ACL is being associated with the listener. `Associated`: The ACL is associated with the listener. `Dissociating`: The ACL is being disassociated from the listener.
        /// </summary>
        public readonly string Status;
        /// <summary>
        /// xforwardfor Related Attribute Configuration.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetListenersListenerXforwardedForConfigResult> XforwardedForConfigs;

        [OutputConstructor]
        private GetListenersListenerResult(
            bool accessLogRecordCustomizedHeadersEnabled,

            ImmutableArray<Outputs.GetListenersListenerAccessLogTracingConfigResult> accessLogTracingConfigs,

            ImmutableArray<Outputs.GetListenersListenerAclConfigResult> aclConfigs,

            ImmutableArray<Outputs.GetListenersListenerCertificateResult> certificates,

            ImmutableArray<Outputs.GetListenersListenerDefaultActionResult> defaultActions,

            bool gzipEnabled,

            bool http2Enabled,

            string id,

            int idleTimeout,

            string listenerDescription,

            string listenerId,

            int listenerPort,

            string listenerProtocol,

            string loadBalancerId,

            string maxResults,

            string nextToken,

            ImmutableArray<Outputs.GetListenersListenerQuicConfigResult> quicConfigs,

            int requestTimeout,

            string securityPolicyId,

            string status,

            ImmutableArray<Outputs.GetListenersListenerXforwardedForConfigResult> xforwardedForConfigs)
        {
            AccessLogRecordCustomizedHeadersEnabled = accessLogRecordCustomizedHeadersEnabled;
            AccessLogTracingConfigs = accessLogTracingConfigs;
            AclConfigs = aclConfigs;
            Certificates = certificates;
            DefaultActions = defaultActions;
            GzipEnabled = gzipEnabled;
            Http2Enabled = http2Enabled;
            Id = id;
            IdleTimeout = idleTimeout;
            ListenerDescription = listenerDescription;
            ListenerId = listenerId;
            ListenerPort = listenerPort;
            ListenerProtocol = listenerProtocol;
            LoadBalancerId = loadBalancerId;
            MaxResults = maxResults;
            NextToken = nextToken;
            QuicConfigs = quicConfigs;
            RequestTimeout = requestTimeout;
            SecurityPolicyId = securityPolicyId;
            Status = status;
            XforwardedForConfigs = xforwardedForConfigs;
        }
    }
}
