generated/api/Models/MigrationGroupDetails.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>MigrationGroupDetailsResp</summary>
    public partial class MigrationGroupDetails :
        Commvault.Powershell.Models.IMigrationGroupDetails,
        Commvault.Powershell.Models.IMigrationGroupDetailsInternal
    {

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

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

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

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

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

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

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

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

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

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

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

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

        /// <summary>Internal Acessors for Credentials</summary>
        Commvault.Powershell.Models.ICredentials Commvault.Powershell.Models.IMigrationGroupDetailsInternal.Credentials { get => (this._credentials = this._credentials ?? new Commvault.Powershell.Models.Credentials()); set { {_credentials = value;} } }

        /// <summary>Internal Acessors for CredentialsDestinationCredentials</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IMigrationGroupDetailsInternal.CredentialsDestinationCredentials { get => ((Commvault.Powershell.Models.ICredentialsInternal)Credentials).DestinationCredentials; set => ((Commvault.Powershell.Models.ICredentialsInternal)Credentials).DestinationCredentials = value; }

        /// <summary>Internal Acessors for CredentialsSourceCredentials</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IMigrationGroupDetailsInternal.CredentialsSourceCredentials { get => ((Commvault.Powershell.Models.ICredentialsInternal)Credentials).SourceCredentials; set => ((Commvault.Powershell.Models.ICredentialsInternal)Credentials).SourceCredentials = value; }

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

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

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

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

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

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

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

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

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

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

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

        /// <summary>Internal Acessors for UpdateFrequency</summary>
        Commvault.Powershell.Models.IPlanPattern Commvault.Powershell.Models.IMigrationGroupDetailsInternal.UpdateFrequency { get => (this._updateFrequency = this._updateFrequency ?? new Commvault.Powershell.Models.PlanPattern()); set { {_updateFrequency = value;} } }

        /// <summary>Backing field for <see cref="Credentials" /> property.</summary>
        private Commvault.Powershell.Models.ICredentials _credentials;

        /// <summary>Credentials for source client and destination client</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.ICredentials Credentials { get => (this._credentials = this._credentials ?? new Commvault.Powershell.Models.Credentials()); set => this._credentials = value; }

        /// <summary>Backing field for <see cref="DestinationAccessNode" /> property.</summary>
        private Commvault.Powershell.Models.IAccessNodes[] _destinationAccessNode;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IAccessNodes[] DestinationAccessNode { get => this._destinationAccessNode; set => this._destinationAccessNode = value; }

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

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

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

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

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

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

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

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

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

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

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

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

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? DestinationCredentialsId { get => ((Commvault.Powershell.Models.ICredentialsInternal)Credentials).DestinationCredentialsId; set => ((Commvault.Powershell.Models.ICredentialsInternal)Credentials).DestinationCredentialsId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string DestinationCredentialsName { get => ((Commvault.Powershell.Models.ICredentialsInternal)Credentials).DestinationCredentialsName; set => ((Commvault.Powershell.Models.ICredentialsInternal)Credentials).DestinationCredentialsName = value ?? null; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? MigrationGroupState { get => this._migrationGroupState; set => this._migrationGroupState = value; }

        /// <summary>Backing field for <see cref="MigrationMonitors" /> property.</summary>
        private Commvault.Powershell.Models.IMigrationMonitor[] _migrationMonitors;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IMigrationMonitor[] MigrationMonitors { get => this._migrationMonitors; set => this._migrationMonitors = value; }

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

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

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

        /// <summary>ReplicationStatus</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string MigrationStatus { get => this._migrationStatus; set => this._migrationStatus = value; }

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

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

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

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

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

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

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

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

        /// <summary>Backing field for <see cref="SourceAccessNode" /> property.</summary>
        private Commvault.Powershell.Models.IAccessNodes[] _sourceAccessNode;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IAccessNodes[] SourceAccessNode { get => this._sourceAccessNode; set => this._sourceAccessNode = value; }

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

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

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

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

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

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

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

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

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

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

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

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

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? SourceCredentialsId { get => ((Commvault.Powershell.Models.ICredentialsInternal)Credentials).SourceCredentialsId; set => ((Commvault.Powershell.Models.ICredentialsInternal)Credentials).SourceCredentialsId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SourceCredentialsName { get => ((Commvault.Powershell.Models.ICredentialsInternal)Credentials).SourceCredentialsName; set => ((Commvault.Powershell.Models.ICredentialsInternal)Credentials).SourceCredentialsName = value ?? null; }

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

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

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

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

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

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

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

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

        /// <summary>Backing field for <see cref="UpdateFrequency" /> property.</summary>
        private Commvault.Powershell.Models.IPlanPattern _updateFrequency;

        /// <summary>
        /// If updating pattern, the value which needs to be retained also needs to be provided along with the updated value
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IPlanPattern UpdateFrequency { get => (this._updateFrequency = this._updateFrequency ?? new Commvault.Powershell.Models.PlanPattern()); set => this._updateFrequency = value; }

        /// <summary>Frequency in days</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? UpdateFrequencyDailyFrequency { get => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).DailyFrequency; set => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).DailyFrequency = value ?? default(long); }

        /// <summary>
        /// Frequency in hours per day. Precedence is hourly, daily, weekly and monthly, in that order.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? UpdateFrequencyHourlyFrequency { get => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).HourlyFrequency; set => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).HourlyFrequency = value ?? default(long); }

        /// <summary>Frequency in minutes</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? UpdateFrequencyMinuteFrequency { get => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).MinuteFrequency; set => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).MinuteFrequency = value ?? default(long); }

        /// <summary>Frequency in months. Only for incremental backup frequency.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? UpdateFrequencyMonthlyFrequency { get => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).MonthlyFrequency; set => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).MonthlyFrequency = value ?? default(long); }

        /// <summary>Only available for incremental backup frequency</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? UpdateFrequencyMonthlyFrequencyDayOfMonth { get => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).MonthlyFrequencyDayOfMonth; set => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).MonthlyFrequencyDayOfMonth = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string UpdateFrequencyMonthlyFrequencyDayOfWeek { get => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).MonthlyFrequencyDayOfWeek; set => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).MonthlyFrequencyDayOfWeek = value ?? null; }

        /// <summary>Specific week of a month</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string UpdateFrequencyMonthlyFrequencyWeekOfMonth { get => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).MonthlyFrequencyWeekOfMonth; set => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).MonthlyFrequencyWeekOfMonth = value ?? null; }

        /// <summary>
        /// Time in seconds from the beginning of the day when the backup starts. This is a mandatory field for daily, weekly, monthly,
        /// yearly frequencies
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? UpdateFrequencyStartTime { get => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).StartTime; set => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).StartTime = value ?? default(long); }

        /// <summary>Frequency in weeks. Only for incremental backup frequency.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? UpdateFrequencyWeeklyFrequency { get => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).WeeklyFrequency; set => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).WeeklyFrequency = value ?? default(long); }

        /// <summary>Days of the week for weekly frequency</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string[] UpdateFrequencyWeeklyFrequencyDays { get => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).WeeklyFrequencyDays; set => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).WeeklyFrequencyDays = value ?? null /* arrayOf */; }

        /// <summary>Only available for incremental backup frequency</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? UpdateFrequencyYearlyFrequencyDayOfMonth { get => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).YearlyFrequencyDayOfMonth; set => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).YearlyFrequencyDayOfMonth = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string UpdateFrequencyYearlyFrequencyDayOfWeek { get => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).YearlyFrequencyDayOfWeek; set => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).YearlyFrequencyDayOfWeek = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string UpdateFrequencyYearlyFrequencyMonthOfYear { get => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).YearlyFrequencyMonthOfYear; set => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).YearlyFrequencyMonthOfYear = value ?? null; }

        /// <summary>Specific week of a month</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string UpdateFrequencyYearlyFrequencyWeekOfMonth { get => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).YearlyFrequencyWeekOfMonth; set => ((Commvault.Powershell.Models.IPlanPatternInternal)UpdateFrequency).YearlyFrequencyWeekOfMonth = value ?? null; }

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

        }
    }
    /// MigrationGroupDetailsResp
    public partial interface IMigrationGroupDetails :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"backupJobId",
        PossibleTypes = new [] { typeof(long) })]
        long? BackupJobId { get; set; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"migrationSize",
        PossibleTypes = new [] { typeof(long) })]
        long? MigrationSize { get; set; }
        /// <summary>ReplicationStatus</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"ReplicationStatus",
        SerializedName = @"migrationStatus",
        PossibleTypes = new [] { typeof(string) })]
        string MigrationStatus { get; set; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string SourceSubclientName { get; set; }
        /// <summary>Frequency in days</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Frequency in days",
        SerializedName = @"dailyFrequency",
        PossibleTypes = new [] { typeof(long) })]
        long? UpdateFrequencyDailyFrequency { get; set; }
        /// <summary>
        /// Frequency in hours per day. Precedence is hourly, daily, weekly and monthly, in that order.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Frequency in hours per day. Precedence is hourly, daily, weekly and monthly, in that order.",
        SerializedName = @"hourlyFrequency",
        PossibleTypes = new [] { typeof(long) })]
        long? UpdateFrequencyHourlyFrequency { get; set; }
        /// <summary>Frequency in minutes</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Frequency in minutes",
        SerializedName = @"minuteFrequency",
        PossibleTypes = new [] { typeof(long) })]
        long? UpdateFrequencyMinuteFrequency { get; set; }
        /// <summary>Frequency in months. Only for incremental backup frequency.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Frequency in months. Only for incremental backup frequency.",
        SerializedName = @"monthlyFrequency",
        PossibleTypes = new [] { typeof(long) })]
        long? UpdateFrequencyMonthlyFrequency { get; set; }
        /// <summary>Only available for incremental backup frequency</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Only available for incremental backup frequency",
        SerializedName = @"monthlyFrequencyDayOfMonth",
        PossibleTypes = new [] { typeof(long) })]
        long? UpdateFrequencyMonthlyFrequencyDayOfMonth { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"monthlyFrequencyDayOfWeek",
        PossibleTypes = new [] { typeof(string) })]
        string UpdateFrequencyMonthlyFrequencyDayOfWeek { get; set; }
        /// <summary>Specific week of a month</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Specific week of a month",
        SerializedName = @"monthlyFrequencyWeekOfMonth",
        PossibleTypes = new [] { typeof(string) })]
        string UpdateFrequencyMonthlyFrequencyWeekOfMonth { get; set; }
        /// <summary>
        /// Time in seconds from the beginning of the day when the backup starts. This is a mandatory field for daily, weekly, monthly,
        /// yearly frequencies
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Time in seconds from the beginning of the day when the backup starts. This is a mandatory field for daily, weekly, monthly, yearly frequencies",
        SerializedName = @"startTime",
        PossibleTypes = new [] { typeof(long) })]
        long? UpdateFrequencyStartTime { get; set; }
        /// <summary>Frequency in weeks. Only for incremental backup frequency.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Frequency in weeks. Only for incremental backup frequency.",
        SerializedName = @"weeklyFrequency",
        PossibleTypes = new [] { typeof(long) })]
        long? UpdateFrequencyWeeklyFrequency { get; set; }
        /// <summary>Days of the week for weekly frequency</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Days of the week for weekly frequency",
        SerializedName = @"weeklyFrequencyDays",
        PossibleTypes = new [] { typeof(string) })]
        string[] UpdateFrequencyWeeklyFrequencyDays { get; set; }
        /// <summary>Only available for incremental backup frequency</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Only available for incremental backup frequency",
        SerializedName = @"yearlyFrequencyDayOfMonth",
        PossibleTypes = new [] { typeof(long) })]
        long? UpdateFrequencyYearlyFrequencyDayOfMonth { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"yearlyFrequencyMonthOfYear",
        PossibleTypes = new [] { typeof(string) })]
        string UpdateFrequencyYearlyFrequencyMonthOfYear { get; set; }
        /// <summary>Specific week of a month</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Specific week of a month",
        SerializedName = @"yearlyFrequencyWeekOfMonth",
        PossibleTypes = new [] { typeof(string) })]
        string UpdateFrequencyYearlyFrequencyWeekOfMonth { get; set; }

    }
    /// MigrationGroupDetailsResp
    internal partial interface IMigrationGroupDetailsInternal

    {
        long? BackupJobId { get; set; }

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

        long? BackupScheduleId { get; set; }

        string BackupScheduleName { get; set; }

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

        long? BackupSchedulePolicyId { get; set; }

        string BackupSchedulePolicyName { get; set; }
        /// <summary>Credentials for source client and destination client</summary>
        Commvault.Powershell.Models.ICredentials Credentials { get; set; }

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

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

        Commvault.Powershell.Models.IAccessNodes[] DestinationAccessNode { get; set; }

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

        long? DestinationApplicationId { get; set; }

        string DestinationApplicationName { get; set; }

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

        long? DestinationBackupsetId { get; set; }

        string DestinationBackupsetName { get; set; }

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

        long? DestinationClientId { get; set; }

        string DestinationClientName { get; set; }

        long? DestinationCredentialsId { get; set; }

        string DestinationCredentialsName { get; set; }

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

        long? DestinationInstanceId { get; set; }

        string DestinationInstanceName { get; set; }

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

        long? DestinationSubclientId { get; set; }

        string DestinationSubclientName { get; set; }

        string FailureReason { get; set; }

        string Failures { get; set; }

        long? LastSyncTime { get; set; }

        string MigrationGroupName { get; set; }

        bool? MigrationGroupState { get; set; }

        Commvault.Powershell.Models.IMigrationMonitor[] MigrationMonitors { get; set; }

        long? MigrationSize { get; set; }
        /// <summary>ReplicationStatus</summary>
        string MigrationStatus { get; set; }

        long? NumOfFiles { get; set; }

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

        long? RegionId { get; set; }

        string RegionName { get; set; }

        long? RestoreJobId { get; set; }

        Commvault.Powershell.Models.IAccessNodes[] SourceAccessNode { get; set; }

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

        long? SourceApplicationId { get; set; }

        string SourceApplicationName { get; set; }

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

        long? SourceBackupsetId { get; set; }

        string SourceBackupsetName { get; set; }

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

        long? SourceClientId { get; set; }

        string SourceClientName { get; set; }

        long? SourceCredentialsId { get; set; }

        string SourceCredentialsName { get; set; }

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

        long? SourceInstanceId { get; set; }

        string SourceInstanceName { get; set; }

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

        long? SourceSubclientId { get; set; }

        string SourceSubclientName { get; set; }
        /// <summary>
        /// If updating pattern, the value which needs to be retained also needs to be provided along with the updated value
        /// </summary>
        Commvault.Powershell.Models.IPlanPattern UpdateFrequency { get; set; }
        /// <summary>Frequency in days</summary>
        long? UpdateFrequencyDailyFrequency { get; set; }
        /// <summary>
        /// Frequency in hours per day. Precedence is hourly, daily, weekly and monthly, in that order.
        /// </summary>
        long? UpdateFrequencyHourlyFrequency { get; set; }
        /// <summary>Frequency in minutes</summary>
        long? UpdateFrequencyMinuteFrequency { get; set; }
        /// <summary>Frequency in months. Only for incremental backup frequency.</summary>
        long? UpdateFrequencyMonthlyFrequency { get; set; }
        /// <summary>Only available for incremental backup frequency</summary>
        long? UpdateFrequencyMonthlyFrequencyDayOfMonth { get; set; }

        string UpdateFrequencyMonthlyFrequencyDayOfWeek { get; set; }
        /// <summary>Specific week of a month</summary>
        string UpdateFrequencyMonthlyFrequencyWeekOfMonth { get; set; }
        /// <summary>
        /// Time in seconds from the beginning of the day when the backup starts. This is a mandatory field for daily, weekly, monthly,
        /// yearly frequencies
        /// </summary>
        long? UpdateFrequencyStartTime { get; set; }
        /// <summary>Frequency in weeks. Only for incremental backup frequency.</summary>
        long? UpdateFrequencyWeeklyFrequency { get; set; }
        /// <summary>Days of the week for weekly frequency</summary>
        string[] UpdateFrequencyWeeklyFrequencyDays { get; set; }
        /// <summary>Only available for incremental backup frequency</summary>
        long? UpdateFrequencyYearlyFrequencyDayOfMonth { get; set; }

        string UpdateFrequencyYearlyFrequencyDayOfWeek { get; set; }

        string UpdateFrequencyYearlyFrequencyMonthOfYear { get; set; }
        /// <summary>Specific week of a month</summary>
        string UpdateFrequencyYearlyFrequencyWeekOfMonth { get; set; }

    }
}