// *** 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 TencentCloudIAC.PulumiPackage.Tencentcloud.Monitor.Outputs
{

    [OutputType]
    public sealed class GetPolicyGroupsListResult
    {
        /// <summary>
        /// Whether it can be set as the default policy.
        /// </summary>
        public readonly bool CanSetDefault;
        /// <summary>
        /// A list of threshold rules. Each element contains the following attributes:
        /// </summary>
        public readonly ImmutableArray<Outputs.GetPolicyGroupsListConditionResult> Conditions;
        /// <summary>
        /// A list of event rules. Each element contains the following attributes:
        /// </summary>
        public readonly ImmutableArray<Outputs.GetPolicyGroupsListEventConditionResult> EventConditions;
        /// <summary>
        /// The policy group id.
        /// </summary>
        public readonly int GroupId;
        /// <summary>
        /// The policy group name.
        /// </summary>
        public readonly string GroupName;
        /// <summary>
        /// The policy group create timestamp.
        /// </summary>
        public readonly int InsertTime;
        /// <summary>
        /// If is default policy group or not, `0` represents the non-default policy, and `1` represents the default policy.
        /// </summary>
        public readonly int IsDefault;
        /// <summary>
        /// Whether open or not.
        /// </summary>
        public readonly bool IsOpen;
        /// <summary>
        /// Recently edited user uin.
        /// </summary>
        public readonly string LastEditUin;
        /// <summary>
        /// Number of unmasked instances of policy group bindings.
        /// </summary>
        public readonly int NoShieldedSum;
        /// <summary>
        /// Parent policy group ID.
        /// </summary>
        public readonly int ParentGroupId;
        /// <summary>
        /// The policy group view name.
        /// </summary>
        public readonly string PolicyViewName;
        /// <summary>
        /// The project ID to which the policy group belongs.
        /// </summary>
        public readonly int ProjectId;
        /// <summary>
        /// A list of receivers. Each element contains the following attributes:
        /// </summary>
        public readonly ImmutableArray<Outputs.GetPolicyGroupsListReceiverResult> Receivers;
        /// <summary>
        /// Policy group remarks.
        /// </summary>
        public readonly string Remark;
        /// <summary>
        /// The policy group update timestamp.
        /// </summary>
        public readonly int UpdateTime;
        /// <summary>
        /// Number of instances of policy group bindings.
        /// </summary>
        public readonly int UseSum;

        [OutputConstructor]
        private GetPolicyGroupsListResult(
            bool canSetDefault,

            ImmutableArray<Outputs.GetPolicyGroupsListConditionResult> conditions,

            ImmutableArray<Outputs.GetPolicyGroupsListEventConditionResult> eventConditions,

            int groupId,

            string groupName,

            int insertTime,

            int isDefault,

            bool isOpen,

            string lastEditUin,

            int noShieldedSum,

            int parentGroupId,

            string policyViewName,

            int projectId,

            ImmutableArray<Outputs.GetPolicyGroupsListReceiverResult> receivers,

            string remark,

            int updateTime,

            int useSum)
        {
            CanSetDefault = canSetDefault;
            Conditions = conditions;
            EventConditions = eventConditions;
            GroupId = groupId;
            GroupName = groupName;
            InsertTime = insertTime;
            IsDefault = isDefault;
            IsOpen = isOpen;
            LastEditUin = lastEditUin;
            NoShieldedSum = noShieldedSum;
            ParentGroupId = parentGroupId;
            PolicyViewName = policyViewName;
            ProjectId = projectId;
            Receivers = receivers;
            Remark = remark;
            UpdateTime = updateTime;
            UseSum = useSum;
        }
    }
}
