generated/api/Models/ModifyFailoverGroupRequest.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>Modify failover group request</summary>
    public partial class ModifyFailoverGroupRequest :
        Commvault.Powershell.Models.IModifyFailoverGroupRequest,
        Commvault.Powershell.Models.IModifyFailoverGroupRequestInternal
    {

        /// <summary>Backing field for <see cref="ArrayReplicationPairs" /> property.</summary>
        private Commvault.Powershell.Models.IFailoverGroupArrayReplicationPair[] _arrayReplicationPairs;

        /// <summary>List of all array replication pairs for failover group</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IFailoverGroupArrayReplicationPair[] ArrayReplicationPairs { get => this._arrayReplicationPairs; set => this._arrayReplicationPairs = value; }

        /// <summary>Internal Acessors for RecoveryTarget</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IModifyFailoverGroupRequestInternal.RecoveryTarget { get => (this._recoveryTarget = this._recoveryTarget ?? new Commvault.Powershell.Models.IdName()); set { {_recoveryTarget = value;} } }

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

        /// <summary>Whether to continue to next priority on DR job failure</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? ContinueDrOnFailure { get => this._continueDrOnFailure; set => this._continueDrOnFailure = value; }

        /// <summary>Backing field for <see cref="EsxServerMappings" /> property.</summary>
        private Commvault.Powershell.Models.IEsxServerMapping[] _esxServerMappings;

        /// <summary>The list of all ESX server mappings</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IEsxServerMapping[] EsxServerMappings { get => this._esxServerMappings; set => this._esxServerMappings = value; }

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

        /// <summary>Whether a user approval is required for DR operations</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? IsApprovalRequired { get => this._isApprovalRequired; set => this._isApprovalRequired = value; }

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

        /// <summary>Failover Group name</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string Name { get => this._name; set => this._name = value; }

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

        /// <summary>The interval between DR operations of different priorities</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? PriorityIntervalInMinutes { get => this._priorityIntervalInMinutes; set => this._priorityIntervalInMinutes = value; }

        /// <summary>Backing field for <see cref="RecoveryTarget" /> property.</summary>
        private Commvault.Powershell.Models.IIdName _recoveryTarget;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IIdName RecoveryTarget { get => (this._recoveryTarget = this._recoveryTarget ?? new Commvault.Powershell.Models.IdName()); set => this._recoveryTarget = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? RecoveryTargetId { get => ((Commvault.Powershell.Models.IIdNameInternal)RecoveryTarget).Id; set => ((Commvault.Powershell.Models.IIdNameInternal)RecoveryTarget).Id = value ?? default(long); }

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

        /// <summary>Backing field for <see cref="ReplicationPairs" /> property.</summary>
        private Commvault.Powershell.Models.IFailoverGroupReplicationPair[] _replicationPairs;

        /// <summary>List of all replication pairs that are part of the failover group</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IFailoverGroupReplicationPair[] ReplicationPairs { get => this._replicationPairs; set => this._replicationPairs = value; }

        /// <summary>Backing field for <see cref="Script" /> property.</summary>
        private Commvault.Powershell.Models.IReplicationGroupScript _script;

        /// <summary>Pre/post failover and failback scripts at group level</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IReplicationGroupScript Script { get => (this._script = this._script ?? new Commvault.Powershell.Models.ReplicationGroupScript()); set => this._script = value; }

        /// <summary>Backing field for <see cref="UsersToNotify" /> property.</summary>
        private Commvault.Powershell.Models.IIdNameDisplayNameCompany[] _usersToNotify;

        /// <summary>Users to notify/for approval of DR operations</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IIdNameDisplayNameCompany[] UsersToNotify { get => this._usersToNotify; set => this._usersToNotify = value; }

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

        }
    }
    /// Modify failover group request
    public partial interface IModifyFailoverGroupRequest :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        /// <summary>List of all array replication pairs for failover group</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"List of all array replication pairs for failover group",
        SerializedName = @"arrayReplicationPairs",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IFailoverGroupArrayReplicationPair) })]
        Commvault.Powershell.Models.IFailoverGroupArrayReplicationPair[] ArrayReplicationPairs { get; set; }
        /// <summary>Whether to continue to next priority on DR job failure</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Whether to continue to next priority on DR job failure",
        SerializedName = @"continueDROnFailure",
        PossibleTypes = new [] { typeof(bool) })]
        bool? ContinueDrOnFailure { get; set; }
        /// <summary>The list of all ESX server mappings</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The list of all ESX server mappings",
        SerializedName = @"esxServerMappings",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IEsxServerMapping) })]
        Commvault.Powershell.Models.IEsxServerMapping[] EsxServerMappings { get; set; }
        /// <summary>Whether a user approval is required for DR operations</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Whether a user approval is required for DR operations",
        SerializedName = @"isApprovalRequired",
        PossibleTypes = new [] { typeof(bool) })]
        bool? IsApprovalRequired { get; set; }
        /// <summary>Failover Group name</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Failover Group name",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string Name { get; set; }
        /// <summary>The interval between DR operations of different priorities</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The interval between DR operations of different priorities",
        SerializedName = @"priorityIntervalInMinutes",
        PossibleTypes = new [] { typeof(long) })]
        long? PriorityIntervalInMinutes { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string RecoveryTargetName { get; set; }
        /// <summary>List of all replication pairs that are part of the failover group</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"List of all replication pairs that are part of the failover group",
        SerializedName = @"replicationPairs",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IFailoverGroupReplicationPair) })]
        Commvault.Powershell.Models.IFailoverGroupReplicationPair[] ReplicationPairs { get; set; }
        /// <summary>Pre/post failover and failback scripts at group level</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Pre/post failover and failback scripts at group level",
        SerializedName = @"script",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IReplicationGroupScript) })]
        Commvault.Powershell.Models.IReplicationGroupScript Script { get; set; }
        /// <summary>Users to notify/for approval of DR operations</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Users to notify/for approval of DR operations",
        SerializedName = @"usersToNotify",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IIdNameDisplayNameCompany) })]
        Commvault.Powershell.Models.IIdNameDisplayNameCompany[] UsersToNotify { get; set; }

    }
    /// Modify failover group request
    internal partial interface IModifyFailoverGroupRequestInternal

    {
        /// <summary>List of all array replication pairs for failover group</summary>
        Commvault.Powershell.Models.IFailoverGroupArrayReplicationPair[] ArrayReplicationPairs { get; set; }
        /// <summary>Whether to continue to next priority on DR job failure</summary>
        bool? ContinueDrOnFailure { get; set; }
        /// <summary>The list of all ESX server mappings</summary>
        Commvault.Powershell.Models.IEsxServerMapping[] EsxServerMappings { get; set; }
        /// <summary>Whether a user approval is required for DR operations</summary>
        bool? IsApprovalRequired { get; set; }
        /// <summary>Failover Group name</summary>
        string Name { get; set; }
        /// <summary>The interval between DR operations of different priorities</summary>
        long? PriorityIntervalInMinutes { get; set; }

        Commvault.Powershell.Models.IIdName RecoveryTarget { get; set; }

        long? RecoveryTargetId { get; set; }

        string RecoveryTargetName { get; set; }
        /// <summary>List of all replication pairs that are part of the failover group</summary>
        Commvault.Powershell.Models.IFailoverGroupReplicationPair[] ReplicationPairs { get; set; }
        /// <summary>Pre/post failover and failback scripts at group level</summary>
        Commvault.Powershell.Models.IReplicationGroupScript Script { get; set; }
        /// <summary>Users to notify/for approval of DR operations</summary>
        Commvault.Powershell.Models.IIdNameDisplayNameCompany[] UsersToNotify { get; set; }

    }
}