// Copyright (c) 2008 DMTF.  All rights reserved.
   [Version ( "2.19.0" ), 
    UMLPackagePath ( "CIM::Metrics::UnitOfWork" ), 
    Description ( 
       "TraceLevelType defines the encoding and semantics of trace "
       "levels. A trace is data that is produced during the execution "
       "of program code in order to provide information on the "
       "behaviour of the code (e.g. textual data written to files). "
       "Traces may be used for error detection/analysis or debugging. "
       "Trace levels define the granularity and/or type of the traces "
       "that are to be produced by the program code. Depending on the "
       "program implementation, levels may be applied on the fly. The "
       "possible levels are also implementation dependent, since no "
       "general rules or standards exist. In consequence, program "
       "developers could reuse their existing trace level scheme. \n"
       "Traces are valuable information sources for management "
       "applications in cases of error detection/analysis. In order to "
       "correctly set trace levels to the level needed (exciting "
       "exhaustive tracing by accident may result in significant "
       "system resources consumption in terms of processing time and "
       "storage) and to efficiently interpret which level of detail to "
       "expect from traces already produced by some resource, the "
       "possible trace level values and their meaning (semantics) must "
       "be known by the user and/or the management application. The "
       "type does not define the location or access method of the "
       "traces, since traces of a particular type can have multiple "
       "locations as well as multiple access methods." )]
class CIM_TraceLevelType : 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"
          ": \n"
          "Where and are separated by a colon \':\', and where 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 MUST NOT contain a colon "
          "(\':\'). When using this algorithm, the first colon to "
          "appear in InstanceID MUST appear between and . \n"
          "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 set to \'CIM\'." ), 
       MaxLen ( 16 ), 
       ModelCorrespondence { 
          "CIM_UnitOfWorkDefinition.TraceLevelTypeId" }]
   string InstanceID;

      [Description ( 
          "Describes the technical encoding of the trace level. \n"
          "0: bit map = switches to turn on/off appropriate trace "
          "production (e.g. 0x00000010, 0x0000F000); the use of bit "
          "maps implies that the switches can be or-ed bitwise: "
          "Values[1] | Values[2] | ... . \n"
          "1: number = plain numbers that define levels (e.g. 1, 2, "
          "7); the recommended and most common encoding scheme \n"
          "2: any other encoding scheme you could think of (e.g. "
          "mixture of bit maps and numbers)." ), 
       ValueMap { "1", "2", "3" }, 
       Values { "Other", "Bitmap", "Number" }]
   uint16 BaseType;

      [Required, Description ( 
          "Each entry in the array is one possible value of the "
          "trace level of this type. Depending on the base type, "
          "these are either switches defined as bit maps (e.g. "
          "0x00000001, 0x000000F0, ...) or plain numbers (1, 2, 3, "
          "...). In either encoding, the value 0 is reserved for "
          "the equivalent of \'no trace\'." ), 
       ArrayType ( "Indexed" )]
   uint32 TraceValues[];

      [Required, Description ( 
          "The index corresponds to TraceLevelType.TraceValues[]. "
          "The array provides human-readable descriptions of the "
          "semantics of each value entered in the TraceValues "
          "array." ), 
       ArrayType ( "Indexed" )]
   string ValueDescriptions[];


};
