// Copyright (c) 2008 DMTF.  All rights reserved.
   [Association, Version ( "2.20.0" ), 
    UMLPackagePath ( "CIM::Core::Software" ), 
    Description ( 
       "ElementSoftwareIdentity allows a Managed Element to report its "
       "software related asset information (firmware, drivers, "
       "configuration software, and etc.)" )]
class CIM_ElementSoftwareIdentity : CIM_Dependency {

      [Override ( "Antecedent" ), 
       Description ( "A LogicalElement\'s Software Asset." )]
   CIM_SoftwareIdentity REF Antecedent;

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

      [Description ( 
          "Indicates the element\'s ability to upgrade this "
          "software asset.\n"
          "\'Resides off element\'(2), indicates the persistence of "
          "the software is outside of the element. Typically for a "
          "element this software is part of the OperatingSystem is "
          "typically upgradeable.\n"
          "\'Owner Upgradeable\' (3), indicates the persistence of "
          "the software is on the element and is upgradeable by the owner.\n"
          "\'FactoryUpgradeable\' (4),indicates the persistence of "
          "the software is on the element and is upgradeable by the manufacturer.\n"
          "\'Not Upgradeable\' (5), indicates the presistence of "
          "the software is on the element and is not upgradeable. "
          "(i.e. burned into a non replaceable ROM chip." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "..", 
          "0x8000..0xFFFF" }, 
       Values { "Unknown", "Other", "Resides off device", 
          "Owner Upgradeable", "Factory Upgradeable", 
          "Not Upgradeable", "DMTF Reserved", "Vendor Reserved" }, 
       ModelCorrespondence { 
          "CIM_ElementSoftwareIdentity.OtherUpgradeCondition" }]
   uint16 UpgradeCondition;

      [Description ( 
          "Describes the upgrade condition, when UpgradeCondition "
          "is set to 1 (\"Other\")." ), 
       ModelCorrespondence { 
          "CIM_ElementSoftwareIdentity.UpgradeCondition" }]
   string OtherUpgradeCondition;

      [Description ( 
          "A collection of properties describing the status of the "
          "software on the managed element. Multiple properties "
          "could be set at the same time. For example a "
          "ElementSoftwareStatus could have \"Installed\", "
          "\"Default\", \"Current\" and \"FallBack\" set at the "
          "same time. \n"
          "\"Current\" indicates that the software is currently "
          "running on or for the Managed Element. \n"
          "\"Next\" indicates that the software will run after the "
          "next reset or reboot unless superseded by a software "
          "with a status of \"SingleUse\". \n"
          "\"FallBack\" indicates that the software will be run if "
          "the software which has a status of \"Next\" or "
          "\"SingleUse\" fails to run. \n"
          "\"Default\" indicates the default version of the "
          "software that was originally shipped by the "
          "manufacturer. \n"
          "\"Installed\" indicates that the software is "
          "persistently located and is available for use on the "
          "Managed Element. \n"
          "\"SingleUse\" indicates that the software will run only "
          "after the next reset or reboot but will not run after "
          "the subsequent reset or reboot. \n"
          "\"Available\" indicates that the software is available "
          "for installation on the Managed Element. \n"
          "\"Supports\"indicates that the software will work with "
          "or operate the Managed Element but is or will be "
          "installed on a different Managed Element." ), 
       ValueMap { "0", "2", "3", "4", "5", "6", "7", "8", "9", "..", 
          "32768..65535" }, 
       Values { "Unknown", "Current", "Next", "FallBack", "Default", 
          "Installed", "Single Use", "Available", "Supports", 
          "DMTF Reserved", "Vendor Reserved" }]
   uint16 ElementSoftwareStatus[];


};
