generated/api/Models/AlertDefinitionsEdit.cs

// Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.10.2, generator: @autorest/powershell@4.0.708)
// 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>AlertDefinitionsEdit</summary>
    public partial class AlertDefinitionsEdit :
        Commvault.Powershell.Models.IAlertDefinitionsEdit,
        Commvault.Powershell.Models.IAlertDefinitionsEditInternal
    {

        /// <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 System.Collections.Generic.List<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 System.Collections.Generic.List<Commvault.Powershell.Models.IAlertAssociationIdNameType1> _associations;

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

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

        /// <summary>
        /// Allows adding to, overwriting and deleting existing alert associations. default is adding to existing alert associations
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string AssociationsOperationType { get => this._associationsOperationType; set => this._associationsOperationType = value; }

        /// <summary>Internal Acessors for AlertTarget</summary>
        Commvault.Powershell.Models.IAlertDefinitionsTarget Commvault.Powershell.Models.IAlertDefinitionsEditInternal.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.IAlertDefinitionsEditInternal.AlertTargetRecipients { get => ((Commvault.Powershell.Models.IAlertDefinitionsTargetInternal)AlertTarget).Recipients; set => ((Commvault.Powershell.Models.IAlertDefinitionsTargetInternal)AlertTarget).Recipients = value; }

        /// <summary>Internal Acessors for EventCriteriaDetails</summary>
        Commvault.Powershell.Models.IEventCriteriaDetails Commvault.Powershell.Models.IAlertDefinitionsEditInternal.EventCriteriaDetails { get => (this._eventCriteriaDetails = this._eventCriteriaDetails ?? new Commvault.Powershell.Models.EventCriteriaDetails()); set { {_eventCriteriaDetails = value;} } }

        /// <summary>Internal Acessors for GlobalConfigInfo</summary>
        Commvault.Powershell.Models.IGlobalConfigInfo Commvault.Powershell.Models.IAlertDefinitionsEditInternal.GlobalConfigInfo { get => (this._globalConfigInfo = this._globalConfigInfo ?? new Commvault.Powershell.Models.GlobalConfigInfo()); set { {_globalConfigInfo = value;} } }

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

        /// <summary>Internal Acessors for TemplateWorkflow</summary>
        Commvault.Powershell.Models.IWorkflowEntity Commvault.Powershell.Models.IAlertDefinitionsEditInternal.TemplateWorkflow { get => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).Workflow; set => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).Workflow = value; }

        /// <summary>Internal Acessors for Templates</summary>
        Commvault.Powershell.Models.IAlertDefinitionsTemplate Commvault.Powershell.Models.IAlertDefinitionsEditInternal.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.IAlertDefinitionsEditInternal.Tokens { get => (this._tokens = this._tokens ?? new Commvault.Powershell.Models.TokenRuleGroups()); set { {_tokens = value;} } }

        /// <summary>Backing field for <see cref="CriteriaList" /> property.</summary>
        private System.Collections.Generic.List<Commvault.Powershell.Models.IAlertCriteriaIdName1> _criteriaList;

        /// <summary>List of alert criteria</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public System.Collections.Generic.List<Commvault.Powershell.Models.IAlertCriteriaIdName1> CriteriaList { get => this._criteriaList; set => this._criteriaList = value; }

        /// <summary>Backing field for <see cref="EventCriteriaDetails" /> property.</summary>
        private Commvault.Powershell.Models.IEventCriteriaDetails _eventCriteriaDetails;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IEventCriteriaDetails EventCriteriaDetails { get => (this._eventCriteriaDetails = this._eventCriteriaDetails ?? new Commvault.Powershell.Models.EventCriteriaDetails()); set => this._eventCriteriaDetails = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public System.Collections.Generic.List<Commvault.Powershell.Models.IConditionDetails> EventCriterionDetailConditions { get => ((Commvault.Powershell.Models.IEventCriteriaDetailsInternal)EventCriteriaDetails).Conditions; set => ((Commvault.Powershell.Models.IEventCriteriaDetailsInternal)EventCriteriaDetails).Conditions = value ?? null /* arrayOf */; }

        /// <summary>Alert criteria name</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string EventCriterionDetailCriteriaName { get => ((Commvault.Powershell.Models.IEventCriteriaDetailsInternal)EventCriteriaDetails).CriteriaName; set => ((Commvault.Powershell.Models.IEventCriteriaDetailsInternal)EventCriteriaDetails).CriteriaName = value ?? null; }

        /// <summary>Integer value for the operation type between conditions</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? EventCriterionDetailOpBetweenConditions { get => ((Commvault.Powershell.Models.IEventCriteriaDetailsInternal)EventCriteriaDetails).OpBetweenConditions; set => ((Commvault.Powershell.Models.IEventCriteriaDetailsInternal)EventCriteriaDetails).OpBetweenConditions = value ?? default(long); }

        /// <summary>Backing field for <see cref="GlobalConfigInfo" /> property.</summary>
        private Commvault.Powershell.Models.IGlobalConfigInfo _globalConfigInfo;

        /// <summary>Only applicable on Global CommCells</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IGlobalConfigInfo GlobalConfigInfo { get => (this._globalConfigInfo = this._globalConfigInfo ?? new Commvault.Powershell.Models.GlobalConfigInfo()); set => this._globalConfigInfo = value; }

        /// <summary>
        /// Decides whether the global configuration should be applied to all the Service commcells, including the newly created ones
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? GlobalConfigInfoApplyOnAllCommCells { get => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).ApplyOnAllCommCells; set => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).ApplyOnAllCommCells = value ?? default(bool); }

        /// <summary>List of Service CommCells where the global configuration is applied</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public System.Collections.Generic.List<Commvault.Powershell.Models.IGlobalConfigCommcellInfo> GlobalConfigInfoCommcells { get => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).Commcells; set => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).Commcells = value ?? null /* arrayOf */; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string GlobalConfigInfoId { get => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).Id; set => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).Id = value ?? null; }

        /// <summary>Indicates whether global configuration deletion has been started.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? GlobalConfigInfoIsMarkedForDeletion { get => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).IsMarkedForDeletion; set => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).IsMarkedForDeletion = value ?? default(bool); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string GlobalConfigInfoName { get => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).Name; set => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).Name = value ?? null; }

        /// <summary>The entity level at which the config is applied.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string GlobalConfigInfoScope { get => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).Scope; set => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).Scope = value ?? null; }

        /// <summary>CommCellEntityCache filter query string used for filtering the scope</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string GlobalConfigInfoScopeFilterQuery { get => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).ScopeFilterQuery; set => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).ScopeFilterQuery = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string GlobalConfigInfoStatus { get => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).Status; set => ((Commvault.Powershell.Models.IGlobalConfigInfoInternal)GlobalConfigInfo).Status = value ?? null; }

        [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="NewName" /> property.</summary>
        private string _newName;

        /// <summary>The new name of the alert definition</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string NewName { get => this._newName; set => this._newName = value; }

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

        /// <summary>
        /// Flag indicating the functionality to send individual notifications for each discovered virtual machine
        /// </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 System.Collections.Generic.List<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 System.Collections.Generic.List<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 System.Collections.Generic.List<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>Flag indicating the functionality to send individual notifications</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>
        /// the template for the workflow input entries values (empty value means the configured workflow does not need any inputs
        /// value)
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string TemplateWorkflowInputDetails { get => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).WorkflowInputDetails; set => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).WorkflowInputDetails = 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 System.Collections.Generic.List<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 client on which the workflow runs (zero value means it can run on any workflow engine)
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? WorkflowClientId { get => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).WorkflowClientId; set => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).WorkflowClientId = value ?? default(long); }

        /// <summary>
        /// name of the client on which the workflow runs (empty value means it can run on any workflow engine)
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string WorkflowClientName { get => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).WorkflowClientName; set => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).WorkflowClientName = value ?? null; }

        /// <summary>id of the workflow which runs when the alert is triggered</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? WorkflowId { get => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).WorkflowId; set => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).WorkflowId = value ?? default(long); }

        /// <summary>name of the workflow which runs when the alert is triggered</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string WorkflowName { get => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).WorkflowName; set => ((Commvault.Powershell.Models.IAlertDefinitionsTemplateInternal)Templates).WorkflowName = value ?? null; }

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

        }
    }
    /// AlertDefinitionsEdit
    public partial interface IAlertDefinitionsEdit :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        /// <summary>
        /// Allows adding to, overwriting and deleting existing recipients. default is adding to existing recipients
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        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,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"sendAlertTo",
        PossibleTypes = new [] { typeof(string) })]
        System.Collections.Generic.List<string> AlertTargetSendAlertTo { get; set; }
        /// <summary>AlertDefinitionsAssociations</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"AlertDefinitionsAssociations",
        SerializedName = @"associations",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IAlertAssociationIdNameType1) })]
        System.Collections.Generic.List<Commvault.Powershell.Models.IAlertAssociationIdNameType1> Associations { get; set; }
        /// <summary>
        /// Allows adding to, overwriting and deleting existing alert associations. default is adding to existing alert associations
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Allows adding to, overwriting and deleting existing alert associations. default is adding to existing alert associations",
        SerializedName = @"associationsOperationType",
        PossibleTypes = new [] { typeof(string) })]
        string AssociationsOperationType { get; set; }
        /// <summary>List of alert criteria</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"List of alert criteria",
        SerializedName = @"criteriaList",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IAlertCriteriaIdName1) })]
        System.Collections.Generic.List<Commvault.Powershell.Models.IAlertCriteriaIdName1> CriteriaList { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"conditions",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IConditionDetails) })]
        System.Collections.Generic.List<Commvault.Powershell.Models.IConditionDetails> EventCriterionDetailConditions { get; set; }
        /// <summary>Alert criteria name</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Alert criteria name",
        SerializedName = @"criteriaName",
        PossibleTypes = new [] { typeof(string) })]
        string EventCriterionDetailCriteriaName { get; set; }
        /// <summary>Integer value for the operation type between conditions</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Integer value for the operation type between conditions",
        SerializedName = @"opBetweenConditions",
        PossibleTypes = new [] { typeof(long) })]
        long? EventCriterionDetailOpBetweenConditions { get; set; }
        /// <summary>
        /// Decides whether the global configuration should be applied to all the Service commcells, including the newly created ones
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Decides whether the global configuration should be applied to all the Service commcells, including the newly created ones",
        SerializedName = @"applyOnAllCommCells",
        PossibleTypes = new [] { typeof(bool) })]
        bool? GlobalConfigInfoApplyOnAllCommCells { get; set; }
        /// <summary>List of Service CommCells where the global configuration is applied</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"List of Service CommCells where the global configuration is applied",
        SerializedName = @"commcells",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IGlobalConfigCommcellInfo) })]
        System.Collections.Generic.List<Commvault.Powershell.Models.IGlobalConfigCommcellInfo> GlobalConfigInfoCommcells { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(string) })]
        string GlobalConfigInfoId { get; set; }
        /// <summary>Indicates whether global configuration deletion has been started.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Indicates whether global configuration deletion has been started.",
        SerializedName = @"isMarkedForDeletion",
        PossibleTypes = new [] { typeof(bool) })]
        bool? GlobalConfigInfoIsMarkedForDeletion { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string GlobalConfigInfoName { get; set; }
        /// <summary>The entity level at which the config is applied.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"The entity level at which the config is applied.",
        SerializedName = @"scope",
        PossibleTypes = new [] { typeof(string) })]
        string GlobalConfigInfoScope { get; set; }
        /// <summary>CommCellEntityCache filter query string used for filtering the scope</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"CommCellEntityCache filter query string used for filtering the scope",
        SerializedName = @"scopeFilterQuery",
        PossibleTypes = new [] { typeof(string) })]
        string GlobalConfigInfoScopeFilterQuery { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"status",
        PossibleTypes = new [] { typeof(string) })]
        string GlobalConfigInfoStatus { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string LocaleName { get; set; }
        /// <summary>The new name of the alert definition</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"The new name of the alert definition",
        SerializedName = @"newName",
        PossibleTypes = new [] { typeof(string) })]
        string NewName { get; set; }
        /// <summary>
        /// Flag indicating the functionality to send individual notifications for each discovered virtual machine
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Flag indicating the functionality to send individual notifications for each discovered virtual machine",
        SerializedName = @"processDiscoveredVMs",
        PossibleTypes = new [] { typeof(bool) })]
        bool? ProcessDiscoveredVMS { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"bcc",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IAlertTargetIdNameType1) })]
        System.Collections.Generic.List<Commvault.Powershell.Models.IAlertTargetIdNameType1> RecipientBcc { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"cc",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IAlertTargetIdNameType1) })]
        System.Collections.Generic.List<Commvault.Powershell.Models.IAlertTargetIdNameType1> RecipientCc { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"to",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IAlertTargetIdNameType1) })]
        System.Collections.Generic.List<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,
        Read = true,
        Create = true,
        Update = true,
        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>Flag indicating the functionality to send individual notifications</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Flag indicating the functionality to send individual notifications",
        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,
        Read = true,
        Create = true,
        Update = true,
        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,
        Read = true,
        Create = true,
        Update = true,
        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,
        Read = true,
        Create = true,
        Update = true,
        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,
        Read = true,
        Create = true,
        Update = true,
        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,
        Read = true,
        Create = true,
        Update = true,
        Description = @"the message template for the webhook notification",
        SerializedName = @"webhook",
        PossibleTypes = new [] { typeof(string) })]
        string TemplateWebhook { get; set; }
        /// <summary>
        /// the template for the workflow input entries values (empty value means the configured workflow does not need any inputs
        /// value)
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"the template for the workflow input entries values (empty value means the configured workflow does not need any inputs value)",
        SerializedName = @"workflowInputDetails",
        PossibleTypes = new [] { typeof(string) })]
        string TemplateWorkflowInputDetails { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        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,
        Read = true,
        Create = true,
        Update = true,
        Description = @"List of rule groups",
        SerializedName = @"ruleGroups",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.ITokenRuleGroup) })]
        System.Collections.Generic.List<Commvault.Powershell.Models.ITokenRuleGroup> TokenRuleGroups { get; set; }
        /// <summary>
        /// id of the client on which the workflow runs (zero value means it can run on any workflow engine)
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"id of the client on which the workflow runs (zero value means it can run on any workflow engine)",
        SerializedName = @"clientId",
        PossibleTypes = new [] { typeof(long) })]
        long? WorkflowClientId { get; set; }
        /// <summary>
        /// name of the client on which the workflow runs (empty value means it can run on any workflow engine)
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"name of the client on which the workflow runs (empty value means it can run on any workflow engine)",
        SerializedName = @"clientName",
        PossibleTypes = new [] { typeof(string) })]
        string WorkflowClientName { get; set; }
        /// <summary>id of the workflow which runs when the alert is triggered</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"id of the workflow which runs when the alert is triggered",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(long) })]
        long? WorkflowId { get; set; }
        /// <summary>name of the workflow which runs when the alert is triggered</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"name of the workflow which runs when the alert is triggered",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string WorkflowName { get; set; }

    }
    /// AlertDefinitionsEdit
    internal partial interface IAlertDefinitionsEditInternal

    {
        /// <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; }

        System.Collections.Generic.List<string> AlertTargetSendAlertTo { get; set; }
        /// <summary>AlertDefinitionsAssociations</summary>
        System.Collections.Generic.List<Commvault.Powershell.Models.IAlertAssociationIdNameType1> Associations { get; set; }
        /// <summary>
        /// Allows adding to, overwriting and deleting existing alert associations. default is adding to existing alert associations
        /// </summary>
        string AssociationsOperationType { get; set; }
        /// <summary>List of alert criteria</summary>
        System.Collections.Generic.List<Commvault.Powershell.Models.IAlertCriteriaIdName1> CriteriaList { get; set; }

        Commvault.Powershell.Models.IEventCriteriaDetails EventCriteriaDetails { get; set; }

        System.Collections.Generic.List<Commvault.Powershell.Models.IConditionDetails> EventCriterionDetailConditions { get; set; }
        /// <summary>Alert criteria name</summary>
        string EventCriterionDetailCriteriaName { get; set; }
        /// <summary>Integer value for the operation type between conditions</summary>
        long? EventCriterionDetailOpBetweenConditions { get; set; }
        /// <summary>Only applicable on Global CommCells</summary>
        Commvault.Powershell.Models.IGlobalConfigInfo GlobalConfigInfo { get; set; }
        /// <summary>
        /// Decides whether the global configuration should be applied to all the Service commcells, including the newly created ones
        /// </summary>
        bool? GlobalConfigInfoApplyOnAllCommCells { get; set; }
        /// <summary>List of Service CommCells where the global configuration is applied</summary>
        System.Collections.Generic.List<Commvault.Powershell.Models.IGlobalConfigCommcellInfo> GlobalConfigInfoCommcells { get; set; }

        string GlobalConfigInfoId { get; set; }
        /// <summary>Indicates whether global configuration deletion has been started.</summary>
        bool? GlobalConfigInfoIsMarkedForDeletion { get; set; }

        string GlobalConfigInfoName { get; set; }
        /// <summary>The entity level at which the config is applied.</summary>
        string GlobalConfigInfoScope { get; set; }
        /// <summary>CommCellEntityCache filter query string used for filtering the scope</summary>
        string GlobalConfigInfoScopeFilterQuery { get; set; }

        string GlobalConfigInfoStatus { get; set; }

        long? LocaleId { get; set; }

        string LocaleName { get; set; }
        /// <summary>The new name of the alert definition</summary>
        string NewName { get; set; }
        /// <summary>
        /// Flag indicating the functionality to send individual notifications for each discovered virtual machine
        /// </summary>
        bool? ProcessDiscoveredVMS { get; set; }

        System.Collections.Generic.List<Commvault.Powershell.Models.IAlertTargetIdNameType1> RecipientBcc { get; set; }

        System.Collections.Generic.List<Commvault.Powershell.Models.IAlertTargetIdNameType1> RecipientCc { get; set; }

        System.Collections.Generic.List<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>Flag indicating the functionality to send individual notifications</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>WorkflowEntity</summary>
        Commvault.Powershell.Models.IWorkflowEntity TemplateWorkflow { get; set; }
        /// <summary>
        /// the template for the workflow input entries values (empty value means the configured workflow does not need any inputs
        /// value)
        /// </summary>
        string TemplateWorkflowInputDetails { get; set; }
        /// <summary>AlertDefinitionsTemplate</summary>
        Commvault.Powershell.Models.IAlertDefinitionsTemplate Templates { get; set; }

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

        Commvault.Powershell.Models.ITokenRuleGroups Tokens { get; set; }
        /// <summary>
        /// id of the client on which the workflow runs (zero value means it can run on any workflow engine)
        /// </summary>
        long? WorkflowClientId { get; set; }
        /// <summary>
        /// name of the client on which the workflow runs (empty value means it can run on any workflow engine)
        /// </summary>
        string WorkflowClientName { get; set; }
        /// <summary>id of the workflow which runs when the alert is triggered</summary>
        long? WorkflowId { get; set; }
        /// <summary>name of the workflow which runs when the alert is triggered</summary>
        string WorkflowName { get; set; }

    }
}