// *** 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 zscaler.PulumiPackage.Zia.LocationGroups.Outputs
{

    [OutputType]
    public sealed class GetLocationGroupsDynamicLocationGroupCriteriaResult
    {
        /// <summary>
        /// (Block List)
        /// </summary>
        public readonly ImmutableArray<Outputs.GetLocationGroupsDynamicLocationGroupCriteriaCityResult> Cities;
        /// <summary>
        /// (List of String) One or more countries from a predefined set
        /// </summary>
        public readonly ImmutableArray<string> Countries;
        /// <summary>
        /// (Boolean) Enable Bandwidth Control. When set to true, Bandwidth Control is enabled for the location.
        /// </summary>
        public readonly bool EnableBandwidthControl;
        /// <summary>
        /// (Boolean) Enable Caution. When set to true, a caution notifcation is enabled for the location.
        /// </summary>
        public readonly bool EnableCaution;
        /// <summary>
        /// (Boolean) Enable `XFF` Forwarding. When set to true, traffic is passed to Zscaler Cloud via the X-Forwarded-For (XFF) header.
        /// </summary>
        public readonly bool EnableXffForwarding;
        /// <summary>
        /// (Boolean) Enable AUP. When set to true, AUP is enabled for the location.
        /// </summary>
        public readonly bool EnforceAup;
        /// <summary>
        /// (Boolean) Enforce Authentication. Required when ports are enabled, IP Surrogate is enabled, or Kerberos Authentication is enabled.
        /// </summary>
        public readonly bool EnforceAuthentication;
        /// <summary>
        /// (Boolean) Enable Firewall. When set to true, Firewall is enabled for the location.
        /// </summary>
        public readonly bool EnforceFirewallControl;
        /// <summary>
        /// (Block List)
        /// </summary>
        public readonly ImmutableArray<Outputs.GetLocationGroupsDynamicLocationGroupCriteriaManagedByResult> ManagedBies;
        /// <summary>
        /// Location group name
        /// </summary>
        public readonly ImmutableArray<Outputs.GetLocationGroupsDynamicLocationGroupCriteriaNameResult> Names;
        /// <summary>
        /// (List of String) One or more location profiles from a predefined set
        /// </summary>
        public readonly ImmutableArray<string> Profiles;

        [OutputConstructor]
        private GetLocationGroupsDynamicLocationGroupCriteriaResult(
            ImmutableArray<Outputs.GetLocationGroupsDynamicLocationGroupCriteriaCityResult> cities,

            ImmutableArray<string> countries,

            bool enableBandwidthControl,

            bool enableCaution,

            bool enableXffForwarding,

            bool enforceAup,

            bool enforceAuthentication,

            bool enforceFirewallControl,

            ImmutableArray<Outputs.GetLocationGroupsDynamicLocationGroupCriteriaManagedByResult> managedBies,

            ImmutableArray<Outputs.GetLocationGroupsDynamicLocationGroupCriteriaNameResult> names,

            ImmutableArray<string> profiles)
        {
            Cities = cities;
            Countries = countries;
            EnableBandwidthControl = enableBandwidthControl;
            EnableCaution = enableCaution;
            EnableXffForwarding = enableXffForwarding;
            EnforceAup = enforceAup;
            EnforceAuthentication = enforceAuthentication;
            EnforceFirewallControl = enforceFirewallControl;
            ManagedBies = managedBies;
            Names = names;
            Profiles = profiles;
        }
    }
}
