// *** 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.Zpa.LSSConfig.Inputs
{

    public sealed class LSSConfigControllerPolicyRuleResourceArgs : global::Pulumi.ResourceArgs
    {
        /// <summary>
        /// (Optional)
        /// </summary>
        [Input("action")]
        public Input<string>? Action { get; set; }

        [Input("actionId")]
        public Input<string>? ActionId { get; set; }

        [Input("bypassDefaultRule")]
        public Input<bool>? BypassDefaultRule { get; set; }

        [Input("conditions")]
        private InputList<Inputs.LSSConfigControllerPolicyRuleResourceConditionArgs>? _conditions;

        /// <summary>
        /// (Optional)
        /// </summary>
        public InputList<Inputs.LSSConfigControllerPolicyRuleResourceConditionArgs> Conditions
        {
            get => _conditions ?? (_conditions = new InputList<Inputs.LSSConfigControllerPolicyRuleResourceConditionArgs>());
            set => _conditions = value;
        }

        /// <summary>
        /// (Optional)
        /// </summary>
        [Input("customMsg")]
        public Input<string>? CustomMsg { get; set; }

        [Input("defaultRule")]
        public Input<bool>? DefaultRule { get; set; }

        /// <summary>
        /// (Optional)
        /// </summary>
        [Input("description")]
        public Input<string>? Description { get; set; }

        /// <summary>
        /// App Connector Group ID(s) where logs will be forwarded to.
        /// </summary>
        [Input("id")]
        public Input<string>? Id { get; set; }

        [Input("lssDefaultRule")]
        public Input<bool>? LssDefaultRule { get; set; }

        /// <summary>
        /// (Optional)
        /// </summary>
        [Input("name", required: true)]
        public Input<string> Name { get; set; } = null!;

        /// <summary>
        /// (Optional) - Supported values are: `AND` or `OR`
        /// </summary>
        [Input("operator")]
        public Input<string>? Operator { get; set; }

        [Input("policySetId")]
        public Input<string>? PolicySetId { get; set; }

        [Input("policyType")]
        public Input<string>? PolicyType { get; set; }

        [Input("priority")]
        public Input<string>? Priority { get; set; }

        [Input("reauthDefaultRule")]
        public Input<bool>? ReauthDefaultRule { get; set; }

        [Input("reauthIdleTimeout")]
        public Input<string>? ReauthIdleTimeout { get; set; }

        [Input("reauthTimeout")]
        public Input<string>? ReauthTimeout { get; set; }

        [Input("ruleOrder")]
        public Input<string>? RuleOrder { get; set; }

        [Input("zpnInspectionProfileId")]
        public Input<string>? ZpnInspectionProfileId { get; set; }

        public LSSConfigControllerPolicyRuleResourceArgs()
        {
        }
        public static new LSSConfigControllerPolicyRuleResourceArgs Empty => new LSSConfigControllerPolicyRuleResourceArgs();
    }
}
