<gh_stars>0// *** 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.Waf.Outputs
{

    [OutputType]
    public sealed class GetDomainsDomainResult
    {
        /// <summary>
        /// The type of the WAF cluster.
        /// </summary>
        public readonly string ClusterType;
        /// <summary>
        /// The CNAME record assigned by the WAF instance to the specified domain.
        /// </summary>
        public readonly string Cname;
        /// <summary>
        /// The connection timeout for WAF exclusive clusters. Valid values: `PhysicalCluster` and `VirtualCluster`. Default to `PhysicalCluster`.
        /// </summary>
        public readonly int ConnectionTime;
        /// <summary>
        /// Field `domain` has been deprecated from version 1.94.0. Use `domain_name` instead.
        /// </summary>
        public readonly string Domain;
        /// <summary>
        /// Name of the domain.
        /// </summary>
        public readonly string DomainName;
        /// <summary>
        /// List of the HTTP 2.0 ports.
        /// </summary>
        public readonly ImmutableArray<string> Http2Ports;
        /// <summary>
        /// List of the HTTP ports.
        /// </summary>
        public readonly ImmutableArray<string> HttpPorts;
        /// <summary>
        /// Specifies whether to enable the HTTP back-to-origin feature. After this feature is enabled, the WAF instance can use HTTP to forward HTTPS requests to the origin server.
        /// </summary>
        public readonly string HttpToUserIp;
        /// <summary>
        /// List of the HTTPS ports.
        /// </summary>
        public readonly ImmutableArray<string> HttpsPorts;
        /// <summary>
        /// Specifies whether to redirect HTTP requests as HTTPS requests. Valid values: `On` and `Off`. Default to `Off`.
        /// </summary>
        public readonly string HttpsRedirect;
        /// <summary>
        /// The ID of domain self ID, value as `domain_name`.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Specifies whether to configure a Layer-7 proxy, such as Anti-DDoS Pro or CDN, to filter the inbound traffic before it is forwarded to WAF. Valid values: `On` and "Off". Default to `Off`.
        /// </summary>
        public readonly string IsAccessProduct;
        /// <summary>
        /// The load balancing algorithm that is used to forward requests to the origin. Valid values: `IpHash` and `RoundRobin`. Default to `IpHash`.
        /// </summary>
        public readonly string LoadBalancing;
        /// <summary>
        /// The key-value pair that is used to mark the traffic that flows through WAF to the domain. Each item contains two field:
        /// * `key`: The key of label.
        /// * `value`: The value of label.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetDomainsDomainLogHeaderResult> LogHeaders;
        /// <summary>
        /// The read timeout of a WAF exclusive cluster. Unit: seconds.
        /// </summary>
        public readonly int ReadTime;
        /// <summary>
        /// The ID of the resource group to which the queried domain belongs in Resource Management.
        /// </summary>
        public readonly string ResourceGroupId;
        /// <summary>
        /// List of the IP address or domain of the origin server to which the specified domain points.
        /// </summary>
        public readonly ImmutableArray<string> SourceIps;
        /// <summary>
        /// The system data identifier that is used to control optimistic locking.
        /// </summary>
        public readonly int Version;
        /// <summary>
        /// The timeout period for a WAF exclusive cluster write connection. Unit: seconds.
        /// </summary>
        public readonly int WriteTime;

        [OutputConstructor]
        private GetDomainsDomainResult(
            string clusterType,

            string cname,

            int connectionTime,

            string domain,

            string domainName,

            ImmutableArray<string> http2Ports,

            ImmutableArray<string> httpPorts,

            string httpToUserIp,

            ImmutableArray<string> httpsPorts,

            string httpsRedirect,

            string id,

            string isAccessProduct,

            string loadBalancing,

            ImmutableArray<Outputs.GetDomainsDomainLogHeaderResult> logHeaders,

            int readTime,

            string resourceGroupId,

            ImmutableArray<string> sourceIps,

            int version,

            int writeTime)
        {
            ClusterType = clusterType;
            Cname = cname;
            ConnectionTime = connectionTime;
            Domain = domain;
            DomainName = domainName;
            Http2Ports = http2Ports;
            HttpPorts = httpPorts;
            HttpToUserIp = httpToUserIp;
            HttpsPorts = httpsPorts;
            HttpsRedirect = httpsRedirect;
            Id = id;
            IsAccessProduct = isAccessProduct;
            LoadBalancing = loadBalancing;
            LogHeaders = logHeaders;
            ReadTime = readTime;
            ResourceGroupId = resourceGroupId;
            SourceIps = sourceIps;
            Version = version;
            WriteTime = writeTime;
        }
    }
}
