<filename>sdk/dotnet/Tencentcloud/Monitor/Outputs/TmpTkeAlertPolicyAlertRuleNotification.cs// *** 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 TmpTkeAlertPolicyAlertRuleNotification
    {
        /// <summary>
        /// If Type is alertmanager, the field is required. Note: This field may return null, indicating that a valid value could not be retrieved..
        /// </summary>
        public readonly Outputs.TmpTkeAlertPolicyAlertRuleNotificationAlertManager? AlertManager;
        /// <summary>
        /// Whether it is enabled.
        /// </summary>
        public readonly bool Enabled;
        /// <summary>
        /// Alarm notification method. At present, there are SMS, EMAIL, CALL, WECHAT methods.
        /// </summary>
        public readonly ImmutableArray<string> NotifyWays;
        /// <summary>
        /// Telephone alerts reach notifications.
        /// </summary>
        public readonly bool? PhoneArriveNotice;
        /// <summary>
        /// Effective end timeTelephone alarm wheel interval. Units: Seconds.
        /// </summary>
        public readonly int? PhoneCircleInterval;
        /// <summary>
        /// PhoneCircleTimes.
        /// </summary>
        public readonly int? PhoneCircleTimes;
        /// <summary>
        /// Telephone alarm wheel intervals. Units: Seconds.
        /// </summary>
        public readonly int? PhoneInnerInterval;
        /// <summary>
        /// Telephone alarm sequence.
        /// </summary>
        public readonly ImmutableArray<int> PhoneNotifyOrders;
        /// <summary>
        /// Alert 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>
        /// The time from which it takes effect.
        /// </summary>
        public readonly string? TimeRangeStart;
        /// <summary>
        /// The channel type, which defaults to amp, supports the following `amp`, `webhook`, `alertmanager`.
        /// </summary>
        public readonly string Type;
        /// <summary>
        /// If Type is webhook, the field is required. Note: This field may return null, indicating that a valid value could not be retrieved.
        /// </summary>
        public readonly string? WebHook;

        [OutputConstructor]
        private TmpTkeAlertPolicyAlertRuleNotification(
            Outputs.TmpTkeAlertPolicyAlertRuleNotificationAlertManager? alertManager,

            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)
        {
            AlertManager = alertManager;
            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;
        }
    }
}
