generated/api/Models/AlertDefinitionsDetails.cs

// Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.9.4, generator: @autorest/powershell@3.0.415)
// Changes may cause incorrect behavior and will be lost if the code is regenerated.

namespace Commvault.Powershell.Models
{
    using static Commvault.Powershell.Runtime.Extensions;

    /// <summary>AlertDefinitionsDetails</summary>
    public partial class AlertDefinitionsDetails :
        Commvault.Powershell.Models.IAlertDefinitionsDetails,
        Commvault.Powershell.Models.IAlertDefinitionsDetailsInternal
    {

        /// <summary>Backing field for <see cref="AdditionalProperties" /> property.</summary>
        private Commvault.Powershell.Models.IAlertAdditionalProperties _additionalProperties;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IAlertAdditionalProperties AdditionalProperties { get => (this._additionalProperties = this._additionalProperties ?? new Commvault.Powershell.Models.AlertAdditionalProperties()); set => this._additionalProperties = value; }

        /// <summary>Tells status of alert. Can be used to find if alert is enabled or not.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? AdditionalPropertyStatus { get => ((Commvault.Powershell.Models.IAlertAdditionalPropertiesInternal)AdditionalProperties).Status; set => ((Commvault.Powershell.Models.IAlertAdditionalPropertiesInternal)AdditionalProperties).Status = value ?? default(long); }

        /// <summary>Backing field for <see cref="AlertSummary" /> property.</summary>
        private Commvault.Powershell.Models.IAlertDetailsSummary _alertSummary;

        /// <summary>AlertDetailsSummary</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IAlertDetailsSummary AlertSummary { get => (this._alertSummary = this._alertSummary ?? new Commvault.Powershell.Models.AlertDetailsSummary()); set => this._alertSummary = value; }

        /// <summary>Backing field for <see cref="AlertTarget" /> property.</summary>
        private Commvault.Powershell.Models.IAlertDefinitionsTarget _alertTarget;

        /// <summary>
        /// Please note CONTENT_INDEX will be returned at all times as it is enabled at all times.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IAlertDefinitionsTarget AlertTarget { get => (this._alertTarget = this._alertTarget ?? new Commvault.Powershell.Models.AlertDefinitionsTarget()); set => this._alertTarget = value; }

        /// <summary>
        /// Allows adding to, overwriting and deleting existing recipients. default is adding to existing recipients
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string AlertTargetRecipientsOperationType { get => ((Commvault.Powershell.Models.IAlertDefinitionsTargetInternal)AlertTarget).RecipientsOperationType; set => ((Commvault.Powershell.Models.IAlertDefinitionsTargetInternal)AlertTarget).RecipientsOperationType = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string[] AlertTargetSendAlertTo { get => ((Commvault.Powershell.Models.IAlertDefinitionsTargetInternal)AlertTarget).SendAlertTo; set => ((Commvault.Powershell.Models.IAlertDefinitionsTargetInternal)AlertTarget).SendAlertTo = value ?? null /* arrayOf */; }

        /// <summary>Backing field for <see cref="Associations" /> property.</summary>
        private Commvault.Powershell.Models.IAlertAssociationIdNameType1[] _associations;

        /// <summary>AlertDefinitionsAssociations</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IAlertAssociationIdNameType1[] Associations { get => this._associations; set => this._associations = value; }

        /// <summary>id of the category of the alert definition</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? CategoryId { get => ((Commvault.Powershell.Models.IAlertDetailsSummaryInternal)AlertSummary).CategoryId; set => ((Commvault.Powershell.Models.IAlertDetailsSummaryInternal)AlertSummary).CategoryId = value ?? default(long); }

        /// <summary>category of the alert definition</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string CategoryName { get => ((Commvault.Powershell.Models.IAlertDetailsSummaryInternal)AlertSummary).CategoryName; set => ((Commvault.Powershell.Models.IAlertDetailsSummaryInternal)AlertSummary).CategoryName = value ?? null; }

        /// <summary>Internal Acessors for AdditionalProperties</summary>
        Commvault.Powershell.Models.IAlertAdditionalProperties Commvault.Powershell.Models.IAlertDefinitionsDetailsInternal.AdditionalProperties { get => (this._additionalProperties = this._additionalProperties ?? new Commvault.Powershell.Models.AlertAdditionalProperties()); set { {_additionalProperties = value;} } }

        /// <summary>Internal Acessors for AlertSummary</summary>
        Commvault.Powershell.Models.IAlertDetailsSummary Commvault.Powershell.Models.IAlertDefinitionsDetailsInternal.AlertSummary { get => (this._alertSummary = this._alertSummary ?? new Commvault.Powershell.Models.AlertDetailsSummary()); set { {_alertSummary = value;} } }

        /// <summary>Internal Acessors for AlertSummaryCategory</summary>
        Commvault.Powershell.Models.IAlertCategoryIdName1 Commvault.Powershell.Models.IAlertDefinitionsDetailsInternal.AlertSummaryCategory { get => ((Commvault.Powershell.Models.IAlertDetailsSummaryInternal)AlertSummary).Category; set => ((Commvault.Powershell.Models.IAlertDetailsSummaryInternal)AlertSummary).Category = value; }

        /// <summary>Internal Acessors for AlertSummaryCriteria</summary>
        Commvault.Powershell.Models.IAlertCriteriaIdName1 Commvault.Powershell.Models.IAlertDefinitionsDetailsInternal.AlertSummaryCriteria { get => ((Commvault.Powershell.Models.IAlertDetailsSummaryInternal)AlertSummary).Criteria; set => ((Commvault.Powershell.Models.IAlertDetailsSummaryInternal)AlertSummary).Criteria = value; }

        /// <summary>Internal Acessors for AlertSummaryType</summary>
        Commvault.Powershell.Models.IAlertTypeIdName1 Commvault.Powershell.Models.IAlertDefinitionsDetailsInternal.AlertSummaryType { get => ((Commvault.Powershell.Models.IAlertDetailsSummaryInternal)AlertSummary).Type; set => ((Commvault.Powershell.Models.IAlertDetailsSummaryInternal)AlertSummary).Type = value; }

        /// <summary>Internal Acessors for AlertTarget</summary>
        Commvault.Powershell.Models.IAlertDefinitionsTarget Commvault.Powershell.Models.IAlertDefinitionsDetailsInternal.AlertTarget { get => (this._alertTarget = this._alertTarget ?? new Commvault.Powershell.Models.AlertDefinitionsTarget()); set { {_alertTarget = value;} } }

        /// <summary>Internal Acessors for AlertTargetRecipients</summary>
        Commvault.Powershell.Models.IAlertDefinitionsTargetRecipients Commvault.Powershell.Models.IAlertDefinitionsDetailsInternal.AlertTargetRecipients { get => ((Commvault.Powershell.Models.IAlertDefinitionsTargetInternal)AlertTarget).Recipients; set => ((Commvault.Powershell.Models.IAlertDefinitionsTargetInternal)AlertTarget).Recipients = value; }

        /// <summary>Internal Acessors for TemplateLocale</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IAlertDefinitionsDetailsInternal.TemplateLocale { get => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).Locale; set => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).Locale = value; }

        /// <summary>Internal Acessors for Templates</summary>
        Commvault.Powershell.Models.IAlertDefinitionsTemplate Commvault.Powershell.Models.IAlertDefinitionsDetailsInternal.Templates { get => (this._templates = this._templates ?? new Commvault.Powershell.Models.AlertDefinitionsTemplate()); set { {_templates = value;} } }

        /// <summary>Internal Acessors for Tokens</summary>
        Commvault.Powershell.Models.ITokenRuleGroups Commvault.Powershell.Models.IAlertDefinitionsDetailsInternal.Tokens { get => (this._tokens = this._tokens ?? new Commvault.Powershell.Models.TokenRuleGroups()); set { {_tokens = value;} } }

        /// <summary>id of the criteria of detection for the alert definition</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? CriterionId { get => ((Commvault.Powershell.Models.IAlertDetailsSummaryInternal)AlertSummary).CriterionId; set => ((Commvault.Powershell.Models.IAlertDetailsSummaryInternal)AlertSummary).CriterionId = value ?? default(long); }

        /// <summary>criteria of detection for the alert definition</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string CriterionName { get => ((Commvault.Powershell.Models.IAlertDetailsSummaryInternal)AlertSummary).CriterionName; set => ((Commvault.Powershell.Models.IAlertDetailsSummaryInternal)AlertSummary).CriterionName = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IAlertDefinitionsCriteriaParams[] CriterionParamsList { get => ((Commvault.Powershell.Models.IAlertDetailsSummaryInternal)AlertSummary).CriterionParamsList; set => ((Commvault.Powershell.Models.IAlertDetailsSummaryInternal)AlertSummary).CriterionParamsList = value ?? null /* arrayOf */; }

        /// <summary>Backing field for <see cref="Id" /> property.</summary>
        private long? _id;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? Id { get => this._id; set => this._id = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? LocaleId { get => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).LocaleId; set => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).LocaleId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string LocaleName { get => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).LocaleName; set => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).LocaleName = value ?? null; }

        /// <summary>Backing field for <see cref="Name" /> property.</summary>
        private string _name;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string Name { get => this._name; set => this._name = value; }

        /// <summary>Backing field for <see cref="ProcessDiscoveredVMS" /> property.</summary>
        private bool? _processDiscoveredVMS;

        /// <summary>Set to true for all Virtual Machine related alerts.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? ProcessDiscoveredVMS { get => this._processDiscoveredVMS; set => this._processDiscoveredVMS = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IAlertTargetIdNameType1[] RecipientBcc { get => ((Commvault.Powershell.Models.IAlertDefinitionsTargetInternal)AlertTarget).RecipientBcc; set => ((Commvault.Powershell.Models.IAlertDefinitionsTargetInternal)AlertTarget).RecipientBcc = value ?? null /* arrayOf */; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IAlertTargetIdNameType1[] RecipientCc { get => ((Commvault.Powershell.Models.IAlertDefinitionsTargetInternal)AlertTarget).RecipientCc; set => ((Commvault.Powershell.Models.IAlertDefinitionsTargetInternal)AlertTarget).RecipientCc = value ?? null /* arrayOf */; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IAlertTargetIdNameType1[] RecipientTo { get => ((Commvault.Powershell.Models.IAlertDefinitionsTargetInternal)AlertTarget).RecipientTo; set => ((Commvault.Powershell.Models.IAlertDefinitionsTargetInternal)AlertTarget).RecipientTo = value ?? null /* arrayOf */; }

        /// <summary>
        /// id of the webhook to be associated with the alert definition. Only needed incase of webhook notif selected. To get a list
        /// of webhooks, use api GET Webhook
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? RecipientWebHookId { get => ((Commvault.Powershell.Models.IAlertDefinitionsTargetInternal)AlertTarget).RecipientWebHookId; set => ((Commvault.Powershell.Models.IAlertDefinitionsTargetInternal)AlertTarget).RecipientWebHookId = value ?? default(long); }

        /// <summary>Backing field for <see cref="SendIndividualNotifications" /> property.</summary>
        private bool? _sendIndividualNotifications;

        /// <summary>true if individual notifications are on for the alert definitions</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? SendIndividualNotifications { get => this._sendIndividualNotifications; set => this._sendIndividualNotifications = value; }

        /// <summary>Backing field for <see cref="SubscriptionBasedAlert" /> property.</summary>
        private bool? _subscriptionBasedAlert;

        /// <summary>Flag to indicate whether its a subscription based alert.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? SubscriptionBasedAlert { get => this._subscriptionBasedAlert; set => this._subscriptionBasedAlert = value; }

        /// <summary>the message template for the console notification</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string TemplateConsole { get => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).Console; set => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).Console = value ?? null; }

        /// <summary>
        /// the message template for the email notification. Contains both email subject as well as body
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string TemplateEmail { get => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).Email; set => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).Email = value ?? null; }

        /// <summary>the message template for the event viewer notification</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string TemplateEventViewer { get => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).EventViewer; set => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).EventViewer = value ?? null; }

        /// <summary>the message template for the webhook notification</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string TemplateWebhook { get => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).Webhook; set => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).Webhook = value ?? null; }

        /// <summary>Backing field for <see cref="Templates" /> property.</summary>
        private Commvault.Powershell.Models.IAlertDefinitionsTemplate _templates;

        /// <summary>AlertDefinitionsTemplate</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IAlertDefinitionsTemplate Templates { get => (this._templates = this._templates ?? new Commvault.Powershell.Models.AlertDefinitionsTemplate()); set => this._templates = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string TokenMatch { get => ((Commvault.Powershell.Models.ITokenRuleGroupsInternal)Tokens).Match; set => ((Commvault.Powershell.Models.ITokenRuleGroupsInternal)Tokens).Match = value ?? null; }

        /// <summary>List of rule groups</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.ITokenRuleGroup[] TokenRuleGroups { get => ((Commvault.Powershell.Models.ITokenRuleGroupsInternal)Tokens).RuleGroups; set => ((Commvault.Powershell.Models.ITokenRuleGroupsInternal)Tokens).RuleGroups = value ?? null /* arrayOf */; }

        /// <summary>Backing field for <see cref="Tokens" /> property.</summary>
        private Commvault.Powershell.Models.ITokenRuleGroups _tokens;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.ITokenRuleGroups Tokens { get => (this._tokens = this._tokens ?? new Commvault.Powershell.Models.TokenRuleGroups()); set => this._tokens = value; }

        /// <summary>id of the alert definition</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? TypeId { get => ((Commvault.Powershell.Models.IAlertDetailsSummaryInternal)AlertSummary).TypeId; set => ((Commvault.Powershell.Models.IAlertDetailsSummaryInternal)AlertSummary).TypeId = value ?? default(long); }

        /// <summary>type of the alert definitions</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string TypeName { get => ((Commvault.Powershell.Models.IAlertDetailsSummaryInternal)AlertSummary).TypeName; set => ((Commvault.Powershell.Models.IAlertDetailsSummaryInternal)AlertSummary).TypeName = value ?? null; }

        /// <summary>Creates an new <see cref="AlertDefinitionsDetails" /> instance.</summary>
        public AlertDefinitionsDetails()
        {

        }
    }
    /// AlertDefinitionsDetails
    public partial interface IAlertDefinitionsDetails :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        /// <summary>Tells status of alert. Can be used to find if alert is enabled or not.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Tells status of alert. Can be used to find if alert is enabled or not.",
        SerializedName = @"status",
        PossibleTypes = new [] { typeof(long) })]
        long? AdditionalPropertyStatus { get; set; }
        /// <summary>
        /// Allows adding to, overwriting and deleting existing recipients. default is adding to existing recipients
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Allows adding to, overwriting and deleting existing recipients. default is adding to existing recipients",
        SerializedName = @"recipientsOperationType",
        PossibleTypes = new [] { typeof(string) })]
        string AlertTargetRecipientsOperationType { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"sendAlertTo",
        PossibleTypes = new [] { typeof(string) })]
        string[] AlertTargetSendAlertTo { get; set; }
        /// <summary>AlertDefinitionsAssociations</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"AlertDefinitionsAssociations",
        SerializedName = @"associations",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IAlertAssociationIdNameType1) })]
        Commvault.Powershell.Models.IAlertAssociationIdNameType1[] Associations { get; set; }
        /// <summary>id of the category of the alert definition</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"id of the category of the alert definition",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(long) })]
        long? CategoryId { get; set; }
        /// <summary>category of the alert definition</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"category of the alert definition",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string CategoryName { get; set; }
        /// <summary>id of the criteria of detection for the alert definition</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"id of the criteria of detection for the alert definition",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(long) })]
        long? CriterionId { get; set; }
        /// <summary>criteria of detection for the alert definition</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"criteria of detection for the alert definition",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string CriterionName { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"paramsList",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IAlertDefinitionsCriteriaParams) })]
        Commvault.Powershell.Models.IAlertDefinitionsCriteriaParams[] CriterionParamsList { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(long) })]
        long? Id { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(long) })]
        long? LocaleId { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string LocaleName { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string Name { get; set; }
        /// <summary>Set to true for all Virtual Machine related alerts.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Set to true for all Virtual Machine related alerts.",
        SerializedName = @"processDiscoveredVMs",
        PossibleTypes = new [] { typeof(bool) })]
        bool? ProcessDiscoveredVMS { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"bcc",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IAlertTargetIdNameType1) })]
        Commvault.Powershell.Models.IAlertTargetIdNameType1[] RecipientBcc { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"cc",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IAlertTargetIdNameType1) })]
        Commvault.Powershell.Models.IAlertTargetIdNameType1[] RecipientCc { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"to",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IAlertTargetIdNameType1) })]
        Commvault.Powershell.Models.IAlertTargetIdNameType1[] RecipientTo { get; set; }
        /// <summary>
        /// id of the webhook to be associated with the alert definition. Only needed incase of webhook notif selected. To get a list
        /// of webhooks, use api GET Webhook
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"id of the webhook to be associated with the alert definition. Only needed incase of webhook notif selected. To get a list of webhooks, use api GET Webhook",
        SerializedName = @"webHookId",
        PossibleTypes = new [] { typeof(long) })]
        long? RecipientWebHookId { get; set; }
        /// <summary>true if individual notifications are on for the alert definitions</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"true if individual notifications are on for the alert definitions",
        SerializedName = @"sendIndividualNotifications",
        PossibleTypes = new [] { typeof(bool) })]
        bool? SendIndividualNotifications { get; set; }
        /// <summary>Flag to indicate whether its a subscription based alert.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Flag to indicate whether its a subscription based alert.",
        SerializedName = @"subscriptionBasedAlert",
        PossibleTypes = new [] { typeof(bool) })]
        bool? SubscriptionBasedAlert { get; set; }
        /// <summary>the message template for the console notification</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"the message template for the console notification",
        SerializedName = @"console",
        PossibleTypes = new [] { typeof(string) })]
        string TemplateConsole { get; set; }
        /// <summary>
        /// the message template for the email notification. Contains both email subject as well as body
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"the message template for the email notification. Contains both email subject as well as body",
        SerializedName = @"email",
        PossibleTypes = new [] { typeof(string) })]
        string TemplateEmail { get; set; }
        /// <summary>the message template for the event viewer notification</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"the message template for the event viewer notification",
        SerializedName = @"eventViewer",
        PossibleTypes = new [] { typeof(string) })]
        string TemplateEventViewer { get; set; }
        /// <summary>the message template for the webhook notification</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"the message template for the webhook notification",
        SerializedName = @"webhook",
        PossibleTypes = new [] { typeof(string) })]
        string TemplateWebhook { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"match",
        PossibleTypes = new [] { typeof(string) })]
        string TokenMatch { get; set; }
        /// <summary>List of rule groups</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"List of rule groups",
        SerializedName = @"ruleGroups",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.ITokenRuleGroup) })]
        Commvault.Powershell.Models.ITokenRuleGroup[] TokenRuleGroups { get; set; }
        /// <summary>id of the alert definition</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"id of the alert definition",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(long) })]
        long? TypeId { get; set; }
        /// <summary>type of the alert definitions</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"type of the alert definitions",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string TypeName { get; set; }

    }
    /// AlertDefinitionsDetails
    internal partial interface IAlertDefinitionsDetailsInternal

    {
        Commvault.Powershell.Models.IAlertAdditionalProperties AdditionalProperties { get; set; }
        /// <summary>Tells status of alert. Can be used to find if alert is enabled or not.</summary>
        long? AdditionalPropertyStatus { get; set; }
        /// <summary>AlertDetailsSummary</summary>
        Commvault.Powershell.Models.IAlertDetailsSummary AlertSummary { get; set; }

        Commvault.Powershell.Models.IAlertCategoryIdName1 AlertSummaryCategory { get; set; }

        Commvault.Powershell.Models.IAlertCriteriaIdName1 AlertSummaryCriteria { get; set; }

        Commvault.Powershell.Models.IAlertTypeIdName1 AlertSummaryType { get; set; }
        /// <summary>
        /// Please note CONTENT_INDEX will be returned at all times as it is enabled at all times.
        /// </summary>
        Commvault.Powershell.Models.IAlertDefinitionsTarget AlertTarget { get; set; }
        /// <summary>AlertDefinitionsTargetRecipients</summary>
        Commvault.Powershell.Models.IAlertDefinitionsTargetRecipients AlertTargetRecipients { get; set; }
        /// <summary>
        /// Allows adding to, overwriting and deleting existing recipients. default is adding to existing recipients
        /// </summary>
        string AlertTargetRecipientsOperationType { get; set; }

        string[] AlertTargetSendAlertTo { get; set; }
        /// <summary>AlertDefinitionsAssociations</summary>
        Commvault.Powershell.Models.IAlertAssociationIdNameType1[] Associations { get; set; }
        /// <summary>id of the category of the alert definition</summary>
        long? CategoryId { get; set; }
        /// <summary>category of the alert definition</summary>
        string CategoryName { get; set; }
        /// <summary>id of the criteria of detection for the alert definition</summary>
        long? CriterionId { get; set; }
        /// <summary>criteria of detection for the alert definition</summary>
        string CriterionName { get; set; }

        Commvault.Powershell.Models.IAlertDefinitionsCriteriaParams[] CriterionParamsList { get; set; }

        long? Id { get; set; }

        long? LocaleId { get; set; }

        string LocaleName { get; set; }

        string Name { get; set; }
        /// <summary>Set to true for all Virtual Machine related alerts.</summary>
        bool? ProcessDiscoveredVMS { get; set; }

        Commvault.Powershell.Models.IAlertTargetIdNameType1[] RecipientBcc { get; set; }

        Commvault.Powershell.Models.IAlertTargetIdNameType1[] RecipientCc { get; set; }

        Commvault.Powershell.Models.IAlertTargetIdNameType1[] RecipientTo { get; set; }
        /// <summary>
        /// id of the webhook to be associated with the alert definition. Only needed incase of webhook notif selected. To get a list
        /// of webhooks, use api GET Webhook
        /// </summary>
        long? RecipientWebHookId { get; set; }
        /// <summary>true if individual notifications are on for the alert definitions</summary>
        bool? SendIndividualNotifications { get; set; }
        /// <summary>Flag to indicate whether its a subscription based alert.</summary>
        bool? SubscriptionBasedAlert { get; set; }
        /// <summary>the message template for the console notification</summary>
        string TemplateConsole { get; set; }
        /// <summary>
        /// the message template for the email notification. Contains both email subject as well as body
        /// </summary>
        string TemplateEmail { get; set; }
        /// <summary>the message template for the event viewer notification</summary>
        string TemplateEventViewer { get; set; }

        Commvault.Powershell.Models.IIdName TemplateLocale { get; set; }
        /// <summary>the message template for the webhook notification</summary>
        string TemplateWebhook { get; set; }
        /// <summary>AlertDefinitionsTemplate</summary>
        Commvault.Powershell.Models.IAlertDefinitionsTemplate Templates { get; set; }

        string TokenMatch { get; set; }
        /// <summary>List of rule groups</summary>
        Commvault.Powershell.Models.ITokenRuleGroup[] TokenRuleGroups { get; set; }

        Commvault.Powershell.Models.ITokenRuleGroups Tokens { get; set; }
        /// <summary>id of the alert definition</summary>
        long? TypeId { get; set; }
        /// <summary>type of the alert definitions</summary>
        string TypeName { get; set; }

    }
}