#line 1 "C:\\Windows\\system32\\zh-CN\\WindowsHyperVCluster.V2.mfl"
//
// 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\\HyperVCluster\\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_SummaryInformationBase",NOFAIL)
#pragma namespace("\\\\.\\root\\HyperVCluster\\v2")
instance of __namespace{ name="ms_804";};
#pragma namespace("\\\\.\\root\\HyperVCluster\\v2\\ms_804")

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

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

[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_HostedDependency : 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_SettingData : CIM_ManagedElement
{
};

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

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

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

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

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

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

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

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

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

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

[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_Error
{
};

[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_VirtualSystemMigrationService : CIM_Service
{
};

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

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

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

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

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

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

[AMENDMENT, LOCALE(0x0804)] 
class CIM_RedundancySet : CIM_SystemSpecificCollection
{
};

[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 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("An association that relates two managed elements that represent different aspects of the same underlying entity.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ConcreteIdentity : CIM_ConcreteIdentity
{
};

[Description("An association used to establish aggregation relationships between one instance of Msvm_ComputerSystem, and one or more instances of Msvm_ComputerSystem.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ComponentCS : CIM_ComponentCS
{
};

[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("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("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
{
};

[AMENDMENT, LOCALE(0x0804)] 
class Msvm_FailoverIndication : CIM_ProcessIndication
{
  [Description("The identifying information of the entity (i.e. the instance) the has failed over from one hosting system to another. The property contains the path of an instance, encoded as a string parameter, if the instance is modeled in the CIM Schema. If not a CIM instance, the property contains some identifying string that namesthe entity. The path or identifying string is formatted according that specified by the HostedElementFormat property.") : Amended] string HostedElement;
  [Description("The format of the HostedElement property. The values are defined as:\n0 - Unknown. The format is unknown or not meaningfully interpretable by a CIM client application.\n1 - Other. The format is defined by the value of the OtherHostedElementFormat property.\n2 - CIMObjectPath. The format is a CIMObjectPath, with format <ClassName>.<Prop1>=\"<Value1>\",<Prop2>=\"<Value2>\",... specifying an instance in the CIM Schema.") : Amended] uint16 HostedElementFormat;
  [Description("The string defining \"Other\" values for HostedElementFormat. Thisvalue must be set to a non-NULL value when HostedElementFormat is set to a value of 1 (\"Other\"). For all other values of HostedElementFormat, the value of this string must be NULL.") : Amended] string OtherHostedElementFormat;
  [Description("The identifying information of the entity (i.e. the instance) the now hosts the element referenced by HostedElement. The property contains the path of an instance, encoded as a string parameter, if the instance is modeled in the CIM Schema. If not a CIM instance, the property contains some identifying string that names the entity. The path or identifying string is formatted according that specificied by the HostingSystemFormat property.") : Amended] string HostingSystem;
  [Description("The format of the HostingSystem property. The values are defined as:\n0 - Unknown. The format is unknown or not meaningfully interpretable by a CIM client application.\n1 - Other. The format is defined by the value of the OtherHostingSystemFormat property.\n2 - CIMObjectPath. The format is a CIMObjectPath, with format <ClassName>.<Prop1>=\"<Value1>\",<Prop2>=\"<Value2>\",... specifying an instance in the CIM Schema.") : Amended] uint16 HostingSystemFormat;
  [Description("The string defining \"Other\" values for HostingSystemFormat. This value must be set to a non-NULL value when HostingSystemFormat is set to a value of 1 (\"Other\"). For all other values of HostingSystemFormat, the value of this string must be NULL.") : Amended] string OtherHostingSystemFormat;
  [Description("The identifying information of the entity (i.e. the instance) the now hosts the element referenced by HostedElement. The property contains the path of an instance, encoded as a string parameter, if the instance is modeled in the CIM Schema. If not a CIM instance, the property contains some identifying string that namesthe entity. The path or identifying string is formatted according that specified by the HostingSystemFormat property.") : Amended] string PreviousHostingSystem;
  [Description("The format of the HostingSystem property. The values are defined as:\n0 - Unknown. The format is unknown or not meaningfully interpretable by a CIM client application.\n1 - Other. The format is defined by the value of the OtherHostingSystemFormat property.\n2 - CIMObjectPath. The format is a CIMObjectPath, with format <ClassName>.<Prop1>=\"<Value1>\",<Prop2>=\"<Value2>\",... specifying an instance in the CIM Schema.") : Amended] uint16 PreviousHostingSystemFormat;
  [Description("The string defining \"Other\" values for PreviousHostingSystemFormat. This value must be set to a non-NULL value when PreviousHostingSystemFormat is set to a value of 1 (\"Other\"). For all other values of PreviousHostingSystemFormat, the value of this string must be NULL.") : Amended] string OtherPreviousHostingSystemFormat;
  [Description("The type of failover. The values are defined as:\n0 - Unknown. The type is unknown.\n1 - Other. The type is defined by the value of the OtherFailoverType property.\n2 - Planned. The failover was initiated at the request of a CIM client application.\n3 - Unplanned. The failover resulted from the failure of the element referenced by PreviousHostingSystem.") : Amended] uint16 FailoverType;
  [Description("The string defining \"Other\" values for FailoverType. This value must be set to a non-NULL value when FailoverType is set to a value of 1 (\"Other\"). For all other values of FailoverType, the value of this string must be NULL.") : Amended] string OtherFailoverType;
  [Description("The string defining \"Other\" values for PerceivedSeverity. This value must be set to a non-NULL value when PerceivedSeverity is set to a value of 1 (\"Other\"). For all other values of PerceivedSeverity, the value of this string must be NULL.") : Amended] string OtherPerceivedSeverity;
};

[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 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("An association used to establish an aggregation relationship between a collection and its members.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_MemberOfCollection : CIM_MemberOfCollection
{
};

[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("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("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("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("A representation of a special collection of managed elements that together provide redundancy.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_RedundancySet : CIM_RedundancySet
{
};

[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("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("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;
};

[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);
};

[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 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("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("The class that represents configured settings for an Msvm_VirtualSystemCollection.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_CollectionReplicationSettingData : Msvm_CollectionSettingData
{
  [Values{"Kerberos authentication", "Certificate based authentication"} : Amended,Description("Define authentication mode used to connect to recovery server.") : Amended] uint16 AuthenticationType;
  [Description("Certificate thumb print to use when AuthenticationType is certificate based authorization.") : Amended] string CertificateThumbPrint;
  [Description("Root Certificate thumb print 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 connecting 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("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("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("Replication Interval of a replication relationship in seconds.\nValid values are 30, 300, 900.") : Amended] uint16 ReplicationInterval;
  [Description("The list of VHDs attached to any of the ComputerSystem of the collection that will be included for replication. This is an array of strings each containing the InstanceID of the resource allocation setting data (RASD) of the VHD present in the group.") : Amended] string IncludedDisks[];
  [Description("The list of replication entities in a primary group i.e., the group id and the vm ids part of the group. These are required when there is no broker present in the cluster, (e.g. GroupId,Vm1Id,Vm2Id).") : Amended] string PrimaryReplicationEntityIDs[];
  [Description("The list of recovery servers corresponding to the Primary Entity IDs where the entity has to be placed on recovery side, (e.g. RecoveryServer1forGroupId,RecoveryServer2forVm1Id,RecoveryServer1forVm2Id).") : Amended] string RecoveryServerHosts[];
};

[Description("Manages the replication service of collection of virtual machines.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_CollectionReplicationService : 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 new replication relationship for collection of virtual machines.") : Amended] uint32 CreateReplicationRelationship([In,Description("A reference to the CIM_CollectionOfMSEs instance for which the replication should be enabled.") : Amended] CIM_CollectionOfMSEs Ref Collection,[In,Description("The setting data for replication.") : Amended] string CollectionReplicationSettingData,[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("Starts the replication of group of virtual machine.\nSpecify InitialReplicationType to determine the type of transfer to be used for initial replication.") : Amended] uint32 StartReplication([In,Description("A reference to the CIM_CollectionOfMSEs instance for which the replication should be started.") : Amended] CIM_CollectionOfMSEs Ref Collection,[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,[In(FALSE),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", "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 replication setting data for the group of virtual machines replication relationship.") : Amended] uint32 ModifyReplicationSettings([In,Description("A reference to the CIM_CollectionOfMSEs instance for which the replication setting should be modified.") : Amended] CIM_CollectionOfMSEs Ref Collection,[In,Description("The modified setting data for the replication.") : Amended] string CollectionReplicationSettingData,[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("Sets the failover for collection to application or crash consistent image.") : Amended] uint32 InitiateFailover([In,Description("A reference to the CIM_CollectionOfMSEs instance for which to prepare failover.") : Amended] CIM_CollectionOfMSEs Ref Collection,[In,Description("The Msvm_CollectionRecoveryPoint instance that represents the collection recovery point used for failover.\nPass NULL if failover is to be performed to the latest point in time.") : Amended] Msvm_CollectionRecoveryPoint Ref CollectionRecoveryPoint,[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 collection. After this operation InitiateFailover can be called again.\nThis operation will work only for the collection which  is in failed over state after using InitiateFailover.") : Amended] uint32 RevertFailover([In,Description("A reference to the CIM_CollectionOfMSEs instance for which to undo failover.") : Amended] CIM_CollectionOfMSEs Ref Collection,[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_CollectionOfMSEs instance for which to commit failover.") : Amended] CIM_CollectionOfMSEs Ref Collection,[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("Initiates planned failover (synced replication) for a group of virtual machines.") : Amended] uint32 InitiatePlannedFailover([In,Description("A reference to the CIM_CollectionOfMSEs instance for which to initiate planned failover.") : Amended] CIM_CollectionOfMSEs Ref Collection,[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 planned failover for the collection. After this operation InitiatePlannedFailover can be called again.\nThis operation will work only for the collection which is in PreparedForPlannedFailover or FailoverInitiated state after using InitiatePlannedFailover.") : Amended] uint32 RevertPlannedFailover([In,Description("A reference to the CIM_CollectionOfMSEs instance for which to undo planned failover.") : Amended] CIM_CollectionOfMSEs Ref Collection,[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("Removes the collection replication relationship. This does not clean up the recovery server collection.") : Amended] uint32 RemoveReplicationRelationship([In,Description("A reference to the CIM_CollectionOfMSEs instance for which the replication should be removed.") : Amended] CIM_CollectionOfMSEs Ref Collection,[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("Suspends replication for the VM collection.") : Amended] uint32 SuspendReplication([In,Description("A reference to the CIM_CollectionOfMSEs instance for whichreplication is to be suspended.") : Amended] CIM_CollectionOfMSEs Ref Collection,[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("Resumes replication for the VM collection.") : Amended] uint32 ResumeReplication([In,Description("A reference to the CIM_CollectionOfMSEs instance for whichreplication is to be resumeed.") : Amended] CIM_CollectionOfMSEs Ref Collection,[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("Prepares the collection for reverse replication from a failed-over recovery collection.") : Amended] uint32 PrepareForReverseReplication([In,Description("A reference to the CIM_CollectionOfMSEs instance which needs to be prepared for reverse replication.") : Amended] CIM_CollectionOfMSEs Ref Collection,[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("Reverses replication for the recovery collection using the collection replication setting specified. This API requires the collection that is a recovery collection in failover committed state.") : Amended] uint32 ReverseReplicationRelationship([In,Description("A reference to the CIM_CollectionOfMSEs instance for which the replication should be reversed.") : Amended] CIM_CollectionOfMSEs Ref Collection,[In,Description("The setting data for replication.") : Amended] string CollectionReplicationSettingData,[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("This method performs Resynchronize operation on the given Virtual System Collection.") : Amended] uint32 Resynchronize([In,Description("A reference to the CIM_CollectionOfMSEs instance for which Resynchronize needs to be performed.") : Amended] CIM_CollectionOfMSEs Ref Collection,[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,[In,Description("Indicates whether replication suspended vms should also be considered for Resynchronize operation or not.") : Amended] boolean IncludeSuspended,[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 the test collection for the replicated virtual system collection.\nUser can select the recovery point from which the test collection should be created.") : Amended] uint32 TestReplicaCollection([In,Description("A reference to the CIM_CollectionOfMSEs instance for which to create the test collection.") : Amended] CIM_CollectionOfMSEs Ref Collection,[In,Description("The Msvm_CollectionRecoveryPoint instance that represents the collection recovery point used for test failover.\nPass NULL if test collection is to be created from the latest point in time.") : Amended] Msvm_CollectionRecoveryPoint Ref CollectionRecoveryPoint,[Out,Description("If a test collection is successfully defined, a reference to an instance of class CIM_CollectionOfMSEs that represents the newly defined test collection is returned.") : Amended] CIM_CollectionOfMSEs Ref ResultingCollection,[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("Cancels Initial replication for the VM collection.") : Amended] uint32 CancelInitialReplication([In,Description("A reference to the CIM_CollectionOfMSEs instance for whichinitial replication is to be cancelled.") : Amended] CIM_CollectionOfMSEs Ref Collection,[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("Cancels Resynchronize operation for the VM collection.") : Amended] uint32 CancelResynchronize([In,Description("A reference to the CIM_CollectionOfMSEs instance for whichresynchronize operation is to be cancelled.") : Amended] CIM_CollectionOfMSEs Ref Collection,[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("Destroys the test replica collection for a replica collection.") : Amended] uint32 RevertTestReplicaCollection([In,Description("A reference to the replica collection instance for which the associated test replica collection is to be removed.") : Amended] CIM_CollectionOfMSEs Ref Collection,[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 the progress and 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("Cancels Update Disk Set operation for the VM collection.") : Amended] uint32 CancelUpdateDiskSet([In,Description("A reference to the CIM_CollectionOfMSEs instance for whichupdate disk set operation is to be cancelled.") : Amended] CIM_CollectionOfMSEs Ref Collection,[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 the progress and 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("Retrieves replication statistics associated with virtual system collection.") : Amended] uint32 GetReplicationStatistics([In,Description("A reference to the Hyper-V replica enabled CIM_CollectionOfMSEs for which replication statistics need to be retrieved.") : Amended] CIM_CollectionOfMSEs Ref Collection,[Out,Description("If successful, this object contains the replication statistics for the requested virtual system collection. This is an embedded instance of Msvm_CollectionReplicationStatistics.") : Amended] string ReplicationStatistics,[Out,Description("If successful, this object contains the array of Group-level and VM-level error description strings that indicate reasons for the current replication health period being in warning or error for the requested virtual machine collection.") : 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 use", "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 system collection.") : Amended] uint32 ResetReplicationStatistics([In,Description("A reference to the Hyper-V replica enabled CIM_CollectionOfMSEs.") : Amended] CIM_CollectionOfMSEs Ref Collection,[Out,Description("A reference to the job (can be null if the task is completed).") : Amended] CIM_ConcreteJob Ref Job);
};

[Description("An association between an instance of CIM_CollectionOfMSEs that represents the replica collection and an instance of CIM_CollectionOfMSEs that represents the test replica collection.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_ReplicaCollectionDependency : CIM_Dependency
{
  [Key,Description("Reference to the instance of the CIM_CollectionOfMSEs class representing the replica collection.") : Amended] CIM_CollectionOfMSEs Ref Antecedent;
  [Key,Description("Reference to the instance of the CIM_CollectionOfMSEs class representing the test replica collection created by TestReplicaCollection API.") : Amended] CIM_CollectionOfMSEs Ref Dependent;
};

[Description("Provides replication statistics for a virtual system collection") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_CollectionReplicationStatistics : 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 WAL replication count.") : Amended] uint32 ReplicationWALSuccessCount;
  [Description("Represents missed WAL replication cycles. This can be because of heavy workload, network issues or replication errors.") : Amended] uint32 ReplicationWALMissCount;
  [Description("Total replication data transferred to the recovery.") : Amended] uint64 ReplicationSize;
  [Description("Maximum replication data transferred to the recovery.") : Amended] uint64 MaxReplicationSize;
  [Description("Pending replication data size.") : Amended] uint64 PendingReplicationSize;
  [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("Total error count for VSS snapshot failures.") : Amended] uint32 ApplicationConsistentSnapshotFailureCount;
  [Description("Represents the current replication.") : Amended] uint32 ReplicationHealth;
  [Description("Maximum time taken to complete a single replication cycle.") : Amended] uint32 MaxReplicationLatency;
  [Description("The time when the last successful WAL consistent DR cycle was performed.") : Amended] DateTime LastWALReplicationTime;
  [Description("Indicates the last time test replica collection was created for a replication enabled virtual system collection on recovery server.") : Amended] DateTime LastTestFailoverTime;
};

[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("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("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 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("Represents a recovery point of a collection.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_CollectionRecoveryPoint : CIM_ManagedElement
{
  [Key,Description("The Unique identification of the recovery point object of a collection.") : Amended] string InstanceID;
  [Key,Description("The unique identification of the Collection object to which the recovery point belongs.") : Amended] string CollectionID;
  [Description("A user-defined name for the collection. Note this is not guaranteed to be unique.") : Amended] string ElementName;
  [Description("Time when the collection recovery point was created.") : Amended] datetime CreationTime;
  [Description("Array of Virtual Machine Ids which are members of this collection recovery point.") : Amended] string VirtualMachineIds[];
  [Description("Array of Recovery Point Ids which are members of this collection recovery point.") : Amended] string RecoveryPointIds[];
  [Values{"Unknown", "Application Consistent", "Crash Consistent", "Group Crash Consistent"} : Amended,Description("Consistency level of the recovery point.\nApplication Consistent: The recovery point indicates a point in time when the virtual system was in application consistent state. \nCrash Consistent: The recovery point indicates a point in time when the virtual system was in crash consistent state. \nGroup Crash Consistent: The recovery point indicates a point in time when the group was in crash consistent state. \n") : Amended] uint16 ConsistencyLevel;
};

[Description("Associates the Msvm_CollectionRecoveryPoint to the corresponding Msvm_VirtualSystemCollection objects.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_RecoveryPointOfVirtualSystemCollection : 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("Represents the replication relationship for the shared disks set of a collection.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SharedDiskSetReplicationRelationship
{
  [Key,Description("The unique identification of the Collection object to which the shared disks set belongs.") : Amended] string CollectionID;
  [Description("It is a short textual description.") : Amended] string Caption;
  [Description("It is a textual description.") : Amended] string Description;
  [Description("A user-friendly name.") : Amended] string ElementName;
  [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 Shared Disk Set of a collection.") : Amended] uint16 ReplicationState;
  [Values{"Not applicable", "Ok", "Warning", "Critical"} : Amended,Description("Replication health for the Shared Disk Set of a collection.") : Amended] uint16 ReplicationHealth;
  [Values{"None", "Regular", "Application consistent", "Planned"} : Amended,Description("Type of failover that was performed for the Shared Disk Set of a collection.") : Amended] uint16 FailedOverReplicationType;
  [Values{"None", "Regular", "Application consistent", "Planned"} : Amended,Description("Type of the last replication that was received for the Shared Disk Set of a collection") : Amended] uint16 LastReplicationType;
  [Description("The time at which the last application consistent replication is received on recovery for the Shared Disk Set of a collection.") : Amended] DateTime LastApplicationConsistentReplicationTime;
  [Description("The time at which the last replication is received on recovery for the Shared Disk Set of a collection.") : Amended] DateTime LastReplicationTime;
  [Description("The time at which the last replication is applied on recovery for the Shared Disk Set of a collection.") : Amended] DateTime LastApplyTime;
};

[Description("Associates the Msvm_SharedDiskSetReplicationRelationship to the corresponding Msvm_VirtualSystemCollection objects.") : Amended,AMENDMENT, LOCALE(0x0804)] 
class Msvm_SharedDiskSetReplicationRelationshipOfVirtualSystemCollection : CIM_Dependency
{
  [Key,Description("Antecedent represents the instance of Msvm_VirtualSystemCollection.") : Amended] Msvm_VirtualSystemCollection Ref Antecedent;
  [Key,Description("Dependent represents the instance of Msvm_SharedDiskSetReplicationRelationship") : Amended] Msvm_SharedDiskSetReplicationRelationship Ref Dependent;
};
