generated/api/Models/GetVMGroupResp.cs

// Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.9.2, generator: @autorest/powershell@3.0.494)
// 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>GetVMGroupResp</summary>
    public partial class GetVMGroupResp :
        Commvault.Powershell.Models.IGetVMGroupResp,
        Commvault.Powershell.Models.IGetVMGroupRespInternal
    {

        /// <summary>Backing field for <see cref="AccessNode" /> property.</summary>
        private Commvault.Powershell.Models.IIdName[] _accessNode;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IIdName[] AccessNode { get => this._accessNode; set => this._accessNode = value; }

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

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IActivityControlOptions ActivityControl { get => (this._activityControl = this._activityControl ?? new Commvault.Powershell.Models.ActivityControlOptions()); set => this._activityControl = value; }

        /// <summary>true if Backup is enabled</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? ActivityControlEnableBackup { get => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).EnableBackup; set => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).EnableBackup = value ?? default(bool); }

        /// <summary>true if Restore is enabled</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? ActivityControlEnableRestore { get => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).EnableRestore; set => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).EnableRestore = value ?? default(bool); }

        /// <summary>Backing field for <see cref="ApplicationValidation" /> property.</summary>
        private Commvault.Powershell.Models.IVMAppValidation _applicationValidation;

        /// <summary>vmAppValidation</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IVMAppValidation ApplicationValidation { get => (this._applicationValidation = this._applicationValidation ?? new Commvault.Powershell.Models.VMAppValidation()); set => this._applicationValidation = value; }

        /// <summary>Delayed by n Hrs</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string BackupActivityControlOptionDelayTime { get => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).BackupActivityControlOptionDelayTime; set => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).BackupActivityControlOptionDelayTime = value ?? null; }

        /// <summary>True if the activity will be enabled after a delay time interval</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? BackupActivityControlOptionEnableAfterDelay { get => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).BackupActivityControlOptionEnableAfterDelay; set => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).BackupActivityControlOptionEnableAfterDelay = value ?? default(bool); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? BackupActivityControlOptionsTimeZoneId { get => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).BackupActivityControlOptionsTimeZoneId; set => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).BackupActivityControlOptionsTimeZoneId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string BackupActivityControlOptionsTimeZoneName { get => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).BackupActivityControlOptionsTimeZoneName; set => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).BackupActivityControlOptionsTimeZoneName = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? BackupsetId { get => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).BackupsetId; set => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).BackupsetId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string BackupsetName { get => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).BackupsetName; set => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).BackupsetName = value ?? null; }

        /// <summary>Backing field for <see cref="CommonProperties" /> property.</summary>
        private Commvault.Powershell.Models.IVMGroupCommonProperties _commonProperties;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IVMGroupCommonProperties CommonProperties { get => (this._commonProperties = this._commonProperties ?? new Commvault.Powershell.Models.VMGroupCommonProperties()); set => this._commonProperties = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string CommonPropertyHypervisorType { get => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).HypervisorType; set => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).HypervisorType = value ?? null; }

        /// <summary>True if the hypervisor is deleted</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? CommonPropertyIsDeletedHypervisor { get => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).IsDeletedHypervisor; set => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).IsDeletedHypervisor = value ?? default(bool); }

        /// <summary>True if this is a ETCD Subclient</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? CommonPropertyIsEtcdSubclient { get => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).IsEtcdSubclient; set => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).IsEtcdSubclient = value ?? default(bool); }

        /// <summary>true if the hypervisor has been deconfigured</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? CommonPropertyIsHypervisorDeconfigured { get => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).IsHypervisorDeconfigured; set => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).IsHypervisorDeconfigured = value ?? default(bool); }

        /// <summary>True if Indexing version is 2</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? CommonPropertyIsIndexingV2 { get => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).IsIndexingV2; set => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).IsIndexingV2 = value ?? default(bool); }

        /// <summary>True if we need to show full backup level</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? CommonPropertyShowFullBackupLevel { get => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).ShowFullBackupLevel; set => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).ShowFullBackupLevel = value ?? default(bool); }

        /// <summary>Internal Acessors for ActivityControl</summary>
        Commvault.Powershell.Models.IActivityControlOptions Commvault.Powershell.Models.IGetVMGroupRespInternal.ActivityControl { get => (this._activityControl = this._activityControl ?? new Commvault.Powershell.Models.ActivityControlOptions()); set { {_activityControl = value;} } }

        /// <summary>Internal Acessors for ActivityControlBackupActivityControlOptions</summary>
        Commvault.Powershell.Models.IBackupActivityControlOptionsProp Commvault.Powershell.Models.IGetVMGroupRespInternal.ActivityControlBackupActivityControlOptions { get => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).BackupActivityControlOptions; set => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).BackupActivityControlOptions = value; }

        /// <summary>Internal Acessors for ActivityControlRestoreActivityControlOptions</summary>
        Commvault.Powershell.Models.IBackupActivityControlOptionsProp Commvault.Powershell.Models.IGetVMGroupRespInternal.ActivityControlRestoreActivityControlOptions { get => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).RestoreActivityControlOptions; set => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).RestoreActivityControlOptions = value; }

        /// <summary>Internal Acessors for BackupActivityControlOptionTimeZone</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IGetVMGroupRespInternal.BackupActivityControlOptionTimeZone { get => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).BackupActivityControlOptionTimeZone; set => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).BackupActivityControlOptionTimeZone = value; }

        /// <summary>Internal Acessors for CommonProperties</summary>
        Commvault.Powershell.Models.IVMGroupCommonProperties Commvault.Powershell.Models.IGetVMGroupRespInternal.CommonProperties { get => (this._commonProperties = this._commonProperties ?? new Commvault.Powershell.Models.VMGroupCommonProperties()); set { {_commonProperties = value;} } }

        /// <summary>Internal Acessors for CommonPropertyBackupset</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IGetVMGroupRespInternal.CommonPropertyBackupset { get => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).Backupset; set => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).Backupset = value; }

        /// <summary>Internal Acessors for CommonPropertyDataBackupStoragePolicy</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IGetVMGroupRespInternal.CommonPropertyDataBackupStoragePolicy { get => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).DataBackupStoragePolicy; set => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).DataBackupStoragePolicy = value; }

        /// <summary>Internal Acessors for CommonPropertyHypervisor</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IGetVMGroupRespInternal.CommonPropertyHypervisor { get => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).Hypervisor; set => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).Hypervisor = value; }

        /// <summary>Internal Acessors for CommonPropertyIndexingInfo</summary>
        Commvault.Powershell.Models.IIndexingInfo Commvault.Powershell.Models.IGetVMGroupRespInternal.CommonPropertyIndexingInfo { get => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).IndexingInfo; set => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).IndexingInfo = value; }

        /// <summary>Internal Acessors for CommonPropertyInstance</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IGetVMGroupRespInternal.CommonPropertyInstance { get => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).Instance; set => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).Instance = value; }

        /// <summary>Internal Acessors for GuestCredentials</summary>
        Commvault.Powershell.Models.IUserNamePassword Commvault.Powershell.Models.IGetVMGroupRespInternal.GuestCredentials { get => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).GuestCredentialsCredentials; set => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).GuestCredentialsCredentials = value; }

        /// <summary>Internal Acessors for GuestCredentialsSavedCredentials</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IGetVMGroupRespInternal.GuestCredentialsSavedCredentials { get => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).GuestCredentialsSavedCredentials; set => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).GuestCredentialsSavedCredentials = value; }

        /// <summary>Internal Acessors for RestoreActivityControlOptionTimeZone</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IGetVMGroupRespInternal.RestoreActivityControlOptionTimeZone { get => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).RestoreActivityControlOptionTimeZone; set => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).RestoreActivityControlOptionTimeZone = value; }

        /// <summary>Internal Acessors for SettingGuestCredentials</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo Commvault.Powershell.Models.IGetVMGroupRespInternal.SettingGuestCredentials { get => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).GuestCredentials; set => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).GuestCredentials = value; }

        /// <summary>Internal Acessors for Settings</summary>
        Commvault.Powershell.Models.IVMGroupSettings Commvault.Powershell.Models.IGetVMGroupRespInternal.Settings { get => (this._settings = this._settings ?? new Commvault.Powershell.Models.VMGroupSettings()); set { {_settings = value;} } }

        /// <summary>Internal Acessors for SnapshotManagement</summary>
        Commvault.Powershell.Models.ISnapCopyInfo Commvault.Powershell.Models.IGetVMGroupRespInternal.SnapshotManagement { get => (this._snapshotManagement = this._snapshotManagement ?? new Commvault.Powershell.Models.SnapCopyInfo()); set { {_snapshotManagement = value;} } }

        /// <summary>Internal Acessors for SnapshotManagementCrossAccountCopyDestinationClient</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IGetVMGroupRespInternal.SnapshotManagementCrossAccountCopyDestinationClient { get => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).CrossAccountCopyDestinationClient; set => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).CrossAccountCopyDestinationClient = value; }

        /// <summary>Internal Acessors for SnapshotManagementSnapEngine</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IGetVMGroupRespInternal.SnapshotManagementSnapEngine { get => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).SnapEngine; set => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).SnapEngine = value; }

        /// <summary>Internal Acessors for SnapshotManagementSnapMountProxy</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IGetVMGroupRespInternal.SnapshotManagementSnapMountProxy { get => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).SnapMountProxy; set => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).SnapMountProxy = value; }

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

        /// <summary>Internal Acessors for SummaryPlan</summary>
        Commvault.Powershell.Models.IPlanIdNameType Commvault.Powershell.Models.IGetVMGroupRespInternal.SummaryPlan { get => ((Commvault.Powershell.Models.IVMGroupDetailsSummaryInternal)Summary).Plan; set => ((Commvault.Powershell.Models.IVMGroupDetailsSummaryInternal)Summary).Plan = value; }

        /// <summary>Internal Acessors for SummaryRegion</summary>
        Commvault.Powershell.Models.IRegionInfo Commvault.Powershell.Models.IGetVMGroupRespInternal.SummaryRegion { get => ((Commvault.Powershell.Models.IVMGroupDetailsSummaryInternal)Summary).Region; set => ((Commvault.Powershell.Models.IVMGroupDetailsSummaryInternal)Summary).Region = value; }

        /// <summary>Internal Acessors for SummaryTimeZone</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IGetVMGroupRespInternal.SummaryTimeZone { get => ((Commvault.Powershell.Models.IVMGroupDetailsSummaryInternal)Summary).TimeZone; set => ((Commvault.Powershell.Models.IVMGroupDetailsSummaryInternal)Summary).TimeZone = value; }

        /// <summary>Internal Acessors for VMBackupInfo</summary>
        Commvault.Powershell.Models.IVMBackupInfo Commvault.Powershell.Models.IGetVMGroupRespInternal.VMBackupInfo { get => (this._vMBackupInfo = this._vMBackupInfo ?? new Commvault.Powershell.Models.VMBackupInfo()); set { {_vMBackupInfo = value;} } }

        /// <summary>Backing field for <see cref="Content" /> property.</summary>
        private Commvault.Powershell.Models.IVMContent[] _content;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IVMContent[] Content { get => this._content; set => this._content = value; }

        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string CredentialsName { get => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).CredentialsName; set => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).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.IVMGroupSettingsInternal)Settings).CredentialsPassword; set => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).CredentialsPassword = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? CrossAccountCopyDestinationClientId { get => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).CrossAccountCopyDestinationClientId; set => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).CrossAccountCopyDestinationClientId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string CrossAccountCopyDestinationClientName { get => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).CrossAccountCopyDestinationClientName; set => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).CrossAccountCopyDestinationClientName = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? DataBackupStoragePolicyId { get => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).DataBackupStoragePolicyId; set => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).DataBackupStoragePolicyId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string DataBackupStoragePolicyName { get => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).DataBackupStoragePolicyName; set => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).DataBackupStoragePolicyName = value ?? null; }

        /// <summary>Backing field for <see cref="DiskFilters" /> property.</summary>
        private Commvault.Powershell.Models.IVMDiskFilter[] _diskFilters;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IVMDiskFilter[] DiskFilters { get => this._diskFilters; set => this._diskFilters = value; }

        /// <summary>Backing field for <see cref="Filters" /> property.</summary>
        private Commvault.Powershell.Models.IVMContent[] _filters;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IVMContent[] Filters { get => this._filters; set => this._filters = value; }

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

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

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

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

        /// <summary>Indexing Message</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string IndexingInfoMessage { get => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).IndexingInfoMessage; set => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).IndexingInfoMessage = value ?? null; }

        /// <summary>Type of indexing status.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string IndexingInfoStatus { get => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).IndexingInfoStatus; set => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).IndexingInfoStatus = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? InstanceId { get => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).InstanceId; set => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).InstanceId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string InstanceName { get => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).InstanceName; set => ((Commvault.Powershell.Models.IVMGroupCommonPropertiesInternal)CommonProperties).InstanceName = value ?? null; }

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

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

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

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

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

        /// <summary>Display Name of Region</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string RegionDisplayName { get => ((Commvault.Powershell.Models.IVMGroupDetailsSummaryInternal)Summary).RegionDisplayName; set => ((Commvault.Powershell.Models.IVMGroupDetailsSummaryInternal)Summary).RegionDisplayName = value ?? null; }

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

        /// <summary>Geolocation Latitude</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string RegionLatitude { get => ((Commvault.Powershell.Models.IVMGroupDetailsSummaryInternal)Summary).RegionLatitude; set => ((Commvault.Powershell.Models.IVMGroupDetailsSummaryInternal)Summary).RegionLatitude = value ?? null; }

        /// <summary>Geolocation Longitude</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string RegionLongitude { get => ((Commvault.Powershell.Models.IVMGroupDetailsSummaryInternal)Summary).RegionLongitude; set => ((Commvault.Powershell.Models.IVMGroupDetailsSummaryInternal)Summary).RegionLongitude = value ?? null; }

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

        /// <summary>Delayed by n Hrs</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string RestoreActivityControlOptionDelayTime { get => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).RestoreActivityControlOptionDelayTime; set => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).RestoreActivityControlOptionDelayTime = value ?? null; }

        /// <summary>True if the activity will be enabled after a delay time interval</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? RestoreActivityControlOptionEnableAfterDelay { get => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).RestoreActivityControlOptionEnableAfterDelay; set => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).RestoreActivityControlOptionEnableAfterDelay = value ?? default(bool); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? RestoreActivityControlOptionsTimeZoneId { get => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).RestoreActivityControlOptionsTimeZoneId; set => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).RestoreActivityControlOptionsTimeZoneId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string RestoreActivityControlOptionsTimeZoneName { get => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).RestoreActivityControlOptionsTimeZoneName; set => ((Commvault.Powershell.Models.IActivityControlOptionsInternal)ActivityControl).RestoreActivityControlOptionsTimeZoneName = value ?? null; }

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

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

        /// <summary>Backing field for <see cref="SecurityAssociations" /> property.</summary>
        private Commvault.Powershell.Models.ISecurityAssoc[] _securityAssociations;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.ISecurityAssoc[] SecurityAssociations { get => this._securityAssociations; set => this._securityAssociations = value; }

        /// <summary>True if auto detect VM Owner enabled</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? SettingAutoDetectVMOwner { get => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).AutoDetectVMOwner; set => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).AutoDetectVMOwner = value ?? default(bool); }

        /// <summary>
        /// True if metadata collection is enabled for intellisnap jobs. Only applicable for Indexing v1
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? SettingCollectFileDetailsFromSnapshotCopy { get => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).CollectFileDetailsFromSnapshotCopy; set => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).CollectFileDetailsFromSnapshotCopy = value ?? default(bool); }

        /// <summary>True if metadata collection is enabled. Only applicable for Indexing v1</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? SettingCollectFileDetailsforGranularRecovery { get => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).CollectFileDetailsforGranularRecovery; set => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).CollectFileDetailsforGranularRecovery = value ?? default(bool); }

        /// <summary>Custom snapshot resource group GUID for Azure</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SettingCustomSnapshotResourceGroup { get => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).CustomSnapshotResourceGroup; set => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).CustomSnapshotResourceGroup = value ?? null; }

        /// <summary>True if Datastore Free space check is enabled</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? SettingDatastoreFreespaceCheck { get => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).DatastoreFreespaceCheck; set => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).DatastoreFreespaceCheck = value ?? default(bool); }

        /// <summary>precentage of datastore free space check value</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? SettingDatastoreFreespaceRequired { get => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).DatastoreFreespaceRequired; set => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).DatastoreFreespaceRequired = value ?? default(long); }

        /// <summary>Is the VM App Aware</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? SettingIsApplicationAware { get => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).IsApplicationAware; set => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).IsApplicationAware = value ?? default(bool); }

        /// <summary>Start Time for the VM Group Job</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? SettingJobStartTime { get => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).JobStartTime; set => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).JobStartTime = value ?? default(long); }

        /// <summary>Number of readers for backup</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? SettingNoOfReaders { get => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).NoOfReaders; set => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).NoOfReaders = value ?? default(long); }

        /// <summary>transport mode based on environment. Values are case sensitive</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SettingTransportMode { get => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).TransportMode; set => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).TransportMode = value ?? null; }

        /// <summary>True if Changed Block Tracking is enabled</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? SettingUseChangedBlockTrackingOnVM { get => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).UseChangedBlockTrackingOnVM; set => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).UseChangedBlockTrackingOnVM = value ?? default(bool); }

        /// <summary>True if use VM CheckPoint setting is enabled</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? SettingUseVMCheckpointSetting { get => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).UseVMCheckpointSetting; set => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).UseVMCheckpointSetting = value ?? default(bool); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SettingVMBackupType { get => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).VMBackupType; set => ((Commvault.Powershell.Models.IVMGroupSettingsInternal)Settings).VMBackupType = value ?? null; }

        /// <summary>Backing field for <see cref="Settings" /> property.</summary>
        private Commvault.Powershell.Models.IVMGroupSettings _settings;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IVMGroupSettings Settings { get => (this._settings = this._settings ?? new Commvault.Powershell.Models.VMGroupSettings()); set => this._settings = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? SnapEngineId { get => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).SnapEngineId; set => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).SnapEngineId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SnapEngineName { get => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).SnapEngineName; set => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).SnapEngineName = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? SnapMountProxyId { get => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).SnapMountProxyId; set => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).SnapMountProxyId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SnapMountProxyName { get => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).SnapMountProxyName; set => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).SnapMountProxyName = value ?? null; }

        /// <summary>Backing field for <see cref="SnapshotManagement" /> property.</summary>
        private Commvault.Powershell.Models.ISnapCopyInfo _snapshotManagement;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.ISnapCopyInfo SnapshotManagement { get => (this._snapshotManagement = this._snapshotManagement ?? new Commvault.Powershell.Models.SnapCopyInfo()); set => this._snapshotManagement = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SnapshotManagementBackupCopyInterface { get => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).BackupCopyInterface; set => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).BackupCopyInterface = value ?? null; }

        /// <summary>True if hardware snapshot is enabled</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? SnapshotManagementEnableHardwareSnapshot { get => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).EnableHardwareSnapshot; set => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).EnableHardwareSnapshot = value ?? default(bool); }

        /// <summary>True if full copy of amazon snapshot to different amazon account is enabled</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? SnapshotManagementIsCrossAccountCopyEnabled { get => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).IsCrossAccountCopyEnabled; set => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).IsCrossAccountCopyEnabled = value ?? default(bool); }

        /// <summary>
        /// True if replicate and copy or sharing of amazon snapshot to different amazon account in same or different geographic location
        /// is enabled
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? SnapshotManagementIsCrossAccountEnabled { get => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).IsCrossAccountEnabled; set => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).IsCrossAccountEnabled = value ?? default(bool); }

        /// <summary>True if independent disk option is enabled</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? SnapshotManagementIsIndependentDisksEnabled { get => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).IsIndependentDisksEnabled; set => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).IsIndependentDisksEnabled = value ?? default(bool); }

        /// <summary>True if raw device maps option is enabled</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? SnapshotManagementIsRawDeviceMapsEnabled { get => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).IsRawDeviceMapsEnabled; set => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).IsRawDeviceMapsEnabled = value ?? default(bool); }

        /// <summary>Name of ESX Host</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SnapshotManagementSnapMountEsxHost { get => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).SnapMountEsxHost; set => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).SnapMountEsxHost = value ?? null; }

        /// <summary>True if separate proxy client is used for snap to tape</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? SnapshotManagementUseSeparateProxyForSnapToTape { get => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).UseSeparateProxyForSnapToTape; set => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).UseSeparateProxyForSnapToTape = value ?? default(bool); }

        /// <summary>Virtual machine application user name</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SnapshotManagementVMApplicationUserName { get => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).VMApplicationUserName; set => ((Commvault.Powershell.Models.ISnapCopyInfoInternal)SnapshotManagement).VMApplicationUserName = value ?? null; }

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

        /// <summary>subclient entity status</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? Status { get => this._status; set => this._status = value; }

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

        /// <summary>vmGroupDetailsSummary</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IVMGroupDetailsSummary Summary { get => (this._summary = this._summary ?? new Commvault.Powershell.Models.VMGroupDetailsSummary()); set => this._summary = value; }

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

        /// <summary>Last Backup Job Size</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? SummaryLastBackupSize { get => ((Commvault.Powershell.Models.IVMGroupDetailsSummaryInternal)Summary).LastBackupSize; set => ((Commvault.Powershell.Models.IVMGroupDetailsSummaryInternal)Summary).LastBackupSize = value ?? default(long); }

        /// <summary>Last Backup time of the VMGroup</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? SummaryLastBackupTime { get => ((Commvault.Powershell.Models.IVMGroupDetailsSummaryInternal)Summary).LastBackupTime; set => ((Commvault.Powershell.Models.IVMGroupDetailsSummaryInternal)Summary).LastBackupTime = value ?? default(long); }

        /// <summary>Next Backup Job start time</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? SummaryNextBackupTime { get => ((Commvault.Powershell.Models.IVMGroupDetailsSummaryInternal)Summary).NextBackupTime; set => ((Commvault.Powershell.Models.IVMGroupDetailsSummaryInternal)Summary).NextBackupTime = value ?? default(long); }

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

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

        /// <summary>Backing field for <see cref="VMBackupInfo" /> property.</summary>
        private Commvault.Powershell.Models.IVMBackupInfo _vMBackupInfo;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IVMBackupInfo VMBackupInfo { get => (this._vMBackupInfo = this._vMBackupInfo ?? new Commvault.Powershell.Models.VMBackupInfo()); set => this._vMBackupInfo = value; }

        /// <summary>VM Backed up with error count</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? VMBackupInfoVmbackedUpWithErrorCount { get => ((Commvault.Powershell.Models.IVMBackupInfoInternal)VMBackupInfo).VMBackedUpWithErrorCount; set => ((Commvault.Powershell.Models.IVMBackupInfoInternal)VMBackupInfo).VMBackedUpWithErrorCount = value ?? default(long); }

        /// <summary>vm never Backed up count</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? VMBackupInfoVmneverBackedUpCount { get => ((Commvault.Powershell.Models.IVMBackupInfoInternal)VMBackupInfo).VMNeverBackedUpCount; set => ((Commvault.Powershell.Models.IVMBackupInfoInternal)VMBackupInfo).VMNeverBackedUpCount = value ?? default(long); }

        /// <summary>VM Missed to protect count</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? VMBackupInfoVmnotProtectedCount { get => ((Commvault.Powershell.Models.IVMBackupInfoInternal)VMBackupInfo).VMNotProtectedCount; set => ((Commvault.Powershell.Models.IVMBackupInfoInternal)VMBackupInfo).VMNotProtectedCount = value ?? default(long); }

        /// <summary>VMs pending for Backup</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? VMBackupInfoVmpendingCount { get => ((Commvault.Powershell.Models.IVMBackupInfoInternal)VMBackupInfo).VMPendingCount; set => ((Commvault.Powershell.Models.IVMBackupInfoInternal)VMBackupInfo).VMPendingCount = value ?? default(long); }

        /// <summary>Protected vm Count</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? VMBackupInfoVmprotectedCount { get => ((Commvault.Powershell.Models.IVMBackupInfoInternal)VMBackupInfo).VMProtectedCount; set => ((Commvault.Powershell.Models.IVMBackupInfoInternal)VMBackupInfo).VMProtectedCount = value ?? default(long); }

        /// <summary>Total vm Count</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? VMBackupInfoVmtotalCount { get => ((Commvault.Powershell.Models.IVMBackupInfoInternal)VMBackupInfo).VMTotalCount; set => ((Commvault.Powershell.Models.IVMBackupInfoInternal)VMBackupInfo).VMTotalCount = value ?? default(long); }

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

        }
    }
    /// GetVMGroupResp
    public partial interface IGetVMGroupResp :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"accessNode",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IIdName) })]
        Commvault.Powershell.Models.IIdName[] AccessNode { get; set; }
        /// <summary>true if Backup is enabled</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"true if Backup is enabled",
        SerializedName = @"enableBackup",
        PossibleTypes = new [] { typeof(bool) })]
        bool? ActivityControlEnableBackup { get; set; }
        /// <summary>true if Restore is enabled</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"true if Restore is enabled",
        SerializedName = @"enableRestore",
        PossibleTypes = new [] { typeof(bool) })]
        bool? ActivityControlEnableRestore { get; set; }
        /// <summary>vmAppValidation</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"vmAppValidation",
        SerializedName = @"applicationValidation",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IVMAppValidation) })]
        Commvault.Powershell.Models.IVMAppValidation ApplicationValidation { get; set; }
        /// <summary>Delayed by n Hrs</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Delayed by n Hrs",
        SerializedName = @"delayTime",
        PossibleTypes = new [] { typeof(string) })]
        string BackupActivityControlOptionDelayTime { get; set; }
        /// <summary>True if the activity will be enabled after a delay time interval</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if the activity will be enabled after a delay time interval",
        SerializedName = @"enableAfterDelay",
        PossibleTypes = new [] { typeof(bool) })]
        bool? BackupActivityControlOptionEnableAfterDelay { get; set; }

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

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

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

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"hypervisorType",
        PossibleTypes = new [] { typeof(string) })]
        string CommonPropertyHypervisorType { get; set; }
        /// <summary>True if the hypervisor is deleted</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if the hypervisor is deleted",
        SerializedName = @"isDeletedHypervisor",
        PossibleTypes = new [] { typeof(bool) })]
        bool? CommonPropertyIsDeletedHypervisor { get; set; }
        /// <summary>True if this is a ETCD Subclient</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if this is a ETCD Subclient",
        SerializedName = @"isETCDSubclient",
        PossibleTypes = new [] { typeof(bool) })]
        bool? CommonPropertyIsEtcdSubclient { get; set; }
        /// <summary>true if the hypervisor has been deconfigured</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"true if the hypervisor has been deconfigured",
        SerializedName = @"isHypervisorDeconfigured",
        PossibleTypes = new [] { typeof(bool) })]
        bool? CommonPropertyIsHypervisorDeconfigured { get; set; }
        /// <summary>True if Indexing version is 2</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if Indexing version is 2",
        SerializedName = @"isIndexingV2",
        PossibleTypes = new [] { typeof(bool) })]
        bool? CommonPropertyIsIndexingV2 { get; set; }
        /// <summary>True if we need to show full backup level</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if we need to show full backup level",
        SerializedName = @"showFullBackupLevel",
        PossibleTypes = new [] { typeof(bool) })]
        bool? CommonPropertyShowFullBackupLevel { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"content",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IVMContent) })]
        Commvault.Powershell.Models.IVMContent[] Content { 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; }

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

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

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

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

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"filters",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IVMContent) })]
        Commvault.Powershell.Models.IVMContent[] Filters { 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; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(long) })]
        long? Id { get; set; }
        /// <summary>Indexing Message</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Indexing Message",
        SerializedName = @"message",
        PossibleTypes = new [] { typeof(string) })]
        string IndexingInfoMessage { get; set; }
        /// <summary>Type of indexing status.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Type of indexing status.",
        SerializedName = @"status",
        PossibleTypes = new [] { typeof(string) })]
        string IndexingInfoStatus { get; set; }

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

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string Name { 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 = @"subType",
        PossibleTypes = new [] { typeof(string) })]
        string PlanSubType { get; set; }
        /// <summary>Display Name of Region</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Display Name of Region",
        SerializedName = @"displayName",
        PossibleTypes = new [] { typeof(string) })]
        string RegionDisplayName { get; set; }
        /// <summary>Region Id</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Region Id",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(long) })]
        long? RegionId { get; set; }
        /// <summary>Geolocation Latitude</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Geolocation Latitude",
        SerializedName = @"latitude",
        PossibleTypes = new [] { typeof(string) })]
        string RegionLatitude { get; set; }
        /// <summary>Geolocation Longitude</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Geolocation Longitude",
        SerializedName = @"longitude",
        PossibleTypes = new [] { typeof(string) })]
        string RegionLongitude { get; set; }
        /// <summary>Region Name</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Region Name",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string RegionName { get; set; }
        /// <summary>Delayed by n Hrs</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Delayed by n Hrs",
        SerializedName = @"delayTime",
        PossibleTypes = new [] { typeof(string) })]
        string RestoreActivityControlOptionDelayTime { get; set; }
        /// <summary>True if the activity will be enabled after a delay time interval</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if the activity will be enabled after a delay time interval",
        SerializedName = @"enableAfterDelay",
        PossibleTypes = new [] { typeof(bool) })]
        bool? RestoreActivityControlOptionEnableAfterDelay { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string RestoreActivityControlOptionsTimeZoneName { 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; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"securityAssociations",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.ISecurityAssoc) })]
        Commvault.Powershell.Models.ISecurityAssoc[] SecurityAssociations { get; set; }
        /// <summary>True if auto detect VM Owner enabled</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if auto detect VM Owner enabled",
        SerializedName = @"autoDetectVMOwner",
        PossibleTypes = new [] { typeof(bool) })]
        bool? SettingAutoDetectVMOwner { get; set; }
        /// <summary>
        /// True if metadata collection is enabled for intellisnap jobs. Only applicable for Indexing v1
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if metadata collection is enabled for intellisnap jobs. Only applicable for Indexing v1",
        SerializedName = @"collectFileDetailsFromSnapshotCopy",
        PossibleTypes = new [] { typeof(bool) })]
        bool? SettingCollectFileDetailsFromSnapshotCopy { get; set; }
        /// <summary>True if metadata collection is enabled. Only applicable for Indexing v1</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if metadata collection is enabled. Only applicable for Indexing v1",
        SerializedName = @"collectFileDetailsforGranularRecovery",
        PossibleTypes = new [] { typeof(bool) })]
        bool? SettingCollectFileDetailsforGranularRecovery { get; set; }
        /// <summary>Custom snapshot resource group GUID for Azure</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Custom snapshot resource group GUID for Azure",
        SerializedName = @"customSnapshotResourceGroup",
        PossibleTypes = new [] { typeof(string) })]
        string SettingCustomSnapshotResourceGroup { get; set; }
        /// <summary>True if Datastore Free space check is enabled</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if Datastore Free space check is enabled",
        SerializedName = @"datastoreFreespaceCheck",
        PossibleTypes = new [] { typeof(bool) })]
        bool? SettingDatastoreFreespaceCheck { get; set; }
        /// <summary>precentage of datastore free space check value</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"precentage of datastore free space check value",
        SerializedName = @"datastoreFreespaceRequired",
        PossibleTypes = new [] { typeof(long) })]
        long? SettingDatastoreFreespaceRequired { get; set; }
        /// <summary>Is the VM App Aware</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Is the VM App Aware",
        SerializedName = @"isApplicationAware",
        PossibleTypes = new [] { typeof(bool) })]
        bool? SettingIsApplicationAware { get; set; }
        /// <summary>Start Time for the VM Group Job</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Start Time for the VM Group Job",
        SerializedName = @"jobStartTime",
        PossibleTypes = new [] { typeof(long) })]
        long? SettingJobStartTime { get; set; }
        /// <summary>Number of readers for backup</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Number of readers for backup",
        SerializedName = @"noOfReaders",
        PossibleTypes = new [] { typeof(long) })]
        long? SettingNoOfReaders { get; set; }
        /// <summary>transport mode based on environment. Values are case sensitive</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"transport mode based on environment. Values are case sensitive",
        SerializedName = @"transportMode",
        PossibleTypes = new [] { typeof(string) })]
        string SettingTransportMode { get; set; }
        /// <summary>True if Changed Block Tracking is enabled</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if Changed Block Tracking is enabled",
        SerializedName = @"useChangedBlockTrackingOnVM",
        PossibleTypes = new [] { typeof(bool) })]
        bool? SettingUseChangedBlockTrackingOnVM { get; set; }
        /// <summary>True if use VM CheckPoint setting is enabled</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if use VM CheckPoint setting is enabled",
        SerializedName = @"useVMCheckpointSetting",
        PossibleTypes = new [] { typeof(bool) })]
        bool? SettingUseVMCheckpointSetting { get; set; }

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

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

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

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

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"backupCopyInterface",
        PossibleTypes = new [] { typeof(string) })]
        string SnapshotManagementBackupCopyInterface { get; set; }
        /// <summary>True if hardware snapshot is enabled</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if hardware snapshot is enabled",
        SerializedName = @"enableHardwareSnapshot",
        PossibleTypes = new [] { typeof(bool) })]
        bool? SnapshotManagementEnableHardwareSnapshot { get; set; }
        /// <summary>True if full copy of amazon snapshot to different amazon account is enabled</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if full copy of amazon snapshot to different amazon account is enabled",
        SerializedName = @"isCrossAccountCopyEnabled",
        PossibleTypes = new [] { typeof(bool) })]
        bool? SnapshotManagementIsCrossAccountCopyEnabled { get; set; }
        /// <summary>
        /// True if replicate and copy or sharing of amazon snapshot to different amazon account in same or different geographic location
        /// is enabled
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if replicate and copy or sharing of amazon snapshot to different amazon account in same or different geographic location is enabled",
        SerializedName = @"isCrossAccountEnabled",
        PossibleTypes = new [] { typeof(bool) })]
        bool? SnapshotManagementIsCrossAccountEnabled { get; set; }
        /// <summary>True if independent disk option is enabled</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if independent disk option is enabled",
        SerializedName = @"isIndependentDisksEnabled",
        PossibleTypes = new [] { typeof(bool) })]
        bool? SnapshotManagementIsIndependentDisksEnabled { get; set; }
        /// <summary>True if raw device maps option is enabled</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if raw device maps option is enabled",
        SerializedName = @"isRawDeviceMapsEnabled",
        PossibleTypes = new [] { typeof(bool) })]
        bool? SnapshotManagementIsRawDeviceMapsEnabled { get; set; }
        /// <summary>Name of ESX Host</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Name of ESX Host",
        SerializedName = @"snapMountESXHost",
        PossibleTypes = new [] { typeof(string) })]
        string SnapshotManagementSnapMountEsxHost { get; set; }
        /// <summary>True if separate proxy client is used for snap to tape</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"True if separate proxy client is used for snap to tape",
        SerializedName = @"useSeparateProxyForSnapToTape",
        PossibleTypes = new [] { typeof(bool) })]
        bool? SnapshotManagementUseSeparateProxyForSnapToTape { get; set; }
        /// <summary>Virtual machine application user name</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Virtual machine application user name",
        SerializedName = @"vmApplicationUserName",
        PossibleTypes = new [] { typeof(string) })]
        string SnapshotManagementVMApplicationUserName { get; set; }
        /// <summary>subclient entity status</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"subclient entity status",
        SerializedName = @"status",
        PossibleTypes = new [] { typeof(long) })]
        long? Status { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"hypervisorName",
        PossibleTypes = new [] { typeof(string) })]
        string SummaryHypervisorName { get; set; }
        /// <summary>Last Backup Job Size</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Last Backup Job Size",
        SerializedName = @"lastBackupSize",
        PossibleTypes = new [] { typeof(long) })]
        long? SummaryLastBackupSize { get; set; }
        /// <summary>Last Backup time of the VMGroup</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Last Backup time of the VMGroup",
        SerializedName = @"lastBackupTime",
        PossibleTypes = new [] { typeof(long) })]
        long? SummaryLastBackupTime { get; set; }
        /// <summary>Next Backup Job start time</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Next Backup Job start time",
        SerializedName = @"nextBackupTime",
        PossibleTypes = new [] { typeof(long) })]
        long? SummaryNextBackupTime { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string TimeZoneName { get; set; }
        /// <summary>VM Backed up with error count</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"VM Backed up with error count",
        SerializedName = @"vmBackedUpWithErrorCount",
        PossibleTypes = new [] { typeof(long) })]
        long? VMBackupInfoVmbackedUpWithErrorCount { get; set; }
        /// <summary>vm never Backed up count</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"vm never Backed up count",
        SerializedName = @"vmNeverBackedUpCount",
        PossibleTypes = new [] { typeof(long) })]
        long? VMBackupInfoVmneverBackedUpCount { get; set; }
        /// <summary>VM Missed to protect count</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"VM Missed to protect count",
        SerializedName = @"vmNotProtectedCount",
        PossibleTypes = new [] { typeof(long) })]
        long? VMBackupInfoVmnotProtectedCount { get; set; }
        /// <summary>VMs pending for Backup</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"VMs pending for Backup",
        SerializedName = @"vmPendingCount",
        PossibleTypes = new [] { typeof(long) })]
        long? VMBackupInfoVmpendingCount { get; set; }
        /// <summary>Protected vm Count</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Protected vm Count",
        SerializedName = @"vmProtectedCount",
        PossibleTypes = new [] { typeof(long) })]
        long? VMBackupInfoVmprotectedCount { get; set; }
        /// <summary>Total vm Count</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @" Total vm Count",
        SerializedName = @"vmTotalCount",
        PossibleTypes = new [] { typeof(long) })]
        long? VMBackupInfoVmtotalCount { get; set; }

    }
    /// GetVMGroupResp
    internal partial interface IGetVMGroupRespInternal

    {
        Commvault.Powershell.Models.IIdName[] AccessNode { get; set; }

        Commvault.Powershell.Models.IActivityControlOptions ActivityControl { get; set; }

        Commvault.Powershell.Models.IBackupActivityControlOptionsProp ActivityControlBackupActivityControlOptions { get; set; }
        /// <summary>true if Backup is enabled</summary>
        bool? ActivityControlEnableBackup { get; set; }
        /// <summary>true if Restore is enabled</summary>
        bool? ActivityControlEnableRestore { get; set; }

        Commvault.Powershell.Models.IBackupActivityControlOptionsProp ActivityControlRestoreActivityControlOptions { get; set; }
        /// <summary>vmAppValidation</summary>
        Commvault.Powershell.Models.IVMAppValidation ApplicationValidation { get; set; }
        /// <summary>Delayed by n Hrs</summary>
        string BackupActivityControlOptionDelayTime { get; set; }
        /// <summary>True if the activity will be enabled after a delay time interval</summary>
        bool? BackupActivityControlOptionEnableAfterDelay { get; set; }

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

        long? BackupActivityControlOptionsTimeZoneId { get; set; }

        string BackupActivityControlOptionsTimeZoneName { get; set; }

        long? BackupsetId { get; set; }

        string BackupsetName { get; set; }

        Commvault.Powershell.Models.IVMGroupCommonProperties CommonProperties { get; set; }

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

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

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

        string CommonPropertyHypervisorType { get; set; }
        /// <summary>indexingInfo</summary>
        Commvault.Powershell.Models.IIndexingInfo CommonPropertyIndexingInfo { get; set; }

        Commvault.Powershell.Models.IIdName CommonPropertyInstance { get; set; }
        /// <summary>True if the hypervisor is deleted</summary>
        bool? CommonPropertyIsDeletedHypervisor { get; set; }
        /// <summary>True if this is a ETCD Subclient</summary>
        bool? CommonPropertyIsEtcdSubclient { get; set; }
        /// <summary>true if the hypervisor has been deconfigured</summary>
        bool? CommonPropertyIsHypervisorDeconfigured { get; set; }
        /// <summary>True if Indexing version is 2</summary>
        bool? CommonPropertyIsIndexingV2 { get; set; }
        /// <summary>True if we need to show full backup level</summary>
        bool? CommonPropertyShowFullBackupLevel { get; set; }

        Commvault.Powershell.Models.IVMContent[] Content { 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; }

        long? CrossAccountCopyDestinationClientId { get; set; }

        string CrossAccountCopyDestinationClientName { get; set; }

        long? DataBackupStoragePolicyId { get; set; }

        string DataBackupStoragePolicyName { get; set; }

        Commvault.Powershell.Models.IVMDiskFilter[] DiskFilters { get; set; }

        Commvault.Powershell.Models.IVMContent[] Filters { get; set; }

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

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

        long? HypervisorId { get; set; }

        string HypervisorName { get; set; }

        long? Id { get; set; }
        /// <summary>Indexing Message</summary>
        string IndexingInfoMessage { get; set; }
        /// <summary>Type of indexing status.</summary>
        string IndexingInfoStatus { get; set; }

        long? InstanceId { get; set; }

        string InstanceName { get; set; }

        string Name { get; set; }

        long? PlanId { get; set; }

        string PlanName { get; set; }

        string PlanSubType { get; set; }
        /// <summary>Display Name of Region</summary>
        string RegionDisplayName { get; set; }
        /// <summary>Region Id</summary>
        long? RegionId { get; set; }
        /// <summary>Geolocation Latitude</summary>
        string RegionLatitude { get; set; }
        /// <summary>Geolocation Longitude</summary>
        string RegionLongitude { get; set; }
        /// <summary>Region Name</summary>
        string RegionName { get; set; }
        /// <summary>Delayed by n Hrs</summary>
        string RestoreActivityControlOptionDelayTime { get; set; }
        /// <summary>True if the activity will be enabled after a delay time interval</summary>
        bool? RestoreActivityControlOptionEnableAfterDelay { get; set; }

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

        long? RestoreActivityControlOptionsTimeZoneId { get; set; }

        string RestoreActivityControlOptionsTimeZoneName { get; set; }

        long? SavedCredentialsId { get; set; }

        string SavedCredentialsName { get; set; }

        Commvault.Powershell.Models.ISecurityAssoc[] SecurityAssociations { get; set; }
        /// <summary>True if auto detect VM Owner enabled</summary>
        bool? SettingAutoDetectVMOwner { get; set; }
        /// <summary>
        /// True if metadata collection is enabled for intellisnap jobs. Only applicable for Indexing v1
        /// </summary>
        bool? SettingCollectFileDetailsFromSnapshotCopy { get; set; }
        /// <summary>True if metadata collection is enabled. Only applicable for Indexing v1</summary>
        bool? SettingCollectFileDetailsforGranularRecovery { get; set; }
        /// <summary>Custom snapshot resource group GUID for Azure</summary>
        string SettingCustomSnapshotResourceGroup { get; set; }
        /// <summary>True if Datastore Free space check is enabled</summary>
        bool? SettingDatastoreFreespaceCheck { get; set; }
        /// <summary>precentage of datastore free space check value</summary>
        long? SettingDatastoreFreespaceRequired { get; set; }
        /// <summary>guestCredentialInfo</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo SettingGuestCredentials { get; set; }
        /// <summary>Is the VM App Aware</summary>
        bool? SettingIsApplicationAware { get; set; }
        /// <summary>Start Time for the VM Group Job</summary>
        long? SettingJobStartTime { get; set; }
        /// <summary>Number of readers for backup</summary>
        long? SettingNoOfReaders { get; set; }
        /// <summary>transport mode based on environment. Values are case sensitive</summary>
        string SettingTransportMode { get; set; }
        /// <summary>True if Changed Block Tracking is enabled</summary>
        bool? SettingUseChangedBlockTrackingOnVM { get; set; }
        /// <summary>True if use VM CheckPoint setting is enabled</summary>
        bool? SettingUseVMCheckpointSetting { get; set; }

        string SettingVMBackupType { get; set; }

        Commvault.Powershell.Models.IVMGroupSettings Settings { get; set; }

        long? SnapEngineId { get; set; }

        string SnapEngineName { get; set; }

        long? SnapMountProxyId { get; set; }

        string SnapMountProxyName { get; set; }

        Commvault.Powershell.Models.ISnapCopyInfo SnapshotManagement { get; set; }

        string SnapshotManagementBackupCopyInterface { get; set; }

        Commvault.Powershell.Models.IIdName SnapshotManagementCrossAccountCopyDestinationClient { get; set; }
        /// <summary>True if hardware snapshot is enabled</summary>
        bool? SnapshotManagementEnableHardwareSnapshot { get; set; }
        /// <summary>True if full copy of amazon snapshot to different amazon account is enabled</summary>
        bool? SnapshotManagementIsCrossAccountCopyEnabled { get; set; }
        /// <summary>
        /// True if replicate and copy or sharing of amazon snapshot to different amazon account in same or different geographic location
        /// is enabled
        /// </summary>
        bool? SnapshotManagementIsCrossAccountEnabled { get; set; }
        /// <summary>True if independent disk option is enabled</summary>
        bool? SnapshotManagementIsIndependentDisksEnabled { get; set; }
        /// <summary>True if raw device maps option is enabled</summary>
        bool? SnapshotManagementIsRawDeviceMapsEnabled { get; set; }

        Commvault.Powershell.Models.IIdName SnapshotManagementSnapEngine { get; set; }
        /// <summary>Name of ESX Host</summary>
        string SnapshotManagementSnapMountEsxHost { get; set; }

        Commvault.Powershell.Models.IIdName SnapshotManagementSnapMountProxy { get; set; }
        /// <summary>True if separate proxy client is used for snap to tape</summary>
        bool? SnapshotManagementUseSeparateProxyForSnapToTape { get; set; }
        /// <summary>Virtual machine application user name</summary>
        string SnapshotManagementVMApplicationUserName { get; set; }
        /// <summary>subclient entity status</summary>
        long? Status { get; set; }
        /// <summary>vmGroupDetailsSummary</summary>
        Commvault.Powershell.Models.IVMGroupDetailsSummary Summary { get; set; }

        string SummaryHypervisorName { get; set; }
        /// <summary>Last Backup Job Size</summary>
        long? SummaryLastBackupSize { get; set; }
        /// <summary>Last Backup time of the VMGroup</summary>
        long? SummaryLastBackupTime { get; set; }
        /// <summary>Next Backup Job start time</summary>
        long? SummaryNextBackupTime { get; set; }

        Commvault.Powershell.Models.IPlanIdNameType SummaryPlan { get; set; }
        /// <summary>RegionInfo</summary>
        Commvault.Powershell.Models.IRegionInfo SummaryRegion { get; set; }

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

        long? TimeZoneId { get; set; }

        string TimeZoneName { get; set; }

        Commvault.Powershell.Models.IVMBackupInfo VMBackupInfo { get; set; }
        /// <summary>VM Backed up with error count</summary>
        long? VMBackupInfoVmbackedUpWithErrorCount { get; set; }
        /// <summary>vm never Backed up count</summary>
        long? VMBackupInfoVmneverBackedUpCount { get; set; }
        /// <summary>VM Missed to protect count</summary>
        long? VMBackupInfoVmnotProtectedCount { get; set; }
        /// <summary>VMs pending for Backup</summary>
        long? VMBackupInfoVmpendingCount { get; set; }
        /// <summary>Protected vm Count</summary>
        long? VMBackupInfoVmprotectedCount { get; set; }
        /// <summary>Total vm Count</summary>
        long? VMBackupInfoVmtotalCount { get; set; }

    }
}