generated/api/Models/VMAppValidation.cs

// Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.8.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
    {

        /// <summary>Internal Acessors for Copy</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IVMAppValidationInternal.Copy { get => (this._copy = this._copy ?? new Commvault.Powershell.Models.IdName()); set { {_copy = 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 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.IIdName _copy;

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

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

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

        /// <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 string _recoveryTarget;

        /// <summary>Recovery Target for Application Validation</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string RecoveryTarget { get => this._recoveryTarget; set => this._recoveryTarget = value; }

        [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 a UNC script, False if it is a local script</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? UnixIsUnc { get => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).UnixIsUnc; set => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).UnixIsUnc = 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 a UNC script, False if it is a local script</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? WindowIsUnc { get => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).WindowIsUnc; set => ((Commvault.Powershell.Models.IAppValidationScriptInternal)CustomValidationScript).WindowIsUnc = 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? CopyId { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string CopyName { 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; }
        /// <summary>Recovery Target for Application Validation</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Recovery Target for Application Validation",
        SerializedName = @"recoveryTarget",
        PossibleTypes = new [] { typeof(string) })]
        string RecoveryTarget { 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 a UNC script, False if it is a local script</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if the script is a UNC script, False if it is a local script",
        SerializedName = @"isUNC",
        PossibleTypes = new [] { typeof(bool) })]
        bool? UnixIsUnc { 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 a UNC script, False if it is a local script</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if the script is a UNC script, False if it is a local script",
        SerializedName = @"isUNC",
        PossibleTypes = new [] { typeof(bool) })]
        bool? WindowIsUnc { 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

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

        long? CopyId { get; set; }

        string CopyName { 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; }
        /// <summary>Recovery Target for Application Validation</summary>
        string RecoveryTarget { 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 a UNC script, False if it is a local script</summary>
        bool? UnixIsUnc { 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 a UNC script, False if it is a local script</summary>
        bool? WindowIsUnc { 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; }

    }
}