[Cache from http://www.dmtf.org/standards/documents/WBEM/DSP0200.zip; see this original/canonical source if possible.]
Specification
for CIM
DMTF is a not-for-profit association of industry members
dedicated to promoting enterprise and systems management and interoperability.
Members and non-members may reproduce DMTF specifications and documents
for uses consistent with this purpose, provided that correct attribution
is given. As DMTF specifications may be revised from time to time,
the particular version and release date should always be noted.
Implementation of certain elements of this standard or
proposed standard may be subject to third party patent rights, including
provisional patent rights (herein "patent rights"). DMTF makes no representations
to users of the standard as to the existence of such rights, and is not
responsible to recognize, disclose, or identify any or all such third party
patent right, owners or claimants, nor for any incomplete or inaccurate
identification or disclosure of such rights, owners or claimants. DMTF
shall have no liability to any party, in any manner or circumstance, under
any legal theory whatsoever, for failure to recognize, disclose, or identify
any such third party patent rights, or for such party’s reliance on the
standard or incorporation thereof in its product, protocols or testing
procedures. DMTF shall have no liability to any party implementing such
standard, whether such implementation is foreseeable or not, nor to any
patent owner or claimant, and shall have no liability or responsibility
for costs or losses incurred if a standard is withdrawn or modified after
publication, and shall be indemnified and held harmless by any party implementing
the standard from any and all claims of infringement by a patent owner
for such implementations.
For information about patents held by third-parties
which have notified the DMTF that, in their opinion, such patent may relate
to or impact implementations of DMTF standards, visit http://www.dmtf.org/about/policies/disclosures.php.
The Hypertext Transfer Protocol (HTTP) [6,7,10] is an application-level protocol for distributed, collaborative, hypermedia information systems. It is a generic stateless protocol which can be used for many tasks through extension of its request methods, error codes and headers.
The Extensible Markup Language (XML) [3] is a simplified subset of SGML that offers powerful and extensible data modeling capabilities. An XML Document is a collection of data represented in XML. An XML Schema is a grammar that describes the structure of an XML Document.
This document defines a mapping of CIM Messages onto HTTP that allows implementations of CIM to interoperate in an open, standardized manner. It utilizes the CIM XML DTD [2,11] that defines the XML Schema for CIM objects and messages.
The remainder of this document is structured as follows.
The following criteria have been applied to the representation of CIM messages in XML [2,11]:
This specification uses the same notational conventions and basic parsing constructs as defined in [7].
Examples are displayed in this fashion:
| This is an example |
Definitions are illustrated thusly:
| This is a definition |
A CIM Message is a well-defined request or
response data packet used to exchange information between CIM products.
There are currently two types of CIM Messages: CIM Operation
Messages and CIM Export Messages.
XML is used as the basis for this description, and in particular the CIM XML DTD [2,11].
XML DTDs are restricted to these terms to describe XML documents, but this document requires a further classification of an XML document with respect to a DTD. Henceforth the term loosely valid is defined to apply to an XML Document with the following characteristics:
The motivation for introducing this class of XML Documents is to relax the restrictions on a CIM Client, CIM Server or CIM Listener when parsing received XML documents defined within the scope of this mapping. It is recognized that not all Clients (respectively, CIM Servers or CIM Listeners) should be required to validate each received CIM Message Response (respectively, CIM Message Request) as this would place too great a processing burden on the validating entity at the expense of footprint and performance, most notably in communication between robust and conformant implementations of this mapping.
Instead the following requirements are made by this specification:
Any CIM Message conforming to this specification MUST specify a value of "1.0" or "1.1" for the PROTOCOLVERSION attribute of the <MESSAGE> element.
An Operation Response Message sent in response to an Operation Request Message MUST:
A Multiple Operation Request is an Operation Request Message that contains a <MULTIREQ> subelement. A Multiple Operation Response is an Operation Response Message that contains a <MULTIRSP> subelement.
An Export Response Message sent in response to an Export Request Message MUST:
A Multiple Export Request is an Export Request Message that contains
a <MULTIEXPREQ> subelement. A Multiple Export Response is an Export
Response Message that contains a <MULTIEXPRSP> subelement.
An extrinsic method call is represented in XML by the <METHODCALL> element, and the response to that call represented by the <METHODRESPONSE> element.
An intrinsic method call is represented in XML by the <IMETHODCALL> element, and the response to that call represented by the <IMETHODRESPONSE> element.
An Input parameter is one with an IN Qualifier (with value true) in the Method definition. An Output parameter is one with an OUT Qualifier (with value true) in the Method definition. A parameter may be both an Input and Output parameter.
The <METHODCALL> or <IMETHODCALL> element serves to name the method to be invoked and supply any Input parameters to the method call. Note that:
If the method is intrinsic then the <SIMPLEREQ> MUST contain a <IMETHODCALL> element, which in turn contains a <LOCALNAMESPACEPATH> subelement identifying the local CIM Namespace against which the method is to be executed. If the method is extrinsic then the <SIMPLEREQ> element MUST contain a <METHODCALL> element which in turn contains either:
A <MULTIREQ> (respectively, <MULTIRSP>) element is a sequence of two or more <SIMPLEREQ> (respectively, <SIMPLERSP>) elements.
A <MULTIRSP> element MUST contain a <SIMPLERSP> element for every <SIMPLEREQ> element in the corresponding Multiple Operation Response, and these <SIMPLERSP> elements MUST be in the same order as their <SIMPLEREQ> counterparts (so the first <SIMPLERSP> in the response corresponds to the first <SIMPLEREQ> in the request, and so forth).
Multiple Operations provide a convenient mechanism whereby multiple method invocations may be batched into a single HTTP Message, thereby reducing the number of roundtrips between a CIM Client and a CIM Server and allowing the CIM Server to make certain internal optimizations should it choose so to do. Note that Multiple Operations do not confer any transactional capabilities in the processing of the request (for example, there is no requirement that the CIM Server guarantee that the constituent method calls either all failed or all succeeded, only that the entity make a "best effort" to process the operation). However, servers MUST process each operation in a batched operation to completion before executing the next operation in the batch. Clients MUST recognize that the order of operations within a batched operation is significant in the manner described in the last sentence.
Not all CIM Servers support Multiple Operations; the means by which they declare support for this feature is defined in the section on Determining CIM Server Capabilities.
The symbolic names defined in the table below do not appear on the wire. They are used here solely as a convenient way to refer to an error in other parts of this specification.
Not all methods would be expected to return all the status codes listed
below. For intrinsic methods, the relevant section
on each method in this specification defines the expected error codes to
be returned. For extrinsic methods the specification of which of
the following codes can be used is described in the section on
Extrinsic
Method Invocation .
The following intrinsic methods are defined by this specification:
This notation admits of the decoration of parameters with a number of pseudo-qualifiers (IN, OPTIONAL and NULL) to define their invocation semantics. It is important to understand that these qualifiers are used for description purposes only within the scope of this specification, and in particular a CIM Client MUST NOT specify them in intrinsic method invocations.
This notation uses the IN qualifier to denote that the parameter is an input parameter.
A CIM Client MAY omit an optional parameter in the case that the required value is the specified default, by not specifying an <IPARAMVALUE> element for that parameter. It MUST NOT omit any parameter that is not marked as optional. A CIM Server MAY omit support for an optional parameter. Any attempt to call a method with an optional parameter that is not supported SHOULD return CIM_ERR_NOT_SUPPORTED, but MAY return CIM_ERR_INVALID_PARAMETER.
This notation uses the NULL qualifier to indicate parameters whose values may be specified as NULL in a method call. A NULL (unassigned) value for a parameter is specified by an <IPARAMVALUE> element with no subelement. For parameters which do not possess the NULL qualifier, the CIM Client MUST specify a value for the parameter by including a suitable subelement for the <IPARAMVALUE> element for that parameter.
All parameters MUST be named uniquely, and MUST correspond to a valid parameter name for that method as described by this specification. The order of the parameters is not significant.
The non-NULL values of intrinsic method parameters or return values which are modeled as standard CIM types (such as string and boolean, or arrays thereof) are represented as follows:
| GetClass |
| <class>GetClass (
[IN] <className> ClassName, [IN,OPTIONAL] boolean LocalOnly = true, [IN,OPTIONAL] boolean IncludeQualifiers = true, [IN,OPTIONAL] boolean IncludeClassOrigin = false, [IN,OPTIONAL,NULL] string PropertyList [] = NULL ) |
The ClassName input parameter defines the name of the Class to be retrieved.
If the LocalOnly input parameter is true, this specifies that only CIM Elements (properties, methods and qualifiers) defined or overridden within the definition of the Class (as specified in the classname input parameter) are returned. If false, all elements are returned.
If the IncludeQualifiers input parameter is true, this specifies that all Qualifiers for that Class (including Qualifiers on the Class and on any returned Properties, Methods or Method Parameters) MUST be included as <QUALIFIER> elements in the response. If false no <QUALIFIER> elements are present in the returned Class.
If the IncludeClassOrigin input parameter is true, this specifies that the CLASSORIGIN attribute MUST be present on all appropriate elements in the returned Class. If false, no CLASSORIGIN attributes are present in the returned Class.
If the PropertyList input parameter is not NULL, the members of the array define one or more Property names. The returned Class MUST NOT include elements for any Properties missing from this list. Note that if LocalOnly is specified as true this acts as an additional filter on the set of Properties returned (for example, if Property A is included in the PropertyList but LocalOnly is set to true and A is not local to the requested Class, then it will not be included in the response). If the PropertyList input parameter is an empty array this signifies that no Properties are included in the response. If the PropertyList input parameter is NULL this specifies that all Properties (subject to the conditions expressed by the other parameters) are included in the response.
If the PropertyList contains duplicate elements, the Server MUST ignore the duplicates but otherwise process the request normally. If the PropertyList contains elements which are invalid Property names for the target Class, the Server MUST ignore such entries but otherwise process the request normally.
If successful, the return value is a single CIM Class.
If unsuccessful, one of the following status codes MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional method-specific interpretation of the error in is given in parentheses.
| GetInstance |
| <instance>GetInstance
(
[IN] <instanceName> InstanceName, [IN,OPTIONAL] boolean LocalOnly = true, [IN,OPTIONAL] boolean IncludeQualifiers = false, [IN,OPTIONAL] boolean IncludeClassOrigin = false, [IN,OPTIONAL,NULL] string PropertyList [] = NULL ) |
The InstanceName input parameter defines the name of the Instance to be retrieved.
If the LocalOnly input parameter is true, this specifies that only CIM Elements (properties, methods and qualifiers) defined or overridden within the definition of the Class (as specified in the classname input parameter) are returned. If false, all elements are returned. When instances are returned, the InstanceName must include all keys, including propagated keys. So these attributes are included in the “name” part of the method response, but not always in the “value” information.
If the IncludeQualifiers input parameter is true, this specifies that all Qualifiers for that Instance (including Qualifiers on the Instance and on any returned Properties) MUST be included as <QUALIFIER> elements in the response. If false no <QUALIFIER> elements are present in the returned Instance.
If the IncludeClassOrigin input parameter is true, this specifies that the CLASSORIGIN attribute MUST be present on all appropriate elements in the returned Instance. If false, no CLASSORIGIN attributes are present in the returned Instance.
If the PropertyList input parameter is not NULL, the members of the array define one or more Property names. The returned Instance MUST NOT include elements for any Properties missing from this list. Note that if LocalOnly is specified as true this acts as an additional filter on the set of Properties returned (for example, if Property A is included in the PropertyList but LocalOnly is set to true and A is not local to the requested Instance, then it will not be included in the response). If the PropertyList input parameter is an empty array this signifies that no Properties are included in the response. If the PropertyList input parameter is NULL this specifies that all Properties (subject to the conditions expressed by the other parameters) are included in the response.
If the PropertyList contains duplicate elements, the Server MUST ignore the duplicates but otherwise process the request normally. If the PropertyList contains elements which are invalid Property names for the target Instance, the Server MUST ignore such entries but otherwise process the request normally.
If successful, the return value is a single CIM Instance.
If unsuccessful, one of the following status codes MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional method-specific interpretation of the error in is given in parentheses.
| DeleteClass |
| void DeleteClass (
[IN] <className> ClassName ) |
The ClassName input parameter defines the name of the Class to be deleted.
If successful, the specified Class (including any subclasses and any instances) MUST have been removed by the CIM Server. The operation MUST fail if any one of these objects cannot be deleted.
If unsuccessful, one of the following status codes MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional method-specific interpretation of the error in is given in parentheses.
| DeleteInstance |
| void DeleteInstance (
[IN] <instanceName> InstanceName ) |
The InstanceName input parameter defines the name (model path) of the Instance to be deleted.
The deletion of the Instance may or may not cause the automatic deletion of additional instances.For example, the deletion of an instance may cause the automatic deletion of all associations that reference that instance. Or the deletion of an instance may cause the automatic deletion of instances (and their associations) that have a Min(1) relationship to that instance.
If successful, the specified Instance MUST have been removed by the CIM Server.
If unsuccessful, one of the following status codes MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional method-specific interpretation of the error in is given in parentheses.
| CreateClass |
| void CreateClass (
[IN] <class> NewClass ) |
The NewClass input parameter defines the new Class. The proposed definition MUST be a correct Class definition according to the CIM specification [1].
In processing the creation of the new Class, the following rules MUST be conformed to by the CIM Server:
If unsuccessful, one of the following status codes MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional method-specific interpretation of the error in is given in parentheses.
| CreateInstance |
| <instanceName>CreateInstance
(
[IN] <instance> NewInstance ) |
The NewInstance input parameter defines the new Instance. The proposed definition MUST be a correct Instance definition for the underlying CIM Class according to the CIM specification [1].
In processing the creation of the new Instance, the following rules MUST be conformed to by the CIM Server:
If unsuccessful, one of the following status codes MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional method-specific interpretation of the error in is given in parentheses.
| ModifyClass |
| void ModifyClass (
[IN] <class> ModifiedClass ) |
The ModifiedClass input parameter defines the set of changes (which MUST be correct amendments to the CIM Class as defined by the CIM Specification [1]) to be made to the current class definition.
In processing the modification of the Class, the following rules MUST be conformed to by the CIM Server:
The request to modify the Class MUST fail if the Server cannot update any existing Subclasses or Instances of that Class in a consistent manner.
If unsuccessful, one of the following status codes MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional method-specific interpretation of the error in is given in parentheses.
| ModifyInstance |
| void ModifyInstance (
[IN] <namedInstance> ModifiedInstance, [IN, OPTIONAL] boolean IncludeQualifiers = true, [IN, OPTIONAL, NULL] string propertyList[] = NULL ) |
The ModifiedInstance input parameter identifies the name of the Instance to be modified, and defines the set of changes (which MUST be correct amendments to the Instance as defined by the CIM Specification [1]) to be made to the current Instance definition.
If the IncludeQualifiers input parameter is true, this specifies that the Qualifiers are modified as specified in the ModifiedInstance. If false, Qualifiers in the ModifiedInstance are ignored and no Qualifiers are explicitly modified in the specified Instance.
If the PropertyList input parameter is not NULL, the members of the array define one or more Property names. Only those properties specified in the PropertyList are modified as specified in the ModifiedInstance. Properties of the ModifiedInstance that are missing from the PropertyList are ignored. If the PropertyList input parameter is an empty array this signifies that no Properties are explicitly modified in the specified Instance. If the PropertyList input parameter is NULL this specifies that all Properties are updated in the specified Instance.
If the PropertyList contains duplicate elements, the Server MUST ignore the duplicates but otherwise process the request normally. If the PropertyList contains elements which are invalid Property names for the target Instance, the Server MUST ignore such entries but otherwise process the request normally.
In processing the modification of the Instance, the following rules MUST be conformed to by the CIM Server:
If unsuccessful, one of the following status codes MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional method-specific interpretation of the error in is given in parentheses.
| EnumerateClasses |
| <class>*EnumerateClasses
(
[IN,OPTIONAL,NULL] <className> ClassName=NULL, [IN,OPTIONAL] boolean DeepInheritance = false, [IN,OPTIONAL] boolean LocalOnly = true, [IN,OPTIONAL] boolean IncludeQualifiers = true, [IN,OPTIONAL] boolean IncludeClassOrigin = false ) |
The ClassName input parameter defines the Class that is the basis for the enumeration.
If the DeepInheritance input parameter is true, this specifies that all subclasses of the specified Class should be returned (if the ClassName input parameter is absent, this implies that all Classes in the target Namespace should be returned). If false, only immediate child subclasses are returned (if the ClassName input parameter is NULL, this implies that all base Classes in the target Namespace should be returned). This definition of DeepInheritance applies only to the EnumerateClasses and EnumerateClassName operations.
If the LocalOnly input parameter is true, this specifies that only CIM Elements (properties, methods and qualifiers) defined or overridden within the definition of the Class (as specified in the classname input parameter) are returned. If false, all elements are returned.
If the IncludeQualifiers input parameter is true, this specifies that all Qualifiers for each Class (including Qualifiers on the Class and on any returned Properties, Methods or Method Parameters) MUST be included as <QUALIFIER> elements in the response. If false no <QUALIFIER> elements are present in each returned Class.
If the IncludeClassOrigin input parameter is true, this specifies that the CLASSORIGIN attribute MUST be present on all appropriate elements in each returned Class. If false, no CLASSORIGIN attributes are present in each returned Class.
If successful, the method returns zero or more Classes that meet the required criteria.
If unsuccessful, one of the following status codes MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional method-specific interpretation of the error in is given in parentheses.
| EnumerateClassNames |
| <className>*EnumerateClassNames
(
[IN,OPTIONAL,NULL] <className> ClassName = NULL, [IN,OPTIONAL] boolean DeepInheritance = false ) |
The ClassName input parameter defines the Class that is the basis for the enumeration.
If the DeepInheritance input parameter istrue, this specifies that the names of all subclasses of the specified Class should be returned (if theClassName input parameter is absent, this implies that the names of all Classes in the target Namespace should be returned). If false, only the names of immediate child subclasses are returned (if theClassName input parameter is NULL, this implies that the names of all base Classes in the target Namespace should be returned). This definition of DeepInheritance applies only to the EnumerateClasses and EnumerateClassName operations.
If successful, the method returns zero or more names of Classes that meet the requested criteria.
If unsuccessful, one of the following status codes MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional method-specific interpretation of the error in is given in parentheses.
| EnumerateInstances |
| <namedInstance>*EnumerateInstances
(
[IN] <className> ClassName, [IN,OPTIONAL] boolean LocalOnly = true, [IN,OPTIONAL] boolean DeepInheritance = true, [IN,OPTIONAL] boolean IncludeQualifiers = false, [IN,OPTIONAL] boolean IncludeClassOrigin = false, [IN,OPTIONAL,NULL] string PropertyList [] = NULL ) |
The ClassName input parameter defines the Class that is the basis for the enumeration.
Used in combination, the LocalOnly and DeepInheritance input parameters describe the elements for Properties that are to be included as part of the returned Instances. If the DeepInheritance input parameter is true and the LocalOnly input parameter is false, then the elements for all defined Properties are returned. This includes elements for Properties explicitly defined in the designated class, elements for inherited Properties, and elements for any Properties defined in subclasses of the designated class. If the DeepInheritance input parameter is true and the LocalOnly input parameter is true, then only elements for Properties defined in the designated class or one of the subclasses of the designated class are returned. This does not include elements for inherited Properties, but does include elements for Properties explicitly defined in the designated class or one of the subclasses of the designated class. If the DeepInheritance input parameter is false and the LocalOnly input parameter is true, then only elements for Properties defined in the designated class are returned. This does not include elements for inherited Properties or elements for Properties defined in subclasses of the designated class, but does includes elements for Properties explicitly defined in the designated class. If the DeepInheritance input parameter is false and the LocalOnly input parameter is false, then only elements for Properties defined in the designated class or one the superclasses of the designated class are returned. This includes elements for Properties explicitly defined in the designated class and elements of inherited properties, but does not include elements of properties defined in subclasses of the designated class.
If the IncludeQualifiers input parameter is true, this specifies that all Qualifiers for each Instance (including Qualifiers on the Instance and on any returned Properties) MUST be included as <QUALIFIER> elements in the response. If false no <QUALIFIER> elements are present in each returned Instance.
If the IncludeClassOrigin input parameter is true, this specifies that the CLASSORIGIN attribute MUST be present on all appropriate elements in each returned Instance. If false, no CLASSORIGIN attributes are present in each returned Instance.
If the PropertyList input parameter is not NULL, the members of the array define one or more Property names of the designated class. This may include inherited Property names or Property names explicitly defined in the designated class, but MAY NOT include Property names defined in subclasses of the designated class. Each returned Instance MUST NOT include elements for any Properties missing from this list. Note that the PropertyList parameter acts as an additional filter on the Properties defined by the LocalOnly and DeepInheritance input parameters; if the PropertyList includes a Property that is not in the set defined by the LocalOnly and DeepInheritance combination, the element for the Property MUST NOT be returned. If the PropertyList input parameter is an empty array this signifies that no elements for Properties are included in the returned Instances. If the PropertyList input parameter is NULL, no additional filtering is defined by this parameter.
If the PropertyList contains duplicate elements, the Server MUST ignore the duplicates but otherwise process the request normally. If the PropertyList contains elements which are invalid Property names for any target Instance, the Server MUST ignore such entries but otherwise process the request normally.
If successful, the method returns zero or more named Instances that meet the required criteria.
If unsuccessful, one of the following status codes MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional method-specific interpretation of the error in is given in parentheses.
| EnumerateInstanceNames |
| <instanceName>*EnumerateInstanceNames
(
[IN] <className> ClassName ) |
The ClassName input parameter defines the Class that is the basis for the enumeration.
If successful, the method returns zero or more names of Instances (model paths) that meet the requsted criteria.
If unsuccessful, one of the following status codes MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional method-specific interpretation of the error in is given in parentheses.
| ExecQuery |
| <object>*ExecQuery (
[IN] string QueryLanguage, [IN] string Query ) |
The QueryLanguage input parameter defines the query language in which the Query parameter is expressed.
The Query input parameter defines the query to be executed.
Neither the Query language nor the format of the Query are defined by this specification. It is anticipated that Query languages will be submitted to the DMTF as separate proposals.
A mechanism whereby CIM Servers can declare which query languages they support (if any) is defined in Determining CIM Server Capabilities.
If successful, the method returns zero or more CIM Classes or Instances that correspond to the results set of the query.
If unsuccessful, one of the following status codes MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional method-specific interpretation of the error in is given in parentheses.
| Associators |
| <objectWithPath>*Associators
(
[IN] <objectName> ObjectName, [IN,OPTIONAL,NULL] <className> AssocClass = NULL, [IN,OPTIONAL,NULL] <className> ResultClass = NULL, [IN,OPTIONAL,NULL] string Role = NULL, [IN,OPTIONAL,NULL] string ResultRole = NULL, [IN,OPTIONAL] boolean IncludeQualifiers = false, [IN,OPTIONAL] boolean IncludeClassOrigin = false, [IN,OPTIONAL,NULL] string PropertyList [] = NULL ) |
The ObjectName input parameter defines the source CIM Object whose associated Objects are to be returned. This may be either a Class name or Instance name (model path).
The AssocClass input parameter, if not NULL, MUST be a valid CIM Association Class name. It acts as a filter on the returned set of Objects by mandating that each returned Object MUST be associated to the source Object via an Instance of this Class or one of its subclasses.
The ResultClass input parameter, if not NULL, MUST be a valid CIM Class name. It acts as a filter on the returned set of Objects by mandating that each returned Object MUST be either an Instance of this Class (or one of its subclasses) or be this Class (or one of its subclasses).
The Role input parameter, if not NULL, MUST be a valid Property name. It acts as a filter on the returned set of Objects by mandating that each returned Object MUST be associated to the source Object via an Association in which the source Object plays the specified role (i.e. the name of the Property in the Association Class that refers to the source Object MUST match the value of this parameter).
The ResultRole input parameter, if not NULL, MUST be a valid Property name. It acts as a filter on the returned set of Objects by mandating that each returned Object MUST be associated to the source Object via an Association in which the returned Object plays the specified role (i.e. the name of the Property in the Association Class that refers to the returned Object MUST match the value of this parameter).
If the IncludeQualifiers input parameter is true, this specifies that all Qualifiers for each Object (including Qualifiers on the Object and on any returned Properties) MUST be included as <QUALIFIER> elements in the response. If false no <QUALIFIER> elements are present in each returned Object.
If the IncludeClassOrigin input parameter is true, this specifies that the CLASSORIGIN attribute MUST be present on all appropriate elements in each returned Object. If false, no CLASSORIGIN attributes are present in each returned Object.
If the PropertyList input parameter is not NULL, the members of the array define one or more Property names. Each returned Object MUST NOT include elements for any Properties missing from this list. If the PropertyList input parameter is an empty array this signifies that no Properties are included in each returned Object. If the PropertyList input parameter is NULL this specifies that all Properties (subject to the conditions expressed by the other parameters) are included in each returned Object.
If the PropertyList contains duplicate elements, the Server MUST ignore the duplicates but otherwise process the request normally. If the PropertyList contains elements which are invalid Property names for any target Object, the Server MUST ignore such entries but otherwise process the request normally.
Clients SHOULD NOT explicitly specify properties in the PropertyList parameter unless they have specified a non-NULL value for the ResultClass parameter.
If successful, the method returns zero or more CIM Classes or Instances meeting the requested criteria. Since it is possible for CIM Objects from different hosts or namespaces to be associated, each returned Object includes location information.If the ObjectName refers to a class, then classes are returned.Otherwise, the ObjectName refers to an instance, and instances are returned.
If unsuccessful, one of the following status codes MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional method-specific interpretation of the error in is given in parentheses.
| AssociatorNames |
| <objectPath>*AssociatorNames
(
[IN] <objectName> ObjectName, [IN,OPTIONAL,NULL] <className> AssocClass = NULL, [IN,OPTIONAL,NULL] <className> ResultClass = NULL, [IN,OPTIONAL,NULL] string Role = NULL, [IN,OPTIONAL,NULL] string ResultRole = NULL ) |
The ObjectName input parameter defines the source CIM Object whose associated names are to be returned. This is either a Class name or Instance name (model path).
The AssocClass input parameter, if not NULL, MUST be a valid CIM Association Class name. It acts as a filter on the returned set of names by mandating that each returned name identifies an Object that MUST be associated to the source Object via an Instance of this Class or one of its subclasses.
The ResultClass input parameter, if not NULL, MUST be a valid CIM Class name. It acts as a filter on the returned set of names by mandating that each returned name identifies an Object that MUST be either an Instance of this Class (or one of its subclasses) or be this Class (or one of its subclasses).
The Role input parameter, if not NULL, MUST be a valid Property name. It acts as a filter on the returned set of names by mandating that each returned name identifies an Object that MUST be associated to the source Object via an Association in which the source Object plays the specified role (i.e. the name of the Property in the Association Class that refers to the source Object MUST match the value of this parameter).
The ResultRole input parameter, if not NULL, MUST be a valid Property name. It acts as a filter on the returned set of names by mandating that each returned name identifies an Object that MUST be associated to the source Object via an Association in which the named returned Object plays the specified role (i.e. the name of the Property in the Association Class that refers to the returned Object MUST match the value of this parameter).
If successful, the method returns zero or more CIM Class paths or Instance paths meeting the requested criteria. Since it is possible for CIM Objects from different hosts or namespaces to be associated, each returned Object includes location information.If the ObjectName refers to a Class path, then Class paths are returned.Otherwise, the ObjectName refers to an instance path, and instance paths are returned.
If unsuccessful, one of the following status codes MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional method-specific interpretation of the error in is given in parentheses.
| References |
| <objectWithPath>*References
(
[IN] <objectName> ObjectName, [IN,OPTIONAL,NULL] <className> ResultClass = NULL, [IN,OPTIONAL,NULL] string Role = NULL, [IN,OPTIONAL] boolean IncludeQualifiers = false, [IN,OPTIONAL] boolean IncludeClassOrigin = false, [IN,OPTIONAL,NULL] string PropertyList [] = NULL ) |
The ObjectName input parameter defines the target CIM Object whose referring Objects are to be returned. This is either a Class name or Instance name (model path).
The ResultClass input parameter, if not NULL, MUST be a valid CIM Class name. It acts as a filter on the returned set of Objects by mandating that each returned Object MUST be an Instance of this Class (or one of its subclasses), or this Class (or one of its subclasses).
The Role input parameter, if not NULL, MUST be a valid Property name. It acts as a filter on the returned set of Objects by mandating that each returned Objects MUST refer to the target Object via a Property whose name matches the value of this parameter.
If the IncludeQualifiers input parameter is true, this specifies that all Qualifiers for each Object (including Qualifiers on the Object and on any returned Properties) MUST be included as <QUALIFIER> elements in the response. If false no <QUALIFIER> elements are present in each returned Object.
If the IncludeClassOrigin input parameter is true, this specifies that the CLASSORIGIN attribute MUST be present on all appropriate elements in each returned Object. If false, no CLASSORIGIN attributes are present in each returned Object.
If the PropertyList input parameter is not NULL, the members of the array define one or more Property names. Each returned Object MUST NOT include elements for any Properties missing from this list. If the PropertyList input parameter is an empty array this signifies that no Properties are included in each returned Object. If the PropertyList input parameter is NULL this specifies that all Properties (subject to the conditions expressed by the other parameters) are included in each returned Object.
If the PropertyList contains duplicate elements, the Server MUST ignore the duplicates but otherwise process the request normally. If the PropertyList contains elements which are invalid Property names for any target Object, the Server MUST ignore such entries but otherwise process the request normally.
Clients SHOULD NOT explicitly specify properties in the PropertyList parameter unless they have specified a non-NULL value for the ResultClass parameter.
If successful, the method returns zero or more CIM Classes or Instances meeting the requested criteria. Since it is possible for CIM Objects from different hosts or namespaces to be associated, each returned Object includes location information.If the ObjectName refers to a class, then classes are returned.Otherwise, the ObjectName refers to an instance, and instances are returned.
If unsuccessful, one of the following status codes MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional method-specific interpretation of the error in is given in parentheses.
| ReferenceNames |
| <objectPath>*ReferenceNames
(
[IN] <objectName> ObjectName, [IN,OPTIONAL,NULL] <className> ResultClass = NULL, [IN,OPTIONAL,NULL] string Role = NULL ) |
The ObjectName input parameter defines the target CIM Object whose referring object names are to be returned. It may be either a Class name or an Instance name (model path).
The ResultClass input parameter, if not NULL, MUST be a valid CIM Class name. It acts as a filter on the returned set of Object Names by mandating that each returned Object Name MUST identify an Instance of this Class (or one of its subclasses), or this Class (or one of its subclasses).
The Role input parameter, if not NULL, MUST be a valid Property name. It acts as a filter on the returned set of Object Names by mandating that each returned Object Name MUST identify an Object that refers to the target Instance via a Property whose name matches the value of this parameter.
If successful, the method returns zero or more CIM Class paths or Instance paths meeting the requested criteria. Since it is possible for CIM Objects from different hosts or namespaces to be associated, each returned Object includes location information.If the ObjectName refers to a Class path, then Class paths are returned.Otherwise, the ObjectName refers to an instance path, and instance paths are returned.
If unsuccessful, one of the following status codes MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional method-specific interpretation of the error in is given in parentheses.
| GetProperty |
| <propertyValue>GetProperty
(
[IN] <instanceName> InstanceName, [IN] string PropertyName ) |
The InstanceName input parameter specifies the name of the Instance (model path) from which the Property value is requested.
The PropertyName input parameter specifies the name of the Property whose value is to be returned.
If successful, the return value specifies the value of the requested Property. If the value is NULL then no element is returned.
If unsuccessful, one of the following status codes MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional method-specific interpretation of the error in is given in parentheses.
| SetProperty |
| void SetProperty (
[IN] <instanceName> InstanceName, [IN] string PropertyName, [IN,OPTIONAL,NULL] <propertyValue> NewValue = NULL ) |
The InstanceName input parameter specifies the name of the Instance (model path) for which the Property value is to be updated.
The PropertyName input parameter specifies the name of the Property whose value is to be updated.
The NewValue input parameter specifies the new value for the Property (which may be NULL).
If unsuccessful, one of the following status codes MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional method-specific interpretation of the error in is given in parentheses.
| GetQualifier |
| <qualifierDecl>GetQualifier
(
[IN] string QualifierName ) |
The QualifierName input parameter identifies the Qualifier whose declaration to be retrieved.
If successful, the method returns the Qualifier declaration for the named Qualifier.
If unsuccessful, one of the following status codes MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional method-specific interpretation of the error in is given in parentheses.
| SetQualifier |
| void SetQualifier (
[IN] <qualifierDecl> QualifierDeclaration ) |
The QualifierDeclaration input parameter defines the Qualifier Declaration to be added to the Namespace.
If successful, the Qualifier declaration MUST have been added to the target Namespace. If a Qualifier declaration with the same Qualifier name already existed, then it MUST have been replaced by the new declaration.
If unsuccessful, one of the following status codes MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional method-specific interpretation of the error in is given in parentheses.
| DeleteQualifier |
| void DeleteQualifier (
[IN] string QualifierName ) |
The QualifierName input parameter identifies the Qualifier whose declaration to be deleted.
If successful, the specified Qualifier declaration MUST have been deleted from the Namespace.
If unsuccessful, one of the following status codes MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional method-specific interpretation of the error in is given in parentheses.
| EnumerateQualifiers |
| <qualifierDecl>*EnumerateQualifiers
(
) |
If successful, the method returns zero or more Qualifier declarations.
If unsuccessful, one of the following status codes MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional method-specific interpretation of the error in is given in parentheses.
The proposed definition MUST be a correct namespace definition according to the CIM specification [1]. Despite the naming conventions used in the CIM specifications (Use of / in namespaces such as root/CIMV2 and root/CIMV2/test) there is no hierarchy implied between different namespaces. Each namespace is independent of all others. The namespaces are to be considered flat and there is no defined behavior for navigating namespaces.
In processing the creation of the new namespace, the following rules MUST be conformed to by the CIM Server:
The namespace defined by name property
MUST NOT already exist in the CIM Server.
The <LOCALNAMESPACEPATH> defined for the
operation defines the namespace in which the CIM_Namespace instance associated
with this new namespace is created.
It is the common practice proposed by this document that instances of CIM_Namespace be created in root unless there is a specific reason to define them in another namespace.
The inclusion of a CIM_Namespace instance within a namespace other than root is allowed.
In addition to creating instances of CIM_Namespace, compliant implementations MUST also create an instance of the association class CIM_NamespaceInManager defining the linking of the namespace created to the current CIM_ObjectManager.
If successful, the specified Namespace MUST have been created by the CIM Server. In addition, the CIM Server MUST return information about the namespace as an instance of the class CIM_Namespace and of returning instances of the association class CIM_NamespaceInManager for each CIM_Namespace instance created.
Deletion of a namespace is realized by calling the intrinsic method
DeleteInstance for the class CIM_Namespace against the namespace containing
this instance, specifying the InstanceName for the instance of CIM_Namespace
corresponding to the namespace to be deleted.
In processing the deletion of the new Namespace, the following rules MUST be conformed to by the CIM Server:
The namespace to be deleted MUST exist in the
target CIM Server.
The namespace to be deleted MUST be empty
-- it MUST NOT contain any classes or instances.
If successful, the specified namespace MUST have been deleted by the CIM Server. In addition, any reference to this namespace through an instance of the CIM_Namespace class or subclasses MUST be deleted so that CIM operation requests for the instance representing the deleted namespace will be returned "CIM_ERR_NOT_FOUND". If the Namespace cannot be deleted (for example, it is not empty), the CIM error response CIM_ERR_NAMESPACE_NOT_EMPTY MUST be returned.
The query of namespaces is provided through:
1. Query of the CIM_Namespace class on an individual
namespace.
2. Use of the CIM_NamespaceInManager association
which links the target CIM_ObjectManager and the instances of CIM_Namespace
representing all namespaces defined in the target CIM_ObjectManager
There are no intrinsic methods defined specifically for the purpose of manipulating CIM Namespaces. However, the modeling of a CIM Namespace using the class __Namespace, together with the requirement that the root Namespace MUST be supported by all CIM Servers, implies that all Namespace operations can be supported.
For example:
Enumeration of
all child Namespaces of a particular Namespace is realized by calling the
intrinsic method EnumerateInstanceNames against the parent Namespace, specifying
a value for the ClassName parameter of __Namespace.
Creation of
a child Namespace is realized by calling the intrinsic method CreateInstance
against the parent Namespace, specifying a value for the NewInstance parameter
which defines a valid instance of the class __Namespace and whose Name
property is the desired name of the new Namespace.
The use of the __Namespace class is deprecated. In its place, use the CIM_Namespace class and the behavior as defined in section 2.3.3.1 of this specification.
Support for a particular group does not guarantee that all invocations of any method in that group will succeed. Rather, the exclusion of a group is a declaration that any attempt to call a method in that group will always return CIM_ERR_NOT_SUPPORTED.
Mechanisms by which a CIM Server may declare the functional groups that it supports are defined in the section on Determining CIM Server Capabilities.
In order to limit the number of different profiles that may be supported by a CIM Server, each functional group has a dependency on another group (with the exception of the Basic Read functional group). If functional group G1 has a dependency on functional group G2, then a CIM Server which suppor