// Copyright (c) 2005 DMTF.  All rights reserved.
   [Association, Version ( "2.10.0" ), 
    UMLPackagePath ( "CIM::Device::DeviceElements" ), 
    Description ( 
       "The DeviceSoftware relationship identifies any software that "
       "is associated with a Device such as drivers, configuration, or "
       "application software, or firmware." )]
class CIM_DeviceSoftware : CIM_Dependency {

      [Override ( "Antecedent" ), 
       Description ( "The SoftwareElement." )]
   CIM_SoftwareElement REF Antecedent;

      [Override ( "Dependent" ), 
       Description ( 
          "The LogicalDevice that requires or uses the software." )]
   CIM_LogicalDevice REF Dependent;

      [Description ( 
          "An enumerated integer that indicates the role that this "
          "software plays in regards to its associated Device. For "
          "example, this software could be instrumentation "
          "(value=5) or firmware (value=6)." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8" }, 
       Values { "Unknown", "Other", "Driver", 
          "Configuration Software", "Application Software", 
          "Instrumentation", "Firmware", "BIOS", "Boot ROM" }, 
       MappingStrings { "MIF.DMTF|SubComponent Software|001.2" }, 
       ModelCorrespondence { "CIM_DeviceSoftware.PurposeDescription" }]
   uint16 Purpose;

      [Description ( 
          "A free-form string that provides more information for "
          "the Purpose property, for example, \"Application "
          "Software\"." ), 
       ModelCorrespondence { "CIM_DeviceSoftware.Purpose" }]
   string PurposeDescription;

      [Description ( 
          "Boolean that indicates that the software is \'burned "
          "into\' or otherwise located on the hardware of the "
          "LogicalDevice." )]
   boolean LoadedOnDevice;

      [Description ( 
          "Boolean that indicates whether the software is "
          "upgradeable, when it is LoadedOnDevice. Software that is "
          "loaded as part of the OperatingSystem is typically "
          "changeable and upgradeable. However, when DeviceSoftware "
          "is burned into EEPROM or a chip that realizes the "
          "LogicalDevice, then it might not be upgradeable. This "
          "property indicates the ability to update and upgrade "
          "DeviceSoftware." )]
   boolean UpgradeableOnDevice;


};
