// *** 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 GetRulesRuleRuleConditionResult
    {
        /// <summary>
        /// The configuration of the cookie.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetRulesRuleRuleConditionCookieConfigResult> CookieConfigs;
        /// <summary>
        /// The configuration of the header field.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetRulesRuleRuleConditionHeaderConfigResult> HeaderConfigs;
        /// <summary>
        /// The configuration of the host.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetRulesRuleRuleConditionHostConfigResult> HostConfigs;
        /// <summary>
        /// The configuration of the request method.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetRulesRuleRuleConditionMethodConfigResult> MethodConfigs;
        /// <summary>
        /// The configuration of the path for the request to be forwarded.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetRulesRuleRuleConditionPathConfigResult> PathConfigs;
        /// <summary>
        /// The configuration of the query string.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetRulesRuleRuleConditionQueryStringConfigResult> QueryStringConfigs;
        /// <summary>
        /// The Based on source IP traffic matching.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetRulesRuleRuleConditionSourceIpConfigResult> SourceIpConfigs;
        /// <summary>
        /// The type of the forwarding rule.
        /// </summary>
        public readonly string Type;

        [OutputConstructor]
        private GetRulesRuleRuleConditionResult(
            ImmutableArray<Outputs.GetRulesRuleRuleConditionCookieConfigResult> cookieConfigs,

            ImmutableArray<Outputs.GetRulesRuleRuleConditionHeaderConfigResult> headerConfigs,

            ImmutableArray<Outputs.GetRulesRuleRuleConditionHostConfigResult> hostConfigs,

            ImmutableArray<Outputs.GetRulesRuleRuleConditionMethodConfigResult> methodConfigs,

            ImmutableArray<Outputs.GetRulesRuleRuleConditionPathConfigResult> pathConfigs,

            ImmutableArray<Outputs.GetRulesRuleRuleConditionQueryStringConfigResult> queryStringConfigs,

            ImmutableArray<Outputs.GetRulesRuleRuleConditionSourceIpConfigResult> sourceIpConfigs,

            string type)
        {
            CookieConfigs = cookieConfigs;
            HeaderConfigs = headerConfigs;
            HostConfigs = hostConfigs;
            MethodConfigs = methodConfigs;
            PathConfigs = pathConfigs;
            QueryStringConfigs = queryStringConfigs;
            SourceIpConfigs = sourceIpConfigs;
            Type = type;
        }
    }
}
