generated/api/Models/VirtualMachineDetails.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>VirtualMachineDetails</summary>
    public partial class VirtualMachineDetails :
        Commvault.Powershell.Models.IVirtualMachineDetails,
        Commvault.Powershell.Models.IVirtualMachineDetailsInternal
    {

        /// <summary>Backing field for <see cref="ActivityControl" /> property.</summary>
        private Commvault.Powershell.Models.IActivityControlOptionsProp[] _activityControl;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IActivityControlOptionsProp[] ActivityControl { get => this._activityControl; set => this._activityControl = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IVMAppsDiscovered[] ApplicationValidationResultAppsDiscovered { get => ((Commvault.Powershell.Models.IVMApplicationValidationResultsInternal)ApplicationValidationResults).AppsDiscovered; set => ((Commvault.Powershell.Models.IVMApplicationValidationResultsInternal)ApplicationValidationResults).AppsDiscovered = value ?? null /* arrayOf */; }

        /// <summary>timestamp(in unix) for the last backup job completed</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? ApplicationValidationResultBackupCompletionDate { get => ((Commvault.Powershell.Models.IVMApplicationValidationResultsInternal)ApplicationValidationResults).BackupCompletionDate; set => ((Commvault.Powershell.Models.IVMApplicationValidationResultsInternal)ApplicationValidationResults).BackupCompletionDate = value ?? default(long); }

        /// <summary>job id of the last backup job that was validated</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? ApplicationValidationResultBackupValidated { get => ((Commvault.Powershell.Models.IVMApplicationValidationResultsInternal)ApplicationValidationResults).BackupValidated; set => ((Commvault.Powershell.Models.IVMApplicationValidationResultsInternal)ApplicationValidationResults).BackupValidated = value ?? default(long); }

        /// <summary>true if backup validation is set</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? ApplicationValidationResultBootStatus { get => ((Commvault.Powershell.Models.IVMApplicationValidationResultsInternal)ApplicationValidationResults).BootStatus; set => ((Commvault.Powershell.Models.IVMApplicationValidationResultsInternal)ApplicationValidationResults).BootStatus = value ?? default(bool); }

        /// <summary>job id of the last backup validation job</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? ApplicationValidationResultLastValidationJobId { get => ((Commvault.Powershell.Models.IVMApplicationValidationResultsInternal)ApplicationValidationResults).LastValidationJobId; set => ((Commvault.Powershell.Models.IVMApplicationValidationResultsInternal)ApplicationValidationResults).LastValidationJobId = value ?? default(long); }

        /// <summary>Backing field for <see cref="ApplicationValidationResults" /> property.</summary>
        private Commvault.Powershell.Models.IVMApplicationValidationResults _applicationValidationResults;

        /// <summary>VMApplicationValidationResults</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IVMApplicationValidationResults ApplicationValidationResults { get => (this._applicationValidationResults = this._applicationValidationResults ?? new Commvault.Powershell.Models.VMApplicationValidationResults()); set => this._applicationValidationResults = value; }

        /// <summary>Internal Acessors for ApplicationValidationResults</summary>
        Commvault.Powershell.Models.IVMApplicationValidationResults Commvault.Powershell.Models.IVirtualMachineDetailsInternal.ApplicationValidationResults { get => (this._applicationValidationResults = this._applicationValidationResults ?? new Commvault.Powershell.Models.VMApplicationValidationResults()); set { {_applicationValidationResults = value;} } }

        /// <summary>Internal Acessors for Passkey</summary>
        Commvault.Powershell.Models.IVMPasskey Commvault.Powershell.Models.IVirtualMachineDetailsInternal.Passkey { get => (this._passkey = this._passkey ?? new Commvault.Powershell.Models.VMPasskey()); set { {_passkey = value;} } }

        /// <summary>Internal Acessors for Security</summary>
        Commvault.Powershell.Models.IVMSecurity Commvault.Powershell.Models.IVirtualMachineDetailsInternal.Security { get => (this._security = this._security ?? new Commvault.Powershell.Models.VMSecurity()); set { {_security = value;} } }

        /// <summary>Internal Acessors for Summary</summary>
        Commvault.Powershell.Models.IVMDetailSummary Commvault.Powershell.Models.IVirtualMachineDetailsInternal.Summary { get => (this._summary = this._summary ?? new Commvault.Powershell.Models.VMDetailSummary()); set { {_summary = value;} } }

        /// <summary>Internal Acessors for SummaryCompany</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IVirtualMachineDetailsInternal.SummaryCompany { get => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).Company; set => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).Company = value; }

        /// <summary>Internal Acessors for SummaryHypervisor</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IVirtualMachineDetailsInternal.SummaryHypervisor { get => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).Hypervisor; set => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).Hypervisor = value; }

        /// <summary>Internal Acessors for SummaryPlan</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IVirtualMachineDetailsInternal.SummaryPlan { get => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).Plan; set => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).Plan = value; }

        /// <summary>Internal Acessors for SummarySla</summary>
        Commvault.Powershell.Models.IVMSla Commvault.Powershell.Models.IVirtualMachineDetailsInternal.SummarySla { get => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).Sla; set => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).Sla = value; }

        /// <summary>Internal Acessors for SummaryVMGroup</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IVirtualMachineDetailsInternal.SummaryVMGroup { get => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).VMGroup; set => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).VMGroup = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? CompanyId { get => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).CompanyId; set => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).CompanyId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string CompanyName { get => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).CompanyName; set => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).CompanyName = value ?? null; }

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

        /// <summary>The display name of the virtual machine</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string DisplayName { get => this._displayName; set => this._displayName = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? HypervisorId { get => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).HypervisorId; set => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).HypervisorId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string HypervisorName { get => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).HypervisorName; set => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).HypervisorName = value ?? null; }

        /// <summary>Backing field for <see cref="Passkey" /> property.</summary>
        private Commvault.Powershell.Models.IVMPasskey _passkey;

        /// <summary>VMPasskey</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IVMPasskey Passkey { get => (this._passkey = this._passkey ?? new Commvault.Powershell.Models.VMPasskey()); set => this._passkey = value; }

        /// <summary>The authentication type set for browse and restore</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PasskeyAuthType { get => ((Commvault.Powershell.Models.IVMPasskeyInternal)Passkey).AuthType; set => ((Commvault.Powershell.Models.IVMPasskeyInternal)Passkey).AuthType = value ?? null; }

        /// <summary>To tell if user is authorized for restore</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? PasskeyEnableAuthorizeForRestore { get => ((Commvault.Powershell.Models.IVMPasskeyInternal)Passkey).EnableAuthorizeForRestore; set => ((Commvault.Powershell.Models.IVMPasskeyInternal)Passkey).EnableAuthorizeForRestore = value ?? default(bool); }

        /// <summary>
        /// The duration(in unix time) for which a user can continue browsing and restoring backup data without being prompted to
        /// enter the passkey, again.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? PasskeyExpirationTime { get => ((Commvault.Powershell.Models.IVMPasskeyInternal)Passkey).ExpirationTime; set => ((Commvault.Powershell.Models.IVMPasskeyInternal)Passkey).ExpirationTime = value ?? default(long); }

        /// <summary>To tell if passkey is required for browse and restore</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? PasskeyPassKeyRequiredForRestore { get => ((Commvault.Powershell.Models.IVMPasskeyInternal)Passkey).PassKeyRequiredForRestore; set => ((Commvault.Powershell.Models.IVMPasskeyInternal)Passkey).PassKeyRequiredForRestore = value ?? default(bool); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? PlanId { get => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).PlanId; set => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).PlanId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PlanName { get => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).PlanName; set => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).PlanName = value ?? null; }

        /// <summary>Backing field for <see cref="Security" /> property.</summary>
        private Commvault.Powershell.Models.IVMSecurity _security;

        /// <summary>VMSecurity</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IVMSecurity Security { get => (this._security = this._security ?? new Commvault.Powershell.Models.VMSecurity()); set => this._security = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IVMSecurityAssoc[] SecurityAssociations { get => ((Commvault.Powershell.Models.IVMSecurityInternal)Security).Associations; set => ((Commvault.Powershell.Models.IVMSecurityInternal)Security).Associations = value ?? null /* arrayOf */; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.ISecurityOwnersAssoc[] SecurityOwners { get => ((Commvault.Powershell.Models.IVMSecurityInternal)Security).Owners; set => ((Commvault.Powershell.Models.IVMSecurityInternal)Security).Owners = value ?? null /* arrayOf */; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IPermissionResp[] SecurityPermissions { get => ((Commvault.Powershell.Models.IVMSecurityInternal)Security).Permissions; set => ((Commvault.Powershell.Models.IVMSecurityInternal)Security).Permissions = value ?? null /* arrayOf */; }

        /// <summary>The reason for the current SLA status of the VM client</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SlaReason { get => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).SlaReason; set => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).SlaReason = value ?? null; }

        /// <summary>Provides the SLA status.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SlaStatus { get => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).SlaStatus; set => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).SlaStatus = value ?? null; }

        /// <summary>Backing field for <see cref="Summary" /> property.</summary>
        private Commvault.Powershell.Models.IVMDetailSummary _summary;

        /// <summary>
        /// The Virtual Machine detail summary. Hypervisor is the software that creates and runs virtual machines(VMs).
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IVMDetailSummary Summary { get => (this._summary = this._summary ?? new Commvault.Powershell.Models.VMDetailSummary()); set => this._summary = value; }

        /// <summary>The amount of data being protected for the VM client(in bytes)</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? SummaryApplicationSize { get => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).ApplicationSize; set => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).ApplicationSize = value ?? default(long); }

        /// <summary>
        /// The host name for the computer where the source virtual machine or instance resides.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SummaryHost { get => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).Host; set => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).Host = value ?? null; }

        /// <summary>The latest recovery time for the vm(in unix)</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? SummaryLatestRecoveryPoint { get => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).LatestRecoveryPoint; set => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).LatestRecoveryPoint = value ?? default(long); }

        /// <summary>The operating system version for the VM or instance.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SummaryOS { get => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).OS; set => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).OS = value ?? null; }

        /// <summary>The oldest recovery time for the vm(in unix)</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? SummaryOldestRecoveryPoint { get => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).OldestRecoveryPoint; set => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).OldestRecoveryPoint = value ?? default(long); }

        /// <summary>The status of the backup for the VM, instance, or container.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SummaryStatus { get => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).Status; set => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).Status = value ?? null; }

        /// <summary>The total space allocated(in bytes) for the virtual machine.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? SummaryVMSize { get => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).VMSize; set => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).VMSize = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SummaryVendor { get => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).Vendor; set => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).Vendor = value ?? null; }

        /// <summary>Backing field for <see cref="Tags" /> property.</summary>
        private Commvault.Powershell.Models.IIdNameValue[] _tags;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IIdNameValue[] Tags { get => this._tags; set => this._tags = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? VMGroupId { get => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).VMGroupId; set => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).VMGroupId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string VMGroupName { get => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).VMGroupName; set => ((Commvault.Powershell.Models.IVMDetailSummaryInternal)Summary).VMGroupName = value ?? null; }

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

        }
    }
    /// VirtualMachineDetails
    public partial interface IVirtualMachineDetails :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"activityControl",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IActivityControlOptionsProp) })]
        Commvault.Powershell.Models.IActivityControlOptionsProp[] ActivityControl { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"appsDiscovered",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IVMAppsDiscovered) })]
        Commvault.Powershell.Models.IVMAppsDiscovered[] ApplicationValidationResultAppsDiscovered { get; set; }
        /// <summary>timestamp(in unix) for the last backup job completed</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"timestamp(in unix) for the last backup job completed",
        SerializedName = @"backupCompletionDate",
        PossibleTypes = new [] { typeof(long) })]
        long? ApplicationValidationResultBackupCompletionDate { get; set; }
        /// <summary>job id of the last backup job that was validated</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"job id of the last backup job that was validated",
        SerializedName = @"backupValidated",
        PossibleTypes = new [] { typeof(long) })]
        long? ApplicationValidationResultBackupValidated { get; set; }
        /// <summary>true if backup validation is set</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"true if backup validation is set",
        SerializedName = @"bootStatus",
        PossibleTypes = new [] { typeof(bool) })]
        bool? ApplicationValidationResultBootStatus { get; set; }
        /// <summary>job id of the last backup validation job</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"job id of the last backup validation job",
        SerializedName = @"lastValidationJobId",
        PossibleTypes = new [] { typeof(long) })]
        long? ApplicationValidationResultLastValidationJobId { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string CompanyName { get; set; }
        /// <summary>The display name of the virtual machine</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The display name of the virtual machine",
        SerializedName = @"displayName",
        PossibleTypes = new [] { typeof(string) })]
        string DisplayName { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string HypervisorName { get; set; }
        /// <summary>The authentication type set for browse and restore</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The authentication type set for browse and restore",
        SerializedName = @"authType",
        PossibleTypes = new [] { typeof(string) })]
        string PasskeyAuthType { get; set; }
        /// <summary>To tell if user is authorized for restore</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"To tell if user is authorized for restore",
        SerializedName = @"enableAuthorizeForRestore",
        PossibleTypes = new [] { typeof(bool) })]
        bool? PasskeyEnableAuthorizeForRestore { get; set; }
        /// <summary>
        /// The duration(in unix time) for which a user can continue browsing and restoring backup data without being prompted to
        /// enter the passkey, again.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The duration(in unix time) for which a user can continue browsing and restoring backup data without being prompted to enter the passkey, again.",
        SerializedName = @"expirationTime",
        PossibleTypes = new [] { typeof(long) })]
        long? PasskeyExpirationTime { get; set; }
        /// <summary>To tell if passkey is required for browse and restore</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"To tell if passkey is required for browse and restore",
        SerializedName = @"passKeyRequiredForRestore",
        PossibleTypes = new [] { typeof(bool) })]
        bool? PasskeyPassKeyRequiredForRestore { get; set; }

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

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

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

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"permissions",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IPermissionResp) })]
        Commvault.Powershell.Models.IPermissionResp[] SecurityPermissions { get; set; }
        /// <summary>The reason for the current SLA status of the VM client</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The reason for the current SLA status of the VM client",
        SerializedName = @"reason",
        PossibleTypes = new [] { typeof(string) })]
        string SlaReason { get; set; }
        /// <summary>Provides the SLA status.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Provides the SLA status.",
        SerializedName = @"status",
        PossibleTypes = new [] { typeof(string) })]
        string SlaStatus { get; set; }
        /// <summary>The amount of data being protected for the VM client(in bytes)</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The amount of data being protected for the VM client(in bytes)",
        SerializedName = @"applicationSize",
        PossibleTypes = new [] { typeof(long) })]
        long? SummaryApplicationSize { get; set; }
        /// <summary>
        /// The host name for the computer where the source virtual machine or instance resides.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The host name for the computer where the source virtual machine or instance resides.",
        SerializedName = @"host",
        PossibleTypes = new [] { typeof(string) })]
        string SummaryHost { get; set; }
        /// <summary>The latest recovery time for the vm(in unix)</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The latest recovery time for the vm(in unix)",
        SerializedName = @"latestRecoveryPoint",
        PossibleTypes = new [] { typeof(long) })]
        long? SummaryLatestRecoveryPoint { get; set; }
        /// <summary>The operating system version for the VM or instance.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The operating system version for the VM or instance.",
        SerializedName = @"os",
        PossibleTypes = new [] { typeof(string) })]
        string SummaryOS { get; set; }
        /// <summary>The oldest recovery time for the vm(in unix)</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The oldest recovery time for the vm(in unix)",
        SerializedName = @"oldestRecoveryPoint",
        PossibleTypes = new [] { typeof(long) })]
        long? SummaryOldestRecoveryPoint { get; set; }
        /// <summary>The status of the backup for the VM, instance, or container.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The status of the backup for the VM, instance, or container.",
        SerializedName = @"status",
        PossibleTypes = new [] { typeof(string) })]
        string SummaryStatus { get; set; }
        /// <summary>The total space allocated(in bytes) for the virtual machine.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The total space allocated(in bytes) for the virtual machine.",
        SerializedName = @"vmSize",
        PossibleTypes = new [] { typeof(long) })]
        long? SummaryVMSize { get; set; }

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

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

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

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

    }
    /// VirtualMachineDetails
    internal partial interface IVirtualMachineDetailsInternal

    {
        Commvault.Powershell.Models.IActivityControlOptionsProp[] ActivityControl { get; set; }

        Commvault.Powershell.Models.IVMAppsDiscovered[] ApplicationValidationResultAppsDiscovered { get; set; }
        /// <summary>timestamp(in unix) for the last backup job completed</summary>
        long? ApplicationValidationResultBackupCompletionDate { get; set; }
        /// <summary>job id of the last backup job that was validated</summary>
        long? ApplicationValidationResultBackupValidated { get; set; }
        /// <summary>true if backup validation is set</summary>
        bool? ApplicationValidationResultBootStatus { get; set; }
        /// <summary>job id of the last backup validation job</summary>
        long? ApplicationValidationResultLastValidationJobId { get; set; }
        /// <summary>VMApplicationValidationResults</summary>
        Commvault.Powershell.Models.IVMApplicationValidationResults ApplicationValidationResults { get; set; }

        long? CompanyId { get; set; }

        string CompanyName { get; set; }
        /// <summary>The display name of the virtual machine</summary>
        string DisplayName { get; set; }

        long? HypervisorId { get; set; }

        string HypervisorName { get; set; }
        /// <summary>VMPasskey</summary>
        Commvault.Powershell.Models.IVMPasskey Passkey { get; set; }
        /// <summary>The authentication type set for browse and restore</summary>
        string PasskeyAuthType { get; set; }
        /// <summary>To tell if user is authorized for restore</summary>
        bool? PasskeyEnableAuthorizeForRestore { get; set; }
        /// <summary>
        /// The duration(in unix time) for which a user can continue browsing and restoring backup data without being prompted to
        /// enter the passkey, again.
        /// </summary>
        long? PasskeyExpirationTime { get; set; }
        /// <summary>To tell if passkey is required for browse and restore</summary>
        bool? PasskeyPassKeyRequiredForRestore { get; set; }

        long? PlanId { get; set; }

        string PlanName { get; set; }
        /// <summary>VMSecurity</summary>
        Commvault.Powershell.Models.IVMSecurity Security { get; set; }

        Commvault.Powershell.Models.IVMSecurityAssoc[] SecurityAssociations { get; set; }

        Commvault.Powershell.Models.ISecurityOwnersAssoc[] SecurityOwners { get; set; }

        Commvault.Powershell.Models.IPermissionResp[] SecurityPermissions { get; set; }
        /// <summary>The reason for the current SLA status of the VM client</summary>
        string SlaReason { get; set; }
        /// <summary>Provides the SLA status.</summary>
        string SlaStatus { get; set; }
        /// <summary>
        /// The Virtual Machine detail summary. Hypervisor is the software that creates and runs virtual machines(VMs).
        /// </summary>
        Commvault.Powershell.Models.IVMDetailSummary Summary { get; set; }
        /// <summary>The amount of data being protected for the VM client(in bytes)</summary>
        long? SummaryApplicationSize { get; set; }

        Commvault.Powershell.Models.IIdName SummaryCompany { get; set; }
        /// <summary>
        /// The host name for the computer where the source virtual machine or instance resides.
        /// </summary>
        string SummaryHost { get; set; }

        Commvault.Powershell.Models.IIdName SummaryHypervisor { get; set; }
        /// <summary>The latest recovery time for the vm(in unix)</summary>
        long? SummaryLatestRecoveryPoint { get; set; }
        /// <summary>The operating system version for the VM or instance.</summary>
        string SummaryOS { get; set; }
        /// <summary>The oldest recovery time for the vm(in unix)</summary>
        long? SummaryOldestRecoveryPoint { get; set; }

        Commvault.Powershell.Models.IIdName SummaryPlan { get; set; }
        /// <summary>VMSLA</summary>
        Commvault.Powershell.Models.IVMSla SummarySla { get; set; }
        /// <summary>The status of the backup for the VM, instance, or container.</summary>
        string SummaryStatus { get; set; }

        Commvault.Powershell.Models.IIdName SummaryVMGroup { get; set; }
        /// <summary>The total space allocated(in bytes) for the virtual machine.</summary>
        long? SummaryVMSize { get; set; }

        string SummaryVendor { get; set; }

        Commvault.Powershell.Models.IIdNameValue[] Tags { get; set; }

        long? VMGroupId { get; set; }

        string VMGroupName { get; set; }

    }
}