// *** 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 TmpTkeGlobalNotificationNotification
    {
        /// <summary>
        /// Alert manager, if Type is `alertmanager`, this field is required.
        /// </summary>
        public readonly ImmutableArray<Outputs.TmpTkeGlobalNotificationNotificationAlertManager> AlertManagers;
        /// <summary>
        /// Alarm notification switch.
        /// </summary>
        public readonly bool Enabled;
        /// <summary>
        /// Alarm notification method, Valid values: `SMS`, `EMAIL`, `CALL`, `WECHAT`.
        /// </summary>
        public readonly ImmutableArray<string> NotifyWays;
        /// <summary>
        /// Phone Alarm Reach Notification, NotifyWay is `CALL`, and this parameter is used.
        /// </summary>
        public readonly bool? PhoneArriveNotice;
        /// <summary>
        /// Telephone alarm off-wheel interval, NotifyWay is `CALL`, and this parameter is used.
        /// </summary>
        public readonly int? PhoneCircleInterval;
        /// <summary>
        /// Number of phone alerts (user group), NotifyWay is `CALL`, and this parameter is used.
        /// </summary>
        public readonly int? PhoneCircleTimes;
        /// <summary>
        /// Interval between telephone alarm rounds, NotifyWay is `CALL`, and this parameter is used.
        /// </summary>
        public readonly int? PhoneInnerInterval;
        /// <summary>
        /// Phone alert sequence, NotifyWay is `CALL`, and this parameter is used.
        /// </summary>
        public readonly ImmutableArray<int> PhoneNotifyOrders;
        /// <summary>
        /// Alarm receiving group(user group).
        /// </summary>
        public readonly ImmutableArray<string> ReceiverGroups;
        /// <summary>
        /// Convergence time.
        /// </summary>
        public readonly string? RepeatInterval;
        /// <summary>
        /// Effective end time.
        /// </summary>
        public readonly string? TimeRangeEnd;
        /// <summary>
        /// Effective start time.
        /// </summary>
        public readonly string? TimeRangeStart;
        /// <summary>
        /// Alarm notification type, Valid values: `amp`, `webhook`, `alertmanager`.
        /// </summary>
        public readonly string Type;
        /// <summary>
        /// Web hook, if Type is `webhook`, this field is required.
        /// </summary>
        public readonly string? WebHook;

        [OutputConstructor]
        private TmpTkeGlobalNotificationNotification(
            ImmutableArray<Outputs.TmpTkeGlobalNotificationNotificationAlertManager> alertManagers,

            bool enabled,

            ImmutableArray<string> notifyWays,

            bool? phoneArriveNotice,

            int? phoneCircleInterval,

            int? phoneCircleTimes,

            int? phoneInnerInterval,

            ImmutableArray<int> phoneNotifyOrders,

            ImmutableArray<string> receiverGroups,

            string? repeatInterval,

            string? timeRangeEnd,

            string? timeRangeStart,

            string type,

            string? webHook)
        {
            AlertManagers = alertManagers;
            Enabled = enabled;
            NotifyWays = notifyWays;
            PhoneArriveNotice = phoneArriveNotice;
            PhoneCircleInterval = phoneCircleInterval;
            PhoneCircleTimes = phoneCircleTimes;
            PhoneInnerInterval = phoneInnerInterval;
            PhoneNotifyOrders = phoneNotifyOrders;
            ReceiverGroups = receiverGroups;
            RepeatInterval = repeatInterval;
            TimeRangeEnd = timeRangeEnd;
            TimeRangeStart = timeRangeStart;
            Type = type;
            WebHook = webHook;
        }
    }
}
