generated/api/Models/VMAppValidation.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>vmAppValidation</summary>
    public partial class VMAppValidation :
        Commvault.Powershell.Models.IVMAppValidation,
        Commvault.Powershell.Models.IVMAppValidationInternal
    {

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? BackupDestinationId { get => ((Commvault.Powershell.Models.IAppValidationSourceCopyInternal)Copy).BackupDestinationId; set => ((Commvault.Powershell.Models.IAppValidationSourceCopyInternal)Copy).BackupDestinationId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string BackupDestinationName { get => ((Commvault.Powershell.Models.IAppValidationSourceCopyInternal)Copy).BackupDestinationName; set => ((Commvault.Powershell.Models.IAppValidationSourceCopyInternal)Copy).BackupDestinationName = value ?? null; }

        /// <summary>Internal Acessors for Copy</summary>
        Commvault.Powershell.Models.IAppValidationSourceCopy Commvault.Powershell.Models.IVMAppValidationInternal.Copy { get => (this._copy = this._copy ?? new Commvault.Powershell.Models.AppValidationSourceCopy()); set { {_copy = value;} } }

        /// <summary>Internal Acessors for CopyBackupDestination</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IVMAppValidationInternal.CopyBackupDestination { get => ((Commvault.Powershell.Models.IAppValidationSourceCopyInternal)Copy).BackupDestination; set => ((Commvault.Powershell.Models.IAppValidationSourceCopyInternal)Copy).BackupDestination = value; }

        /// <summary>Internal Acessors for CustomValidationScript</summary>
        Commvault.Powershell.Models.IAppValidationScript Commvault.Powershell.Models.IVMAppValidationInternal.CustomValidationScript { get => (this._customValidationScript = this._customValidationScript ?? new Commvault.Powershell.Models.AppValidationScript()); set { {_customValidationScript = value;} } }

        /// <summary>Internal Acessors for CustomValidationScriptUnix</summary>
        Commvault.Powershell.Models.IValidationScript Commvault.Powershell.Models.IVMAppValidationInternal.CustomValidationScriptUnix { get => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).Unix; set => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).Unix = value; }

        /// <summary>Internal Acessors for CustomValidationScriptWindows</summary>
        Commvault.Powershell.Models.IValidationScript Commvault.Powershell.Models.IVMAppValidationInternal.CustomValidationScriptWindows { get => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).Windows; set => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).Windows = value; }

        /// <summary>Internal Acessors for GuestCredentials</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo Commvault.Powershell.Models.IVMAppValidationInternal.GuestCredentials { get => (this._guestCredentials = this._guestCredentials ?? new Commvault.Powershell.Models.GuestCredentialInfo()); set { {_guestCredentials = value;} } }

        /// <summary>Internal Acessors for GuestCredentialsCredentials</summary>
        Commvault.Powershell.Models.IUserNamePassword Commvault.Powershell.Models.IVMAppValidationInternal.GuestCredentialsCredentials { get => ((Commvault.Powershell.Models.IGuestCredentialInfoInternal)GuestCredentials).Credentials; set => ((Commvault.Powershell.Models.IGuestCredentialInfoInternal)GuestCredentials).Credentials = value; }

        /// <summary>Internal Acessors for GuestCredentialsSavedCredentials</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IVMAppValidationInternal.GuestCredentialsSavedCredentials { get => ((Commvault.Powershell.Models.IGuestCredentialInfoInternal)GuestCredentials).SavedCredentials; set => ((Commvault.Powershell.Models.IGuestCredentialInfoInternal)GuestCredentials).SavedCredentials = value; }

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

        /// <summary>Internal Acessors for Schedule</summary>
        Commvault.Powershell.Models.IValidationScheduleObject Commvault.Powershell.Models.IVMAppValidationInternal.Schedule { get => (this._schedule = this._schedule ?? new Commvault.Powershell.Models.ValidationScheduleObject()); set { {_schedule = value;} } }

        /// <summary>Internal Acessors for UnixUncCredentials</summary>
        Commvault.Powershell.Models.IUserNamePassword Commvault.Powershell.Models.IVMAppValidationInternal.UnixUncCredentials { get => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).UnixUncCredentials; set => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).UnixUncCredentials = value; }

        /// <summary>Internal Acessors for UnixUncSavedCredentials</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IVMAppValidationInternal.UnixUncSavedCredentials { get => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).UnixUncSavedCredentials; set => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).UnixUncSavedCredentials = value; }

        /// <summary>Internal Acessors for WindowUncCredentials</summary>
        Commvault.Powershell.Models.IUserNamePassword Commvault.Powershell.Models.IVMAppValidationInternal.WindowUncCredentials { get => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).WindowUncCredentials; set => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).WindowUncCredentials = value; }

        /// <summary>Internal Acessors for WindowUncSavedCredentials</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IVMAppValidationInternal.WindowUncSavedCredentials { get => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).WindowUncSavedCredentials; set => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).WindowUncSavedCredentials = value; }

        /// <summary>Backing field for <see cref="Copy" /> property.</summary>
        private Commvault.Powershell.Models.IAppValidationSourceCopy _copy;

        /// <summary>Application validation source copy details</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IAppValidationSourceCopy Copy { get => (this._copy = this._copy ?? new Commvault.Powershell.Models.AppValidationSourceCopy()); set => this._copy = value; }

        /// <summary>Id of the source copy</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? CopyId { get => ((Commvault.Powershell.Models.IAppValidationSourceCopyInternal)Copy).Id; set => ((Commvault.Powershell.Models.IAppValidationSourceCopyInternal)Copy).Id = value ?? default(long); }

        /// <summary>Is this an active backup destination?</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? CopyIsActive { get => ((Commvault.Powershell.Models.IAppValidationSourceCopyInternal)Copy).IsActive; set => ((Commvault.Powershell.Models.IAppValidationSourceCopyInternal)Copy).IsActive = value ?? default(bool); }

        /// <summary>Is this a snap copy?</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? CopyIsSnapCopy { get => ((Commvault.Powershell.Models.IAppValidationSourceCopyInternal)Copy).IsSnapCopy; set => ((Commvault.Powershell.Models.IAppValidationSourceCopyInternal)Copy).IsSnapCopy = value ?? default(bool); }

        /// <summary>Name of the source copy</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string CopyName { get => ((Commvault.Powershell.Models.IAppValidationSourceCopyInternal)Copy).Name; set => ((Commvault.Powershell.Models.IAppValidationSourceCopyInternal)Copy).Name = value ?? null; }

        /// <summary>Order of backup destinaion copy created in storage policy</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? CopyPrecedence { get => ((Commvault.Powershell.Models.IAppValidationSourceCopyInternal)Copy).CopyPrecedence; set => ((Commvault.Powershell.Models.IAppValidationSourceCopyInternal)Copy).CopyPrecedence = value ?? default(long); }

        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string CredentialsName { get => ((Commvault.Powershell.Models.IGuestCredentialInfoInternal)GuestCredentials).CredentialsName; set => ((Commvault.Powershell.Models.IGuestCredentialInfoInternal)GuestCredentials).CredentialsName = value ?? null; }

        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string CredentialsPassword { get => ((Commvault.Powershell.Models.IGuestCredentialInfoInternal)GuestCredentials).CredentialsPassword; set => ((Commvault.Powershell.Models.IGuestCredentialInfoInternal)GuestCredentials).CredentialsPassword = value ?? null; }

        /// <summary>Backing field for <see cref="CustomValidationScript" /> property.</summary>
        private Commvault.Powershell.Models.IAppValidationScript _customValidationScript;

        /// <summary>Custom validation script to be used during VM backup validation</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IAppValidationScript CustomValidationScript { get => (this._customValidationScript = this._customValidationScript ?? new Commvault.Powershell.Models.AppValidationScript()); set => this._customValidationScript = value; }

        /// <summary>Backing field for <see cref="GuestCredentials" /> property.</summary>
        private Commvault.Powershell.Models.IGuestCredentialInfo _guestCredentials;

        /// <summary>guestCredentialInfo</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IGuestCredentialInfo GuestCredentials { get => (this._guestCredentials = this._guestCredentials ?? new Commvault.Powershell.Models.GuestCredentialInfo()); set => this._guestCredentials = value; }

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

        /// <summary>
        /// If true then validated VMs will be available until expiration time set on the recovery target
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? KeepValidatedVMSRunning { get => this._keepValidatedVMSRunning; set => this._keepValidatedVMSRunning = value; }

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

        /// <summary>Number of backup Validation Threads</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? MaximumNoOfThreads { get => this._maximumNoOfThreads; set => this._maximumNoOfThreads = 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; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? SavedCredentialsId { get => ((Commvault.Powershell.Models.IGuestCredentialInfoInternal)GuestCredentials).SavedCredentialsId; set => ((Commvault.Powershell.Models.IGuestCredentialInfoInternal)GuestCredentials).SavedCredentialsId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SavedCredentialsName { get => ((Commvault.Powershell.Models.IGuestCredentialInfoInternal)GuestCredentials).SavedCredentialsName; set => ((Commvault.Powershell.Models.IGuestCredentialInfoInternal)GuestCredentials).SavedCredentialsName = value ?? null; }

        /// <summary>Backing field for <see cref="Schedule" /> property.</summary>
        private Commvault.Powershell.Models.IValidationScheduleObject _schedule;

        /// <summary>Schedule for application validation for VM Group</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IValidationScheduleObject Schedule { get => (this._schedule = this._schedule ?? new Commvault.Powershell.Models.ValidationScheduleObject()); set => this._schedule = value; }

        /// <summary>Description for validation schedule</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string ScheduleDescription { get => ((Commvault.Powershell.Models.IValidationScheduleObjectInternal)Schedule).Description; set => ((Commvault.Powershell.Models.IValidationScheduleObjectInternal)Schedule).Description = value ?? null; }

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

        /// <summary>True if application validation schedule is enabled</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? ScheduleIsScheduleEnabled { get => ((Commvault.Powershell.Models.IValidationScheduleObjectInternal)Schedule).IsScheduleEnabled; set => ((Commvault.Powershell.Models.IValidationScheduleObjectInternal)Schedule).IsScheduleEnabled = value ?? default(bool); }

        /// <summary>Job Id for the application validation task. 0 if schedule is disabled</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? ScheduleTaskId { get => ((Commvault.Powershell.Models.IValidationScheduleObjectInternal)Schedule).TaskId; set => ((Commvault.Powershell.Models.IValidationScheduleObjectInternal)Schedule).TaskId = value ?? default(long); }

        /// <summary>Arguments for the script</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string UnixArguments { get => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).UnixArguments; set => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).UnixArguments = value ?? null; }

        /// <summary>Is the script disabled</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? UnixIsDisabled { get => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).UnixIsDisabled; set => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).UnixIsDisabled = value ?? default(bool); }

        /// <summary>True if the script is local</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? UnixIsLocal { get => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).UnixIsLocal; set => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).UnixIsLocal = value ?? default(bool); }

        /// <summary>Path for the validation script</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string UnixPath { get => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).UnixPath; set => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).UnixPath = value ?? null; }

        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string UnixUncCredentialsName { get => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).UnixUNCCredentialsName; set => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).UnixUNCCredentialsName = value ?? null; }

        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string UnixUncCredentialsPassword { get => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).UnixUNCCredentialsPassword; set => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).UnixUNCCredentialsPassword = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? UnixUncSavedCredentialsId { get => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).UnixUNCSavedCredentialsId; set => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).UnixUNCSavedCredentialsId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string UnixUncSavedCredentialsName { get => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).UnixUNCSavedCredentialsName; set => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).UnixUNCSavedCredentialsName = value ?? null; }

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

        /// <summary>Use Source VM ESX To Mount</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? UseSourceVMEsxToMount { get => this._useSourceVMEsxToMount; set => this._useSourceVMEsxToMount = value; }

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

        /// <summary>True if VM Backup validation is enabled</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? ValidateVMBackups { get => this._validateVMBackups; set => this._validateVMBackups = value; }

        /// <summary>Arguments for the script</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string WindowArguments { get => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).WindowArguments; set => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).WindowArguments = value ?? null; }

        /// <summary>Is the script disabled</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? WindowIsDisabled { get => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).WindowIsDisabled; set => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).WindowIsDisabled = value ?? default(bool); }

        /// <summary>True if the script is local</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? WindowIsLocal { get => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).WindowIsLocal; set => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).WindowIsLocal = value ?? default(bool); }

        /// <summary>Path for the validation script</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string WindowPath { get => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).WindowPath; set => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).WindowPath = value ?? null; }

        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string WindowsUncCredentialsName { get => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).WindowsUNCCredentialsName; set => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).WindowsUNCCredentialsName = value ?? null; }

        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string WindowsUncCredentialsPassword { get => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).WindowsUNCCredentialsPassword; set => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).WindowsUNCCredentialsPassword = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? WindowsUncSavedCredentialsId { get => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).WindowsUNCSavedCredentialsId; set => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).WindowsUNCSavedCredentialsId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string WindowsUncSavedCredentialsName { get => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).WindowsUNCSavedCredentialsName; set => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).WindowsUNCSavedCredentialsName = value ?? null; }

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

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string BackupDestinationName { get; set; }
        /// <summary>Id of the source copy</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Id of the source copy",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(long) })]
        long? CopyId { get; set; }
        /// <summary>Is this an active backup destination?</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Is this an active backup destination?",
        SerializedName = @"isActive",
        PossibleTypes = new [] { typeof(bool) })]
        bool? CopyIsActive { get; set; }
        /// <summary>Is this a snap copy?</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Is this a snap copy?",
        SerializedName = @"isSnapCopy",
        PossibleTypes = new [] { typeof(bool) })]
        bool? CopyIsSnapCopy { get; set; }
        /// <summary>Name of the source copy</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Name of the source copy",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string CopyName { get; set; }
        /// <summary>Order of backup destinaion copy created in storage policy</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Order of backup destinaion copy created in storage policy",
        SerializedName = @"copyPrecedence",
        PossibleTypes = new [] { typeof(long) })]
        long? CopyPrecedence { get; set; }
        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"username to access the network path",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string CredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"password to access the network path",
        SerializedName = @"password",
        PossibleTypes = new [] { typeof(string) })]
        string CredentialsPassword { get; set; }
        /// <summary>
        /// If true then validated VMs will be available until expiration time set on the recovery target
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"If true then validated VMs will be available until expiration time set on the recovery target",
        SerializedName = @"keepValidatedVMsRunning",
        PossibleTypes = new [] { typeof(bool) })]
        bool? KeepValidatedVMSRunning { get; set; }
        /// <summary>Number of backup Validation Threads</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Number of backup Validation Threads",
        SerializedName = @"maximumNoOfThreads",
        PossibleTypes = new [] { typeof(long) })]
        long? MaximumNoOfThreads { 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; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string SavedCredentialsName { get; set; }
        /// <summary>Description for validation schedule</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Description for validation schedule",
        SerializedName = @"description",
        PossibleTypes = new [] { typeof(string) })]
        string ScheduleDescription { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(long) })]
        long? ScheduleId { get; set; }
        /// <summary>True if application validation schedule is enabled</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if application validation schedule is enabled",
        SerializedName = @"isScheduleEnabled",
        PossibleTypes = new [] { typeof(bool) })]
        bool? ScheduleIsScheduleEnabled { get; set; }
        /// <summary>Job Id for the application validation task. 0 if schedule is disabled</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Job Id for the application validation task. 0 if schedule is disabled",
        SerializedName = @"taskId",
        PossibleTypes = new [] { typeof(long) })]
        long? ScheduleTaskId { get; set; }
        /// <summary>Arguments for the script</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Arguments for the script",
        SerializedName = @"arguments",
        PossibleTypes = new [] { typeof(string) })]
        string UnixArguments { get; set; }
        /// <summary>Is the script disabled</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Is the script disabled",
        SerializedName = @"isDisabled",
        PossibleTypes = new [] { typeof(bool) })]
        bool? UnixIsDisabled { get; set; }
        /// <summary>True if the script is local</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if the script is local",
        SerializedName = @"isLocal",
        PossibleTypes = new [] { typeof(bool) })]
        bool? UnixIsLocal { get; set; }
        /// <summary>Path for the validation script</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Path for the validation script",
        SerializedName = @"path",
        PossibleTypes = new [] { typeof(string) })]
        string UnixPath { get; set; }
        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"username to access the network path",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string UnixUncCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"password to access the network path",
        SerializedName = @"password",
        PossibleTypes = new [] { typeof(string) })]
        string UnixUncCredentialsPassword { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string UnixUncSavedCredentialsName { get; set; }
        /// <summary>Use Source VM ESX To Mount</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Use Source VM ESX To Mount",
        SerializedName = @"useSourceVmESXToMount",
        PossibleTypes = new [] { typeof(bool) })]
        bool? UseSourceVMEsxToMount { get; set; }
        /// <summary>True if VM Backup validation is enabled</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if VM Backup validation is enabled",
        SerializedName = @"validateVMBackups",
        PossibleTypes = new [] { typeof(bool) })]
        bool? ValidateVMBackups { get; set; }
        /// <summary>Arguments for the script</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Arguments for the script",
        SerializedName = @"arguments",
        PossibleTypes = new [] { typeof(string) })]
        string WindowArguments { get; set; }
        /// <summary>Is the script disabled</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Is the script disabled",
        SerializedName = @"isDisabled",
        PossibleTypes = new [] { typeof(bool) })]
        bool? WindowIsDisabled { get; set; }
        /// <summary>True if the script is local</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if the script is local",
        SerializedName = @"isLocal",
        PossibleTypes = new [] { typeof(bool) })]
        bool? WindowIsLocal { get; set; }
        /// <summary>Path for the validation script</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Path for the validation script",
        SerializedName = @"path",
        PossibleTypes = new [] { typeof(string) })]
        string WindowPath { get; set; }
        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"username to access the network path",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string WindowsUncCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"password to access the network path",
        SerializedName = @"password",
        PossibleTypes = new [] { typeof(string) })]
        string WindowsUncCredentialsPassword { get; set; }

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

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

    }
    /// vmAppValidation
    internal partial interface IVMAppValidationInternal

    {
        long? BackupDestinationId { get; set; }

        string BackupDestinationName { get; set; }
        /// <summary>Application validation source copy details</summary>
        Commvault.Powershell.Models.IAppValidationSourceCopy Copy { get; set; }

        Commvault.Powershell.Models.IIdName CopyBackupDestination { get; set; }
        /// <summary>Id of the source copy</summary>
        long? CopyId { get; set; }
        /// <summary>Is this an active backup destination?</summary>
        bool? CopyIsActive { get; set; }
        /// <summary>Is this a snap copy?</summary>
        bool? CopyIsSnapCopy { get; set; }
        /// <summary>Name of the source copy</summary>
        string CopyName { get; set; }
        /// <summary>Order of backup destinaion copy created in storage policy</summary>
        long? CopyPrecedence { get; set; }
        /// <summary>username to access the network path</summary>
        string CredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        string CredentialsPassword { get; set; }
        /// <summary>Custom validation script to be used during VM backup validation</summary>
        Commvault.Powershell.Models.IAppValidationScript CustomValidationScript { get; set; }
        /// <summary>ValidationScript</summary>
        Commvault.Powershell.Models.IValidationScript CustomValidationScriptUnix { get; set; }
        /// <summary>ValidationScript</summary>
        Commvault.Powershell.Models.IValidationScript CustomValidationScriptWindows { get; set; }
        /// <summary>guestCredentialInfo</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo GuestCredentials { get; set; }

        Commvault.Powershell.Models.IUserNamePassword GuestCredentialsCredentials { get; set; }

        Commvault.Powershell.Models.IIdName GuestCredentialsSavedCredentials { get; set; }
        /// <summary>
        /// If true then validated VMs will be available until expiration time set on the recovery target
        /// </summary>
        bool? KeepValidatedVMSRunning { get; set; }
        /// <summary>Number of backup Validation Threads</summary>
        long? MaximumNoOfThreads { get; set; }

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

        long? RecoveryTargetId { get; set; }

        string RecoveryTargetName { get; set; }

        long? SavedCredentialsId { get; set; }

        string SavedCredentialsName { get; set; }
        /// <summary>Schedule for application validation for VM Group</summary>
        Commvault.Powershell.Models.IValidationScheduleObject Schedule { get; set; }
        /// <summary>Description for validation schedule</summary>
        string ScheduleDescription { get; set; }

        long? ScheduleId { get; set; }
        /// <summary>True if application validation schedule is enabled</summary>
        bool? ScheduleIsScheduleEnabled { get; set; }
        /// <summary>Job Id for the application validation task. 0 if schedule is disabled</summary>
        long? ScheduleTaskId { get; set; }
        /// <summary>Arguments for the script</summary>
        string UnixArguments { get; set; }
        /// <summary>Is the script disabled</summary>
        bool? UnixIsDisabled { get; set; }
        /// <summary>True if the script is local</summary>
        bool? UnixIsLocal { get; set; }
        /// <summary>Path for the validation script</summary>
        string UnixPath { get; set; }

        Commvault.Powershell.Models.IUserNamePassword UnixUncCredentials { get; set; }
        /// <summary>username to access the network path</summary>
        string UnixUncCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        string UnixUncCredentialsPassword { get; set; }

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

        long? UnixUncSavedCredentialsId { get; set; }

        string UnixUncSavedCredentialsName { get; set; }
        /// <summary>Use Source VM ESX To Mount</summary>
        bool? UseSourceVMEsxToMount { get; set; }
        /// <summary>True if VM Backup validation is enabled</summary>
        bool? ValidateVMBackups { get; set; }
        /// <summary>Arguments for the script</summary>
        string WindowArguments { get; set; }
        /// <summary>Is the script disabled</summary>
        bool? WindowIsDisabled { get; set; }
        /// <summary>True if the script is local</summary>
        bool? WindowIsLocal { get; set; }
        /// <summary>Path for the validation script</summary>
        string WindowPath { get; set; }

        Commvault.Powershell.Models.IUserNamePassword WindowUncCredentials { get; set; }

        Commvault.Powershell.Models.IIdName WindowUncSavedCredentials { get; set; }
        /// <summary>username to access the network path</summary>
        string WindowsUncCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        string WindowsUncCredentialsPassword { get; set; }

        long? WindowsUncSavedCredentialsId { get; set; }

        string WindowsUncSavedCredentialsName { get; set; }

    }
}