1 mike 1.1 Specification for CIM Operations over HTTPDistributed Management Task Force,
2 Inc.
3 Specification for CIM Operations over HTTP
4 Version 1.0
5 August 11th, 1999
6 Technical inquiries and editorial comments should be directed in writing to:
7 Distributed Management Task Force, Inc. (DMTF)
8 c/o MacKenzie Kesselring, Inc.
9 200 SW Market Street, Suite 450,
10 Portland, OR 97201
11 (503) 225-0725
12 (503) 225-0765 (fax)
13 email: dmtf-info@dmtf.org
14 Participants
15 This list shows the names of the companies and organizations that have
16 participated in the Distributed Management Task Force - CIM TC XML
17 Sub-Committee whose contributions made this document possible.
18 Agranat Systems
19 Hewlett-Packard Company
20 IBM Corporation
21 Microsoft Corporation
22 mike 1.1 Tivoli Systems, Inc.
23 Customer Support Consortium
24 Sun Microsystems, Inc.
25 Intel Corporation
26 Change History
27 Version 1.0aMay 1st, 1999First Draft Release
28 Version 1.0bMay 7th, 1999Updates after first Working Group Review
29 Version 1.0cMay 11th, 1999Further updates
30 Version 1.0dMay 25th, 1999Changed LOCAL to PROPAGATED
31 Added VALUETYPE attribute to KEYVALUE
32 Version 1.0eMay 28th, 1999AssociationTraversal dependent on BasicRead.
33 not BasicWrite
34
35 CIMFunctionalGroups OPTIONS header renamed to
36 CIMSupportedFunctionalGroups
37
38 501 returned by server if it does not support multiple requests and
39 receives such a request
40
41 Added some operation parameters and allowed them to take default values
42 Version 1.0June 2nd, 1999Clarified meaning of default intrinsic
43 mike 1.1 parameter value
44 Resolved ambiguity over server response to protocol version that is not
45 supported
46 Clarified use of property list in Associators and References intrinsic
47 methods
48 July 6th, 1999Updated examples to reflect DTD changes
49 QueryExecution based on BasicRead, not BasicWrite
50 July 20th, 1999Remove IncludeClassOrigin and IncludeQualifiers
51 parameters from ExecQuery.
52 Parameters to Associators, AssocitorNames, References and ReferenceNames
53 which express class names are modelled as <className> rather than
54 string.
55 NewValue parameter to SetProperty is now OPTIONAL
56 Clarified semantics of optional parameters, and the distinction between
57 a default parameter value and a NULL parameter value.
58 Clarified Create and Modify operational semantics.
59 Clarified validation requirements and introduced CIMValidation header
60 for OPTIONS response.
61 Introduced CIMError response header to disambiguate fundamental
62 CIM-specific errors that map to the same HTTP status code.
63
64 mike 1.1 Contents
65 Abstract
66 1. Introduction
67
68 1.1. Requirements
69
70 1.2. Terminology
71
72 1.3. Style
73
74 2. CIM Operation Syntax and Semantics
75
76 2.1. Overview
77 2.1.1. Well-Formed, Valid and Loosely Valid
78 2.2. Operational Semantics
79 2.3. Method Invocations
80 2.3.1. Simple Operations
81 2.3.2. Multiple Operations
82 2.3.3. Status Codes
83 2.4. Intrinsic Methods
84 2.4.1. GetClass
85 mike 1.1 2.4.2. GetInstance
86 2.4.3. DeleteClass
87 2.4.4. DeleteInstance
88 2.4.5. CreateClass
89 2.4.6. CreateInstance
90 2.4.7. ModifyClass
91 2.4.8. ModifyInstance
92 2.4.9. EnumerateClasses
93 2.4.10. EnumerateClassNames
94 2.4.11. EnumerateInstances
95 2.4.12. EnumerateInstanceNames
96 2.4.13. ExecQuery
97 2.4.14. Associators
98 2.4.15. AssociatorNames
99 2.4.16. References
100 2.4.17. ReferenceNames
101 2.4.18. GetProperty
102 2.4.19. SetProperty
103 2.4.20. GetQualifier
104 2.4.21. SetQualifier
105 2.4.22. DeleteQualifier
106 mike 1.1 2.4.23. EnumerateQualifiers
107 2.5. Namespace Manipulation
108 2.6. Functional Profiles
109 2.7. Extrinsic Method Invocation
110 3. Encapsulation of CIM Operations
111
112 3.1. CIM Clients and Servers
113
114 3.2. Use of M-POST and POST
115
116 3.2.1. Use of the Ext Header
117
118 3.3. Extension Headers Defined for CIM Operation Requests and Responses
119
120 3.3.1. Naming of Extension Headers
121
122 3.3.2. Encoding of CIM Names within HTTP Headers
123
124 3.3.3. Encoding of CIM Object Paths within HTTP Headers
125 3.3.4. CIMOperation
126 3.3.5. CIMProtocolVersion
127 mike 1.1
128 3.3.6. CIMMethod
129
130 3.3.7. CIMObject
131
132 3.3.8. CIMBatch
133 3.3.9. CIMError
134 4. HTTP Requirements & Usage
135
136 4.1. HTTP Support
137
138 4.2. Use of Standard Headers
139
140 4.2.1. Accept
141
142 4.2.2. Accept-Charset
143
144 4.2.3. Accept-Encoding
145
146 4.2.4. Accept-Language
147
148 mike 1.1 4.2.5. Accept-Ranges
149
150 4.2.6. Allow
151
152 4.2.7. Authorization
153
154 4.2.8. Cache-Control
155
156 4.2.9. Connection
157
158 4.2.10. Content-Encoding
159
160 4.2.11. Content-Language
161
162 4.2.12. Content-Range
163
164 4.2.13. Content-Type
165
166 4.2.14. Expires
167
168 4.2.15. If-Range
169 mike 1.1
170 4.2.16. Proxy-Authenticate
171
172 4.2.17. Range
173
174 4.2.18. WWW-Authenticate
175
176 4.3. Errors and Status Codes
177
178 4.4. Security Considerations
179
180 4.5. Determining CIM Server Capabilities
181
182 4.5.1. CIMSupportedFunctionalGroups
183 4.5.2. CIMSupportsMultipleOperations
184 4.5.3. CIMSupportedQueryLanguages
185 4.5.4. CIMValidation
186 4.6. Other HTTP Methods
187
188 4.7. Discovery and Addressing
189
190 mike 1.1 4.8. Internationalization Considerations
191
192 5. References
193 Appendix A - Examples of Message Exchanges
194
195 A.1. Retrieval of a Single Class Definition
196 A.2. Retrieval of a Single Instance Definition
197 A.3. Deletion of a Single Class Definition
198 A.4. Deletion of a Single Instance Definition
199 A.5. Creation of a Single Class Definition
200 A.6. Creation of a Single Instance Definition
201 A.7. Enumeration of Class Names
202 A.8. Enumeration of Instances
203 A.9. Retrieval of a Single Property
204 A.10. Execution of an Extrinsic Method
205
206
207 Abstract
208 The Common Information Model (CIM) [1] is an object-oriented information model
209 defined by the Distributed Management Task Force (DMTF) which provides a
210 conceptual framework for describing management data.
211 mike 1.1 The Hypertext Transfer Protocol (HTTP) [6,7,10] is an application-level protocol
212 for distributed, collaborative, hypermedia information systems. It is a generic
213 stateless protocol which can be used for many tasks through extension of its
214 request methods, error codes and headers.
215 The Extensible Markup Language (XML) [3] is a simplified subset of SGML that
216 offers powerful and extensible data modeling capabilities. An XML Document is a
217 collection of data represented in XML. An XML Schema is a grammar that describes
218 the structure of an XML Document.
219 This document defines a mapping of CIM Operations onto HTTP that allows
220 implementations of CIM to interoperate in an open, standardized manner. It
221 utilizes the CIM XML DTD [2,11] that defines the XML Schema for CIM objects and
222 messages.
223 Back to contents
224 1. Introduction
225 This document defines a mapping of CIM operations onto HTTP that allows
226 implementations of CIM to operate in an open, standardized manner. It also
227 defines the notion of conformance in the context of this mapping, and describes
228 what behavior an implementation of CIM must exhibit in order to be described as
229 a conforming CIM implementation.
230 The remainder of this document is structured as follows.
231 Section 2 describes the CIM Operations which form the HTTP payload, using XML.
232 mike 1.1 It specifies the syntax and semantics of the operation requests and their
233 corresponding responses.
234 Section 3 describes the encapsulation of these messages in HTTP request and
235 response messages, with examples of each. It describes the extension headers
236 used to convey additional CIM-specific semantics in the HTTP Header.
237 Section 4 describes in more detail other aspects of the encapsulation:
238 HTTP Version Support
239 The use of standard HTTP Headers
240 HTTP Error codes
241 Security Considerations
242 Back to contents
243 1.1. Requirements
244 There are potentially many different ways in which CIM operations could be
245 represented within XML, and those operations encapsulated within HTTP messages.
246 In the interests of interoperability between different implementations of CIM
247 there is an obvious requirement for standardization of both the XML
248 representation and the HTTP encapsulation. The XML representation is defined in
249 [2,11]. This document utilizes that representation to defines the HTTP
250 encapsulation.
251 The following criteria have been applied to the representation of CIM Operations
252 in XML [2,11]:
253 mike 1.1 Each CIM Operation is described completely in XML; completeness is favored
254 over conciseness.
255 The set of CIM Operations provide sufficient functionality to enable
256 implementations of CIM to communicate effectively for the purposes of
257 management. It is not a goal of the first release of this mapping to provide a
258 complete set of operations. It is a goal to define the mapping so as to admit
259 straightfoward extension (addition of further features) in future versions.
260 The set of CIM Operations are classified into functional profiles so that a
261 range of implementations (varying from complete support of all operations to
262 support of a minimal subset) is allowed. The number of functional profiles is
263 kept as small as possible to encourage interoperability, and mechanisms
264 provided by which CIM implementations can declare their level of support.
265 The following criteria have been applied to the HTTP encapsulation of CIM
266 Operations herein:
267 In recognition of the large installed base of HTTP/1.0 systems, the
268 encapsulation is designed to support both HTTP/1.0 and HTTP/1.1
269 The encapsulation does not introduce any requirements which are in conflict
270 with those stated in HTTP/1.0 or HTTP/1.1
271 The encapsulation should be straightforwardly usable over the current base
272 HTTP infrastructures. Some features are intended to anticipate and exploit
273 enhancements to this base, but no aspects of the encapsulation require any
274 mike 1.1 such enhancements as mandatory.
275 The encapsulation avoids the use of pure HTTP Tunnelling or URL munging (e.g.
276 the use of the "?" character) in favor of a mechanism which allows existing
277 HTTP infrastructures to safely control content.
278 The encapsulation exposes key CIM operation information in Headers to allow
279 efficient firewall/proxy handling. The information is limited to that which
280 is considered essential, in order not to have significant impact on the size
281 of the Header. No CIM-specific information appears in a Header that does not
282 also appear within the CIM Operation.
283 There is a clear and unambiguous encapsulation of the CIM Operation payload
284 within the HTTP Message. Conciseness of the encapsulation is of secondary
285 importance.
286 Back to contents
287 1.2. Terminology
288 The key phrases and words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD,
289 SHOULD NOT, RECOMMENDED, MAY and OPTIONAL in this document are to be interpreted
290 as described in RFC 2119 [8].
291 This specification uses the same notational conventions and basic parsing
292 constructs as defined in [7].
293 Back to contents
294 1.3. Style
295 mike 1.1 This document uses a number of stylistic conventions to highlight examples and
296 definitions.
297 Examples are displayed in this fashion:
298 This is an example
299
300 Definitions are illustrated thusly:
301 This is a definition
302
303 Back to contents
304 2. CIM Operation Syntax and Semantics
305 2.1. Overview
306 This specification defines all interactions between CIM entities as Operations.
307 CIM Operations belong to a larger category known as CIM Messages (currently all
308 Messages are Operations, but in future this may not be true).
309 This section describes the syntax and semantics of CIM Operations in a manner
310 independent of the encapsulation of such operations within a particular protocol
311 (such as HTTP).
312 XML is used as the basis for this description, and in particular the CIM XML DTD
313 [2,11].
314 Back to contents
315 2.1.1. Well-Formed, Valid and Loosely Valid
316 mike 1.1 Where this document makes reference to the concept of a Well-formed or Valid XML
317 documents, the meaning intended is the standard one defined in [3].
318 XML DTDs are restricted to these terms to describe XML documents, but this
319 document requires a further classification of an XML document with respect to a
320 DTD. Henceforth the term loosely valid is defined to apply to an XML Document
321 with the following characteristics:
322 If any attributes or elements in the XML document which do not appear in the
323 CIM XML DTD are removed, then the resulting document is valid with respect to
324 the CIM XML DTD.
325 In effect, a loosely valid document is one which is valid with respect to the
326 CIM XML DTD apart from having additional attributes or elements not defined by
327 that DTD. The concept is very similar to that of an open content model as
328 defined by the working draft on XML Schemas [21], expressed within the more
329 limited scope of DTDs. One corollary of this definition is that any XML document
330 that is valid with respect to the CIM XML DTD is also loosely valid.
331 The motivation for introducing this class of XML Documents is to relax the
332 restrictions on a CIM Client or a CIM Server when parsing received XML documents
333 defined within the scope of this mapping. It is recognized that not all Clients
334 (respectively, Servers) should be required to validate each received Operation
335 Response Message (respectively, Operation Request Message) as this would place
336 too great a processing burden on the validating entity at the expense of
337 mike 1.1 footprint and performance, most notably in communication between robust and
338 conformant implementations of this mapping.
339 Instead the following requirements are made by this specification:
340 A CIM Client (respectively, CIM Server) MAY include a DOCTYPE element in an
341 Operation Request Message (respectively, Operation Response Message). If so,
342 an External declaration SHOULD be used (in-lining of the complete DTD within a
343 message is discouraged).
344 A CIM Client (respectively, CIM Server) MAY elect to validate a received
345 Operation Response Message (respectively, Operation Request Message).
346 If a CIM Client (respectively, CIM Server) elects not to validate a received
347 Operation Response Message (respectively, Operation Request Message), then
348 loose validation MUST be enforced.
349 The behavior of a CIM Server with respect to a received Operation Request
350 Message is covered in detail in the section on Errors and Status Codes .
351 2.2. Operational Semantics
352 The CIM XML DTD [2,11] defines a subelement under the root <CIM> element called
353 <MESSAGE>, which contains one of the following subelements:
354 <SIMPLEREQ>
355 <SIMPLERSP>
356 <MULTIREQ>
357 <MULTIRSP>
358 mike 1.1 In the remainder of this document:
359 The term Operation Request Message denotes an XML document that is loosely
360 valid with respect to the CIM XML DTD, which contains under the root <CIM>
361 node a <MESSAGE> subelement, under which there is a <MULTIREQ> or <SIMPLEREQ>
362 subelement, and;
363 The term Operation Response Message denotes an XML document that is loosely
364 valid with respect to the CIM XML DTD, which contains under the root <CIM>
365 node a <MESSAGE> subelement, under which there is a <MULTIRSP> or <SIMPLERSP>
366 subelement.
367 An Operation Request Message MUST contain a non-empty value for the ID attribute
368 of the <MESSAGE> element. The corresponding Operation Response Message MUST
369 supply the same value for that attribute. Clients SHOULD employ a message ID
370 scheme that minimizes the chance of receiving a stale Operation Response
371 Message.
372 Any Operation Request Message or Operation Response Message conforming to this
373 specification MUST specify a value of "1.0" for the PROTOCOLVERSION attribute of
374 the <MESSAGE> element.
375 An Operation Response Message sent in response to an Operation Request Message
376 MUST:
377 specify the same value for the ID attribute of the <MESSAGE> element as
378 appeared in the Operation Request Message, and
379 mike 1.1 contain a <MULTIRSP> subelement if the Operation Request Message contained a
380 <MULTIREQ> subelement, or
381 contain a <SIMPLERSP> subelement if the Operation Request Message contained
382 a <SIMPLEREQ> subelement.
383 A Simple Operation Request is an Operation Request Message that contains a
384 <SIMPLEREQ> subelement. A Simple Operation Response is an Operation Response
385 Message that contains a <SIMPLERSP> subelement.
386 A Multiple Operation Request is an Operation Request Message that contains a
387 <MULTIREQ> subelement. A Multiple Operation Response is an Operation Response
388 Message that contains a <MULTIRSP> subelement.
389 Back to contents
390 2.3. Method Invocations
391 All CIM Operation requests defined for this mapping are defined as invocations
392 of one or more methods. A method may be either:
393 Intrinsic, which means that it is defined by this specification for the
394 purposes of modelling a CIM operation, or;
395 Extrinsic, which means that it is defined as a method on a CIM Class in some
396 Schema.
397 Intrinsic methods are further characterized by the fact that they are made
398 against a CIM Namespace. Extrinsic methods are invoked on a CIM Class (if
399 static) or Instance (otherwise). Intrinsic methods are defined in the section
400 mike 1.1 Intrinsic Methods
401 An extrinsic method call is represented in XML by the <METHODCALL> element, and
402 the response to that call represented by the <METHODRESPONSE> element.
403 An intrinsic method call is represented in XML by the <IMETHODCALL> element, and
404 the response to that call represented by the <IMETHODRESPONSE> element.
405 An Input parameter is one with an IN Qualifier (with value true) in the Method
406 definition. An Output parameter is one with an OUT Qualifier (with value true)
407 in the Method definition. An Optional parameter is one with an OPTIONAL
408 Qualifier in the Method definition. A parameter may be both an Input and Output
409 parameter.
410 The <METHODCALL> or <IMETHODCALL> element serves to name the method to be
411 invoked and supply any Input parameters to the method call. Note that:
412 Each Input parameter MUST be named using the name assigned in the method
413 definition.
414 The Input parameters MAY be supplied in any order.
415 Each Input parameter of the method, and no others, MUST be present in the
416 call, unless it was defined as Optional.
417 The <METHODRESPONSE> or <IMETHODRESPONSE> element defines either an <ERROR> or a
418 (possibly optional) return value and output parameters (i.e. one decorated with
419 the OUT Qualifier in the method definition). In the latter case:
420 Each Output parameter MUST be named using the name assigned in the method
421 mike 1.1 definition.
422 The Output parameters MAY be supplied in any order.
423 Each Output parameter of the method, and no others, MUST be present in the
424 response, unless it was defined as Optional.
425 The method invocation process may be thought of as:
426 The binding of the input parameter values specified as subelements of the
427 <METHODCALL> or <IMETHODCALL> element to the input parameters of the Method,
428 followed by;
429 The attempted execution of the method using the bound input parameters, and;
430 If attempt to call the method is successful, the binding of the the return
431 value and output parameters to the subelements of the <METHODRESPONSE> or
432 <IMETHODRESPONSE> element, or;
433 If the attempt to call the method is unsuccesful, the binding of an error
434 code and (optional) human-readable description of that code to the
435 <METHODRESPONSE> or <IMETHODRESPONSE> element.
436 Back to contents
437 2.3.1. Simple Operations
438 A simple operation is defined as one that requires the invocation of a single
439 method. A simple operation request is represented by a <SIMPLEREQ> element, and
440 a simple operation response by a <SIMPLERSP> element.
441 If the method is intrinsic then the <SIMPLEREQ> MUST contain a <IMETHODCALL>
442 mike 1.1 element, which in turn contains a <LOCALNAMESPACEPATH> subelement identifying
443 the local CIM Namespace against which the method is to be executed. If the
444 method is extrinsic then the <SIMPLEREQ> element MUST contain a <METHODCALL>
445 element which in turn contains either:
446 A <LOCALCLASSPATH> subelement identifying the CIM Class on which the method is
447 to be invoked, in the case that the method is static, or;
448 An <LOCALINSTANCEPATH> subelement identifying the CIM Instance on which the
449 method is to be invoked, otherwise.
450 Back to contents
451 2.3.2. Multiple Operations
452 A multiple operation is defined as one that requires the invocation of more than
453 one method. A multiple operation request is represented by a <MULTIREQ>
454 element, and a multiple operation response by a <MULTIRSP> element.
455 A <MULTIREQ> (respectively, <MULTIRSP>) element is a sequence of two or more
456 <SIMPLEREQ> (respectively, <SIMPLERSP>) elements.
457 A <MULTIRSP> element MUST contain a <SIMPLERSP> element for every <SIMPLEREQ>
458 element in the corresponding Multiple Operation Response, and these <SIMPLERSP>
459 elements MUST be in the same order as their <SIMPLEREQ> counterparts (so the
460 first <SIMPLERSP> in the response corresponds to the first <SIMPLEREQ> in the
461 request, and so forth).
462 Multiple Operations provide a convenient mechanism whereby multiple method
463 mike 1.1 invocations may be batched into a single HTTP Message, thereby reducing the
464 number of roundtrips between a CIM Client and a CIM Server and allowing the CIM
465 Server to make certain internal optimizations should it choose so to do. Note
466 that Multiple Operations do not confer any transactional capabilities in the
467 processing of the request (for example, there is no requirement that the CIM
468 Server guarantee that the constituent method calls either all failed or all
469 succeeded, only that the entity make a "best effort" to process the operation).
470 Not all CIM Servers support Multiple Operations; the means by which they declare
471 support for this feature is defined in the section on Determining CIM Server
472 Capabilities.
473 Back to contents
474 2.3.3. Status Codes
475 This section defines the status codes that may be returned by a conforming CIM
476 Server application as the value of the CODE attribute of an <ERROR> subelement
477 within a <METHODRESPONSE> or <IMETHODRESPONSE> element.
478 The symbolic names defined in the table below do not appear on the wire. They
479 are used here solely as a convenient way to refer to an error in other parts of
480 this specification.
481 Not all methods would be expected to return all the status codes listed below.
482 For intrinsic methods, the relevant section on each method in this specification
483 defines the expected error codes to be returned. For extrinsic methods the
484 mike 1.1 specification of which of the following codes can be used is described in the
485 section on Extrinsic Method Invocation .
486 Symbolic NameCODEDefinition
487 CIM_ERR_FAILED1A general error occured that is not covered by a more
488 specific error code
489 CIM_ERR_ACCESS_DENIED2Access to a CIM resource was not available to the
490 client
491 CIM_ERR_INVALID_NAMESPACE3The target namespace does not exist
492 CIM_ERR_INVALID_PARAMETER4One or more parameter values passed to the
493 method were invalid
494 CIM_ERR_INVALID_CLASS5The specified Class does not exist
495 CIM_ERR_NOT_FOUND6The requested object could not be found
496 CIM_ERR_NOT_SUPPORTED7The requested operation is not supported
497 CIM_ERR_CLASS_HAS_CHILDREN8Operation cannot be carried out on this class
498 since it has subclasses
499 CIM_ERR_CLASS_HAS_INSTANCES9Operation cannot be carried out on this class
500 since it has instances
501 CIM_ERR_INVALID_SUPERCLASS10Operation cannot be carried out since the
502 specified superclass does not exist
503 CIM_ERR_ALREADY_EXISTS11Operation cannot be carried out because an object
504 already exists
505 mike 1.1 CIM_ERR_NO_SUCH_PROPERTY12The specified Property does not exist
506 CIM_ERR_TYPE_MISMATCH13The value supplied is incompatible with the type
507 CIM_ERR_QUERY_LANGUAGE_NOT_SUPPORTED14The query language is not recognized
508 or supported
509 CIM_ERR_INVALID_QUERY15The query is not valid for the specified query
510 language
511 CIM_ERR_METHOD_NOT_AVAILABLE16The extrinsic Method could not be executed
512 CIM_ERR_METHOD_NOT_FOUND17The specified extrinsic Method does not exist
513
514 Back to contents
515 2.4. Intrinsic Methods
516 This section describes the Intrinsic methods that are defined outside of schema
517 for the purposes of CIM operations. These methods can only be called on a CIM
518 Namespace, rather than a CIM Class or CIM Instance.
519 The following intrinsic methods are defined by this specification:
520 Get a CIM Class
521 Get a CIM Instance
522 Delete a CIM Class
523 Delete a CIM Instance
524 Create a CIM Class
525 Create a CIM Instance
526 mike 1.1 Modify a CIM Class
527 Modify a CIM Instance
528 Enumerate subclasses of a CIM Class
529 Enumerate subclass names of a CIM Class
530 Enumerate instances of a CIM Class
531 Enumerate instance names of a CIM Class
532 Delete a CIM Qualifier definition
533 Create a CIM Qualifier definition
534 Enumerate CIM Qualifier definitions
535 Execute a Query
536 Enumerate associators of a CIM Object
537 Enumerate names of associators of a CIM Object
538 Enumerate references to a CIM Object
539 Enumerate names of references to a CIM Object
540 Get a CIM Property value from a CIM Instance
541 Set a CIM Property value from a CIM Instance
542 Get a Qualifier declaration
543 Set a Qualifier declaration
544 Delete a Qualifier declaration
545 Enumerate Qualifier declarations
546 The convention used in the following subsections to define the signatures of the
547 mike 1.1 intrinsic methods is a pseudo-MOF notation that extends the standard MOF BNF [1]
548 for describing CIM Methods with a number of pseudo parameter types (which are
549 indicated by being placed within "<" and ">" characters).
550 This notation admits of the decoration of parameters with a number of
551 pseudo-qualifiers (IN, OPTIONAL and NULL) to define their invocation semantics.
552 It is important to understand that these qualifiers are used for descriptional
553 purposes only within the scope of this specification, and in particular a CIM
554 Client MUST NOT specify them in intrinsic method invocations.
555 This notation uses the IN qualifier to denote that the parameter is an input
556 parameter.
557 This notation uses the OPTIONAL qualifier to indicate paramaters whose presence
558 is not mandatory, and declares default values for optional method parameters
559 using similar notation employed for default property values in MOF.
560 A CIM Client MAY omit an optional parameter in the case that the required value
561 is the specified default, by not specifying an <IPARAMVALUE> element for that
562 parameter. It MUST NOT omit any parameter that is not marked as optional.
563 This notation uses the NULL qualifier to indicate parameters whose values may be
564 be specified as NULL in a method call. A NULL (unassigned) value for a parameter
565 is specified by an <IPARAMVALUE> element with no subelement. For parameters
566 which do not possess the NULL qualifier, the CIM Client MUST specify a value for
567 the parameter by including a suitable subelement for the <IPARAMVALUE> element
568 mike 1.1 for that parameter.
569 All parameters MUST be named uniquely, and MUST correspond to a valid parameter
570 name for that method as described by this specification. The order of the
571 parameters is not significant.
572 The non-NULL values of intrinsic method parameters or return values which are
573 modelled as standard CIM types (such as string and boolean, or arrays thereof)
574 are represented as follows:
575 Simple values MUST be represented using the <VALUE> subelement within an
576 <IPARAMETER> element (for method parameters) or within an <IRETURNVALUE>
577 element (for method return values).
578 Array values MUST be represented using the <VALUE.ARRAY> subelement within an
579 <IPARAMETER> element (for method parameters) or within an <IRETURNVALUE>
580 element (for method return values).
581 The following table describes how each of the pseudo-types used by the intrinsic
582 methods MUST be mapped to an XML element described in [2] in the context of both
583 a parameter value (subelement of <IPARAMVALUE>) and a return value (subelement
584 of <IRETURNVALUE>).
585 TypeXML Element
586 <object>(VALUE.OBJECT|VALUE.OBJECTWITHLOCALPATH|VALUE.OBJECTWITHPATH)
587 <class>CLASS
588 <instance>INSTANCE
589 mike 1.1 <className>CLASSNAME
590 <namedInstance>VALUE.NAMEDINSTANCE
591 <instanceName>INSTANCENAME
592 <objectWithPath>VALUE.OBJECTWITHPATH
593 <objectName>(CLASSNAME|INSTANCENAME)
594 <propertyValue>(VALUE|VALUE.ARRAY|VALUE.REFERENCE)
595 <qualifierDecl>QUALIFIER.DECLARATION
596
597 Back to contents
598 2.4.1. GetClass
599 This operation is used to return a single CIM Class from the target Namespace.
600 GetClass
601 <class> GetClass (
602 [IN] <className> ClassName,
603 [IN,OPTIONAL] boolean LocalOnly = true,
604 [IN,OPTIONAL] boolean IncludeQualifiers = true,
605 [IN,OPTIONAL] boolean IncludeClassOrigin = false,
606 [IN,OPTIONAL,NULL] string PropertyList [] = NULL
607 )
608
609 The ClassName input parameter defines the name of the Class to be retrieved.
610 mike 1.1 If the LocalOnly input parameter is true, this specifies that only CIM Elements
611 (properties, methods and qualifiers) overriden within the definition of the
612 Class are returned [1]. If false, all elements are returned. This parameter
613 therefore effects a CIM Server-side mechanism to filter certain elements of the
614 returned object based on whether or not they have been propagated from the
615 parent Class (as defined by the PROPAGATED attribute).
616 If the IncludeQualifiers input parameter is true, this specifies that all
617 Qualifiers for that Class (including Qualifiers on the Class and on any returned
618 Properties, Methods or Method Parameters) MUST be included as <QUALIFIER>
619 elements in the response. If false no <QUALIFIER> elements are present in the
620 returned Class.
621 If the IncludeClassOrigin input parameter is true, this specifies that the
622 CLASSORIGIN attribute MUST be present on all appropriate elements in the
623 returned Class. If false, no CLASSORIGIN attributes are present in the returned
624 Class.
625 If the PropertyList input parameter is not NULL, the members of the array define
626 one or more Property names. The returned Class MUST NOT include elements for
627 any Properties missing from this list. Note that if LocalOnly is specified as
628 true this acts as an additional filter on the set of Properties returned (for
629 example, if Property A is included in the PropertyList but LocalOnly is set to
630 true and A is not local to the requested Class, then it will not be included in
631 mike 1.1 the response). If the PropertyList input parameter is an empty array this
632 signifies that no Properties are included in the response. If the PropertyList
633 input parameter is NULL this specifies that all Properties (subject to the
634 conditions expressed by the other parameters) are included in the response.
635 If the PropertyList contains duplicate elements, the Server MUST ignore the
636 duplicates but otherwise process the request normally. If the PropertyList
637 contains elements which are invalid Property names for the target Class, the
638 Server MUST ignore such entries but otherwise process the request normally.
639 If successful, the return value is a single CIM Class.
640 If unsuccessful, one of the following status codes MUST be returned by this
641 method, where the first applicable error in the list (starting with the first
642 element of the list, and working down) is the error returned. Any additional
643 method-specific interpretation of the error in is given in parentheses.
644 CIM_ERR_ACCESS_DENIED
645 CIM_ERR_INVALID_NAMESPACE
646 CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or
647 otherwise incorrect parameters)
648 CIM_ERR_NOT_FOUND (the request CIM Class does not exist in the specified
649 namespace)
650 CIM_ERR_FAILED (some other unspecified error occurred)
651 Back to contents
652 mike 1.1 2.4.2. GetInstance
653 This operation is used to return a single CIM Instance from the target
654 Namespace.
655 GetInstance
656 <instance> GetInstance (
657 [IN] <instanceName> InstanceName,
658 [IN,OPTIONAL] boolean LocalOnly = true,
659 [IN,OPTIONAL] boolean IncludeQualifiers = false,
660 [IN,OPTIONAL] boolean IncludeClassOrigin = false,
661 [IN,OPTIONAL,NULL] string PropertyList [] = NULL
662 )
663
664 The InstanceName input parameter defines the name of the Instance to be
665 retrieved.
666 If the LocalOnly input parameter is true, this specifies that only elements
667 (properties and qualifiers) overriden within the definition of the Instance are
668 returned [1]. If false, all elements are returned. This parameter therefore
669 effects a CIM Server-side mechanism to filter certain elements of the returned
670 object based on whether or not they have been propagated from the parent Class
671 (as defined by the PROPAGATED attribute).
672 If the IncludeQualifiers input parameter is true, this specifies that all
673 mike 1.1 Qualifiers for that Instance (including Qualifiers on the Instance and on any
674 returned Properties) MUST be included as <QUALIFIER> elements in the response.
675 If false no <QUALIFIER> elements are present in the returned Instance.
676 If the IncludeClassOrigin input parameter is true, this specifies that the
677 CLASSORIGIN attribute MUST be present on all appropriate elements in the
678 returned Instance. If false, no CLASSORIGIN attributes are present in the
679 returned Instance.
680 If the PropertyList input parameter is not NULL, the members of the array define
681 one or more Property names. The returned Instance MUST NOT include elements for
682 any Properties missing from this list. Note that if LocalOnly is specified as
683 true this acts as an additional filter on the set of Properties returned (for
684 example, if Property A is included in the PropertyList but LocalOnly is set to
685 true and A is not local to the requested Instance, then it will not be included
686 in the response). If the PropertyList input parameter is an empty array this
687 signifies that no Properties are included in the response. If the PropertyList
688 input parameter is NULL this specifies that all Properties (subject to the
689 conditions expressed by the other parameters) are included in the response.
690 If the PropertyList contains duplicate elements, the Server MUST ignore the
691 duplicates but otherwise process the request normally. If the PropertyList
692 contains elements which are invalid Property names for the target Instance, the
693 Server MUST ignore such entries but otherwise process the request normally.
694 mike 1.1 If successful, the return value is a single CIM Instance.
695 If unsuccessful, one of the following status codes MUST be returned by this
696 method, where the first applicable error in the list (starting with the first
697 element of the list, and working down) is the error returned. Any additional
698 method-specific interpretation of the error in is given in parentheses.
699 CIM_ERR_ACCESS_DENIED
700 CIM_ERR_INVALID_NAMESPACE
701 CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or
702 otherwise incorrect parameters)
703 CIM_ERR_INVALID_CLASS (the CIM Class does not exist in the specified
704 namespace)
705 CIM_ERR_NOT_FOUND (the CIM Class does exist, but the requested CIM Instance
706 does not exist in the specified namespace)
707 CIM_ERR_FAILED (some other unspecified error occurred)
708 Back to contents
709 2.4.3. DeleteClass
710 This operation is used to delete a single CIM Class from the target Namespace.
711 DeleteClass
712 void DeleteClass (
713 [IN] <className> ClassName
714 )
715 mike 1.1
716 The ClassName input parameter defines the name of the Class to be deleted.
717 If successful, the specified Class (including any subclasses and any instances)
718 MUST have been removed by the CIM Server. The operation MUST fail if any one of
719 these objects cannot be deleted.
720 If unsuccessful, one of the following status codes MUST be returned by this
721 method, where the first applicable error in the list (starting with the first
722 element of the list, and working down) is the error returned. Any additional
723 method-specific interpretation of the error in is given in parentheses.
724 CIM_ERR_ACCESS_DENIED
725 CIM_ERR_NOT_SUPPORTED
726 CIM_ERR_INVALID_NAMESPACE
727 CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or
728 otherwise incorrect parameters)
729 CIM_ERR_NOT_FOUND (the CIM Class to be deleted does not exist)
730 CIM_ERR_CLASS_HAS_CHILDREN (the CIM Class has one or more subclasses which
731 cannot be deleted)
732 CIM_ERR_CLASS_HAS_INSTANCES (the CIM Class has one or more instances which
733 cannot be deleted)
734 CIM_ERR_FAILED (some other unspecified error occurred)
735 Back to contents
736 mike 1.1 2.4.4. DeleteInstance
737 This operation is used to delete a single CIM Instance from the target
738 Namespace.
739 DeleteInstance
740 void DeleteInstance (
741 [IN] <instanceName> InstanceName
742 )
743
744 The InstanceName input parameter defines the name (model path) of the Instance
745 to be deleted.
746 If successful, the specified Instance MUST have been removed by the CIM Server.
747 If unsuccessful, one of the following status codes MUST be returned by this
748 method, where the first applicable error in the list (starting with the first
749 element of the list, and working down) is the error returned. Any additional
750 method-specific interpretation of the error in is given in parentheses.
751 CIM_ERR_ACCESS_DENIED
752 CIM_ERR_NOT_SUPPORTED
753 CIM_ERR_INVALID_NAMESPACE
754 CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or
755 otherwise incorrect parameters)
756 CIM_ERR_INVALID_CLASS (the CIM Class does not exist in the specified
757 mike 1.1 namespace)
758 CIM_ERR_NOT_FOUND (the CIM Class does exist, but the requested CIM Instance
759 does not exist in the specified namespace)
760 CIM_ERR_FAILED (some other unspecified error occurred)
761 Back to contents
762 2.4.5. CreateClass
763 This operation is used to create a single CIM Class in the target Namespace.
764 The Class MUST NOT already exist.
765 CreateClass
766 void CreateClass (
767 [IN] <class> NewClass
768 )
769
770 The NewClass input parameter defines the new Class. The proposed definition
771 MUST be a correct Class definition according to the CIM specification [1].
772 In processing the creation of the new Class, the following rules MUST be
773 conformed to by the CIM Server:
774 Any CLASSORIGIN and PROPAGATED attributes in the NewClass MUST be ignored by
775 the Server.
776 If the new Class has no Superclass, the NewClass parameter defines a new base
777 Class. The Server MUST ensure that all Properties and Methods of the new Class
778 mike 1.1 have a CLASSORIGIN attribute whose value is the name of the new Class.
779 If the new Class has a Superclass, the NewClass parameter defines a new
780 Subclass of that Superclass. The Superclass MUST exist. The Server MUST ensure
781 that:
782 Any Properties, Methods or Qualifiers in the Subclass not defined in the
783 Superclass are created as new elements of the Subclass. In particular the
784 Server MUST set the CLASSORIGIN attribute on the new Properties and Methods
785 to the name of the Subclass, and ensure that all other Properties and
786 Methods preserve their CLASSORIGIN attribute value from that defined in the
787 Superclass.
788 If a Property is defined in the Superclass and in the Subclass, the value
789 assigned to that property in the Subclass (including NULL) becomes the
790 default value of the property for the Subclass.
791 If a Property or Method of the Superclass is not specified in the Subclass,
792 then that Property or Method is inherited without modification by the
793 Subclass.
794 Any Qualifiers defined in the Superclass with a TOSUBCLASS attribute value
795 of true MUST appear in the resulting Subclass. Qualifiers in the Superclass
796 with a TOSUBCLASS attribute value of false MUST NOT be propagated to the
797 Subclass.
798 Any Qualifier propagated from the Superclass cannot be modified in the
799 mike 1.1 Subclass if the OVERRIDABLE attribute of that Qualifier was set to false in
800 the Superclass. It is a Client error to specify such a Qualifier in the
801 NewClass with a different definition to that in the Superclass (where
802 definition encompasses the name, type and flavor attribute settings of the
803 <QUALIFIER> element, and the value of the Qualifier).
804 If successful, the specified Class MUST have been created by the CIM Server.
805 If unsuccessful, one of the following status codes MUST be returned by this
806 method, where the first applicable error in the list (starting with the first
807 element of the list, and working down) is the error returned. Any additional
808 method-specific interpretation of the error in is given in parentheses.
809 CIM_ERR_ACCESS_DENIED
810 CIM_ERR_NOT_SUPPORTED
811 CIM_ERR_INVALID_NAMESPACE
812 CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or
813 otherwise incorrect parameters)
814 CIM_ERR_ALREADY_EXISTS (the CIM Class already exists)
815 CIM_ERR_INVALID_SUPERCLASS (the putative CIM Class declares a non-existent
816 superclass)
817 CIM_ERR_FAILED (some other unspecified error occurred)
818 Back to contents
819 2.4.6. CreateInstance
820 mike 1.1 This operation is used to create a single CIM Instance in the target Namespace.
821 The Instance MUST NOT already exist.
822 CreateInstance
823 <instanceName> CreateInstance (
824 [IN] <instance> NewInstance
825 )
826
827 The NewInstance input parameter defines the new Instance. The proposed
828 definition MUST be a correct Instance definition for the underlying CIM Class
829 according to the CIM specification [1].
830 In processing the creation of the new Instance, the following rules MUST be
831 conformed to by the CIM Server:
832 Any CLASSORIGIN and PROPAGATED attributes in the NewInstance MUST be ignored
833 by the Server.
834 The Server MUST ensure that:
835 Any Qualifiers in the Instance not defined in the Class are created as new
836 elements of the Instance.
837 All Properties of the Instance preserve their CLASSORIGIN attribute value
838 from that defined in the Class.
839 If a Property is specified in the ModifiedInstance parameter, the value
840 assigned to that property in the Instance (including NULL) becomes the value
841 mike 1.1 of the property for the Instance. Note that it is a Client error to specify
842 a Property that does not belong to the Class.
843 If a Property of the Class is not specified in the Instance, then that
844 Property is inherited without modification by the Instance.
845 Any Qualifiers defined in the Class with a TOINSTANCE attribute value of
846 true appear in the Instance. Qualifiers in the Class with a TOINSTANCE
847 attribute value of false MUST NOT be propagated to the Instance.
848 Any Qualifier propagated from the Class cannot be modified in the Instance
849 if the OVERRIDABLE attribute of that Qualifier was set to false in the
850 Class. It is a Client error to specify such a Qualifier in the NewInstance
851 with a different definition to that in the Class (where definition
852 encompasses the name, type and flavor attribute settings of the <QUALIFIER>
853 element, and the value of the Qualifier).
854 If successful, the return value defines the object path of the new CIM Instance
855 relative to the target Namespace (i.e. the Model Path as defined by [1]),
856 created by the CIM Server. It is returned in case one or more of the new keys
857 of the Instance are allocated dynamically during the creation process rather
858 than specified in the request.
859 If unsuccessful, one of the following status codes MUST be returned by this
860 method, where the first applicable error in the list (starting with the first
861 element of the list, and working down) is the error returned. Any additional
862 mike 1.1 method-specific interpretation of the error in is given in parentheses.
863 CIM_ERR_ACCESS_DENIED
864 CIM_ERR_NOT_SUPPORTED
865 CIM_ERR_INVALID_NAMESPACE
866 CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or
867 otherwise incorrect parameters)
868 CIM_ERR_INVALID_CLASS (the CIM Class of which this is to be a new Instance
869 does not exist)
870 CIM_ERR_ALREADY_EXISTS (the CIM Instance already exists)
871 CIM_ERR_FAILED (some other unspecified error occurred)
872 Back to contents
873 2.4.7. ModifyClass
874 This operation is used to modify an existing CIM Class in the target Namespace.
875 The Class MUST already exist.
876 ModifyClass
877 void ModifyClass (
878 [IN] <class> ModifiedClass
879 )
880
881 The ModifiedClass input parameter defines the set of changes (which MUST be
882 correct amendments to the CIM Class as defined by the CIM Specification [1]) to
883 mike 1.1 be made to the current class definition.
884 In processing the modifcation of the Class, the following rules MUST be
885 conformed to by the CIM Server:
886 Any CLASSORIGIN and PROPAGATED attributes in the ModifiedClass MUST be ignored
887 by the Server.
888 If the modified Class has no Superclass, the ModifiedClass parameter defines
889 modifications to a base Class. The Server MUST ensure that:
890 All Properties and Methods of the modified Class have a CLASSORIGIN
891 attribute whose value is the name of this Class.
892 Any Properties, Methods or Qualifiers in the existing Class definition which
893 do not appear in the ModifiedClass parameter are removed from the resulting
894 modified Class.
895 If the modified Class has a Superclass, the ModifiedClass parameter defines
896 modifications to a Subclass of that Superclass. The Superclass MUST exist, and
897 the Client MUST NOT change the name of the Superclass in the modified
898 Subclass. The Server MUST ensure that:
899 Any Properties, Methods or Qualifiers in the Subclass not defined in the
900 Superclass are created as elements of the Subclass. In particular the Server
901 MUST set the CLASSORIGIN attribute on the new Properties and Methods to the
902 name of the Subclass, and MUST ensure that all other Properties and Methods
903 preserve their CLASSORIGIN attribute value from that defined in the
904 mike 1.1 Superclass.
905 Any Property, Method or Qualifier previously defined in the Subclass but not
906 defined in the Superclass, and which is not present in the ModifiedClass
907 parameter, is removed from the Subclass.
908 If a Property is specified in the ModifiedClass parameter, the value
909 assigned to that property therein (including NULL) becomes the default value
910 of the property for the Subclass.
911 If a Property or Method of the Superclass is not specified in the Subclass,
912 then that Property or Method is inherited without modification by the
913 Subclass (so that any previous changes to such an Element in the Subclass
914 are lost).
915 If a Qualifier in the Superclass is not specified in the Subclass, and the
916 Qualifier is defined in the Superclass with a TOSUBCLASS attribute value of
917 true, then the Qualifier MUST still be present in the resulting modified
918 Subclass (it is not possible to remove a propagated Qualifier from a
919 Subclass).
920 Any Qualifier propagated from the Superclass cannot be modified in the
921 Subclass if the OVERRIDABLE attribute of that Qualifier was set to false in
922 the Superclass. It is a Client error to specify such a Qualifier in the
923 ModifiedClass with a different definition to that in the Superclass (where
924 definition encompasses the name, type and flavor attribute settings of the
925 mike 1.1 <QUALIFIER> element, and the value of the Qualifier).
926 Any Qualifiers defined in the Superclass with a TOSUBCLASS attribute value
927 of false MUST NOT be propagated to the Subclass.
928 If successful, the specified Class MUST have been updated by the CIM Server.
929 The request to modify the Class MUST fail if the Server cannot update any
930 existing Subclasses or Instances of that Class in a consistent manner.
931 If unsuccessful, one of the following status codes MUST be returned by this
932 method, where the first applicable error in the list (starting with the first
933 element of the list, and working down) is the error returned. Any additional
934 method-specific interpretation of the error in is given in parentheses.
935 CIM_ERR_ACCESS_DENIED
936 CIM_ERR_NOT_SUPPORTED
937 CIM_ERR_INVALID_NAMESPACE
938 CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or
939 otherwise incorrect parameters)
940 CIM_ERR_NOT_FOUND (the CIM Class does not exist)
941 CIM_ERR_INVALID_SUPERCLASS (the putative CIM Class declares a non-existent or
942 incorrect superclass)
943 CIM_ERR_CLASS_HAS_CHILDREN (the modification could not be performed because it
944 was not possible to update the subclasses of the Class in a consistent
945 fashion)
946 mike 1.1 CIM_ERR_CLASS_HAS_INSTANCES (the modification could not be performed because
947 it was not possible to update the instances of the Class in a consistent
948 fashion)
949 CIM_ERR_FAILED (some other unspecified error occurred)
950 Back to contents
951 2.4.8. ModifyInstance
952 This operation is used to modify an existing CIM Instance in the target
953 Namespace. The Instance MUST already exist.
954 ModifyInstance
955 void ModifyInstance (
956 [IN] <namedInstance> ModifiedInstance
957 )
958
959 The ModifiedInstance input parameter identifies the name of the Instance to be
960 modified, and defines the set of changes (which MUST be correct amendments to
961 the Instance as defined by the CIM Specification [1]) to be made to the current
962 Instance definition.
963 In processing the modifcation of the Instance, the following rules MUST be
964 conformed to by the CIM Server:
965 Any CLASSORIGIN and PROPAGATED attributes in the ModifiedInstance MUST be
966 ignored by the Server.
967 mike 1.1 The Class MUST exist, and the Client MUST NOT change the name of the Class in
968 the modified Instance. The Server MUST ensure that:
969 Any Qualifiers in the Instance not defined in the Class are created as new
970 elements of the Instance.
971 All Properties of the Instance preserve their CLASSORIGIN attribute value
972 from that defined in the Class.
973 Any Qualifier previously defined in the Instance but not defined in the
974 Class, and which is not present in the ModifiedInstance parameter, is
975 removed from the Instance.
976 If a Property is specified in the ModifiedInstance parameter, the value
977 assigned to that property therein (including NULL) becomes the value of the
978 property for the Instance. Note that it is a Client error to specify a
979 Property that does not belong to the Class.
980 If a Property of the Class is not specified in the Instance, then that
981 Property is inherited without modification by the Instance (so that any
982 previous changes to that Property in the Instance are lost).
983 Any Qualifiers defined in the Class with a TOINSTANCE attribute value of
984 true appear in the Instance (it is not possible remove a propagated
985 Qualifier from an Instance. Qualifiers in the Class with a TOINSTANCE
986 attribute value of false MUST NOT be propagated to the Instance.
987 Any Qualifier propagated from the Class cannot be modified by the Server if
988 mike 1.1 the OVERRIDABLE attribute of that Qualifier was set to false in the Class.
989 It is a Client error to specify such a Qualifier in the ModifiedInstance
990 with a different definition to that in the Class (where definition
991 encompasses the name, type and flavor attribute settings of the <QUALIFIER>
992 element, and the value of the Qualifier).
993 Any Qualifier propagated from the Class cannot be modified in the Instance
994 if the OVERRIDABLE attribute of that Qualifier was set to false in the
995 Class. It is a Client error to specify such a Qualifier in the
996 ModifiedInstance with a different definition to that in the Class (where
997 definition encompasses the name, type and flavor attribute settings of the
998 <QUALIFIER> element, and the value of the Qualifier).
999 If successful, the specified Instance MUST have been updated by the CIM Server.
1000
1001 If unsuccessful, one of the following status codes MUST be returned by this
1002 method, where the first applicable error in the list (starting with the first
1003 element of the list, and working down) is the error returned. Any additional
1004 method-specific interpretation of the error in is given in parentheses.
1005 CIM_ERR_ACCESS_DENIED
1006 CIM_ERR_NOT_SUPPORTED
1007 CIM_ERR_INVALID_NAMESPACE
1008 CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or
1009 mike 1.1 otherwise incorrect parameters)
1010 CIM_ERR_INVALID_CLASS (the CIM Class of which this is to be a new Instance
1011 does not exist)
1012 CIM_ERR_NOT_FOUND (the CIM Instance does not exist)
1013 CIM_ERR_FAILED (some other unspecified error occurred)
1014 Back to contents
1015 2.4.9. EnumerateClasses
1016 This operation is used to enumerate subclasses of a CIM Class in the target
1017 Namespace.
1018 EnumerateClasses
1019 <class>* EnumerateClasses (
1020 [IN,OPTIONAL,NULL] <className> ClassName=NULL,
1021 [IN,OPTIONAL] boolean DeepInheritance = false,
1022 [IN,OPTIONAL] boolean LocalOnly = true,
1023 [IN,OPTIONAL] boolean IncludeQualifiers = true,
1024 [IN,OPTIONAL] boolean IncludeClassOrigin = false
1025 )
1026
1027 The ClassName input parameter defines the Class that is the basis for the
1028 enumeration.
1029 If the DeepInheritance input parameter is true, this specifies that all
1030 mike 1.1 subclasses of the specified Class should be returned (if the ClassName input
1031 parameter is absent, this implies that all Classes in the target Namespace
1032 should be returned). If false, only immediate child subclasses are returned (if
1033 the ClassName input parameter is NULL, this implies that all base Classes in the
1034 target Namespace should be returned).
1035 If the LocalOnly input parameter is true, it specifies that, for each returned
1036 Class, only elements (properties, methods and qualifiers) overriden within the
1037 definition of that Class are included [1]. If false, all elements are returned.
1038 This parameter therefore effects a CIM Server-side mechanism to filter certain
1039 elements of the returned object based on whether or not they have been
1040 propagated from the parent Class (as defined by the PROPAGATED attribute).
1041 If the IncludeQualifiers input parameter is true, this specifies that all
1042 Qualifiers for each Class (including Qualifiers on the Class and on any returned
1043 Properties, Methods or Method Parameters) MUST be included as <QUALIFIER>
1044 elements in the response. If false no <QUALIFIER> elements are present in each
1045 returned Class.
1046 If the IncludeClassOrigin input parameter is true, this specifies that the
1047 CLASSORIGIN attribute MUST be present on all appropriate elements in each
1048 returned Class. If false, no CLASSORIGIN attributes are present in each returned
1049 Class.
1050 If successful, the method returns zero or more Classes that meet the required
1051 mike 1.1 criteria.
1052 If unsuccessful, one of the following status codes MUST be returned by this
1053 method, where the first applicable error in the list (starting with the first
1054 element of the list, and working down) is the error returned. Any additional
1055 method-specific interpretation of the error in is given in parentheses.
1056 CIM_ERR_ACCESS_DENIED
1057 CIM_ERR_NOT_SUPPORTED
1058 CIM_ERR_INVALID_NAMESPACE
1059 CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or
1060 otherwise incorrect parameters)
1061 CIM_ERR_INVALID_CLASS (the CIM Class that is the basis for this enumeration
1062 does not exist)
1063 CIM_ERR_FAILED (some other unspecified error occurred)
1064 Back to contents
1065 2.4.10. EnumerateClassNames
1066 This operation is used to enumerate the names of subclasses of a CIM Class in
1067 the target Namespace.
1068 EnumerateClassNames
1069 <className>* EnumerateClassNames (
1070 [IN,OPTIONAL,NULL] <className> ClassName = NULL,
1071 [IN,OPTIONAL] boolean DeepInheritance = false
1072 mike 1.1 )
1073
1074 The ClassName input parameter defines the Class that is the basis for the
1075 enumeration.
1076 If the DeepInheritance input parameter is true, this specifies that the names of
1077 all subclasses of the specified Class should be returned (if the ClassName input
1078 parameter is absent, this implies that the names of all Classes in the target
1079 Namespace should be returned). If false, only the names of immediate child
1080 subclasses are returned (if the ClassName input parameter is NULL, this implies
1081 that the names of all base Classes in the target Namespace should be returned).
1082 If successful, the method returns zero or more names of Classes that meet the
1083 requested criteria.
1084 If unsuccessful, one of the following status codes MUST be returned by this
1085 method, where the first applicable error in the list (starting with the first
1086 element of the list, and working down) is the error returned. Any additional
1087 method-specific interpretation of the error in is given in parentheses.
1088 CIM_ERR_ACCESS_DENIED
1089 CIM_ERR_NOT_SUPPORTED
1090 CIM_ERR_INVALID_NAMESPACE
1091 CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or
1092 otherwise incorrect parameters)
1093 mike 1.1 CIM_ERR_INVALID_CLASS (the CIM Class that is the basis for this enumeration
1094 does not exist)
1095 CIM_ERR_FAILED (some other unspecified error occurred)
1096 Back to contents
1097 2.4.11. EnumerateInstances
1098 This operation is used to enumerate instances of a CIM Class in the target
1099 Namespace.
1100 EnumerateInstances
1101 <namedInstance>* EnumerateInstances (
1102 [IN] <className> ClassName,
1103 [IN,OPTIONAL] boolean LocalOnly = true,
1104 [IN,OPTIONAL] boolean DeepInheritance = true,
1105 [IN,OPTIONAL] boolean IncludeQualifiers = false,
1106 [IN,OPTIONAL] boolean IncludeClassOrigin = false,
1107 [IN,OPTIONAL,NULL] string PropertyList [] = NULL
1108 )
1109
1110 The ClassName input parameter defines the Class that is the basis for the
1111 enumeration.
1112 If the LocalOnly input parameter is true, this specifies that, for each returned
1113 Instance, only elements (properties and qualifiers) overriden within the
1114 mike 1.1 definition of that Instance are included [1]. If false, all elements are
1115 returned. This parameter therefore effects a CIM Server-side mechanism to
1116 filter certain elements of the returned object based on whether or not they have
1117 been propagated from the parent Class (as defined by the PROPAGATED attribute).
1118 If the DeepInheritance input parameter is true, this specifies that, for each
1119 returned Instance of the Class, all properties of the Instance MUST be present
1120 (subject to constraints imposed by the other parameters), including any which
1121 were added by subclassing the specified Class. If false, each returned Instance
1122 includes only properties defined for the specified Class.
1123 If the IncludeQualifiers input parameter is true, this specifies that all
1124 Qualifiers for each Instance (including Qualifiers on the Instance and on any
1125 returned Properties) MUST be included as <QUALIFIER> elements in the response.
1126 If false no <QUALIFIER> elements are present in each returned Instance.
1127 If the IncludeClassOrigin input parameter is true, this specifies that the
1128 CLASSORIGIN attribute MUST be present on all appropriate elements in each
1129 returned Instance. If false, no CLASSORIGIN attributes are present in each
1130 returned Instance.
1131 If the PropertyList input parameter is not NULL, the members of the array define
1132 one or more Property names. Each returned Instance MUST NOT include elements
1133 for any Properties missing from this list. Note that if LocalOnly is specified
1134 as true (or DeepInheritance is specified as false) this acts as an additional
1135 mike 1.1 filter on the set of Properties returned (for example, if Property A is included
1136 in the PropertyList but LocalOnly is set to true and A is not local to a
1137 returned Instance, then it will not be included in that Instance). If the
1138 PropertyList input parameter is an empty array this signifies that no Properties
1139 are included in each returned Instance. If the PropertyList input parameter is
1140 NULL this specifies that all Properties (subject to the conditions expressed by
1141 the other parameters) are included in each returned Instance.
1142 If the PropertyList contains duplicate elements, the Server MUST ignore the
1143 duplicates but otherwise process the request normally. If the PropertyList
1144 contains elements which are invalid Property names for any target Instance, the
1145 Server MUST ignore such entries but otherwise process the request normally.
1146 If successful, the method returns zero or more named Instances that meet the
1147 required criteria.
1148 If unsuccessful, one of the following status codes MUST be returned by this
1149 method, where the first applicable error in the list (starting with the first
1150 element of the list, and working down) is the error returned. Any additional
1151 method-specific interpretation of the error in is given in parentheses.
1152 CIM_ERR_ACCESS_DENIED
1153 CIM_ERR_NOT_SUPPORTED
1154 CIM_ERR_INVALID_NAMESPACE
1155 CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or
1156 mike 1.1 otherwise incorrect parameters)
1157 CIM_ERR_INVALID_CLASS (the CIM Class that is the basis for this enumeration
1158 does not exist)
1159 CIM_ERR_FAILED (some other unspecified error occurred)
1160 Back to contents
1161 2.4.12. EnumerateInstanceNames
1162 This operation is used to enumerate the names (model paths) of the instances of
1163 a CIM Class in the target Namespace.
1164 EnumerateInstanceNames
1165 <instanceName>* EnumerateInstanceNames (
1166 [IN] <className> ClassName
1167 )
1168
1169 The ClassName input parameter defines the Class that is the basis for the
1170 enumeration.
1171 If successful, the method returns zero or more names of Instances (model paths)
1172 that meet the requsted criteria.
1173 If unsuccessful, one of the following status codes MUST be returned by this
1174 method, where the first applicable error in the list (starting with the first
1175 element of the list, and working down) is the error returned. Any additional
1176 method-specific interpretation of the error in is given in parentheses.
1177 mike 1.1 CIM_ERR_ACCESS_DENIED
1178 CIM_ERR_NOT_SUPPORTED
1179 CIM_ERR_INVALID_NAMESPACE
1180 CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or
1181 otherwise incorrect parameters)
1182 CIM_ERR_INVALID_CLASS (the CIM Class that is the basis for this enumeration
1183 does not exist)
1184 CIM_ERR_FAILED (some other unspecified error occurred)
1185 Back to contents
1186 2.4.13. ExecQuery
1187 This operation is used to execute a query against the target Namespace.
1188 ExecQuery
1189 <object>* ExecQuery (
1190 [IN] string QueryLanguage,
1191 [IN] string Query
1192 )
1193
1194 The QueryLanguage input parameter defines the query language in which the Query
1195 parameter is expressed.
1196 The Query input parameter defines the query to be executed.
1197 Neither the Query language nor the format of the Query are defined by this
1198 mike 1.1 specification. It is anticipated that Query languages will be submitted to the
1199 DMTF as separate proposals.
1200 A mechanism whereby CIM Servers can declare which query languages they support
1201 (if any) is defined in Determining CIM Server Capabilities.
1202 If successful, the method returns zero or more CIM Classes or Instances that
1203 correspond to the results set of the query.
1204 If unsuccessful, one of the following status codes MUST be returned by this
1205 method, where the first applicable error in the list (starting with the first
1206 element of the list, and working down) is the error returned. Any additional
1207 method-specific interpretation of the error in is given in parentheses.
1208 CIM_ERR_ACCESS_DENIED
1209 CIM_ERR_NOT_SUPPORTED
1210 CIM_ERR_INVALID_NAMESPACE
1211 CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or
1212 otherwise incorrect parameters)
1213 CIM_ERR_QUERY_LANGUAGE_NOT_SUPPORTED (the requested query language is not
1214 recognized)
1215 CIM_ERR_INVALID_QUERY (the query is not a valid query in the specified query
1216 language)
1217 CIM_ERR_FAILED (some other unspecified error occurred)
1218 Back to contents
1219 mike 1.1 2.4.14. Associators
1220 This operation is used to enumerate CIM Objects (Classes or Instances) that are
1221 associated to a particular source CIM Object.
1222 Associators
1223 <objectWithPath>* Associators (
1224 [IN] <objectName> ObjectName,
1225 [IN,OPTIONAL,NULL] <className> AssocClass = NULL,
1226 [IN,OPTIONAL,NULL] <className> ResultClass = NULL,
1227 [IN,OPTIONAL,NULL] string Role = NULL,
1228 [IN,OPTIONAL,NULL] string ResultRole = NULL,
1229 [IN,OPTIONAL] boolean IncludeQualifiers = false,
1230 [IN,OPTIONAL] boolean IncludeClassOrigin = false,
1231 [IN,OPTIONAL,NULL] string PropertyList [] = NULL
1232 )
1233
1234 The ObjectName input parameter defines the source CIM Object whose associated
1235 Objects are to be returned. This may be either a Class name or Instance name
1236 (model path).
1237 The AssocClass input parameter, if not NULL, MUST be a valid CIM Association
1238 Class name. It acts as a filter on the returned set of Objects by mandating that
1239 each returned Object MUST be associated to the source Object via an Instance of
1240 mike 1.1 this Class or one of its subclasses.
1241 The ResultClass input parameter, if not NULL, MUST be a valid CIM Class name. It
1242 acts as a filter on the returned set of Objects by mandating that each returned
1243 Object MUST be either an Instance of this Class (or one of its subclasses) or be
1244 this Class (or one of its subclasses).
1245 The Role input parameter, if not NULL, MUST be a valid Property name. It acts as
1246 a filter on the returned set of Objects by mandating that each returned Object
1247 MUST be associated to the source Object via an Association in which the source
1248 Object plays the specified role (i.e. the name of the Property in the
1249 Association Class that refers to the source Object MUST match the value of this
1250 parameter).
1251 The ResultRole input parameter, if not NULL, MUST be a valid Property name. It
1252 acts as a filter on the returned set of Objects by mandating that each returned
1253 Object MUST be associated to the source Object via an Association in which the
1254 returned Object plays the specified role (i.e. the name of the Property in the
1255 Association Class that refers to the returned Object MUST match the value of
1256 this parameter).
1257 If the IncludeQualifiers input parameter is true, this specifies that all
1258 Qualifiers for each Object (including Qualifiers on the Object and on any
1259 returned Properties) MUST be included as <QUALIFIER> elements in the response.
1260 If false no <QUALIFIER> elements are present in each returned Object.
1261 mike 1.1 If the IncludeClassOrigin input parameter is true, this specifies that the
1262 CLASSORIGIN attribute MUST be present on all appropriate elements in each
1263 returned Object. If false, no CLASSORIGIN attributes are present in each
1264 returned Object.
1265 If the PropertyList input parameter is not NULL, the members of the array define
1266 one or more Property names. Each returned Object MUST NOT include elements for
1267 any Properties missing from this list. Note that if LocalOnly is specified as
1268 true (or DeepInheritance is specified as false) this acts as an additional
1269 filter on the set of Properties returned (for example, if Property A is included
1270 in the PropertyList but LocalOnly is set to true and A is not local to a
1271 returned Instance, then it will not be included in that Instance). If the
1272 PropertyList input parameter is an empty array this signifies that no Properties
1273 are included in each returned Object. If the PropertyList input parameter is
1274 NULL this specifies that all Properties (subject to the conditions expressed by
1275 the other parameters) are included in each returned Object.
1276 If the PropertyList contains duplicate elements, the Server MUST ignore the
1277 duplicates but otherwise process the request normally. If the PropertyList
1278 contains elements which are invalid Property names for any target Object, the
1279 Server MUST ignore such entries but otherwise process the request normally.
1280 Clients SHOULD NOT explicitly specify properties in the PropertyList parameter
1281 unless they have specified a non-NULL value for the ResultClass parameter.
1282 mike 1.1 If successful, the method returns zero or more CIM Classes or Instances meeting
1283 the requested criteria. Since it is possible for CIM Objects from different
1284 hosts or namespaces to be associated, each returned Object includes location
1285 information.
1286 If unsuccessful, one of the following status codes MUST be returned by this
1287 method, where the first applicable error in the list (starting with the first
1288 element of the list, and working down) is the error returned. Any additional
1289 method-specific interpretation of the error in is given in parentheses.
1290 CIM_ERR_ACCESS_DENIED
1291 CIM_ERR_NOT_SUPPORTED
1292 CIM_ERR_INVALID_NAMESPACE
1293 CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or
1294 otherwise incorrect parameters)
1295 CIM_ERR_FAILED (some other unspecified error occurred)
1296 Back to contents
1297 2.4.15. AssociatorNames
1298 This operation is used to enumerate the names of CIM Objects (Classes or
1299 Instances) that are associated to a particular source CIM Object.
1300 AssociatorNames
1301 <objectPath>* AssociatorNames (
1302 [IN] <objectName> ObjectName,
1303 mike 1.1 [IN,OPTIONAL,NULL] <className> AssocClass = NULL,
1304 [IN,OPTIONAL,NULL] <className> ResultClass = NULL,
1305 [IN,OPTIONAL,NULL] string Role = NULL,
1306 [IN,OPTIONAL,NULL] string ResultRole = NULL
1307 )
1308
1309 The ObjectName input parameter defines the source CIM Object whose associated
1310 names are to be returned. This is either a Class name or Instance name (model
1311 path).
1312 The AssocClass input parameter, if not NULL, MUST be a valid CIM Association
1313 Class name. It acts as a filter on the returned set of names by mandating that
1314 each returned name identifies an Object that MUST be associated to the source
1315 Object via an Instance of this Class or one of its subclasses.
1316 The ResultClass input parameter, if not NULL, MUST be a valid CIM Class name. It
1317 acts as a filter on the returned set of names by mandating that each returned
1318 name identifies an Object that MUST be either an Instance of this Class (or one
1319 of its subclasses) or be this Class (or one of its subclasses).
1320 The Role input parameter, if not NULL, MUST be a valid Property name. It acts as
1321 a filter on the returned set of names by mandating that each returned name
1322 identifies an Object that MUST be associated to the source Object via an
1323 Association in which the source Object plays the specified role (i.e. the name
1324 mike 1.1 of the Property in the Association Class that refers to the source Object MUST
1325 match the value of this parameter).
1326 The ResultRole input parameter, if not NULL, MUST be a valid Property name. It
1327 acts as a filter on the returned set of names by mandating that each returned
1328 name identifies an Object that MUST be associated to the source Object via an
1329 Association in which the named returned Object plays the specified role (i.e.
1330 the name of the Property in the Association Class that refers to the returned
1331 Object MUST match the value of this parameter).
1332 If successful, the method returns zero or more full CIM Class paths or Instance
1333 paths of Objects meeting the requested criteria. Since it is possible for CIM
1334 Objects from different hosts or namespaces to be associated, each returned path
1335 is an absolute path that includes host and namespace information.
1336 If unsuccessful, one of the following status codes MUST be returned by this
1337 method, where the first applicable error in the list (starting with the first
1338 element of the list, and working down) is the error returned. Any additional
1339 method-specific interpretation of the error in is given in parentheses.
1340 CIM_ERR_ACCESS_DENIED
1341 CIM_ERR_NOT_SUPPORTED
1342 CIM_ERR_INVALID_NAMESPACE
1343 CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or
1344 otherwise incorrect parameters)
1345 mike 1.1 CIM_ERR_FAILED (some other unspecified error occurred)
1346 Back to contents
1347 2.4.16. References
1348 This operation is used to enumerate the association objects that refer to a
1349 particular target CIM Object (Class or Instance).
1350 References
1351 <objectWithPath>* References (
1352 [IN] <objectName> ObjectName,
1353 [IN,OPTIONAL,NULL] <className> ResultClass = NULL,
1354 [IN,OPTIONAL,NULL] string Role = NULL,
1355 [IN,OPTIONAL] boolean IncludeQualifiers = false,
1356 [IN,OPTIONAL] boolean IncludeClassOrigin = false,
1357 [IN,OPTIONAL,NULL] string PropertyList [] = NULL
1358 )
1359
1360 The ObjectName input parameter defines the target CIM Object whose referring
1361 Objects are to be returned. This is either a Class name or Instance name (model
1362 path).
1363 The ResultClass input parameter, if not NULL, MUST be a valid CIM Class name. It
1364 acts as a filter on the returned set of Objects by mandating that each returned
1365 Object MUST be an Instance of this Class (or one of its subclasses), or this
1366 mike 1.1 Class (or one of its subclasses).
1367 The Role input parameter, if not NULL, MUST be a valid Property name. It acts as
1368 a filter on the returned set of Objects by mandating that each returned Objects
1369 MUST refer to the target Object via a Property whose name matches the value of
1370 this parameter.
1371 If the IncludeQualifiers input parameter is true, this specifies that all
1372 Qualifiers for each Object (including Qualifiers on the Object and on any
1373 returned Properties) MUST be included as <QUALIFIER> elements in the response.
1374 If false no <QUALIFIER> elements are present in each returned Object.
1375 If the IncludeClassOrigin input parameter is true, this specifies that the
1376 CLASSORIGIN attribute MUST be present on all appropriate elements in each
1377 returned Object. If false, no CLASSORIGIN attributes are present in each
1378 returned Object.
1379 If the PropertyList input parameter is not NULL, the members of the array define
1380 one or more Property names. Each returned Object MUST NOT include elements for
1381 any Properties missing from this list. Note that if LocalOnly is specified as
1382 true (or DeepInheritance is specified as false) this acts as an additional
1383 filter on the set of Properties returned (for example, if Property A is included
1384 in the PropertyList but LocalOnly is set to true and A is not local to a
1385 returned Instance, then it will not be included in that Instance). If the
1386 PropertyList input parameter is an empty array this signifies that no Properties
1387 mike 1.1 are included in each returned Object. If the PropertyList input parameter is
1388 NULL this specifies that all Properties (subject to the conditions expressed by
1389 the other parameters) are included in each returned Object.
1390 If the PropertyList contains duplicate elements, the Server MUST ignore the
1391 duplicates but otherwise process the request normally. If the PropertyList
1392 contains elements which are invalid Property names for any target Object, the
1393 Server MUST ignore such entries but otherwise process the request normally.
1394 Clients SHOULD NOT explicitly specify properties in the PropertyList parameter
1395 unless they have specified a non-NULL value for the ResultClass parameter.
1396 If successful, the method returns zero or more CIM Classes or Instances meeting
1397 the requested criteria. Since it is possible for CIM Objects from different
1398 hosts or namespaces to be associated, each returned Object includes location
1399 information.
1400 If unsuccessful, one of the following status codes MUST be returned by this
1401 method, where the first applicable error in the list (starting with the first
1402 element of the list, and working down) is the error returned. Any additional
1403 method-specific interpretation of the error in is given in parentheses.
1404 CIM_ERR_ACCESS_DENIED
1405 CIM_ERR_NOT_SUPPORTED
1406 CIM_ERR_INVALID_NAMESPACE
1407 CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or
1408 mike 1.1 otherwise incorrect parameters)
1409 CIM_ERR_FAILED (some other unspecified error occurred)
1410 Back to contents
1411 2.4.17. ReferenceNames
1412 This operation is used to enumerate the association objects that refer to a
1413 particular target CIM Object (Class or Instance).
1414 ReferenceNames
1415 <objectPath>* ReferenceNames (
1416 [IN] <objectName> ObjectName,
1417 [IN,OPTIONAL,NULL] <className> ResultClass = NULL,
1418 [IN,OPTIONAL,NULL] string Role = NULL
1419 )
1420
1421 The ObjectName input parameter defines the target CIM Object whose referring
1422 object names are to be returned. It may be either a Class name or an Instance
1423 name (model path).
1424 The ResultClass input parameter, if not NULL, MUST be a valid CIM Class name. It
1425 acts as a filter on the returned set of Object Names by mandating that each
1426 returned Object Name MUST identify an Instance of this Class (or one of its
1427 subclasses), or this Class (or one of its subclasses).
1428 The Role input parameter, if not NULL, MUST be a valid Property name. It acts as
1429 mike 1.1 a filter on the returned set of Object Names by mandating that each returned
1430 Object Name MUST identify an Object that refers to the target Instance via a
1431 Property whose name matches the value of this parameter.
1432 If successful, the method returns the names of zero or more full CIM Class paths
1433 or Instance paths of Objects meeting the requested criteria. Since it is
1434 possible for CIM Objects from different hosts or namespaces to be associated,
1435 each returned path is an absolute path that includes host and namespace
1436 information.
1437 If unsuccessful, one of the following status codes MUST be returned by this
1438 method, where the first applicable error in the list (starting with the first
1439 element of the list, and working down) is the error returned. Any additional
1440 method-specific interpretation of the error in is given in parentheses.
1441 CIM_ERR_ACCESS_DENIED
1442 CIM_ERR_NOT_SUPPORTED
1443 CIM_ERR_INVALID_NAMESPACE
1444 CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or
1445 otherwise incorrect parameters)
1446 CIM_ERR_FAILED (some other unspecified error occurred)
1447 Back to contents
1448 2.4.18. GetProperty
1449 This operation is used to retrieve a single property value from a CIM Instance
1450 mike 1.1 in the target Namespace.
1451 GetProperty
1452 <propertyValue>? GetProperty (
1453 [IN] <instanceName> InstanceName,
1454 [IN] string PropertyName
1455 )
1456
1457 The InstanceName input parameter specifies the name of the Instance (model path)
1458 from which the Property value is requested.
1459 The PropertyName input parameter specifies the name of the Property whose value
1460 is to be returned.
1461 If successful, the return value specifies the value of the requested Property.
1462 If the value is NULL then no element is returned.
1463 If unsuccessful, one of the following status codes MUST be returned by this
1464 method, where the first applicable error in the list (starting with the first
1465 element of the list, and working down) is the error returned. Any additional
1466 method-specific interpretation of the error in is given in parentheses.
1467 CIM_ERR_ACCESS_DENIED
1468 CIM_ERR_INVALID_NAMESPACE
1469 CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or
1470 otherwise incorrect parameters)
1471 mike 1.1 CIM_ERR_INVALID_CLASS (the CIM Class does not exist in the specified
1472 namespace)
1473 CIM_ERR_NOT_FOUND (the CIM Class does exist, but the requested CIM Instance
1474 does not exist in the specified namespace)
1475 CIM_ERR_NO_SUCH_PROPERTY (the CIM Instance does exist, but the requested
1476 Property does not)
1477 CIM_ERR_FAILED (some other unspecified error occurred)
1478 Back to contents
1479 2.4.19. SetProperty
1480 This operation is used to set a single property value in a CIM Instance in the
1481 target Namespace.
1482 SetProperty
1483 void SetProperty (
1484 [IN] <instanceName> InstanceName,
1485 [IN] string PropertyName,
1486 [IN,OPTIONAL,NULL] <propertyValue> NewValue = NULL
1487 )
1488
1489 The InstanceName input parameter specifies the name of the Instance (model path)
1490 for which the Property value is to be updated.
1491 The PropertyName input parameter specifies the name of the Property whose value
1492 mike 1.1 is to be updated.
1493 The NewValue input parameter specifies the new value for the Property (which may
1494 be NULL).
1495 If unsuccessful, one of the following status codes MUST be returned by this
1496 method, where the first applicable error in the list (starting with the first
1497 element of the list, and working down) is the error returned. Any additional
1498 method-specific interpretation of the error in is given in parentheses.
1499 CIM_ERR_ACCESS_DENIED
1500 CIM_ERR_NOT_SUPPORTED
1501 CIM_ERR_INVALID_NAMESPACE
1502 CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or
1503 otherwise incorrect parameters)
1504 CIM_ERR_INVALID_CLASS (the CIM Class does not exist in the specified
1505 namespace)
1506 CIM_ERR_NOT_FOUND (the CIM Class does exist, but the requested CIM Instance
1507 does not exist in the specified namespace)
1508 CIM_ERR_NO_SUCH_PROPERTY (the CIM Instance does exist, but the requested
1509 Property does not)
1510 CIM_ERR_TYPE_MISMATCH (the supplied value is incompatible with the type of the
1511 Property)
1512 CIM_ERR_FAILED (some other unspecified error occurred)
1513 mike 1.1 Back to contents
1514 2.4.20. GetQualifier
1515 This operation is used to retrieve a single Qualifier declaration from the
1516 target Namespace.
1517 GetQualifier
1518 <qualifierDecl> GetQualifier (
1519 [IN] string QualifierName
1520 )
1521
1522 The QualifierName input parameter identifies the Qualifier whose declaration to
1523 be retrieved.
1524 If successful, the method returns the Qualifier declaration for the named
1525 Qualifier.
1526 If unsuccessful, one of the following status codes MUST be returned by this
1527 method, where the first applicable error in the list (starting with the first
1528 element of the list, and working down) is the error returned. Any additional
1529 method-specific interpretation of the error in is given in parentheses.
1530 CIM_ERR_ACCESS_DENIED
1531 CIM_ERR_NOT_SUPPORTED
1532 CIM_ERR_INVALID_NAMESPACE
1533 CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or
1534 mike 1.1 otherwise incorrect parameters)
1535 CIM_ERR_NOT_FOUND (the requested Qualifier declaration did not exist)
1536 CIM_ERR_FAILED (some other unspecified error occurred)
1537 Back to contents
1538 2.4.21. SetQualifier
1539 This operation is used to create or update a single Qualifier declaration in the
1540 target Namespace. If the Qualifier declaration already exists it is
1541 overwritten.
1542 SetQualifier
1543 void SetQualifier (
1544 [IN] <qualifierDecl> QualifierDeclaration
1545 )
1546
1547 The QualifierDeclaration input parameter defines the Qualifier Declaration to be
1548 added to the Namespace.
1549 If successful, the Qualifier declaration MUST have been added to the target
1550 Namespace. If a Qualifier declaration with the same Qualifier name already
1551 existed, then it MUST have been replaced by the new declaration.
1552 If unsuccessful, one of the following status codes MUST be returned by this
1553 method, where the first applicable error in the list (starting with the first
1554 element of the list, and working down) is the error returned. Any additional
1555 mike 1.1 method-specific interpretation of the error in is given in parentheses.
1556 CIM_ERR_ACCESS_DENIED
1557 CIM_ERR_NOT_SUPPORTED
1558 CIM_ERR_INVALID_NAMESPACE
1559 CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or
1560 otherwise incorrect parameters)
1561 CIM_ERR_FAILED (some other unspecified error occurred)
1562 Back to contents
1563 2.4.22. DeleteQualifier
1564 This operation is used to delete a single Qualifier declaration from the target
1565 Namespace.
1566 DeleteQualifier
1567 void DeleteQualifier (
1568 [IN] string QualifierName
1569 )
1570
1571 The QualifierName input parameter identifies the Qualifier whose declaration to
1572 be deleted.
1573 If successful, the specified Qualifier declaration MUST have been deleted from
1574 the Namespace.
1575 If unsuccessful, one of the following status codes MUST be returned by this
1576 mike 1.1 method, where the first applicable error in the list (starting with the first
1577 element of the list, and working down) is the error returned. Any additional
1578 method-specific interpretation of the error in is given in parentheses.
1579 CIM_ERR_ACCESS_DENIED
1580 CIM_ERR_NOT_SUPPORTED
1581 CIM_ERR_INVALID_NAMESPACE
1582 CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or
1583 otherwise incorrect parameters)
1584 CIM_ERR_NOT_FOUND (the requested Qualifier declaration did not exist)
1585 CIM_ERR_FAILED (some other unspecified error occurred)
1586 Back to contents
1587 2.4.23. EnumerateQualifiers
1588 This operation is used to enumerate Qualifier declarations from the target
1589 Namespace.
1590 EnumerateQualifiers
1591 <qualifierDecl>* EnumerateQualifiers (
1592 )
1593
1594 If successful, the method returns zero or more Qualifier declarations.
1595 If unsuccessful, one of the following status codes MUST be returned by this
1596 method, where the first applicable error in the list (starting with the first
1597 mike 1.1 element of the list, and working down) is the error returned. Any additional
1598 method-specific interpretation of the error in is given in parentheses.
1599 CIM_ERR_ACCESS_DENIED
1600 CIM_ERR_NOT_SUPPORTED
1601 CIM_ERR_INVALID_NAMESPACE
1602 CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or
1603 otherwise incorrect parameters)
1604 CIM_ERR_FAILED (some other unspecified error occurred)
1605 Back to contents
1606 2.5. Namespace Manipulation
1607 There are no intrinsic methods defined specifically for the purpose of
1608 manipulating CIM Namespaces. However, the modelling of a CIM Namespace using the
1609 class __Namespace, together with the requirement that the root Namespace MUST be
1610 supported by all CIM Servers, implies that all Namespace operations can be
1611 supported.
1612 For example:
1613 Enumeration of all child Namespaces of a particular Namespace is realized by
1614 calling the intrinsic method EnumerateInstanceNames against the parent
1615 Namespace, specifying a value for the ClassName parameter of __Namespace.
1616 Creation of a child Namespace is realized by calling the intrinsic method
1617 CreateInstance against the parent Namespace, specifying a value for the
1618 mike 1.1 NewInstance parameter which defines a valid instance of the class __Namespace
1619 and whose Name property is the desired name of the new Namespace.
1620 2.6. Functional Profiles
1621 This section partitions the intrinsic methods into functional groups for the
1622 purpose of establishing conformance.
1623 Support for a particular group does not guarantee that all invocations of any
1624 method in that group will succeed. Rather, the exclusion of a group is a
1625 declaration that any attempt to call a method in that group will always return
1626 CIM_ERR_NOT_SUPPORTED.
1627 Mechanisms by which a CIM Server may declare the functional groups that it
1628 supports are defined in the section on Determining CIM Server Capabilities.
1629 In order to limit the number of different profiles that may be supported by a
1630 CIM Server, each functional group has a dependency on another group (with the
1631 exception of the Basic Read functional group). If functional group G1 has a
1632 dependency on functional group G2, then a CIM Server which supports G1 MUST also
1633 support G2.
1634 The dependency relation is transitive, so that if G1 depends on G2, and G2
1635 depends on G3, then G1 depends on G3. It is also anti-symmetric, so that if G1
1636 depends on G2 then G2 cannot depend on G1.
1637 Using these rules, the table below defines a rooted directed tree of
1638 dependencies with the Basic Read dependency representing the root node.
1639 mike 1.1 For example, a CIM Server which supports the Schema Manipulation functional
1640 group MUST also support the Instance Manipulation, Basic Write and Basic Read.
1641 Functional Group DependencyMethods
1642 Basic ReadnoneGetClass
1643 EnumerateClasses
1644 EnumerateClassNames
1645 GetInstance
1646 EnumerateInstances
1647 EnumerateInstanceNames
1648 GetProperty
1649 Basic WriteBasic ReadSetProperty
1650 Schema ManipulationInstance ManipulationCreateClass
1651 ModifyClass
1652 DeleteClass
1653 Instance ManipulationBasic WriteCreateInstance
1654 ModifyInstance
1655 DeleteInstance
1656 Association TraversalBasic ReadAssociators
1657 AssociatorNames
1658 References
1659 ReferenceNames
1660 mike 1.1 Query ExecutionBasic ReadExecQuery
1661 Qualifier DeclarationSchema ManipulationGetQualifier
1662 SetQualifier
1663 DeleteQualifier
1664 EnumerateQualifiers
1665
1666 Back to contents
1667 2.7. Extrinsic Method Invocation
1668 Any CIM Server is assumed to support extrinsic methods. Extrinsic methods are
1669 defined by the Schema supported by the Cim Server. If a Cim Server does not
1670 support extrinsic method invocations, it MUST (subject to the considerations
1671 described in the rest of this section) return the error code
1672 CIM_ERR_NOT_SUPPORTED to any request to execute an extrinsic method. This allows
1673 a CIM client to determine that all attempts to execute extrinsic methods will
1674 fail.
1675 If the Cim Server is unable to perform the extrinsic method invocation, one of
1676 the following status codes MUST be returned by the CimServer, where the first
1677 applicable error in the list (starting with the first element of the list, and
1678 working down) is the error returned. Any additional specific interpretation of
1679 the error is given in parentheses.
1680 CIM_ERR_ACCESS_DENIED
1681 mike 1.1 CIM_ERR_NOT_SUPPORTED (the CimServer does not support extrinsic method
1682 invocations)
1683 CIM_ERR_INVALID_NAMESPACE
1684 CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or
1685 otherwise incorrect parameters)
1686 CIM_ERR_NOT_FOUND (the target CIM Class or instance does not exist in the
1687 specified namespace)
1688 CIM_ERR_METHOD_NOT_FOUND
1689 CIM_ERR_METHOD_NOT_AVAILABLE (the CimServer is unable to honor the invocation
1690 request)
1691 CIM_ERR_FAILED (some other unspecified error occurred)
1692 Back to contents
1693 3. Encapsulation of CIM Operations
1694 All CIM Operation requests MUST be made using either an HTTP M-POST or POST
1695 message, with the preferred mechanism being the use of M-POST. The use of other
1696 HTTP Methods to invoke CIM Operations is outside the scope of this
1697 specification.
1698 All CIM Operation responses are carried in the corresponding HTTP Response
1699 message to the M-POST or POST request.
1700 In the remainder of this document:
1701 the term CIM Operation Request is a convenient shorthand for an HTTP M-POST or
1702 mike 1.1 POST request message that includes an XML entity body which defines an
1703 Operation Request Message, and;
1704 the term CIM Operation Response is a convenient shorthand for an HTTP response
1705 message, issued in response to a CIM Operation Request, that includes an
1706 entity body which defines an Operation Response Message. Note that an HTTP
1707 response to a CIM Operation Request is not always a CIM Operation Response;
1708 for example a "505 HTTP Version Not Supported" response would not be a CIM
1709 Operation Response.
1710 Where it is necessary to distinguish requirements between the use of M-POST and
1711 POST, these will be explicitly defined.
1712 The extension mechanism used in this document is based on the HTTP Extension
1713 Framework [9]. A goal of the framework is to allow a decentralized naming
1714 mechanism whereby parties can introduce additional HTTP Headers without fear of
1715 conflicting interpretation of a given Header name.
1716 It is not the intention of this document to replicate information in that
1717 document concerning the required behavior of entities that implement this
1718 framework; suffice it to say that conforming CIM implementations of this
1719 specification protocol MUST abide by all requirements in that document.
1720 Back to contents
1721 3.1. CIM Clients and Servers
1722 The following definitions are used throughout the remainder of this document:
1723 mike 1.1 A CIM client is an HTTP client that issues CIM Operation Requests and receives
1724 and processes CIM Operation Responses.
1725 A CIM server is an an HTTP server that receives and processes CIM Operation
1726 Requests and issues CIM Operation Responses.
1727 An HTTP client/server MAY be capable of acting as both a CIM client and a CIM
1728 server.
1729 Back to contents
1730 3.2. Use of M-POST and POST
1731 A CIM client attempting a CIM Operation invocation conformant to this
1732 specification MUST first try the invocation using the HTTP method "M-POST".
1733 If the M-POST invocation fails with an HTTP status of "501 Not Implemented" or
1734 "510 Not Extended", then the client SHOULD retry the request using the HTTP
1735 method “POST” with the appropriate modifications (described in Naming of
1736 Extension Headers). The intention is that POST should only be used as a
1737 fallback mechanism in environments where firewalls or proxies do not yet have
1738 the ability to understand M-POST requests.
1739 If the M-POST invocation fails with an HTTP status of "405 Method Not
1740 Allowed", then the client SHOULD fail the request.
1741 For all other status codes the client MUST act in accordance with standard
1742 HTTP [6,7].
1743 This extended invocation mechanism allows Internet proxies & firewalls greater
1744 mike 1.1 filtering control and administrative flexibility over CIM Operation invocations.
1745 In the case of a client receiving a 501 or 510 status in response to an M-POST
1746 request, then in subsequent invocations to the same HTTP server, the client MAY
1747 omit the attempt at M-POST invocations for a suitable period, thus avoiding the
1748 need for an extra round trip on each and every method invocation. The details
1749 of the caching strategy employed by the client are outside of the scope of this
1750 specification.
1751 Given this algorithm, firewalls can if they wish effectively force the use of
1752 M-POST for CIM Operation invocations by prohibiting POST invocations containing
1753 the Extension Header CIMOperation.
1754 3.2.1. Use of the Ext Header
1755 If a CIM Server receives a valid M-POST request, and has fulfilled all mandatory
1756 extension header declarations in the request, then it MUST include in the
1757 response the "Ext" header defined by [9]. This must be protected by the
1758 appropriate Cache-Control directive.
1759 Back to contents
1760 3.3. Extension Headers Defined for CIM Operation Requests and Responses
1761 This section describes the extension headers used to specify CIM operational
1762 semantics in the HTTP Header of an M-POST or POST message.
1763 Any CIM Operation Request or CIM Operation Response MUST include the following
1764 CIM extension header:
1765 mike 1.1 CIMOperation
1766 Any CIM Operation Request MUST include one and only one of the following CIM
1767 extension header sets:
1768 CIMMethod and CIMObject, or
1769 CIMBatch
1770 An HTTP reponse with an error status code to a CIM Operation Request MAY include
1771 the following CIM extension header:
1772 CIMError
1773 All CIM Operation Requests and Responses MAY include the following CIM extension
1774 header:
1775 CIMProtocolVersion
1776 Back to contents
1777 3.3.1. Naming of Extension Headers
1778 In M-POST request messages (and their responses), CIM extension headers MUST be
1779 declared using the name space prefix allotted by the "Man" extension header (in
1780 accordance with [9]) that refers to the name space
1781 "http://www.dmtf.org/cim/mapping/http/v1.0".
1782 The full format of the "Man" header declaration for this specification is:
1783 Man = "Man" ":" "http://www.dmtf.org/cim/mapping/http/v1.0"
1784 ";" "ns" "=" header-prefix
1785 header-prefix = 2*DIGIT
1786 mike 1.1
1787 This header-prefix SHOULD be generated at random on a per-HTTP message basis,
1788 and SHOULD NOT necessarily be a specific number.
1789 In accordance with [9], all POST request messages (and their responses) MUST NOT
1790 include such a mandatory extension declaration. In POST request messages (and
1791 their responses), name space prefixes MUST NOT be used.
1792 Example 1
1793 Using M-POST:
1794 M-POST /cimom HTTP/1.1
1795 Man: http://www.dmtf.org./cim/mapping/http/v1.0 ; ns=23
1796 23-CIMOperation: MethodCall
1797 ...
1798
1799 Example 2
1800 Using POST:
1801 POST /cimom HTTP/1.1
1802 CIMOperation: MethodCall
1803 ...
1804
1805 Back to contents
1806 3.3.2. Encoding of CIM Element Names within HTTP Headers
1807 mike 1.1 CIM element (class, property, qualifier, method or method parameter) names are
1808 natively Unicode, and may use UCS-2 characters unsuitable for inclusion within
1809 an HTTP message header. In order to encode CIM element names represented in
1810 Unicode to values within HTTP Headers, the following mapping MUST be used:
1811 Encode the full Unicode CIM element name using UTF-8 [15], and then;
1812 Apply the standard URI [16, section 2] escaping mechanism to the resulting
1813 string to escape any characters that are unsafe within an HTTP Header, using
1814 the ""%" HEX HEX" convention).
1815 The token CIMIdentifier, where used in this document, represents a CIM element
1816 name to which this transformation has been applied.
1817 One characteristic of this mapping is that CIM elements that are named with an
1818 ASCII representation will appear in ASCII in the resultant URL.
1819 Examples
1820 CIM_LogicalElement is unchanged under this transformation
1821 The class named using the UCS-2 sequence representing the Hangul
1822 characters for the Korean word "hangugo" (D55C, AD6D, C5B4) becomes
1823 %ED%95%9C%EA%B5%AD%EC%96%B4=10
1824 after UTF-8 transformation and escaping all characters with their % HEX
1825 HEX equivalent.
1826
1827 Back to contents
1828 mike 1.1 3.3.3. Encoding of CIM Object Paths within HTTP Headers
1829 This section describes the mapping that MUST be applied in order to represent
1830 CIM object paths, as described within an Operation Request Message using the
1831 <LOCALNAMESPACEPATH>, <LOCALCLASSPATH> or <LOCALINSTANCEPATH> elements, in a
1832 format that is safe for representation within an HTTP header.
1833 If the element to be transformed is a <LOCALNAMESPACEPATH> element, the
1834 algorithm is as follows:
1835 For the first NAMESPACE subelement, output the textual content of that
1836 element.
1837 For each subsequent NAMESPACE subelement, output the forward slash character
1838 (/) followed by the textual content of that NAMESPACE element.
1839 If the element to be transformed is a <LOCALCLASSPATH> element, the algorithm is
1840 as follows:
1841 Transform the <LOCALNAMESPACEPATH> subelement using the rules described above,
1842 and output a colon character (:).
1843 Output the value of the NAME attribute of the <CLASSNAME> subelement.
1844 If the element to be transformed is an <LOCALINSTANCEPATH> element, the
1845 algorithm is as follows:
1846 Transform the <LOCALNAMESPACEPATH> subelement using the rules described above,
1847 and output a colon character (:).
1848 Output the value of the CLASSNAME attribute of the <INSTANCENAME> subelement.
1849 mike 1.1 If there is at least one <KEYBINDING> subelement under the <INSTANCENAME>
1850 subelement, then for each such subelement:
1851 Output a period character (.) if this is the first <KEYBINDING> subelement,
1852 and a comma (,) otherwise.
1853 Output the value of the NAME attribute, followed by an equals character (=).
1854
1855 If there is a <KEYVALUE> subelement, output the textual element content of
1856 that element, subject to the following transformation:
1857 If the VALUETYPE attribute is numeric or boolean, the output is identical
1858 to the content of the element.
1859 If the VALUETYPE attribute is string, the output is obtained by enclosing
1860 the content of the element in double quote (") characters, and escaping
1861 any double quote characters within the value with a preceding backslash
1862 (\) character.
1863 If there is a <VALUE.REFERENCE> subelement
1864 output a double quote character (").
1865 apply the process recursively to the <CLASSPATH> or <INSTANCEPATH>
1866 subelement of the <VALUE.REFERENCE> element, escaping any double quote
1867 character or backslash character thereby generated with a preceding
1868 backslash (\) character.
1869 output a closing double quote character (").
1870 mike 1.1 If there is no <KEYBINDING> subelement but there is a <KEYVALUE> or
1871 <VALUE.REFERENCE> subelement under the <INSTANCENAME> subelement, then:
1872 Output an equals character (=).
1873 Output the transformed value of the <KEYVALUE> or <VALUE.REFERENCE>, using
1874 the same rules as described above.
1875 If there were no <KEYBINDING> subelements, or no <KEYVALUE> or
1876 <VALUE.REFERENCE> subelement, under the <INSTANCENAME> subelement then output
1877 the string "=@" to indicate a singleton instance.
1878 Finally, after applying the above rules to the <LOCALNAMESPACEPATH>,
1879 <LOCALCLASSPATH> or <LOCALINSTANCEPATH> element, transform the entire output
1880 string into URI-safe format as follows:
1881 Encode the string using UTF-8 [15] if it is not already in this format, and
1882 then;
1883 Apply the standard URI [16, section 2] escaping mechanism to the resulting
1884 string to escape any characters that are unsafe within an HTTP Header, using
1885 the ""%" HEX HEX" convention).
1886 The token CIMObjectPath, where used in this document, represents a
1887 <LOCALNAMESPACEPATH>, <LOCALCLASSPATH> or <LOCALINSTANCEPATH> element to which
1888 the above transformation has been applied.
1889 Back to contents
1890 3.3.4. CIMOperation
1891 mike 1.1 This header MUST be present in all CIM Operation Request and CIM Operation
1892 Response messages. It identifies the HTTP message as carrying a CIM Operation
1893 request or response.
1894 CIMOperation = "CIMOperation" ":" ("MethodCall" | "MethodResponse")
1895
1896 A CIM Client MUST include this header, with the value "MethodCall", in all CIM
1897 Operation Requests that it issues. A CIM Server MUST include this header in all
1898 CIM Operation Responses, with the value "MethodResponse", that it issues.
1899 If a CIM Server receives CIM Operation request with this header, but with a
1900 missing value or a value that is not "MethodCall", then it MUST fail the request
1901 with status "400 Bad Request". The CIM Server MUST include a CIMError header in
1902 the response with a value of unsupported-operation.
1903 If a CIM Server receives a CIM Operation request without this header, it MUST
1904 NOT process it as if it were a CIM Operation Request. The status code returned
1905 by the CIM Server in response to such a request is outside of the scope of this
1906 specification.
1907 If a CIM Client receives a response to a CIM Operation Request without this
1908 header (or if this header has a value which is not "MethodResponse"), it SHOULD
1909 discard the response, and take appropriate measures to publicize the fact that
1910 it has received an incorrect response. The details as to how this is done are
1911 outside of the scope of this specification.
1912 mike 1.1 This header affords a simple mechanism by which firewall or proxy administrators
1913 can make global administrative decisions on all CIM Operations.
1914 Back to contents
1915 3.3.5. CIMProtocolVersion
1916 This header MAY be present in any CIM Operation Request or CIM Operation
1917 Response message. The header identifies the version of the CIM mapping onto
1918 HTTP being used by the sending entity.
1919 CIMProtocolVersion = "CIMProtocolVersion" ":" 1*DIGIT "." 1*DIGIT
1920
1921 If the header is omitted, then a value of 1.0 MUST be assummed.
1922 The major and minor numbers MUST be treated as independent integers which MAY be
1923 incremented higher than a single digit. Therefore version x1.y1 is lower than
1924 x2.y2 if and only if:
1925 x1 is less than x2, or;
1926 x1 equals x2, and y1 is less than y2
1927 If a CIM Server receives an CIM Operation Request for which the value of this
1928 header indicates a version that it does not support, then it MUST respond in the
1929 manner defined in the section on Errors.
1930 Otherwise, if a CIM Server receives an CIM Operation Request for which the value
1931 of this header does not match the value of the PROTOCOLVERSION attribute of the
1932 <MESSAGE> element within the Operation Request, then it MUST fail the request
1933 mike 1.1 and return a status of "400 Bad Request" (and MUST include a CIMError header in
1934 the response with a value of unsupported-protocol-version), subject to the
1935 considerations specified in Errors.
1936 Back to contents
1937 3.3.6. CIMMethod
1938 This header MUST be present in any CIM Operation Request message that contains a
1939 Simple Operation Request.
1940 It MUST NOT be present in any CIM Operation Response message, nor in any CIM
1941 Operation Request message that is not a Simple Operation Request.
1942 The header identifies the name of the CIM method to be invoked, encoded in an
1943 HTTP-safe representation. Firewalls and proxies may use this header to carry
1944 out routing and forwarding decisions based on the CIM method to be invoked.
1945 The name of the CIM method within a Simple Operation Request is defined to be
1946 the value of the NAME attribute of the <METHODCALL> or <IMETHODCALL> element.
1947 CIMMethod = "CIMMethod" ":" MethodName
1948 MethodName = CIMIdentifier
1949
1950 If a CIM Server receives a CIM Operation Request for which either:
1951 The CIMMethod header is present but has an invalid value, or;
1952 The CIMMethod header is not present but the Operation Request Message is a
1953 Simple Operation Request, or;
1954 mike 1.1 The CIMMethod header is present but the Operation Request Message is not a
1955 Simple Operation Request, or;
1956 The CIMMethod header is present, the Operation Request Message is a Simple
1957 Operation Request, but the CIMIdentifier value (when unencoded) does not match
1958 the unique method name within the Simple Operation Request,
1959 then it MUST fail the request and return a status of "400 Bad Request" (and MUST
1960 include a CIMError header in the response with a value of header-mismatch),
1961 subject to the considerations specified in Errors.
1962 Note that this verification provides a basic level of assurance that any
1963 intermediate firewall or proxy was not acting on misleading information when it
1964 decided to forward the request based on the content of the CIMMethod header.
1965 Additional securing of HTTP messages against modification in transit (such as
1966 the encryption of the payload or appending of a digital signature thereto) would
1967 be required to provide a higher degree of integrity.
1968 Back to contents
1969 3.3.7. CIMObject
1970 This header MUST be present in any CIM Operation Request message that contains a
1971 Simple Operation Request.
1972 It MUST NOT be present in any CIM Operation Response message, nor in any CIM
1973 Operation Request message that that is not a Simple Operation Request.
1974 The header identifies the CIM object (which MUST be a Class or Instance for an
1975 mike 1.1 extrinsic method, or a Namespace for an intrinsic method) on which the method is
1976 to be invoked, using a CIM object path encoded in an HTTP-safe representation.
1977 Firewalls and proxies may use this header to carry out routing and forwarding
1978 decisions based on the CIM object that is the target of a method invocation.
1979 CIMObject = "CIMObject" ":" ObjectPath
1980 ObjectPath = CIMObjectPath
1981
1982 The ObjectPath value is constructed by applying the algorithm defined in
1983 Encoding CIM Object Paths to either:
1984 The <LOCALNAMESPACEPATH> subelement of the <IMETHODCALL> element, or;
1985 The <LOCALCLASSPATH> or <LOCALINSTANCEPATH> subelement of the <METHODCALL>
1986 element
1987 within the CIM Operation Request.
1988 If a CIM Server receives a CIM Operation Request for which either:
1989 The CIMObject header is present but has an invalid value, or:
1990 The CIMObject header is not present but the Operation Request Message is a
1991 Simple Operation Request, or;
1992 The CIMObject header is present but the Operation Request Message is not a
1993 Simple Operation Request, or;
1994 The CIMObject header is present, Operation Request Message is a Simple
1995 Operation Request, but the ObjectPath value does not match (where match is
1996 mike 1.1 defined in the section on Encoding CIM Object Paths) the Operation Request
1997 Message,
1998 then it MUST fail the request and return a status of "400 Bad Request" (and MUST
1999 include a CIMError header in the response with a value of header-mismatch),
2000 subject to the considerations specified in Errors.
2001 Note that this verification provides a basic level of assurance that any
2002 intermediate firewall or proxy was not acting on misleading information when it
2003 decided to forward the request based on the content of the CIMObject header.
2004 Additional securing of HTTP messages against modification in transit (such as
2005 the encryption of the payload or appending of a digital signature thereto) would
2006 be required to provide a higher degree of integrity.
2007 Back to contents
2008 3.3.8. CIMBatch
2009 This header MUST be present in any CIM Operation Request message that contains a
2010 Multiple Operation Request.
2011 It MUST NOT be present in any CIM Operation Response message, nor in any CIM
2012 Operation Request message that is not a Multiple Operation Request.
2013 The header identifies the encapsulated Operation Request Message as containing
2014 multiple method invocations. Firewalls and proxies may use this header to carry
2015 out routing and forwarding decisions for batched CIM method invocations.
2016 CIMBatch = "CIMBatch"
2017 mike 1.1
2018 If a CIM Server receives a CIM Operation Request for which either:
2019 The CIMBatch header is present but has an invalid value, or:
2020 The CIMBatch header is not present but the Operation Request Message is a
2021 Multiple Operation Request, or;
2022 The CIMBatch header is present but the Operation Request Message is not a
2023 Multiple Operation Request,
2024 then it MUST fail the request and return a status of "400 Bad Request" (and MUST
2025 include a CIMError header in the response with a value of header-mismatch),
2026 subject to the considerations specified in Errors.
2027 Note that this verification provides a basic level of assurance that any
2028 intermediate firewall or proxy was not acting on misleading information when it
2029 decided to forward the request based on the content of the CIMBatch header.
2030 Additional securing of HTTP messages against modification in transit (such as
2031 the encryption of the payload or appending of a digital signature thereto) would
2032 be required to provide a higher degree of integrity.
2033 If a CIM Server receives a CIM Operation Request for which the CIMBatch header
2034 is present, but the Server does not support Multiple Operations, then it MUST
2035 fail the request and return a status of "501 Not Implemented". Firewalls or
2036 Proxies MAY also employ this mechanism to compel a CIM Client to use Simple
2037 Operation Requests rather than Multiple Operation Requests.
2038 mike 1.1 A CIM Client that receives a response of "501 Not Implemented" to a Multiple
2039 Operation Request SHOULD resubmit that request as a series of Simple Operation
2040 Requests.
2041 Back to contents
2042 3.3.9. CIMError
2043 This header MAY be present in any HTTP response to a CIM Operation Request
2044 message that is not a CIM Operation Response.
2045 It MUST NOT be present in any CIM Operation Response message, nor in any CIM
2046 Operation Request.
2047 The header provides further CIM specific diagnostic information in the case that
2048 the CIM Server encountered a fundamental error during processing of the CIM
2049 Operation Request, and is intended to assist Clients to further disambiguate
2050 errors that have the same HTTP status code.
2051 CIMError = "CIMError" ":" cim-error
2052 cim-error = "unsupported-protocol-version" |
2053 "multiple-requests-unsupported" |
2054 "unsupported-cim-version" |
2055 "unsupported-dtd-version" |
2056 "request-not-valid" |
2057 "request-not-well-formed" |
2058 "request-not-loosely-valid" |
2059 mike 1.1 "header-mismatch" |
2060 "unsupported-operation"
2061
2062 Back to contents
2063 4. HTTP Requirements & Usage
2064 4.1. HTTP Support
2065 It is RECOMMENDED that CIM clients and CIM servers support HTTP/1.1 [7]. CIM
2066 clients and servers MAY support HTTP/1.0 instead. CIM clients and servers MUST
2067 NOT be limited to any version of HTTP earlier than 1.0.
2068 It should be noted that the current revised draft [10] of RFC 2068 clarifies and
2069 corrects ambiguities and errors in that RFC.
2070 CIM Clients and Servers that make use of extension headers as defined in this
2071 specification MUST conform to the requirements defined in [9] for their use.
2072 Back to contents
2073 4.2. Use of Standard Headers
2074 Unless otherwise stated herein, CIM clients and CIM servers MUST comply with the
2075 requirements on the use of headers described in [6,7]. This section defines only
2076 any additional requirements on CIM clients and servers with respect to the use
2077 of standard HTTP headers [6,7] within a CIM Operation Request or CIM Operation
2078 Response.
2079 Note that headers defined in RFC 2068 [7] but deprecated from [10] (e.g. Public,
2080 mike 1.1 Content-Base) SHOULD NOT be used by CIM clients and servers.
2081 4.2.1. Accept
2082 If a CIM client includes an Accept header in a request, it MUST specify a value
2083 which allows the Server to return an entity body of "text/xml" or
2084 "application/xml" in the response.
2085 A CIM server MUST accept any value for this header which states that "text/xml"
2086 or "application/xml" is an acceptable type for an response entity. A server
2087 SHOULD return "406 Not Acceptable" if the Accept header indicates that neither
2088 of these content types are acceptable.
2089 If a CIM server decides to accept a request to return an entity of type other
2090 than "text/xml" or "application/xml", the nature of the response is outside of
2091 the domain of this specification.
2092 Back to contents
2093 4.2.2. Accept-Charset
2094 If a CIM client includes an Accept-Charset header in a request, it MUST specify
2095 a value which allows the Server to return an entity body using the character set
2096 "utf-8".
2097 A CIM server MUST accept any value for this header which implies that "utf-8" is
2098 an acceptable character set for an response entity. A server SHOULD return "406
2099 Not Acceptable" if the Accept-Charset header indicates that this character set
2100 is not acceptable.
2101 mike 1.1 If a CIM server decides to accept a request to return an entity using a
2102 character set other than "utf-8", the nature of the response is outside of the
2103 domain of this specification.
2104 See Internationalization Considerations for more details.
2105 Back to contents
2106 4.2.3. Accept-Encoding
2107 If a CIM client includes an Accept-Encoding header in a request, it MUST specify
2108 a value which allows the Server to use the "identity" encoding.
2109 A CIM Server MUST accept any value for this header which implies that "identity"
2110 is an acceptable encoding for the response entity. A server MAY return "406 Not
2111 Acceptable" if the Accept-Encoding header indicates that the this encoding is
2112 not acceptable.
2113 Back to contents
2114 4.2.4. Accept-Language
2115 If a CIM Client includes an Accept-Language header in a request, it SHOULD
2116 specify a value which allows the Server to return an entity in the language of
2117 its' own choosing. This is accomplished by including in the list of acceptable
2118 language ranges the special range "*".
2119 CIM Servers MAY support multiple languages if they so choose.
2120 See Internationalization Considerations for more details.
2121 Back to contents
2122 mike 1.1 4.2.5. Accept-Ranges
2123 CIM clients MUST NOT include this header in a request. A CIM Server MUST reject
2124 a request that includes an Accept-Range header with a status of "406 Not
2125 Acceptable".
2126 Back to contents
2127 4.2.6. Allow
2128 If a CIM Server is returning a "405 Method Not Allowed" response to a CIM
2129 Operations Request then the Allow header MUST include either M-POST or POST.
2130 Whether it includes any other HTTP methods is outside the scope of this
2131 specification.
2132 Back to contents
2133 4.2.7. Authorization
2134 See the section on Security Considerations for more details.
2135 Back to contents
2136 4.2.8. Cache-Control
2137 In general a CIM Operation Request may consist of a mixture of CIM method
2138 invocations, some of which may be eminently cachable (e.g. the Manufacturer
2139 label on a Disk Drive), and some of which may be decidedly uncachable (e.g.
2140 format a Disk Drive).
2141 Furthermore, the encapsulation of such multiple method invocations within an
2142 HTTP POST or M-POST means that if a CIM Operation Request has any effect on an
2143 mike 1.1 HTTP cache it is likely to be one of invalidating cached responses for the
2144 target CIM Server. Indeed HTTP/1.1[7] stipulates that by default POST responses
2145 are not cachable unless the server indicates otherwise using an appropriate
2146 Cache-Control or Expires header.
2147 For these reasons, CIM Operation Responses SHOULD NOT be considered cachable. A
2148 CIM Server SHOULD NOT include a Cache-Control header in a CIM Operation Response
2149 which might indicate to a cache that the response could be cached.
2150 If the CIM Server is responding to a CIM Operation Request coveyed within an
2151 M-POST request, then in accordance with [9] the Server MUST include a no-cache
2152 control directive to prevent inadvertant caching of the "Ext" header. For
2153 example:
2154 HTTP/1.1 200 OK
2155 Ext:
2156 Cache-Control: no-cache
2157 ...
2158
2159 Back to contents
2160 4.2.9. Connection
2161 It is RECOMMENDED that
2162 CIM clients should avoid the use of the "Connection: close" header unless it
2163 is known in advance that this is the only request likely to be sent out on
2164 mike 1.1 that connection.
2165 CIM servers support persistant connections wherever possible.
2166 Timeout mechanisms SHOULD be employed to remove idle connections on both client
2167 and server, the details of which are outside the domain of this specification.
2168 Clients SHOULD be cautious in retrying requests, especially if they are not
2169 idempotent (e.g. method invocation).
2170 CIM clients and servers SHOULD support pipelining [7, section 1.1.2.2] if
2171 possible, but be aware of the requirements defined in [7]. In particular,
2172 attention is drawn to the following requirement from [7]:
2173 Clients SHOULD NOT pipeline requests using non-idempotent methods or
2174 non-idempotent sequences of methods...A client wishing to send a
2175 non-idempotent request SHOULD wait to send that request until it has received
2176 the response status for the previous request.
2177 Back to contents
2178 4.2.10. Content-Encoding
2179 If a CIM client includes a Content-Encoding header in a request, it SHOULD
2180 specify a value of "identity", unless it has good reason to believe that the
2181 Server can accept another encoding.
2182 Back to contents
2183 4.2.11. Content-Language
2184 See Internationalization Considerations for more details.
2185 mike 1.1 Back to contents
2186 4.2.12. Content-Range
2187 CIM clients and CIM servers MUST NOT use this header.
2188 Back to contents
2189 4.2.13. Content-Type
2190 CIM clients and CIM servers MUST specify (and accept) a value for this header of
2191 either "text/xml" or "application/xml" as defined in [18].
2192 Back to contents
2193 4.2.14. Expires
2194 For the same reasons described in Cache-Control, a CIM Server SHOULD NOT include
2195 an Expires header in a CIM Operation Response which might indicate to a cache
2196 that the response could be cached.
2197 Back to contents
2198 4.2.15. If-Range
2199 CIM clients and CIM servers MUST NOT use this header.
2200 Back to contents
2201 4.2.16. Proxy-Authenticate
2202 See the section on Security Considerations for more details.
2203 Back to contents
2204 4.2.17. Range
2205 CIM clients and CIM servers MUST NOT use this header.
2206 mike 1.1 Back to contents
2207 4.2.18. WWW-Authenticate
2208 See the section on Security Considerations for more details.
2209 Back to contents
2210 4.3. Errors and Status Codes
2211 This section defines how CIM Servers MUST handle errors that occur in the
2212 processing of a CIM Operation Request. This specification does not introduce any
2213 new HTTP response status codes.
2214 If there is an error in processing the HTTP Request-Line or standard HTTP
2215 Headers then the CIM Server MUST take the appropriate action as dictated by its
2216 conformance to the relevant version of HTTP [6,7].
2217 Otherwise, if there are any mandatory extension declarations which the server
2218 does not support it MUST respond with a "510 Not Extended" status according to
2219 [9].
2220 Otherwise, the Server MUST process the request in accordance with the relevant
2221 version of HTTP [6,7] and the additional rules defined in this document.
2222 Assuming that the HTTP request is otherwise correct, the CIM Server MUST use the
2223 following status codes when processing the CIM Extension Headers:
2224 501 Not Implemented One of the following occured:
2225 The CIMProtocolVersion extension header specified in the request specifies a
2226 version of the CIM Mapping onto HTTP which is not supported by this CIM
2227 mike 1.1 Server. The CIM Server MUST include a CIMError header in the response with a
2228 value of unsupported-protocol-version.
2229 The Client specified a Multiple Operation Request and the CIM Server does
2230 not support such requests. The CIM Server MUST include a CIMError header in
2231 the response with a value of multiple-requests-unsupported.
2232 The CIMVERSION attribute in the Operation Request was not set to a value of
2233 "2.0". The CIM Server MUST include a CIMError header in the response with a
2234 value of unsupported-cim-version.
2235 The DTDVERSION attribute in the Operation Request was not set to a value of
2236 "2.0". The CIM Server MUST include a CIMError header in the response with a
2237 value of unsupported-dtd-version.
2238 401 Unauthorized The CIM Server is configured to require that a client
2239 authenticate itself before it can issue CIM Operation Requests to the Server.
2240 403 Forbidden The CIM Server does not allow the client to perform CIM
2241 Operations. The CIM Server MAY alternatively respond with a "404 Not Found"
2242 if it does not wish to reveal this information to the client.
2243 407 Proxy Authentication Required The CIM Server is configured to require that
2244 the proxy authenticate itself before it can issue CIM Operation Requests on
2245 behalf of a CIM Client to the Server.
2246 Assuming that the CIM Extension Headers are correct, then a validating CIM
2247 Server (one which is enforcing validity of the Operation Request Message with
2248 mike 1.1 respect to the CIM XML DTD) MUST use the following status code when processing
2249 the entity body containing the CIM Operation request.
2250 400 Bad Request The entity body defining the CIM Operation request was not
2251 well-formed or not valid with respect to the CIM XML DTD. The CIM Server MUST
2252 include a CIMError header in the response with a value of
2253 request-not-well-formed or request-not-valid (as appropriate).
2254 A loosely-validating CIM Server (one that is only enforcing that the CIM
2255 Operation Request be loosely valid) MAY reject an Operation Request Message that
2256 is not loosely valid with an HTTP status code of 400 (Bad Request) before
2257 further processing, in which case the CIM Server MUST include a CIMError header
2258 in the response with a value of request-not-loosely-valid.
2259 A loosely-validating CIM Server MUST reject an Operation Request Message that is
2260 not well-formed with an HTTP status code of 400 (Bad Request), in which case the
2261 CIM Server MUST include a CIMError header in the response with a value of
2262 request-not-well-formed.
2263 A loosely-validating CIM Server MUST NOT reject an invalid (in the XML sense)
2264 Operation Request Message that is loosely valid.
2265 A loosely-validating CIM Server MUST ultimately signal an error to the CIM
2266 Client if the Operation Request Message is not loosely valid (i.e. is missing
2267 required content, or for which the required content is incorrect, such as an
2268 attribute with an invalid value according to the CIM XML DTD). It is not
2269 mike 1.1 mandated to reject an Operation Request before processing, for to do otherwise
2270 would compel the Server into checking the complete request before processing
2271 could begin and this would be as expensive as requiring that the Server fully
2272 validate the request. Therefore a loosely-validating Server MAY elect to begin
2273 processing the request and issuing a response (with an HTTP success status code)
2274 before checking that the entire request is loosely valid.
2275 A CIM Client may determine whether a CIM Server is validating or
2276 loosely-validating via the CIMValidation header mechanism.
2277 Assuming that the CIM operation request was correctly formed (in the manner
2278 described above), the CIM Server MUST process the request accordingly and return
2279 a CIM Operation Response response.
2280 The entity body MUST be a correct Operation Response Message for that request.
2281 If the CIM Operation Response contains an entity which is a Simple Operation
2282 Response then the response status must be 200 OK. Otherwise the response status
2283 MUST be 207 Multistatus .
2284 Back to contents
2285 4.4. Security Considerations
2286 CIM Clients and CIM Servers MAY elect not to use authentication, but only in
2287 environments where lack of security is not an issue.
2288 Basic Authentication is described in [6,7]. Digest Authentication is defined in
2289 [12]. Both authentication schemes are covered in a consolidated document [14]
2290 mike 1.1 which also makes a number of improvements to the original specification of
2291 Digest Authentication.
2292 Basic Authentication provides a very rudimentary level of authentication, with
2293 the major weakness that the client password is sent over the wire in unencrypted
2294 form.
2295 For this reason CIM Clients and CIM Servers MUST NOT use Basic Authentication
2296 other than in the context of a highly secure environment (for example, if used
2297 in conjunction with SSL, or in a physically secure private network). CIM
2298 Servers MUST NOT send Basic Authentication credentials in a WWW-Authenticate
2299 header other than in the context of a highly secure environment.
2300 Conforming applications SHOULD support the Digest authentication scheme. Since
2301 Digest authentication verifies that both parties share a common secret, without
2302 having to send that secret in the clear, it is more secure than Basic
2303 authentication. However, CIM Clients and CIM Servers that require more robust
2304 protection SHOULD use encyption mechanisms such as SSL or SHTTP.
2305 CIM Clients and CIM Servers using Basic or Digest Authentication MUST comply
2306 with the requirements set forth in [6,7,12,14]. This specification describes
2307 only additional requirements on CIM Clients and CIM Servers when using these
2308 authentication schemes.
2309 CIM Servers SHOULD require that CIM Clients authenticate themselves. This
2310 specification does not mandate this as it is recognized that in some
2311 mike 1.1 circumstances the CIM Server may not require or wish the overhead of employing
2312 authentication. CIM Servers SHOULD consider carefully the performance/security
2313 tradeoffs in determining how often to issue challenges to CIM Clients.
2314 A CIM Server that returns a "401 Unauthorized" response to a CIM Operation
2315 Request SHOULD include in the WWW-Authenticate response-header either the
2316 "Basic" or "Digest" authentication values (but not both). This specification
2317 does not mandate use of Basic or Digest Authentication as it is recognized that
2318 in some circumstances the CIM Server may use bespoke authentication mechanisms
2319 not covered by [14]. Similar considerations apply to the use of the
2320 Proxy-Authorization header in "407 Proxy Authentication Required".
2321 Back to contents
2322 4.5. Determining CIM Server Capabilities
2323 The OPTIONS method MAY be used by a client to determine the CIM capabilities (if
2324 any) of the target server. A CIM Server MAY support the OPTIONS method (for
2325 example, CIM Servers supporting only HTTP/1.0 would not support OPTIONS).
2326 In order to support the ability for a Server to declare its CIM capabilities in
2327 a manner independent of HTTP, it is the intention of the DMTF to publish a CIM
2328 Schema (in a separate document) describing such capabilities. In particular this
2329 mechanism would allow Servers that do not support the OPTIONS method to declare
2330 their capabilities to a Client.
2331 If a CIM Server supports the OPTIONS method, it SHOULD:
2332 mike 1.1 Return the CIM Extension Header CIMProtocolVersion in the response. This
2333 provides a way for a client to discover the version of the CIM HTTP mapping
2334 supported by the CIM Server.
2335 Return the CIM Extension Header CIMSupportedFunctionalGroups in the response.
2336 This provides a way for a client to discover the CIM Operations supported by
2337 the CIM Server.
2338 Return the CIM Extension Header CIMSupportsMultipleOperations in the response.
2339 This provides a way for the client to discover whether the CIM Server can
2340 support Multiple Operation Requests.
2341 In addition, if the CIM Server supports one or more query languages, it SHOULD:
2342 Return the CIM Extension Header CIMSupportedQueryLanguages in the response.
2343 This allows the client to discover the query languages supported by the CIM
2344 Server.
2345 In addition, if the CIM Server runs in a fixed validation mode, it SHOULD:
2346 Return the CIM Extension Header CIMValidation in the response. This allows
2347 the client to determine whether the CIM Server is strictly validating or
2348 loosely validating.
2349 If the CIMProtocolVersion, CIMSupportedFunctionalGroups,
2350 CIMSupportsMultipleOperations, CIMValidation or CIMSupportedQueryLanguages
2351 extension headers are included in the response, the CIM Server MUST declare them
2352 as Optional extension headers using the "Opt" header defined in [9].
2353 mike 1.1 The full format of the "Opt" header declaration for this specification is:
2354 Opt = "Opt" ":" "http://www.dmtf.org/cim/mapping/http/v1.0"
2355 ";" "ns" "=" header-prefix
2356 header-prefix = 2*DIGIT
2357
2358 This header-prefix SHOULD be generated at random on a per-HTTP message basis,
2359 and SHOULD NOT necessarily be a specific number.
2360 For example the following is a fragment of a legitimate OPTIONS response from a
2361 CIM Server:
2362 HTTP/1.1 200 OK
2363 Opt: http://www.dmtf.org/cim/mapping/http/v1.0 ; ns=77
2364 77-CIMProtocolVersion: 1.0
2365 77-CIMSupportedFunctionalGroups: basic-read
2366 77-CIMBatch
2367 77-CIMSupportedQueryLanguages: wql
2368 ...
2369
2370 Back to contents
2371 4.5.1. CIMSupportedFunctionalGroups
2372 The CIMSupportedFunctionalGroups extension header SHOULD be returned by a CIM
2373 Server in any OPTIONS response. It MUST NOT be returned in any other scenario.
2374 mike 1.1 This header is defined as follows:
2375 CIMSupportedFunctionalGroups = "CIMSupportedFunctionalGroups" ":"
2376 1#functional-group
2377
2378 functional-group = "basic-read" |
2379 "basic-write" |
2380 "schema-manipulation" |
2381 "instance-manipulation" |
2382 "qualifier-declaration" |
2383 "association-traversal" |
2384 "query-execution"
2385
2386 The functional group definitions correspond directly to those listed in
2387 Functional Profiles. All CIM Servers MUST support the basic-read functional
2388 group. All CIM Clients MAY assume that any CIM Server supports the basic-read
2389 functional group.
2390 The list of functional groups returned by a CIM Server MUST contain the
2391 basic-read group, and MUST NOT contain any duplicates. CIM Clients MUST ignore
2392 any duplicate entries in the functional-group list.
2393 If a functional group is included in the list, then the CIM Client MUST assume
2394 that all other groups on which it depends (according to the rules defined in
2395 mike 1.1 Functional Profiles) are also supported. A CIM Server SHOULD NOT explicitly
2396 include a functional group in the list whose presence may be inferred implicitly
2397 by a dependency.
2398 For example the following HTTP response message indicates that the CIM Server
2399 supports instance-manipulation, association-traversal, basic-write and
2400 basic-read.
2401 HTTP/1.1 200 OK
2402 Opt: http://www.dmtf.org/cim/mapping/http/v1.0 ; ns=77
2403 77-CIMProtocolVersion: 1.0
2404 77-CIMSupportedFunctionalGroups: association-traversal,
2405 instance-manipulation
2406 ...
2407
2408 Support for a functional group does not imply that any method from that group
2409 will always succeed. Rather, the absence (whether explicit or implied) of the
2410 functional group from this header is an indication to the CIM Client that
2411 methods in that group will never succeed.
2412 Back to contents
2413 4.5.2. CIMSupportsMultipleOperations
2414 The CIMSupportsMultipleOperations extension header MUST be returned in an
2415 OPTIONS response by any CIM Server that supports Multiple Operation Requests.
2416 mike 1.1 It MUST NOT be returned in any other circumstances.
2417 This header is defined as follows:
2418 CIMSupportsMultipleOperations = "CIMSupportsMultipleOperations"
2419
2420 The presence of this header indicates that the Server can accept and process
2421 Multiple Operation Requests. The absence of this header indicates that the
2422 Server can only accept and process Simple Operation Requests.
2423 Back to contents
2424 4.5.3. CIMSupportedQueryLanguages
2425 The CIMSupportedQueryLanguages extension header SHOULD be returned by a CIM
2426 Server that supports at least one query language in any OPTIONS response. It
2427 MUST NOT be returned in any other scenario.
2428 This header is defined as follows (token has the meaning conferred by [7,
2429 section 2.2]:
2430 CIMSupportedQueryLanguages = "CIMSupportedQueryLanguages" ":"
2431 1#query-language
2432
2433 query-language = token
2434
2435 The query-language value MUST be treated as case-insensitive. It is anticipated
2436 that query languages will be submitted for approval to the DMTF, and each
2437 mike 1.1 submission will define a value for this token to enable it to be specified in
2438 this header.
2439 Back to contents
2440 4.5.4. CIMValidation
2441 The CIMValidation extension header MAY be returned by a CIM Server to provide
2442 information concerning the level of validation of CIM Operation Request
2443 messages.
2444 This header is defined as follows:
2445 CIMValidation = "CIMValidation" ":" validation-level
2446 validation-level = "validating" |
2447 "loosely-validating"
2448
2449 A validation-level of validating indicates that the CIM Server will always apply
2450 strict validation of each CIM Operation Request. A validation-level of
2451 loosely-validating indicates that the CIM Server will apply loose validation of
2452 each CIM Operation Request.
2453 In the absence of this header, a CIM Client SHOULD assume that the CIM Server
2454 operates in strict validation mode.
2455 Back to contents
2456 4.6. Other HTTP Methods
2457 This specification does not in any way define or constrain the manner in which a
2458 mike 1.1 CIM Client or Server uses any HTTP Method other than those explicitly referred
2459 to herein.
2460 Back to contents
2461 4.7. Discovery and Addressing
2462 The target URI of the CIM Operation Request is defined to be the location of the
2463 CIM Server. This specification does not constrain the format of this URI other
2464 than it be a valid URI [13] for the purposes of describing an HTTP-addressable
2465 resource.
2466 An HTTP Server which supports the CIM Mapping defined herein, and which supports
2467 the OPTIONS method, SHOULD include the following CIM extension header in an
2468 OPTIONS response:
2469 CIMOM
2470 This header is defined as follows:
2471 CIMOM = "CIMOM" ":" (absoluteURI | relativeURI)
2472
2473 The terms absoluteURI and relativeURI are taken from [7]; they indicate the
2474 location of the CIM Server for this HTTP Server.
2475 If the CIMOM extension header is included in the response, the CIM Server MUST
2476 declare it an Optional extension header in an analagous fashion to that
2477 described in the section on Determining CIM Server Capabilities.
2478 A CIM Client that wishes to communicate with a CIM Server on an HTTP Server
2479 mike 1.1 SHOULD try an OPTIONS request to that HTTP Server. If the OPTIONS request
2480 fails, or the response does not include the CIM-CIMOM extension header, then the
2481 CIM Client MAY assume that the value of CIM-CIMOM is the relative URI cimom.
2482 Other discovery mechanisms are outside the scope of this version of the
2483 specification.
2484 Example 1
2485 This example shows an HTTP Server located at http://www.dmtf.org issuing an
2486 OPTIONS response to an HTTP client to indicate that its CIM Server is located at
2487 http://www.dmtf.org/access/cimom.
2488 HTTP/1.1 200 OK
2489 Opt: http://www.dmtf.org/cim/mapping/http/v1.0 ; ns=48
2490 48-CIMOM: /access/cimom
2491 ...
2492
2493 Example 2
2494 If an HTTP Server located at http://www.dmtf.org responds with a "501 Not
2495 Implemented" to an OPTIONS request from a CIM Client, the CIM client may then
2496 try to contact the CIM Server at http://www.dmtf.org/cimom.
2497 Back to contents
2498 4.8. Internationalization Considerations
2499 This section defines the capabilities of the CIM HTTP Mapping with respect to
2500 mike 1.1 IETF policy guidelines on character sets and languages [19].
2501 In this specification, human-readable fields can be found within a response or
2502 request entity body. In all cases, any human-readable content is encoded using
2503 XML (which has explicit provisions for character set tagging and encoding) and
2504 requires that XML processors read XML elements encoded, at minimum, using the
2505 UTF-8 [15] encoding of the ISO 10646 multilingual plane.
2506 XML examples in this specification demonstrate use of the charset parameter of
2507 the Content-Type header, as defined in [10], as well as the XML encoding
2508 attribute on the <?xml> processing instruction, which together provide charset
2509 identification information for MIME and XML processors. This specification
2510 mandates that conforming applications MUST support at least the "utf-8" charset
2511 encoding [19] in the Content-Type header, and the "utf-8" value for the XML
2512 encoding attribute.
2513 XML also provides a language tagging capability for specifying the language of
2514 the contents of a particular XML element, based on use of IANA registered
2515 language tags [20] in the xml:lang attribute of an XML element to identify the
2516 language of its content and attributes. The XML CIM DTD [2,11] does not declare
2517 this attribute on any of the XML elements, and therefore conforming applications
2518 MUST NOT use this attribute as otherwise the XML document would not be valid
2519 with respect to that DTD.
2520 This specification defines a number of names of HTTP headers and their values.
2521 mike 1.1 These are constructed using standard encoding practices so as to always have an
2522 HTTP-safe ASCII representation. Since these headers are not in general visible
2523 to users they do not need to support encoding in multiple character sets.
2524 The XML DTD for CIM [2,11] introduces a number of XML element names. Similarly
2525 these are not visible to an end user and do not need to support multiple
2526 character set encodings.
2527 The CIM model [1] defines the subset of the Unicode character set that can be
2528 used to name CIM elements (Classes, Instances, Methods, Properties, Qualifiers
2529 and Method Parameters). In general these appear as the value of XML attributes
2530 or as element content, and in general would not be displayed to end users.
2531 Values of CIM Properties and Qualifiers, and error message descriptions MAY be
2532 localizable, but there is no mandate on CIM Servers to support this.
2533 Negotiation and notification of language settings is effected in this mapping
2534 using the standard Accept-Language and Content-Language headers defined in [7].
2535 5. References
2536 "Common Information Model (CIM) Specification", Version 2.2, DMTF, 14th June
2537 1999 (http://dmtf.org/spec/cim_schema_v22.pdf)
2538 "Specification for the Representation of CIM in XML", Version 2.0, DMTF, 20th
2539 July 1999 (http://www.dmtf.org/spec/CIM_XML_Mapping20.htm)
2540 "Extensible Markup Language (XML)", Version 1.0, W3C Recommendation
2541 (http://www.w3.org/TR/REC-xml)
2542 mike 1.1 "Namespaces in XML", 14th January 1999, W3C Recommendation
2543 (http://www.w3.org/TR/REC-xml-names)
2544 "XML as a Representation for Management Information - A White Paper", Version
2545 1.0, DMTF, September 15th 1998 (http://www.dmtf.org/spec/xmlw.html)
2546 "Hypertext Transfer Protocol -- HTTP/1.0", IETF RFC 1945, May 1996
2547 (http://www.ietf.org/rfc/rfc1945.txt)
2548 "Hypertext Transfer Protocol -- HTTP/1.1", IETF RFC 2068, January 1997
2549 (http://www.ietf.org/rfc/rfc2068.txt)
2550 "Key words for use in RFCs to Indicate Requirement Levels", IETF RFC 2119,
2551 March 1997 (http://www.ietf.org/rfc/rfc2119.txt)
2552 "HTTP Extension Framework", IETF Internet Draft, March 15th 1999
2553 (http://ietf.org/internet-drafts/draft-frystyk-http-extensions-03.txt)
2554 "Hypertext Transfer Protocol -- HTTP/1.1", IETF Internet Draft, 18th November
2555 1998 (http://ietf.org/internet-drafts/draft-ietf-http-v11-spec-rev-06.txt )
2556 "CIM XML DTD", Version 2.0, DMTF, 20th July 1999 (
2557 http://www.dmtf.org/spec/cim_dtd_V20.txt)
2558 "An Extension to HTTP : Digest Access Authentication", IETF RFC 2069, January
2559 1997 (http://www.ietf.org/rfc/rfc1945.txt)
2560 "Uniform Resource Identifiers (URI): Generic Syntax", IETF RFC 2396, 12th
2561 August 1998 (http://www.ietf.org/rfc/rfc2396.txt)
2562 "HTTP Authentication: Basic and Digest Access Authentication", IETF Internet
2563 mike 1.1 Draft, September 2nd 1998
2564 (http://ietf.org/internet-drafts/draft-ietf-http-authentication-03.txt)
2565 "UTF-8, a transformation format of Unicode and ISO 10646", RFC 2279, January
2566 1998 (http://www.ietf.org/rfc/rfc2279.txt)
2567 "Uniform Resource Identifiers (URI): Generic Syntax", IETF RFC 2396, 12th
2568 August 1998 (http://www.ietf.org/rfc/rfc2396.txt)
2569 "XSL Transformations (XSLT)", Version 1.0, W3C Working Draft, 21st April 1999
2570 (http://www.w3.org/TR/WD-xslt)
2571 "XML Media Types", IETF Informational RFC 2376, July 1998
2572 (http://www.ietf.org/rfc/rfc2376.txt)
2573 "IETF Policy on Character Sets and Languages", IETF Best Current Practice RFC
2574 2277, January 1998 (http://www.ietf.org/rfc/rfc2277.txt)
2575 "Tags for the Identification of Languages", IETF Standards Track RFC 1766,
2576 March 1995 (http://www.ietf.org/rfc/rfc1766.txt)
2577 "XML Schema Part 1: Structures", W3C Working Draft 6th May 1999
2578 (http://www.w3.org/TR/xmlschema-1/)
2579 Back to contents
2580 Appendix A - Examples of Message Exchanges
2581 This section illustrates the protocol defined in this document by providing
2582 examples of valid HTTP request/response exchanges.
2583 For the purposes of clarity additional white space has been included in the
2584 mike 1.1 examples, but such white space is not an intrinsic part of such XML documents.
2585 A.1. Retrieval of a Single Class Definition
2586 The following HTTP request illustrates how a client would request the class
2587 CIM_VideoBIOSElement.
2588 M-POST /cimom HTTP/1.1
2589 HOST: www.erewhon.com
2590 Content-Type: application/xml; charset="utf-8"
2591 Content-Length: xxxx
2592 Man: http://www.dmtf.org/cim/mapping/http/v1.0 ; ns=73
2593 73-CIMOperation: MethodCall
2594 73-CIMMethod: GetClass
2595 73-CIMObject: root/cimv2
2596
2597 <?xml version="1.0" encoding="utf-8" ?>
2598 <CIM CIMVERSION="2.0" DTDVERSION="2.0">
2599 <MESSAGE ID="87872" PROTOCOLVERSION="1.0">
2600 <SIMPLEREQ>
2601 <IMETHODCALL NAME="GetClass">
2602 <LOCALNAMESPACEPATH>
2603 <NAMESPACE NAME="root"/>
2604 <NAMESPACE NAME="cimv20"/>
2605 mike 1.1 </LOCALNAMESPACEPATH>
2606 <IPARAMVALUE NAME="ClassName"><CLASSNAME
2607 NAME="CIM_VideoBIOSElement"/></IPARAMVALUE>
2608 <IPARAMVALUE NAME="LocalOnly"><VALUE>FALSE</VALUE></IPARAMVALUE>
2609 </IMETHODCALL>
2610 </SIMPLEREQ>
2611 </MESSAGE>
2612 </CIM>
2613
2614 The following is an HTTP response to the above request indicating success of the
2615 requested operation. For clarity of exposition the complete definition of the
2616 returned <CLASS> element has not been shown.
2617 HTTP/1.1 200 OK
2618 Content-Type: application/xml; charset="utf-8"
2619 Content-Length: xxxx
2620 Ext:
2621 Cache-Control: no-cache
2622 Man: http://www.dmtf.org/cim/mapping/http/v1.0 ; ns=73
2623 73-CIMOperation: MethodResponse
2624
2625 <?xml version="1.0" encoding="utf-8" ?>
2626 mike 1.1 <CIM CIMVERSION="2.0" DTDVERSION="2.0">
2627 <MESSAGE ID="87872" PROTOCOLVERSION="1.0">
2628 <SIMPLERSP>
2629 <IMETHODRESPONSE NAME="GetClass">
2630 <IRETURNVALUE>
2631 <CLASS NAME="CIM_VideoBIOSElement" SUPERCLASS="CIM_SoftwareElement">
2632 ...
2633 </CLASS>
2634 </IRETURNVALUE>
2635 </IMETHODRESPONSE>
2636 </SIMPLERSP>
2637 </MESSAGE>
2638 </CIM>
2639
2640 Back to contents
2641 A.2. Retrieval of a Single Instance Definition
2642 The following HTTP request illustrates how a client would request the instance
2643 MyClass.MyKey="S3".
2644 M-POST /cimom HTTP/1.1
2645 HOST: www.erewhon.com
2646 Content-Type: application/xml; charset="utf-8"
2647 mike 1.1 Content-Length: xxxx
2648 Man: http://www.dmtf.org/cim/mapping/http/v1.0 ; ns=73
2649 73-CIMOperation: MethodCall
2650 73-CIMMethod: GetInstance
2651 73-CIMObject: root/cimv2
2652
2653 <?xml version="1.0" encoding="utf-8" ?>
2654 <CIM CIMVERSION="2.0" DTDVERSION="1.1">
2655 <MESSAGE ID="87855" PROTOCOLVERSION="1.0">
2656 <SIMPLEREQ>
2657 <IMETHODCALL NAME="GetInstance">
2658 <LOCALNAMESPACEPATH>
2659 <NAMESPACE NAME="root"/>
2660 <NAMESPACE NAME="myNamespace"/>
2661 </LOCALNAMESPACEPATH>
2662 <IPARAMVALUE NAME="InstanceName">
2663 <INSTANCENAME CLASSNAME="MyClass">
2664 <KEYBINDING NAME="MyKey"><KEYVALUE>S3</KEYVALUE></KEYBINDING>
2665 </INSTANCENAME>
2666 </IPARAMVALUE>
2667 <IPARAMVALUE NAME="LocalOnly"><VALUE>FALSE</VALUE></IPARAMVALUE>
2668 mike 1.1 </IMETHODCALL>
2669 </SIMPLEREQ>
2670 </MESSAGE>
2671 </CIM>
2672
2673 The following is an HTTP response to the above request indicating an error due
2674 to the specified instance not being found.
2675 HTTP/1.1 200 OK
2676 Content-Type: application/xml; charset="utf-8"
2677 Content-Length: xxxx
2678 Ext:
2679 Cache-Control: no-cache
2680 Man: http://www.dmtf.org/cim/mapping/http/v1.0 ; ns=73
2681 73-CIMOperation: MethodResponse
2682
2683 <?xml version="1.0" encoding="utf-8" ?>
2684 <CIM CIMVERSION="2.0" DTDVERSION="2.0">
2685 <MESSAGE ID="87885" PROTOCOLVERSION="1.0">
2686 <SIMPLERSP>
2687 <IMETHODRESPONSE NAME="GetInstance">
2688 <ERROR CODE="6" DESCRIPTION="Instance of MyClass not found"/>
2689 mike 1.1 </IMETHODRESPONSE>
2690 </SIMPLERSP>
2691 </MESSAGE>
2692 </CIM>
2693
2694 Back to contents
2695 A.3. Deletion of a Single Class Definition
2696 The following HTTP request illustrates how a client would delete the class
2697 CIM_VideoBIOSElement.
2698 M-POST /cimom HTTP/1.1
2699 HOST: www.erewhon.com
2700 Content-Type: application/xml; charset="utf-8"
2701 Content-Length: xxxx
2702 Man: http://www.dmtf.org/cim/mapping/http/v1.0 ; ns=73
2703 73-CIMOperation: MethodCall
2704 73-CIMMethod: DeleteClass
2705 73-CIMObject: root/cimv2
2706
2707 <?xml version="1.0" encoding="utf-8" ?>
2708 <CIM CIMVERSION="2.0" DTDVERSION="2.0">
2709 <MESSAGE ID="87872" PROTOCOLVERSION="1.0">
2710 mike 1.1 <SIMPLEREQ>
2711 <IMETHODCALL NAME="DeleteClass">
2712 <LOCALNAMESPACEPATH>
2713 <NAMESPACE NAME="root"/>
2714 <NAMESPACE NAME="cimv20"/>
2715 </LOCALNAMESPACEPATH>
2716 <IPARAMVALUE NAME="ClassName"><CLASSNAME
2717 NAME="CIM_VideoBIOSElement"/></IPARAMVALUE>
2718 </IMETHODCALL>
2719 </SIMPLEREQ>
2720 </MESSAGE>
2721 </CIM>
2722
2723 The following is an HTTP response to the above request indicating failure of the
2724 above operation due to the inability to delete instances of the Class.
2725 HTTP/1.1 200 OK
2726 Content-Type: application/xml; charset="utf-8"
2727 Content-Length: xxxx
2728 Ext:
2729 Cache-Control: no-cache
2730 Man: http://www.dmtf.org/cim/mapping/http/v1.0 ; ns=73
2731 mike 1.1 73-CIMOperation: MethodResponse
2732
2733 <?xml version="1.0" encoding="utf-8" ?>
2734 <CIM CIMVERSION="2.0" DTDVERSION="2.0">
2735 <MESSAGE ID="87872" PROTOCOLVERSION="1.0">
2736 <SIMPLERSP>
2737 <IMETHODRESPONSE NAME="DeleteClass">
2738 <ERROR CODE="9" DESCRIPTION="Class has non-deletable instances"/>
2739 </IMETHODRESPONSE>
2740 </SIMPLERSP>
2741 </MESSAGE>
2742 </CIM>
2743
2744 Back to contents
2745 A.4. Deletion of a Single Instance Definition
2746 The following HTTP request illustrates how a client would delete the instance
2747 MyClass.MyKey="S3".
2748 M-POST /cimom HTTP/1.1
2749 HOST: www.erewhon.com
2750 Content-Type: application/xml; charset="utf-8"
2751 Content-Length: xxxx
2752 mike 1.1 Man: http://www.dmtf.org/cim/mapping/http/v1.0 ; ns=73
2753 73-CIMOperation: MethodCall
2754 73-CIMMethod: DeleteInstance
2755 73-CIMObject: root/cimv2
2756
2757 <?xml version="1.0" encoding="utf-8" ?>
2758 <CIM CIMVERSION="2.0" DTDVERSION="2.0">
2759 <MESSAGE ID="87872" PROTOCOLVERSION="1.0">
2760 <SIMPLEREQ>
2761 <IMETHODCALL NAME="DeleteInstance">
2762 <LOCALNAMESPACEPATH>
2763 <NAMESPACE NAME="root"/>
2764 <NAMESPACE NAME="myNamespace"/>
2765 </LOCALNAMESPACEPATH>
2766 <IPARAMVALUE NAME="InstancePath">
2767 <INSTANCENAME CLASSNAME="MyClass">
2768 <KEYBINDING NAME="MyKey">
2769 <KEYVALUE>S3</KEYVALUE>
2770 </KEYBINDING>
2771 </INSTANCENAME>
2772 </IPARAMVALUE>
2773 mike 1.1 </IMETHODCALL>
2774 </SIMPLEREQ>
2775 </MESSAGE>
2776 </CIM>
2777
2778 The following is an HTTP response to the above request indicating success of the
2779 above operation.
2780 HTTP/1.1 200 OK
2781 Content-Type: application/xml; charset="utf-8"
2782 Content-Length: xxxx
2783 Ext:
2784 Cache-Control: no-cache
2785 Man: http://www.dmtf.org/cim/operation ; ns=73
2786 73-CIMOperation: MethodResponse
2787
2788 <?xml version="1.0" encoding="utf-8" ?>
2789 <CIM CIMVERSION="2.0" DTDVERSION="2.0">
2790 <MESSAGE ID="87872" PROTOCOLVERSION="1.0">
2791 <SIMPLERSP>
2792 <IMETHODRESPONSE NAME="DeleteInstance"/>
2793 </SIMPLERSP>
2794 mike 1.1 </MESSAGE>
2795 </CIM>
2796
2797 Back to contents
2798 A.5. Creation of a Single Class Definition
2799 The following HTTP request illustrates how a client would create the class
2800 MySchema_VideoBIOSElement as a subclass of CIM_VideoBIOSElement. For clarity of
2801 exposition most of the submitted <CLASS> element is omitted from the example.
2802 M-POST /cimom HTTP/1.1
2803 HOST: www.erewhon.com
2804 Content-Type: application/xml; charset="utf-8"
2805 Content-Length: xxxx
2806 Man: http://www.dmtf.org/cim/mapping/http/v1.0 ; ns=73
2807 73-CIMOperation: MethodCall
2808 73-CIMMethod: CreateClass
2809 73-CIMObject: root/cimv2
2810
2811 <?xml version="1.0" encoding="utf-8" ?>
2812 <CIM CIMVERSION="2.0" DTDVERSION="2.0">
2813 <MESSAGE ID="87872" PROTOCOLVERSION="1.0">
2814 <SIMPLEREQ>
2815 mike 1.1 <IMETHODCALL NAME="CreateClass">
2816 <LOCALNAMESPACEPATH>
2817 <NAMESPACE NAME="root"/>
2818 <NAMESPACE NAME="cimv2"/>
2819 </LOCALNAMESPACEPATH>
2820 <IPARAMVALUE NAME="NewClass">
2821 <CLASS NAME="MySchema_VideoBIOSElement"
2822 SUPERCLASS="CIM_VideoBIOSElement">
2823 ...
2824 </CLASS>
2825 </IPARAMVALUE>
2826 </IMETHODCALL>
2827 </SIMPLEREQ>
2828 </MESSAGE>
2829 </CIM>
2830
2831 The following is an HTTP response to the above request indicating success of the
2832 above operation.
2833 HTTP/1.1 200 OK
2834 Content-Type: application/xml; charset="utf-8"
2835 Content-Length: xxxx
2836 mike 1.1 Ext:
2837 Cache-Control: no-cache
2838 Man: http://www.dmtf.org/cim/mapping/http/v1.0 ; ns=73
2839 73-CIMOperation: MethodResponse
2840
2841 <?xml version="1.0" encoding="utf-8" ?>
2842 <CIM CIMVERSION="2.0" DTDVERSION="2.0">
2843 <MESSAGE ID="87872" PROTOCOLVERSION="1.0">
2844 <SIMPLERSP>
2845 <IMETHODRESPONSE NAME="CreateClass"/>
2846 </SIMPLERSP>
2847 </MESSAGE>
2848 </CIM>
2849
2850 Back to contents
2851 A.6. Creation of a Single Instance Definition
2852 The following HTTP request illustrates how a client would create an instance of
2853 the class MySchema_VideoBIOSElement. For clarity of exposition most of the
2854 submitted <INSTANCE> element is omitted from the example.
2855 M-POST /cimom HTTP/1.1
2856 HOST: www.erewhon.com
2857 mike 1.1 Content-Type: application/xml; charset="utf-8"
2858 Content-Length: xxxx
2859 Man: http://www.dmtf.org/cim/mapping/http/v1.0 ; ns=73
2860 73-CIMOperation: MethodCall
2861 73-CIMMethod: CreateInstance
2862 73-CIMObject: root/cimv2
2863
2864 <?xml version="1.0" encoding="utf-8" ?>
2865 <CIM CIMVERSION="2.0" DTDVERSION="2.0">
2866 <MESSAGE ID="87872" PROTOCOLVERSION="1.0">
2867 <SIMPLEREQ>
2868 <IMETHODCALL NAME="CreateInstance">
2869 <LOCALNAMESPACEPATH>
2870 <NAMESPACE NAME="root"/>
2871 <NAMESPACE NAME="cimv20"/>
2872 </LOCALNAMESPACEPATH>
2873 <IPARAMVALUE NAME="NewInstance">
2874 <INSTANCE CLASSNAME="CIM_VideoBIOSElement">
2875 ...
2876 </INSTANCE>
2877 </IPARAMVALUE>
2878 mike 1.1 </IMETHODCALL>
2879 </SIMPLEREQ>
2880 </MESSAGE>
2881 </CIM>
2882
2883 The following is an HTTP response to the above request indicating success of the
2884 above operation.
2885 HTTP/1.1 200 OK
2886 Content-Type: application/xml; charset="utf-8"
2887 Content-Length: xxxx
2888 Ext:
2889 Cache-Control: no-cache
2890 Man: http://www.dmtf.org/cim/mapping/http/v1.0 ; ns=73
2891 73-CIMOperation: MethodResponse
2892
2893 <?xml version="1.0" encoding="utf-8" ?>
2894 <CIM CIMVERSION="2.0" DTDVERSION="2.0">
2895 <MESSAGE ID="87872" PROTOCOLVERSION="1.0">
2896 <SIMPLERSP>
2897 <IMETHODRESPONSE NAME="CreateInstance">
2898 <IRETURNVALUE>
2899 mike 1.1 <INSTANCENAME CLASSNAME="MySchema_VideoBIOSElement">
2900 <KEYBINDING NAME="Name">
2901 <KEYVALUE>S4</KEYVALUE>
2902 </KEYBINDING>
2903 </INSTANCENAME>
2904 </IRETURNVALUE>
2905 </IRETURNVALUE>
2906 </SIMPLERSP>
2907 </MESSAGE>
2908 </CIM>
2909
2910 Back to contents
2911 A.7. Enumeration of Class Names
2912 The following HTTP request illustrates how a client would enumerate the names of
2913 all subclasses of the class CIM_SoftwareElement.
2914 M-POST /cimom HTTP/1.1
2915 HOST: www.erewhon.com
2916 Content-Type: application/xml; charset="utf-8"
2917 Content-Length: xxxx
2918 Man: http://www.dmtf.org/cim/mapping/http/v1.0 ; ns=73
2919 73-CIMOperation: MethodCall
2920 mike 1.1 73-CIMMethod: EnumerateClassNames
2921 73-CIMObject: root/cimv2
2922
2923 <?xml version="1.0" encoding="utf-8" ?>
2924 <CIM CIMVERSION="2.0" DTDVERSION="2.0">
2925 <MESSAGE ID="87872" PROTOCOLVERSION="1.0">
2926 <SIMPLEREQ>
2927 <IMETHODCALL NAME="EnumerateClassNames">
2928 <LOCALNAMESPACEPATH>
2929 <NAMESPACE NAME="root"/>
2930 <NAMESPACE NAME="cimv20"/>
2931 </LOCALNAMESPACEPATH>
2932 <IPARAMVALUE NAME="ClassName"><CLASSNAME
2933 NAME="CIM_SoftwareElement"/></IPARAMVALUE>
2934 <IPARAMVALUE NAME="DeepInheritance"><VALUE>FALSE</VALUE></IPARAMVALUE>
2935 </IMETHODCALL>
2936 </SIMPLEREQ>
2937 </MESSAGE>
2938 </CIM>
2939
2940 The following is an HTTP response to the above request indicating success of the
2941 mike 1.1 above operation, and returning the names of the requested subclasses.
2942 HTTP/1.1 200 OK
2943 Content-Type: application/xml; charset="utf-8"
2944 Content-Length: xxxx
2945 Ext:
2946 Cache-Control: no-cache
2947 Man: http://www.dmtf.org/cim/mapping/http/v1.0 ; ns=73
2948 73-CIMOperation: MethodResponse
2949
2950 <?xml version="1.0" encoding="utf-8" ?>
2951 <CIM CIMVERSION="2.0" DTDVERSION="2.0">
2952 <MESSAGE ID="87872" PROTOCOLVERSION="1.0">
2953 <SIMPLERSP>
2954 <IMETHODRESPONSE NAME="EnumerateClassNames">
2955 <IRETURNVALUE>
2956 <CLASSNAME NAME="CIM_BIOSElement"/>
2957 <CLASSNAME NAME="CIM_VideoBOISElement"/>
2958 </IRETURNVALUE>
2959 </IMETHODRESPONSE>
2960 </SIMPLERSP>
2961 </MESSAGE>
2962 mike 1.1 </CIM>
2963
2964 Back to contents
2965 A.8. Enumeration of Instances
2966 The following HTTP request illustrates how a client would enumerate all
2967 instances of the class CIM_LogicalDisk. For clarity of exposition most of the
2968 returned Instances are omitted from the example.
2969 M-POST /cimom HTTP/1.1
2970 HOST: www.erewhon.com
2971 Content-Type: application/xml; charset="utf-8"
2972 Content-Length: xxxx
2973 Man: http://www.dmtf.org/cim/operation ; ns=73
2974 73-CIMOperation: MethodCall
2975 73-CIMMethod: EnumerateInstances
2976 73-CIMObject: root/cimv2
2977
2978 <?xml version="1.0" encoding="utf-8" ?>
2979 <CIM CIMVERSION="2.0" DTDVERSION="2.0">
2980 <MESSAGE ID="87872" PROTOCOLVERSION="1.0">
2981 <SIMPLEREQ>
2982 <IMETHODCALL NAME="EnumerateInstances">
2983 mike 1.1 <LOCALNAMESPACEPATH>
2984 <NAMESPACE NAME="root"/>
2985 <NAMESPACE NAME="cimv20"/>
2986 </LOCALNAMESPACEPATH>
2987 <IPARAMVALUE NAME="ClassName"><CLASSNAME
2988 NAME="CIM_LogicalDisk"/></IPARAMVALUE>
2989 <IPARAMVALUE NAME="LocalOnly"><VALUE>TRUE</VALUE></IPARAMVALUE>
2990 <IPARAMVALUE NAME="DeepInheritance"><VALUE>TRUE</VALUE></IPARAMVALUE>
2991 </IMETHODCALL>
2992 </SIMPLEREQ>
2993 </MESSAGE>
2994 </CIM>
2995
2996 The following is an HTTP response to the above request indicating success of the
2997 above operation, returning the requested instances.
2998 HTTP/1.1 200 OK
2999 Content-Type: application/xml; charset="utf-8"
3000 Content-Length: xxxx
3001 Ext:
3002 Cache-Control: no-cache
3003 Man: http://www.dmtf.org/cim/mapping/http/v1.0 ; ns=73
3004 mike 1.1 73-CIMOperation: MethodResponse
3005
3006 <?xml version="1.0" encoding="utf-8" ?>
3007 <CIM CIMVERSION="2.0" DTDVERSION="2.0">
3008 <MESSAGE ID="87872" PROTOCOLVERSION="1.0">
3009 <SIMPLERSP>
3010 <IMETHODRESPONSE NAME="EnumerateInstances">
3011 <IRETURNVALUE>
3012 <VALUE.NAMEDINSTANCE>
3013 <INSTANCENAME CLASSNAME="Erewhon_LogicalDisk">
3014 ...
3015 </INSTANCENAME>
3016 <INSTANCE CLASSNAME="Erewhon_LogicalDisk">
3017 ...
3018 </INSTANCE>
3019 </VALUE.NAMEDINSTANCE>
3020 ...
3021 <VALUE.NAMEDINSTANCE>
3022 <INSTANCENAME CLASSNAME="Foobar_LogicalDisk">
3023 ...
3024 </INSTANCENAME>
3025 mike 1.1 <INSTANCE CLASSNAME="Foobar_LogicalDisk">
3026 ...
3027 </INSTANCE>
3028 </VALUE.NAMEINSTANCE>
3029 </IRETURNVALUE>
3030 </IMETHODRESPONSE>
3031 </SIMPLERSP>
3032 </MESSAGE>
3033 </CIM>
3034
3035 Back to contents
3036 A.9. Retrieval of a Single Property
3037 The following HTTP request illustrates how a client would retrieve the FreeSpace
3038 property from the Instance MyDisk.DeviceID="C:".
3039 M-POST /cimom HTTP/1.1
3040 HOST: www.erewhon.com
3041 Content-Type: application/xml; charset="utf-8"
3042 Content-Length: xxxx
3043 Man: http://www.dmtf.org/cim/operation ; ns=73
3044 73-CIMOperation: MethodCall
3045 73-CIMMethod: GetProperty
3046 mike 1.1 73-CIMObject: root/cimv2
3047
3048 <?xml version="1.0" encoding="utf-8" ?>
3049 <CIM CIMVERSION="2.0" DTDVERSION="2.0">
3050 <MESSAGE ID="87872" PROTOCOLVERSION="1.0">
3051 <SIMPLEREQ>
3052 <IMETHODCALL NAME="GetProperty">
3053 <LOCALNAMESPACEPATH>
3054 <NAMESPACE NAME="root"/>
3055 <NAMESPACE NAME="myNamespace"/>
3056 </LOCALNAMESPACEPATH>
3057 <IPARAMVALUE NAME="InstanceName">
3058 <INSTANCENAME CLASSNAME="MyDisk">
3059 <KEYBINDING NAME="DeviceID"><KEYVALUE>C:</KEYVALUE></KEYBINDING>
3060 </INSTANCENAME>
3061 </IPARAMVALUE>
3062 <IPARAMVALUE
3063 NAME="PropertyName"><VALUE>FreeSpace</VALUE></IPARAMVALUE>
3064 </IMETHODCALL>
3065 </SIMPLEREQ>
3066 </MESSAGE>
3067 mike 1.1 </CIM>
3068
3069 The following is an HTTP response to the above request indicating success of the
3070 above operation, returning the requested value.
3071 HTTP/1.1 200 OK
3072 Content-Type: application/xml; charset="utf-8"
3073 Content-Length: xxxx
3074 Ext:
3075 Cache-Control: no-cache
3076 Man: http://www.dmtf.org/cim/mapping/http/v1.0 ; ns=73
3077 73-CIMOperation: MethodResponse
3078
3079 <?xml version="1.0" encoding="utf-8" ?>
3080 <CIM CIMVERSION="2.0" DTDVERSION="2.0">
3081 <MESSAGE ID="87872" PROTOCOLVERSION="1.0">
3082 <SIMPLERSP>
3083 <IMETHODRESPONSE NAME="GetProperty">
3084 <IRETURNVALUE>
3085 <VALUE>6752332</VALUE>
3086 </IRETURNVALUE>
3087 </IMETHODRESPONSE>
3088 mike 1.1 </SIMPLERSP>
3089 </MESSAGE>
3090 </CIM>
3091
3092 Back to contents
3093 A.10. Execution of an Extrinsic Method
3094 The following HTTP request illustrates how a client would execute the
3095 SetPowerState method on the Instance MyDisk.DeviceID="C:".
3096 M-POST /cimom HTTP/1.1
3097 HOST: www.erewhon.com
3098 Content-Type: application/xml; charset="utf-8"
3099 Content-Length: xxxx
3100 Man: http://www.dmtf.org/cim/mapping/http/v1.0 ; ns=73
3101 73-CIMOperation: MethodCall
3102 73-CIMMethod: SetPowerState
3103 73-CIMObject: root/cimv2:Win32_LogicalDisk="C:"
3104
3105 <?xml version="1.0" encoding="utf-8" ?>
3106 <CIM CIMVERSION="2.0" DTDVERSION="2.0">
3107 <MESSAGE ID="87872" PROTOCOLVERSION="1.0">
3108 <SIMPLEREQ>
3109 mike 1.1 <METHODCALL NAME="SetPowerState">
3110 <LOCALINSTANCEPATH>
3111 <LOCALNAMESPACEPATH>
3112 <NAMESPACE NAME="root"/>
3113 <NAMESPACE NAME="myNamespace"/>
3114 </LOCALNAMESPACEPATH>
3115 <INSTANCENAME CLASSNAME="MyDisk">
3116 <KEYBINDING NAME="C:"><KEYVALUE>C:</KEYVALUE></KEYBINDING>
3117 </INSTANCENAME>
3118 </LOCALINSTANCEPATH>
3119 <PARAMVALUE NAME="PowerState"><VALUE>1</VALUE></PARAMVALUE>
3120 <PARAMVALUE
3121 NAME="Time"><VALUE>00000001132312.000000:000</VALUE></PARAMVALUE>
3122 </METHODCALL>
3123 </SIMPLEREQ>
3124 </MESSAGE>
3125 </CIM>
3126
3127 The following is an HTTP response to the above request indicating success of the
3128 above operation.
3129 HTTP/1.1 200 OK
3130 mike 1.1 Content-Type: application/xml; charset="utf-8"
3131 Content-Length: xxxx
3132 Ext:
3133 Cache-Control: no-cache
3134 Man: http://www.dmtf.org/cim/mapping/http/v1.0 ; ns=73
3135 73-CIMOperation: MethodResponse
3136
3137 <?xml version="1.0" encoding="utf-8" ?>
3138 <CIM CIMVERSION="2.0" DTDVERSION="2.0">
3139 <MESSAGE ID="87872" PROTOCOLVERSION="1.0">
3140 <SIMPLERSP>
3141 <METHODRESPONSE NAME="SetPowerState">
3142 <RETURNVALUE>
3143 <VALUE>0</VALUE>
3144 </RETURNVALUE>
3145 </METHODRESPONSE>
3146 </SIMPLERSP>
3147 </MESSAGE>
3148 </CIM>
3149
3150 Back to contents
|