//
// Copyright (c) 2010 Microsoft Corporation, All Rights Reserved
//

#pragma autorecover
#pragma classflags("forceupdate")

//
// Remove the top level classes first to guarantee a fresh update.
//

#pragma namespace("\\\\.\\root\\virtualization\\v2\\ms_804")

#pragma deleteclass("CIM_AffectedJobElement",NOFAIL)
#pragma deleteclass("CIM_Component",NOFAIL)
#pragma deleteclass("CIM_Dependency",NOFAIL)
#pragma deleteclass("CIM_ElementCapabilities",NOFAIL)
#pragma deleteclass("CIM_ElementConformsToProfile",NOFAIL)
#pragma deleteclass("CIM_ElementSettingData",NOFAIL)
#pragma deleteclass("CIM_Error",NOFAIL)
#pragma deleteclass("CIM_LogicalIdentity",NOFAIL)
#pragma deleteclass("CIM_ManagedElement",NOFAIL)
#pragma deleteclass("CIM_MemberOfCollection",NOFAIL)
#pragma deleteclass("CIM_OwningJobElement",NOFAIL)
#pragma deleteclass("CIM_ServiceAffectsElement",NOFAIL)
#pragma deleteclass("CIM_SettingsDefineState",NOFAIL)

#pragma deleteclass("Msvm_ServicingSettings",NOFAIL)
#pragma deleteclass("Msvm_SummaryInformationBase",NOFAIL)
#pragma deleteclass("Msvm_VirtualHardDiskInfo",NOFAIL)
#pragma deleteclass("Msvm_VirtualHardDiskSettingData",NOFAIL)
#pragma deleteclass("Msvm_VHDSetInformation",NOFAIL)
#pragma deleteclass("Msvm_VHDSSnapshotInformation",NOFAIL)
#pragma deleteclass("Msvm_VirtualDiskChangedRange",NOFAIL)

#pragma namespace("\\\\.\\root\\virtualization\\v2")
instance of __namespace{ name="ms_804";};
#pragma namespace("\\\\.\\root\\virtualization\\v2\\ms_804")

[AMENDMENT, LOCALE(0x0804)] 
class CIM_Component
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_Dependency
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_ElementCapabilities
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_ElementSettingData
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_ManagedElement
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_ServiceAffectsElement
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_SystemComponent : CIM_Component
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_SettingsDefineCapabilities : CIM_Component
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_BasedOn : CIM_Dependency
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_HostedDependency : CIM_Dependency
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_DeviceSAPImplementation : CIM_Dependency
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_LogicalIdentity
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_HostedService : CIM_HostedDependency
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_ManagedSystemElement : CIM_ManagedElement
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_Capabilities : CIM_ManagedElement
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_SettingData : CIM_ManagedElement
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_LogicalElement : CIM_ManagedSystemElement
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_EnabledLogicalElement : CIM_LogicalElement
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_EnabledLogicalElementCapabilities : CIM_Capabilities
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_Job : CIM_LogicalElement
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_SoftwareElement : CIM_LogicalElement
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_Service : CIM_EnabledLogicalElement
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_System : CIM_EnabledLogicalElement
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_LogicalDevice : CIM_EnabledLogicalElement
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_ConcreteJob : CIM_Job
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_OwningJobElement
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_SystemDevice : CIM_SystemComponent
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_VirtualSystemSettingData : CIM_SettingData
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_VirtualSystemManagementService : CIM_Service
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_VirtualSystemManagementCapabilities : CIM_EnabledLogicalElementCapabilities
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_VirtualSystemSnapshotService : CIM_Service
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_LastAppliedSnapshot : CIM_Dependency
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_SnapshotOfVirtualSystem : CIM_Dependency
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_Collection : CIM_ManagedElement
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_CollectionOfMSEs : CIM_Collection
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_MemberOfCollection
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_CollectedMSEs : CIM_MemberOfCollection
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_View : CIM_ManagedElement
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_Processor : CIM_LogicalDevice
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_Controller : CIM_LogicalDevice
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_LogicalPort : CIM_LogicalDevice
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_MediaAccessDevice : CIM_LogicalDevice
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_StorageExtent : CIM_LogicalDevice
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_UserDevice : CIM_LogicalDevice
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_TPM : CIM_LogicalDevice
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_DisplayController : CIM_Controller
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_SerialController : CIM_Controller
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_NetworkPort : CIM_LogicalPort
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_EthernetPort : CIM_NetworkPort
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_FCPort : CIM_NetworkPort
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_WiFiPort : CIM_NetworkPort
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_PointingDevice : CIM_UserDevice
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_Memory : CIM_StorageExtent
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_LogicalDisk : CIM_StorageExtent
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_IDEController : CIM_Controller
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_ProtocolController : CIM_LogicalDevice
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_SCSIProtocolController : CIM_ProtocolController
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_DiskDrive : CIM_MediaAccessDevice
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_DisketteDrive : CIM_MediaAccessDevice
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_DVDDrive : CIM_MediaAccessDevice
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_PortOnDevice : CIM_HostedDependency
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_VideoHead : CIM_LogicalDevice
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_VideoHeadOnController : CIM_HostedDependency
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_DeviceConnection : CIM_Dependency
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_ControlledBy : CIM_DeviceConnection
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_ServiceAccessPoint : CIM_EnabledLogicalElement
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_ProtocolEndpoint : CIM_ServiceAccessPoint
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_NetworkService : CIM_Service
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_ForwardingService : CIM_NetworkService
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_TransparentBridgingService : CIM_ForwardingService
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_LANEndpoint : CIM_ProtocolEndpoint
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_VLANEndpoint : CIM_ProtocolEndpoint
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_DynamicForwardingEntry : CIM_LogicalElement
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_WiFiEndpoint : CIM_LANEndpoint
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_SAPSAPDependency : CIM_Dependency
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_SwitchPortDynamicForwarding : CIM_Dependency
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_TransparentBridgingDynamicForwarding : CIM_Dependency
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_ConcreteDependency : CIM_Dependency
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_ActiveConnection : CIM_SAPSAPDependency
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_BindsTo : CIM_SAPSAPDependency
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_BindsToLANEndpoint : CIM_BindsTo
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_VirtualEthernetSwitchSettingData : CIM_VirtualSystemSettingData
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_Error
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_AllocationCapabilities : CIM_Capabilities
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_ResourceAllocationSettingData : CIM_SettingData
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_ResourcePool : CIM_LogicalElement
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_ElementAllocatedFromPool : CIM_Dependency
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_ResourceAllocationFromPool : CIM_Dependency
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_MediaPresent : CIM_Dependency
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_ProtocolControllerForDevice : CIM_Dependency
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_ProtocolControllerForUnit : CIM_ProtocolControllerForDevice
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_ConcreteComponent : CIM_Component
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_EthernetPortAllocationSettingData : CIM_ResourceAllocationSettingData
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_StorageAllocationSettingData : CIM_ResourceAllocationSettingData
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_ComputerSystem : CIM_System
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_AffectedJobElement
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_MostCurrentSnapshotInBranch : CIM_Dependency
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_VirtualSystemSettingDataComponent : CIM_Component
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_VirtualSystemMigrationCapabilities : CIM_Capabilities
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_VirtualSystemMigrationService : CIM_Service
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_VirtualSystemMigrationSettingData : CIM_SettingData
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_BIOSElement : CIM_SoftwareElement
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_SystemBIOS : CIM_SystemComponent
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_MetricService : CIM_Service
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_MetricServiceCapabilities : CIM_EnabledLogicalElementCapabilities
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_BaseMetricDefinition : CIM_ManagedElement
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_AggregationMetricDefinition : CIM_BaseMetricDefinition
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_BaseMetricValue : CIM_ManagedElement
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_AggregationMetricValue : CIM_BaseMetricValue
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_MetricDefForME : CIM_Dependency
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_MetricForME : CIM_Dependency
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_MetricInstance : CIM_Dependency
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_Indication : __ExtrinsicEvent
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_ProcessIndication : CIM_Indication
{
};

[AMENDMENT, LOCALE(0x0804)] 
class CIM_AlertIndication : CIM_ProcessIndication
{
};

[Description("Represents the virtual system migration service. It is used for migrating a virtual system or for migration the storage of a virtual system from one virtualization platform to another.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualSystemMigrationService : CIM_VirtualSystemMigrationService
{
  [Description("Method to migrate a virtual system or the storage of a virtual system to a destination host specified by a hostname.\n") : Amended] uint32 MigrateVirtualSystemToHost([In] CIM_ComputerSystem Ref ComputerSystem,[In] string DestinationHost,[In] string MigrationSettingData,[In] string NewSystemSettingData,[In] string NewResourceSettingData[],[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Description("Method to migrate a virtual system or the storage of a virtual system to a destination host specified by a hostname.\n") : Amended] uint32 CheckVirtualSystemIsMigratable([In] CIM_ComputerSystem Ref ComputerSystem,[In] string DestinationHost,[In] string MigrationSettingData,[In] string NewSystemSettingData,[In] string NewResourceSettingData[],[Out] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Modifies the setting data for the service.") : Amended] uint32 ModifyServiceSettings([In,Description("The modified setting data for the service.") : Amended] string ServiceSettingData,[Out,Description("An optional parameter for monitoring progress of the operation, which is used if the method could not be executed synchronously. If the operation is executing asynchronously, the return value is 4096.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Adds migration network subnets for virtual system migration service.") : Amended] uint32 AddNetworkSettings([IN,Description("Array of migration network settings") : Amended] string NetworkSettings[],[Out,Description("An optional parameter for monitoring progress of the operation, which is used if the method could not be executed synchronously. If the operation is executing asynchronously, the return value is 4096.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Removes migration network subnets from virtual system migration service.") : Amended] uint32 RemoveNetworkSettings([IN] Msvm_VirtualSystemMigrationNetworkSettingData Ref NetworkSettings[],[Out,Description("An optional parameter for monitoring progress of the operation, which is used if the method could not be executed synchronously. If the operation is executing asynchronously, the return value is 4096.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Modifies migration network subnets of virtual system migration service.") : Amended] uint32 ModifyNetworkSettings([IN,Description("Array of migration network settings") : Amended] string NetworkSettings[],[Out,Description("An optional parameter for monitoring progress of the operation, which is used if the method could not be executed synchronously. If the operation is executing asynchronously, the return value is 4096.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Generates an opaque blob of data containing compatibility information for the specified system.\nRemarks: The GetSystemCompatibilityInfo method is used in conjunction with CheckSystemCompatibilityInfo to determine whether a quick or live migration of a VM to another hosting computer system is possible without first trying the migration. The compatibility information is dependent on the current EnabledState property of the system specified in the ComputerSystem parameter. In addition, the compatibility informationfor a VM may change when a snapshot is applied or the system is restarted. A VM in the Disabled state (EnabledState property value of 3) is compatible with more systems than one in the Suspended or Enabled states (EnabledState property value of 32769 or 2).") : Amended] uint32 GetSystemCompatibilityInfo([In,Description("A reference to a CIM_ComputerSystem class that represents the VM to retrieve compatibility information. If the ComputerSystem parameter refers to the hosting computer system, the data returned in the CompatibilityInfo parameter can be used to determine whether any of the VMs on the hosting computer system can be quickly migrated to another hosting computer system.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[Out,Description("An opaque blob of data that can be passed to the CheckSystemCompatibilityInfo method on another hosting computer system to confirm compatibility.") : Amended] uint8 CompatibilityInfo[]);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "Not compatible"} : Amended,Description("tbd") : Amended] uint32 CheckSystemCompatibilityInfo([In,Description("tbd") : Amended] uint8 CompatibilityInfo[],[Out,Description("tbd") : Amended] string Reasons[]);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Returns a list of Msvm_CompatibilityVector instances that can be used to check for VM to host compatibility.") : Amended] uint32 GetSystemCompatibilityVectors([In,Description("A reference to a CIM_ComputerSystem class that represents the VM to retrieve compatibility vectors. If the ComputerSystem parameter refers to the hosting computer system, the data returned in the CompatibilityInfo parameter can be used to determine whether any of the VMs on the hosting computer system can be quickly migrated to another hosting computer system.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[Out,Description("An array of Msvm_CompatibilityVector instances containing the compatibility information for the virtual machines or hosting computer system.") : Amended] Msvm_CompatibilityVector CompatibilityVectors[]);
  [Description("The number of currently in-flight virtual system migrations.") : Amended] uint32 ActiveVirtualSystemMigrationCount;
  [Description("The number of currently in-flight storage migrations.") : Amended] uint32 ActiveStorageMigrationCount;
  [Description("The list of IP addresses of the host, which  can be used for virtual system migration.") : Amended] string MigrationServiceListenerIPAddressList[];
};

[Description("Represents the settings for the virtual system migration service on a host.The properties for this class cannot be modified directly. The client must call the Msvm_VirtualSystemMigrationService.ModifyServiceSettings method to modify any of these properties.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualSystemMigrationServiceSettingData : CIM_SettingData
{
  [Description("Enables or disables virtual system migration. Storage migration is always enabled.\nThis is a read-only property, but it can be changed using the ModifyServiceSettings method of the Msvm_VirtualSystemMigrationService class.") : Amended] boolean EnableVirtualSystemMigration;
  [Description("Defines the maximum number of active virtual system migrations allowed.\nThis is a read-only property, but it can be changed using the ModifyServiceSettings method of the Msvm_VirtualSystemMigrationService class.") : Amended] uint32 MaximumActiveVirtualSystemMigration;
  [Description("Defines the maximum number of active stroage migrations allowed.\nThis is a read-only property, but it can be changed using the ModifyServiceSettings method of the Msvm_VirtualSystemMigrationService class.") : Amended] uint32 MaximumActiveStorageMigration;
  [Description("Specifies the authentication mechanism used for virtual system migration network connections.\nThis is a read-only property, but it can be changed using the ModifyServiceSettings method of the Msvm_VirtualSystemMigrationService class.") : Amended] uint32 AuthenticationType;
  [Description("Enable or disable compression of live migration traffic.\nThis is a read-only property, but it can be changed using the ModifyServiceSettings method of the Msvm_VirtualSystemMigrationService class.") : Amended] boolean EnableCompression;
  [Description("Enable or disable use of SMB as a transport type for transferring VM state between the Hyper-V hosts during virtual system migration.\nThis is a read-only property, but it can be changed using the ModifyServiceSettings method of the Msvm_VirtualSystemMigrationService class.") : Amended] boolean EnableSmbTransport;
};

[Description("Represents the migration settings for migrating a virtual system and \nthe storage attached to a virtual system.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualSystemMigrationSettingData : CIM_VirtualSystemMigrationSettingData
{
  [Description("MigrationType describes the type of migration operation to \nbe performed.\n") : Amended] uint16 MigrationType;
  [Description("If we have a planned computer system at migration destination then DestinationPlannedVirtualSystemId could be set to \nthe GUID of the destination Planned VM where the VM needs to \nmigrate. This is useful for cases where user has created a \nplanned VM at the destination along with resource fixup, and \nwants a VM from source to migrate into this planned VM.") : Amended] string DestinationPlannedVirtualSystemId;
  [Description("For storage migration it will be NULL. For virtual system \nmigration, client can provide a list of IP addresses of the \ndestination host.") : Amended] string DestinationIPAddressList[];
  [Description("For storage migration, this could be set to TRUE or FALSE\nto determine whether, at the end of a storage migration, when the\nsource host is beeing clean up, the read only VHDs should be removedor not.") : Amended] boolean RetainVhdCopiesOnSource;
  [Description("For live migration, this could be set to TRUE or FALSE to determine\nwhether to compress memory for the live migration traffic or not.") : Amended] boolean EnableCompression;
  [Description("For live migration, this could be set to TRUE or FALSE to determine\nwhether to compress VHD for the live migration traffic or not.") : Amended] boolean EnableVhdCompression;
  [Description("TransportType indicates the type of transport to be applied for a virtual system migration operation.\n- 5(TCP) indicates the TCP transport type.\n- 32768(SMB) indicates that the transport type to\nbe used is SMB for transfer the VM state.\n") : Amended] uint16 TransportType;
  [Description("An array of embedded Msvm_MoveUnmanagedVhd instances which containunmanaged VHDs information.") : Amended] string UnmanagedVhds[];
  [Description("Remove source unmanaged VHDs.\n") : Amended] boolean RemoveSourceUnmanagedVhds;
  [Description("Allow the storage migration operation to overwrite existing .vhdx files.\n") : Amended] boolean AllowOverwriteExistingFile;
  [Description("Do not remove any VHDs during the migration, i.e. VHDs on the source in successand VHDs on the destination in failure.\n") : Amended] boolean AvoidRemovingVHDs;
  [Description("Cancels migration if the blackout threshold time is exceeded. \n") : Amended] boolean CancelIfBlackoutThresholdExceeded;
  [Description("Degree of CPU capping during migration.\n") : Amended] uint16 CPUCappingMagnitude;
};

[Description("Defines the means by which a client can discover the methods provided by the migration service, and valid range of virtual system migration setting data. The VirtualSystemMigrationCapabilities object is associated with VirtualSystemMigrationSettingData objects. These associations define the valid range of migration services available.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualSystemMigrationCapabilities : CIM_VirtualSystemMigrationCapabilities
{
};

[Description("This class represents a migration operation job created for storage orvirtual system migration by virtual system migration service.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_MigrationJob : CIM_ConcreteJob
{
  [Description("Indicates whether the job can be cancelled. The value of this property does not guarantee that a request to cancel the job will succeed.") : Amended] boolean Cancellable;
  [Description("The migration type as defined in Msvm_VirtualSystemMigrationSettingData.MigrationType. This can beused to identify the type of migration the job represents.") : Amended] uint16 MigrationType;
  [Description("GUID of the affected virtual system.") : Amended] string VirtualSystemName;
  [Description("Hostname the destination virtualization platform where the virtual system is migrating. It will be NULL for storage migration.") : Amended] string DestinationHost;
  [Description("For Live Migration this will be set to NULL. For Storage Migration, it will indicate the new path for virtual machine data (ExternalDataRoot, SnapshotDataRoot and SwapFileDataRoot).  This being NULL indicates that virtual machine's data roots are not moving.  Otherwise NewSystemSettingData will be instance of Msvm_VirtualSystemGlobalSettingData containing properties ExternalDataRoot, SnapshotDataRoot and SwapFileDataRoot. If not NULL, ExternalDataRoot property will specify new location of virtual machine's current configuration and saved state. If not NULL, SnapshotDataRoot property will specify new location for snapshots data. If not NULL, SwapFileDataRoot property will specify new location of virtual machine's Smart Paging files ") : Amended] string NewSystemSettingData;
  [Description("For Live Migration this must be set to NULL. For Storage Migration, it will specify the virtual machine's virtual hard drives which moved and where they moved. If not NULL, NewResourceSettingData will contain an array of embedded instances of resource allocation setting data (RASD) which represent VHDs. Destination location will be provided using Connection property of RASD.") : Amended] string NewResourceSettingData[];
  [Description("Indicates the type of Job being tracked by this object.") : Amended] uint16 JobType;
  [Values{"Completed with No Error", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended] uint32 GetError([OUT] string Error);
  [Values{"Completed with No Error", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("When the job is executing or has terminated without error, then this method returns no Msvm_Error instance. However, if the job has failed because of some internal problem or because the job has been terminated by a client, then one or more Msvm_Error instances are returned.") : Amended] uint32 GetErrorEx([Out,Description("If the operational status of the job is not \"OK\", this method returns an array of Msvm_Error instances. Otherwise, if the job is \"OK\", NULL is returned.") : Amended] string Errors[]);
};

[Description("This class represents a guest file service operation job.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_CopyFileToGuestJob : CIM_ConcreteJob
{
  [Description("Indicates whether the job can be cancelled. The value of this property does not guarantee that a request to cancel the job will succeed.") : Amended] boolean Cancellable;
  [Description("GUID of the affected virtual system.") : Amended] string VirtualSystemName;
  [Description("Copy file setting data") : Amended] string CopyFileToGuestSettingData[];
  [Values{"Completed with No Error", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended] uint32 GetError([OUT] string Error);
  [Values{"Completed with No Error", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("When the job is executing or has terminated without error, then this method returns no Msvm_Error instance. However, if the job has failed because of some internal problem or because the job has been terminated by a client, then one or more Msvm_Error instances are returned.") : Amended] uint32 GetErrorEx([Out,Description("If the operational status of the job is not \"OK\", this method returns an array of Msvm_Error instances. Otherwise, if the job is \"OK\", NULL is returned.") : Amended] string Errors[]);
};

[Description("Represents the network on which the virtual system migration service is listening for incoming virtual system migration.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualSystemMigrationNetworkSettingData : CIM_SettingData
{
  [Description("The migration network subnet number.") : Amended] string SubnetNumber;
  [Description("The migration network subnet prefix length.") : Amended] uint8 PrefixLength;
  [Description("The priority metric of this network for migration. Lower is the value higher is the priority.") : Amended] uint32 Metric;
  [Description("The array of tags to represent which management system has set this network for virtual system migration service.") : Amended] string Tags[];
};

[Description("An association used to represent virtual system migration network settings of the virtual system migration service.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualSystemMigrationServiceSettingDataComponent : CIM_Component
{
  [Key,Description("Reference to an instance of Msvm_VirtualSystemMigrationServiceSettingData representing migration service settings.") : Amended] Msvm_VirtualSystemMigrationServiceSettingData Ref GroupComponent;
  [Key,Description("Reference to an instance of Msvm_VirtualSystemMigrationNetworkSettingData representing migration network settings.") : Amended] Msvm_VirtualSystemMigrationNetworkSettingData Ref PartComponent;
};

[Description("Represents the virtualization service present on a single host system. Msvm_VirtualSystemManagementService is used to control the definition, modification, and deletion of virtual systems. It also has methods for performing operations on virtual systems, such as cloning, snapshotting, and the importing or exporting of virtual systems. To retrieve per-VM information, use Msvm_ComputerSystem and Msvm_PlannedComputerSystem.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualSystemManagementService : CIM_VirtualSystemManagementService
{
  [Description("Defines a virtual system.\nInput that is not completely specified may be filled out with default values.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 DefineSystem([IN] string SystemSettings,[IN] string ResourceSettings[],[IN] CIM_VirtualSystemSettingData Ref ReferenceConfiguration,[In(FALSE),Out] CIM_ComputerSystem Ref ResultingSystem,[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Description("Defines a planned virtual system.\nInput that is not completely specified may be filled out with default values.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 DefinePlannedSystem([IN] string SystemSettings,[IN] string ResourceSettings[],[IN] CIM_VirtualSystemSettingData Ref ReferenceConfiguration,[In(FALSE),Out] CIM_ComputerSystem Ref ResultingSystem,[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File in Use"} : Amended] uint32 ValidatePlannedSystem([IN] Msvm_PlannedComputerSystem Ref PlannedSystem,[OUT] CIM_ConcreteJob Ref Job);
  [Description("Destroys a virtual system.\nThe referenced virtual system is destroyed, including any elements scoped by it. Virtual resources are returned to their resource pools, which may imply the destruction of those resources (implementation dependent). If the virtual system is active when the operation is invoked, it is first deactivated and then destroyed. If snapshots were created from the virtual system, these are destroyed as well.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "Invalid State", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 DestroySystem([IN] CIM_ComputerSystem Ref AffectedSystem,[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Description("Modifies virtual system settings.\nWhen applied to the system settings of a \"current\" virtual system configuration, as a side effect the virtual system instance may be modified.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "Invalid State", "Incompatible Parameters", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 ModifySystemSettings([IN] string SystemSettings,[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Description("Upgrades the virtual system.\nWhen applied to the system settings of a \"current\" virtual system configuration") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "Invalid State", "Incompatible Parameters", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 UpgradeSystemVersion([In,Description("A reference to a CIM_ComputerSystem that represents the virtual computer system to be upgraded.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[In] string UpgradeSettingData,[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File in Use"} : Amended,Description("Creates a new planned computer system based on the specified virtual system definition.  The specified definition files must not already be in use by the host system or the virtualization platform.  The SnapshotFolder folder will be searched in order to locate any snapshots referenced by the virtual system definition.  Any referenced snapshots not found in this location must be deleted using the RemoveVirtualSystemSnapshot method, or imported using the ImportSnapshotDefinitions method prior to realizing the planned computer system.") : Amended] uint32 ImportSystemDefinition([IN,Description("The fully-qualified path to the .XML or .EXP file representing the virtual machine which is to be imported.") : Amended] string SystemDefinitionFile,[IN,Description("The fully-qualified path to the folder where the snapshot configurations for this virtual machine can be found.") : Amended] string SnapshotFolder,[IN,Description("Indicates whether to reuse the unique identifier for the virtual computer system.") : Amended] boolean GenerateNewSystemIdentifier,[OUT,Description("If the operation completes synchronously, a reference to the imported virtual machine.") : Amended] Msvm_PlannedComputerSystem Ref ImportedSystem,[OUT,Description("If the operation is being performed asynchronously, a reference to the job object which can be used to track the progress.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File in Use"} : Amended,Description("Searches the SnapshotFolder folder for any snapshot definition files associated with the specified planned computer system.  A new snapshot is created on the planned computer system for every associated definition file in this location.") : Amended] uint32 ImportSnapshotDefinitions([IN,Description("The planned virtual machine which references the snapshots to be imported.") : Amended] Msvm_PlannedComputerSystem Ref PlannedSystem,[IN,Description("The fully-qualified path to the folder where the snapshot configurations for this virtual machine can be found.") : Amended] string SnapshotFolder,[OUT,Description("If the operation completes synchronously, an array of references to the Msvm_VirtualSystemSettingData instances representing the snapshots which were successfully imported.") : Amended] Msvm_VirtualSystemSettingData Ref ImportedSnapshots[],[OUT,Description("If the operation is being performed asynchronously, a reference to the job object which can be used to track the progress.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Validates the configuration of a planned virtual system and converts it to a realized virtual system.  Any runtime or saved state files associated with the virtual system will be copied from the import directory to the virtual system's data root, if applicable.") : Amended] uint32 RealizePlannedSystem([IN,Description("A reference to the Msvm_PlannedComputerSystem instance which is to be converted into a realized virtual system.") : Amended] Msvm_PlannedComputerSystem Ref PlannedSystem,[OUT,Description("If the operation is completed synchronously, a reference to the resulting realized virtual system.") : Amended] CIM_ComputerSystem Ref ResultingSystem,[OUT,Description("If the operation is being performed asynchronously, a reference to the job object which can be used to track the progress.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Exports a virtual computer system, or a snapshot of a virtual computer system, in the \"powered off\" or \"saved\" state to a file. The virtual computer system, its associated configuration settings, and its associated resource settings will be preserved in the resulting file.\nReturn value: If this method is executed synchronously, it returns 0 if it succeeds. If this method is executed asynchronously, it returns 4096 and the Job output parameter can be used to track the progress of the asynchronous operation. Any other return value indicates an error.") : Amended] uint32 ExportSystemDefinition([In,Description("A reference to a CIM_ComputerSystem that represents the virtual computer system to be exported.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[In,Description("The fully-qualified path of the directory to which the virtual computer system is to be exported. If the CreateVmExportSubdirectory property in the ExportSettingData parameter is set to True then this directory can be reused for exporting multiple virtual machines and this method places each virtual computer system definition in a separate subdirectory under this path.") : Amended] string ExportDirectory,[In,Description("An instance of Msvm_VirtualSystemExportSettingData that represents the settings for the export operation.") : Amended] string ExportSettingData,[Out,Description("An optional reference that is returned if the operation is executed asynchronously. If present, the returned reference to an instance of CIM_ConcreteJob can be used to monitor progress and to obtain the result of the method.") : Amended] CIM_ConcreteJob Ref Job);
  [Description("Adds Ethernet feature settings to the configuration of avirtual machine Ethernet connection.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 AddFeatureSettings([In] Msvm_EthernetPortAllocationSettingData Ref AffectedConfiguration,[In] string FeatureSettings[],[In(FALSE),Out] Msvm_EthernetSwitchPortFeatureSettingData Ref ResultingFeatureSettings[],[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Description("Modifies the current feature settings of a virtual machine Ethernet connection.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "Invalid State", "Incompatible Parameters", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 ModifyFeatureSettings([In] string FeatureSettings[],[In(FALSE),Out] Msvm_EthernetSwitchPortFeatureSettingData Ref ResultingFeatureSettings[],[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Description("Removes feature settings from a virtual machine Ethernet connection.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "Invalid State", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 RemoveFeatureSettings([In] Msvm_EthernetSwitchPortFeatureSettingData Ref FeatureSettings[],[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Description("Adds boot sources to a virtual system configuration when applied to a \"state\" virtual system configuration.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 AddBootSourceSettings([IN] CIM_VirtualSystemSettingData Ref AffectedConfiguration,[IN] string BootSourceSettings[],[In(FALSE),Out] CIM_SettingData Ref ResultingBootSourceSettings[],[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Description("Adds resources to a virtual system configuration\n.When applied to a \"state\" virtual system configuration, as a side effect resources are added to the active virtual system.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 AddResourceSettings([IN] CIM_VirtualSystemSettingData Ref AffectedConfiguration,[IN] string ResourceSettings[],[In(FALSE),Out] CIM_ResourceAllocationSettingData Ref ResultingResourceSettings[],[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Description("Modifies virtual resource settings.\nWhen applied to parts of a \"current\" virtual system configuration, as a side effect resources of the active virtual system may be modified.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "Invalid State", "Incompatible Parameters", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 ModifyResourceSettings([IN] string ResourceSettings[],[In(FALSE),Out] CIM_ResourceAllocationSettingData Ref ResultingResourceSettings[],[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Description("Adds guest service settings to a virtual system configuration.\nWhen applied to parts of a \"current\" virtual system configuration, as a side effect guest services of the active virtual system may be modified.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 AddGuestServiceSettings([IN] CIM_VirtualSystemSettingData Ref AffectedConfiguration,[IN] string GuestServiceSettings[],[In(FALSE),Out] CIM_SettingData Ref ResultingGuestServiceSettings[],[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Description("Modifies guest service settings.\nWhen applied to parts of a \"current\" virtual system configuration, as a side effect guest services of the active virtual system may be modified.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "Invalid State", "Incompatible Parameters", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 ModifyGuestServiceSettings([IN] string GuestServiceSettings[],[In(FALSE),Out] CIM_SettingData Ref ResultingGuestServiceSettings[],[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Description("Removes virtual resource settings from a virtual system configuration.\nWhen applied to parts of a \"current\" virtual system configuration, as a side effect resources of the active virtual system may be removed.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "Invalid State", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 RemoveBootSourceSettings([IN] CIM_SettingData Ref BootSourceSettings[],[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Description("Removes virtual resource settings from a virtual system configuration.\nWhen applied to parts of a \"current\" virtual system configuration, as a side effect resources of the active virtual system may be removed.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "Invalid State", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 RemoveResourceSettings([IN] CIM_ResourceAllocationSettingData Ref ResourceSettings[],[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Description("Removes guest service settings from a virtual system configuration.\nWhen applied to parts of a \"current\" virtual system configuration, as a side effect guest services of the active virtual system may be modified.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "Invalid State", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 RemoveGuestServiceSettings([In] CIM_SettingData Ref GuestServiceSettings[],[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Retrieves the thumbnail image of an existing virtual system.\nReturn value: This method returns values in raw RGB 565 format.") : Amended] uint32 GetVirtualSystemThumbnailImage([In,Description("A reference to the CIM_VirtualSystemSettingData instance whose thumbnail image is to be retrieved. This instance may represent either the current instantiation of the virtual computer system, or an instance of a virtual computer system snapshot.") : Amended] CIM_VirtualSystemSettingData Ref TargetSystem,[In,Description("The width of the desired image.") : Amended] uint16 WidthPixels,[In,Description("The height of the desired image.") : Amended] uint16 HeightPixels,[Out,Description("The image data.") : Amended] uint8 ImageData[]);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Modifies the setting data for the service.") : Amended] uint32 ModifyServiceSettings([In,Description("The modified setting data for the service.") : Amended] string SettingData,[Out,Description("An optional parameter for monitoring progress of the operation, which is used if the method could not be executed synchronously. If the operation is executing asynchronously, the return value is 4096.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Returns virtual system summary information.") : Amended] uint32 GetSummaryInformation([In,Description("An array of CIM_VirtualSystemSettingData instances that specifies the virtual machines and/or snapshots for which information is to be retrieved. If this parameter is NULL, information for all virtual machines is retrieved.") : Amended] CIM_VirtualSystemSettingData Ref SettingData[],[In,Values{"Name", "Element Name", "Creation Time", "Notes", "Number of Processors", "Small Thumbnail Image (80x60)", "Medium Thumbnail Image (160x120)", "Large Thumbnail Image (320x240)", "AllocatedGPU", "VirtualSwitchNames", "Version", "Shielded", "EnabledState", "ProcessorLoad", "ProcessorLoadHistory", "MemoryUsage", "Heartbeat", "Uptime", "GuestOperatingSystem", "Snapshots", "AsynchronousTasks", "HealthState", "OperationalStatus", "StatusDescriptions", "MemoryAvailable", "AvailableMemoryBuffer", "Replication Mode", "Replication State", "Replication HealthTest Replica System", "Application Health", "SwapFilesInUse", "IntegrationServicesVersionState", "MemorySpansPhysicalNumaNodes", "OtherEnabledState"} : Amended,Description("An array of enumeration values (which correspond to the properties in the Msvm_SummaryInformation class) that specifies the data to retrieve for the virtual machines and/or snapshots specified in the SettingData array. Values in the 0-99 range apply to both virtual machines and snapshots. Values in the 100-199 range apply to virtual machines only, and will be ignored for elements of SettingData which represent snapshots. Values in the 200-299 range apply to snapshots only, and will be ignored for elements of SettingData which represent virtual machines.") : Amended] uint32 RequestedInformation[],[Out,Description("An array of Msvm_SummaryInformationBase instances containing the requested information for the virtual machines and/or snapshots specified in the SettingData array. Properties not specified in the RequestedInformation parameter will have a NULL value.") : Amended] Msvm_SummaryInformationBase SummaryInformation[]);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Returns virtual system summary information for the specified virtual machine definition files.") : Amended] uint32 GetDefinitionFileSummaryInformation([In,Description("An array of paths to XML configuration files for which to return summary information.") : Amended] string DefinitionFiles[],[Out,Description("An array of Msvm_SummaryInformationBase instances containing the requested information for the virtual machines and/or snapshots specified in the DefinitionFiles array. Only the Name, ElementName, CreateTime, and Notes properties are returned, all other properties are expected to be null.") : Amended] Msvm_SummaryInformationBase SummaryInformation[]);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Adds key-value pairs to a virtual system.") : Amended] uint32 AddKvpItems([In,Description("A reference to the virtual computer system on which the key-value pairs will be added.") : Amended] CIM_ComputerSystem Ref TargetSystem,[In,Description("An array of key-value pairs to be added. Each element of the array is an embedded instance of the Msvm_KvpExchangeDataItem class. This method fails if any of the specified key-value pairs already exists on the target system. This array can contain at most 128 elements.") : Amended] string DataItems[],[Out,Description("An optional parameter for monitoring progress of the operation represented by an instance of the CIM_ConcreteJob class, which is used if the method could not be executed synchronously. If the operation is executing asynchronously, the return value is 4096.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Modifies existing key-value pairs on a virtual system.") : Amended] uint32 ModifyKvpItems([In,Description("A reference to the virtual system on which the key-value pairs will be modified. ") : Amended] CIM_ComputerSystem Ref TargetSystem,[In,Description("An array of key-value pairs to be modified. Each element of the array is an embedded instance of the Msvm_KvpExchangeDataItem class. This method fails if any of the specified key-value pairs does not exist on the target system. This array can contain at most 128 elements.") : Amended] string DataItems[],[Out,Description("An optional parameter for monitoring progress of the operation, which is used if the method could not be executed synchronously. If the operation is executing asynchronously, the return value is 4096.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Removes existing key-value pairs from a virtual system.") : Amended] uint32 RemoveKvpItems([In,Description("A reference to the virtual system on which the key-value pairs will be removed.") : Amended] CIM_ComputerSystem Ref TargetSystem,[In,Description("An array of key-value pairs to be removed. Each element of the array is an embedded instance of the Msvm_KvpExchangeDataItem class. This method fails if any of the specified key-value pairs does not exist on the target system. This array can contain at most 128 elements.") : Amended] string DataItems[],[Out,Description("An optional parameter for monitoring progress of the operation, which is used if the method could not be executed synchronously. If the operation is executing asynchronously, the return value is 4096.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Returns the formatted error message string for the specified array of embedded Msvm_Error instances.") : Amended] uint32 FormatError([In,Description("An array of strings containing Msvm_Error instances used to generate the output error message.") : Amended] string Errors[],[Out,Description("On output, a string containing the error message represented by the Msvm_Error instances passed in the Errors parameter.") : Amended] string ErrorMessage);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Modifies the disk merge setting data.") : Amended] uint32 ModifyDiskMergeSettings([In,Description("The modified setting data for the disk merge function.") : Amended] string SettingData,[Out,Description("An optional parameter for monitoring progress of the operation, which is used if the method could not be executed synchronously. If the operation is executing asynchronously, the return value is 4096.") : Amended] CIM_ConcreteJob Ref Job);
  [Description("This API generates a requested number of WorldWidePortNames from within a preconfigured range defined by MinimumWwpnAddress and MaximumWwpnAddress properties of class Msvm_VirtualSystemManagementSettingData.\nThe NumberOfWwpns requested per call must not be less than 1 or more than 1024.\nIf the valid number of WWPNs that can be generated is less than the requested number, then the remaining entries in the GeneratedWwpn array will have the invalid entry of \"0000000000000000\" and the return value will indicate success (0).") : Amended,Values{"Completed with No Error", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended] uint32 GenerateWwpn([In,Description("The number of WWPNs to be generated and returned in the output array.") : Amended] uint32 NumberOfWwpns,[Out,Description("An array of strings, each of which on success will have a generated WWPN.\nIt will be formatted in string form as '0123456789abcdef'.") : Amended] string GeneratedWwpn[]);
  [Description("This API adds DH-CHAP parameters to a synthetic fibre channel port in a VM. This will fail if the VM is running.") : Amended,Values{"Completed with No Error", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended] uint32 AddFibreChannelChap([In] string FcPortSettings[],[In,Description("Shared Secret Encoding") : Amended] uint8 SecretEncoding,[In,Description("Shared Secret") : Amended] uint8 SharedSecret[]);
  [Description("This API removes DH-CHAP parameters to a synthetic fibre channel port in a VM. This will fail if the VM is running.") : Amended,Values{"Completed with No Error", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended] uint32 RemoveFibreChannelChap([In] string FcPortSettings[]);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Configures the network adapters within the guest operating system. These configuration parameters are applied immediately upon establishing communication with the KVP Exchange integration component running within the guest operating system.") : Amended] uint32 SetGuestNetworkAdapterConfiguration([In,Description("A reference to the CIM_ComputerSystem instance whose network adapters are to be configured.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[In,Description("An array of embedded instances of Msvm_GuestNetworkAdapterConfiguration objects.  Each instance describes the configuration parameters for one of the network adapters within the virtual machine. The InstanceID and DHCPEnabled properties must be specified on each instance.") : Amended] string NetworkConfiguration[],[Out,Description("An optional reference that is returned if the operation is executed asynchronously. If present, the returned reference to an instance of CIM_ConcreteJob can be used to monitor progress and to obtain the result of the method.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Retrieves the total size of the system files.\nThese include the configuration and saved state files.") : Amended] uint32 GetSizeOfSystemFiles([In,Description("A reference to the CIM_VirtualSystemSettingData instance whose system files size isto be retrieved. This instance may represent either the current instantiation of the virtual computer system, or an instance of a virtual computer system snapshot.") : Amended] CIM_VirtualSystemSettingData Ref Vssd,[Out,Description("The total size of system files.") : Amended] uint64 Size);
  [Description("This API provides the ability to see the current WorldWidePortName from within a preconfigured range defined by MinimumWwpnAddress and MaximumWwpnAddress properties of class Msvm_VirtualSystemManagementSettingData.\nIf the range as defined by these properties is exhausted, then the CurrentWwpn out parameter will have the invalid entry of \"0000000000000000\" and the return value will indicate success (0).") : Amended,Values{"Completed with No Error", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended] uint32 GetCurrentWwpnFromGenerator([Out,Description("A string, which on success will have the value of the Current WWPN as used by the WWPN Generator.\n This will be the same value that will be the first WWPN generated by the subsequent call to GenerateWwpn().\nIt will be formatted in string form as '0123456789abcdef'.") : Amended] string CurrentWwpn);
  [Description("Tests the network connectivity of a VM in a Windows Network Virtualization Environment.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 TestNetworkConnection([In] Msvm_EthernetPortAllocationSettingData Ref TargetNetworkAdapter,[In,Description("Indicates whether this method is being invoked at the sender or the receiver.") : Amended] boolean IsSender,[In,Description("The sender IP address.") : Amended] string SenderIP,[In,Description("The sender Mac address.") : Amended] string ReceiverIP,[In,Description("The sender Mac address.") : Amended] string ReceiverMac,[In,Description("The Isolation ID.") : Amended] uint32 IsolationId,[In,Description("The Isolation ID.") : Amended] uint32 SequenceNumber,[In(FALSE),Out] uint32 RoundTripTime,[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Description("Diagnoses the network connectivity of a VM in a Windows Network Virtualization Environment.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 DiagnoseNetworkConnection([In] Msvm_EthernetPortAllocationSettingData Ref TargetNetworkAdapter,[In] string DiagnosticSettings,[Out] string DiagnosticInformation,[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Sets a VM's initial machine configuration data.") : Amended] uint32 SetInitialMachineConfigurationData([In,Description("A reference to the virtual computer system on which the IMC data will be set.") : Amended] CIM_ComputerSystem Ref TargetSystem,[In,Description("The IMC data to set. The first four bytes must be the length of the array in big-endian order") : Amended] uint8 ImcData[],[Out,Description("An optional parameter for monitoring progress of the operation, which is used if the method could not be executed synchronously. If the operation is executing asynchronously, the return value is 4096.") : Amended] CIM_ConcreteJob Ref Job);
  [Description("Adds generic settings to a virtual system configuration.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 AddSystemComponentSettings([IN] Msvm_VirtualSystemSettingData Ref AffectedConfiguration,[IN] string ComponentSettings[],[In(FALSE),Out] Msvm_SystemComponentSettingData Ref ResultingComponentSettings[],[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Description("Modifies generic system component settings.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "Invalid State", "Incompatible Parameters", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 ModifySystemComponentSettings([IN] string ComponentSettings[],[In(FALSE),Out] Msvm_SystemComponentSettingData Ref ResultingComponentSettings[],[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Description("Removes generic component settings from a virtual system configuration.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "Invalid State", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 RemoveSystemComponentSettings([IN] Msvm_SystemComponentSettingData Ref ComponentSettings[],[In(FALSE),Out] CIM_ConcreteJob Ref Job);
};

[Description("Represents the settings for the virtualization service present on a single host system. The properties for this class cannot be modified directly. The client must call the Msvm_VirtualSystemManagementService.ModifyServiceSettings method to modify any of these properties.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualSystemManagementServiceSettingData : CIM_SettingData
{
  [Description("Used by OEMs to allow BIOS-locked Windows operating systems to run in the virtual machine. This string must be exactly 32 characters in length.\nThis is a read-only property, but it can be changed using the ModifyServiceSettings method of the Msvm_VirtualSystemManagementService class.") : Amended] string BiosLockString;
  [Description("The default external data root. By default, \"root\\ProgramData\\Microsoft\\Windows\\Virtualization\".\nThis is a read-only property, but it can be changed using the ModifyServiceSettings method of the Msvm_VirtualSystemManagementService class.") : Amended] string DefaultExternalDataRoot;
  [Description("The default virtual hard disk path. By default, \"root\\ProgramData\\Microsoft\\Windows\\Virtual Hard Disks\".\nThis is a read-only property, but it can be changed using the ModifyServiceSettings method of the Msvm_VirtualSystemManagementService class.") : Amended] string DefaultVirtualHardDiskPath;
  [Description("The maximum MAC address for dynamically generated MAC addresses.\nThis is a read-only property, but it can be changed using the ModifyServiceSettings method of the Msvm_VirtualSystemManagementService class.") : Amended] string MaximumMacAddress;
  [Description("The minimum MAC address for dynamically generated MAC addresses.\nThis is a read-only property, but it can be changed using the ModifyServiceSettings method of the Msvm_VirtualSystemManagementService class.") : Amended] string MinimumMacAddress;
  [Description("Reserved for future use.") : Amended] boolean NumaSpanningEnabled;
  [Description("Indicates whether enhanced session mode is allowed.\nThis is a read-only property, but it can be changed using the ModifyServiceSettings method of the Msvm_VirtualSystemManagementService class.") : Amended] boolean EnhancedSessionModeEnabled;
  [Description("Controls memory allocation for the VMs on non-uniform memory access (NUMA) systems.\nThis is a read-only property, but it can be changed using the ModifyServiceSettings method of the Msvm_VirtualSystemManagementService class.") : Amended] string PrimaryOwnerContact;
  [Description("Describes how the primary system owner can be reached (for example, phone number or e-mail address). By default, empty. This name may not exceed 256 characters in length.\nThis is a read-only property, but it can be changed using the ModifyServiceSettings method of the Msvm_VirtualSystemManagementService class.") : Amended] string PrimaryOwnerName;
  [Description("This property describes the amount of time that the Synthetic FC virtual device will wait for a LUN to appear before starting a virtual machine.\nThis is a read-only property, but it can be changed using the ModifyServiceSettings method of the Msvm_VirtualSystemManagementService class.") : Amended] uint32 HbaLunTimeout;
  [Description("The maximum WorldWidePortName address for dynamically generated WorldWideName addresses used for Synthetic HBAs.\nThis is a read-only property, but it can be changed using the ModifyServiceSettings method of the Msvm_VirtualSystemManagementService class.") : Amended] string MaximumWWPNAddress;
  [Description("The minimum WorldWidePortName address for dynamically generated WorldWideName addresses used for Synthetic HBAs.\nThis is a read-only property, but it can be changed using the ModifyServiceSettings method of the Msvm_VirtualSystemManagementService class.") : Amended] string MinimumWWPNAddress;
  [Description("The WorldWideNodeName address for dynamically generated WorldWideName addresses used for Synthetic HBAs.\nThis is a read-only property, but it can be changed using the ModifyServiceSettings method of the Msvm_VirtualSystemManagementService class.") : Amended] string CurrentWWNNAddress;
  [Values{"Unknown", "No Caching", "Cache Sharable Parents"} : Amended,Description("Indicates whether in-memory file caching should be used for disks by default. This value can be overridden on a per-disk basis in the CachingMode field of the Msvm_StorageAllocationSettingData class. This property is reserved for system use.") : Amended] uint16 DefaultVirtualHardDiskCachingMode;
  [Description("Whether or not the hypervisor root scheduler is enabled.") : Amended] boolean HypervisorRootSchedulerEnabled;
};

[Description("Used in the GetSummaryInformation method in the Msvm_VirtualSystemManagementService class to quickly retrieve common information related to a virtual system or snapshot.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SummaryInformationBase : CIM_View
{
  [Description("The time at which the virtual system or snapshot was created.") : Amended] DateTime CreationTime;
  [Description("The friendly name for the virtual system or snapshot.") : Amended] string ElementName;
  [Description("The current state of the virtual system or snapshot.") : Amended] uint16 EnabledState;
  [Description("A string that describes the enabled or disabled state of the element when the EnabledState property is set to 1 (\"Other\"). This property must be set to null when EnabledState is any value other than 1.") : Amended] string OtherEnabledState;
  [Description("The current health state for the virtual system. This property is not valid for instances of Msvm_SummaryInformation representing a virtual system snapshot.") : Amended] uint16 HealthState;
  [Description("The unique name for the virtual system or snapshot.") : Amended] string Name;
  [Description("The notes associated with the virtual system or snapshot.") : Amended] string Notes;
  [Description("The version of the virtual system in a format of \"major.minor\", for example \"2.0\".\n") : Amended] string Version;
  [Description("The total number of virtual processors allocated to the virtual system or snapshot.") : Amended] uint16 NumberOfProcessors;
  [Description("The current status of the element.") : Amended] uint16 OperationalStatus[];
  [Description("Strings that describe the various OperationalStatus array values.") : Amended] string StatusDescriptions[];
  [Description("The amount of time since the virtual system was last booted. This property is not valid for instances of Msvm_SummaryInformation representing a virtual system snapshot.") : Amended] uint64 UpTime;
  [Values{"Allowed and available", "Not allowed", "Allowed but not available"} : Amended,Description("Indicates whether or not enhanced mode connections are allowed by the host and if allowed, whether or not they are available to the virtual machine.") : Amended] uint16 EnhancedSessionModeState;
  [Description("Strings that list the friendly names of the virtual switches the VM is connected to.") : Amended] string VirtualSwitchNames[];
  [Description("The subtype of the virtual system.") : Amended] string VirtualSystemSubType;
  [Description("The name of the computer hosting this virtual machine.") : Amended] string HostComputerSystemName;
};

[Description("Used in the GetSummaryInformation method in the Msvm_VirtualSystemManagementService class to quickly retrieve common information related to a virtual system or snapshot.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SummaryInformation : Msvm_SummaryInformationBase
{
  [Description("The identifier of the physical graphics processing unit (GPU) allocated to this virtual machine (VM). This property only applies to VMs that use RemoteFX.") : Amended] string AllocatedGPU;
  [Description("Indicates whether or not shielding is configured for the virtual machine.") : Amended] boolean Shielded;
  [Description("An array of Msvm_ConcreteJob instances representing any asynchronous operations related to the virtual system which are currently executing. This property is not valid for instances of Msvm_SummaryInformation representing a virtual system snapshot.") : Amended] CIM_ConcreteJob AsynchronousTasks[];
  [Description("The name of the guest operating system, if available. If this information is not available, the value of this property is NULL. This property is not valid for instances of Msvm_SummaryInformation representing a virtual system snapshot.") : Amended] string GuestOperatingSystem;
  [Description("The current heartbeat status for the virtual system. This property may be one of the following values: \"OK\"; \"Error\"; \"No Contact\"; or \"Lost Communication\". For more information, see the documentation for the StatusDescriptions property of the Msvm_HeartbeatComponent class. This property is not valid for instances of Msvm_SummaryInformation representing a virtual system snapshot.") : Amended] uint16 Heartbeat;
  [Description("The current memory usage of the virtual system. This property is not valid for instances of Msvm_SummaryInformation representing a virtual system snapshot.") : Amended] uint64 MemoryUsage;
  [Description("The memory available percentage in the virtual system.") : Amended] sint32 MemoryAvailable;
  [Description("The available memory buffer percentage in the virtual system.") : Amended] sint32 AvailableMemoryBuffer;
  [Description("Indicates if Smart Paging is active.") : Amended] boolean SwapFilesInUse;
  [Description("The current processor usage of the virtual system. This property is not valid for instances of Msvm_SummaryInformation representing a virtual system snapshot.") : Amended] uint16 ProcessorLoad;
  [Description("An array of the previous 100 samples of the processor usage for the virtual system. This property is not valid for instances of Msvm_SummaryInformation representing a virtual system snapshot.") : Amended] uint16 ProcessorLoadHistory[];
  [Description("An array of Msvm_VirtualSystemSettingData instances representing the snapshots for the virtual system. This property is not valid for instances of Msvm_SummaryInformation representing a virtual system snapshot.") : Amended] CIM_VirtualSystemSettingData Snapshots[];
  [Description("An array containing a small, thumbnail-sized image of the desktop for the virtual system or snapshot in RGB565 format.") : Amended] uint8 ThumbnailImage[];
  [Description("The width in pixels of the image in the ThumbnailImage property.") : Amended] uint16 ThumbnailImageWidth;
  [Description("The height in pixels of the image in the ThumbnailImage property.") : Amended] uint16 ThumbnailImageHeight;
  [Values{"Disabled", "Ready for replication", "Waiting to complete initial replication", "Replicating", "Synced replication complete", "Recovered", "Committed", "Suspended", "Critical", "Waiting to start resynchronization", "Resynchronizing", "Resynchronization suspended", "Failover in progress"} : Amended,Description("Replication state for the virtual machine.") : Amended] uint16 ReplicationState;
  [Values{"Disabled", "Ready for replication", "Waiting to complete initial replication", "Replicating", "Synced replication complete", "Recovered", "Committed", "Suspended", "Critical", "Waiting to start resynchronization", "Resynchronizing", "Resynchronization suspended", "Failover in progress", "Failback in progress", "Failback complete", "Disk update in progress", "Disk update critical", "Unknown", "Repurpose replication in progress", "Prepared for sync replication", "Prepared for group reverse replication", "Firedrill in progress"} : Amended,Description("The array of Replication state values for the various replication relationships of the virtual machine.") : Amended] uint16 ReplicationStateEx[];
  [Values{"Not applicable", "Ok", "Warning", "Critical"} : Amended,Description("Replication health for the virtual machine.") : Amended] uint16 ReplicationHealth;
  [Values{"Not applicable", "Ok", "Warning", "Critical"} : Amended,Description("The array of Replication health values for the various replication relationships of the virtual machine.") : Amended] uint16 ReplicationHealthEx[];
  [Values{"None", "Primary", "Replica", "Test Replica", "Extended Replica"} : Amended,Description("Identifies replication type for the virtual machine.") : Amended] uint16 ReplicationMode;
  [Description("Reference to the CIM_ComputerSystem instance representing the test replica virtual system for the virtual machine. This property is not valid for instances of Msvm_SummaryInformation representing a virtual system snapshot.") : Amended] CIM_ComputerSystem Ref TestReplicaSystem;
  [Description("Globally unique identifier of provider that identifies the endpoint provider. For Hyper-V host to another Hyper-V host, provider id is fixed as 22391CDC-272C-4DDF-BA88-9BEFB1A0975C.\nIn case of external provider this is CLSID of provider COM class object.") : Amended] string ReplicationProviderId[];
  [Values{"OK", "Application Critical", "Disabled"} : Amended,Description("The current application health status for the virtual system. This property may be one of the following values: \"OK\"; \"Application Critical\"; \"Disabled\".For more information, see the documentation for the StatusDescriptions property of the Msvm_HeartbeatComponent class. This property is not valid for instances of Msvm_SummaryInformation representing a virtual system snapshot.") : Amended] uint16 ApplicationHealth;
  [Values{"Unknown", "UpToDate", "Mismatch"} : Amended,Description("Whether or not the integration services installed in the virtual machine are up to date") : Amended] uint16 IntegrationServicesVersionState;
  [Description("Indicates whether or not the memory of the one or more of the virtual non-uniform memory access (NUMA) nodes of the virtual machine spans multiple physical NUMA nodes of the hosting computer system.") : Amended] boolean MemorySpansPhysicalNumaNodes;
  [Description("The unique identifier of the hypervisor partition used by the virtual system.") : Amended] uint64 HypervisorPartitionId;
};

[Description("Used in the GetSystemCompatibilityVectors method in the Msvm_VirtualSystemMigrationService class to quickly retrieve compatibility vectors for a VM or a Host.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_CompatibilityVector
{
  [Description("Uniquely identifies a compatibility vector as representing a specific attribute. This is used to match corresponding vectors between a host and a VM.") : Amended] uint32 VectorId;
  [Values{"Equal", "Superset", "Subset", "Disjoint", "GreaterThan", "GreaterThanOrEqual", "LessThan", "LessThanOrEqual", "Multiple", "Divisible"} : Amended,Description("Identifies the comparison operation that will return true if and only if two vectors are compatible. The VM's data is on the left hand side of the comparison, and the host's data is on the right hand side.") : Amended] uint32 CompareOperation;
  [Description("Contains the actual compatibility attribute data for comparison.") : Amended] uint64 CompatibilityInfo;
};

[Description("Manages the collections on the Hyper-V host.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_CollectionManagementService : CIM_Service
{
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Creates a new CIM_CollectionOfMSEs object.") : Amended] uint32 DefineCollection([In] string Name,[In] string Id,[In,Values{"Collection of Virtual Systems", "Collection of Collections"} : Amended] uint16 Type,[In(FALSE),Out] CIM_CollectionOfMSEs Ref DefinedCollection,[In(FALSE),Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Deletes the given CIM_CollectionOfMSEs object.") : Amended] uint32 DestroyCollection([In] CIM_CollectionOfMSEs Ref Collection,[In(FALSE),Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Updates the ElementName the given CIM_CollectionOfMSEs object.") : Amended] uint32 RenameCollection([In] CIM_CollectionOfMSEs Ref Collection,[In] string NewName,[In(FALSE),Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Adds the specified ManagedElement as a member of the givenCIM_CollectionOfMSEs object.") : Amended] uint32 AddMember([In] CIM_ManagedElement Ref Member,[In] CIM_CollectionOfMSEs Ref Collection,[In(FALSE),Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Removes the specified ManagedElement as a member of the givenCIM_CollectionOfMSEs object.") : Amended] uint32 RemoveMember([In] CIM_ManagedElement Ref Member,[In] CIM_CollectionOfMSEs Ref Collection,[In(FALSE),Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Removes the specified ManagedElement as a member of the CIM_CollectionOfMSEs with the given identifier. This will succeed even if the object with that identifier is not present.") : Amended] uint32 RemoveMemberById([In] CIM_ManagedElement Ref Member,[In] string CollectionId,[In(FALSE),Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
};

[Description("Represents a collection of virtual systems.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualSystemCollection : CIM_CollectionOfMSEs
{
  [Description("An user-defined name for the collection. Note this is not guaranteed to be unique.") : Amended] string ElementName;
  [Values{"Disabled", "Ready for replication", "Waiting to complete initial replication", "Replicating", "Failover initiated", "Recovered", "Committed", "Suspended", "Critical", "Waiting to start resynchronization", "Resynchronizing", "Planned failover initiatedRepurpose initiatedTest failover initiatedPartially enabled", "Partially disabled", "Partially recovered"} : Amended,Description("Replication state for the virtual system collection.") : Amended] uint16 ReplicationState;
  [Values{"None", "Primary", "Replica", "Test Replica"} : Amended,Description("Replication type for the virtual system collection.") : Amended] uint16 ReplicationMode;
  [Values{"None", "Regular", "Planned"} : Amended,Description("Type of failover that was performed for the virtual system collection.") : Amended] uint16 FailedOverReplicationType;
  [Description("The time at which the last replication is applied on recovery for the virtual system collection.") : Amended] DateTime LastApplyTime;
  [Description("Array of Virtual Machine Ids which were successfully applied in last apply cycle.") : Amended] String LastApplyVirtualMachineIds[];
  [Values{"Unknown", "Application Consistent", "Crash Consistent", "Group Crash Consistent"} : Amended,Description("Consistency level of the last applied delta.\nApplication Consistent: The last applied delta indicates a point in time when the virtual system was in application consistent state. \nCrash Consistent: The last applied delta indicates a point in time when the virtual system was in crash consistent state. \nGroup Crash Consistent: The last applied delta indicates a point in time when the group was in crash consistent state. \n") : Amended] uint16 LastApplyConsistencyLevel;
};

[Description("Represents a collection of other collections.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ManagementCollection : CIM_CollectionOfMSEs
{
  [Description("An user-defined name for the collection. Note this is not guaranteed to be unique.") : Amended] string ElementName;
};

[Description("Associates the Msvm_VirtualSystemCollection to the contained Msvm_ComputerSystem objects.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_CollectedCollections : CIM_CollectedMSEs
{
};

[Description("Associates the Msvm_VirtualSystemCollection to the contained Msvm_ComputerSystem objects.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_CollectedVirtualSystems : CIM_CollectedMSEs
{
};

[Description("The class that represents configured settings for an Msvm_VirtualSystemCollection.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_CollectionSettingData : CIM_SettingData
{
};

[Description("Service to create, destroy and export snapshot collection of virtual systems.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_CollectionSnapshotService : CIM_Service
{
  [Description("Creates a snapshot of a virtual system collection.") : Amended] uint32 CreateSnapshot([In,Description("Reference to the affected virtual system collection.") : Amended] CIM_CollectionOfMSEs Ref Collection,[In,Description("Parameter settings.") : Amended] string SnapshotSettings,[In,Description("Requested snapshot type:\nStandard Snapshot: Standard snapshot of the virtual system.\nRecovery Snapshot: Snapshot for recovery scenarios including failover replication and backup.") : Amended] uint16 SnapshotType,[In,Out,Description("Resulting collection of virtual system snapshot") : Amended] CIM_Collection Ref ResultingSnapshotCollection,[Out,Description("An optional reference that is returned if the operation is executed asynchronously. If present, the returned reference to an instance of CIM_ConcreteJob can be used to monitor progress and to obtain the result of the method.") : Amended] CIM_ConcreteJob Ref Job);
  [Description("Destroy an existing snapshot of virtual system collection. This method may as a side effect destroy other snapshots that are dependent on the affected snapshot.") : Amended] uint32 DestroySnapshot([In,Description("Reference to the affected virtual system snapshot collection.") : Amended] CIM_Collection Ref AffectedSnapshotCollection,[Out,Description("An optional reference that is returned if the operation is executed asynchronously. If present, the returned reference to an instance of CIM_ConcreteJob can be used to monitor progress and to obtain the result of the method.") : Amended] CIM_ConcreteJob Ref Job);
  [Description("Exports a snapshot collection of virtual computer systems to a file. The snapshot collection, its associated configuration settings, and its associated resource settings will be preserved in the resulting file.\nReturn value: If this method is executed synchronously, it returns 0 if it succeeds. If this method is executed asynchronously, it returns 4096 and the Job output parameter can be used to track the progress of the asynchronous operation. Any other return value indicates an error.") : Amended] uint32 ExportSnapshot([In,Description("A reference to a CIM_Collection that represents the snapshot collection to be exported.") : Amended] CIM_Collection Ref SnapshotCollection,[In,Description("The fully-qualified path of the directory to which the virtual system collection is to be exported. If the CreateVmExportSubdirectory property in the ExportSettingData parameter is set to True then this directory can be reused for exporting multiple virtual system collections and this method places each virtual system collection definition in a separate subdirectory under this path.") : Amended] string ExportDirectory,[In,Description("An instance of Msvm_CollectionSnapshotExportSettingData that represents the settings for the export operation.") : Amended] string ExportSettingData,[Out,Description("An optional reference that is returned if the operation is executed asynchronously. If present, the returned reference to an instance of CIM_ConcreteJob can be used to monitor progress and to obtain the result of the method.") : Amended] CIM_ConcreteJob Ref Job);
  [Description("Applies a snapshot collection to the collection of virtual computer system.") : Amended] uint32 ApplySnapshot([In,Description("A reference to a CIM_Collection that represents the snapshot collection to be applied.") : Amended] CIM_Collection Ref SnapshotCollection,[Out,Description("An optional reference that is returned if the operation is executed asynchronously. If present, the returned reference to an instance of CIM_ConcreteJob can be used to monitor progress and to obtain the result of the method.") : Amended] CIM_ConcreteJob Ref Job);
  [Description("Convert an existing collection snapshot to a reference pointcollection. The snapshot collection gets deleted as a side effect. Only recovery snapshots can be converted to reference points.") : Amended] uint32 ConvertToReferencePoint([In,Description("Reference to the affected virtual system snapshot collection.") : Amended] Msvm_SnapshotCollection Ref AffectedSnapshotCollection,[In,Out,Description("Resulting virtual system reference point collection") : Amended] Msvm_ReferencePointCollection Ref ResultingReferencePointCollection,[Out,Description("If the operation is long running, then optionally a job may be returned.") : Amended] CIM_ConcreteJob Ref Job);
};

[Description("Represents a collection of virtual system snapshots.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SnapshotCollection : CIM_Collection
{
  [Description("An user-defined name for the collection. Note this is not guaranteed to be unique.") : Amended] string ElementName;
};

[Description("Associates the Msvm_SnapshotCollection to the corresponding Msvm_VirtualSystemCollection objects.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SnapshotOfVirtualSystemCollection : CIM_Dependency
{
};

[Description("Associates the Msvm_SnapshotCollection to the contained Msvm_VirtualSystemSettingData objects.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_CollectedSnapshots : CIM_CollectedMSEs
{
};

[Description("Export setting data to be passed in to the ExportSnapshot method of Msvm_CollectionSnapshotService class.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_CollectionSnapshotExportSettingData : CIM_SettingData
{
  [Description("Indicates whether the VM storage will be copied when the VM is exported.\nIf TRUE, the VM storage will be copied.") : Amended] boolean CopyVmStorage;
  [Description("Base for differential export. This is either path to a Msvm_ReferencePointCollection instance that represents the reference point or path to a Msvm_SnapshotCollection instance that represents the snapshot to be used as a base for differential export.") : Amended] string DifferentialBackupBase;
  [Values{"BackupIntentPreserveChain", "BackupIntentMerge"} : Amended,Description("Indicates the intent how the exported backup sets would be used\nBackupIntentPreserveChain = All exported full and differential backup sets would be preserved as they are.\nBackupIntentMerge = The exported full and differential backup sets would be merged to synthesize full backup sets.") : Amended] uint16 BackupIntent;
};

[Description("Service to create, destroy and export reference points \nof virtual system collections.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_CollectionReferencePointService : CIM_Service
{
  [Description("Creates a reference point of a virtual system collection.") : Amended] uint32 CreateReferencePoint([In,Description("Reference to the affected virtual system collection.") : Amended] Msvm_VirtualSystemCollection Ref Collection,[In,Description("Parameter settings.") : Amended] string ReferencePointSettings,[In,Description("Indicates the type of the reference point. \nLog based: Hyper-V replica log tracking. \nRCT based: Based on Resilient Change Tracking of virtual disks. \n") : Amended] uint16 ReferencePointType,[In,Out,Description("Resulting reference point of a virtual system collection.") : Amended] CIM_Collection Ref ResultingReferencePointCollection,[Out,Description("If the operation is long running, then optionally a job may be returned.") : Amended] CIM_ConcreteJob Ref Job);
  [Description("Destroys an existing reference point collection. This method may as a side effect destroy other reference points that are dependent on the affected reference point collection.") : Amended] uint32 DestroyReferencePoint([In,Description("Reference to the affected virtual system reference point collection.") : Amended] CIM_Collection Ref AffectedReferencePointCollection,[Out,Description("If the operation is long running, then optionally a job may be returned.") : Amended] CIM_ConcreteJob Ref Job);
  [Description("Removes the data log associated with the reference point.") : Amended] uint32 RemoveAssociatedData([In,Description("Reference to the affected virtual system reference point collection.") : Amended] CIM_Collection Ref AffectedReferencePointCollection,[Out,Description("If the operation is long running, then optionally a job may be returned.") : Amended] CIM_ConcreteJob Ref Job);
  [Description("Exports a reference point collection to a file. The reference point collection, its associated configuration settings, and its associated resource settings will be preserved in the resulting file.\nReturn value: If this method is executed synchronously, it returns 0 if it succeeds. If this method is executed asynchronously, it returns 4096 and the Job output parameter can be used to track the progress of the asynchronous operation. Any other return value indicates an error.") : Amended] uint32 ExportReferencePoint([In,Description("A reference to a CIM_Collection that represents the reference point collection to be exported.") : Amended] CIM_Collection Ref ReferencePointCollection,[In,Description("The fully-qualified path of the directory to which the reference point collection is to be exported.") : Amended] string ExportDirectory,[In,Description("An instance of Msvm_CollectionReferencePointExportSettingData that represents the settings for the export operation.") : Amended] string ExportSettingData,[Out,Description("An optional reference that is returned if the operation is executed asynchronously. If present, the returned reference to an instance of CIM_ConcreteJob can be used to monitor progress and to obtain the result of the method.") : Amended] CIM_ConcreteJob Ref Job);
};

[Description("Represents a collection of virtual system reference points.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ReferencePointCollection : CIM_Collection
{
  [Key,Description("The unique identification of the Collection object.") : Amended] string CollectionID;
  [Description("An user-defined name for the collection. Note this is not guaranteed to be unique.") : Amended] string ElementName;
  [Description("Indicates the type of the reference point. \nLog based: Hyper-V replica log tracking. \nRCT based: Based on Resilient Change Tracking of virtual disks. \n") : Amended] uint16 ReferencePointType;
  [Values{"Unknown", "Crash Consistent", "Application Consistent"} : Amended,Description("Consistency level of the reference point.\nCrash Consistent: The reference point indicates a point in time when the virtual system was in crash consistent state. \nApplication Consistent: The reference point indicates a point in time when the virtual system was in application consistent state. \n") : Amended] uint16 ConsistencyLevel;
  [Key,Description("The identifier of the Msvm_VirtualSystemCollection to which this reference point belongs") : Amended] string VirtualSystemCollectionId;
  [Description("This property is set to TRUE if all the member reference points have associated logs. This is valid only for log based reference points. For RCT based reference points this is set to FALSE. For log based reference points, once the log is discarded this value becomes FALSE.") : Amended] boolean HasAssociatedLog;
};

[Description("Associates the Msvm_ReferencePointCollection to the corresponding Msvm_VirtualSystemCollection objects.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ReferencePointOfVirtualSystemCollection : CIM_Dependency
{
  [Key,Description("Antecedent represents the independent object in this association.") : Amended] CIM_CollectionOfMSEs Ref Antecedent;
  [Key,Description("Dependent represents the object that is dependent on the Antecedent.") : Amended] CIM_Collection Ref Dependent;
};

[Description("Associates the Msvm_ReferencePointCollection to the contained Msvm_VirtualSystemReferencePoint objects.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_CollectedReferencePoints : CIM_CollectedMSEs
{
  [Description("The grouping or 'bag' object that represents the Collection.") : Amended] Msvm_ReferencePointCollection Ref Collection;
  [Description("The members of the Collection.") : Amended] Msvm_VirtualSystemReferencePoint Ref Member;
};

[Description("Provides additional information to be used with the CreateReferencePoint method of the Msvm_CollectionReferencePointService class.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_CollectionReferencePointSettingData : CIM_SettingData
{
  [Values{"Unknown", "Application Consistent", "Crash Consistent"} : Amended,Description("Consistency level of the reference point.\nCrash Consistent: The reference point indicates a point in time when the virtual system was in crash consistent state. \nApplication Consistent: The reference point indicates a point in time when the virtual system was in application consistent state. \n") : Amended] uint8 ConsistencyLevel;
};

[Description("Export setting data to be passed in to the ExportReferencePoint method of Msvm_CollectionReferencePointService class.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_CollectionReferencePointExportSettingData : CIM_SettingData
{
  [Description("Path to a Msvm_ReferencePointCollection instance that represents the base reference point collection to be used for differential export.") : Amended] string BaseReferencePointCollection;
  [Description("List of VirtualMachines To DisksToExport map information for which data needs to be exported.") : Amended] string VirtualMachinesToDisksToExport[];
};

[Description("This class represents a collection reference point export operation job.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_CollectionReferencePointExportJob : CIM_ConcreteJob
{
  [Description("Indicates whether the job can be cancelled. The value of this property does not guarantee that a request to cancel the job will succeed.") : Amended] boolean Cancellable;
  [Description("GUID of the virtual machine group for which log files wereexported.") : Amended] string CollectionId;
  [Description("GUID of the collection reference point which is exported.") : Amended] string ReferencePointGroupId;
  [Description("GUID of the collection reference point which is used as the base in the exportoperation.") : Amended] string BaseReferencePointGroupId;
  [Description("GUID of the virtual machines for which export operation has been performed.") : Amended] string VirtualMachineId[];
  [Description("Export Location.") : Amended] string ExportDirectory;
  [Description("Instance IDs of virtual disks for which log files were exported.") : Amended] string ExportedDisks[];
  [Description("Paths of the log files which were exported.") : Amended] string ExportedLogFilePaths[];
  [Description("Path of the exported virtual machine config file.") : Amended] string ExportedConfigFilePaths[];
  [Description("Path of the exported virtual machine runtime state file.") : Amended] string ExportedRuntimeFilePaths[];
  [Description("Path of the exported virtual machine guest state file.") : Amended] string ExportedGuestStateFilePaths[];
  [Values{"Completed with No Error", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended] uint32 GetError([OUT] string Error);
  [Values{"Completed with No Error", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("When the job is executing or has terminated without error, then this method returns no Msvm_Error instance. However, if the job has failed because of some internal problem or because the job has been terminated by a client, then one or more Msvm_Error instances are returned.") : Amended] uint32 GetErrorEx([Out,Description("If the operational status of the job is not \"OK\", this method returns an array of Msvm_Error instances. Otherwise, if the job is \"OK\", NULL is returned.") : Amended] string Errors[]);
};

[Description("Setting data to be passed as an array to Msvm_CollectionReferencePointExportSettingDataclass.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualMachineToDisks
{
  [Description("Virtual Machine ID for which virtual disks are associated with.") : Amended] string VirtualMachineId;
  [Description("WMI instance IDs of the disks those belong to given Virtual Machine ID forwhich data needs to be exported.") : Amended] string DisksToExport[];
};

[Description("Represents a hosting computer system or virtual computer system.\nTo retrieve information for the VMMS, use Msvm_VirtualSystemManagementService.\nRemarks: When a property of the Msvm_ComputerSystem class changes, the WMI provider indicates an __InstanceModificationEvent event that describes the changes. The previous state is contained in the PreviousInstance property, and the new state is contained in the TargetInstance property. This event is asynchronous; by the time the __InstanceModificationEvent event is processed, the TargetInstance property may not reflect the current state.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ComputerSystem : CIM_ComputerSystem
{
  [Description("For the virtual system, this property describes the total up time, in milliseconds, since the machine was last turned on, reset, or restored. This time excludes the time the virtual system was in the paused state. For the host system, this property is set to NULL.") : Amended] uint64 OnTimeInMilliseconds;
  [Description("The identifier of the process under which this virtual machine is running. This value can be used to uniquely identify the instance of Vmwp.exe on the system that is running the virtual machine.") : Amended] uint32 ProcessID;
  [Description("The date and time when the virtual machine configuration file was last modified. The configuration file is modified during certain virtual machine operations, as well as when any of the virtual machine or device settings are added, modified, or removed.") : Amended] datetime TimeOfLastConfigurationChange;
  [Description("The number of non-uniform memory access (NUMA) nodes of the computer system. When Msvm_ComputerSystem represents the hosting computer system, this property contains the count of physical NUMA nodes. When Msvm_ComputerSystem represents a virtual computer system, this property contains the number of virtual NUMA nodes that are presented to the guest OS through the ACPI System Resource Affinity Table (SRAT).") : Amended] uint16 NumberOfNumaNodes;
  [Values{"Disabled", "Ready for replication", "Waiting to complete initial replication", "Replicating", "Synced replication complete", "Recovered", "Committed", "Suspended", "Critical", "Waiting to start resynchronization", "Resynchronizing", "Resynchronization suspended", "Failover in progress", "Failback in progress", "Failback complete"} : Amended,Description("Replication state for the virtual machine.") : Amended] uint16 ReplicationState;
  [Values{"Not applicable", "Ok", "Warning", "Critical"} : Amended,Description("Replication health for the virtual machine.") : Amended] uint16 ReplicationHealth;
  [Values{"None", "Primary", "Replica", "Test Replica", "Extended Replica"} : Amended,Description("Identifies replication type for the virtual machine.") : Amended] uint16 ReplicationMode;
  [Values{"None", "Regular", "Application consistent", "Planned"} : Amended,Description("Type of failover that was performed for the virtual machine.") : Amended] uint16 FailedOverReplicationType;
  [Values{"None", "Regular", "Application consistent", "Planned"} : Amended,Description("Type of the last replication that was received for the virtual machine.") : Amended] uint16 LastReplicationType;
  [Description("The time at which the last application consistent replication is received on recovery for the virtual machine.") : Amended] DateTime LastApplicationConsistentReplicationTime;
  [Description("The time at which the last replication is received on recovery for the virtual machine.") : Amended] DateTime LastReplicationTime;
  [Description("The time at which the last successful backup has completed for the virtual machine.") : Amended] DateTime LastSuccessfulBackupTime;
  [Values{"Allowed and available", "Not allowed", "Allowed but not available"} : Amended,Description("Indicates whether or not enhanced mode connections are allowed by the host and if allowed, whether or not they are available to the virtual machine.") : Amended] uint16 EnhancedSessionModeState;
  [Description("Indicates the number of SMT threads per core reported to the guest.  This reporting is independent of whether the hardware for SMT is present. ") : Amended] uint32 HwThreadsPerCoreRealized;
  [Description("Requests that the state of the replication be changed to the value specified in the RequestedState parameter.") : Amended] uint32 RequestReplicationStateChange([In,Values{"Ready to start initial replication", "Waiting to complete initial replication", "Replicating", "Synced replication complete", "Suspend", "Cancel Resynchronize"} : Amended,Description("Indicates the requested state for the replication.") : Amended] uint16 RequestedState,[Out,Description("An optional reference that is returned if the operation is executed asynchronously. If present, the returned reference to an instance of CIM_ConcreteJob can be used to monitor progress and to obtain the result of the method.") : Amended] CIM_ConcreteJob Ref Job,[In,Description("A timeout period that specifies the maximum amount of time that the client expects the transition to the new state to take. The interval format must be used to specify the TimeoutPeriod. A value of 0 or a null parameter indicates that the client has no time requirements for the transition. \nIf this property does not contain 0 or null and the implementation does not support this parameter, a return code of 'Use Of Timeout Parameter Not Supported' shall be returned.") : Amended] datetime TimeoutPeriod);
  [Description("Requests that the state of the extended replication be changed to the value specified in the RequestedState parameter.") : Amended] uint32 RequestReplicationStateChangeEx([In,Description("The replication relationship for state change request.") : Amended] string ReplicationRelationship,[In,Values{"Ready to start initial replication", "Waiting to complete initial replication", "Replicating", "Synced replication complete", "Suspend", "Cancel Resynchronize"} : Amended,Description("Indicates the requested state for the extended replication.") : Amended] uint16 RequestedState,[Out,Description("An optional reference that is returned if the operation is executed asynchronously. If present, the returned reference to an instance of CIM_ConcreteJob can be used to monitor progress and to obtain the result of the method.") : Amended] CIM_ConcreteJob Ref Job,[In,Description("A timeout period that specifies the maximum amount of time that the client expects the transition to the new state to take. The interval format must be used to specify the TimeoutPeriod. A value of 0 or a null parameter indicates that the client has no time requirements for the transition. \nIf this property does not contain 0 or null and the implementation does not support this parameter, a return code of 'Use Of Timeout Parameter Not Supported' shall be returned.") : Amended] datetime TimeoutPeriod);
};

[Description("Represents a hosting computer system or virtual computer system.\nTo retrieve information for the VMMS, use Msvm_VirtualSystemManagementService.\nRemarks: When a property of the Msvm_PlannedComputerSystem class changes, the WMI provider indicates an __InstanceModificationEvent event that describes the changes. The previous state is contained in the PreviousInstance property, and the new state is contained in the TargetInstance property. This event is asynchronous; by the time the __InstanceModificationEvent event is processed, the TargetInstance property may not reflect the current state.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_PlannedComputerSystem : CIM_ComputerSystem
{
  [Description("An array of NUMA nodes that are currently assigned to the virtual machine.") : Amended] uint16 AssignedNumaNodeList[];
  [Description("For the virtual system, this property describes the total up time, in milliseconds, since the machine was last turned on, reset, or restored. This time excludes the time the virtual system was in the paused state. For the host system, this property is set to NULL.") : Amended] uint64 OnTimeInMilliseconds;
  [Description("The identifier of the process under which this virtual machine is running. This value can be used to uniquely identify the instance of Vmwp.exe on the system that is running the virtual machine.") : Amended] uint32 ProcessID;
  [Description("The date and time when the virtual machine configuration file was last modified. The configuration file is modified during certain virtual machine operations, as well as when any of the virtual machine or device settings are added, modified, or removed.") : Amended] datetime TimeOfLastConfigurationChange;
};

[Description("Represents the virtualization-specific settings for a virtual system.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualSystemSettingData : CIM_VirtualSystemSettingData
{
  [Description("The globally-unique identifier for the BIOS of the virtual computer system.\nThis is a read-only property, but it can be changed using the ModifyVirtualSystem method of the Msvm_VirtualSystemManagementService class.") : Amended] string BIOSGUID;
  [Description("The serial number of the BIOS for the virtual computer system.\nThis is a read-only property, but it can be changed using the ModifyVirtualSystem method of the Msvm_VirtualSystemManagementService class.") : Amended] string BIOSSerialNumber;
  [Description("The serial number of the base board for the virtual computer system.\nThis is a read-only property, but it can be changed using the ModifyVirtualSystem method of the Msvm_VirtualSystemManagementService class.") : Amended] string BaseBoardSerialNumber;
  [Description("The serial number of the chassis for the virtual computer system.\nThis is a read-only property, but it can be changed using the ModifyVirtualSystem method of the Msvm_VirtualSystemManagementService class.") : Amended] string ChassisSerialNumber;
  [Description("The architecture of this system.") : Amended] string Architecture;
  [Description("The asset tag of the chassis for the virtual computer system.\nThis is a read-only property, but it can be changed using the ModifyVirtualSystem method of the Msvm_VirtualSystemManagementService class.") : Amended] string ChassisAssetTag;
  [Description("This property is set to TRUE if the num lock key is set to on by the BIOS, FALSE if the num lock key is set to off by the BIOS.\nThis is a read-only property, but it can be changed using the ModifyVirtualSystem method of the Msvm_VirtualSystemManagementService class.") : Amended] boolean BIOSNumLock;
  [Description("This property is set to TRUE if hibernate (S4) is enabled by the BIOS, FALSE if hibernate is disabled.\nThis is a read-only property, but it can be changed using the ModifyVirtualSystem method of the Msvm_VirtualSystemManagementService class.") : Amended] boolean EnableHibernation;
  [Values{"Floppy", "CD-ROM", "IDE Hard Drive", "PXE Boot", "SCSI Hard Drive", "Reserved"} : Amended,Description("The boot order set within the BIOS of the virtual computer system. This property is an array of values, max length 4, where each value indicates a device to boot from. The virtual computer system will first attempt to boot from the device indicated by the first value within the array. If that device does not contain a boot sector, the virtual computer system will attempt to boot from the next device specified by the BootOrder property and so on. If no device specified within the BootOrder contains a boot sector the virtual computer system will fail to boot. The default value for a virtual computer system is [0, 1, 2, 3, 4].\nValue definitions:\n0 (Floppy): The virtual computer system will attempt to boot from the floppy disk within the floppy drive.\n1 (CD-ROM): The virtual computer system will attempt to boot from the first CD or DVD disk found with a boot sector.\n2 (IDE Hard Drive): The virtual computer system will attempt to boot from the first hard drive found attached to an IDE controller with a boot sector.\n3 (PXE Boot): The virtual computer system will attempt to PXE boot from the network.\n4 (SCSI Hard Drive): The virtual computer system will attempt to boot from the first hard drive found attached to a SCSI controller with a boot sector.\n5-65535: Reserved\nThis is a read-only property, but it can be changed using the ModifyVirtualSystem method of the Msvm_VirtualSystemManagementService class.") : Amended] uint16 BootOrder[];
  [Description("If set to true, the virtual system will attempt to boot from virtual PCI Express devices if no successful boot source entry is found.") : Amended] boolean BootPciExpress;
  [Description("If set, the device instance GUID of the root virtual PCI Express controller to boot devices from.") : Amended] string BootPciExpressInstanceFilter;
  [Description("Contains references to the boot source entries of this virtual computer system. This property is an array of strings, where each string is a full path to a Msvm_BootSourceSettingData instance indicating a device, file, or other boot source to boot from.") : Amended] string BootSourceOrder[];
  [Description("The object path for the snapshot Msvm_VirtualSystemSettingData from which this object is based. This property will be NULL if this object is not based off a snapshot.") : Amended] string Parent;
  [Values{"Disable", "ProductionFallbackToTest", "ProductionNoFallback", "Test"} : Amended,Description("Indicates the user-defined snapshot type. \nDisable: Disable the creation of any snapshot. \nProductionFallbackToTest: Data-consistent snapshot for use in the production environment.Performs a snapshot with application state when the ability to create data consistent snapshot is not available. \nProductionNoFallback: Data-consistent snapshot for use in the production environment.Does not create a snapshot with application state if it is not possible to create a data consistent snapshot. \nTest: Snapshot that contains memory and device information for test and development purpose. \n") : Amended] uint16 UserSnapshotType;
  [Description("The name of the CIM_ComputerSystem to which this setting data belongs") : Amended] string VirtualSystemIdentifier;
  [Description("This property is set to TRUE if the configuration has a reference to a saved state file, FALSE if not. Note that this does not indicate the presence of such a file, only that the configuration specifies one.\nThis is a read-only property, it cannot be changed.") : Amended] boolean IsSaved;
  [Description("Any additional information provided to the recovery action. The meaning of this property is defined by the action in AutomaticRecoveryAction. If AutomaticRecoveryAction is 0 (\"None\") or 1 (\"Restart\"), this value is NULL. If AutomaticRecoveryAction is 2 (\"Revert to Snapshot\"), this is the object path to a snapshot that should be applied on failure of the virtual machine worker process.\nThis is a read-only property, but it can be changed using the ModifyVirtualSystem method of the Msvm_VirtualSystemManagementService class.") : Amended] string AdditionalRecoveryInformation;
  [Description("Indicates whether SCSI commands from the guest operating system are passed to pass-through disks. If TRUE, SCSI commands emitted by the guest operating system to pass-through disks are not filtered.It is recommended that SCSI filtering remains enabled for production deployments.\nThis is a read-only property, but it can be changed using the ModifyVirtualSystem method of the Msvm_VirtualSystemManagementService class.\nWindows Server 2008:  The AllowFullSCSICommandSet property is not supported.") : Amended] boolean AllowFullSCSICommandSet;
  [Description("The channel identifier used to debug the virtual system using the VUD unified debugger.") : Amended] uint32 DebugChannelId;
  [Description("Whether the virtual system is using synthetic debugging.") : Amended] uint16 DebugPortEnabled;
  [Description("The tcpip port used to debug the virtual system using synthetic debugging.") : Amended] uint32 DebugPort;
  [Description("The version of the virtual system in a format of \"major.minor\", for example \"2.0\".\nWindows Server 2008:  The Version property is not supported.") : Amended] string Version;
  [Description("Indicates whether the Hyper-V VSS writer supports taking incremental backup of this Virtual machine.\nThis is a read-write property.") : Amended] boolean IncrementalBackupEnabled;
  [Description("Indicates whether virtual non-uniform memory access (NUMA) nodes are projected into the virtual machine. If FALSE, the virtual machine will have a single node. If TRUE, the number of virtual NUMA nodes projected into the virtual machine is determined from the values of the Msvm_ProcessorSettingData.MaxProcessorsPerNumaNode and Msvm_MemorySettingData.MaxMemoryBlocksPerNumaNode properties.\n") : Amended] boolean VirtualNumaEnabled;
  [Description("The size of the Low (below 4GB) Memory-Mapped IO Gap in MB\n") : Amended] uint64 LowMmioGapSize;
  [Description("The size of the High (above 4GB) Memory-Mapped IO Gap in MB\n") : Amended] uint64 HighMmioGapSize;
  [Description("The base address of the High (above 4GB) Memory-Mapped IO Gap in MB\n") : Amended] uint64 HighMmioGapBase;
  [Description("Indicates whether live migration of a virtual machine that is configured with a virtual FC adapter is allowed to a destination machine, without doing any checks for the existence of paths to the storage devices on the destination \nThe default value of this property is FALSE. If set to TRUE, the VM can be live migrated to a target machine which may have no or reduced paths to the target FC devices. The guest operating system may lose connectivity to storage and may behave in an unpredictable manner. \n This property should be cleared after a live migration") : Amended] boolean AllowReducedFcRedundancy;
  [Description("The subtype of the virtual system.") : Amended] string VirtualSystemSubType;
  [Description("Secure boot enabled setting for the VM") : Amended] boolean SecureBootEnabled;
  [Description("The globally-unique identifier of the template of intial values of UEFI Secure Boot related variables.\nThis is a read-only property, but it can be changed using the ModifyVirtualSystem method of the Msvm_VirtualSystemManagementService class.") : Amended] string SecureBootTemplateId;
  [Description("Pause after boot failure setting for the VM") : Amended] boolean PauseAfterBootFailure;
  [Description("Turn off the VM instead of restarting the VM if the guest operating system initiated a restart.") : Amended] boolean TurnOffOnGuestRestart;
  [Description("Identifies the IP protocol used for network boot.") : Amended] uint16 NetworkBootPreferredProtocol;
  [Description("Identifies the Console Mode for the VM") : Amended] uint16 ConsoleMode;
  [Values{"VMBus Pipe", "Hyper-V Socket"} : Amended,Description("Indicates the transport type to use when connecting to an enhanced session.") : Amended] uint16 EnhancedSessionTransportType;
  [Description("Identifies the action to be taken on VM, when a critical error happens, like storage disconnect.The value of 1, causes the VM to be paused and automatically resumed when the critical error condition is resolved. This behavior can be overridden by setting the value to 0 upon which no specific action will be taken for critical error conditions. ") : Amended] uint16 AutomaticCriticalErrorAction;
  [Description("Identifies the maximum duration for which the AutomaticCriticalErrorAction will be performed to resolve the critical error. This is applicable only when the value of the AutomaticCriticalErrorAction property is not 0 (None). Once the timeout expires, the VM will be powered off.The value will be rounded up to the nearest minute. A value of 0 implies that the VM should be powered off immediately when it encounters a critical error condition. ") : Amended] datetime AutomaticCriticalErrorActionTimeout;
  [Description("Lock the console when disconnecting from vmconnect.") : Amended] boolean LockOnDisconnect;
  [Description("Indicates whether the guest can control cache types.") : Amended] boolean GuestControlledCacheTypes;
  [Description("Indicates whether this is a snapshot created automatically for the user.") : Amended] boolean IsAutomaticSnapshot;
  [Description("Indicates whether this virtual machine should have automatic snapshots enabled.") : Amended] boolean AutomaticSnapshotsEnabled;
  [Description("An array of embedded Msvm_NumaNodeTopology instances which contains NUMA node topology for each NUMA node.") : Amended] string NumaNodeTopologyArray[];
  [Description("Indicates whether the virtual system should have guest state isolation enabled.") : Amended] boolean GuestStateIsolationEnabled;
};

[Description("A ResourcePool is a logical entity (with associated controls) provided by the host system for the purpose of allocation and assignment of resources. A given ResourcePool may be used to allocate resources of a specific type. Hierarchies of ResourcePools may be created to provide administrative control over allocations.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ResourcePool : CIM_ResourcePool
{
  [Values{"OK", "Degraded", "Non-Recoverable Error", "No Contact", "Lost Communication", "Protocol Mismatch", "Insufficient Throughput"} : Amended] uint16 OperationalStatus[];
};

[Description("Represents the non-allocation related settings of a CIM_ResourcePool instance.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_AbstractResourcePoolSettingData : CIM_SettingData
{
  [Description("An opaque identifier for the pool. This property is used to provide correlation across save and restore of configuration data to underlying persistent storage.") : Amended] string PoolID;
  [Description("The type of resource this ResourcePool may allocate.") : Amended,Values{"Other", "Computer System", "Processor", "Memory", "IDE Controller", "Parallel SCSI HBA", "FC HBA", "iSCSI HBA", "IB HCA", "Ethernet Adapter", "Other Network Adapter", "I/O Slot", "I/O Device", "Floppy Drive", "CD Drive", "DVD drive", "Disk Drive", "Tape Drive", "Storage Extent", "Other storage device", "Serial port", "Parallel port", "USB Controller", "Graphics controller", "IEEE 1394 Controller", "Partitionable Unit", "Base Partitionable Unit", "Power", "Cooling Capacity", "Ethernet Switch Port", "Logical Disk", "Storage Volume", "Ethernet Connection", "DMTF reserved", "Vendor Reserved"} : Amended] uint16 ResourceType;
  [Description("A string that describes the resource type when a well defined value is not available and ResourceType is set to 0 for Other.") : Amended] string OtherResourceType;
  [Description("A string describing an implementation specific sub-type for this pool. For example, this may be used to distinguish different models of the same resource type.") : Amended] string ResourceSubType;
  [Description("Specifies the allocation strategy to be used by the resource pool in order to balance resource utilization across its aggregated resources.") : Amended,Values{"Unknown", "Not Supported", "None", "Distributed", "Consolidated"} : Amended] uint16 LoadBalancingBehavior;
  [Description("Specifies whether the resource pool may attempt to use other host resources to satisfy the allocation request if the desired resources cannot be allocated.") : Amended,Values{"Unknown", "Not Supported", "Dedicated", "Soft Affinity", "Hard Affinity", "DMTF Reserved", "Vendor Reserved"} : Amended] uint16 MappingBehavior;
  [Description("Specifies the order in which host resources available through this pool shall be selected when attempting to satisfy an allocation request and the requested host resource is not available or no host resource is specified.") : Amended] string MappingOrder[];
};

[Description("A concrete version of an object that represents the non-allocation related settings of a CIM_ResourcePool instance.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ResourcePoolSettingData : Msvm_AbstractResourcePoolSettingData
{
};

[Description("Represents the current and recorded allocation states of a virtual resource.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ResourceAllocationSettingData : CIM_ResourceAllocationSettingData
{
  [Description("A free-form string array of identifiers of this resource presented to the virtual computer system's operating system. These values are only used if the ResourceType property is set to 6 (Parallel SCSI HBA) and the ResourceSubType property is set to \"Microsoft Synthetic SCSI Controller\". This property is set to \"GUID\".\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method of the Msvm_VirtualSystemManagementService class.\nWindows Server 2008:  The VirtualSystemIdentifiers property is not supported until Windows Server 2008 R2.") : Amended] string VirtualSystemIdentifiers[];
};

[Description("Defines the means by which a client can discover the valid range of default settings for a virtual resource. An AllocationCapabilities object is associated with each resource pool. Four ResourceAllocationSettingData objects are associated with the AllocationCapabilities object to describe the minimum, maximum, default, and incremental values for the given resource's allocation. Together, these classes describe the overall range of supported capabilities.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_AllocationCapabilities : CIM_AllocationCapabilities
{
};

[Description("A concrete version of job. This class represents a generic and instantiable unit of work, such as a batch or a print job and is specifically used in Hyper-V to track the progress of asynchronous operations.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ConcreteJob : CIM_ConcreteJob
{
  [Description("Indicates whether the job can be cancelled. The value of this property does not guarantee that a request to cancel the job will succeed.") : Amended] boolean Cancellable;
  [Description("Indicates the type of Job being tracked by this object.") : Amended] uint16 JobType;
  [Values{"Completed with No Error", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended] uint32 GetError([OUT] string Error);
  [Values{"Completed with No Error", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("When the job is executing or has terminated without error, then this method returns no Msvm_Error instance. However, if the job has failed because of some internal problem or because the job has been terminated by a client, then one or more Msvm_Error instances are returned.") : Amended] uint32 GetErrorEx([Out,Description("If the operational status on the job is not \"OK\", this method returns an array of Msvm_Error instances. Otherwise, if the job is \"OK\", NULL is returned.") : Amended] string Errors[]);
};

[Description("HostedResourcePool is a specialization of the SystemComponent association that establishes that the ResourcePool is defined in the context of the System") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_HostedResourcePool : CIM_SystemComponent
{
  [Description("The parent system in the association") : Amended] Msvm_ComputerSystem Ref GroupComponent;
  [Description("The ResourcePool that is a component of the system") : Amended] CIM_ResourcePool Ref PartComponent;
};

[Description("Represents a Non-Uniform Memory Access node of a CIM_ComputerSystem.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_NumaNode : CIM_EnabledLogicalElement
{
  [Key,Description("The NUMA node identifier.") : Amended] string NodeID;
  [Description("The total number of processor cores in this NUMA node. This may differ from the number of Msvm_Processor objects associated to this node if each processor core supports multiple compute threads") : Amended] uint32 NumberOfProcessorCores;
  [Description("The total number of logical processor cores in this node.") : Amended] uint32 NumberOfLogicalProcessors;
  [Description("The number of memory blocks currently available for consumption by virtual machines.") : Amended] uint64 CurrentlyConsumableMemoryBlocks;
  [Description("The number of virtual processors currently assigned to this NUMA node.") : Amended] uint32 CurrentlyAssignedVirtualProcessors;
};

[Description("Represents a NUMA node resource allocation.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_NumaNodeTopology : CIM_ManagedElement
{
  [Description("The number of Virtual NUMA node") : Amended] uint32 VirtualNodeNumber;
  [Description("The number of the physical NUMA node mapped to the virtual NUMA node") : Amended] uint32 PhysicalNodeNumber;
  [Description("The number of the virtual socket for this virtual NUMA node") : Amended] uint32 VirtualSocketNumber;
  [Description("Number of processors allocated on the physical NUMA node for the virtual NUMA node") : Amended] uint32 CountOfProcessors;
  [Description("Number of memory blocks (in MB) allocated on the physical NUMA node for the virtual NUMA node") : Amended] uint64 CountOfMemoryBlocks;
};

[Description("Associates an instance of an allocated resource with the physical NUMA node from which it was allocated.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ElementAllocatedFromNumaNode : CIM_Dependency
{
};

[Description("BasedOn is an association describing how StorageExtents can be assembled from lower level Extents. For example, ProtectedSpaceExtents are parts of PhysicalExtents, while VolumeSets are assembled from one or more Physical or ProtectedSpaceExtents. As another example, CacheMemory can be defined independently and realized in a PhysicalElement or can be 'based on' Volatile or NonVolatileStorageExtents.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_BasedOn : CIM_BasedOn
{
};

[Description("Represents the virtual processor in a virtual computer system.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_Processor : CIM_Processor
{
  [Description("The recorded history of percentage of the total processing power being consumed by the virtual system. This is an array containing samples.") : Amended] uint16 LoadPercentageHistory[];
};

[Description("Aggregates the processor resources that may be allocated to a virtual system.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ProcessorSettingData : CIM_ResourceAllocationSettingData
{
  [Description("Indicates whether the virtual machine should lower the CPU identifier. Some older operating systems may require you to limit processor functionality in this way in order to run.") : Amended] boolean LimitCPUID;
  [Description("Indicates the number of SMT threads per core reported to the guest.  This reporting is independent of whether the hardware for SMT is present. ") : Amended] uint64 HwThreadsPerCore;
  [Description("Indicates whether the VM should limit the CPU features exposed to the operating system. Limiting the processor features enables the VM to be migrated to different host computer systems with different processors. Migrating VMs between computers with processors from different vendors is not supported.") : Amended] boolean LimitProcessorFeatures;
  [Description("The maximum number of virtual processors that can be observed within the VM as belonging to a single virtual NUMA node.") : Amended] uint64 MaxProcessorsPerNumaNode;
  [Description("The maximum number of NUMA nodes that can be observed within the VM as belonging to a single processor socket.") : Amended] uint64 MaxNumaNodesPerSocket;
  [Description("Indicates whether the VM should enable features that increase the protection of host  resources from workload running in the VM.") : Amended] boolean EnableHostResourceProtection;
  [Description("Indicates whether Hyper-V should expose virtualized hardware virtualization extensionsto the VM.") : Amended] boolean ExposeVirtualizationExtensions;
  [Description("Indicates whether Hyper-V should report that a hypervisor is present to the nested guest") : Amended] boolean HideHypervisorPresent;
  [Description("The Cpu Group Id this VM is bound to. When value is 0 it means is not bound to a specificcpu group.") : Amended] string CpuGroupId;
  [Description("Indicates whether the protections for speculative execution should be disabled for the virtual processors.") : Amended] boolean DisableSpeculationControls;
  [Description("Indicates whether Hyper-V should expose virtualized PMU (Performance Monitoring Unit) facilities to the VM.") : Amended] boolean EnablePerfmonPmu;
  [Description("Indicates whether Hyper-V should expose virtualized LBR (Last Branch Record) facilities to the VM.") : Amended] boolean EnablePerfmonLbr;
  [Description("Indicates whether Hyper-V should expose virtualized PEBS (Processor Event-Based Sampling) facilities to the VM.") : Amended] boolean EnablePerfmonPebs;
  [Description("Indicates whether Hyper-V should expose virtualized IPT (Intel Processor Trace) facilities to the VM.") : Amended] boolean EnablePerfmonIpt;
  [Values{"Default", "AlwaysEnabled", "AlwaysDisabled"} : Amended,Description("Indicates whether Hyper-V should enable page shattering for the VM") : Amended] uint8 EnablePageShattering;
  [Description("Indicates whether Hyper-V should start the VM in legacy APIC mode. ") : Amended] boolean EnableLegacyApicMode;
  [Description("Indicates whether Hyper-V should allow the VM to access ACOUNT/MCOUNT MSRs for CPU performance monitoring.") : Amended] boolean AllowACountMCount;
};

[Description("Aggregates the processor resources that may be allocated to a virtual system.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ProcessorPool : CIM_ResourcePool
{
  [Description("This method is used to find the actual reserve with the input parameter being the number of virtual machine processors for which the reserve is calculated. This method is necessary because the reservation of processor resources is highly dependent on the number of processors which must be scheduled in parallel.\nWindows Server 2008:  Before Windows Server 2008 R2 this method does nothing and always returns 0./nReturn value: The amount of CPU resources that may be reserved for a virtual system.") : Amended] uint32 CalculatePossibleReserve([In,Description("The number of virtual machine processors for which the reserve is calculated. The maximum value for this property is the logical processor count for the host computer.") : Amended] uint16 ProcessorCount);
};

[Description("Represents the memory currently allocated to a virtual system.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_Memory : CIM_Memory
{
};

[Description("Represents the configured state of the memory for a virtual system. ") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_MemorySettingData : CIM_ResourceAllocationSettingData
{
  [Description("Indicates if dynamic memory is enabled.") : Amended] boolean DynamicMemoryEnabled;
  [Description("Indicates whether this device is virtualized or passed through, possibly using partitioning. When set to False, the underlying or host resource is utilized. At least one item shall be present in the DeviceID property. When set to True, the resource is virtualized and may not map directly to an underlying/host resource. Some implementations may support specific assignment for virtualized resources, in which case the host resource(s) are exposed using the DeviceID property. This property is always set to True.") : Amended] boolean IsVirtualized;
  [Description("Indicates if Smart Paging is active.") : Amended] boolean SwapFilesInUse;
  [Description("The maximum amount of memory that can be observed within the VM as belonging to a single NUMA node.") : Amended] uint64 MaxMemoryBlocksPerNumaNode;
  [Description("Indicates if SGX is enabled.") : Amended] boolean SgxEnabled;
  [Description("The amount of SGX memory to allocate for the VM, in MB.") : Amended] uint64 SgxSize;
  [Values{"No access", "Read-only", "Read-write"} : Amended,Description("The SGX launch control mode for the VM.") : Amended] uint32 SgxLaunchControlMode;
  [Description("The default SGX launch control MSR values for the VM.") : Amended] string SgxLaunchControlDefault;
  [Description("Indicates if huge pages are enabled.") : Amended] boolean HugePagesEnabled;
};

[Description("Represents the low-level software that is loaded into RAM to configure and start the system. The BIOS is not a logical device, hence the virtual BIOS should not be thought of as a virtual computer system device. As it is not a device, it does not have a corresponding resource pool. The BIOS object is associated with the virtual computer system through the Msvm_SystemBIOS association.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_BIOSElement : CIM_BIOSElement
{
  [Description("The serial number for the base board on the virtual system.") : Amended] string BaseBoardSerialNumber;
  [Description("The unique identifier for the BIOS.") : Amended] string BIOSGUID;
  [Description("The enabled state of the Num Lock in the BIOS.") : Amended] boolean BIOSNumLock;
  [Description("The hibernate state in the BIOS.") : Amended] boolean EnableHibernation;
  [Description("The serial number for the BIOS.") : Amended] string BIOSSerialNumber;
  [Description("The order in which devices will be searched for a boot sector at startup.") : Amended] uint16 BootOrder[];
  [Description("If set to true, the virtual system will attempt to boot from virtual PCI Express devices if no successful boot source entry is found.") : Amended] boolean BootPciExpress;
  [Description("If set, the device instance GUID of the root virtual PCI Express controller to boot devices from.") : Amended] string BootPciExpressInstanceFilter;
  [Description("Automatically populated by the BIOS when the virtual machine is created.") : Amended] string ChassisAssetTag;
  [Description("Automatically populated by the BIOS when the virtual machine is created.") : Amended] string ChassisSerialNumber;
};

[Description("This class is used to associate a virtual system with its BIOS.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SystemBIOS : CIM_SystemBIOS
{
  [Description("The virtual computer system that starts from the BIOS.") : Amended] CIM_ComputerSystem Ref GroupComponent;
  [Description("The BIOS associated with the virtual system.") : Amended] Msvm_BIOSElement Ref PartComponent;
};

[Description("Represents the configured state of the security settings for \na virtual machine.\n") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SecuritySettingData : CIM_SettingData
{
  [Description("A setting that indicates whether a Trusted Platform Module \n(TPM) should be enabled for this virtual machine. When this \nproperty is set to TRUE, then the TPM will be enabled. A  \nnewly created VM has a disabled TPM.") : Amended] boolean TpmEnabled;
  [Description("A setting that indicates whether a Key Storage Drive \n(KSD) should be enabled for this virtual machine. When this \nproperty is set to TRUE, then the KSD will be enabled. A  \nnewly created VM has a disabled KSD.") : Amended] boolean KsdEnabled;
  [Description("A setting that indicates whether shielding is requested for a VM.\nThis property is set to TRUE when a VM is to be shielded.\nA newly created VM has an initial shielding requested state of FALSE.") : Amended] boolean ShieldingRequested;
  [Description("A setting that indicates whether data protection is requested for a VM.\nThis property is set to TRUE when a VM is to have its data protected.\nA newly created VM has an initial data protection requested state of FALSE.") : Amended] boolean DataProtectionRequested;
  [Description("A setting that indicates whether encryption of state and migration is enabled for a VM.\nThis property is set to TRUE when a VM is to have its state and migration traffic encrypted.\nA newly created VM has an initial encryption of state and migration state of FALSE.") : Amended] boolean EncryptStateAndVmMigrationTraffic;
  [Description("A setting that indicates whether virtualization based security should be offered to a VM.\nThis property is set to TRUE when a VM should not be offered virtualization based security.\nA newly created VM has an initial virtualization based security opt out state of FALSE.") : Amended] boolean VirtualizationBasedSecurityOptOut;
  [Description("A setting that indicates whether binding is requested for a VM.\nThis property is set to TRUE when a VM is to be bound to host.\nA newly created VM has an initial bound state of FALSE.") : Amended] boolean BindToHostTpm;
  [Description("A setting that indicates whether the VM should launch under AppContainer (including LPAC).\nThis property is set to TRUE when a VM should NOT launch under AppContainer (it has opted out).\nA newly created VM has an initial AppContainer opt-out value of FALSE.") : Amended] boolean AppContainerLaunchOptOut;
};

[Description("Represents the runtime security settings of a CIM_ComputerSystem.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SecurityElement : CIM_EnabledLogicalElement
{
  [Description("Whether the VM is currently shielded.") : Amended] boolean Shielded;
  [Description("Whether the VM is currently having its state and migration traffic encrypted.") : Amended] boolean EncryptStateAndVmMigrationTrafficEnabled;
};

[Description("Represents the security service. It is used for configuring virtual system security settings.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SecurityService : CIM_Service
{
  [Description("Modifies the current security settings of a virtual machine.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "Invalid State", "Incompatible Parameters", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 ModifySecuritySettings([In] string SecuritySettingData,[Out,Description("An optional parameter for monitoring progress of the operation, which is used if the method could not be executed synchronously. If the operation is executing asynchronously, the return value is 4096.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Method to set the key protector for a virtual system.") : Amended] uint32 SetSecurityPolicy([IN,Description("String contains an embedded instance of the Msvm_SecuritySettingData class representing the security settings of a virtual system.") : Amended] string SecuritySettingData,[IN,Description("Raw byte array that contains the security policy to set.") : Amended] uint8 SecurityPolicy[],[Out,Description("An optional parameter for monitoring progress of the operation, which is used if the method could not be executed synchronously. If the operation is executing asynchronously, the return value is 4096.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Method to set the key protector for a virtual system.") : Amended] uint32 SetKeyProtector([IN,Description("String contains an embedded instance of the Msvm_SecuritySettingData class representing the security settings of a virtual system.") : Amended] string SecuritySettingData,[IN,Description("Raw byte array that contains the key protector to set.") : Amended] uint8 KeyProtector[],[Out,Description("An optional parameter for monitoring progress of the operation, which is used if the method could not be executed synchronously. If the operation is executing asynchronously, the return value is 4096.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Method to retrieve the key protector for a virtual system.") : Amended] uint32 GetKeyProtector([IN,Description("String contains an embedded instance of the Msvm_SecuritySettingData class representing the security settings of a virtual system.") : Amended] string SecuritySettingData,[Out,Description("Receives the raw byte array that contains the key protector currently in use.") : Amended] uint8 KeyProtector[]);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Method to restore back to the last known good key protector.") : Amended] uint32 RestoreLastKnownGoodKeyProtector([IN,Description("String contains an embedded instance of the Msvm_SecuritySettingData class representing the security settings of a virtual system.") : Amended] string SecuritySettingData,[Out,Description("An optional parameter for monitoring progress of the operation, which is used if the method could not be executed synchronously. If the operation is executing asynchronously, the return value is 4096.") : Amended] CIM_ConcreteJob Ref Job);
};

[Description("Represents the state of the TPM device.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_TPM : CIM_TPM
{
};

[Description("Represents the capabilities and management of the serial controller. Only one serial controller can be active in a virtual machine at any time.  Serial controllers have a fixed number of port instances. This implementation supports two ports per controller.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SerialController : CIM_SerialController
{
};

[Description("Represents a serial port associated with the serial controller. The settings for a serial port can be configured using the associated instance of Msvm_SerialPortSettingData.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SerialPort : CIM_LogicalPort
{
};

[Description("Associates a serial port with a serial controller.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SerialPortOnSerialController : CIM_PortOnDevice
{
};

[AMENDMENT, LOCALE(0x0804)] 
class Msvm_SerialPortSettingData : CIM_ResourceAllocationSettingData
{
  [Description("This property is set to TRUE if the debugger mode is enabled on a virtual serial port.\nThe debugger mode enhances the use of a Microsoft Windows kernel debugger over a virtual serial port.") : Amended] boolean DebuggerMode;
};

[Description("Represents an IDE controller. This class can support up to four drives attached to the controller. The IDE controller is fixed in the virtual machine and therefore does not have a resource pool associated with it.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_IDEController : CIM_IDEController
{
};

[Description("Represents a synthetic SCSI controller. A synthetic SCSI controller can support up to 256 drives.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SCSIProtocolController : CIM_SCSIProtocolController
{
};

[Description("Represents a virtual persistent memory controller.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_PersistentMemoryController : CIM_Controller
{
};

[Description("Represents a hard drive inside of a virtual machine. This hard disk drive can be either a pass-through device (if a physical hard disk was attached to the virtual machine) or a synthetic device that is populated with virtual hard disk media. Because virtual and physical hard disks can be added and removed from the virtual machine, there are two resource pools associated with this class, one for pass-through hard disks and the other for virtual hard disks. Hard disks can only be added or removed if the virtual machine is offline.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_DiskDrive : CIM_DiskDrive
{
  [Description("The number of the physical drives on the hosting computer system.") : Amended] uint32 DriveNumber;
};

[Description("Represents a DVD drive inside of a virtual machine. This DVD drive can either be a pass-through device (if a physical hard disk was attached to the virtual machine) or synthetic and populated with ISO file media. Because virtual and physical DVD drives can be added and removed from the virtual machine, there are two resource pools associated with this class, one for pass-through DVD drives, and the other for virtual DVD drives. DVD drives can only be added or removed if the virtual machine is offline.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_DVDDrive : CIM_DVDDrive
{
};

[Description("Represents a floppy drive inside the virtual machine. A floppy drive can be populated with a file representing floppy media or the drive can be empty. Physical media is not supported. There is exactly one floppy drive per floppy controller and it is not removable.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_DisketteDrive : CIM_DisketteDrive
{
};

[Description("Represents the floppy controller in the virtual machine. The floppy controller is fixed, therefore there is no resource pool associated with it.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_DisketteController : CIM_Controller
{
};

[Description("Represents storage drive media and is used to populate the storage drives. The media types supported include virtual hard files, virtual floppy files, ISO files, and physical device media.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_LogicalDisk : CIM_LogicalDisk
{
  [Values{"OK", "Degraded", "Non-Recoverable Error", "In Service", "No Contact", "Lost Communication", "Supporting Entity in Error", "Protocol Mismatch", "Communication Timed Out", "Insufficient Throughput", "Unknown QoS Policy ID", "QoS Not Supported", "QoS Configuration Mismatch", "Disk Full"} : Amended] uint16 OperationalStatus[];
};

[Description("Represents settings specifically related to the allocation of virtual storage.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_StorageAllocationSettingData : CIM_StorageAllocationSettingData
{
  [Description("The maximum number of I/O operations per second which will be serviced for this virtual storage extent. If the value is not defined or 0 there is no limit to the number of IOPS that the device can issue.This property is expressed in normalized I/Os per second. Each I/O request is accounted for as 1 normalized I/O if the size of the request is less than or equal to a predefined base size (8KB). Requests that are larger than the base size are accounted for as N I/Os, where N is the rounded-up value of the request size divided by the base size (for example, if the base size is 8KB, a 32KB requests is counted as 4 normalized I/Os, a 60KB request as 8 normalized I/Os, etc...).") : Amended] uint64 IOPSLimit;
  [Description("The minimum number of I/O operations per second which will be serviced for this virtual storage extent. If both IOPSLimit and IOPSReservation are defined, the value of IOPSLimit must be greater or equal to IOPSReservation. This property is expressed in normalized I/Os per second. Each I/O request is accounted for as 1 normalized I/O if the size of the request is less than or equal to a predefined base size (8KB). Requests that are larger than the base size are accounted for as N I/Os, where N is the rounded-up value of the request size divided by the base size (for example, if the base size is 8KB, a 32KB requests is counted as 4 normalized I/Os, a 64KB request as 8 normalized I/Os, etc...).") : Amended] uint64 IOPSReservation;
  [Description("Specifies the allocation units used by the IOPSLimit and IOPSReservation properties.") : Amended] string IOPSAllocationUnits;
  [Description("Specifies the unique identifier of the Storage QoS Policy to be applied to this virtual storage extent.") : Amended] string StorageQoSPolicyID;
  [Description("Indicates whether the virtual hard disk supports SCSI-3 persistent reservations") : Amended] boolean PersistentReservationsSupported;
  [Description("A GUID representing which snapshot within the VHD Set file is to be attached.") : Amended] string SnapshotId;
  [Values{"Unknown", "Default", "No Caching", "Cache Sharable Parents"} : Amended,Description("Indicates whether and how in-memory file caching should be used for this VHD. The default policy is set in the DefaultVirtualHardDiskCachingMode field of the Msvm_VirtualSystemManagementServiceSettingData class. This property is reserved for system use.") : Amended] uint16 CachingMode;
  [Description("Specifies whether requests from the VM to flush or write through the cache are respected. If true, then the host ignores all flush or write through requests.") : Amended] boolean IgnoreFlushes;
  [Values{"Default", "WriteCacheEnabled", "WriteCacheandFUAEnabled", "WriteCacheDisabled"} : Amended,Description("Indicates what write hardening method is supported by the disk.") : Amended] uint16 WriteHardeningMethod;
};

[Description("Provides setting data for a virtual storage Logical Unit (LUN) ") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualLogicalUnitSettingData : CIM_ResourceAllocationSettingData
{
  [Description("This identifies the type of storage subsystem which contains this virtual LUN. ") : Amended] string StorageSubsystemType;
};

[Description("An alert generated by a virtual storage resource.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_StorageAlert : CIM_AlertIndication
{
};

[Description("Represents the state of the synthetic display controller that is present in each virtual machine configuration. Only one display controller can be active in a virtual machine at any time and the synthetic controller can be activated only when the guest operating system has loaded the required video acceleration components.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SyntheticDisplayController : CIM_DisplayController
{
};

[AMENDMENT, LOCALE(0x0804)] 
class Msvm_SyntheticDisplayControllerSettingData : CIM_ResourceAllocationSettingData
{
  [Values{"Unknown", "Other", "Maximum", "Single", "Default"} : Amended] uint8 ResolutionType;
};

[Description("Describes the primary drawing surface on a display controller.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VideoHead : CIM_VideoHead
{
};

[Description("Associates a video head with the video controller that includes it.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VideoHeadOnController : CIM_VideoHeadOnController
{
  [Description("The video controller that includes the head.") : Amended] CIM_DisplayController Ref Antecedent;
  [Description("The head on the video device.") : Amended] Msvm_VideoHead Ref Dependent;
};

[Description("Represents the state of the emulated S3 controller that is present in each virtual machine configuration. Only one display controller can be active in a virtual machine at any time.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_S3DisplayController : CIM_DisplayController
{
};

[Description("Represents a keyboard device.Keyboards are logical devices that are always present in a virtual system, and thus are not allocated through a resource pool. One instance is always present in a virtual computer system.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_Keyboard : CIM_UserDevice
{
  [Description("A free-form string indicating the format and layout of the keyboard. This property is set to \"00000409\".") : Amended] string Layout;
  [Description("The number of function keys on the keyboard. This property is set to 12.") : Amended] uint16 NumberOfFunctionKeys;
  [Description("Indicates whether a hardware-level password is enabled at the keyboard, preventing local input. This property is set to 5 (Not Implemented).") : Amended] uint16 Password;
  [Description("Indicates if the keyboard supports unicode.") : Amended] boolean UnicodeSupported;
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Simulates a key press. When successful the key will be in the down state.\nThe PressKey method maps references to the VK_MENU (18), VK_CONTROL (17), and VK_SHIFT (16) to VK_LMENU (164), VK_LCONTROL (162), and VK_LSHIFT (160), respectively, because the VK_MENU, VK_CONTROL, and VK_SHIFT virtual key codes do not represent real keys on a keyboard.\nReturn value: A return value of zero indicates success. A non-zero value indicates a failure to modify the key state.") : Amended] uint32 PressKey([In,Description("The virtual key code of the key to press.") : Amended] uint32 KeyCode);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Simulates a key release. When successful, the key will be in the up state.\nThe ReleaseKey method maps references to the VK_MENU (18), VK_CONTROL (17), and VK_SHIFT (16) to VK_LMENU (164), VK_LCONTROL (162), and VK_LSHIFT (160), respectively, because the VK_MENU, VK_CONTROL, and VK_SHIFT virtual key codes do not represent real keys on a keyboard.\nReturn value: A return value of zero indicates success. A non-zero value indicates a failure to modify the key state.") : Amended] uint32 ReleaseKey([In,Description("The virtual key code of the key to release.") : Amended] uint32 KeyCode);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Simulates a press-release key sequence.\nReturn value: A return value of zero indicates success. A non-zero value indicates a failure to modify the key state.") : Amended] uint32 TypeKey([In,Description("The virtual key code of the key to press.") : Amended] uint32 KeyCode);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Retrieves the key state of a key.\nThe IsKeyPressed method will always return FALSE for the VK_MENU (18), VK_CONTROL (17),and VK_SHIFT (16) keys because these are not real keys on a keyboard. These virtual key codes are always mapped to VK_LMENU (164), VK_LCONTROL (162), and VK_LSHIFT (160), respectively, by the PressKey and ReleaseKey methods.\nReturn value: A return value of zero indicates success. A non-zero value indicates a failure to query the key state.") : Amended] uint32 IsKeyPressed([In,Description("The virtual key code of the key to query.") : Amended] uint32 KeyCode,[Out,Description("The current down state of the key. A TRUE value means the key is down.") : Amended] boolean KeyState);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Simulates a series of typed ASCII characters. This routine may not be used to simulate the input of non-ASCII characters.\nReturn value: A return value of zero indicates success. A return value of one indicates a failure because of non-translatable characters in the input string. All other non-zero value indicates a failure to modify the key state.") : Amended] uint32 TypeText([In,Description("The series of ASCII text characters to type.") : Amended] string AsciiText);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Simulates a CTRL+ALT+DEL key sequence.\nReturn value: A return value of zero indicates success. A non-zero value indicates a failure to send.") : Amended] uint32 TypeCtrlAltDel();
  [Values{"Completed with No Error", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Simulates a key sequence using scancodes.") : Amended] uint32 TypeScancodes([In,Description("An array containing the scancodes to type.") : Amended] uint8 Scancodes[]);
};

[Description("Represents a PS2 mouse device. Instances of this class are logical devices that are always present in a virtual system, and thus are not allocated through a resource pool. One instance is always present in a virtual computer system.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_Ps2Mouse : CIM_PointingDevice
{
  [Description("Indicates whether the device operates on absolute coordinates. If not set, the device's coordinates are relative. This property is set to FALSE.") : Amended] boolean AbsoluteCoordinates;
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Retrieves the current state of the specified device button.\nReturn value: A return value of zero indicates success. A non-zero value indicates a query failure.") : Amended] uint32 GetButtonState([In,Description("The 1-based index of the button to query.") : Amended] uint32 ButtonIndex,[Out,Description("The current down state of the button. A TRUE value means the button is down.") : Amended] boolean ButtonState);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Sets the current state of the specified device button.\nReturn value: A return value of zero indicates success. A non-zero value indicates a failure to modify the button state.") : Amended] uint32 SetButtonState([In,Description("The 1-based index of the button to modify.") : Amended] uint32 ButtonIndex,[In,Description("The new down state of the button. A TRUE value means the button is down.") : Amended] boolean ButtonState);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Simulates a button click, a down-up sequence, on the specified device button.\nReturn value: A return value of zero indicates success. A non-zero value indicates a failure to modify the button state.") : Amended] uint32 ClickButton([In,Description("The 1-based index of the button.") : Amended] uint32 ButtonIndex);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Offsets the position of the mouse by the specified horizontal and vertical deltas.\nReturn value: A return value of zero indicates success. A non-zero value indicates a failure to alter the mouse position.") : Amended] uint32 SetRelativePosition([In,Description("The horizontal change for the mouse position, in pixels.") : Amended] sint8 HorizontalDelta,[In,Description("The vertical change for the mouse position, in pixels.") : Amended] sint8 VerticalDelta);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Adjusts the z-coordinate of the wheel control of the pointing device. Values written to this property are always relative coordinate offsets.\nReturn value: A return value of zero indicates success. A non-zero value indicates a failure to alter the scroll position.") : Amended] uint32 SetScrollPosition([In,Description("The delta of the scroll position.") : Amended] sint8 ScrollPositionDelta);
};

[Description("Represents a single boot entry for a Generation 2 VM.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_BootSourceSettingData : CIM_SettingData
{
  [ValueMap{"0", "1", "2", "3"} : Amended,Values{"Unknown", "Drive", "Network", "File"} : Amended,Description("An enumeration value that specifies the type of the boot source.") : Amended] uint32 BootSourceType;
  [Description("The other location information, if any, used by firmware to further uniquely identify this boot source.") : Amended] string OtherLocation;
  [Description("The native path used by the firmware to describe this device.") : Amended] string FirmwareDevicePath;
  [Description("The description of the boot source provided by the firmware.") : Amended] string BootSourceDescription;
  [Description("Optional data provided by the firmware.") : Amended] uint8 OptionalData[];
};

[Description("Associates two ManagedElements that represent different aspects of the same underlying entity.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_LogicalIdentity : CIM_LogicalIdentity
{
};

[Description("Associates the Msvm_BootSourceSettingData to the overall Msvm_VirtualSystemsettingData.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_BootSourceComponent : CIM_Component
{
};

[Description("Represents the state of the PCI Express port.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_PciExpress : CIM_LogicalDevice
{
  [Description("A string containing the device instance path that identifies the device virtual pci express device.") : Amended] string DeviceInstancePath;
  [Description("A string containing the device location path that identifies the device virtual pci express device.") : Amended] string LocationPath;
  [Description("The function number of the virtual pci express device.") : Amended] uint16 FunctionNumber;
};

[Description("Represents the configured state of a PCI express port.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_PciExpressSettingData : CIM_ResourceAllocationSettingData
{
  [Description("The virtual function number to assign to the VM.") : Amended] uint16 VirtualFunctions[];
  [Description("A free-form string array of identifiers of this resource presented to the virtual computer system's operating system. The indexes and values per index are defined on a per resource basis (that is, for each enumerated ResourceType value). This property is set to \"GUID\".\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method of the sd class.") : Amended] string VirtualSystemIdentifiers[];
};

[Description("Manages the assignable devices on a host computer system.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_AssignableDeviceService : CIM_Service
{
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Dismounts the specified PCI device so that it can be assigned.") : Amended] uint32 DismountAssignableDevice([In,Description("Embedded instance of a setting data specifying a PCI device to dismount.") : Amended] string DismountSettingData,[Out,Description("String containing the device instance path to the dismounted device.") : Amended] string DismountedDeviceInstancePath,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Mounts the specified PCI device so that it can be used by the host computer system.") : Amended] uint32 MountAssignableDevice([In,Description("String containing the device instance path to a device.") : Amended] string DeviceInstancePath,[In,Description("String containing the device location path to a device.") : Amended] string DeviceLocationPath,[Out,Description("String containing the device instance path to the mounted device.") : Amended] string MountedDeviceInstancePath,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
};

[Description("Represents the settings of a virtual system to import. Used by the Dismount method of the Msvm_AssignableDeviceService class.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_AssignableDeviceDismountSettingData : CIM_SettingData
{
  [Description("PNP device instance ID.") : Amended] string DeviceInstancePath;
  [Description("PNP device location path.") : Amended] string DeviceLocationPath;
  [Description("Indicates if the requisite ACS support should be in place before permitting the dismount.") : Amended] boolean RequireAcsSupport;
  [Description("Indicates if device mitigations should be in place before permitting the dismount.") : Amended] boolean RequireDeviceMitigations;
};

[Description("Represents the state of the GPU partition.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_GpuPartition : CIM_LogicalDevice
{
  [Description("A string containing the device instance path that identifies the GPU partition device.") : Amended] string DeviceInstancePath;
  [Description("The partition ID of the GPU partition device.") : Amended] uint16 PartitionId;
  [Description("The virtual function LUID, which represents a GPU partition.") : Amended] string PartitionVfLuid;
};

[Description("Represents a partitionable GPU. Each GPU can be sliced into a number of GPU partitions, which can be assiged to a virtual machine as a vGPU.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_PartitionableGpu : CIM_ComputerSystem
{
  [Description("An array of valid GPU partition options the physical GPU can be sliced into.") : Amended] uint16 ValidPartitionCounts[];
  [Description("The amount of GPU partitions the physical GPU is sliced into.") : Amended] uint16 PartitionCount;
  [Description("The total amount of VRAM which will appear in the GPU partition.") : Amended] uint64 TotalVRAM;
  [Description("The available amount of VRAM which will appear in the GPU partition.") : Amended] uint64 AvailableVRAM;
  [Description("The minimum amount of VRAM which will appear in the GPU partition.") : Amended] uint64 MinPartitionVRAM;
  [Description("The maximum amount of VRAM which will appear in the GPU partition.") : Amended] uint64 MaxPartitionVRAM;
  [Description("The optimal amount of VRAM which will appear in the GPU partition.") : Amended] uint64 OptimalPartitionVRAM;
  [Description("The total amount of encode engines which will appear in the GPU partition.") : Amended] uint64 TotalEncode;
  [Description("The available amount of encode engines which will appear in the GPU partition.") : Amended] uint64 AvailableEncode;
  [Description("The minumum amount of encode engines which will appear in the GPU partition.") : Amended] uint64 MinPartitionEncode;
  [Description("The maximum amount of encode engines which will appear in the GPU partition.") : Amended] uint64 MaxPartitionEncode;
  [Description("The optimal amount of encode engines which will appear in the GPU partition.") : Amended] uint64 OptimalPartitionEncode;
  [Description("The total amount of decode engines which will appear in the GPU partition.") : Amended] uint64 TotalDecode;
  [Description("The available amount of decode engines which will appear in the GPU partition.") : Amended] uint64 AvailableDecode;
  [Description("The minimum amount of decode engines which will appear in the GPU partition.") : Amended] uint64 MinPartitionDecode;
  [Description("The maximum amount of decode engines which will appear in the GPU partition.") : Amended] uint64 MaxPartitionDecode;
  [Description("The optimal amount of decode engines which will appear in the GPU partition.") : Amended] uint64 OptimalPartitionDecode;
  [Description("The total amount of compute engines which will appear in the GPU partition.") : Amended] uint64 TotalCompute;
  [Description("The available amount of compute engines which will appear in the GPU partition.") : Amended] uint64 AvailableCompute;
  [Description("The minumum amount of compute engines which will appear in the GPU partition.") : Amended] uint64 MinPartitionCompute;
  [Description("The maximum amount of compute engines which will appear in the GPU partition.") : Amended] uint64 MaxPartitionCompute;
  [Description("The optimal amount of compute engines which will appear in the GPU partition.") : Amended] uint64 OptimalPartitionCompute;
};

[Description("Represents the configured state of a GPU partition device.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_GpuPartitionSettingData : CIM_ResourceAllocationSettingData
{
  [Description("The minimum amount of VRAM which will appear in the GPU partition.") : Amended] uint64 MinPartitionVRAM;
  [Description("The maximum amount of VRAM which will appear in the GPU partition.") : Amended] uint64 MaxPartitionVRAM;
  [Description("The optimal amount of VRAM which will appear in the GPU partition.") : Amended] uint64 OptimalPartitionVRAM;
  [Description("The minumum amount of encode engines which will appear in the GPU partition.") : Amended] uint64 MinPartitionEncode;
  [Description("The maximum amount of encode engines which will appear in the GPU partition.") : Amended] uint64 MaxPartitionEncode;
  [Description("The optimal amount of encode engines which will appear in the GPU partition.") : Amended] uint64 OptimalPartitionEncode;
  [Description("The minimum amount of decode engines which will appear in the GPU partition.") : Amended] uint64 MinPartitionDecode;
  [Description("The maximum amount of decode engines which will appear in the GPU partition.") : Amended] uint64 MaxPartitionDecode;
  [Description("The optimal amount of decode engines which will appear in the GPU partition.") : Amended] uint64 OptimalPartitionDecode;
  [Description("The minumum amount of compute engines which will appear in the GPU partition.") : Amended] uint64 MinPartitionCompute;
  [Description("The maximum amount of compute engines which will appear in the GPU partition.") : Amended] uint64 MaxPartitionCompute;
  [Description("The optimal amount of compute engines which will appear in the GPU partition.") : Amended] uint64 OptimalPartitionCompute;
  [Description("A free-form string array of identifiers of this resource presented to the virtual computer system's operating system. The indexes and values per index are defined on a per resource basis (that is, for each enumerated ResourceType value). This property is set to \"GUID\".\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method.") : Amended] string VirtualSystemIdentifiers[];
};

[Description("Represents the state of a Flex IO device.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_FlexIoDevice : CIM_LogicalDevice
{
  [Description("Globally unique identifier of provider that implements the device emulator. This is the CLSID of the provider COM class object.") : Amended] string EmulatorId;
  [Description("A string array containing vendor-specific emulator configuration. This string is opaque to Hyper-V components.") : Amended] string EmulatorConfiguration[];
};

[Description("Represents the configured state of a Flex IO device.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_FlexIoDeviceSettingData : CIM_ResourceAllocationSettingData
{
  [Description("Globally unique identifier of provider that implements the device emulator. This is the CLSID of the provider COM class object.") : Amended] string EmulatorId;
  [Description("A string array containing vendor-specific emulator configuration. This string is opaque to Hyper-V components.") : Amended] string EmulatorConfiguration[];
  [Description("A free-form string array of identifiers of this resource presented to the virtual computer system's operating system. The indexes and values per index are defined on a per resource basis (that is, for each enumerated ResourceType value). This property is set to \"GUID\".\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method of the sd class.") : Amended] string VirtualSystemIdentifiers[];
  [Description("The preferred physical NUMA locality of Flex IO device.Default value is 0xFFFF (-1), when no physical NUMA affinity specified.") : Amended] uint16 PhysicalNumaNode;
};

[Description("A generic base class for setting data classes representing components of a virtual system.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SystemComponentSettingData : CIM_SettingData
{
};

[Description("Represents the settings used to test the network connectivity of a virtual machine. Used by the DiagnoseNetworkConnection method of the Msvm_VirtualSystemManagementService class.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_NetworkConnectionDiagnosticSettingData : CIM_SettingData
{
  [Description("Indicates whether this method is being invoked at the sender or the receiver.") : Amended] boolean IsSender;
  [Description("The sender IP address.") : Amended] string SenderIP;
  [Description("The receiver IP address.") : Amended] string ReceiverIP;
  [Description("The receiver MAC address.") : Amended] string ReceiverMac;
  [Description("The Isolation ID.") : Amended] uint32 IsolationId;
  [Description("The sequence number.") : Amended] uint32 SequenceNumber;
  [Description("The payload size.") : Amended] uint32 PayloadSize;
};

[Description("Provides information about the network connectivity for a virtual machine.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_NetworkConnectionDiagnosticInformation
{
};

[Description("Represents the storage-specific settings for a virtual system.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_StorageSettingData : Msvm_SystemComponentSettingData
{
  [Description("The number of processors per storage channel. The number of channels to be opened is given by (Count of logical processors on the host /VirtualProcessorsPerChannel).\n This is a read-only property, but it can be changed using the ModifySystemComponentSettings method of the WmiMsvmVirtualSystemManagementService class.") : Amended] uint16 VirtualProcessorsPerChannel;
  [Description("The flag specifies whether interrupt batching should be disabled.\n This is a read-only property, but it can be changed using the ModifySystemComponentSettings method of the WmiMsvmVirtualSystemManagementService class.") : Amended] boolean DisableInterruptBatching;
  [Description("The number of threads per storage channel to process IO.\nDefault: Default behavior. \nLow: Low number of threads per storage channel.\nMedium: Medium number of threads per storage channel.\nHigh: High number of threads per storage channel.\nThis is a read-only property, but it can be changed using the ModifySystemComponentSettings method of the WmiMsvmVirtualSystemManagementService class.") : Amended] uint16 ThreadCountPerChannel;
};

[Description("Represents a virtual battery device.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_Battery : CIM_LogicalDevice
{
};

[Description("Represents the settings of a the virtual battery device.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_BatterySettingData : CIM_ResourceAllocationSettingData
{
};
#pragma classflags(64)

[AMENDMENT, LOCALE(0x0804)] 
class Msvm_Synthetic3DDisplayControllerSettingData : CIM_ResourceAllocationSettingData
{
  [Values{"1024 * 768", "1280 * 1024", "1600 * 1200", "1920 * 1200", "2560 * 1600", "3840 * 2160"} : Amended] uint8 MaximumScreenResolution;
};

[Description("Represents the physical GPU in the host.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_PhysicalGPUInfo : CIM_ManagedElement
{
};

[Description("Represents the pool of GPU resources.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_Synth3dVideoPool : CIM_ResourcePool
{
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended] uint32 CalculateVideoMemoryRequirements([IN] uint32 monitorResolution,[IN] uint32 numberOfMonitors,[OUT] uint64 requiredVideoMemory);
};

[AMENDMENT, LOCALE(0x0804)] 
class Msvm_Synthetic3DService : CIM_Service
{
  uint32 EnableGPUForVirtualization([In,Description("The PhysicalGPU instance to be enabled.") : Amended] Msvm_Physical3dGraphicsProcessor Ref PhysicalGPU,[Out,Description("May contain a reference to the concrete job created to track the state chnage of PhysicalGPU object initiated by the method EnableGPUForVirtualization.") : Amended] CIM_ConcreteJob Ref Job);
  uint32 DisableGPUForVirtualization([In,Description("The PhysicalGPU instance to be disabled.") : Amended] Msvm_Physical3dGraphicsProcessor Ref PhysicalGPU,[Out,Description("May contain a reference to the concrete job created to track the state chnage of PhysicalGPU object initiated by the method DisableGPUForVirtualization.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Modifies the setting data for the failover replication service.") : Amended] uint32 ModifyServiceSettings([In,Description("The modified setting data for the service.") : Amended] string SettingData,[Out,Description("An optional parameter for monitoring progress of the operation, which is used if the method could not be executed synchronously. If the operation is executing asynchronously, the return value is 4096.") : Amended] CIM_ConcreteJob Ref Job);
};

[Description("Represents the settings for the Synthetic3D service present on a single host system. The properties for this class cannot be modified directly. The client must call the Msvm_Synthetic3DService.ModifyServiceSettings method to modify any of these properties.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_Synthetic3DServiceSettingData : CIM_SettingData
{
  [Description("Controls whether VM assignment takes GPU Memory limitations into account.") : Amended] boolean GPUOvercommitEnabled;
};

[Description("Represents a synthetic keyboard device.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SyntheticKeyboard : CIM_UserDevice
{
};

[Description("Represents a synthetic mouse device.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SyntheticMouse : CIM_PointingDevice
{
  [Description("Indicates whether the device operates on absolute coordinates. If not set, the device's coordinates are relative. This property is set to True.") : Amended] boolean AbsoluteCoordinates;
  [Description("The absolute x-coordinate of the pointing device.") : Amended] sint32 HorizontalPosition;
  [Description("The z-coordinate position of the mouse device.") : Amended] sint32 ScrollPosition;
  [Description("The absolute y-coordinate of the pointing device.") : Amended] sint32 VerticalPosition;
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Retrieves the current state of the specified device button.\nReturn value: A return value of zero indicates success. A non-zero value indicates a query failure.") : Amended] uint32 GetButtonState([In,Description("The 1-based index of the button to query.") : Amended] uint32 ButtonIndex,[Out,Description("The current down state of the button. A TRUE value means the button is down.") : Amended] boolean IsDown);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Sets the current state of the specified device button.\nReturn value: Non zero values indicate a failure to modify the button state.") : Amended] uint32 SetButtonState([In,Description("The 1-based index of the button to modify.") : Amended] uint32 ButtonIndex,[In,Description("The new down state of the button. A TRUE value means the button is down.") : Amended] boolean IsDown);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Simulates a button click, a down-up sequence, on the specified device button.\nReturn value: A return value of zero indicates success. A non-zero value indicates a failure to modify the button state.") : Amended] uint32 ClickButton([In,Description("The 1-based index of the button.") : Amended] uint32 ButtonIndex);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Offsets the position of the mouse by the specified horizontal and vertical deltas.\nReturn value: A return value of zero indicates success. A non-zero value indicates a failure to alter the scroll position.") : Amended] uint32 SetAbsolutePosition([In,Description("The new horizontal position of the mouse cursor, in pixels.") : Amended] sint32 HorizontalPosition,[In,Description("The new vertical position of the mouse cursor, in pixels.") : Amended] sint32 VerticalPosition);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Adjusts the z-coordinate of the wheel control of the pointing device. Values written to this property are always relative coordinate offsets.\nReturn value: A return value of zero indicates success. A non-zero value indicates a failure to alter the scroll position.") : Amended] uint32 SetScrollPosition([In,Description("The delta of the scroll position.") : Amended] sint32 ScrollPositionDelta);
};

[Description("Manages all remote terminal connections to a particular host. The service uses a configurable port to initiate all terminal connections.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_TerminalService : CIM_Service
{
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Modifies the setting data for the service.") : Amended] uint32 ModifyServiceSettings([In,Description("The modified setting data for the service.") : Amended] string ServiceSettingData,[Out,Description("An optional parameter for monitoring progress of the operation, which is used if the method could not be executed synchronously. If the operation is executing asynchronously, the return value is 4096.") : Amended] CIM_ConcreteJob Ref Job);
  [Description("Grants access to the interactive session of the virtual machine to the specified list of trustees.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "Invalid State", "Incompatible Parameters", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 GrantInteractiveSessionAccess([IN,Description("A reference to a CIM_ComputerSystem instance representing the virtual machine to which access will be granted.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[IN,Description("An array of strings each identifying a trustee that will be granted access to the interactive session of the virtual machine. The trustee identifiers should be specified in Windows SAM-compatible format or Windows SID string format.") : Amended] string Trustees[],[IN(FALSE),OUT,Description("An optional reference that is returned if the operation is executed asynchronously. If present, the returned value references an instance of CIM_ConcreteJob that can be used to monitor progress and to obtain the result of the method.") : Amended] CIM_ConcreteJob Ref Job);
  [Description("Revokes access to the interacitve session of the virtual machine from the specified list of trustees.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "Invalid State", "Incompatible Parameters", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 RevokeInteractiveSessionAccess([IN,Description("A reference to a CIM_ComputerSystem instance representing the virtual machine from which access will be revoked.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[IN,Description("An array of strings each identifying a trustee whose access rights will be revoked. The trustee identifiers should be specified in Windows SAM-compatible format or Windows SID string format.") : Amended] string Trustees[],[IN(FALSE),OUT,Description("An optional reference that is returned if the operation is executed asynchronously. If present, the returned value references an instance of CIM_ConcreteJob that can be used to monitor progress and to obtain the result of the method.") : Amended] CIM_ConcreteJob Ref Job);
  [Description("Retrieves the current DACL that control access to the interactive session of a virtual machine.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "Invalid State", "Incompatible Parameters", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 GetInteractiveSessionACL([IN,Description("A reference to a CIM_ComputerSystem instance representing the virtual machine whose DACL will be retrieved.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[IN(FALSE),OUT,Description("An array of strings each containing an embedded instance of class Msvm_InteractiveSessionACE representing an ACE in the virtual machine interactive session DACL.") : Amended] string AccessControlList[]);
};

[Description("Represents the settings for the virtual computer terminal services on a host.The properties for this class cannot be modified directly. The client must call the Msvm_TerminalService.ModifyServiceSettings method to modify any of these properties.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_TerminalServiceSettingData : CIM_SettingData
{
  [Description("The network port on which the initial remote session connection will be made.") : Amended] uint32 ListenerPort;
  [Description("Disables self-signed certificate generation.") : Amended] boolean DisableSelfSignedCertificateGeneration;
  [Description("The hash of the certificate to use for remoting authentication.") : Amended] uint8 AuthCertificateHash[];
  [Description("The list of trusted issuer certificate hashes for verifying the signature of federated authentication tokens.") : Amended] string TrustedIssuerCertificateHashes[];
  [Description("The list of hash algorithms accepted for verifying the signature of federated authentication tokens.") : Amended] string AllowedHashAlgorithms[];
};

[Description("Indicates the state of an active remote session interacting with a virtual computer system. There can only be one connection at a time.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_TerminalConnection : CIM_EnabledLogicalElement
{
  [Key,Description("The unique identifier for an instance of the terminal connection object. The identifier is of the form \"Microsoft:<VMID>\\<Index>\". For example, \"Microsoft:67A5D397-A02D-11DB-AC13-001676AA34F0\\0\".") : Amended] string ConnectionID;
};

[Description("Associates a virtual computer system with a terminal connection.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SystemTerminalConnection : CIM_HostedDependency
{
  [Description("The virtual system to which the connection is attached.") : Amended] Msvm_ComputerSystem Ref Antecedent;
  [Description("The connection to the virtual system.") : Amended] Msvm_TerminalConnection Ref Dependent;
};

[Description("Represents an access control entry that determines access to the interactive session of a virtual machine.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_InteractiveSessionACE
{
  [Description("Identifies the security principal that the ACE grants or denies access to. Valid formats for this property include the Windows SAM-compatible user name format and the Windows SID string format.") : Amended] string Trustee;
  [Description("Indicates whether the ACE grants or denies access to the trustee.") : Amended,Values{"Access Allowed", "Access Denied"} : Amended] uint16 AccessType;
};

[Description("Represents an emulated Ethernet adapter. This adapter is used when a virtual machine is not capable of running the synthetic Ethernet port when no ICs are installed in the guest.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EmulatedEthernetPort : CIM_EthernetPort
{
};

[Description("Represents the configured state of an emulated Ethernet adapter.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EmulatedEthernetPortSettingData : CIM_EthernetPortAllocationSettingData
{
  [Description("Indicates whether to use a static MAC address.\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method of the Msvm_VirtualSystemManagementService class.") : Amended] boolean StaticMacAddress;
  [Description("Indicates whether this ethernet adapter is monitored by cluster.\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method of the Msvm_VirtualSystemManagementService class.") : Amended] boolean ClusterMonitored;
};

[Description("Represents a synthetic Ethernet adapter. This adapter is the preferred network adapter because of its performance and hot configurability.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SyntheticEthernetPort : CIM_EthernetPort
{
};

[Description("Represents the configured state of a synthetic Ethernet adapter.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SyntheticEthernetPortSettingData : CIM_EthernetPortAllocationSettingData
{
  [Description("Indicates a static MAC address.\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method of the Msvm_VirtualSystemManagementService class.") : Amended] boolean StaticMacAddress;
  [Description("Indicates if Interrupt Moderation is Enabled.\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method of the Msvm_VirtualSystemManagementService class.") : Amended] boolean InterruptModeration;
  [Description("Indicates whether this ethernet adapter is monitored by cluster.\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method of the Msvm_VirtualSystemManagementService class.") : Amended] boolean ClusterMonitored;
  [Description("Indicates what type of network is supported by the NIC.\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method of the Msvm_VirtualSystemManagementService class.") : Amended] uint32 MediaType;
  [Description("A free-form string array of identifiers of this resource presented to the virtual computer system's operating system. The indexes and values per index are defined on a per resource basis (that is, for each enumerated ResourceType value). This property is set to \"GUID\".\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method of the sd class.") : Amended] string VirtualSystemIdentifiers[];
  [Description("Indicates whether this ethernet adapter supports device naming.\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method of the Msvm_VirtualSystemManagementService class.") : Amended] boolean DeviceNamingEnabled;
  [Description("Indicates if PacketDirect projection is enabled for the VM.\n") : Amended] boolean AllowPacketDirect;
  [Description("Indicates if this ethernet adapter can influence VM placement using its NUMA proximity.\n") : Amended] boolean NumaAwarePlacement;
};

[Description("A specialized class that contains information about the severity, cause, recommended actions, and other data related to the failure of a CIM Operation.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_Error : CIM_Error
{
};

[Description("An association between a service access point (SAP) and how it is implemented. The cardinality of this association is many-to-many. A SAP can be provided by more than one logical device, operating in conjunction. Any device can provide more than one SAP. When many logical devices are associated with a single SAP, it is assumed that these elements operate in conjunction to provide the access point. If different implementations of a SAP exist, each of these implementations would result in individual instantiations of the SAP object. These individual instantiations would then have associations to the unique implementations.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_DeviceSAPImplementation : CIM_DeviceSAPImplementation
{
};

[Description("Provides additional information to be used with the ExportVirtualSystemEx method of the Msvm_VirtualSystemManagementService class.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualSystemExportSettingData : CIM_SettingData
{
  [Values{"CaptureCrashConsistentState", "CaptureSavedState", "CaptureAppConsistentState"} : Amended,Description("Indicates what state to capture if the target of the export is a running VM.\nCaptureCrashConsistentState = No saved state files will be exported for the running VM, placing it in a crash consistent state.\nCaptureSavedState = Saved state files for the running VM will be exported along with the VM configuration.\nCaptureAppConsistentState = Application-consistent state of the runningVM will be exported.\n") : Amended] uint8 CaptureLiveState;
  [Values{"ExportAllSnapshots", "ExportNoSnapshots", "ExportOneSnapshot", "ExportOneSnapshotForBackup"} : Amended,Description("Indicates what snapshots are to be exported with the VM.\nExportAllSnapshots = All snapshots will be exported with the VM.\nExportNoSnapshots = No snapshots will be exported with the VM.\nExportOneSnapshot = The snapshots identified by the SnapshotVirtualSystem property will be exported with the VM. The CopyVmStorage and CopyVmRuntimeInformation properties are ignored and storage and runtime information is exported with the VM and any VHD differencing disks will be merged into a new VHD.\nExportOneSnapshotForBackup = The snapshot identified by the SnapshotVirtualSystem property will be exported for the purpose of backing up the VM. The exported configuration will use ID of the VM.") : Amended] uint8 CopySnapshotConfiguration;
  [Description("Indicates whether the VM runtime information will be copied when the VM is exported.\nIf TRUE, the VM runtime information will be copied.") : Amended] boolean CopyVmRuntimeInformation;
  [Description("Indicates whether the VM storage will be copied when the VM is exported.\nIf TRUE, the VM storage will be copied.") : Amended] boolean CopyVmStorage;
  [Description("Indicates whether a subdirectory with the name of the VM will be created when the VM is exported.\nIf TRUE, a subdirectory will be created.") : Amended] boolean CreateVmExportSubdirectory;
  [Description("Path to a Msvm_VirtualSystemSettingData instance that represents the snapshot to be exported with the VM. If the CopySnapshotConfiguration property is not set to 2 (ExportOneSnapshot) or 3(ExportOneSnapshotForBackup), this property is ignored.") : Amended] string SnapshotVirtualSystem;
  [Description("Base for differential export. This is either path to a Msvm_VirtualSystemReferencePoint instance that represents the reference point or path to a Msvm_VirtualSystemSettingData instance that represents the snapshot to be used as a base for differential export. If the CopySnapshotConfiguration property is not set to 3(ExportOneSnapshotForBackup), this property is ignored.") : Amended] string DifferentialBackupBase;
  [Values{"BackupIntentPreserveChain", "BackupIntentMerge"} : Amended,Description("Indicates the intent on how the exported backup sets would be used\nBackupIntentPreserveChain = All exported full and differential backup sets would be preserved as they are.\nBackupIntentMerge = The exported full and differential backup sets would be merged to synthesize full backup sets.") : Amended] uint8 BackupIntent;
  [Description("Indicates whether the exported VM is intended to be used in live migration. ") : Amended] boolean ExportForLiveMigration;
  [Description("Array of Msvm_StorageAllocationSettingData (RASD) instance IDs that represent the virtual hard disks that are requested to be excluded from the export operation. If at least one of the supplied IDs is not a valid attached virtual hard disk, the operation will fail.\nThe virtual hard disks referenced by this property may be from the VM and/or from any of its snapshots. Exclusion of virtual hard disks is not supported when property CopySnapshotConfiguration is set to  0(ExportAllSnapshots).\nNote that the RASD instance ID for virtual hard disks represents the location they are attached to, and excluding through this ID excludes all virtual hard disks attached in that location throughout the virtual machine's snapshot tree, regardless of them really being a valid virtual hard disk chain.") : Amended] string ExcludedVirtualHardDisks[];
  [Description("Indicates whether differencing disks will be created or not for storage ignored during export. By default this is set to false, which means that differencing disks are created for the storage that is not going to be copied over to the export destination.") : Amended] boolean DisableDifferentialOfIgnoredStorage;
};

[Description("Contains settings used during servicing operations.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ServicingSettings
{
  [Description("Represents the class definitions version.") : Amended] string Version;
};

[Description("Represents the configuration state of the disk merge settings for a virtual system.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_DiskMergeSettingData : CIM_SettingData
{
  [ValueMap{"0", "1"} : Amended,Values{"Temporarily disabled", "Enabled"} : Amended,Description("An enumeration value that specifies the enabled state of the disk merge functionality") : Amended] uint32 EnabledState;
};

[Description("Provides additional information to be used with the CreateSnapshot method of the Msvm_VirtualSystemSnapshotService class.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualSystemSnapshotSettingData : CIM_SettingData
{
  [Description("Consistency level of the snapshot.") : Amended] uint8 ConsistencyLevel;
  [Description("Specifies if non-snapshottable disks like passthrough disks and Fibre Channel Disks are to be ignored while creating the snapshot.") : Amended] boolean IgnoreNonSnapshottableDisks;
  [Description("Backup type to be used inside the guest.") : Amended] uint8 GuestBackupType;
};

[Description("Represents the replication relationship for a computer system.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ReplicationRelationship : CIM_ManagedSystemElement
{
  [Values{"Disabled", "Ready for replication", "Waiting to complete initial replication", "Replicating", "Synced replication complete", "Recovered", "Committed", "Suspended", "Critical", "Waiting to start resynchronization", "Resynchronizing", "Resynchronization suspended", "Failover in progress", "Failback in progress", "Failback complete", "Disk update in progress", "Disk update critical", "Unknown", "Repurpose replication in progress", "Prepared for sync replication", "Prepared for group reverse replication", "Firedrill in progress"} : Amended,Description("Replication state for the virtual machine.") : Amended] uint16 ReplicationState;
  [Values{"Not applicable", "Ok", "Warning", "Critical"} : Amended,Description("Replication health for the virtual machine.") : Amended] uint16 ReplicationHealth;
  [Values{"None", "Regular", "Application consistent", "Planned"} : Amended,Description("Type of failover that was performed for the virtual machine.") : Amended] uint16 FailedOverReplicationType;
  [Values{"None", "Regular", "Application consistent", "Planned"} : Amended,Description("Type of the last replication that was received for the virtual machine.") : Amended] uint16 LastReplicationType;
  [Description("The time at which the last application consistent replication is received on recovery for the virtual machine.") : Amended] DateTime LastApplicationConsistentReplicationTime;
  [Description("The time at which the last replication is received on recovery for the virtual machine.") : Amended] DateTime LastReplicationTime;
  [Description("The time at which the last replication is applied on recovery for the virtual machine.") : Amended] DateTime LastApplyTime;
};

[Description("Manages the failover replication for a virtual machine.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ReplicationService : CIM_Service
{
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Modifies the setting data for the Hyper-V Replica service.") : Amended] uint32 ModifyServiceSettings([In,Description("The modified setting data for the service.") : Amended] string SettingData,[Out,Description("An optional parameter for monitoring progress of the operation, which is used if the method could not be executed synchronously. If the operation is executing asynchronously, the return value is 4096.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("This method add an authorization entry to the server. This entry is used for authorizing the connections to the recovery server.") : Amended] uint32 AddAuthorizationEntry([In,Description("The authorization entry to be added to the server.") : Amended] string AuthorizationEntry,[Out,Description("A reference to the job (can be null if the task has completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("This method modifies an authorization entry in the server.") : Amended] uint32 ModifyAuthorizationEntry([In,Description("The authorization entry to be modified.") : Amended] string AuthorizationEntry,[Out,Description("A reference to the job (can be null if the task has completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("This method removes an authorization entry from the server.") : Amended] uint32 RemoveAuthorizationEntry([In,Description("The primary server for which the authorization entry will be removed from the server.") : Amended] string AllowedPrimaryHostSystem,[Out,Description("A reference to the job (can be null if the task has completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Verifies if the replication can be enabled from the currenthost system to the specified recovery system.") : Amended] uint32 TestReplicationConnection([In,Description("Name of connection point, in case of recovery cluster this is the broker CAP name and in case of standalone recovery server this is the host system name.") : Amended] string RecoveryConnectionPoint,[In,Description("The recovery connection point port.") : Amended] uint16 RecoveryServerPortNumber,[In,Values{"Integrated authentication", "Certificate based authentication"} : Amended,Description("The recovery authentication scheme.") : Amended] uint16 AuthenticationType,[In,Description("Certificate thumbprint to use when AuthenticationType is certificate based authentication.") : Amended] string CertificateThumbPrint,[In,Description("Bypass proxy server while connectng it to replica server.") : Amended] boolean BypassProxyServer,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Creates new replication relationship for virtual machine.") : Amended] uint32 CreateReplicationRelationship([In,Description("A reference to the CIM_ComputerSystem instance for which the replication should be enabled.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[In,Description("The setting data for replication.") : Amended] string ReplicationSettingData,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Modifies the setting data for the virtual machine replication relationship.") : Amended] uint32 ModifyReplicationSettings([In,Description("A reference to the CIM_ComputerSystem instance for which the replication setting should be modified.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[In,Description("The modified setting data for the replication.") : Amended] string ReplicationSettingData,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Removes the virtual machine replication relationship.\nThis does not clean up the recovery server virtual machine.") : Amended] uint32 RemoveReplicationRelationship([In,Description("A reference to the CIM_ComputerSystem instance for which the replication should be removed.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Removes the virtual machine specified replication relationship.\nThis does not clean up the recovery server virtual machine.") : Amended] uint32 RemoveReplicationRelationshipEx([In,Description("A reference to the CIM_ComputerSystem instance for which the replication should be removed.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[In,Description("The replication relationship to remove.") : Amended] string ReplicationRelationship,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Starts the virtual machine replication.\nSpecify InitialReplicationType to determine the type of transfer to be used for initial replication.") : Amended] uint32 StartReplication([In,Description("A reference to the CIM_ComputerSystem instance for which the replication should be started.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[In,Description("The type of transfer to used for performing the initial replication.") : Amended] uint16 InitialReplicationType,[In,Description("If InitialReplicationType has been specified as Export, this contains the fully-qualified path of the directory to which the initial replication is to be exported. This is not used for other values of InitialReplicationType, and can be null.\nThis directory can be reused for exporting multiple virtual machine replication. This method places each virtual machine replication in a separate subdirectory under this path.") : Amended] string InitialReplicationExportLocation,[In,Description("Scheduled start time for initial replication over the network connection to recovery server.\nThis parameter is ignored when InitialReplicationType is Export.When StartTime is not specified initial replication starts immediately.") : Amended] datetime StartTime,[Out,Description("An optional reference that is returned if the operation is executed asynchronously. If present, the returned reference to an instance of CIM_ConcreteJob can be used to monitor progress and to obtain the result of the method.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Imports the virtual machine initial replication.\nSpecify InitialReplicationImportLocation where primary server exported the replication.") : Amended] uint32 ImportInitialReplica([In,Description("A reference to the CIM_ComputerSystem instance for which the initial replication should be imported.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[In,Description("The fully-qualified path of the directory from which the initial replication is to be imported. This can not be null.") : Amended] string InitialReplicationImportLocation,[Out,Description("An optional reference that is returned if the operation is executed asynchronously. If present, the returned reference to an instance of CIM_ConcreteJob can be used to monitor progress and to obtain the result of the method.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("On recovery using this API a failed over VM can be replicated back to primary server") : Amended] uint32 ReverseReplicationRelationship([In,Description("A reference to the CIM_ComputerSystem instance for which the replication should be reversed.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[In,Description("The setting data for replication.") : Amended] string ReplicationSettingData,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Sets the failover for virtual machine to application or crash consistent image.") : Amended] uint32 InitiateFailover([In,Description("A reference to the CIM_ComputerSystem instance for which to prepare failover.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[In,Description("The CIM_VirtualSystemSettingData instance that represents the snapshot used for failover.\nPass NULL if failover is to be performed to the latest point in time.") : Amended] CIM_VirtualSystemSettingData Ref SnapshotSettingData,[Out,Description("An optional reference that is returned if the operation is executed asynchronously. If present, the returned reference to an instance of CIM_ConcreteJob can be used to monitor progress and to obtain the result of the method.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Undo the current failover for the virtual machine. After this operation InitiateFailover can be called again.\nThis operation will work only for the virtual machine which  is in failedover state after using PreapreFailover.") : Amended] uint32 RevertFailover([In,Description("A reference to the CIM_ComputerSystem instance for which to undo failover.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[Out,Description("An optional reference that is returned if the operation is executed asynchronously. If present, the returned reference to an instance of CIM_ConcreteJob can be used to monitor progress and to obtain the result of the method.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Commits the recovery snapshot that InitiateFailover has used for failover.") : Amended] uint32 CommitFailover([In,Description("A reference to the CIM_ComputerSystem instance for which to commit failover.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[Out,Description("An optional reference that is returned if the operation is executed asynchronously. If present, the returned reference to an instance of CIM_ConcreteJob can be used to monitor progress and to obtain the result of the method.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("This API created the test system for the replicated virtual machine.\nUser can select the snapshot from which the test system should be created. Every successful TestReplicaSystem needs to be followed by DestroySystem.\nRelationship between parent system and test system can be derived from association class Msvm_AssociatedTestFailoverSystem.") : Amended] uint32 TestReplicaSystem([In,Description("A reference to the CIM_ComputerSystem instance for which the replication should be reversed.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[In,Description("The CIM_VirtualSystemSettingData instance that represents the snapshot used for creating test failover system.\nPass NULL if test failover system is to be created off the latest point in time.") : Amended] CIM_VirtualSystemSettingData Ref SnapshotSettingData,[Out,Description("If a test virtual computer system is successfully defined, a reference to an instance of class CIM_ComputerSystem that represents the newly defined test virtual computer system is returned.") : Amended] CIM_ComputerSystem Ref ResultingSystem,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("This method performs Resynchronize operation on the given Virtual Machine.") : Amended] uint32 Resynchronize([In,Description("A reference to the CIM_ComputerSystem instance for which Resynchronize needs to be performed.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[In,Description("Scheduled start time for Resynchronize operation over the network connection to recovery server.\nWhen StartTime is not specified Resynchronize operation starts immediately.") : Amended] datetime StartTime,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Configures the network adapters within the guest operating system. These configuration parameters are applied after a failover operation, immediately upon establishing communication with the KVP Exchange integration component running within the guest operating system.") : Amended] uint32 SetFailoverNetworkAdapterSettings([In,Description("A reference to the CIM_ComputerSystem instance whose network adapters are to be configured.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[In,Description("An array of embedded instances of Msvm_FailoverNetworkAdapterSettingData objects.  Each instance describes the configuration parameters for one of the network adapters within the virtual machine. The MACAddress and DHCPEnabled properties must be specified on each instance.") : Amended] string NetworkSettings[],[Out,Description("An optional reference that is returned if the operation is executed asynchronously. If present, the returned reference to an instance of CIM_ConcreteJob can be used to monitor progress and to obtain the result of the method.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Retrieves replication statistics associated with virtual machine.") : Amended] uint32 GetReplicationStatistics([In,Description("A reference to the Hyper-V replica enabled virtual computer system.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[Out,Description("If successful, this object contains the array of replication statistics for the requested virtual machine. This is an embedded instance of Msvm_ReplicationStatistics.") : Amended] string ReplicationStatistics[],[Out,Description("If successful, this object contains the array of Msvm_Error objects that indicate reasons forthe current replication health period being in warning or error for the requested virtual machine. This is an embedded instance of Msvm_Error.") : Amended] string ReplicationHealthIssues[],[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Retrieves replication statistics associated with specified replication relationship of virtual machine.") : Amended] uint32 GetReplicationStatisticsEx([In,Description("A reference to the Hyper-V replica enabled virtual computer system.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[In,Description("The replication relationship to get statistics for.") : Amended] string ReplicationRelationship,[Out,Description("If successful, this object contains the array of replication statistics for the requested virtual machine. This is an embedded instance of Msvm_ReplicationStatistics.") : Amended] string ReplicationStatistics[],[Out,Description("If successful, this object contains the array of Msvm_Error objects that indicate reasons forthe current replication health period being in warning or error for the requested virtual machine. This is an embedded instance of Msvm_Error.") : Amended] string ReplicationHealthIssues[],[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Resets replication statistics associated with virtual machine.") : Amended] uint32 ResetReplicationStatistics([In,Description("A reference to the Hyper-V replica enabled virtual computer system.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Resets replication statistics associated with specified replication relationship of virtual machine.") : Amended] uint32 ResetReplicationStatisticsEx([In,Description("A reference to the Hyper-V replica enabled virtual computer system.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[In,Description("The replication relationship to reset statistics for.") : Amended] string ReplicationRelationship,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("This method associates the authorization setting data for virtual machine") : Amended] uint32 SetAuthorizationEntry([In,Description("A reference to the CIM_ComputerSystem instance for which the setting data needs to be set.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[In,Description("The authorization entry to be referenced.") : Amended] string AuthorizationEntry,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("This method returns the system certificates on a host system.") : Amended] uint32 GetSystemCertificates([Out,Description("If successful, this contains the certificates available from the Personal store for the local machine.\nEach entry is a base 64 encoded certificate string. This string can be converted to byte array for constructing X509Certificate2 object.") : Amended] string EncodedCertificates[]);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Using this API, a replica VM having extended replication relationship can become new primary and continue its replication with the extended replica VM. This API requires the replica VM to be in a failover committed state.") : Amended] uint32 ChangeReplicationModeToPrimary([In,Description("A reference to the CIM_ComputerSystem instance that represents the virtual machine for which the extended replication relationship should be changed as primary relationship.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[In,Description("The replication relationship to be changed as primary relationship.") : Amended] string ReplicationRelationship,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Sets the failover for virtual machine to application or crash consistent image.") : Amended] uint32 InitiateFailback([In,Description("A reference to the CIM_ComputerSystem instance for which to initiate failback.") : Amended] CIM_ComputerSystem Ref ComputerSystem,[In,Description("The setting data for failback.") : Amended] string ReplicationSettingData,[In,Description("Optional input which identifies the recovery point to which failback is requested.") : Amended] string RecoveryPointIdentifier,[Out,Description("An optional reference that is returned if the operation is executed asynchronously. If present, the returned reference to an instance of CIM_ConcreteJob can be used to monitor progress and to obtain the result of the method.") : Amended] CIM_ConcreteJob Ref Job);
};

[Description("Failover Replication Setting for virtual machine.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ReplicationSettingData : CIM_VirtualSystemSettingData
{
  [Description("Path to instance of class Msvm_ReplicationProvider that identifies the replication provider endpoint.") : Amended] string ReplicationProvider;
  [Values{"Kerberos authentication", "Certificate based authentication"} : Amended,Description("Define authentication mode used to connect to recovery server.") : Amended] uint16 AuthenticationType;
  [Description("Certificate thumbprint to use when AuthenticationType is certificate based authorization.") : Amended] string CertificateThumbPrint;
  [Description("Root Certificate thumbprint of the certificate in use  when AuthenticationType is certificate based authorization.") : Amended] string RootCertificateThumbPrint;
  [Description("Enable compression of replication data while sending it to recovery server.") : Amended] boolean CompressionEnabled;
  [Description("Bypass proxy server while connectng it to recovery server.") : Amended] boolean BypassProxyServer;
  [Description("Name of connection point, in case of recovery cluster this is the broker CAP name and in case of standalone recovery server this is the host system name. In case of external provider, this represents the connection point specific to the provider.") : Amended] string RecoveryConnectionPoint;
  [Description("FQDN of recovery host system which is hosting the virtual machine.") : Amended] string RecoveryHostSystem;
  [Description("Name of connection point, in case of primary cluster this is the broker CAP name and in case of standalone primary server this is the host system name.") : Amended] string PrimaryConnectionPoint;
  [Description("FQDN of primary host system which is hosting the virtual machine.") : Amended] string PrimaryHostSystem;
  [Description("Recovery server port number to use when making secure connection for replication.") : Amended] uint16 RecoveryServerPortNumber;
  [Description("Enable or disable of host-only Msvm_KvpExchangeDataItem from primary virtual machine to recovery virtual machine. Default value is TRUE.") : Amended] boolean ReplicateHostKvpItems;
  [Description("Time interval between application consistent snapshots, specified in unit of hours. Valid range is from 1 hour to 12 hours in step of 1 hour.") : Amended] uint16 ApplicationConsistentSnapshotInterval;
  [Description("Maximum number of recovery snapshots stored at the recovery server.\nValid range is from 0 to 16 for the Hyper-V to Hyper-V replication. In case of external provider, range is as supported by the endpoint provider.") : Amended] uint16 RecoveryHistory;
  [Description("Automatically trigger resynchronize operation on replication errors due to power and hardware failures. Default value is TRUE.") : Amended] boolean AutoResynchronizeEnabled;
  [Description("Automatically trigger resynchronize operation on replication errors due to power and hardware failures when they occur after the time specified by this parameter and AutoResynchronizeEnabled is TRUE.\nSpecify the datetime using time elements only. Default value is 1830 hours local time.") : Amended] datetime AutoResynchronizeIntervalStart;
  [Description("Automatically trigger resynchronize operation on replication errors due to power and hardware failures when they occur before the time specified by this parameter and AutoResynchronizeEnabled is TRUE.\nSpecify the datetime using time elements only. Default value is 0600 hours local time.") : Amended] datetime AutoResynchronizeIntervalEnd;
  [Description("Enabling this property ensures all replicating virtual hard disks for the virtual machine are replicated to the same point in time. This ensures replication honors the write-order of the applications in the virtual machine.") : Amended] boolean EnableWriteOrderPreservationAcrossDisks;
  [Description("Replication Interval of a replication relationship in seconds.\nValid values are 30, 300, 900.") : Amended] uint16 ReplicationInterval;
  [Description("Additional replication settings which can be used by endpoint provider.") : Amended] string AdditionalSettings;
};

[Description("Represents the settings for the failover replication service on a recovery host.\nThe properties for this class cannot be modified directly. The client must call the Msvm_ReplicationService.ModifyServiceSettings method to modify any of these properties.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ReplicationServiceSettingData : CIM_SettingData
{
  [Description("Enable hyper-v host as recovery server.") : Amended] boolean RecoveryServerEnabled;
  [Values{"Kerberos authentication", "Certificate based authentication", "Certificate based authentication and kerberos authentication"} : Amended,Description("Define authentication modes allowed for connecting to recovery host server.") : Amended] uint16 AllowedAuthenticationType;
  [Description("Certificate thumbprint to use when AuthenticationType is certificate based authentication.") : Amended] string CertificateThumbPrint;
  [Description("Recovery server port number to use when accepting secure connection for replication.") : Amended] uint16 HttpsPort;
  [Description("Recovery server port number to use when accepting unsecure connection for replication.") : Amended] uint16 HttpPort;
  [Description("Start time for replica monitoring. By default monitoring starts at 10:00am UTC. Specify the datetime using time elements only.") : Amended] datetime MonitoringStartTime;
  [Description("Interval in seconds at which replica statistics should be reset. By default this is 24 hrs. Valid range is 4 hrs to 7 days. Valid values are aligned to 24 hrs cycle. Valid values are 4 hrs, 6 hrs, 8 hrs, 12 hrs, 1 day to 7 days.") : Amended] uint32 MonitoringInterval;
};

[Description("Authorization entry for a primary server.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ReplicationAuthorizationSettingData : CIM_SettingData
{
  [Description("The primary server that this entry represents.") : Amended] string AllowedPrimaryHostSystem;
  [Description("The trust group name for the authorization entry.") : Amended] string TrustGroup;
  [Description("The storage location for replicated VHDs.") : Amended] string ReplicaStorageLocation;
};

[Description("Represents the settings for a network adapter within the guest operating system, which will be applied at the time of failover.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_FailoverNetworkAdapterSettingData : CIM_SettingData
{
  [Description("Identifies the IP protocols that the settings specified by this instance apply to.") : Amended] uint16 ProtocolIFType;
  [Description("Specifies whether DHCP is enabled on the IPv4 interface of the network adapter within the guest operating system.") : Amended] boolean DHCPEnabled;
  [Description("The IP addresses configured on the network adapter within the guest operating system.") : Amended] string IPAddresses[];
  [Description("The subnets configured on the network adapter within the guest operating system. Each element in this array applies to the corresponding element in the IPAddresses array.") : Amended] string Subnets[];
  [Description("The default IP gateways configured on the network adapter within the guest operating system. The maximum number of default IP gateways that may be configured on a single network adapter is five.") : Amended] string DefaultGateways[];
  [Description("The DNS servers configured on the network adapter within the guest operating system.") : Amended] string DNSServers[];
};

[Description("Provides replication statistics for a virtual machine ") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ReplicationStatistics : CIM_ManagedElement
{
  [Description("The time when the Hyper-V Replica service started gathering replication statistics data.") : Amended] datetime StartStatisticTime;
  [Description("The time when the Hyper-V Replica service stopped gathering replication statistics data.At this time new replication statistics cycle starts.") : Amended] datetime EndStatisticTime;
  [Description("Total successful replication count.") : Amended] uint32 ReplicationSuccessCount;
  [Description("Total replication data transferred to the recovery host system.") : Amended] uint64 ReplicationSize;
  [Description("Maximum replication data transferred to the recovery host system.") : Amended] uint64 MaxReplicationSize;
  [Description("Total replication latency while transferring the data to the recovery host system.") : Amended] uint32 ReplicationLatency;
  [Description("Represents missed replication cycles. This can be because of heavy workload, network issues or replication errors.") : Amended] uint32 ReplicationMissCount;
  [Description("Maximum time taken to complete a single replication cycle.") : Amended] uint32 MaxReplicationLatency;
  [Description("Total network error count for replication channel with recovery host system.") : Amended] uint32 NetworkFailureCount;
  [Description("Replication error count. This includes errors for replication operation.") : Amended] uint32 ReplicationFailureCount;
  [Description("Pending replication data size.") : Amended] uint64 PendingReplicationSize;
  [Description("Total error count for VSS snapshot failures.") : Amended] uint32 ApplicationConsistentSnapshotFailureCount;
  [Description("Represents the current replication.") : Amended] uint32 ReplicationHealth;
  [Description("Indicates the last time test replica system was created for a replication enabled virtual system on recovery server.") : Amended] DateTime LastTestFailoverTime;
};

[Description("Replication provider available for replication of virtual system to specified endpoint.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ReplicationProvider : CIM_ManagedSystemElement
{
  [Key,Description("Globally unique identifier of provider that identifies the endpoint provider. For host to host inbuilt this Name is fixed as 22391CDC-272C-4DDF-BA88-9BEFB1A0975C.\nIn case of external provider this is CLSID of provider COM class object.") : Amended] string Name;
};

[Description("An association used to establish relationships between one instance of Msvm_EmulatedEthernetPortSettingData and Msvm_SyntheticEthernetPortSettingData with instances of Msvm_FailoverNetworkAdapterSettingData.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetPortFailoverSettingDataComponent : CIM_Component
{
  [Key,Description("Reference to an instance of Msvm_EmulatedEthernetPortSettingData or Msvm_SyntheticEthernetPortSettingData representing an Ethernet port.") : Amended] CIM_ResourceAllocationSettingData Ref GroupComponent;
  [Key,Description("Reference to an instance of Msvm_FailoverNetworkAdapterSettingData representing guest network adapter configuration.") : Amended] Msvm_FailoverNetworkAdapterSettingData Ref PartComponent;
};

[AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualSystemSnapshotService : CIM_VirtualSystemSnapshotService
{
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Removes an existing snapshot and all its children of a virtual system.") : Amended] uint32 DestroySnapshotTree([In,Description("A reference to the CIM_VirtualSystemSettingData instance which represents the snapshot tree to be removed.") : Amended] CIM_VirtualSystemSettingData Ref SnapshotSettingData,[Out,Description("An optional parameter for monitoring progress of the operation, which is used if the method could not be executed synchronously. If the operation is executing asynchronously, the return value is 4096.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Clears save state from an existing snapshot.") : Amended] uint32 ClearSnapshotState([In,Description("A reference to the CIM_VirtualSystemSettingData instance which represents the snapshot whose state is to be cleared.") : Amended] CIM_VirtualSystemSettingData Ref SnapshotSettingData,[Out,Description("An optional parameter for monitoring progress of the operation, which is used if the method could not be executed synchronously. If the operation is executing asynchronously, the return value is 4096.") : Amended] CIM_ConcreteJob Ref Job);
};

[AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualSystemReferencePointService : CIM_Service
{
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Exports the reference point of the virtual system.") : Amended] uint32 ExportReferencePoint([In,Description("A reference to the Msvm_VirtualSystemReferencePoint instance which represents the reference point to be exported.") : Amended] Msvm_VirtualSystemReferencePoint Ref ReferencePoint,[In,Description("The fully-qualified path of the directory to which the reference point is to be exported.") : Amended] string ExportDirectory,[In,Description("An instance of Msvm_VirtualSystemReferencePointExportSettingData that represents the settings for the export operation.") : Amended] string ExportSettingData,[Out,Description("An optional parameter for monitoring progress of the operation, which is used if the method could not be executed synchronously. If the operation is executing asynchronously, the return value is 4096.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Deletes the specified reference point.") : Amended] uint32 DestroyReferencePoint([In,Description("A reference to the Msvm_VirtualSystemReferencePoint instance which represents the reference point to be removed.") : Amended] Msvm_VirtualSystemReferencePoint Ref AffectedReferencePoint,[Out,Description("An optional parameter for monitoring progress of the operation, which is used if the method could not be executed synchronously. If the operation is executing asynchronously, the return value is 4096.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Removes the data log associated with the reference point.") : Amended] uint32 RemoveAssociatedData([In,Description("A reference to the Msvm_VirtualSystemReferencePoint instance which represents the reference point to be removed.") : Amended] Msvm_VirtualSystemReferencePoint Ref AffectedReferencePoint,[Out,Description("An optional parameter for monitoring progress of the operation, which is used if the method could not be executed synchronously. If the operation is executing asynchronously, the return value is 4096.") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Imports reference point metadata of the virtual system.") : Amended] uint32 ImportReferencePointMetadata([In] Msvm_ComputerSystem Ref AffectedSystem,[In,Description("The fully-qualified path of the config file from where the reference point metadata will be imported.") : Amended] string ConfigFilePath,[In,Description("The fully-qualified path of the runtime state file from where the reference point metadata will be imported.") : Amended] string RuntimeStateFilePath,[Out,Description("An optional parameter for monitoring progress of the operation, which is used if the method could not be executed synchronously. If the operation is executing asynchronously, the return value is 4096.") : Amended] CIM_ConcreteJob Ref Job);
};

[Description("Represents a reference point for a virtual system.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualSystemReferencePoint : CIM_ManagedElement
{
  [Values{"Log based", "RCT based"} : Amended,Description("Indicates the type of the reference point. \nLog based: Hyper-V replica log tracking. \nRCT based: Based on Resilient Change Tracking of virtual disks. \n") : Amended] uint16 ReferencePointType;
  [Values{"Application Consistent", "Crash Consistent"} : Amended,Description("Consistency level of the reference point.\nCrash Consistent: The reference point indicates a point in time when the virtual system was in crash consistent state. \nApplication Consistent: The reference point indicates a point in time when the virtual system was in application consistent state. \n") : Amended] uint16 ConsistencyLevel;
  [Key,Description("The name of the CIM_ComputerSystem to which this reference point belongs") : Amended] string VirtualSystemIdentifier;
  [Description("This property is set to TRUE if the reference point has associated data. This is valid only for log based reference points. For RCT based reference points this is set to FALSE. For log based reference points, once the log is discarded this value becomes FALSE.") : Amended] boolean HasAssociatedData;
  [Description("An array of WMI instance IDs corresponding to the virtual disks of the VM at the time this reference point was created. These virtual disks have RCT IDs associated with them.") : Amended] string VirtualDiskIdentifiers[];
  [Description("An array of Resilient Change Tracking IDs corresponding to the virtual disks of the VM at the time this reference point was created. This field is valid only for RCT based reference points") : Amended] string ResilientChangeTrackingIdentifiers[];
};

[Description("Provides additional information to be used with the CreateReferencePoint method of the Msvm_VirtualSystemReferencePointService  class.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualSystemReferencePointSettingData : CIM_SettingData
{
  [Description("Consistency level of the reference point.") : Amended] uint8 ConsistencyLevel;
};

[Description("Provides additional information to be used with the ExportReferencePoint method of the Msvm_VirtualSystemReferencePointService  class.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualSystemReferencePointExportSettingData : CIM_SettingData
{
  [Description("Path of the base reference point with respect to which export should be performed.") : Amended] String BaseReferencePoint;
  [Description("WMI instance IDs of the disks for which data needs to be exported.") : Amended] String DisksToExport[];
};

[Description("This class represents a virtual system reference point export operation job.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualSystemReferencePointExportJob : CIM_ConcreteJob
{
  [Description("Indicates whether the job can be cancelled. The value of this property does not guarantee that a request to cancel the job will succeed.") : Amended] boolean Cancellable;
  [Description("Export Location.") : Amended] string ExportDirectory;
  [Description("GUID of the virtual machine for which log files wereexported.") : Amended] string VirtualMachineId;
  [Description("GUID of the reference point which is exported.") : Amended] string ReferencePointId;
  [Description("GUID of the reference point which is used as the base in the exportoperation.") : Amended] string BaseReferencePointId;
  [Description("Instance IDs of virtual disks for which log files were exported.") : Amended] string ExportedDisks[];
  [Description("Paths of the log files which were exported.") : Amended] string ExportedLogFilePaths[];
  [Description("Path of the exported config file.") : Amended] string ExportedConfigFilePath;
  [Description("Path of the exported runtime state file.") : Amended] string ExportedRuntimeFilePath;
  [Description("Path of the exported guest state file.") : Amended] string ExportedGuestStateFilePath;
  [Values{"Completed with No Error", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended] uint32 GetError([OUT] string Error);
  [Values{"Completed with No Error", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("When the job is executing or has terminated without error, then this method returns no Msvm_Error instance. However, if the job has failed because of some internal problem or because the job has been terminated by a client, then one or more Msvm_Error instances are returned.") : Amended] uint32 GetErrorEx([Out,Description("If the operational status of the job is not \"OK\", this method returns an array of Msvm_Error instances. Otherwise, if the job is \"OK\", NULL is returned.") : Amended] string Errors[]);
};

[Description("Represents the state of the guest service interface component, which provides a mechanism to interact with the virtual machine from the management interfaces on the host system.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_GuestServiceInterfaceComponent : CIM_LogicalDevice
{
};

[Description("Represents the configured state of the guest service interface component.\nThe default state is Disabled.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_GuestServiceInterfaceComponentSettingData : CIM_ResourceAllocationSettingData
{
  [Description("The enabled and disabled states of an element.\nValid values are 2 (enabled) and 3 (disabled). The default value is 3 (disabled).\nThis is a read-only property, but it can be changed using the ModifyResourceSettings method of the Msvm_VirtualSystemManagementService class.") : Amended] uint16 EnabledState;
  [Description("The enabled and disabled states of guest communication services by default.\nValid values are 2 (enabled) and 3 (disabled). The default value is 2 (enabled).\nThis is a read-only property, but it can be changed using the ModifyResourceSettings method of the Msvm_VirtualSystemManagementService class.") : Amended] uint16 DefaultEnabledStatePolicy;
};

[Description("Represents a service in the guest that can be accessed from the host.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_GuestService : CIM_Service
{
};

[Description("Represents the guest communication service. It is used for communication with the guest, from the Hyper-V host.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_GuestCommunicationService : Msvm_GuestService
{
};

[Description("Represents the settings of the guest communication service.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_GuestCommunicationServiceSettingData : CIM_SettingData
{
  [Description("GUID of the service.") : Amended] string Name;
};

[Description("Represents the guest file service. It is used for interacting with files in a guest, from the Hyper-V host.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_GuestFileService : Msvm_GuestService
{
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Copies files from the Hyper-V host to the guest.") : Amended] uint32 CopyFilesToGuest([IN,Description("Array of Msvm_CopyFileToGuestSettingData") : Amended] string CopyFileToGuestSettings[],[Out,Description("An optional parameter for monitoring progress of the operation, which is used if the method could not be executed synchronously. If the operation is executing asynchronously, the return value is 4096.") : Amended] CIM_ConcreteJob Ref Job);
};

[Description("Represents the parameters for copying a file from the hostinto the guest") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_CopyFileToGuestSettingData : CIM_SettingData
{
  [Description("Specifies whether an existing destination file must be overwritten.") : Amended] boolean OverwriteExisting;
  [Description("Specifies whether missing directories in the destination file's pathmust be created before copying the file.") : Amended] boolean CreateFullPath;
  [Description("The complete path of the source file to be copied, that is accessibleto the Hyper-V host. It can contain environment variables which areexpanded by the Hyper-V host.") : Amended] string SourcePath;
  [Description("The complete path of the destination file to be copied, that is accessibleto the guest. It can contain environment variables which areexpanded by the guest. If the path specified is an existing directory in theguest, the destination file is created in this directory. In this case, the filename from SourcePath is used as the destination file name.") : Amended] string DestinationPath;
};

[Description("An association between an instance of Msvm_GuestServiceInterfaceComponent and an instance of Msvm_GuestService, that represents a service running in the guest.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_RegisteredGuestService : CIM_Dependency
{
  [Description("The guest service interface component.") : Amended] Msvm_GuestServiceInterfaceComponent Ref Antecedent;
  [Description("The registered guest service.") : Amended] Msvm_GuestService Ref Dependent;
};

[Description("Association class between a guest service interface component and the guest service resource.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_GuestServiceInterfaceSettingDataComponent : CIM_Component
{
  [Key,Description("A reference to the guest service interface component.") : Amended] Msvm_GuestServiceInterfaceComponentSettingData Ref GroupComponent;
  [Key,Description("A reference to the guest service resource.") : Amended] CIM_SettingData Ref PartComponent;
};

[Description("Represents the state of the heartbeat component, which is responsible for monitoring the state of a virtual machine by reporting a heartbeat at regular intervals.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_HeartbeatComponent : CIM_LogicalDevice
{
  [Values{"OK", "Degraded", "Non-Recoverable Error", "No Contact", "Lost Communication", "Protocol Mismatch", "Application Critical State", "Communication Timed Out", "Communication Failed"} : Amended] uint16 OperationalStatus[];
};

[Description("Represents the configured state of the heartbeat component.\nThe default EnabledState is Enabled.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_HeartbeatComponentSettingData : CIM_ResourceAllocationSettingData
{
  [Description("The enabled and disabled states of an element.\nValid values are 2 (enabled) and 3 (disabled). The default value is 2 (enabled).\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method of the Msvm_VirtualSystemManagementService class.") : Amended] uint16 EnabledState;
  [Description("An administrator's startup configuration for the enabled state of an element. This property is always set to 2 (Enabled).\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method of the Msvm_VirtualSystemManagementService class.") : Amended] uint32 ErrorThreshold;
  [Description("The interval between ping attempts, in milliseconds. This is always set to 2000.\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method of the Msvm_VirtualSystemManagementService class.") : Amended] uint32 Interval;
  [Description("The maximum expected latency between a request ping and a response, in milliseconds, before a given request is considered dropped. This property is always set to 1000.\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method of the Msvm_VirtualSystemManagementService class.") : Amended] uint32 Latency;
};

[Description("Represents the state of the key/value pair exchange component, which provides a mechanism to exchange data between the virtual machine and the operating system running on the parent partition.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_KvpExchangeComponent : CIM_LogicalDevice
{
  [Description("An array of embedded Msvm_KvpExchangeDataItem instances which contain the set of key-value pairs that components running within the guest operating system have pushed up to be available for access by external clients. This array will not contain any intrinsic items that are pushed by the integration component directly.") : Amended] string GuestExchangeItems[];
  [Description("An array of embedded Msvm_KvpExchangeDataItem instances which contain the set of key-value pairs that the guest operating system has pushed up to be available for access by external clients. This array will not contain any data items pushed by other components running within the guest operating system.") : Amended] string GuestIntrinsicExchangeItems[];
};

[Description("Represents the configured state of the key/value pair exchange component.\nThe default state is Enabled.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_KvpExchangeComponentSettingData : CIM_ResourceAllocationSettingData
{
  [Description("This property disables the host from automatically populatinghost name and OS information inside the guest.") : Amended] boolean DisableHostKVPItems;
  [Description("The enabled and disabled states of an element.\nValid values are 2 (enabled) and 3 (disabled). The default value is 2 (enabled).\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method of the Msvm_VirtualSystemManagementService class.") : Amended] uint16 EnabledState;
  [Description("An array of Msvm_KvpExchangeDataItem instances.\nThis is a read-only property, but it can be changed using the AddKvpItems, ModifyKvpItems, and RemoveKvpItems methods of the Msvm_VirtualSystemManagementService class.") : Amended] string HostExchangeItems[];
  [Description("An array of Msvm_KvpExchangeDataItem instances containing the key/value pairs that are stored in the configuration file but not exchanged with the guest OS. This allows applications to store VM-specific data that does not need to be visible to the guest OS. The items are formatted the same as the items in the HostExchangeItems property except the Source property of the Msvm_KvpExchangeDataItem instance is set to 4. Each configuration file is limited to 128 key/value pairs, where each value field is allowed to be up to 16 KB in size and the key field is allowed to be up to512 bytes.") : Amended] string HostOnlyItems[];
};

[Description("Represents the state of the shutdown component, which provides a mechanism to shut down the operating system of the virtual machine from the management interfaces on the host system.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ShutdownComponent : CIM_LogicalDevice
{
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found", "The system is not ready", "The machine is locked and cannot be shut down without the force option", "A system shutdown is in progress"} : Amended,Description("Initiates an operating system shutdown operation on the associated child virtual machine.\nIf zero (0) is returned, then the shutdown was initiated successfully. Any other return code indicates an error condition.") : Amended] uint32 InitiateShutdown([In,Description("A flag which, if TRUE, forces applications to be closed despite having unsaved data.") : Amended] boolean Force,[In,Description("The reason for the shutdown operation. This is a user-defined string.") : Amended] string Reason);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found", "The system is not ready", "The machine is locked and cannot be shut down without the force option", "A system shutdown is in progress"} : Amended,Description("Initiates an operating system reboot operation on the associated child virtual machine.\nIf zero (0) is returned, then the reboot was initiated successfully. Any other return code indicates an error condition.") : Amended] uint32 InitiateReboot([In,Description("A flag which, if TRUE, forces applications to be closed despite having unsaved data.") : Amended] boolean Force,[In,Description("The reason for the reboot operation. This is a user-defined string.") : Amended] string Reason);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found", "The system is not ready"} : Amended,Description("Initiates an operating system hibernate operation on the associated child virtual machine.\nIf zero (0) is returned, then the hibernate was initiated successfully. Any other return code indicates an error condition.") : Amended] uint32 InitiateHibernate();
};

[Description("Represents the configured state of the shutdown component.\nThe default state is Enabled.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ShutdownComponentSettingData : CIM_ResourceAllocationSettingData
{
  [Description("The enabled and disabled states of an element.\nValid values are 2 (enabled) and 3 (disabled). The default value is 2 (enabled).\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method of the Msvm_VirtualSystemManagementService class.") : Amended] uint16 EnabledState;
};

[Description("Represents the state of the time synchronization component, which is responsible for synchronizing the system time of a virtual machine with the system time of the operating system running in the parent partition.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_TimeSyncComponent : CIM_LogicalDevice
{
};

[Description("Represents the configured state of the time synchronization component.\nThe default state is Enabled.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_TimeSyncComponentSettingData : CIM_ResourceAllocationSettingData
{
  [Description("The enabled and disabled states of an element.\nValid values are 2 (enabled) and 3 (disabled). The default value is 2 (enabled).\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method of the Msvm_VirtualSystemManagementService class.") : Amended] uint16 EnabledState;
};

[Description("Represents the state of the Volume Shadow Copy Service (VSS) component, which implements the VSS Requester in the guest operating system.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VssComponent : CIM_LogicalDevice
{
};

[Description("Represents the configured state of the Volume Shadow Copy Service (VSS) component.\nThe default state is Enabled.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VssComponentSettingData : CIM_ResourceAllocationSettingData
{
  [Description("The enabled and disabled states of an element.\nValid values are 2 (enabled) and 3 (disabled). The default value is 2 (enabled).\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method of the Msvm_VirtualSystemManagementService class.") : Amended] uint16 EnabledState;
};

[Description("Represents the guest VSS service. It is used for querying guest cluster information from the Hyper-V host.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VssService : Msvm_GuestService
{
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Querying cluster information from the Hyper-V host to the guest.") : Amended] uint32 QueryGuestClusterInformation([In(FALSE),Out] Msvm_GuestClusterInformation GuestClusterInformation);
};

[Description("An association between an instance of Msvm_VssComponent and an instance of Msvm_VssService, that represents a service for performing operations on the VSS Component.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ServiceOfVssComponent : CIM_Dependency
{
  [Description("The VSS component.") : Amended] Msvm_VssComponent Ref Antecedent;
  [Description("The VSS IC service.") : Amended] Msvm_VssService Ref Dependent;
};

[Description("Used in the QueryGuestClusterInformation method in the Msvm_VssService class to retrieve information about the guest cluster the VM is part of.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_GuestClusterInformation
{
  [Description("The identifier of the failover cluster the VM's guest Operating System is part of.") : Amended] string ClusterId;
  [Description("Number of nodes in the cluster the VM's guest Operating System is part of.") : Amended] uint16 ClusterSize;
  [Description("An array of Resource Allocation Setting Data (RASD) representing the shared virtual hard disks connected to the VM.") : Amended] string SharedVirtualHardDisks[];
  [Description("An array of shared virtual hard disk paths connected to the VM.") : Amended] string SharedVirtualHardDiskPaths[];
  [Description("An array of booleans corresponding to each shared virtual hard disk indicating if the corresponding disk is a cluster resource in the guest cluster.") : Amended] boolean IsClustered[];
  [Description("An array of booleans corresponding to each shared virtual hard disk indicating if the corresponding disk resource in the guest cluster is online.") : Amended] boolean IsOnline[];
  [Description("An array of booleans corresponding to each shared virtual hard disk indicating if the corresponding disk resource in the guest cluster is currenly owned by this VM.") : Amended] boolean IsOwned[];
  [Description("An array of booleans corresponding to each shared virtual hard disk indicating if the corresponding disk resource in the guest cluster is shared between VMs in active/active mode.") : Amended] boolean IsActiveActive[];
  [Description("The clock tick count when one of the shared disk resources last moved.") : Amended] uint64 LastResourceMoveTime;
};

[Description("Represents the state of the RDV component, which is responsible for providing a transport for parent to the guest for configuration purposes.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_RdvComponent : CIM_LogicalDevice
{
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "Out of memory", "File not found"} : Amended,Description("Requests the Remote Desktop Services Virtual Device to Start a Pipe connection with the virtual machine.\nIf zero (0) is returned, then the operation was successful. Any other return code indicates an error condition.") : Amended] uint32 EnableEndPoints();
};

[Description("Represents the configured state of the Remote Desktop Virtualization (RDV) component.\nThe default state is Enabled.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_RdvComponentSettingData : CIM_ResourceAllocationSettingData
{
  [Description("The enabled and disabled states of an element.\nValid values are 2 (enabled) and 3 (disabled). The default value is 2 (enabled).\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method of the Msvm_VirtualSystemManagementService class.") : Amended] uint16 EnabledState;
};

[Description("Represents the configuration of a network adapter within the guest operating system.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_GuestNetworkAdapterConfiguration
{
  [Key,Description("The unique identifier for this object.") : Amended] string InstanceID;
  [Description("Identifies the IP protocols that the settings specified by this instance apply to.") : Amended] uint16 ProtocolIFType;
  [Description("Specifies whether DHCP is enabled on the network adapter within the guest operating system.") : Amended] boolean DHCPEnabled;
  [Description("The IP addresses configured on the network adapter within the guest operating system.") : Amended] string IPAddresses[];
  [Description("The subnets configured on the network adapter within the guest operating system. Each element in this array applies to the corresponding element in the IPAddresses array.") : Amended] string Subnets[];
  [Description("The default IP gateways configured on the network adapter within the guest operating system. The maximum number of default IP gateways that may be configured on a single network adapter is five.") : Amended] string DefaultGateways[];
  [Description("The DNS servers configured on the network adapter within the guest operating system.") : Amended] string DNSServers[];
  [Description("The source of the IP addresses configured on the network adapter within the guest operating system.") : Amended] UINT16 IPAddressOrigins[];
};

[Description("An association used to establish relationships between one instance of Msvm_EmulatedEthernetPortSettingData and Msvm_SyntheticEthernetPortSettingData with instances of Msvm_GuestNetworkAdapterConfiguration.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SettingDataComponent : CIM_Component
{
  [Key,Description("Reference to an instance of Msvm_EmulatedEthernetPortSettingData or Msvm_SyntheticEthernetPortSettingData representing an Ethernet port.") : Amended] CIM_ResourceAllocationSettingData Ref GroupComponent;
  [Key,Description("Reference to an instance of Msvm_GuestNetworkAdapterConfiguration representing guest network adapter configuration.") : Amended] Msvm_GuestNetworkAdapterConfiguration Ref PartComponent;
};

[Description("Provides setting data for a virtual hard disk ") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualHardDiskSettingData : CIM_SettingData
{
  [Values{"Fixed", "Dynamic", "Differencing"} : Amended,Description("The type of virtual hard disk.") : Amended] uint16 Type;
  [Values{"VHD", "VHDX", "VHDSet"} : Amended,Description("The format for the virtual hard disk.") : Amended] uint16 Format;
  [Description("The path of the virtual hard disk.") : Amended] string Path;
  [Description("The parent of the virtual hard disk. If the virtual hard disk does not have a parent, then this field is empty.") : Amended] string ParentPath;
  [Description("The GUID used to uniquely identify the parent of the virtual hard disk. If the virtual hard disk does not have a parent, then this field is empty.") : Amended] string ParentIdentifier;
  [Description("The timestamp of the parent of the virtual hard disk. If the virtual hard disk does not have a parent, then this field is empty.") : Amended] DATETIME ParentTimestamp;
  [Description("The maximum size of the virtual hard disk as viewable by the virtual machine, in bytes. The specified size will be rounded up to the next largest multiple of the sector size.") : Amended] uint64 MaxInternalSize;
  [Description("The block size used by the virtual hard disk") : Amended] uint32 BlockSize;
  [Description("The logical sector size used by the virtual hard disk") : Amended] uint32 LogicalSectorSize;
  [Description("The physical sector size used by the virtual hard disk") : Amended] uint32 PhysicalSectorSize;
  [Description("The GUID used to uniquely identify the virtual disk.") : Amended] string VirtualDiskId;
  [Description("Specifies whether the virtual disk can be used as the backing store for a persistent memory device.") : Amended] boolean IsPmemCompatible;
  [Values{"None", "BTT", "Unknown"} : Amended,Description("The persistent memory address abstraction method to be used with this virtual disk.") : Amended] uint16 PmemAddressAbstractionType;
  [Description("Specifies the desired alignment, in bytes, for the data payload of the virtual disk") : Amended] uint64 DataAlignment;
};

[Description("Provides state information for an existing virtual hard disk image.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualHardDiskState
{
  [Description("The size of the virtual hard disk file on the physical disk (the actual amount of storage being consumed by the VHD), in bytes.") : Amended] uint64 FileSize;
  [Description("Indicates whether this disk image is currently mounted and in use.\nWindows Server 2008: Indicates whether this disk image is mounted or if it is in use by a VM.") : Amended] boolean InUse;
  [Description("The minimum size of the virtual hard disk as viewable by the virtual machine we can shrink to without data loss, in bytes. The specified size will be rounded up to the next largest multiple of the sector size.") : Amended] uint64 MinInternalSize;
  [Description("The physical sector size used by the underlying physical disk") : Amended] uint32 PhysicalSectorSize;
  [Description("The alignment of the virtual hard disk") : Amended] uint32 Alignment;
  [Description("The VHD data block fragmentation percentage") : Amended] uint32 FragmentationPercentage;
  [Description("The timestamp of the virtual hard disk") : Amended] DATETIME Timestamp;
};

[Description("Provides information about a VHD Set file ") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VHDSetInformation
{
  [Description("The path of the VHD Set file.") : Amended] string Path;
  [Description("A list of GUIDs representing all of the snapshots contained by this VHD Set file.") : Amended] string SnapshotIdList[];
  [Description("A list of all files encompassed by the VHD Set file, including any unreferenced files and any parents of the root virtual hard disk. All files listed after the root virtual hard disk are unmanaged by this VHD Set file. This field may be empty if this information was not specifically requested.") : Amended] string AllPaths[];
};

[Description("Provides information about a snapshot within a VHD Set file ") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VHDSnapshotInformation
{
  [Description("The path of the VHD Set file.") : Amended] string FilePath;
  [Description("A GUID that uniquely identifies this snapshot within the VHD Set file.") : Amended] string SnapshotId;
  [Description("The path of the file represented by this snapshot. This field may be empty if there is no file associated with this snapshot.") : Amended] string SnapshotPath;
  [Description("A list of file paths representing all of the files on which this snapshot depends. This field will be empty unless specifically requested. The first entry is the file's immediate parent, with the last entry being the root.") : Amended] string ParentPathsList[];
  [Description("The date and time of this snapshot's creation.") : Amended] DATETIME CreationTime;
  [Description("The Resilient Change Tracking Id, if any, associated with this snapshot.") : Amended] string ResilientChangeTrackingId;
};

[Description("Manages the virtual media (.vhdx, .vhd, .iso, or .vfd files) for a virtual machine.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ImageManagementService : CIM_Service
{
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Sets a virtual hard disk file.") : Amended] uint32 SetVirtualHardDiskSettingData([In] string VirtualDiskSettingData,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Creates a virtual hard disk file.") : Amended] uint32 CreateVirtualHardDisk([In] string VirtualDiskSettingData,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Updates the parent for the specified leaf and child.") : Amended] uint32 SetParentVirtualHardDisk([In,Description("A fully-qualified path that specifies the location of the child disk image file.") : Amended] string ChildPath,[In,Description("A fully-qualified path that specifies the location of the parent virtual hard disk file.") : Amended] string ParentPath,[In,Description("A fully-qualified path that specifies the location of the leaf disk image file.") : Amended] string LeafPath,[In,Description("Indicates if the parent should be forcibly set when the virtual disk IDs do not match.") : Amended] boolean IgnoreIDMismatch,[Out,Description("A reference to the job (can be NULL if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Creates a virtual floppy disk (.vfd) file.") : Amended] uint32 CreateVirtualFloppyDisk([In,Description("A fully-qualified path that specifies the location of the new file.") : Amended] string Path,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Merges a differencing virtual hard disk file with its parents. If the user executing this function does not have permission to update the virtual machines, then this function will fail.") : Amended] uint32 MergeVirtualHardDisk([In,Description("A fully-qualified path that specifies the location of the merging file.") : Amended] string SourcePath,[In,Description("A fully-qualified path that specifies the location of the parent disk image file into which data is to be merged. This could be the immediate parent virtual disk image of the merging file or parent disk image few levels up the differencing drive chain.") : Amended] string DestinationPath,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Compacts a dynamic virtual hard disk file. Compacting is the process of unallocating unused portions of the virtual hard disk.") : Amended] uint32 CompactVirtualHardDisk([In,Description("A fully-qualified path that specifies the location of the merging file.") : Amended] string Path,[In,Values{"Full", "Quick", "Retrim", "Pretrimmed", "Prezeroed"} : Amended,Description("An enumeration value that specifies the mode for the compact operation.") : Amended] uint16 Mode,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Resizes an existing virtual hard disk file.") : Amended] uint32 ResizeVirtualHardDisk([In,Description("A fully qualified path that specifies the location of the disk image file.") : Amended] string Path,[In,Description("The maximum size of the virtual hard disk as viewable by the virtual machine, in bytes. MaxInternalsize minimum value is DiskSize + 512 - (DiskSize mod 512). DiskSize is the disk image file in number of bytes. The InvalidParameter error (32773) is returned if the MaxInternalsize value specified is less than the minimum value.") : Amended] uint64 MaxInternalSize,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Converts the type of an existing virtual hard disk.") : Amended] uint32 ConvertVirtualHardDisk([In,Description("A fully-qualified path that specifies the location of the virtual hard disk file. This file will not be modified as a result of this operation.") : Amended] string SourcePath,[In] string VirtualDiskSettingData,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Retrieves setting data associated with virtual hard disk files.") : Amended] uint32 GetVirtualHardDiskSettingData([In,Description("A fully-qualified path that specifies the location of the disk image file.") : Amended] string Path,[Out,Description("If successful, this object contains the information for the requested virtual hard disk. This is an embedded instance of Msvm_VirtualHardDiskSettingData.") : Amended] string SettingData,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Retrieves state of virtual hard disk files.") : Amended] uint32 GetVirtualHardDiskState([In,Description("A fully-qualified path that specifies the location of the disk image file.") : Amended] string Path,[Out,Description("If successful, this object contains the information for the requested virtual hard disk. This is an embedded instance of Msvm_VirtualHardDiskState.") : Amended] string State,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Attaches a virtual disk image file in loopback mode.") : Amended] uint32 AttachVirtualHardDisk([In,Description("A fully-qualified path that specifies the location of the virtual disk image file.") : Amended] string Path,[In,Description("Indicates if drive letters are assigned to the disk's volumes.") : Amended] boolean AssignDriveLetter,[In,Description("Indicates if the mount should be read only.") : Amended] boolean ReadOnly,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found", "Vhd differencing chain cycle detected"} : Amended,Description("Validates whether a virtual disk image can be opened in read-only mode.") : Amended] uint32 ValidateVirtualHardDisk([In,Description("A fully-qualified path that specifies the location of the disk image file.") : Amended] string Path,[Out,Description("A reference to the job (can be null if the task is completed succesfully).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Validates whether a file system can support a virtual hard disk with persistent reservations enabled.") : Amended] uint32 ValidatePersistentReservationSupport([In,Description("A fully-qualified path that specifies the location of a disk image file or a directory in which a disk image file might be placed.") : Amended] string Path,[Out,Description("A reference to the job (can be null if the task is completed succesfully).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Retrieves information about a VHD Set file.") : Amended] uint32 GetVHDSetInformation([In,Description("A fully-qualified path that specifies the location of the VHD Set file.") : Amended] string VHDSetPath,[In,Values{"Unknown", "Other", "Paths"} : Amended,Description("An array specifying what additional information should be gathered about the VHD Set file. Each entry in the array is a type of additional information. If this parameter is NULL, no additional information will be retrieved.") : Amended] uint32 AdditionalInformation[],[Out,Description("If successful, this object contains the information for the requested VHD Set file. This is an embedded instance of Msvm_VHDSetInformation.") : Amended] string Information,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Retrieves information about a VHD Snapshot within a VHD Set file.") : Amended] uint32 GetVHDSnapshotInformation([In,Description("A fully-qualified path that specifies the location of the VHD Set file.") : Amended] string VHDSetPath,[In,Description("A list of GUIDs representing the Snapshot Ids of each Snapshot for which information is being requested. If this parameter is NULL, information for all Snapshots will be retrieved.") : Amended] string SnapshotIds[],[In,Values{"Unknown", "Other", "Parent Paths"} : Amended,Description("An array specifying what additional information should be gathered about each VHD Snapshot. Each entry in the array is a type of additional information. If this parameter is NULL, no additional information will be retrieved.") : Amended] uint32 AdditionalInformation[],[Out,Description("If successful, an array of information about each requested snapshot. Each element is an embedded instance of Msvm_VHDSnapshotInformation.") : Amended] string SnapshotInformation[],[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Edits a VHD Snapshot entry within a VHD Set file. If the Snapshot Id in question already exists, the existing Snapshot entry will be overwritten with the new entry. Otherwise, the new entry will be added to the VHD Set file.") : Amended] uint32 SetVHDSnapshotInformation([In,Description("VHD Snapshot Information to be changed or added in the VHD Set file. The string is an embedded instance of Msvm_VHDSnapshotInformation.") : Amended] string Information,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Deletes a VHD Snapshot entry within a VHD Set file.") : Amended] uint32 DeleteVHDSnapshot([In,Description("String containing the path to the VHD Set file containing the snapshot in question.") : Amended] string VHDSetPath,[In,Description("A GUID representing the SnapshotId for the VHD Snapshot entry to be deleted.") : Amended] string SnapshotId,[In,Description("Whether or not a reference-only snapshot record should be persisted after the snapshot is deleted.") : Amended] boolean PersistReferenceSnapshot,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Converts a virtual hard disk file by creating a new VHD Set file alongside the existing virtual hard disk.") : Amended] uint32 ConvertVirtualHardDiskToVHDSet([In,Description("String containing the path to the virtual hard disk file. The new VHD Set file will have the same filename but with the .VHDS extension.") : Amended] string VirtualHardDiskPath,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Optimizes a VHD Set file to use less disk space.") : Amended] uint32 OptimizeVHDSet([In,Description("A fully-qualified path that specifies the location of the VHD Set file.") : Amended] string VHDSetPath,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found"} : Amended,Description("Retrieves a list of changes in the specified region of a virtual disk since the provided Resilient Change Tracking Id or VHDSet Snapshot Id.") : Amended] uint32 GetVirtualDiskChanges([In,Description("A fully-qualified path that specifies the location of the Virtual Hard Disk file.") : Amended] string Path,[In,Description("A Resilient Change Tracking Id or VHD Set Snapshot Id indicating the baseline for changes in the virtual disk.") : Amended] string LimitId,[In,Description("A VHDSet Snapshot Id indicating the snapshot to compare to the baseline when determing changes in the virtual hard disk. This parameter is only valid for VHD Set files.") : Amended] string TargetSnapshotId,[In,Description("The byte offset of the region in the virtual disk to query changes for.") : Amended] uint64 ByteOffset,[In,Description("The byte length of the region in the virtual disk to query changes for. This must be less than the size of the Virtual Disk.") : Amended] uint64 ByteLength,[Out,Description("The total byte length that was processed. This may be equal to ByteLength or less.") : Amended] uint64 ProcessedByteLength,[Out,Description("The list of byte offsets into the virtual disk indicating the beginning of each changed range.") : Amended] uint64 ChangedByteOffsets[],[Out,Description("The list of byte lengths of the changed ranges in the virtual disk.") : Amended] uint64 ChangedByteLengths[],[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
  [Values{"Completed with No Error", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory", "File not found", "Object not found"} : Amended,Description("Finds a Msvm_MountedStorageImage object for a given disk image path.") : Amended] uint32 FindMountedStorageImageInstance([In,Description("A fully-qualified path that specifies the location of a disk image file.") : Amended] string SelectionCriterion,[In,Values{"unknown", "Path"} : Amended,Description("The type of criterion to look for when finding the disk image. ") : Amended] uint16 CriterionType,[Out,Description("A reference to the Msvm_MountedStorageImage (can be null if the image is not mounted).") : Amended] Msvm_MountedStorageImage Ref Image);
};

[Description("This class represents a image operation job created by the Microsoft Hyper-V Image Management Service.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_StorageJob : CIM_ConcreteJob
{
  [Description("Indicates whether the job can be cancelled. The value of this property does not guarantee that a request to cancel the job will succeed.") : Amended] boolean Cancellable;
  [Description("On failure of the asynchronous operation, this property contains the file path to the child of the virtual hard drive being affected by this operation.") : Amended] string Child;
  [Description("The HRESULT code that describes the completion status for the asynchronous operation.") : Amended] uint32 JobCompletionStatusCode;
  [Description("On failure of the asynchronous operation, this property contains the file path to the parent of the virtual hard drive being affected by this operation.") : Amended] string Parent;
  [Values{"Unknown", "VHD Creation", "Floppy Creation", "Compaction", "Expansion", "Merging", "Conversion", "Loopback Mount", "Get VHD Info", "Validate VHD Image"} : Amended,Description("The type of asynchronous operation being tracked by this instance of Msvm_StorageJob.\nValues are:\nUnknown\nVHD Creation: Creating a virtual hard disk image (VHD).\nFloppy Creation: Creating a virtual floppy disk image (VFD).\nCompaction: Compacting the size of a virtual hard disk image.\nExpansion: Expanding the size of a virtual hard disk image.\nMerging: Merging multiple virtual hard disk images into a single image.\nConversion: Converting the type of a virtual hard disk image.\nLoopback Mount: Mounting the virtual hard disk on the parent partition.\nGet VHD Info: Retrieving information about a virtual hard disk image (VHD).\nValidate VHD Image: Validating a virtual hard disk image (VHD).") : Amended] uint16 JobType;
  [Values{"Completed with No Error", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended] uint32 GetError([OUT] string Error);
  [Values{"Completed with No Error", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in used", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("When the job is executing or has terminated without error, then this method returns no Msvm_Error instance. However, if the job has failed because of some internal problem or because the job has been terminated by a client, then one or more Msvm_Error instances are returned.") : Amended] uint32 GetErrorEx([Out,Description("If the operational status of the job is not \"OK\", this method returns an array of Msvm_Error instances. Otherwise, if the job is \"OK\", NULL is returned.") : Amended] string Errors[]);
};

[Description("Provides detailed information about a manually mounted storage image.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_MountedStorageImage : CIM_LogicalElement
{
  [Values{"Read-only", "Read/Write"} : Amended,Description("The access under which the storage image is mounted.") : Amended] uint16 Access;
  [Key,Description("The SCSI address LUN ID.") : Amended] uint8 Lun;
  [Key,Description("The SCSI address path ID.") : Amended] uint8 PathId;
  [Key,Description("The SCSI address port number.") : Amended] uint8 PortNumber;
  [Key,Description("The SCSI address target ID.") : Amended] uint8 TargetId;
  [Values{"Virtual Hard Disk", "ISO Image"} : Amended,Description("The type of storage image mounted.") : Amended] uint16 Type;
  [Description("The PNP Device Path.") : Amended] string PnpDevicePath;
  [Values{"Success", "Failed"} : Amended,Description("Detaches the mounted the storage image.\nThis method has no parameters.\nThis method can return one of the following values:\nSuccess (0)\nFailed (1)") : Amended] uint32 DetachVirtualHardDisk();
};

[Description("Represents the association between a job and the managed element(s) that may be affected by its execution.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_AffectedStorageJobElement : CIM_AffectedJobElement
{
  [Key,Description("The job that is affecting the affected element. This property is inherited from CIM_AffectedJobElement.") : Amended] Msvm_StorageJob Ref AffectingElement;
};

[Description("Represents an external Fibre Channel Port.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ExternalFcPort : CIM_FCPort
{
  [Description("If this property is true, the this FibreChannel port can be connected to the switches and thus can provide connectivity to virtual machine. If this property is false, then this port cannot be used by the virtual machine FibreChannel architecture.") : Amended] boolean IsHyperVCapable;
  [Description("The World Wide Node Name for this FibreChannel port.") : Amended] string WWNN;
  [Description("The World Wide Port Name for this FibreChannel port.") : Amended] string WWPN;
};

[Description("Represents a synthetic FibreChannel port.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SyntheticFcPort : CIM_FCPort
{
};

[Description("Represents a Port on the virtual Fibre Channel Switch.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_FcSwitchPort : CIM_FCPort
{
};

[Description("Represents the configured state of a synthetic FibreChannel port or a FibreChannel Switch port.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_FcPortAllocationSettingData : CIM_ResourceAllocationSettingData
{
};

[Description("Represents the configured state of a synthetic Ethernet adapter.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SyntheticFcPortSettingData : CIM_ResourceAllocationSettingData
{
  [Description("Indicates the World Wide Port Name of the virtual HBA port\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method of the Msvm_VirtualSystemManagementService class.") : Amended] string VirtualPortWWPN;
  [Description("Indicates the World Wide Node Name of the virtual HBA port\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method of the Msvm_VirtualSystemManagementService class.") : Amended] string VirtualPortWWNN;
  [Description("Indicates the World Wide Port Name of the virtual HBA port to be used during Live Migration of the VM\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method of the Msvm_VirtualSystemManagementService class.") : Amended] string SecondaryWWPN;
  [Description("Indicates the World Wide Node Name of the virtual HBA port to be used during Live Migration of the VM\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method of the Msvm_VirtualSystemManagementService class.") : Amended] string SecondaryWWNN;
  [Description("A free-form string array of identifiers of this resource presented to the virtual computer system's operating system. The indexes and values per index are defined on a per resource basis (that is, for each enumerated ResourceType value). This property is set to \"GUID\".\nThis is a read-only property, but it can be changed using the ModifyVirtualSystemResources method of the sd class.") : Amended] string VirtualSystemIdentifiers[];
  [Description("Indicates that this port has been configured with a shared secret using DH-CHAP, which allows the Fibre Channel fabric to autheticate that this VM can legitimately use the World Wide Names that are assigned to this port.") : Amended] boolean ChapEnabled;
};

[Description("Represents a virtual Fibre Channel switch. Each switch is associated with one physical FC port to which many synthetic Fibre Channel ports can be connected. The switch itself is not highly configurable and acts mostly as a placeholder.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualFcSwitch : CIM_ComputerSystem
{
};

[Description("Represents the current configuration of a virtual Fibre Channel switch.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualFcSwitchSettingData : CIM_VirtualSystemSettingData
{
};

[Description("An association between a service access point (SAP) and how it is implemented. The cardinality of this association is many-to-many. A SAP can be provided by more than one logical device, operating in conjunction. Any device can provide more than one SAP. When many logical devices are associated with a single SAP, it is assumed that these elements operate in conjunction to provide the access point. If different implementations of a SAP exist, each of these implementations would result in individual instantiations of the SAP object. These individual instantiations would then have associations to the unique implementations.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_FcDeviceSAPImplementation : CIM_DeviceSAPImplementation
{
};

[Description("Represents the logical connection point for a FibreChannel port. When the FC endpoint is connected to a switch port, the FibreChannel port connected to the FC endpoint has FC connectivity.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_FcEndpoint : CIM_ProtocolEndpoint
{
  [Description("This property is set to TRUE if this FC endpoint is actively connected to another FC Endpoint.") : Amended] boolean Connected;
  [Description("The World Wide Port Name of the FibreChannel Port this endpoint is connected to.") : Amended] string WWPN;
  [Description("The World Wide Node Name of the FibreChannel Port this endpoint is connected to.") : Amended] string WWNN;
};

[Description("Connects a switch port to the FC endpoint to which the port is connected. The existence of this object means that the switch port and the FC endpoint are actively connected and the FC port associated with the FC endpoint can communicate with the network through the switch port.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_FcActiveConnection : CIM_ActiveConnection
{
  [Description("A service access point (SAP) that is configured to communicate or is actively communicating with the dependent SAP. In a unidirectional connection, this SAP is the one that is transmitting.") : Amended] Msvm_FcEndpoint Ref Antecedent;
  [Description("The service access points that are hosted on a given system.") : Amended] Msvm_FcEndpoint Ref Dependent;
};

[Description("Represents the virtualization service present on a single host system. Msvm_VirtualEthernetSwitchManagementService is used to control the definition, modification, and deletion of virtual Ethernet switches.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualEthernetSwitchManagementService : CIM_VirtualSystemManagementService
{
  [Description("Defines a virtual system.\nInput that is not completely specified may be filled out with default values.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 DefineSystem([IN] string SystemSettings,[IN] string ResourceSettings[],[IN] CIM_VirtualSystemSettingData Ref ReferenceConfiguration,[In(FALSE),Out] CIM_ComputerSystem Ref ResultingSystem,[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Description("Destroys a virtual system.\nThe referenced virtual system is destroyed, including any elements scoped by it. Virtual resources are returned to their resource pools, which may imply the destruction of those resources (implementation dependent). If the virtual system is active when the operation is invoked, it is first deactivated and then destroyed. If snapshots were created from the virtual system, these are destroyed as well.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "Invalid State", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 DestroySystem([IN] CIM_ComputerSystem Ref AffectedSystem,[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Description("Modifies virtual system settings.\nWhen applied to the system settings of a \"current\" virtual system configuration, as a side effect the virtual system instance may be modified.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "Invalid State", "Incompatible Parameters", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 ModifySystemSettings([IN] string SystemSettings,[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Description("Adds resources to a virtual system configuration\n.When applied to a \"state\" virtual system configuration, as a side effect resources are added to the active virtual system.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 AddResourceSettings([IN] CIM_VirtualSystemSettingData Ref AffectedConfiguration,[IN] string ResourceSettings[],[In(FALSE),Out] CIM_ResourceAllocationSettingData Ref ResultingResourceSettings[],[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Description("Modifies virtual resource settings.\nWhen applied to parts of a \"current\" virtual system configuration, as a side effect resources of the active virtual system may be modified.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "Invalid State", "Incompatible Parameters", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 ModifyResourceSettings([IN] string ResourceSettings[],[In(FALSE),Out] CIM_ResourceAllocationSettingData Ref ResultingResourceSettings[],[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Description("Removes virtual resource settings from a virtual system configuration.\nWhen applied to parts of a \"current\" virtual system configuration, as a side effect resources of the active virtual system may be removed.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "Invalid State", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 RemoveResourceSettings([IN] CIM_ResourceAllocationSettingData Ref ResourceSettings[],[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Description("Adds Ethernet feature settings to the configuration of aswitch port.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 AddFeatureSettings([In] CIM_SettingData Ref AffectedConfiguration,[In] string FeatureSettings[],[In(FALSE),Out] Msvm_FeatureSettingData Ref ResultingFeatureSettings[],[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Description("Modifies the current feature settings of an Ethernet switch port.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "Invalid State", "Incompatible Parameters", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 ModifyFeatureSettings([In] string FeatureSettings[],[In(FALSE),Out] Msvm_FeatureSettingData Ref ResultingFeatureSettings[],[In(FALSE),Out] CIM_ConcreteJob Ref Job);
  [Description("Removes feature settings from an Ethernet switch port.") : Amended,Values{"Completed with No Error", "Not Supported", "Failed", "Timeout", "Invalid Parameter", "Invalid State", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific"} : Amended] uint32 RemoveFeatureSettings([In] Msvm_FeatureSettingData Ref FeatureSettings[],[In(FALSE),Out] CIM_ConcreteJob Ref Job);
};

[Description("Msvm_VirtualEthernetSwitchManagementCapabilities describes the capabilities of the associated Msvm_VirtualEthernetSwitchManagementService.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualEthernetSwitchManagementCapabilities : CIM_VirtualSystemManagementCapabilities
{
  [Values{"AddFeatureSettingsSupported", "ModifyFeatureSettingsSupported", "RemoveFeatureSettingsSupported"} : Amended] uint16 AsynchronousMethodsSupported[];
};

[Description("Represents a virtual Ethernet switch. Each switch has many different ports to which network adapters can be attached. The switch itself is not highly configurable and acts mostly as a placeholder.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualEthernetSwitch : CIM_ComputerSystem
{
  [Description("The maximum number of VMQ offloads allowed for a port on this switch.") : Amended] uint32 MaxVMQOffloads;
  [Description("The maximum number of SR-IOV Virtual Function offloads available on this switch.") : Amended] uint32 MaxIOVOffloads;
};

[Description("Represents the current configuration of a virtual Ethernet switch.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualEthernetSwitchSettingData : CIM_VirtualEthernetSwitchSettingData
{
  [Description("Specifies whether SR-IOV is preferred or not, if available on the underlying adapter.") : Amended] boolean IOVPreferred;
  [Description("Contains references to the switch extensions bound to this switch, in the order in which they are applied. Each string should be the full path to an Msvm_EthernetSwitchExtension instance.") : Amended] string ExtensionOrder[];
  [Values{"Default", "Weight", "Absolute", "None"} : Amended,Description("The bandwidth reservation mode.") : Amended] uint32 BandwidthReservationMode;
  [Description("Specifies whether PacketDirect should be used, if available.") : Amended] boolean PacketDirectEnabled;
  [Description("Specifies whether NIC Teaming should be used.") : Amended] boolean TeamingEnabled;
};

[Description("Represents a port on the switch.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetSwitchPort : CIM_EthernetPort
{
  [Description("The current VMQ offloading usage on this port. The usage is the amount of VMQ resources in use on the port.") : Amended] uint32 VMQOffloadUsage;
  [Description("The current I/O virtualization (IOV) offload usage on this port. The usage is theamount of IOV resources in use on the port.") : Amended] uint32 IOVOffloadUsage;
};

[Description("Represents an allocation requests for a static or dynamic switch port, or represents the active configuration of a currently allocated static or dynamic switch port. An allocation request for a dynamic switch port is also known as a connection request.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetPortAllocationSettingData : CIM_EthernetPortAllocationSettingData
{
  [Description("The list of feature identifers representing all the features that are required for a port.") : Amended] string RequiredFeatures[];
  [Description("The list of friendly names corresponding to each entry in the RequiredFeatures.") : Amended] string RequiredFeatureHints[];
  [Description("This property specifies the network resource pool from which a connection will be allocated to test replica system when it is created.") : Amended] string TestReplicaPoolID;
  [Description("This property specifies the friendly name of the virtual network switch to which a connection will be allocated for the test replica system when it is created.") : Amended] string TestReplicaSwitchName;
  [Description("This property specifies the target network compartment for the port. It is only supported for internal adapters.") : Amended] string CompartmentGuid;
};

[Description("Represents an entry in the forwarding (filtering) database associated with the transparent bridging service. The entry is weak to the service, as specified by Msvm_TransparentBridgingDynamicForwarding.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_DynamicForwardingEntry : CIM_DynamicForwardingEntry
{
  [Description("The Vlan ID associated with this learned entry.\nWindows Server 2008:  The VlanId property is not supported until Windows Server 2008 R2.") : Amended] uint16 VlanId;
};

[Description("Serves as a placeholder for the service inside the switch that learns MAC addresses. It serves as a bridge between the Msvm_VirtualEthernetSwitch and Msvm_DynamicForwardingEntry classes.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_TransparentBridgingService : CIM_TransparentBridgingService
{
};

[Description("Represents the logical connection point for a network adapter. When the LAN endpoint is connected to a switch port, the network adapter connected to the LAN endpoint has network connectivity.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_LANEndpoint : CIM_LANEndpoint
{
  [Description("This property is set to TRUE if the LAN endpoint is connected to a switch port.") : Amended] boolean Connected;
};

[Description("Represents the logical connection point for a network adapter. When the WiFi endpoint is connected to a switch port, the network adapter connected to the WiFi endpoint has network connectivity.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_WiFiEndpoint : CIM_WiFiEndpoint
{
  [Description("This property is set to TRUE if the WiFi endpoint is connected to a switch port.") : Amended] boolean Connected;
};

[Description("This class represents an external Ethernet port (network adapter). These types of Ethernet ports give virtual machines access to the external network.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ExternalEthernetPort : CIM_EthernetPort
{
  [Description("If this property is true, then this Ethernet port can be connected to the switches and thus can provide connectivity to virtual machine. If this property is false, then this Ethernet is not being used by the virtual machine networking architecture.") : Amended] boolean IsBound;
};

[Description("Represents a physical WiFi (802.11) network adapter that can be bound to a virtual switch to provide external network connectivity to virtual machines.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_WiFiPort : CIM_WiFiPort
{
  [Description("If this property is true, then this WiFi port can be connected to the switches and thus can provide connectivity to virtual machine. If this property is false, then this WiFi is not being used by the virtual machine networking architecture.") : Amended] boolean IsBound;
};

[Description("This class represents an internal Ethernet port (network adapter). This type of Ethernet ports gives virtual machines access to the partition running the networking software. The internal network adapters allow the virtual machine's network traffic to be routed or filtered before leaving the physical system.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_InternalEthernetPort : CIM_EthernetPort
{
};

[Description("This class represents the VLAN endpoint of a switch port. The configuration of this endpoint will change the way the switch port sends VLAN packets through the switch.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VLANEndpoint : CIM_VLANEndpoint
{
  [Description("The endpoint mode supported by this port.") : Amended] uint16 SupportedEndpointModes[];
};

[Description("Abstract class representing settings for a specific feature of a system or component.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_FeatureSettingData : CIM_SettingData
{
};

[Description("Abstract base class for classes representing settings for an Ethernet switch feature.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetSwitchFeatureSettingData : Msvm_FeatureSettingData
{
};

[Description("Abstract base class for classes representing settings for an Ethernet switch port feature.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetSwitchPortFeatureSettingData : Msvm_FeatureSettingData
{
};

[DisplayName("Ethernet Switch Port Bandwidth Settings") : Amended,Description("Represents the port bandwidth settings.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetSwitchPortBandwidthSettingData : Msvm_EthernetSwitchPortFeatureSettingData
{
  [Description("The minimum absolute bandwidth guaranteed for the port.") : Amended] uint64 Reservation;
  [Description("The minimum bandwidth in weight guaranteed for the port.") : Amended] uint64 Weight;
  [Description("The bandwidth limit allowed for the port.") : Amended] uint64 Limit;
  [Description("The peak bandwidth allowed from the port during bursts.") : Amended] uint64 BurstLimit;
  [Description("The maximum burst size allowed.") : Amended] uint64 BurstSize;
};

[DisplayName("Ethernet Switch Port Isolation Settings") : Amended,Description("Represents the Isolation setting data.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetSwitchPortIsolationSettingData : Msvm_EthernetSwitchPortFeatureSettingData
{
  [Values{"None", "NativeVirtualSubnetId", "ExternalVirtualSubnetId", "VLAN"} : Amended,Description("Whether the port is using VLAN or VirtualSubnetId for isolation. NativeVirtualSubnetId is used for WNV VirtualSubnetId based networks. ") : Amended] uint32 IsolationMode;
  [Description("Whether the port is allowed to send/receive untagged traffic.") : Amended] boolean AllowUntaggedTraffic;
  [Description("The default VirtualSubnetId or VLAN that will be set on all send/receive traffic if AllowedUntaggedTraffic is TRUE.") : Amended] uint32 DefaultIsolationId;
  [Description("If true, the network stack in the VM will be able to access the isolationconfiguration.") : Amended] Boolean EnableMultiTenantStack;
};

[DisplayName("Ethernet Switch Port Routing Domain Settings") : Amended,Description("Represents the routing domain setting data.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetSwitchPortRoutingDomainSettingData : Msvm_EthernetSwitchPortFeatureSettingData
{
  [Description("The RoutingDomain GUID.") : Amended] string RoutingDomainGuid;
  [Description("The RoutingDomain friendly name.") : Amended] string RoutingDomainName;
  [Description("The VirtualSubnetId or VLAN IDs for the Routing Domains") : Amended] uint32 IsolationIdList[];
  [Description("The VirtualSubnetId or VLAN friendly name array.") : Amended] string IsolationIdNameList[];
};

[DisplayName("Ethernet Switch Bandwidth Settings") : Amended,Description("Represents the switch bandwidth settings.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualEthernetSwitchBandwidthSettingData : Msvm_EthernetSwitchFeatureSettingData
{
  [Description("Specifies the absolute bandwidth reservation for un-classified flowson the underlying adapter.") : Amended] UINT64 DefaultFlowReservation;
  [Description("Specifies the bandwidth reservation in weight for un-classified flowson the underlying adapter.") : Amended] UINT64 DefaultFlowWeight;
};

[DisplayName("Ethernet Switch Nic Teaming Settings") : Amended,Description("Represents the switch nic teaming settings.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualEthernetSwitchNicTeamingSettingData : Msvm_EthernetSwitchFeatureSettingData
{
  [Description("Specifies the teaming mode") : Amended] UINT32 TeamingMode;
  [Description("Specifies the load balancing algorithm") : Amended] UINT32 LoadBalancingAlgorithm;
};

[Description("Represents the association between a team ExternalEthernetPort and a member ExternalEthernetPort.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualEthernetSwitchNicTeamingMember : CIM_Dependency
{
  [Description("Reference to the team Msvm_ExternalEthernetPort instance.") : Amended] Msvm_ExternalEthernetPort Ref Antecedent;
  [Description("Reference to the member Msvm_ExternalEthernetPort instance.") : Amended] Msvm_ExternalEthernetPort Ref Dependent;
};

[Description("An association used to establish 'part of' relationships between one instance of Msvm_VirtualEthernetSwitchSettingData and one or more instances of Msvm_EthernetSwitchFeatureSettingData.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualEthernetSwitchSettingDataComponent : CIM_Component
{
  [Key,Description("Reference to an instance of Msvm_VirtualEthernetSwitchSettingData representing an Ethernet port.") : Amended] Msvm_VirtualEthernetSwitchSettingData Ref GroupComponent;
  [Key,Description("Reference to an instance of Msvm_EthernetSwitchFeatureSettingData representing settings applied to the switch.") : Amended] Msvm_EthernetSwitchFeatureSettingData Ref PartComponent;
};

[Description("Abstract class representing a resource for a given instance ofan Ethernet Switch.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetSwitchData : CIM_ManagedElement
{
  [Key,Description("This is the System Creation Class Name, whichis Msvm_VirtualEthernetSwitch") : Amended] string SystemCreationClassName;
  [Key,Description("The name of the virtual switch to which the resource instance associated to bound to.") : Amended] string SystemName;
  [Key,Description("CreationClassName indicates the name of the class or the subclass used in the creation of an instance. When used with the other key properties of this class, this property allows all instances of this class and its subclasses to be uniquely identified.") : Amended] string CreationClassName;
  [Key,Description("The unique name of the resource. This is the unique Id of the resource") : Amended] string Name;
};

[DisplayName("Ethernet Switch Offload Resource Status") : Amended,Description("Represents the switch hardware offload status.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetSwitchHardwareOffloadData : Msvm_EthernetSwitchData
{
  [Description("The maximum number of VF's supported by the switch") : Amended] uint32 IovVfCapacity;
  [Description("The current number of VF's being used by the switch") : Amended] uint32 IovVfUsage;
  [Description("The maximum number of VMQ offloads supported by the switch") : Amended] uint32 VmqCapacity;
  [Description("The current number of VMQ offloads being used by the switch") : Amended] uint32 VmqUsage;
  [Description("The maximum number of IPsec SA offloads supported by the switch") : Amended] uint32 IPsecSACapacity;
  [Description("The current number of IPsec SA offloads being used by the switch") : Amended] uint32 IPsecSAUsage;
  [Description("The maximum number of queue pairs supported by the switch") : Amended] uint32 IovQueuePairCapacity;
  [Description("The current number of queue pairs being used by the switch") : Amended] uint32 IovQueuePairUsage;
  [Description("Indicates if packet direct is being used by the switch") : Amended] boolean PacketDirectInUse;
  [Description("The current VRss setting for default queue") : Amended] boolean DefaultQueueVrssEnabled;
  [Description("The current VMMQ setting for default queue") : Amended] boolean DefaultQueueVmmqEnabled;
  [Description("The current number of queues allocated for the default queue") : Amended] uint32 DefaultQueueVmmqQueuePairs;
  [Description("Indicates minimum number of queues used for VRSS/VMMQ.") : Amended] uint32 DefaultQueueVrssMinQueuePairs;
  [Description("Indicates how VRSS/VMMQ queues are steered to different host processors.") : Amended] uint32 DefaultQueueVrssQueueSchedulingMode;
  [Description("Indicates whether the primary VMQ CPU is excluded from the VRSS/VMMQ indirection table.") : Amended] boolean DefaultQueueVrssExcludePrimaryProcessor;
  [Description("Indicates whether to always do VRSS spreading for default queue, regardless of the RSS state of the external vPort") : Amended] boolean DefaultQueueVrssIndependentHostSpreading;
};

[DisplayName("Ethernet Switch Bandwidth data") : Amended,Description("Represents the switch bandwidth resource status.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetSwitchBandwidthData : Msvm_EthernetSwitchData
{
  [Description("The maximum bandwidth available on the switch") : Amended] uint64 Capacity;
  [Description("The current bandwidth reserved on the switch") : Amended] uint64 Reservation;
  [Description("The current percentage of bandwidth reserved on the switch for default flow") : Amended] uint32 DefaultFlowReservationPercentage;
  [Description("The current absolute bandwidth reserved on the switch for default flow") : Amended] uint64 DefaultFlowReservation;
  [Description("The current weight for the default flow on the switch") : Amended] uint64 DefaultFlowWeight;
};

[DisplayName("Ethernet Switch Modes Supported ") : Amended,Description("Represents switch operational parameters.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetSwitchOperationalData : Msvm_EthernetSwitchData
{
  [Values{"Unknown", "802.1Q", "802.1Qbg", "802.1Qbh"} : Amended,Description("The current switching mode on the switch") : Amended] uint32 CurrentSwitchingMode;
  [Description("The switching modes supported by the switch") : Amended] uint32 SupportedSwitchingModes[];
};

[Description("Association class between a switch and the switch resource.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetSwitchInfo : CIM_Dependency
{
  [Description("A reference to the hosting system.") : Amended] Msvm_VirtualEthernetSwitch Ref Antecedent;
  [Description("A reference to the switch resource.") : Amended] Msvm_EthernetSwitchData Ref Dependent;
};

[DisplayName("Ethernet Switch Hardware Offload Settings") : Amended,Description("Represents the switch offload settings.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetSwitchHardwareOffloadSettingData : Msvm_EthernetSwitchFeatureSettingData
{
  [Description("Specifies the VRss settings for the default queue of the vswitch.") : Amended] boolean DefaultQueueVrssEnabled;
  [Description("Specifies the VMMQ settings for the default queue of the vswitch.") : Amended] boolean DefaultQueueVmmqEnabled;
  [Description("Specifies the number of queues for the default queue.") : Amended] uint32 DefaultQueueVmmqQueuePairs;
  [Description("Indicates minimum number of queues used for VRSS/VMMQ.") : Amended] uint32 DefaultQueueVrssMinQueuePairs;
  [Description("Indicates how VRSS/VMMQ queues are steered to different host processors.") : Amended] uint32 DefaultQueueVrssQueueSchedulingMode;
  [Description("Indicates whether the primary VMQ CPU is excluded from the VRSS/VMMQ indirection table.") : Amended] boolean DefaultQueueVrssExcludePrimaryProcessor;
  [Description("Indicates whether to always do VRSS spreading for default queue, regardless of the RSS state of the external vPort") : Amended] boolean DefaultQueueVrssIndependentHostSpreading;
  [Description("Indicates whether software RSC is enabled or not") : Amended] boolean SoftwareRscEnabled;
};

[DisplayName("Ethernet Switch Port ACL Settings") : Amended,Description("Represents the port ACL settings.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetSwitchPortAclSettingData : Msvm_EthernetSwitchPortFeatureSettingData
{
  [Description("This is the friendly name of the ACL.") : Amended] string Name;
  [Values{"Unknown", "Incoming", "Outgoing"} : Amended,Description("This indicates if the ACL applies to ingress or egress direction.") : Amended] uint8 Direction;
  [Values{"Unknown", "Local", "Remote"} : Amended,Description("This indicates if the ACL applies to the local or remote endpoint.") : Amended] uint8 Applicability;
  [Values{"Unknown", "MAC Acl", "IPv4 Acl", "IPv6 Acl"} : Amended,Description("This indicates if the ACL endpoint is an IPv4 or an IPv6 address or a MAC address.") : Amended] uint8 AclType;
  [Values{"Unknown", "Allow", "Deny", "Meter"} : Amended,Description("This indicates the Action of the ACL. Could be Allow, Deny or Meter.") : Amended] uint8 Action;
  [Description("This is the local address of the VM.This can be an IPv4, IPv6 or a Mac address.") : Amended] string LocalAddress;
  [Description("This is the local addres prefix length.") : Amended] uint8 LocalAddressPrefixLength;
  [Description("This is the remote address of the VM. This can bean IPv4, IPv6 or a Mac address.") : Amended] string RemoteAddress;
  [Description("This is the remote address prefix length.") : Amended] uint8 RemoteAddressPrefixLength;
};

[DisplayName("Ethernet Switch Port Extended ACL Settings") : Amended,Description("Represents the extended port ACL settings.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetSwitchPortExtendedAclSettingData : Msvm_EthernetSwitchPortFeatureSettingData
{
  [Description("This is the friendly name of the Extended ACL.") : Amended] string Name;
  [Values{"Unknown", "Incoming", "Outgoing"} : Amended,Description("This indicates if the extended ACL applies to incoming or outgoing direction.") : Amended] uint8 Direction;
  [Values{"Unknown", "Allow", "Deny"} : Amended,Description("This indicates the Action of the extended ACL. Could be Allow or Deny.") : Amended] uint8 Action;
  [Description("This is the local IP Address.") : Amended] string LocalIPAddress;
  [Description("This is the remote IP Address.") : Amended] string RemoteIPAddress;
  [Description("This is the local port range.") : Amended] string LocalPort;
  [Description("This is the remote port range.") : Amended] string RemotePort;
  [Description("This is the protocol string.") : Amended] string Protocol;
  [Description("This is the weight applied to the extended ACL.") : Amended] Uint16 Weight;
  [Description("Indicates if the extended ACL is stateful or stateless.") : Amended] Boolean Stateful;
  [Description("Idle session timeout value (in seconds) for stateful ACL.") : Amended] Uint16 IdleSessionTimeout;
  [Description("Isolation ID for which the extended ACL should be applied.") : Amended] Uint32 IsolationID;
};

[DisplayName("Ethernet Switch Port Security Settings") : Amended,Description("Represents the security feature setting data.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetSwitchPortSecuritySettingData : Msvm_EthernetSwitchPortFeatureSettingData
{
  [Description("Indicates whether the port will allow MAC spoofing.\nTRUE: The port will allow MAC addresses to be spoofed. All valid unicast MAC address values are allowed.\nFALSE: The port will allow only MAC addresses configured within Hyper-V management to be used. Default value is FALSE") : Amended] boolean AllowMacSpoofing;
  [Description("Set to TRUE if Dhcp Offers are blocked from the port else FALSE. Default value is FALSE") : Amended] boolean EnableDhcpGuard;
  [Description("Set to TRUE if Router Advertisements and Router Redirects are blocked from the port else FALSE. Default value is FALSE") : Amended] boolean EnableRouterGuard;
  [Values{"None", "Destination", "Source"} : Amended,Description("This indicates the monitor mode of the port.") : Amended] uint8 MonitorMode;
  [Description("This gives the monitor session ID this port belongs to.") : Amended] uint8 MonitorSession;
  [Description("Set to TRUE if traffic to/from port retains 802.1P info.") : Amended] boolean AllowIeeePriorityTag;
  [Description("Defines the Virtual Subnet membership of the Port. Default is none.") : Amended] uint32 VirtualSubnetId;
  [Description("Indicates whether the NICs connected to the port can be part of a team. This applies only to NICs connected to virtual machines") : Amended] boolean AllowTeaming;
  [Description("Reserved.") : Amended] string TeamName;
  [Description("Reserved.") : Amended] uint32 TeamNumber;
  [Description("Defines the packets per second limit for broadcast and multicast traffic. Default is none.") : Amended] uint32 StormLimit;
  [Description("Defines the limit for number of Dynamic IP addresses learned. Default is none.") : Amended] uint32 DynamicIPAddressLimit;
  [Description("Reserved") : Amended] boolean Reserved;
  [Description("Set to TRUE if Fixed Speed 10G is enabled else FALSE. Default value is FALSE") : Amended] boolean EnableFixSpeed10G;
};

[Description("Represents the port offload feature setting data.") : Amended,DisplayName("Ethernet Switch Port Offload Settings") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetSwitchPortOffloadSettingData : Msvm_EthernetSwitchPortFeatureSettingData
{
  [Description("The maximum number of SA offload slot allowed from the port.") : Amended] uint32 IPSecOffloadLimit;
  [Description("The weight assigned to this port for virtual machine queue (VMQ) offloading. The weight is the relative importance when assigning VMQ resources. Setting the VMQOffloadWeight property to 0 disables VMQ on the port. The default is 100.") : Amended] uint32 VMQOffloadWeight;
  [Description("The weight assigned to this port for I/O virtualization (IOV) offloading. The weight isthe relative importance when assigning IOV resources. Setting the IOVOffloadWeight property to 0 disables IOV offloading on the port. The default is 0.") : Amended] uint32 IOVOffloadWeight;
  [Description("The number of queue pairs requested for this port for I/O virtualization (IOV) offloading.The default is 1.") : Amended] uint32 IOVQueuePairsRequested;
  [Description("The interrupt moderation value for I/O virtualization (IOV) offloading.The default is Adaptive") : Amended] uint32 IOVInterruptModeration;
  [Description("The number of processors used by the host for processing packets sent from this port in Packet Direct mode. The default is 1.") : Amended] uint32 PacketDirectNumProcs;
  [Description("The interrupt moderation count value for Packet Direct (PD).The default is 0.") : Amended] uint32 PacketDirectModerationCount;
  [Description("The interrupt moderation interval value for Packet Direct (PD).The default is 0.") : Amended] uint32 PacketDirectModerationInterval;
  [Description("Enable VRSS.The default is true.") : Amended] boolean VrssEnabled;
  [Description("Enable VMMQ offload if supported by hardware.The default is true.") : Amended] boolean VmmqEnabled;
  [Description("The number of queues to allocate when VRSS is enabled.The default is 16.") : Amended] uint32 VmmqQueuePairs;
  [Description("The minimum number of queues to allocate when VRSS is enabled.The default is 1.") : Amended] uint32 VrssMinQueuePairs;
  [Description("The queue scheduling mode to use when VRSS is enabled.The default is static scheduling.") : Amended] uint32 VrssQueueSchedulingMode;
  [Description("Whether to exclude primary VMQ processor from the VRSS indirection table when VRSS is enabled.The default is false.") : Amended] boolean VrssExcludePrimaryProcessor;
  [Description("Whether to always do host-side VRSS when VRSS is enabled, regardless of RSS setting of the virtual NIC.The default is false.") : Amended] boolean VrssIndependentHostSpreading;
  [Description("The vmbus channel affinity policy to use when VRSS is enabled.The default is strong.") : Amended] uint32 VrssVmbusChannelAffinityPolicy;
};

[Description("Represents the port RDMA feature setting data.") : Amended,DisplayName("Ethernet Switch Port Rdma Settings") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetSwitchPortRdmaSettingData : Msvm_EthernetSwitchPortFeatureSettingData
{
  [Description("The weight assigned to this port for Guest RDMA. The weight isthe relative importance when assigning RDMA resources. Setting the RdmaOffloadWeight property to 0 disables RDMA on the port. The default is 0.") : Amended] uint32 RdmaOffloadWeight;
};

[Description("Represents the port team mapping feature setting data.") : Amended,DisplayName("Ethernet Switch Port Team Mapping Settings") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetSwitchPortTeamMappingSettingData : Msvm_EthernetSwitchPortFeatureSettingData
{
  [Description("Name of the preferred mapped physical adapter") : Amended] string NetAdapterName;
  [Description("Device ID of the preferred mapped physical adapter") : Amended] string NetAdapterDeviceId;
  [Description("Mask of features that are disabled on failover: RDMA=0x1") : Amended] uint32 DisableOnFailover;
};

[DisplayName("Ethernet Switch Port VLAN Settings") : Amended,Description("Represents the vlan setting data.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetSwitchPortVlanSettingData : Msvm_EthernetSwitchPortFeatureSettingData
{
  [Values{"Access", "Trunk", "Private"} : Amended,Description("The vlan operation modes.") : Amended] uint32 OperationMode;
  [Description("The vlan ID in access mode.") : Amended] uint16 AccessVlanId;
  [Description("The vlan ID in trunk mode.") : Amended] uint16 NativeVlanId;
  [Values{"Isolated", "Community", "Promiscuous"} : Amended,Description("The private vlan modes.") : Amended] uint32 PvlanMode;
  [Description("The primary vlan ID in private mode.") : Amended] uint16 PrimaryVlanId;
  [Description("The secondary vlan ID in private mode.") : Amended] uint16 SecondaryVlanId;
  [Description("The prune vlan ID bitmap in trunk mode.") : Amended] uint16 PruneVlanIdArray[];
  [Description("The trunk vlan ID bitmap in trunk mode.") : Amended] uint16 TrunkVlanIdArray[];
  [Description("The secondary vlan ID bitmap in private mode.") : Amended] uint16 SecondaryVlanIdArray[];
};

[DisplayName("Ethernet Switch Port Profile Settings") : Amended,Description("Represents the port profile settings.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetSwitchPortProfileSettingData : Msvm_EthernetSwitchPortFeatureSettingData
{
  [Description("The name of the Port Profile.") : Amended] string ProfileName;
  [Description("The id of the Port Profile.") : Amended] string ProfileId;
  [Description("The name of the Vendor defining the profile.") : Amended] string VendorName;
  [Description("The id of the Vendor defining the profile..") : Amended] string VendorId;
  [Description("Additional data for the Port Profile.") : Amended] uint32 ProfileData;
  [Description("Unique device identifier of the sub-interface.") : Amended] string NetCfgInstanceId;
  [Description("The PCI segment number.") : Amended] uint32 PciSegmentNumber;
  [Description("The PCI bus number.") : Amended] uint32 PciBusNumber;
  [Description("The PCI device number.") : Amended] uint32 PciDeviceNumber;
  [Description("The PCI function number.") : Amended] uint32 PciFunctionNumber;
  [Description("The CDN Label Id.") : Amended] uint32 CdnLabelId;
  [Description("The CDN label string.") : Amended] string CdnLabelString;
};

[Description("Represents an instance of an extension component bound to a virtual Ethernet switch.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetSwitchExtension : CIM_EnabledLogicalElement
{
  [Key,Description("This is the System Creation Class Name, whichis Msvm_VirtualEthernetSwitch") : Amended] string SystemCreationClassName;
  [Key,Description("The name of the virtual switch to which the extension instance is bound to.") : Amended] string SystemName;
  [Key,Description("CreationClassName indicates the name of the class or the subclass used in the creation of an instance. When used with the other key properties of this class, this property allows all instances of this class and its subclasses to be uniquely identified.") : Amended] string CreationClassName;
  [Key,Description("The unique name of the extension component.") : Amended] string Name;
  [Values{"Unknown", "Capture", "Filter", "Forwarding", "Monitoring", "Native"} : Amended,Description("Indicates the type of the extension component.") : Amended] uint8 ExtensionType;
  [Description("Indicates the vendor providing the extension.") : Amended] string Vendor;
  [Description("The version of the extension in a format of \"major.minor\", for example \"2.0\".") : Amended] string Version;
};

[Description("Abstract class representing port runtime data collected by anEthernet Switch Extension. Ethernet Port Data classes mustderive from this abstract class.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetPortData : CIM_ManagedElement
{
  [Key,Description("This is the System Creation Class Name, whichis Msvm_VirtualEthernetSwitch") : Amended] string SystemCreationClassName;
  [Key,Description("The name of the virtual switch that scopesthis port data instance.") : Amended] string SystemName;
  [Key,Description("The CreationClassName of the port, which isMsvm_EthernetSwitchPort.") : Amended] string DeviceCreationClassName;
  [Key,Description("The Device ID of the port that scopes thisport data instance.") : Amended] string DeviceID;
  [Key,Description("The name of the subclass used in the creationof this port data instance.") : Amended] string CreationClassName;
  [Key,Description("A string that uniquely identifies this portdata instance within the scope of theswitch and port.") : Amended] string Name;
};

[Description("Represents the port offload feature status data.") : Amended,DisplayName("Ethernet Switch Port Offload Feature Status") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetSwitchPortOffloadData : Msvm_EthernetPortData
{
  [Description("The current number of SA offload slot in use the port.") : Amended] uint32 IpsecCurrentOffloadSaCount;
  [Description("The current IOV offload usage.") : Amended] uint32 IovOffloadUsage;
  [Description("The current VMQ offload usage.") : Amended] uint32 VMQOffloadUsage;
  [Description("The current VMQ Queue Id that is assigned to the Port.This is valid if VMQOffloadUsage is non zero") : Amended] uint32 VMQId;
  [Description("The current IOV VF Id that is assigned to the Port.This is valid if IovOffloadUsage is non zero") : Amended] uint16 IovVfId;
  [Description("Indicates if Iov Vf data path is active.") : Amended] boolean IovVfDataPathActive;
  [Description("Indicates if Iov Vf data path is active.") : Amended] uint32 IovQueuePairUsage;
  [Description("Indicates if vRSS is active.") : Amended] boolean VrssEnabled;
  [Description("Indicates if VMMQ is active.") : Amended] boolean VmmqEnabled;
  [Description("Indicates how many queues are used for VRSS/VMMQ.") : Amended] uint32 VmmqQueuePairs;
  [Description("Indicates minimum number of queues used for VRSS/VMMQ.") : Amended] uint32 VrssMinQueuePairs;
  [Description("Indicates how VRSS/VMMQ queues are steered to different host processors.") : Amended] uint32 VrssQueueSchedulingMode;
  [Description("Indicates whether the primary VMQ CPU is excluded from the VRSS/VMMQ indirection table.") : Amended] boolean VrssExcludePrimaryProcessor;
  [Description("Indicates whether host side VRSS/VMMQ spreading happens, regardless of RSS settings of the virtual NIC.") : Amended] boolean VrssIndependentHostSpreading;
  [Description("Indicates how Vmbus channels are affinitized to host processors.") : Amended] uint32 VrssVmbusChannelAffinityPolicy;
};

[Description("Represents an instance of an extension component installed on a host system.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_InstalledEthernetSwitchExtension : CIM_ManagedSystemElement
{
  [Key,Description("The unique name of the extension component.") : Amended] string Name;
  [Values{"Unknown", "Capture", "Filter", "Forwarding", "Monitoring", "Native"} : Amended,Description("Indicates the type of the extension component.") : Amended] uint8 ExtensionType;
  [Description("Indicates the vendor providing the extension.") : Amended] string Vendor;
  [Description("The version of the extension in a format of \"major.minor\", for example \"2.0\".") : Amended] string Version;
};

[Description("Represents the port bandwidth feature status data.") : Amended,DisplayName("Ethernet Switch Port Bandwidth Feature Status") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetSwitchPortBandwidthData : Msvm_EthernetPortData
{
  [Description("The current percentage of bandwidth reserved for thisport.") : Amended] uint32 CurrentBandwidthReservationPercentage;
};

[Description("This association connects a virtual switch service to transparent briding service.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_HostedSwitchService : CIM_HostedService
{
  [Description("A reference to the hosting system.") : Amended] Msvm_VirtualEthernetSwitch Ref Antecedent;
  [Description("A reference to the service hosted on the system.") : Amended] CIM_Service Ref Dependent;
};

[Description("Connects a transparent bridging service to a dynamic forward entry (learned MAC address).") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_TransparentBridgingDynamicForwarding : CIM_TransparentBridgingDynamicForwarding
{
  [Description("A reference to the transparent bridging service.") : Amended] Msvm_TransparentBridgingService Ref Antecedent;
  [Description("A reference to the dynamic forwarding entry of forwarding database.") : Amended] Msvm_DynamicForwardingEntry Ref Dependent;
};

[Description("Connects a switch port to a dynamic forward entry (learned MAC address). This is useful in finding all of the learned MAC addresses for a specified port.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SwitchPortDynamicForwarding : CIM_SwitchPortDynamicForwarding
{
  [Description("A reference to the switch port.") : Amended] Msvm_EthernetSwitchPort Ref Antecedent;
  [Description("A reference to the dynamic forwarding entry of the forwarding database.") : Amended] Msvm_DynamicForwardingEntry Ref Dependent;
};

[Description("Connects a switch port to the LAN endpoint to which the port is connected. The existence of this object means that the switch port and the LAN endpoint are actively connected and the Ethernet port associated with the LAN endpoint can communicate with the network through the switch port.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ActiveConnection : CIM_ActiveConnection
{
  [Description("A service access point (SAP) that is configured to communicate or is actively communicating with the dependent SAP. In a unidirectional connection, this SAP is the one that is transmitting.") : Amended] Msvm_LANEndpoint Ref Antecedent;
  [Description("The service access points that are hosted on a given system.") : Amended] CIM_LANEndpoint Ref Dependent;
};

[Description("An association between a service access point (SAP) and how it is implemented. The cardinality of this association is many-to-many. A SAP can be provided by more than one logical device, operating in conjunction. Any device can provide more than one SAP. When many logical devices are associated with a single SAP, it is assumed that these elements operate in conjunction to provide the access point. If different implementations of a SAP exist, each of these implementations would result in individual instantiations of the SAP object. These individual instantiations would then have associations to the unique implementations.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetDeviceSAPImplementation : CIM_DeviceSAPImplementation
{
};

[Description("An association between a service access point (SAP) and how it is implemented. The cardinality of this association is many-to-many. A SAP can be provided by more than one logical device, operating in conjunction. Any device can provide more than one SAP. When many logical devices are associated with a single SAP, it is assumed that these elements operate in conjunction to provide the access point. If different implementations of a SAP exist, each of these implementations would result in individual instantiations of the SAP object. These individual instantiations would then have associations to the unique implementations.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_WiFiDeviceSAPImplementation : CIM_DeviceSAPImplementation
{
};

[Description("This association establishes a aervice access point (SAP) as a requester of protocol services from a protocol endpoint. Typically, this association runs between SAPs and endpoints on a single system. Because a protocol endpoint is a kind of SAP, this binding can be used to establish a layering of two protocols, with the upper layer represented by the Dependent and the lower layer represented by the Antecedent.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_BindsToLANEndpoint : CIM_BindsToLANEndpoint
{
  [Description("A reference to a switch port") : Amended] Msvm_LANEndpoint Ref Antecedent;
  [Description("A reference to the VLAN endpoint associated to the switch port") : Amended] Msvm_VLANEndpoint Ref Dependent;
};

[Description("An association used to establish 'part of' relationships between one instance of Msvm_EthernetPortAllocationSettingData and one or more instances of Msvm_EthernetSwitchPortFeatureSettingData.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetPortSettingDataComponent : CIM_Component
{
  [Key,Description("Reference to an instance of Msvm_EthernetPortAllocationSettingData representing an Ethernet port.") : Amended] Msvm_EthernetPortAllocationSettingData Ref GroupComponent;
  [Key,Description("Reference to an instance of Msvm_EthernetSwitchPortFeatureSettingData representing feature settings applied to the port.") : Amended] Msvm_EthernetSwitchPortFeatureSettingData Ref PartComponent;
};

[Description("Associates a virtual Ethernet switch to the extensions currently bound to it.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_HostedEthernetSwitchExtension : CIM_HostedDependency
{
  [Key,Description("A reference to the virtual switch.") : Amended] Msvm_VirtualEthernetSwitch Ref Antecedent;
  [Key,Description("A reference to a switch extension instance bound to the virtual switch.") : Amended] Msvm_EthernetSwitchExtension Ref Dependent;
};

[Description("An association between an instance of Msvm_EthernetSwitchPort and a Msvm_EthernetPortData instance that represents data gatheredabout the port by a switch extension.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetPortInfo : CIM_Dependency
{
  [Description("The switch port.") : Amended] Msvm_EthernetSwitchPort Ref Antecedent;
  [Description("The port data.") : Amended] Msvm_EthernetPortData Ref Dependent;
};

[Description("CIM_ConcreteDependency is a generic association used to establish dependency relationships between ManagedElements. It is defined as a concrete subclass of the abstract CIM_Dependency class, to be used in place of many specific subclasses of Dependency that add no semantics, that is subclasses that do not clarify the type of dependency, update cardinalities, or add or remove qualifiers. Note that when you define additional semantics for Dependency, this class must not be subclassed. Specific semantics continue to be defined as subclasses of the abstract CIM_Dependency. ConcreteDependency is limited in its use as a concrete form of a general dependency.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ConcreteDependency : CIM_ConcreteDependency
{
  [Description("Reference to an instance of Msvm_InstalledEthernetSwitchExtension representing a virtual Ethernet switch extension component installed on the system.") : Amended] Msvm_InstalledEthernetSwitchExtension Ref Antecedent;
  [Description("Reference to an instance of Msvm_EthernetSwitchExtension representing the occurrence of the Antecedent bound to a specific virtual Ethernet switch.") : Amended] Msvm_EthernetSwitchExtension Ref Dependent;
};

[Description("Represents the association between a parent EthernetSwitchExtension and a child EthernetSwitchExtension.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ParentEthernetSwitchExtension : CIM_Dependency
{
  [Description("Reference to the parent Msvm_EthernetSwitchExtension instance.") : Amended] Msvm_EthernetSwitchExtension Ref Antecedent;
  [Description("Reference to the child Msvm_EthernetSwitchExtension instance.") : Amended] Msvm_EthernetSwitchExtension Ref Dependent;
};

[Description("Associates a service with its hosting computer system. Instances of Msvm_VirtualizationManagementService can be discovered through their association with a host.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_HostedService : CIM_HostedService
{
};

[Description("Associates a virtual computer system instance with the computer system object representing the physical, hosting system.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_HostedDependency : CIM_HostedDependency
{
};

[Description("Associates a virtual computer system instance with the management service that controls its state.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ServiceAffectsElement : CIM_ServiceAffectsElement
{
};

[Description("Represents the association between managed elements and their capabilities.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ElementCapabilities : CIM_ElementCapabilities
{
};

[Description("Provides a link between the capabilities instance and the minimum, maximum, incremental, and default settings for a resource.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SettingsDefineCapabilities : CIM_SettingsDefineCapabilities
{
  [Values{"Production", "Prerelease", "Reserved"} : Amended,Description("Identifies the support statement.") : Amended] uint16 SupportStatement;
};

[Description("Associates a managed element with its configuration data. Some of the more notable applications of this association are its use in linking a virtual computer system and the logical devices that have been assigned to that system with their snapshot configuration information. Current configuration information is associated with the virtual system and its devices through the Msvm_SettingsDefineState association.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ElementSettingData : CIM_ElementSettingData
{
};

[Description("The CIM_SnapshotOfVirtuaSystem association associates an instance of the CIM_ComputerSystem class representing a virtual system, and an instance of the CIM_VirtualSystemSettingData class representing a snapshot that was captured from the virtual system.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SnapshotOfVirtualSystem : CIM_SnapshotOfVirtualSystem
{
};

[Description("A generic association used to establish 'part of' relationships between one instance of CIM_VirtualSystemSettingData and one or more instances of CIM_ResourceAllocationSettingData.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualSystemSettingDataComponent : CIM_VirtualSystemSettingDataComponent
{
};

[Description("Logical devices can be aggregated by a system. This relationship is made explicit by the system device association.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SystemDevice : CIM_SystemDevice
{
};

[Description("This association indicates a subclass of logical device (for example a storage volume) is connected through a specific protocol controller. In many situations (for example storage LUN masking), there may be many of these associations used to relate to different objects. Therefore, subclasses have been defined to optimize enumeration of the associations.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ProtocolControllerForUnit : CIM_ProtocolControllerForUnit
{
};

[Description("Associates a storage drive with the media inserted into the drive. This association is used for all storage drive objects.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_MediaPresent : CIM_MediaPresent
{
};

[Description("Associates an instance of an allocated resource with the resource pool from which it was allocated.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ElementAllocatedFromPool : CIM_ElementAllocatedFromPool
{
};

[Description("Associates an instance of a resource allocation with the resource pool from which it is allocated.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ResourceAllocationFromPool : CIM_ResourceAllocationFromPool
{
};

[Description("Associates a storage device with the storage controller that owns the device. This association is used with both IDE and floppy controllers.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ControlledBy : CIM_ControlledBy
{
};

[Description("Represents an association between a job and the managed element that may be affected by its execution.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_AffectedJobElement : CIM_AffectedJobElement
{
};

[Description("A generic association used to establish 'part of' relationships between managed elements. CIM_ConcreteComponent is defined as a concrete subclass of the abstract CIM_Component class, to be used in place of many specific subclasses of component that add no semantics (that is subclasses that do not clarify the type of composition, update cardinalities, or add or remove qualifiers.)") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ConcreteComponent : CIM_ConcreteComponent
{
};

[Description("This association establishes that a CIM_ResourceAllocationSettingData instance representing a resource allocation depends on another resource allocation.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ResourceDependentOnResource : CIM_Dependency
{
};

[Description("An association between an instance of Msvm_VirtualSystemSettingData and the Msvm_VirtualSystemSettingData instance that represents the most recent snapshot upon which this object is based.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ParentChildSettingData : CIM_Dependency
{
  [Description("The snapshot setting data upon which the child setting data is based.") : Amended] Msvm_VirtualSystemSettingData Ref Antecedent;
  [Description("The setting data for the virtual system that represents the child ofthe parent.") : Amended] Msvm_VirtualSystemSettingData Ref Dependent;
};

[Description("An association between a virtual system and the setting data of the snapshot which was most recently applied to the virtual system.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_LastAppliedSnapshot : CIM_LastAppliedSnapshot
{
};

[Description("The Msvm_MostCurrentSnapshotInBranch association associates an instance of the Msvm_ComputerSystem or Msvm_PlannedComputerSystem class representing a virtual system, and the instance of the Msvm_VirtualSystemSettingData class representing the virtual system snapshot that is the most current snapshot in a branch of dependent snapshots. \nNote that a new branch is implied as a snapshot that is part of an existing branch is applied to a virtual system, such that in this case initially that snapshot is the most current snapshot in that new branch. Note that this association does not exist if the virtual system was not activated based on a snapshot or no snapshot was yet created from the current instance of the virtual system.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_MostCurrentSnapshotInBranch : CIM_MostCurrentSnapshotInBranch
{
  [Description("Reference to the instance of the Msvm_ComputerSystem or Msvm_PlannedComputerSystem class representing a virtual system.") : Amended] CIM_ComputerSystem Ref Antecedent;
  [Description("Reference to the instance of the Msvm_VirtualSystemSettingData class representing the virtual system snapshot that is the most current snapshot in a branch of dependent snapshots.") : Amended] Msvm_VirtualSystemSettingData Ref Dependent;
};

[Description("Associates a virtual system and its export setting data. Before calling the ExportVirtualSystemEx method of the Msvm_VirtualSystemManagementService class an instance of Msvm_VirtualSystemExportSettingData can be retrieved using this association.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SystemExportSettingData : CIM_ElementSettingData
{
  [Description("Reference to the virtual system.") : Amended] CIM_ComputerSystem Ref ManagedElement;
  [Description("Reference to the export setting data for the virtual system.") : Amended] Msvm_VirtualSystemExportSettingData Ref SettingData;
};

[Description("An association between an instance of CIM_ComputerSystem that represents the replica virtual machine and an instance of CIM_ComputerSystem that represents the test replica virtual machine.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ReplicaSystemDependency : CIM_Dependency
{
  [Description("Reference to the instance of the CIM_ComputerSystem class representing the replica virtual machine.") : Amended] CIM_ComputerSystem Ref Antecedent;
  [Description("Reference to the instance of the CIM_ComputerSystem class representing the  test replica virtual system created by TestReplicaSystem API.") : Amended] CIM_ComputerSystem Ref Dependent;
};

[Description("An association between an instance of Msvm_ComputerSystem that represents the virtual machine and an instance of Msvm_ReplicationRelationship that represents a replication relationship of the virtual machine.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SystemReplicationRelationship : CIM_Dependency
{
  [Description("Reference to the instance of the Msvm_ComputerSystem class representing the virtual machine.") : Amended] Msvm_ComputerSystem Ref Antecedent;
  [Description("Reference to the instance of the Msvm_ReplicationRelationship class representing the replication relationship of a virtual system.") : Amended] Msvm_ReplicationRelationship Ref Dependent;
};

[Description("Defines the means by which a client can discover the valid range of default settings for an Ethernet switch feature. An EthernetSwitchFeatureAllocationCapabilities object is associated with each virtual Ethernet switch, for each feature that the switch supports. Four EthernetSwitchFeatureSettingData objects are associated with the EthernetSwitchFeatureAllocationCapabilities object to describe the minimum, maximum, default, and incremental values for the given switch's feature capabilities.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetSwitchFeatureCapabilities : CIM_Capabilities
{
  [Description("The identifier of the feature this object provides capabilities information for.") : Amended] string FeatureId;
  [Description("Describes whether this feature is applied to an Ethernet switch or a particular Ethernet switch port.") : Amended] uint16 Applicability;
  [Description("The version of the feature in a format of \"major.minor\", for example \"2.0\".") : Amended] string Version;
};

[Description("Provides a link between the Ethernet switch feature capabilities instance and the minimum, maximum, incremental, and default settings for a resource.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_FeatureSettingsDefineCapabilities : CIM_SettingsDefineCapabilities
{
  [Description("The Capabilities instance.") : Amended] Msvm_EthernetSwitchFeatureCapabilities Ref GroupComponent;
  [Description("A Feature Setting used to define the associated Capabilities instance.") : Amended] Msvm_FeatureSettingData Ref PartComponent;
};

[Description("Represents the association between Ethernet extensions and their capabilities.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_EthernetSwitchExtensionCapabilities : CIM_ElementCapabilities
{
  [Description("The installed extension.") : Amended] Msvm_InstalledEthernetSwitchExtension Ref ManagedElement;
  [Description("The capabilities object associated with the switch.") : Amended] Msvm_EthernetSwitchFeatureCapabilities Ref Capabilities;
};

[Description("Msvm_ExternalEthernetPortCapabilities describes the capabilities of the associated Msvm_ExternalEthernetPort.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ExternalEthernetPortCapabilities : CIM_Capabilities
{
};

[Description("Provides a link between a Msvm_ConcreteJob instance and theMsvm_Serivce object that created the job.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_OwningJobElement : CIM_OwningJobElement
{
};

[Description("Describes the capabilities of the associated Msvm_ComputerSystem.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualSystemCapabilities : CIM_EnabledLogicalElementCapabilities
{
};

[Description("Msvm_VirtualSystemManagementCapabilities describes the capabilities of the associated Msvm_VirtualSystemManagementService.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_VirtualSystemManagementCapabilities : CIM_VirtualSystemManagementCapabilities
{
  [Values{"DMTF Reserved", "ValidatePlannedSystemSupported", "ImportSystemDefinitionSupported", "ImportSnapshotDefinitionsSupported", "RealizePlannedSystemSupported", "ExportSystemDefinitionSupported", "AddFeatureSettingsSupported", "ModifyFeatureSettingsSupported", "RemoveFeatureSettingsSupported", "GetVirtualSystemThumbnailImageSupported", "ModifyServiceSettingsSupported", "GetSummaryInformationSupported", "AddKvpItemsSupported", "ModifyKvpItemsSupported", "RemoveKvpItemsSupported", "FormatErrorSupported", "RequestStateChangeSupported", "StartServiceSupported", "StopServiceSupported", "ModifyDiskMergeSettingsSupported", "GenerateWwpnSupported", "AddFibreChannelChapSupported", "RemoveFibreChannelChapSupported", "SetGuestNetworkAdapterConfigurationSupported", "GetSizeOfSystemFilesSupported", "GetCurrentWwpnFromGeneratorSupported", "Vendor Reserved"} : Amended] uint16 SynchronousMethodsSupported[];
  [Values{"DMTF Reserved", "ValidatePlannedSystemSupported", "ImportSystemDefinitionSupported", "ImportSnapshotDefinitionsSupported", "RealizePlannedSystemSupported", "ExportSystemDefinitionSupported", "AddFeatureSettingsSupported", "ModifyFeatureSettingsSupported", "RemoveFeatureSettingsSupported", "GetVirtualSystemThumbnailImageSupported", "ModifyServiceSettingsSupported", "GetSummaryInformationSupported", "AddKvpItemsSupported", "ModifyKvpItemsSupported", "RemoveKvpItemsSupported", "FormatErrorSupported", "RequestStateChangeSupported", "StartServiceSupported", "StopServiceSupported", "ModifyDiskMergeSettingsSupported", "GenerateWwpnSupported", "AddFibreChannelChapSupported", "RemoveFibreChannelChapSupported", "SetGuestNetworkAdapterConfigurationSupported", "GetSizeOfSystemFilesSupported", "GetCurrentWwpnFromGeneratorSupported", "Vendor Reserved"} : Amended] uint16 AsynchronousMethodsSupported[];
};

[Description("Associates the Msvm_VirtualSystemReferencePoint to the corresponding Msvm_VirtualSystem objects.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ReferencePointOfVirtualSystem : CIM_Dependency
{
};

[Description("Msvm_MetricService provides the ability to manage metrics. For each metric that the service manages, there shall be an instance of Msvm_ServiceAffectsElement that associates the Msvm_MetricService to the instance of Msvm_BaseMetricDefinition that defines the metric, where the value of the Msvm_ServiceAffectsElement.ElementAffects property is 5 \"Manages\". The capabilities of the Msvm_MetricService instance are advertised through an instance of Msvm_MetricServiceCapabilities associated with the Msvm_MetricService instance through Msvm_ElementCapabilities.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_MetricService : CIM_MetricService
{
  [Values{"Completed with No Error", "Method Parameters Checked - Job Started", "Failed", "Access Denied", "Not Supported", "Status is unknown", "Timeout", "Invalid parameter", "System is in use", "Invalid state for this operation", "Incorrect data type", "System is not available", "Out of memory"} : Amended,Description("Modifies the setting data for the service.") : Amended] uint32 ModifyServiceSettings([IN,Description("The modified setting data for the service.") : Amended] string SettingData,[OUT,Description("An optional parameter for monitoring progress of the operation, which is used if the method could not be executed synchronously. If the operation is executing asynchronously, the return value is 4096.") : Amended] CIM_ConcreteJob Ref Job);
};

[Description("Msvm_MetricServiceCapabilities describes the capabilities of the associated Msvm_BaseMetricService.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_MetricServiceCapabilities : CIM_MetricServiceCapabilities
{
};

[Description("Represents the settings for the metric service. The properties for this class cannot be modified directly. The client must call the ModifyServiceSettings method to modify any of these properties.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_MetricServiceSettingData : CIM_SettingData
{
  [Description("Defines the interval at which metrics should be flushed to disk.") : Amended] datetime MetricsFlushInterval;
};

[Description("Msvm_BaseMetricDefinition represents the definitional aspects of a metric. The Msvm_BaseMetricDefinition should be associated with the CIM_ManagedElement(s) to which it applies.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_BaseMetricDefinition : CIM_BaseMetricDefinition
{
};

[Description("Msvm_AggregationMetricDefinition represents the definitional aspects of a metric that is derived from another metric value. The Msvm_AggregationMetricDefinition should be associated with the CIM_ManagedElement(s) to which it applies.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_AggregationMetricDefinition : CIM_AggregationMetricDefinition
{
};

[Description("Each Msvm_BaseMetricValue object represents the instance value of a metric defined by an instance of Msvm_BaseMetricDefinition") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_BaseMetricValue : CIM_BaseMetricValue
{
};

[Description("Each Msvm_AggregationMetricValue object represents the instance value of a metric defined by an instance of Msvm_AggregationMetricDefinition. The properties inherited from Msvm_BaseMetricValue provide the actual metric value. The properties introduced in Msvm_AggregationMetricValue provide information about the interval over which the aggregation function was applied.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_AggregationMetricValue : CIM_AggregationMetricValue
{
};

[Description("This association ties a Msvm_BaseMetricDefinition to a CIM_ManagedElement to define metrics for the latter. The metrics definition is given context by the ManagedElement, which is why the definition is dependent on the element.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_MetricDefForME : CIM_MetricDefForME
{
};

[Description("This association links a ManagedElement to the metric values being maintained for it.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_MetricForME : CIM_MetricForME
{
};

[Description("Weak association of metric value objects with their metric definition. This association ties an instance of Msvm_BaseMetricValue to its Msvm_BaseMetricDefinition; it is weak because the existence of a Msvm_BaseMetricValue depends on the existence of its associated Msvm_BaseMetricDefinition: An instance of Msvm_BaseMetricValue must not exist without being associated to its corresponding Msvm_BaseMetricDefinition.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_MetricInstance : CIM_MetricInstance
{
};

[Description("Represents the association between two CIM_BaseMetricDefinition derivatives or two CIM_BaseMetricValue derivatives") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_MetricCollectionDependency : CIM_Dependency
{
};
