// Copyright (c) 2009 DMTF.  All rights reserved.
   [Version ( "2.22.0" ), 
    UMLPackagePath ( "CIM::Core::Virtualization" ), 
    Description ( 
       "Service to define and manipulate virtual systems and their components"
        )]
class CIM_VirtualSystemManagementService : CIM_Service {


      [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." ), 
       ValueMap { "0", "1", "2", "3", "4", "..", "4096", 
          "4097..32767", "32768..65535" }, 
       Values { "Completed with No Error", "Not Supported", 
          "Failed", "Timeout", "Invalid Parameter", "DMTF Reserved", 
          "Method Parameters Checked - Job Started", 
          "Method Reserved", "Vendor Specific" }]
   uint32 AddResourceSettings(
         [Description ( 
             "Reference to the affected virtual system configuration."
              )]
      CIM_VirtualSystemSettingData REF AffectedConfiguration, 
         [Description ( 
             "Array of strings each containing one embedded "
             "instance of class "
             "CIM_ResourceAllocationSettingData that describes "
             "the virtual aspects of a virtual resource to be "
             "added to the virtual system." ), 
          EmbeddedInstance ( "CIM_ResourceAllocationSettingData" ), 
          ArrayType ( "Indexed" )]
      string ResourceSettings[], 
         [In ( false ), Out, Description ( 
             "Array of references to instances of class "
             "CIM_ResourceAllocationSettingData representing "
             "virtual aspects of the added virtual resources." ), 
          ArrayType ( "Indexed" )]
      CIM_ResourceAllocationSettingData REF ResultingResourceSettings[], 
         [In ( false ), Out, Description ( 
             "If the operation is long running, then optionally "
             "a job may be returned. In this case, the instances "
             "of class CIM_ResourceAllocationSettingData "
             "representing the added resource settings are "
             "available via association CIM_ConreteComponent "
             "from the instance of class "
             "CIM_VirtualSystemSettingData representing the "
             "affected virtual system configuration." )]
      CIM_ConcreteJob REF Job);

      [Description ( 
          "Defines a virtual system.\n"
          "Input that is not completely specified may be filled out "
          "with default values." ), 
       ValueMap { "0", "1", "2", "3", "4", "..", "4096", 
          "4097..32767", "32768..65535" }, 
       Values { "Completed with No Error", "Not Supported", 
          "Failed", "Timeout", "Invalid Parameter", "DMTF Reserved", 
          "Method Parameters Checked - Job Started", 
          "Method Reserved", "Vendor Specific" }]
   uint32 DefineSystem(
         [Description ( 
             "String containing an embedded instance of class "
             "CIM_VirtualSystemSettingData that is used to "
             "define attributes of the virtual system to be "
             "created." ), 
          EmbeddedInstance ( "CIM_VirtualSystemSettingData" )]
      string SystemSettings, 
         [Description ( 
             "Array of strings each containing an embedded "
             "instance of class "
             "CIM_ResourceAllocationSettingData that describes "
             "the virtual aspects of a virtual resource to be "
             "created in the scope of the new virtual system." ), 
          EmbeddedInstance ( "CIM_ResourceAllocationSettingData" ), 
          ArrayType ( "Indexed" )]
      string ResourceSettings[], 
         [Description ( 
             "Reference to an instance of class "
             "CIM_VirtualSystemSettingData object that is the "
             "top level object of a reference virtual system "
             "configuration. The reference configuration is used "
             "to complement the configuration of the new virtual "
             "system if parameters SystemSettings and "
             "ResourceSettings did not provide respective "
             "information." )]
      CIM_VirtualSystemSettingData REF ReferenceConfiguration, 
         [In ( false ), Out, Description ( 
             "If a virtual computer system is successfully "
             "defined, a reference to an instance of class "
             "CIM_ComputerSystem that represents the newly "
             "defined virtual computer system is returned." )]
      CIM_ComputerSystem REF ResultingSystem, 
         [In ( false ), Out, Description ( 
             "If the operation is long running, then optionally "
             "a job may be returned. In this case, the instance "
             "of class CIM_ComputerSystem representing the new "
             "virtual systemis presented via association "
             "CIM_AffectedJobElementwith property "
             "AffectedElement refering to the new instance of "
             "class CIM_ComputerSystem and property "
             "ElementEffects set to 5 (Create)." )]
      CIM_ConcreteJob REF Job);

      [Description ( 
          "Destroys a virtual system.\n"
          "The 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." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "..", "4096", 
          "4097..32767", "32768..65535" }, 
       Values { "Completed with No Error", "Not Supported", 
          "Failed", "Timeout", "Invalid Parameter", "Invalid State", 
          "DMTF Reserved", 
          "Method Parameters Checked - Job Started", 
          "Method Reserved", "Vendor Specific" }]
   uint32 DestroySystem(
         [Description ( 
             "Reference to an instance of class "
             "CIM_ComputerSystem representing the virtual "
             "computer system that it to be destroyed." )]
      CIM_ComputerSystem REF AffectedSystem, 
         [In ( false ), Out, Description ( 
             "If the operation is long running, then optionally "
             "a job may be returned." )]
      CIM_ConcreteJob REF Job);

      [Description ( 
          "Modifies virtual resource settings.\n"
          "When applied to parts of a \"current\" virtual system "
          "configuration, as a side effect resources of the active "
          "virtual system may be modified." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "4096", 
          "4097..32767", "32768..65535" }, 
       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" }]
   uint32 ModifyResourceSettings(
         [Description ( 
             "Array of strings each containing an embedded "
             "instance of class "
             "CIM_ResourceAllocationSettingData that describes "
             "modifications to the virtual aspects of an "
             "existing virtual resource. All instances must have "
             "a valid InstanceID in order to identify the "
             "virtual resource setting to be modified." ), 
          EmbeddedInstance ( "CIM_ResourceAllocationSettingData" ), 
          ArrayType ( "Indexed" )]
      string ResourceSettings[], 
         [In ( false ), Out, Description ( 
             "Array of references to instances of class "
             "Cim_ResourceAllocationSettingData representing "
             "virtual aspects of the modified virtual resources." ), 
          ArrayType ( "Indexed" )]
      CIM_ResourceAllocationSettingData REF ResultingResourceSettings[], 
         [In ( false ), Out, Description ( 
             "If the operation is long running, then optionally "
             "a job be returned. In this case, the instances of "
             "class CIM_ResourceAllocationSettingData "
             "representing the modified resource settings are "
             "available via association CIM_ConreteComponent "
             "from the instance of class "
             "CIM_VirtualSystemSettingData representing the "
             "affected virtual system configuration." )]
      CIM_ConcreteJob REF Job);

      [Description ( 
          "Modifies virtual system settings.\n"
          "When applied to the system settings of a \"current\" "
          "virtual system configuration, as a side effect the "
          "virtual system instance may be modified." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "4096", 
          "4097..32767", "32768..65535" }, 
       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" }]
   uint32 ModifySystemSettings(
         [Description ( 
             "String containing an instance of class "
             "CIM_VirtualSystemSettingData that is used to "
             "modify the settings of the virtual system. The "
             "instance must have a valid InstanceID in order to "
             "identify the virtual system setting to be "
             "modified." ), 
          EmbeddedInstance ( "CIM_VirtualSystemSettingData" )]
      string SystemSettings, 
         [In ( false ), Out, Description ( 
             "If the operation is long running, then optionally "
             "a job may be returned." )]
      CIM_ConcreteJob REF Job);

      [Description ( 
          "Removes virtual resource settings from a virtual system configuration.\n"
          "When applied to parts of a \"current\" virtual system "
          "configuration, as a side effect resources of the active "
          "virtual system may be removed." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "..", "4096", 
          "4097..32767", "32768..65535" }, 
       Values { "Completed with No Error", "Not Supported", 
          "Failed", "Timeout", "Invalid Parameter", "Invalid State", 
          "DMTF Reserved", 
          "Method Parameters Checked - Job Started", 
          "Method Reserved", "Vendor Specific" }]
   uint32 RemoveResourceSettings(
         [Description ( 
             "Array of references to instances of class "
             "CIM_ResourceAllocationSettingData where each "
             "instance represents the settings of a virtual "
             "resource within a virtual system configuration "
             "that are to be removed." )]
      CIM_ResourceAllocationSettingData REF ResourceSettings[], 
         [In ( false ), Out, Description ( 
             "If the operation is long running, then optionally "
             "a job my be returned." )]
      CIM_ConcreteJob REF Job);

};
