Pegasus Status and work on Qualifiers

13 Feb 2002, Original, KS

17 Feb 2002, V 0.2, KS

19 Feb 2002 V 0.3 KS – Extended the definition of work for Pegasus

29 March Status updated

This table defines the qualifiers that are valid for CIM effective with the CIM Specification 2.2.1 (specification 2.2, errata, and addendum 2.2.1). It does not yet cover extensions for CIM specification 2.3. That will be added. We have attempted to define the qualifier and its characteristics from the existing documentation and then to define the state of usage of the qualifier in Pegasus and any work needed for Pegasus 2.0. This document does not yet define the changes at module level but the majority of the extensions are expected to be between the CIM Operations processors (request dispatcher and response module) and the compiler. The remaning question is what special support must we supply for management, manipulation, validation of qualifiers for providers.

Qualifier | Default | Source | QualType | Applies To | Type | Meaning | Status Pegasus | Work
Association |  | Spec 22 | Meta |  | Boolean | The object class is defining an association. | Done |
Indication |  | Spec 22 | Meta |  | Boolean | The object class is defining an indication. | Done | We have to add validations to the create functions.
Abstract | False | Spec 22 | Standard | Class, Association, Indication | Boolean | Indicates that the class is abstract and serves only as a base for new classes. It is not possible to create instances of such classes. | ??? | Possible extra validation for valid use of this type. Disallow instance creation of abstract types
Aggregate | False | Spec 22 | Standard | Reference | Boolean | Defines the "parent" component of an Aggregation association. Usage Rule: The Aggregation and Aggregate qualifiers are used together – Aggregation qualifying the association, and Aggregate specifying the "parent" reference. | ignored | Resolution – See aggregation qualifier.
Aggregation | False | Spec 22 | Standard | Association | Boolean | Indicates that the association is an aggregation. | ignored | resolution – Should we check if other side has aggregation qualifier. YES
Alias | Null | Spec 22 | Standard | Property, Reference, method | String | Establishes an alternate name for a property or method in the schema. | Possible to be dropped. | We will ignore this qualifier based on the proposal that it be deprecated.
Arraytype | “bag” | Spec 22 | Standard | Property, parameter | String | Indicates the type of the qualified array. Valid values are "Bag", "Indexed" and "Ordered". Usage rule: The ArrayType qualifier should only be applied to properties and method parameters that are arrays (defined using the square bracket syntax specified in Appendix A). | ignored | Resolution – Add test - Should only apply to property that is an array?? Check to see if really ordered or indexed if this type set. Need to put in a check for unordered insertions COMMENT: Why no sets
Bitmap | NULL | Spec 22 | Standard | Property, method, parameter | String Array | Indicates which bit positions are significant in a bit map. The position of a specific value in the BitMap array defines an index that is used in selecting a string literal from the BitValues array. | Installed correctly but no validation against bitvalues | Resolution – Test for existence of bitvalues qualifier.
Bitvalues | NULL | Spec 22 | Standard | Property, method, parameter | String Array | Provides translation between a bit position value and an associated string. See the description for the BitMap qualifier. | See Bitmap | See Bitmap
Counter | FALSE | Spec 22 | Standard | Property, method, parameter | Boolean | Applicable only to unsigned integer types. Represents a non-negative integer which monotonically increases until it reaches a maximum value of 2^n-1, when it wraps around and starts increasing again from zero. N can be 8, 16, 32 or 64 depending on the datatype of the object to which the qualifier is applied. Counters have no defined "initial" value, and thus, a single value of a Counter has (in general) no information content | Ignored | Resolution- confirm it applies only to unsigned integers
Deprecated | Null |  |  | Class, association, property | String array | Indicates that the feature to which the qualifier is attached is tolerated byt not recommended and may be superceded by another. Existing instrumentation should continue to support deprecated features. The qualifier serves only as an indication that the feature should not be used in new development | Nothing | No action required.
Description | Null | Spec 22 | Standard | Any | String | Provides a description of a Named Element. | Done | No Action Required
Displayname | Null | Spec 22 | Standard | Any | String | Defines a name that will be displayed on UI instead of the actual name of the element. | Nothing Special | No action required
DN | False | Add 221 | Standard | Property, Parameter | Boolean | When applied to a string property or method, the DN qualifier specifies that the string must be a distinguished name as defined in section 9 of X.501. | ignored | Resolution: Do we need this qualifier in version 2. If so, need to validate test. Proposal – V 2.1
EmbeddedObject | False | Add221 | Standard | Property, Parameter | Boolean | This qualifier can only be used in conjunction with string properties and method parameters. In indiates that the qualified entity contains an encoding of an instance’s data. At this time the DMTF defines twoo possible encodings – character striing encoded in MOF (INSTANCE OF abc {…}: or an XML representation (<INSTANCECLASSNAME=”abc”>…</INSTANCE>). It is desirable that the encoding of the embedded object data match the encoding of the instance/indication that contains this property or method parameter. This allows the same parsing engine that decodes the instance/indication envelope to decode the EmbeddedObject string. (However, encodings are defined by an implementation and are not the subject of this document). Please see Appendis H for examples and furher explanation. | Must handle through indications. State unknown today | Work unknown If we agree to MOF, we will have to embed the MOF compiler in the client, etc. Proposal: We go only XML in version 2. We need to add validation to assure that the object is XML. NOTE: This qualifier not needed in V2 Pegasus. The above is for 2.1 and after
Expensive | False | Add 221. Moved from Optional | Standard | Property, Reference, Class, Association, Method | Boolean | Indicates the property or class is expensive to compute. | Nothing to do | Nothing planned for version 2
Gauge | False | Spec 22 and erratta22 | Standard | Property, method, parameter | Boolean | .Applicable only to integer types. Represents an integer which may increase or decrease in any order or magnitude. The value of a Gauge is capped at the implied limits of the effected property’s datatype. If and while the information being modeled exceeds an implied limit, the value represented will instead be that limit; values do not wrap. For unsigned integers, the limits are zero (0) to 2^n-1, inclusive. For signed integers, the limits are –(2^(n-1)) to 2^(n-1)-1, inclusive. N can be 8, 16, 32, or 64 depending on the datatype of the property to which the qualifier is applied. | Ignored today | Resolution – Check for integer type
In | True | Spec 22 | Standard | Parameter | Boolean | Indicates that the associated parameter is used to pass values to a method. | Ignored today by CIMOM | Question if provider or CIMOM should enforce? CIMOM only checks this this against required. Need to confirm not inputting any output parameters.
Key | False | Spec 22 and erratta | Standard | Property, Reference | Boolean | Reference Indicates that the property is part of the namespace handle (see Section 5.3.1.2 for information about namespace handles). If more than one property has the KEY qualifier, then all such properties collectively form the key (a compound key). Usage Rule: Keys are written once at object instantiation and must not be modified thereafter. It does not make sense to apply a default value to a KEY-qualified property. Properties which are of an array type must not be qualified with KEY. | OK | Modification – refuse modifications to key properties This test exists in instance repository today. Do we need any expansion of convenciene functions to protect.
MappingStrings | Null | Spec 22 | Standard | Class, property, association, indication, reference | String Array | Mapping strings for one or more management data providers or agents. See Section 2.5.5 and 2.5.6 for more details. |  | Resolution – Should we check values? Answer Yes. Question: Do we need this in V2?
Max | Null | Spec 22 | Standard | Reference | INT | Indicates the maximum cardinality of the reference (i.e. the maximum number of values a given reference can have for each set of other reference values in the association). For example, if an association relates A instances to B instances, and there must be at most one A instance for each B instance, then the reference to A should have a Max(1) qualifier. | Ignored by CIMOM today | Should CIMOM Check? Validate: assure that this not applied to numeric types. CIMOM needs to check on
Maxlen | Null | Spec 22 | Standard | Property, Method Parameter | INT | Indicates the maximum length, in characters, of a string data item. When overriding the default value, any unsigned integer value (uint32) can be specified. A value of NULL implies unlimited length. | ? Provider or CIMOM | Same as Max Instance – Should CIMOM check in 1) requests 2) Responses 3)
Maxvalue | Null | Spec 22 | Standard | Property, Method Parameter | INT | Maximum value of this object. | Installed but not used by CIMOM. Not tested by compiler | Resolve – Check for integer type property. Instance – Should CIMOM Verify or provider?
Min | 0 | Spec 22 | Standard | Reference | INT | Indicates the minimum cardinality of the reference (i.e. the minimum number of values a given reference can have for each set of other reference values in the association). For example, if an association relates A instances to B instances, and there must be at least one A instance for each B instance, then the reference to A should have a Min(1) qualifier. | Ignored today | Should the CIMOM Check or the provider?
Minvalue | Null | Spec 22 | Standard | Property, Method Parameter | INT | Minimum value of this object. | Installed but not used by CIMOM. Not tested by compiler | Resolve – Check for integer type property. Instance – Should CIMOM Verify or provider?
Model Correspondence | Null | Spec 22 | Standard | Property | String Array | Indicates a correspondence between an object’s property and other properties in the CIM Schema. Object properties are identified using the following syntax: <schema name> "_" <class or association name> "." <property name> | Ignored | ???
NonLocal | Null | Spec 22 | Standard | Reference | String | Indicates the location of an instance. Its value is <namespacetype>://<namespacehandle> Usage Rule: Cannot be used with the NonLocalType qualifier. | Installed but ignored by CIMOM | Not clear. Needs more explanation Do not support in V2
NonLocalType | Null | Spec 22 | Standard | Reference | String | Indicates the type of location of an instance. Its value is <namespacetype> Usage Rule: Cannot be used with the NonLocal qualifier. |  | See NonLocal Not not support in V2
Nullvalue | Null | Spec 22 | Standard | Property | String | Defines a value the presence of which indicates that the associated property is NULL – that is that the property cannot be considered as having a valid or meaningful value. The conventions and restrictions used for defining null values are the same as those applicable to the ValueMap qualifier. Note this qualifier cannot be overridden as it seems unreasonable to permit a subclass to return a different null value to that of the superclass. | No check today | Needs check by compiler and CIMOM. Also needs clarification. Consider not supporting in V2
OctetString | False | Erratta 22 | Standard? | Property, Parameter | Boolean | This qualifier is used to identify the qualified property or parameter as an octet string. When used in conjunction with an unsigned 8-bit integer (uint8) array, the OCTETSTRING qualifer indicates that the unsigned 8-bit integer array | Unsure. May need testing | Assure that it applies only 8-bit unsigned array.
Out | False | Spec 22 | Standard | Parameter | Boolean | Indicates that the associated parameter is used to return values from a method. | Installed but ignored by CIMOM today | ? Provider or CIMOM See In
Override | Null | Spec 22 | Standard | Property, Method, Reference | String | Indicates that the property, method, or reference in the derived class overrides the similar construct (of the same name) in the parent class in the inheritance tree, or in the specified parent class. The value of this qualifier MAY identify the parent class whose subordinate construct (property, method, or reference) is overridden. The format of the string to accomplish this is: [<class>.]<subordinate construct> If the class name is omitted, the Override applies to the subordinate construct in the parent class in the inheritance tree. Usage Rule: The Override qualifier can only refer to constructs based on the same meta model. Also, it is not allowed to change a construct's name or signature when overriding. | Unsure | Part of general create class validation and processing that we may need to extend. Verify Treated as part of cimclass::resolve.
Propagated | Null | Spec 22 | Standard | Property | String | The propagated qualifier is a stringvalued qualifier that contains the name of the key that is being propagated. Its use assumes the existence of only one weak qualifier on a reference that has the containing class as its target. The associated property must have the same value as the property named by the qualifier in the class on the other side of the weak association. The format of the string to accomplish this is: [<class>.]<subordinate construct> Usage Rule: When the PROPAGATED qualifier is used, the KEY qualifier must be specified with a value of TRUE. | CIMOM | Resolution – Verify reference class exists and has weak. See weak for contra test.
Read | true | Spec 22 | Standard | Property | Boolean | Indicates that the property is readable. | Installed but ignored by CIMOM today | Should CIMOM verify for instances? Test for notreadable on all instance operations.
Required | False | Spec 22 | Standard | Property | Boolean | Indicates that a non-NULL value is required for the property. | Nothing now | Need to check that CIMOM is validating for create instance. Should response handler validate for instance responses?
Revision | Null | Spec 22 | Standard |  | String | Provides the minor revision number of the schema object. Usage Rule: The VERSION qualifier must be present to supply the major version number when the REVISION qualifier is used. | Installed but ignored | Nothing to do Deprecated
Schema | Null | Spec 22 | Standard | Propety method | String | The name of the schema in which the feature is defined. | Needs clarification | Do not understand and do not see any support requirements
Source | Null | Spec 22 | Standard | Class, Association, Indication, Reference | String | Indicates the location of an instance. Its value is <namespacetype>://<namespacehandle> Usage Rule: Cannot be used with the SourceType qualifier. |  | ???
Sourcetype | Null | Spec 22 | Standard | Class, Association, Indication, Reference | String | Indicates the type of location of an instance. Its value is <namespacetype> Usage Rule: Cannot be used with the Source qualifier. |  | ???
Static | False | Spec 22 | Standard | Property, Method | Boolean | For methods indicates that the method is a class method that does not depend on any per-instance data. For properties, indicates that the property is a class variable rather than an instance variable. |  | ? Do we need to do validation? Probably but not sure yet. This may require method provider work.
Terminal | False | Spec 22 | Standard | Class | Boolean | Indicate that the class can have no subclasses. If such a subclass is declared the compiler will generate an error. Note this qualifier cannot coexist with the Abstract qualifier. If both are specified the compiler generates an error. | ??? | Superclass not terminal on create. Abstract not set if terminal set
Units | Null | Spec 22 | Standard | Property, Method, Parameter | String | Provides units in which the associated data item is expressed. For example, a Size data item might have Units ("bytes"). The complete set of standard units is defined in Appendix C. | Nothing Now | Resolve – Check against standard set from spec
Valuemap | Null | Spec 22, Add221 (add .. syntax) | Standard | Property, Method, Parameter | String Array | NOTE: See the addenda for latest description. The following is from V 2.2 spec. Defines the set of permissible values for this property, method return type or method parameter. The ValueMap can be used alone, or in combination with the Values qualifier. When used in combination with the Values qualifier, the location of the value in the ValueMap array provides the location of the corresponding entry in the Values array. ValueMap may only be used with string and integer values. The syntax for representing an integer value in the ValueMap array is: [+|-]digit[*digit] The content, maximum number of digits and represented value are constrained by the type of the associated property. For example, uint8 may not be signed, must be less than four digits, and must represent a value less than 256. |  | Add test for values and value emap validity on input. Cardinality should be the same. Constrain the content to be one of the values
Values | Null | Spec 22 | Standard | Property, Method Parameter | String Array | Provides translation between an integer value and an associated string. If a ValueMap qualifier is not present, the Values array is indexed (zero relative) using the value in the associated property, method return type or method parameter. If a ValueMap qualifier is present, the Values index is defined by the location of the property value in the ValueMap. |  | See value map.
Version | Null | Spec 22 and erratta | Standard | Class, Schema, Association, Indication |  | Provides the major version number of the schema object. This is incremented when changes are made to the schema that alter the interface. | Installed but ignored today | Request to provide option in compiler.
Weak | False | Spec 22 | Standard | Reference | Boolean | Indicates that the keys of the referenced class include the keys of the other participants in the association. This qualifier is used when the identity of the referenced class depends on the identity of the other participants in the association. No more than one reference to any given class can be weak. The other classes in the association must define a key. The keys of the other classes in the association are repeated in the referenced class and tagged with a propagated qualifier. | Boolean | See propagated
Write | False | Spec 22 | Standard | Property | Boolean | Indicates whether write access is allowed for a property by any "consumers" of that property’s data. This qualifier does not address the initial assignment of a property value, nor its maintenance by its "provider". It describes the maximal level of access that is allowed, and does not address whether security and authorization restrictions may actually prevent writing of the data. A value of true indicates that the property is readable and writable by "consumers", given appropriate administrative authorization. A value of false indicates that the property is only readable by "consumers", regardless of authorization. | Boolean | Should test against write requests (set property, create, modify instance). This is a CIMOM task
Delete | False | Spec 22 | Optional | Association, Reference | Boolean | For associations: Indicates that the qualified association must be deleted if any of the objects referenced in the association are deleted, AND the respective object referenced in the association is qualified with IFDELETED. For references: Indicates that the referenced object must be deleted if the association containing the reference is deleted, AND qualified with IFDELETED, or if any of the objects referenced in the association are deleted AND the respective object referenced in the association is qualified with IFDELETED. Usage Rule: Applications must to chase associations according to the modeled semantic and delete objects appropriately. Note: This usage rule must be verified when the CIM security model is defined. |  | Ignore, this is an optional qualifier.
Expensive |  | Spec 22 | Optional |  | Boolean | NOTE: Changed in Erratta. See standard. |  |
IfDeleted | False | Spec 22 | Optional | Association, Reference | Boolean | Indicates that all objects qualified by DELETE within the association must be deleted if the referenced object or the association, respectively, is deleted. |  | See Delete
Invisible | False | Spec 22 | Optional | Association, Property, Method, Reference, Class | Boolean | Indicates that the association is defined only for internal purposes (for example, for definition of dependency semantics) and should not be displayed (for example, in maps). |  | Is there any use case to implement this?
Large | False | Spec 22 | Optional | Property, Class | Boolean | Class Indicates the property or class requires a large amount of storage space. |  | Nothing to do
Provider | Null | Spec 22 | Optional | Any | String | An implementation specific handle to the instrumentation that populates those elements in the schemas which refer to dynamic data. | Used today | Ignore it will not be used after provider registration works
Syntax | Null | Spec 22 | Optional | Property, Referene, Method, Parameter | String | Specific type assigned to a data item. Usage Rule: Must be used with the SyntaxType qualifier. |  | Ignore, this is an optional qualifier.
Syntaxtype | Null | Spec 22 | Optional | Property, Reference, Method, Parameter | String | Defines the format of the SYNTAX qualifier. Usage Rule: Must be used with the SYNTAX qualifier. |  | Ignore, this is an optional qualifier.
Triggertype | Null | Spec 22 | Optional | Class, Property, Method, Association, Indication, Reference | String Array | Indicates the circumstances under which a trigger is fired. Usage Rule: The trigger types vary by meta-model construct. For classes and associations, the legal values are CREATE, DELETE, UPDATE and ACCESS. For properties and references, the legal values are: UPDATE and ACCESS. For methods, the legal values are BEFORE and AFTER. For indications, the legal values are THROWN. |  | Ignore, this is an optional qualifier.
UnknownValues | Null | Spec 22 | Optional | Property | String Array | Defines a set of values the presence of which indicates that the value of the associated property is unknown – that is that the property cannot be considered as having a valid or meaningful value. The onventions and restrictions used for defining unknown values are the same as those applicable to the ValueMap qualifier. Note this qualifier cannot be overridden as it seems unreasonable to permit a subclass to treat as a known value a value that is treated as unknown by some superclass. |  | Ignore, this is an optional qualifier.
UnsupportedValues | Null | Spec 22 | Optional | Property | String Array | Defines a set of values the presence of which indicates that the value of the associated property is unsupported – that is that the property cannot be considered as having a valid or meaningful value. The conventions and restrictions used for defining unsupported values are the same as those applicable to the ValueMap qualifier. Note this qualifier cannot be overridden as it seems unreasonable to permit a subclass to treat as a supported value a value that is treated as unknown by some superclass. |  | Ignore, this is an optional qualifier.
PropertyUsage | CurrentContext | Add 221 | Optional |  |  | NOTE: See the addendum since it will not let me copy the text |  | Ignore, this is an optional qualifier.