// Copyright (c) 2008 DMTF.  All rights reserved.
   [Abstract, Version ( "2.19.0" ), 
    UMLPackagePath ( "CIM::Core::Capabilities" ), 
    Description ( 
       "Capabilities is an abstract class whose subclasses describe "
       "abilities and/or potential for use. For example, one may "
       "describe the maximum number of VLANs that can be supported on "
       "a system using a subclass of Capabilities. Capabilities are "
       "tied to the elements which they describe using the "
       "ElementCapabilities association. Note that the cardinality of "
       "the ManagedElement reference is Min(1), Max(1). This "
       "cardinality mandates the instantiation of the "
       "ElementCapabilities association for the referenced instance of "
       "Capabilities. ElementCapabilities describes the existence "
       "requirements and context for the referenced instance of "
       "ManagedElement. Specifically, the ManagedElement MUST exist "
       "and provides the context for the Capabilities. Note that "
       "Capabilities do not indicate what IS configured or "
       "operational, but what CAN or CANNOT exist, be defined or be "
       "used. Note that it is possible to describe both supported and "
       "excluded abilities and functions (both capabilities and "
       "limitations) using this class." )]
class CIM_Capabilities : CIM_ManagedElement {

      [Key, Override ( "InstanceID" ), 
       Description ( 
          "Within the scope of the instantiating Namespace, "
          "InstanceID opaquely and uniquely identifies an instance "
          "of this class. In order to ensure uniqueness within the "
          "NameSpace, the value of InstanceID SHOULD be constructed "
          "using the following \'preferred\' algorithm: \n"
          "<OrgID>:<LocalID> \n"
          "Where <OrgID> and <LocalID> are separated by a colon "
          "\':\', and where <OrgID> MUST include a copyrighted, "
          "trademarked or otherwise unique name that is owned by "
          "the business entity creating/defining the InstanceID, or "
          "is a registered ID that is assigned to the business "
          "entity by a recognized global authority (This is similar "
          "to the <Schema Name>_<Class Name> structure of Schema "
          "class names.) In addition, to ensure uniqueness <OrgID> "
          "MUST NOT contain a colon (\':\'). When using this "
          "algorithm, the first colon to appear in InstanceID MUST "
          "appear between <OrgID> and <LocalID>. \n"
          "<LocalID> is chosen by the business entity and SHOULD "
          "not be re-used to identify different underlying "
          "(real-world) elements. If the above \'preferred\' "
          "algorithm is not used, the defining entity MUST assure "
          "that the resultant InstanceID is not re-used across any "
          "InstanceIDs produced by this or other providers for this "
          "instance\'s NameSpace. \n"
          "For DMTF defined instances, the \'preferred\' algorithm "
          "MUST be used with the <OrgID> set to \'CIM\'." )]
   string InstanceID;

      [Required, Override ( "ElementName" ), 
       Description ( 
          "The user friendly name for this instance of "
          "Capabilities. In addition, the user friendly name can be "
          "used as a index property for a search of query. (Note: "
          "Name does not have to be unique within a namespace.)" )]
   string ElementName;


};
