// Copyright (c) 2008 DMTF.  All rights reserved.
   [Version ( "2.19.0" ), 
    UMLPackagePath ( "CIM::Metrics::BaseMetric" ), 
    Description ( 
       "Each CIM_BaseMetricValue object represents the instance value "
       "of a metric. Since the gathering of metric information can "
       "involve large quantities of information there may be many "
       "instances of this class. The use of this class as an "
       "instrumentation source may be inefficient unless the rate of "
       "metrics are known. The length of time a CIM_BaseMetricValue "
       "instance exists after the metric information is captured is "
       "not defined and is implementation dependent. \n"
       "Most metric data values change over time. There are two ways "
       "of mapping this into CIM_BaseMetricValue objects: The value "
       "for the next point in time may use the same object and just "
       "change its properties (such as the value or timestamp), or the "
       "existing objects remain unchanged and a new object is created "
       "for the new point in time. The first method is typically used "
       "for snapshot data and the second method for historical data. "
       "Which method is used, is indicated by the Volatile property." )]
class CIM_BaseMetricValue : 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\'." )]
   string InstanceID;

      [Required, Description ( 
          "The key of the BaseMetricDefinition instance for this "
          "CIM_BaseMetricValue instance value." ), 
       ModelCorrespondence { "CIM_BaseMetricDefinition.Id" }]
   string MetricDefinitionId;

      [Description ( 
          "A descriptive name for the element to which the metric "
          "value belongs (i.e., the measured element). This "
          "property is required by behavior if there is no "
          "association defined to a ManagedElement, but may be used "
          "in other cases to provide supplemental information. This "
          "allows metrics to be captured independently of any "
          "ManagedElement. An example is where a metric value "
          "belongs to a combination of elements, such as the input "
          "and output ports of the traffic in a switch. If there "
          "are multiple ManagedElements associated with the metric "
          "value, then usually there is one that naturally belongs "
          "to the metric value and that one should be used to "
          "create the supplemental information. The property is not "
          "meant to be used as a foreign key to search on the "
          "measured element. Instead, the association to the "
          "ManagedElement should be used." )]
   string MeasuredElementName;

      [Description ( 
          "Identifies the time when the value of a metric instance "
          "is computed. Note that this is different from the time "
          "when the instance is created. For a given "
          "CIM_BaseMetricValue instance, the TimeStamp changes "
          "whenever a new measurement snapshot is taken if Volatile "
          "is true. A managmenet application may establish a time "
          "series of metric data by retrieving the instances of "
          "CIM_BaseMetricValue and sorting them according to their "
          "TimeStamp." ), 
       ModelCorrespondence { "CIM_BaseMetricDefinition.TimeScope", 
          "CIM_BaseMetricValue.Duration" }]
   datetime TimeStamp;

      [Description ( 
          "Property that represents the time duration over which "
          "this metric value is valid. This property should not "
          "exist for timestamps that apply only to a point in time "
          "but should be defined for values that are considered "
          "valid for a certain time period (ex. sampling). If the "
          "\"Duration\" property exists and is nonNull, the "
          "TimeStamp is to be considered the end of the interval." ), 
       ModelCorrespondence { "CIM_BaseMetricDefinition.TimeScope", 
          "CIM_BaseMetricValue.TimeStamp" }]
   datetime Duration;

      [Required, Description ( 
          "The value of the metric represented as a string. Its "
          "original data type is specified in "
          "CIM_BaseMetricDefinition." )]
   string MetricValue;

      [Description ( 
          "If present, specifies one BreakdownDimension from the "
          "BreakdownDimensions array defined in the associated CIM_ "
          "BaseMetricDefinition. This is the dimension along which "
          "this set of metric values is broken down. For a "
          "description of the concept, see the class "
          "CIM_BaseMetricDefinition." )]
   string BreakdownDimension;

      [Description ( 
          "Defines a value of the BreakdownDimension property "
          "defined for this metric value instance. For instance, if "
          "the BreakdownDimension is \"TransactionName\", this "
          "property could name the actual transaction to which this "
          "particular metric value applies." )]
   string BreakdownValue;

      [Description ( 
          "If true, Volatile indicates that the value for the next "
          "point in time may use the same object and just change "
          "its properties (such as the value or timestamp). If "
          "false, the existing objects remain unchanged and a new "
          "object is created for the new point in time." )]
   boolean Volatile;


};
