# Class CIM_DiscreteMetricDefinition
extends CIM_BaseMetricDefinition

Specialization of BaseMetricDefinition that represents a discrete metric type. This class is does not have instances. Instead, it is used to define derived classes that override the Values and ValueMap qualifiers of the DiscreteValues array property, in order to define the predefined set of discrete values to be used. The remainder of this description defines the discrete metric concept: Discrete metrics are metrics (as defined in BaseMetricDefinition), that have an additional discrete value, which is from a set of predefined values. In order to contrast this to the general metrics that have a continuous value range, we call those 'analog metrics' in this description. The transformation of analog values into discrete values is defined by analog thresholds that represent the transition boundary from one discrete value to the next. There are independent thresholds for each direction, so that a hysteresis can be defined. There is a mandatory set of instances for each discrete value: Using the concepts of the dynamic metrics model, there is a DiscreteMetricValue instance representing the discrete metric value and a DiscreteMetricDefinition instance representing its according definition (associated through MetricInstance). In addition, there is a similar couple for the analog metric the discrete metric is derived from, consisting of a BaseMetricValue instance and according BaseMetricDefinition instance (again associated via MetricInstance). These two pairs of instances are connected through the DiscreteMetricDefinitionDependency association between the two metric definition classes, defining that the discrete metric definition and all its values are derived from this analog metric definition and all its values. The existence of the DiscreteMetricDefinitionDependency association mandates that there shall be one DiscreteMetricValue instance for each analog BaseMetricValue instance in the mandatory set of instances described above. Furthermore, it mandates that there are DiscreteMetricValueDependency association instances between the discrete and analog value instances. A recipe for creating a discrete metric type on existing analog metric type is to create a DiscreteMetricDefinition instance, and then to connect that to the analog BaseMetricDefinition by means of creating an instance of DiscreteMetricDefinitionDependency. This results in the DiscreteMetricValue and DiscreteMetricValueDependency instances coming into existence. Please note that hysteresis is implicitly defined as the difference between the trigger value and the reset value.

### Table of Contents
Hierarchy
Direct Known Subclasses
Class Qualifiers
Class Properties
Class Methods

## Class Hierarchy

CIM_ManagedElement
|
+--CIM_BaseMetricDefinition
|
+--CIM_DiscreteMetricDefinition

## Direct Known Subclasses

## Class Qualifiers

Name | Data Type | Value
--- | --- | ---
Description | string | Specialization of BaseMetricDefinition that represents a discrete metric type. This class is does not have instances. Instead, it is used to define derived classes that override the Values and ValueMap qualifiers of the DiscreteValues array property, in order to define the predefined set of discrete values to be used. The remainder of this description defines the discrete metric concept: Discrete metrics are metrics (as defined in BaseMetricDefinition), that have an additional discrete value, which is from a set of predefined values. In order to contrast this to the general metrics that have a continuous value range, we call those 'analog metrics' in this description. The transformation of analog values into discrete values is defined by analog thresholds that represent the transition boundary from one discrete value to the next. There are independent thresholds for each direction, so that a hysteresis can be defined. There is a mandatory set of instances for each discrete value: Using the concepts of the dynamic metrics model, there is a DiscreteMetricValue instance representing the discrete metric value and a DiscreteMetricDefinition instance representing its according definition (associated through MetricInstance). In addition, there is a similar couple for the analog metric the discrete metric is derived from, consisting of a BaseMetricValue instance and according BaseMetricDefinition instance (again associated via MetricInstance). These two pairs of instances are connected through the DiscreteMetricDefinitionDependency association between the two metric definition classes, defining that the discrete metric definition and all its values are derived from this analog metric definition and all its values. The existence of the DiscreteMetricDefinitionDependency association mandates that there shall be one DiscreteMetricValue instance for each analog BaseMetricValue instance in the mandatory set of instances described above. Furthermore, it mandates that there are DiscreteMetricValueDependency association instances between the discrete and analog value instances. A recipe for creating a discrete metric type on existing analog metric type is to create a DiscreteMetricDefinition instance, and then to connect that to the analog BaseMetricDefinition by means of creating an instance of DiscreteMetricDefinitionDependency. This results in the DiscreteMetricValue and DiscreteMetricValueDependency instances coming into existence. Please note that hysteresis is implicitly defined as the difference between the trigger value and the reset value.
Experimental | boolean | true
UMLPackagePath | string | CIM::Metrics::BaseMetric
Version | string | 2.13.0

## Class Properties

### Local Class Properties

Name | Data Type | Default Value | Qualifiers
--- | --- | --- | ---
Name | Data Type | Value
BaseIndex | uint16 |
Description | string | This property is an index into the DiscreteValues array, and is called the 'base index'. The value of the corresponding array entry is called the 'base value'. The base value is the reference point for the AnalogTriggerValues and AnalogResetValues arrays. Moving away from the base value is controlled by the AnalogTriggerValues array, and moving back towards the base value is controlled by the AnalogResetValues array.
AnalogResetValues | string[] |
Description | string | Array defining the analog values used as thresholds when the discrete value moves towards the base value. These thresholds are called 'reset values'. The array entries are string representations of the analog values and are interpreted as a datatype and unit defined in the Datatype and Unit properties of the associated analog BaseMetricDefinition instance. If this property is not NULL, the number of array entries shall be one less than the entries in the DiscreteValues array. Array entries in this array at indexes abover or equal to the base index control the transition to lower indexes in the DiscreteValues array. Array entries in this array at indexes below the base index control the transition to higher indexes in the DiscreteValues array. If this property is NULL, reset values may still be in effect but are not externalized at the CIM level.
AnalogTriggerValues | string[] |
Description | string | Array defining the analog values used as thresholds when the discrete value moves away from the base value. These thresholds are called 'trigger values'. The array entries are string representations of the analog values and are interpreted as a datatype and unit defined in the Datatype and Unit properties of the associated analog BaseMetricDefinition instance. If this property is not NULL, the number of array entries shall be one less than the entries in the DiscreteValues array. Array entries in this array at indexes above or equal to the base index control the transition to higher indexes in the DiscreteValues array. Array entries in this array at indexes below the base index control the transition to lower indexes in the DiscreteValues array. If this property is NULL, trigger values may still be in effect but are not externalized at the CIM level.
DiscreteValues | uint16[] |
Description | string | Array defining the mapping between analog and discrete values. Each array entry is the discrete value assigned to a range on the analog scale. Adjacent array entries represent adjacent ranges on the analog scale. The boundaries of the analog ranges are defined in the AnalogTriggerValues and AnalogResetValues array properties. The possible discrete values are defined using the Values and ValueMap qualifiers. Any derived class of this class shall define the set of possible discrete values in overridden Values and ValueMap qualifiers. The Values qualifiers are string representations of the discrete values and are interpreted as a datatype and unit defined in the Datatype and Unit properties of this instance. An according derived class of DiscreteMetricValue shall define the same set of possible discrete values in overridden qualifiers of its DiscreteValue property.
ModelCorrespondence | string | CIM_DiscreteMetricValue.DiscreteValue
Required | boolean | true
ValueMap | string | .., 0x8000..0xFFFF
Values | string | DMTF Reserved, Vendor Reserved

### Inherited Properties

Name | Data Type | Class Origin
--- | --- | ---
Accuracy | uint32 | CIM_BaseMetricDefinition
AccuracyUnits | string | CIM_BaseMetricDefinition
Calculable | uint16 | CIM_BaseMetricDefinition
Caption | string | CIM_ManagedElement
ChangeType | uint16 | CIM_BaseMetricDefinition
DataType | uint16 | CIM_BaseMetricDefinition
Description | string | CIM_ManagedElement
ElementName | string | CIM_ManagedElement
GatheringType | uint16 | CIM_BaseMetricDefinition
Generation | uint64 | CIM_ManagedElement
Id | string | CIM_BaseMetricDefinition
InstanceID | string | CIM_ManagedElement
IsContinuous | boolean | CIM_BaseMetricDefinition
MetricID | string | CIM_BaseMetricDefinition
Name | string | CIM_BaseMetricDefinition
ProgrammaticUnits | string | CIM_BaseMetricDefinition
SampleInterval | datetime | CIM_BaseMetricDefinition
TimeScope | uint16 | CIM_BaseMetricDefinition
Units | string | CIM_BaseMetricDefinition
BreakdownDimensions | string[] | CIM_BaseMetricDefinition

## Class Methods