// *** 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 AlarmNoticeUserNotice
    {
        /// <summary>
        /// The number of seconds since the notification end time 00:00:00 (value range 0-86399).
        /// </summary>
        public readonly int EndTime;
        /// <summary>
        /// User group ID list.
        /// </summary>
        public readonly ImmutableArray<int> GroupIds;
        /// <summary>
        /// Contact notification required 0= No 1= Yes.
        /// </summary>
        public readonly int? NeedPhoneArriveNotice;
        /// <summary>
        /// Notification Channel List EMAIL=Mail SMS=SMS CALL=Telephone WECHAT=WeChat RTX=Enterprise WeChat.
        /// </summary>
        public readonly ImmutableArray<string> NoticeWays;
        /// <summary>
        /// Call type SYNC= Simultaneous call CIRCLE= Round call If this parameter is not specified, the default value is round call.
        /// </summary>
        public readonly string? PhoneCallType;
        /// <summary>
        /// Number of seconds between polls (value range: 60-900).
        /// </summary>
        public readonly int? PhoneCircleInterval;
        /// <summary>
        /// Number of telephone polls (value range: 1-5).
        /// </summary>
        public readonly int? PhoneCircleTimes;
        /// <summary>
        /// Number of seconds between calls in a polling session (value range: 60-900).
        /// </summary>
        public readonly int? PhoneInnerInterval;
        /// <summary>
        /// Telephone polling list.
        /// </summary>
        public readonly ImmutableArray<int> PhoneOrders;
        /// <summary>
        /// Recipient Type USER=User GROUP=User Group.
        /// </summary>
        public readonly string ReceiverType;
        /// <summary>
        /// The number of seconds since the notification start time 00:00:00 (value range 0-86399).
        /// </summary>
        public readonly int StartTime;
        /// <summary>
        /// User UID List.
        /// </summary>
        public readonly ImmutableArray<int> UserIds;
        /// <summary>
        /// Notification period 1-7 indicates Monday to Sunday.
        /// </summary>
        public readonly ImmutableArray<int> Weekdays;

        [OutputConstructor]
        private AlarmNoticeUserNotice(
            int endTime,

            ImmutableArray<int> groupIds,

            int? needPhoneArriveNotice,

            ImmutableArray<string> noticeWays,

            string? phoneCallType,

            int? phoneCircleInterval,

            int? phoneCircleTimes,

            int? phoneInnerInterval,

            ImmutableArray<int> phoneOrders,

            string receiverType,

            int startTime,

            ImmutableArray<int> userIds,

            ImmutableArray<int> weekdays)
        {
            EndTime = endTime;
            GroupIds = groupIds;
            NeedPhoneArriveNotice = needPhoneArriveNotice;
            NoticeWays = noticeWays;
            PhoneCallType = phoneCallType;
            PhoneCircleInterval = phoneCircleInterval;
            PhoneCircleTimes = phoneCircleTimes;
            PhoneInnerInterval = phoneInnerInterval;
            PhoneOrders = phoneOrders;
            ReceiverType = receiverType;
            StartTime = startTime;
            UserIds = userIds;
            Weekdays = weekdays;
        }
    }
}
