126 mike 1.2 <LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI>
127 </UL>
128 */
129 virtual CIMClass getClass(
130 const String& nameSpace,
131 const String& className,
132 Boolean localOnly = true,
133 Boolean includeQualifiers = true,
134 Boolean includeClassOrigin = false,
135 const Array<String>& propertyList = EmptyStringArray()) = 0;
136
137 /** The <<TT>getInstance</TT> method returns a single CIM Instance from
138 the target Namespace based on the InstanceName parameter provided.
139
140 @param nameSpace The <TT>nameSpace</TT> parameter is a string that
141 defines the target namespace. See defintion of
142 \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
143
144 @param instanceName The <TT>instanceName</TT> input parameter defines
145 the name of the Instance to be retrieved.
146
147 mike 1.2 @param localOnly If the <TT>localOnly</TT> input parameter is true,
148 this specifies that only elements (properties and qualifiers) overriden
149 within the definition of the Instance are returned. If false, all
150 elements are returned. This parameter therefore effects a CIM
151 Server-side mechanism to filter certain elements of the returned object
152 based on whether or not they have been propagated from the parent Class
153 (as defined by the PROPAGATED attribute).
154
155 @param includeQualifiers If the <TT>includeQualifiers</TT> input
156 parameter is true, this specifies that all Qualifiers for that Instance
157 (including Qualifiers on the Instance and on any returned Properties)
158 MUST be included as <QUALIFIER> elements in the response. If false no
159 <QUALIFIER> elements are present in the returned Instance.
160
161 @param includeClassOrigin If the <TT>includeClassOrigin</TT> input
162 parameter is true, this specifies that the CLASSORIGIN attribute MUST
163 be present on all appropriate elements in the returned Instance. If
164 false, no CLASSORIGIN attributes are present in the returned instance.
165
166 @param propertyList If the <TT>propertyList</TT> input parameter is not
167 NULL, the members of the array define one or more CIMProperty names. The
168 mike 1.2 returned Instance MUST NOT include elements for any Properties missing
169 from this list. Note that if LocalOnly is specified as true this acts as
170 an additional filter on the set of Properties returned (for example, if
171 CIMProperty A is included in the PropertyList but LocalOnly is set to
172 true and A is not local to the requested Instance, then it will not be
173 included in the response). If the PropertyList input parameter is an
174 empty array this signifies that no Properties are included in the
175 response. If the PropertyList input parameter is NULL this specifies
176 that all Properties (subject to the conditions expressed by the other
177 parameters) are included in the response.
178
179 If the <TT>PropertyList</TT> contains duplicate elements, the Server
180 MUST ignore the duplicates but otherwise process the request normally.
181 If the PropertyList contains elements which are invalid CIMProperty
182 names for the target Instance, the Server MUST ignore such entries but
183 otherwise process the request normally.
184
185 @return If successful, the return value is a single CIM Instance.
186
187 If unsuccessful, one of the following status codes MUST be returned by
188 this method, where the first applicable error in the list (starting
189 mike 1.2 with the first element of the list, and working down) is the error
190 returned. Any additional method-specific interpretation of the error in
191 is given in parentheses.
192
193 <UL>
194 <LI>CIM_ERR_ACCESS_DENIED
195 <LI>CIM_ERR_INVALID_NAMESPACE
196 <LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,
197 unrecognized or otherwise incorrect parameters)
198 <LI>CIM_ERR_INVALID_CLASS (the CIM Class does not exist in the
199 specified namespace)
200 <LI>CIM_ERR_NOT_FOUND (the CIM Class does exist, but the requested
201 CIM Instance does not exist in the specified namespace)
202 <LI>CIM_ERR_FAILED (some other unspecified error occurred)
203 </LI>
204 </UL>
205 */
206 virtual CIMInstance getInstance(
207 const String& nameSpace,
208 const CIMReference& instanceName,
209 Boolean localOnly = true,
210 mike 1.2 Boolean includeQualifiers = false,
211 Boolean includeClassOrigin = false,
212 const Array<String>& propertyList = EmptyStringArray()) = 0;
213
214 /** The <TT>DeleteClass</TT> method deletes a single CIM Class from the
215 target Namespace.
216
217 @param nameSpace The nameSpace parameter is a string that defines
218 the target namespace. See defintion of
219 \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
220
221 @param className The <TT>className</TT> input parameter defines the name
222 of the Class to be deleted.
223
224 @return If successful, the specified Class (including any subclasses
225 and any instances) MUST have been removed by the CIM Server. The
226 operation MUST fail if any one of these objects cannot be deleted.
227
228 If unsuccessful, one of the following status codes MUST be returned by
229 this method, where the first applicable error in the list (starting
230 with the first element of the list, and working down) is the error
231 mike 1.2 returned. Any additional method-specific interpretation of the error
232 in is given in parentheses.
233
234 <UL>
235 <LI>CIM_ERR_ACCESS_DENIED
236 <LI>CIM_ERR_NOT_SUPPORTED
237 <LI>CIM_ERR_INVALID_NAMESPACE
238 <LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,
239 unrecognized or otherwise incorrect parameters)
240 <LI>CIM_ERR_NOT_FOUND (the CIM Class to be deleted does not exist)
241 <LI>CIM_ERR_CLASS_HAS_CHILDREN (the CIM Class has one or more
242 subclasses which cannot be deleted)
243 <LI>CIM_ERR_CLASS_HAS_INSTANCES (the CIM Class has one or more
244 instances which cannot be deleted)
245 <LI>CIM_ERR_FAILED (some other unspecified error occurred)
246 </UL>
247 */
248 virtual void deleteClass(
249 const String& nameSpace,
250 const String& className) = 0;
251
252 mike 1.2 /** The <TT>DeleteInstance</TT> operation deletes a single CIM Instance
253 from the target Namespace.
254
255 @param nameSpace The nameSpace parameter is a string that defines
256 the target namespace. See defintion of
257 \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
258
259 @param instanceName The <TT>instanceName</TT> input parameter defines
260 the name (model path) of the Instance to be deleted.
261
262 @return If successful, the specified Instance MUST have been removed
263 by the CIM Server.
264
265 If unsuccessful, one of the following status codes MUST be returned by
266 this method, where the first applicable error in the list (starting
267 with the first element of the list, and working down) is the error
268 returned. Any additional method-specific interpretation of the error in
269 is given in parentheses.
270
271 <UL>
272 <LI>CIM_ERR_ACCESS_DENIED
273 mike 1.2 <LI>CIM_ERR_NOT_SUPPORTED
274 <LI>CIM_ERR_INVALID_NAMESPACE
275 <LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,
276 unrecognized or otherwise incorrect parameters)
277 <LI>CIM_ERR_INVALID_CLASS (the CIM Class does not exist in the
278 specified namespace)
279 <LI>CIM_ERR_NOT_FOUND (the CIM Class does exist, but the requested
280 CIM Instance does not exist in the specified namespace)
281 <LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI>
282 </UL>
283 */
284 virtual void deleteInstance(
285 const String& nameSpace,
286 const CIMReference& instanceName) = 0;
287
288 /** The <TT>createClass</TT> method creates a single CIM Class in
289 the target Namespace. The Class MUST NOT already exist. The NewClass input
290 parameter defines the new Class. The proposed definition MUST be a correct
291 Class definition according to the CIM specification.
292
293 In processing the creation of the new Class, the following rules MUST be
294 mike 1.2 conformed to by the CIM Server:
295
296 Any CLASSORIGIN and PROPAGATED attributes in the NewClass MUST be ignored by
297 the Server. If the new Class has no Superclass, the NewClass parameter
298 defines a new base Class. The Server MUST ensure that all Properties and
299 Methods of the new Class have a CLASSORIGIN attribute whose value is the
300 name of the new Class. If the new Class has a Superclass, the NewClass
301 parameter defines a new Subclass of that Superclass. The Superclass MUST
302 exist. The Server MUST ensure that:
303
304 <UL>
305 <LI>Any Properties, Methods or Qualifiers in the Subclass not defined in
306 the Superclass are created as new elements of the Subclass. In
307 particular the Server MUST set the CLASSORIGIN attribute on the new
308 Properties and Methods to the name of the Subclass, and ensure that all
309 other Properties and Methods preserve their CLASSORIGIN attribute value
310 from that defined in the Superclass
311
312 If a CIMProperty is defined in the Superclass and in the Subclass, the
313 value assigned to that property in the Subclass (including NULL) becomes
314 the default value of the property for the Subclass. If a CIMProperty or
315 mike 1.2 CIMMethod of the Superclass is not specified in the Subclass, then that
316 CIMProperty or CIMMethod is inherited without modification by the
317 Subclass
318
319 <LI>Any Qualifiers defined in the Superclass with a TOSUBCLASS attribute
320 value of true MUST appear in the resulting Subclass. Qualifiers in the
321 Superclass with a TOSUBCLASS attribute value of false MUST NOT be
322 propagated to the Subclass . Any CIMQualifier propagated from the
323 Superclass cannot be modified in the Subclass if the OVERRIDABLE
324 attribute of that CIMQualifier was set to false in the Superclass. It is
325 a
326 Client error to specify such a CIMQualifier in the NewClass with a
327 different definition to that in the Superclass (where definition
328 encompasses the name, type and flavor attribute settings of the
329 <QUALIFIER> element, and the value of the CIMQualifier).
330 </LI>
331 </UL>
332
333 @param nameSpace The nameSpace parameter is a string that defines the target
334 namespace. See defintion of
335 \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
336 mike 1.2
337 @param newClass The <TT>newClass<?TT> input parameter defines the new Class.
338
339 @return If successful, the specified Class MUST have been created by the CIM
340 Server.
341
342 If unsuccessful, one of the following status codes MUST be returned by this
343 method, where the first applicable error in the list (starting with the
344 first element of the list, and working down) is the error returned. Any
345 additional method-specific interpretation of the error in is given in
346 parentheses.
347 <UL>
348 <LI>CIM_ERR_ACCESS_DENIED
349 <LI>CIM_ERR_NOT_SUPPORTED
350 <LI>CIM_ERR_INVALID_NAMESPACE
351 <LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,
352 unrecognized or otherwise incorrect parameters)
353 <LI>CIM_ERR_ALREADY_EXISTS (the CIM Class already exists)
354 <LI>CIM_ERR_INVALID_SUPERCLASS (the putative CIM Class declares a
355 non-existent superclass)
356 <LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI>
357 mike 1.2 </UL>
358 */
359 virtual void createClass(
360 const String& nameSpace,
361 const CIMClass& newClass) = 0;
362
363 /** The <TT>createInstance</TT> method creates a single CIM
364 Instance in the target Namespace. The Instance MUST NOT already exist.
365
366 In processing the creation of the new Instance, the following rules MUST be
367 conformed to by the CIM Server:
368
369 Any CLASSORIGIN and PROPAGATED attributes in the NewInstance MUST be ignored
370 by the Server.
371
372 The Server MUST ensure that:
373
374 <UL>
375 <LI>Any Qualifiers in the Instance not defined in the Class are created
376 as new elements of the Instance.
377 <LI>All Properties of the Instance preserve their CLASSORIGIN attribute
378 mike 1.2 value from that defined in the Class.
379 <LI>If a CIMProperty is specified in the ModifiedInstance parameter, the
380 value assigned to that property in the Instance (including NULL) becomes
381 the value of the property for the Instance. Note that it is a Client
382 error to specify a CIMProperty that does not belong to the Class.
383 <LI>If a CIMProperty of the Class is not specified in the Instance, then
384 that CIMProperty is inherited without modification by the Instance.
385 <LI>Any Qualifiers defined in the Class with a TOINSTANCE attribute
386 value of true appear in the Instance. Qualifiers in the
387 Class with a TOINSTANCE attribute value of false MUST NOT be propagated
388 to the Instance.
389 <LI>Any CIMQualifier propagated from the Class cannot be modified in the
390 Instance if the OVERRIDABLE attribute of that CIMQualifier was set to
391 false
392 in the Class. It is a Client error to specify such a CIMQualifier in the
393 NewInstance with a different definition to that in the Class (where
394 definition encompasses the name, type and flavor attribute settings of
395 the <QUALIFIER> element, and the value of the CIMQualifier).
396 </UL>
397
398 @param nameSpace The nameSpace parameter is a string that defines the target
399 mike 1.2 namespace. See defintion of
400 \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
401
402 @param newInstance The <TT>newInstance</TT> input parameter defines the new
403 Instance. The proposed definition MUST be a correct Instance definition for
404 the underlying CIM Class according to the CIM specification.
405
406 @return If successful, the return value defines the object path of the new
407 CIM Instance relative to the target Namespace (i.e. the Model Path as
408 defined by the CIM specification), created by the CIM Server. It is
409 returned in case one or more of the new keys of the Instance are allocated
410 dynamically during the creation process rather than specified in the
411 request.
412
413 If unsuccessful, one of the following status codes MUST be returned by this
414 method, where the first applicable error in the list (starting with the
415 first element of the list, and working down) is the error returned. Any
416 additional method-specific interpretation of the error in is given in
417 parentheses.
418
419 <UL>
420 mike 1.2 <LI>CIM_ERR_ACCESS_DENIED
421 <LI>CIM_ERR_NOT_SUPPORTED
422 <LI>CIM_ERR_INVALID_NAMESPACE
423 <LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,
424 unrecognized or otherwise incorrect parameters)
425 <LI>CIM_ERR_INVALID_CLASS (the CIM Class of which this is to be a new
426 Instance does not exist)
427 <LI>CIM_ERR_ALREADY_EXISTS (the CIM Instance already exists)
428 <LI>CIM_ERR_FAILED (some other unspecified error occurred)
429 </UL>
430 */
431 virtual void createInstance(
432 const String& nameSpace,
433 const CIMInstance& newInstance) = 0;
434
435
436 /** The <TT>modifyClass</TT> method modifies an existing CIM Class in the
437 target Namespace.
438
439 The Class MUST already exist. The <TT>ModifiedClass</TT>
440 input parameter defines the set of changes (which MUST be correct
441 mike 1.2 amendments to the CIM Class as defined by the CIM Specification) to be made
442 to the current class definition.
443
444 In processing the modifcation of the Class, the following rules MUST be
445 conformed to by the CIM Server.
446
447 <UL>
448 <LI>Any <TT>CLASSORIGIN</TT> and <TT>PROPAGATED</TT> attributes in the
449 <TT>ModifiedClass</TT> MUST be ignored by the Server.
450 <LI>If the modified Class has no Superclass,
451 the<TT>ModifiedClass</TT> parameter defines modifications to a base Class.
452 The Server MUST ensure that:
453 <UL>
454 <LI>All Properties and Methods of the modified Class have a
455 <TT>CLASSORIGIN</TT> attribute whose value is the name of this Class.
456 <LI>Any Properties, Methods or Qualifiers in the existing Class
457 definition which do not appear in the <FONT face="Courier
458 New">ModifiedClass</TT> parameter are removed from the resulting
459 modified Class.</LI>
460 </UL>
461 <LI>If the modified Class has a Superclass,the <TT>ModifiedClass</TT>
462 mike 1.2 parameter defines modifications to a Subclass of that Superclass. The
463 Superclass MUST exist, and the Client MUST NOT change the name of the
464 Superclass in the modified Subclass. The Server MUST ensure that:
465 <UL>
466 <LI>Any Properties, Methods or Qualifiers in the Subclass not
467 defined in the Superclass are created as elements of the Subclass. In
468 particular the Server MUST set the <TT>CLASSORIGIN</TT> attribute on the
469 new Properties and Methods to the name of the Subclass, and MUST ensure
470 that all other Properties and Methods preserve their
471 <TT>CLASSORIGIN</TT> attribute value from that defined in the
472 Superclass.
473 <LI>Any CIMProperty, CIMMethod or CIMQualifier previously defined in the
474 Subclass
475 but not defined in the Superclass, and which is not present in the
476 <TT>ModifiedClass</TT> parameter, is removed from the Subclass.
477 <LI>If a CIMProperty is specified in the <TT>ModifiedClass</TT>
478 parameter, the value assigned to that property therein (including
479 NULL) becomes the default value of the property for the Subclass.
480 <LI>If a CIMProperty or CIMMethod of the Superclass is not specified in
481 the
482 Subclass, then that CIMProperty or CIMMethod is inherited
483 mike 1.2 without modification by the Subclass (so that any previous changes to
484 such an Element in the Subclass are lost).
485 <LI>If a CIMQualifier in the Superclass is not specified in the
486 Subclass, and the CIMQualifier is defined in the Superclass with a
487 <TT>TOSUBCLASS</TT> attribute value of <TT>true</TT>, then the
488 CIMQualifier
489 MUST still be present in the resulting modified Subclass (it is not
490 possible to remove a propagated CIMQualifier from a Subclass).
491 <LI>Any CIMQualifier propagated from the Superclass cannot be
492 modified in the Subclass if the <TT>OVERRIDABLE</TT> attribute of
493 that CIMQualifier was set to <TT>false</TT> in the Superclass. It is a
494 Client error to specify such a CIMQualifier in the
495 <TT>ModifiedClass</TT>
496 with a different definition to that in the Superclass (where definition
497 encompasses the name, type and flavor attribute settings of the
498 <TT><QUALIFIER></TT> element, and the value of the CIMQualifier).
499 <LI>Any Qualifiers defined in the Superclass with a <TT>TOSUBCLASS</TT>
500 attribute value of <TT>false</TT> MUST NOT be propagated to the
501 Subclass.</LI> </UL>
502 </LI></UL>
503
504 mike 1.2 @param nameSpace The nameSpace parameter is a string that defines the target
505 namespace. See defintion of
506 \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
507
508 @param modifiedClass The <TT>modifiedClass</TT>
509 input parameter defines the set of changes (which MUST be correct
510 amendments to the CIM Class as defined by the CIM Specification) to be made
511 to the current class definition.
512
513 @return If successful, the specified Class MUST have been updated by
514 the CIM Server.
515
516 The request to modify the Class MUST fail if the Server cannot update any
517 existing Subclasses or Instances of that Class in a consistent manner.
518
519 @return If unsuccessful, one of the following status codes MUST be
520 returned by this method, where the first applicable error in the list
521 (starting with the first element of the list, and working down) is the
522 error returned. Any additional method-specific interpretation of the error
523 in is given in parentheses.
524
525 mike 1.2 <UL>
526 <LI>CIM_ERR_ACCESS_DENIED
527 <LI>CIM_ERR_NOT_SUPPORTED
528 <LI>CIM_ERR_INVALID_NAMESPACE
529 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
530 duplicate, unrecognized or otherwise incorrect parameters)
531 <LI>CIM_ERR_NOT_FOUND (the CIM Class does not
532 exist)
533 <LI>CIM_ERR_INVALID_SUPERCLASS (the putative CIM Class
534 declares a non-existent or incorrect superclass)
535 <LI>CIM_ERR_CLASS_HAS_CHILDREN (the modification could
536 not be performed because it was not possible to update the subclasses of
537 the Class in a consistent fashion)
538 <LI>CIM_ERR_CLASS_HAS_INSTANCES (the modification could
539 not be performed because it was not possible to update
540 the instances of the Class in a consistent fashion)
541 <LI>CIM_ERR_FAILED (some other unspecified error occurred)
542 </LI></UL>
543 */
544 virtual void modifyClass(
545 const String& nameSpace,
546 mike 1.2 const CIMClass& modifiedClass) = 0;
547
548 /** The <TT>modifyInstance</TT> method modifies an existing CIM
549 Instance in the target Namespace.
550
551 @param nameSpace The nameSpace parameter is a string that defines the target
552 namespace. See defintion of
553 \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
554
555 @param modifiedInstance The <TT>modifiedInstance</TT> input parameter
556 identifies the name of the Instance to be modified, and defines the set of
557 changes (which MUST be correct amendments to the Instance as
558 defined by the CIM Specification) to be made to the current Instance
559 definition.
560
561 In processing the modifcation of the Instance, the following rules MUST
562 be conformed to by the CIM Server:
563
564 <UL>
565 <LI>Any <TT>CLASSORIGIN</TT> and <TT>PROPAGATED</TT> attributes in the
566 <TT>ModifiedInstance</TT> MUST be ignored by the Server.
567 mike 1.2 <LI>The Class MUST exist, and the Client MUST NOT change
568 the name of the Class in the modified Instance. The Server MUST ensure
569 that:
570 <UL>
571 <LI>Any Qualifiers in the Instance not defined in
572 the Class are created as new elements of the Instance.
573 <LI>All Properties of the Instance preserve their
574 <TT>CLASSORIGIN</TT> attribute value from that defined in the Class.
575 <LI>Any CIMQualifier previously defined in the Instance but not
576 defined in the Class, and which is not present in the
577 <TT>ModifiedInstance</TT> parameter, is removed from the Instance.
578
579 <LI>If a CIMProperty is specified in the <TT>ModifiedInstance</TT>
580 parameter, the value assigned to that property therein
581 (including NULL) becomes the value of the property for the Instance.
582 Note that it is a Client error to specify a CIMProperty that does not
583 belong to the Class.
584
585 <LI>If a CIMProperty of the Class is not specified in the Instance,
586 then that CIMProperty is inherited without modification by the Instance
587 (so that any previous changes to that CIMProperty in the Instance are
588 mike 1.2 lost).
589 <LI>Any Qualifiers defined in the Class with a <TT>TOINSTANCE</TT>
590 attribute value of <TT>true</TT> appear in the Instance (it is not
591 possible remove a propagated CIMQualifier from an Instance. Qualifiers
592 in the Class with a <TT>TOINSTANCE</TT> attribute value of <TT>false</TT>
593 MUST NOT be propagated to the Instance.
594 <LI>Any CIMQualifier propagated from the Class cannot be modified by the
595 Server if the <TT>OVERRIDABLE</TT> attribute of that CIMQualifier was
596 set to <TT>false</TT> in the Class. It is a Client error to specify such
597 a CIMQualifier in the <TT>ModifiedInstance</TT> with a different
598 definition to that in the Class (where definition encompasses the name,
599 type and flavor attribute settings of the
600 <TT><QUALIFIER></TT> element, and the value of the CIMQualifier).
601 <LI>Any CIMQualifier propagated from the Class cannot be modified in
602 the Instance if the <TT>OVERRIDABLE</TT> attribute of that CIMQualifier
603 was
604 set to <TT>false</TT> in the Class. It is a Client error to specify such
605 a CIMQualifier in the <TT>ModifiedInstance</TT> with a different
606 definition
607 to that in the Class (where definition encompasses the name, type and
608 flavor attribute settings of the <TT><QUALIFIER></TT>
609 mike 1.2 element, and the value of the CIMQualifier).</LI>
610 </UL>
611 </LI></UL>
612
613 @return If successful, the specified Instance MUST have been updated by the
614 CIM Server.
615
616 If unsuccessful, one of the following status codes MUST be returned by
617 this method, where the first applicable error in the list (starting with the
618 first element of the list, and working down) is the error returned. Any
619 additional method-specific interpretation of the error in is given in
620 parentheses
621
622 <UL>
623 <LI>CIM_ERR_ACCESS_DENIED
624 <LI>CIM_ERR_NOT_SUPPORTED
625 <LI>CIM_ERR_INVALID_NAMESPACE
626 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
627 duplicate, unrecognized or otherwise incorrect parameters)
628 <LI>CIM_ERR_INVALID_CLASS (the CIM Class of which this is
629 to be a new Instance does not exist)
630 mike 1.2 <LI>CIM_ERR_NOT_FOUND (the CIM Instance does not exist)
631 <LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>
632 */
633 virtual void modifyInstance(
634 const String& nameSpace,
635 const CIMInstance& modifiedInstance) = 0;
636
637
638 /** The <TT>enumerateClasses</TT> method is used to enumerate subclasses of
639 a CIM Class in the target Namespace.
640
641 @param nameSpace The nameSpace parameter is a string that defines the target
642 namespace. See defintion of
643 \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
644
645 @param className The <TT>className</TT> input parameter defines the Class
646 that is the basis for the enumeration.
647
648 @param deepInheritance If the <TT>deepInheritance</TT> input
649 parameter is <TT>true</TT>, this specifies that all subclasses of
650 the specified Class should be returned (if the <TT>ClassName</TT> input
651 mike 1.2 parameter is absent, this implies that all Classes in the target Namespace
652 should be returned). If <TT>false</TT>, only immediate child
653 subclasses are returned (if the <TT>ClassName</TT> input parameter is
654 NULL, this implies that all base Classes in the target Namespace should be
655 returned).
656
657 @param localOnly If the <TT>localOnly</TT> input parameter is
658 <TT>true</TT>, it specifies that, for each returned Class, only elements
659 (properties, methods and qualifiers) overriden within the definition of
660 that Class are included. If <TT>false</TT>, all elements are
661 returned. This parameter therefore effects a CIM Server-side mechanism
662 to filter certain elements of the returned object based on whether or not
663 they have been propagated from the parent Class (as defined by the
664 <TT>PROPAGATED</TT> attribute).
665
666 @param includeQualifiers If the <TT>includeQualifiers</TT> input parameter
667 is <TT>true</TT>, this specifies that all Qualifiers for each Class
668 (including Qualifiers on the Class and on any returned Properties, Methods
669 or CIMMethod Parameters) MUST be included as <TT><QUALIFIER></TT>
670 elements in the response. If false no <TT><QUALIFIER></TT> elements
671 are present in each returned Class.
672 mike 1.2
673 @param includeClassOrigin If the <TT>IncludeClassOrigin</TT> input
674 parameter is <TT>true</TT>, this specifies that the <TT>CLASSORIGIN</TT>
675 attribute MUST be present on all appropriate elements in each returned
676 Class. If false, no <TT>CLASSORIGIN</TT> attributes are present in each
677 returned Class.
678
679 @return If successful, the method returns zero or more Classes that meet the
680 required criteria.
681
682 If unsuccessful, one of the following status codes MUST be returned by
683 this method, where the first applicable error in the list (starting with the
684 first element of the list, and working down) is the error returned. Any
685 additional method-specific interpretation of the error in is given in
686 parentheses.
687
688 <UL>
689 <LI>CIM_ERR_ACCESS_DENIED
690 <LI>CIM_ERR_NOT_SUPPORTED
691 <LI>CIM_ERR_INVALID_NAMESPACE
692 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
693 mike 1.2 duplicate, unrecognized or otherwise incorrect parameters)
694 <LI>CIM_ERR_INVALID_CLASS (the CIM Class that is the
695 basis for this enumeration does not exist)
696 <LI>CIM_ERR_FAILED (some other unspecified error occurred)
697 </LI>
698 </UL>
699 */
700 virtual Array<CIMClass> enumerateClasses(
701 const String& nameSpace,
702 const String& className = String::EMPTY,
703 Boolean deepInheritance = false,
704 Boolean localOnly = true,
705 Boolean includeQualifiers = true,
706 Boolean includeClassOrigin = false) = 0;
707
708
709 /** The <TT>enumerateClassNames</TT> operation is used to enumerate the
710 names of subclasses of a CIM Class in the target Namespace.
711
712 @param nameSpace The nameSpace parameter is a string that defines the target
713 namespace. See defintion of
714 mike 1.2 \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
715
716 @param className The <TT>className</TT> input parameter defines the Class
717 that is the basis for the enumeration.
718
719 @param deepInheritance If the <TT>deepInheritance</TT> input parameter is
720 true, this specifies that the names of all subclasses of the specified Class
721 should be returned (if the ClassName input parameter is absent, this implies
722 that the names of all Classes in the target Namespace should be returned).
723 If false, only the names of immediate child subclasses are returned (if the
724 className input parameter is NULL, this implies that the names of all base
725 Classes in the target Namespace should be returned). @return If successful,
726 the method returns zero or more names of Classes that meet the requested
727 criteria. If unsuccessful, one of the following status codes MUST be
728 returned by this method, where the first applicable error in the list
729 (starting with the first element of the list, and working down) is the error
730 returned. Any additional method-specific interpretation of the error in is
731 given in parentheses.
732
733 <UL>
734 <LI>CIM_ERR_ACCESS_DENIED
735 mike 1.2 <LI>CIM_ERR_NOT_SUPPORTED
736 <LI>CIM_ERR_INVALID_NAMESPACE
737 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
738 duplicate, unrecognized or otherwise incorrect parameters)
739 <LI>CIM_ERR_INVALID_CLASS (the CIM Class that is the
740 basis for this enumeration does not exist)
741 <LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI>
742 </UL>
743 */
744 virtual Array<String> enumerateClassNames(
745 const String& nameSpace,
746 const String& className = String::EMPTY,
747 Boolean deepInheritance = false) = 0;
748
749
750 /** The <TT>enumerateInstances</TT> method enumerates instances of a CIM
751 Class in the target Namespace.
752
753 @param nameSpace The nameSpace parameter is a string that defines the target
754 namespace. See defintion of
755 \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
756 mike 1.2
757 @param className The <TT>className</TT> input parameter defines the
758 Class that is the basis for the enumeration.
759
760 @param localOnly If the <TT>localOnly</TT> input parameter is
761 <TT>true</TT>, this specifies that, for each returned Instance,
762 only elements (properties and qualifiers) overriden within the
763 definition of that Instance are included. If <TT>false</TT>,
764 all elements are returned. This parameter therefore effects a CIM
765 Server-side mechanism to filter certain elements of the returned object
766 based on whether or not they have been propagated from the parent
767 Class (as defined by the <TT>PROPAGATED</TT> attribute).
768
769 Only elements (properties, methods and qualifiers) defined or
770 overridden within the class are included in the response. Propagated
771 properties are not included because their values are based on another class’
772 information. If not specified, all elements of the class’ definition are
773 returned. Note: When instances are returned, the InstanceName must include
774 all keys, including propagated keys. Therefore, these attributes are
775 included in the name part of the method response, but not in the value
776 information.
777 mike 1.2
778 @param deepInheritance If the <TT>deepInheritance</TT> input
779 parameter is <TT>true</TT>, this specifies that, for each
780 returned Instance of the Class, all properties of the Instance MUST
781 be present (subject to constraints imposed by the other
782 parameters), including any which were added by subclassing the specified
783 Class. If <TT>false</TT>, each returned Instance includes only
784 properties defined for the specified Class.
785
786 The Enumerate Instances operation returns the same number of instances
787 regardless of whether or not the DeepInheritance flag is set. The
788 DeepInheritance flag is only used to determine whether or not the subclass
789 property values should be returned.
790
791 @param includeQualifiersIf the <TT>includeQualifiers</TT> input
792 parameter is <TT>true</TT>, this specifies that all Qualifiers
793 for each Instance (including Qualifiers on the Instance
794 and on any returned Properties) MUST be included as
795 <TT><QUALIFIER></TT> elements in the response. If false no
796 <TT><QUALIFIER></TT> elements are present in each
797 returned Instance.
798 mike 1.2
799 @param includeClassOrigin If the <TT>includeClassOrigin</TT> input
800 parameter is <TT>true</TT>, this specifies that the
801 <TT>CLASSORIGIN</TT> attribute MUST be present on all appropriate
802 elements in each returned Instance. If false, no
803 <TT>CLASSORIGIN</TT> attributes are present in each returned
804 Instance.
805
806 @param propertyList If the <TT>propertyList</TT> input parameter is not
807 <TT>NULL</TT>, the members of the array define one or more CIMProperty
808 names. Each returned Instance MUST NOT include elements
809 for any Properties missing from this list. Note that if
810 <TT>LocalOnly</TT> is specified as <TT>true</TT> (or
811 <TT>DeepInheritance</TT> is specified as <TT>false</TT>) this acts as an
812 additional filter on the set of Properties returned (for example,
813 if CIMProperty <TT>A</TT> is included in the
814 <TT>PropertyList</TT> but <TT>LocalOnly</TT> is set to true and
815 <TT>A</TT> is not local to a returned Instance, then it will not be
816 included in that Instance). If the <TT>PropertyList</TT> input parameter
817 is an empty array this signifies that no Properties are included in each
818 returned Instance. If the <TT>PropertyList</TT> input parameter is
819 mike 1.2 NULL this specifies that all Properties (subject to the conditions
820 expressed by the other parameters) are included in each returned
821 Instance.
822
823 If the <TT>propertyList</TT> contains duplicate elements,
824 the Server MUST ignore the duplicates but otherwise process the request
825 normally. If the <TT>PropertyList</TT> contains elements which are
826 invalid CIMProperty names for any target Instance, the Server MUST
827 ignore such entries but otherwise process the request normally.
828
829 @return If successful, the method returns zero or more named
830 Instances that meet the required criteria.
831
832 If unsuccessful, one of the following status codes MUST be returned
833 by this method, where the first applicable error in the list (starting
834 with the first element of the list, and working down) is the error
835 returned. Any additional method-specific interpretation of the error in
836 is given in parentheses.
837
838 <UL>
839 <LI>CIM_ERR_ACCESS_DENIED
840 mike 1.2 <LI>CIM_ERR_NOT_SUPPORTED
841 <LI>CIM_ERR_INVALID_NAMESPACE
842 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
843 duplicate, unrecognized or otherwise incorrect parameters)
844 <LI>CIM_ERR_INVALID_CLASS (the CIM Class that is the
845 basis for this enumeration does not exist)
846 <LI>CIM_ERR_FAILED (some other unspecified erroroccurred)</LI>
847 </UL>
848 */
849
850 virtual Array<CIMInstance> enumerateInstances(
851 const String& nameSpace,
852 const String& className,
853 Boolean deepInheritance = true,
854 Boolean localOnly = true,
855 Boolean includeQualifiers = false,
856 Boolean includeClassOrigin = false,
857 const Array<String>& propertyList = EmptyStringArray()) = 0;
858
859 /** The <TT>enumerateInstanceNames</TT> operation enumerates the
860 names (model paths) of the instances of a CIM Class in the target Namespace.
861 mike 1.2
862 @param nameSpace The nameSpace parameter is a string that defines the target
863 namespace. See defintion of
864 \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
865
866 @param className The <TT>className</TT> input parameter defines the Class
867 that is the basis for the enumeration.
868
869 @return If successful, the method returns zero or more names of Instances
870 (model paths) that meet the requsted criteria.
871
872 If unsuccessful, one of the following status codes MUST be returned by this
873 method, where the first applicable error in the list (starting with the
874 first element of the list, and working down) is the error returned. Any
875 additional method-specific interpretation of the error in is given in
876 parentheses.
877
878 <UL>
879 <LI>CIM_ERR_ACCESS_DENIED
880 <LI>CIM_ERR_NOT_SUPPORTED
881 <LI>CIM_ERR_INVALID_NAMESPACE
882 mike 1.2 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
883 duplicate, unrecognized or otherwise incorrect parameters)
884 <LI>CIM_ERR_INVALID_CLASS (the CIM Class that is the
885 basis for this enumeration does not exist)
886 <LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI>
887 </UL>
888 */
889
890 virtual Array<CIMReference> enumerateInstanceNames(
891 const String& nameSpace,
892 const String& className) = 0;
893
894 /** The <TT>execQuery</TT> is used to execute a query against the target
895 Namespace.
896
897 @param nameSpace The nameSpace parameter is a string that defines the target
898 namespace. See defintion of
899 \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
900
901 @param queryLanguage The <TT>queryLanguage</TT> String input parameter
902 defines the query language in which the Query parameter is expressed.
903 mike 1.2
904 @param query The <TT>query</TT> input parameter defines the query to be
905 executed.
906
907 @return If successful, the method returns zero or more CIM Classes or
908 Instances that correspond to the results set of the query.
909
910 If unsuccessful, one of the following status codes MUST be returned by this
911 method, where the first applicable error in the list (starting with the
912 first element of the list, and working down) is the error returned. Any
913 additional method-specific interpretation of the error in is given in
914 parentheses.
915
916 <UL>
917 <LI>CIM_ERR_ACCESS_DENIED
918 <LI>CIM_ERR_NOT_SUPPORTED
919 <LI>CIM_ERR_INVALID_NAMESPACE
920 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
921 duplicate, unrecognized or otherwise incorrect parameters)
922 <LI>CIM_ERR_QUERY_LANGUAGE_NOT_SUPPORTED (the requested query language is
923 not recognized)
924 mike 1.2 <LI>CIM_ERR_INVALID_QUERY (the query is not a valid query in the
925 specified query language)
926 <LI>CIM_ERR_FAILED (some other unspecified error ccurred)</LI>
927 </UL>
928 */
929
930 virtual Array<CIMInstance> execQuery(
931 const String& queryLanguage,
932 const String& query) = 0;
933
934 /** The <TT>Associators</TT> method enumerates CIM Objects
935 (Classes or Instances) that are associated to a particular source CIM
936 Object.
937
938 @param nameSpace The nameSpace parameter is a string that defines the target
939 namespace. See defintion of
940 \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
941
942 @param objectName The <TT>objectName</TT> input parameter defines the source
943 CIM Object whose associated Objects are to be returned. This may be either
944 a Class name or Instance name (model path).
945 mike 1.2
946 @param assocClass The <TT>assocClass</TT> input parameter, if not NULL, MUST
947 be a valid CIM Association Class name. It acts as a filter on the returned
948 set of Objects by mandating that each returned Object MUST be associated to
949 the source Object via an Instance of this Class or one of its subclasses.
950
951 @param resultClass The <TT>resultClass</TT> input parameter, if not NULL,
952 MUST be a valid CIM Class name. It acts as a filter on the returned set of
953 Objects by mandating that each returned Object MUST be either an Instance of
954 this Class (or one of its subclasses) or be this Class (or one of its
955 subclasses).
956
957 @param role The <TT>role</TT> input parameter, if not NULL, MUST be a valid
958 CIMProperty name. It acts as a filter on the returned set of Objects by
959 mandating that each returned Object MUST be associated to the source Object
960 via an Association in which the source Object plays the specified role (i.e.
961 the name of the CIMProperty in the Association Class that refers to the
962 source object MUST match the value of this parameter).
963
964 @param resultRole The <TT>resultRole</TT> input parameter, if not NULL, MUST
965 be a valid CIMProperty name. It acts as a filter on the returned set of
966 mike 1.2 Objects by mandating that each returned Object MUST be associated to the
967 source Object via an Association in which the returned Object plays the
968 specified role (i.e. the name of the CIMProperty in the Association Class
969 that refers to the returned Object MUST match the value of this parameter).
970
971 @param includeQualifiers If the <TT>includeQualifiers</TT> input parameter
972 is true, this specifies that all Qualifiers for each Object (including
973 Qualifiers on the Object and on any returned Properties) MUST be included as
974 <QUALIFIER> elements in the response. If false no <QUALIFIER> elements are
975 present in each returned Object.
976
977 @param includeClassOrigin If the <TT>includeClassOrigin</TT> input parameter
978 is true, this specifies that the CLASSORIGIN attribute MUST be present on
979 all appropriate elements in each returned Object. If false, no CLASSORIGIN
980 attributes are present in each returned Object.
981
982 @param propertyList If the <TT>propertyList</TT> input parameter is not
983 NULL, the members of the array define one or more CIMProperty names. Each
984 returned Object MUST NOT include elements for any Properties missing from
985 this list. Note that if LocalOnly is specified as true (or DeepInheritance
986 is specified as false) this acts as an additional filter on the set of
987 mike 1.2 Properties returned (for example, if CIMProperty A is included in the
988 PropertyList but LocalOnly is set to true and A is not local to a returned
989 Instance, then it will not be included in that Instance). If the
990 PropertyList input parameter is an empty array this signifies that no
991 Properties are included in each returned Object. If the PropertyList input
992 parameter is NULL this specifies that all Properties (subject to the
993 conditions expressed by the other parameters) are included in each returned
994 Object.
995
996 If the propertyList contains duplicate elements, the Server MUST ignore the
997 duplicates but otherwise process the request normally. If the PropertyList
998 contains elements which are invalid CIMProperty names for any target Object,
999 the Server MUST ignore such entries but otherwise process the request
1000 normally.
1001
1002 Clients SHOULD NOT explicitly specify properties in the PropertyList
1003 parameter unless they have specified a non-NULL value for the ResultClass
1004 parameter.
1005
1006 @return If successful, the method returns zero or more CIM Classes or
1007 Instances meeting the requested criteria. Since it is possible for CIM
1008 mike 1.2 Objects from different hosts or namespaces to be associated, each returned
1009 Object includes location information.
1010
1011 If unsuccessful, one of the following status codes MUST be returned by this
1012 method, where the first applicable error in the list (starting with the
1013 first element of the list, and working down) is the error returned. Any
1014 additional method-specific interpretation of the error in is given in
1015 parentheses.
1016
1017 <UL>
1018 <LI>CIM_ERR_ACCESS_DENIED
1019 <LI>CIM_ERR_NOT_SUPPORTED
1020 <LI>CIM_ERR_INVALID_NAMESPACE
1021 <LI>CIM_ERR_INVALID_PARAMETER (including
1022 missing,duplicate, unrecognized or
1023 otherwise incorrect parameters)
1024 <LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI>
1025 </UL>
1026 */
1027 virtual Array<CIMObjectWithPath> associators(
1028 const String& nameSpace,
1029 mike 1.2 const CIMReference& objectName,
1030 const String& assocClass = String::EMPTY,
1031 const String& resultClass = String::EMPTY,
1032 const String& role = String::EMPTY,
1033 const String& resultRole = String::EMPTY,
1034 Boolean includeQualifiers = false,
1035 Boolean includeClassOrigin = false,
1036 const Array<String>& propertyList = EmptyStringArray()) = 0;
1037
1038 /** The <TT>associatorNames</TT> operation enumerates the names of
1039 CIM Objects (Classes or Instances) that are associated to a particular
1040 source CIM Object.
1041
1042 @param nameSpace The nameSpace parameter is a string that defines the target
1043 namespace. See defintion of
1044 \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
1045
1046 @param objectName The <TT>objectName</TT> input parameter defines the source
1047 CIM Object whose associated names are to be returned. This is either a Class
1048 name or Instance name (model path).
1049
1050 mike 1.2 @param assocClass The <TT>assocClass</TT> input parameter, if not NULL,
1051 MUST be a valid CIM Association Class name. It acts as a filter on the
1052 returned set of names by mandating that each returned name identifies an
1053 Object that MUST be associated to the source Object via an Instance of this
1054 Class or one of its subclasses.
1055
1056 @param resultClass The <TT>resultClass</TT> input parameter, if not NULL,
1057 MUST be a valid CIM Class name. It acts as a filter on the returned set of
1058 names by mandating that each returned name identifies an Object that MUST be
1059 either an Instance of this Class (or one of its subclasses) or be this Class
1060 (or one of its subclasses).
1061
1062 @param role The <TT>role</TT> input parameter, if not NULL, MUST be a valid
1063 CIMProperty name. It acts as a filter on the returned set of names by
1064 mandating that each returned name identifies an Object that MUST be
1065 associated to the source Object via an Association in which the source
1066 Object plays the specified role (i.e. the name of the CIMProperty in the
1067 Association Class that refers to the source Object MUST match the value of
1068 this parameter).
1069
1070 @param resultRole The <TT>resultRole</TT> input parameter, if not
1071 mike 1.2 <TT>NULL</TT>, MUST be a valid CIMProperty name. It acts as a filter on the
1072 returned set of names by mandating that each returned name identifies an
1073 Object that MUST be associated to the source Object via an Association in
1074 which the named returned Object plays the specified role (i.e. the name of
1075 the CIMProperty in the Association Class that refers to the returned Object
1076 MUST match the value of this parameter).
1077
1078 @return If successful, the method returns zero or more full CIM Class paths
1079 or Instance paths of Objects meeting the requested criteria. Since it is
1080 possible for CIM Objects from different hosts or namespaces to be
1081 associated, each returned path is an absolute path that includes host and
1082 namespace information.
1083
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
1086 first element of the list, and working down) is the error returned. Any
1087 additional method-specific interpretation of the error in is given in
1088 parentheses.
1089
1090 <UL>
1091 <LI>CIM_ERR_ACCESS_DENIED
1092 mike 1.2 <LI>CIM_ERR_NOT_SUPPORTED
1093 <LI>CIM_ERR_INVALID_NAMESPACE;
1094 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
1095 duplicate, unrecognized or otherwise incorrect parameters)
1096 <LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI>
1097 </UL>
1098 */
1099 virtual Array<CIMReference> associatorNames(
1100 const String& nameSpace,
1101 const CIMReference& objectName,
1102 const String& assocClass = String::EMPTY,
1103 const String& resultClass = String::EMPTY,
1104 const String& role = String::EMPTY,
1105 const String& resultRole = String::EMPTY) = 0;
1106
1107 /** The <TT>references</TT> operation enumerates the association
1108 objects that refer to a particular target CIM Object (Class or Instance).
1109
1110 @param The NameSpace parameter is a string that defines the target
1111 namespace \Ref{NAMESPACE}
1112
1113 mike 1.2 @param nameSpace The nameSpace parameter is a string that defines the target
1114 namespace. See defintion of
1115 \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
1116
1117 @param objectName The <TT>objectName</TT> input parameter defines the target
1118 CIM Object whose referring Objects are to be returned. This is either a
1119 Class name or Instance name (model path).
1120
1121 @param resultClass The <TT>resultClass</TT> input parameter, if not NULL,
1122 MUST be a valid CIM Class name. It acts as a filter on the returned set of
1123 Objects by mandating that each returned Object MUST be an Instance of this
1124 Class (or one of its subclasses), or this Class (or one of its subclasses).
1125
1126 @param role The <TT>role</TT> input parameter, if not NULL, MUST be a valid
1127 CIMProperty name. It acts as a filter on the returned set of Objects by
1128 mandating that each returned Objects MUST refer to the target Object via a
1129 CIMProperty whose name matches the value of this parameter.
1130
1131 @param includeQualifiers. If the <TT>includeQualifiers</TT> input parameter
1132 is true, this specifies that all Qualifiers for each Object (including
1133 Qualifiers on the Object and on any returned Properties) MUST be included as
1134 mike 1.2 <QUALIFIER> elements in the response. If false no <QUALIFIER> elements are
1135 present in each returned Object.
1136
1137 @param includeClassOrigin If the <TT>includeClassOrigin</TT> input parameter
1138 is true, this specifies that the CLASSORIGIN attribute MUST be present on
1139 all appropriate elements in each returned Object. If false, no CLASSORIGIN
1140 attributes are present in each returned Object.
1141
1142 @param propertyList If the <TT>propertyList</TT> input parameter is not
1143 NULL, the members of the array define one or more CIMProperty names. Each
1144 returned Object MUST NOT include elements for any Properties missing from
1145 this list. Note that if LocalOnly is specified as true (or DeepInheritance
1146 is specified as false) this acts as an additional filter on the set of
1147 Properties returned (for example, if CIMProperty A is included in the
1148 PropertyList but LocalOnly is set to true and A is not local to a returned
1149 Instance, then it will not be included in that Instance). If the
1150 PropertyList input parameter is an empty array this signifies that no
1151 Properties are included in each returned Object. If the PropertyList input
1152 parameter is NULL this specifies that all Properties (subject to the
1153 conditions expressed by the other parameters) are included in each returned
1154 Object.
1155 mike 1.2
1156 If the PropertyList contains duplicate elements, the Server MUST ignore the
1157 duplicates but otherwise process the request normally. If the PropertyList
1158 contains elements which are invalid CIMProperty names for any target Object,
1159 the Server MUST ignore such entries but otherwise process the request
1160 normally.
1161
1162 Clients SHOULD NOT explicitly specify properties in the PropertyList
1163 parameter unless they have specified a non-NULL value for the ResultClass
1164 parameter.
1165
1166 @return If successful, the method returns zero or more CIM Classes or
1167 Instances meeting the requested criteria. Since it is possible for CIM
1168 Objects from different hosts or namespaces to be associated, each returned
1169 Object includes location information.
1170
1171 If unsuccessful, one of the following status codes MUST be returned by this
1172 method, where the first applicable error in the list (starting with the
1173 first element of the list, and working down) is the error returned. Any
1174 additional method-specific interpretation of the error in is given in
1175 parentheses.
1176 mike 1.2
1177 <UL>
1178 <LI>CIM_ERR_ACCESS_DENIED
1179 <LI>CIM_ERR_NOT_SUPPORTED
1180 <LI>CIM_ERR_INVALID_NAMESPACE
1181 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
1182 duplicate, unrecognized or otherwise incorrect parameters)
1183 <LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI>
1184 </UL>
1185 */
1186 virtual Array<CIMObjectWithPath> references(
1187 const String& nameSpace,
1188 const CIMReference& objectName,
1189 const String& resultClass = String::EMPTY,
1190 const String& role = String::EMPTY,
1191 Boolean includeQualifiers = false,
1192 Boolean includeClassOrigin = false,
1193 const Array<String>& propertyList= EmptyStringArray()) = 0;
1194
1195 /**
1196 The <TT>referenceNames</TT> operation enumerates the association
1197 mike 1.2 objects that refer to a particular target CIM Object (Class or Instance).
1198
1199 @param The NameSpace parameter is a string that defines the target
1200 namespace \Ref{NAMESPACE}
1201
1202 @param nameSpace The nameSpace parameter is a string that defines the target
1203 namespace. See defintion of
1204 \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
1205
1206 @param objectName The <TT>objectName</TT> input parameter defines the target
1207 CIM Object whose referring object names are to be returned. It may be either
1208 a Class name or an Instance name (model path).
1209
1210 @param resultClass The <TT>resultClass</TT> input parameter, if not NULL,
1211 MUST be a valid CIM Class name. It acts as a filter on the returned set of
1212 Object Names by mandating that each returned Object CIMName MUST identify an
1213 Instance of this Class (or one of its subclasses), or this Class (or one of
1214 its subclasses).
1215
1216 @param role The <TT>role</TT> input parameter, if not NULL, MUST be a valid
1217 CIMProperty name. It acts as a filter on the returned set of Object Names by
1218 mike 1.2 mandating that each returned Object CIMName MUST identify an Object that
1219 refers to the target Instance via a CIMProperty whose name matches the value
1220 of this parameter.
1221
1222 @return If successful,the method returns the names of zero or more full CIM
1223 Class paths or Instance paths of Objects meeting the requested criteria.
1224 Since it is possible for CIM Objects from different hosts or namespaces to
1225 be associated, each returned path is an absolute path that includes host and
1226 namespace information.
1227
1228 If unsuccessful, one of the following status codes MUST be returned by this
1229 method, where the first applicable error in the list (starting with the
1230 first element of the list, and working down) is the error returned. Any
1231 additional method-specific interpretation of the error in is given in
1232 parentheses.
1233 <UL>
1234 <LI>CIM_ERR_ACCESS_DENIED
1235 <LI>CIM_ERR_NOT_SUPPORTED
1236 <LI>CIM_ERR_INVALID_NAMESPACE
1237 <LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,
1238 unrecognized or otherwise incorrect parameters)
1239 mike 1.2 <LI>CIM_ERR_FAILED (some other unspecified error occurred)
1240 </UL>
1241 */
1242 virtual Array<CIMReference> referenceNames(
1243 const String& nameSpace,
1244 const CIMReference& objectName,
1245 const String& resultClass = String::EMPTY,
1246 const String& role = String::EMPTY) = 0;
1247
1248 /**
1249 The <TT>getProperty</TT>operation is used to retrieve a single property
1250 value from a CIM Instance in the target Namespace.
1251
1252 @param nameSpace The nameSpace parameter is a string that defines the target
1253 namespace. See defintion of
1254 \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
1255
1256 @param instanceName The <TT>instanceName</TT> input parameter specifies the
1257 name of the Instance (model path) from which the CIMProperty value is
1258 requested. \\Ref{INSTANCENAME}
1259
1260 mike 1.2 @param propertyName The <TT>propertyName</TT> input parameter specifies the
1261 name of the CIMProperty whose value is to be returned.
1262
1263 @return If successful, the return value specifies the value of the requested
1264 CIMProperty. If the value is NULL then no element is returned.
1265
1266 If unsuccessful, one of the following status codes MUST be returned by this
1267 method, where the first applicable error in the list (starting with the
1268 first element of the list, and working down) is the error returned. Any
1269 additional method-specific interpretation of the error in is given in
1270 parentheses.
1271 <UL>
1272 <LI>CIM_ERR_ACCESS_DENIED
1273 <LI>CIM_ERR_INVALID_NAMESPACE
1274 <LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,
1275 unrecognized or otherwise incorrect parameters)
1276 <LI>CIM_ERR_INVALID_CLASS (the CIM Class does not exist in the specified
1277 namespace)
1278 <LI>CIM_ERR_NOT_FOUND (the CIM Class does exist, but the requested CIM
1279 Instance does not exist in the specified namespace)
1280 <LI><LI>CIM_ERR_NO_SUCH_PROPERTY (the CIM Instance does exist, but the
1281 mike 1.2 requested CIMProperty does not)
1282 <LI>CIM_ERR_FAILED (some other unspecified error occurred)
1283 </UL>
1284 */
1285 virtual CIMValue getProperty(
1286 const String& nameSpace,
1287 const CIMReference& instanceName,
1288 const String& propertyName) = 0;
1289
1290 /** The <TT>setProperty</TT> operation sets a single property value in a CIM
1291 Instance in the target Namespace.
1292
1293 @param nameSpace The nameSpace parameter is a string that defines the target
1294 namespace. See defintion of
1295 \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
1296
1297 @param instanceName The <TT>instanceName</TT> input parameter specifies the
1298 name of the Instance (model path) for which the CIMProperty value is to be
1299 updated.
1300
1301 @param propertyName The <TT>propertyName</TT> input parameter specifies the
1302 mike 1.2 name of the CIMProperty whose value is to be updated.
1303
1304 @param newValue The NewValue input parameter specifies the new value for the
1305 CIMProperty (which may be NULL).
1306
1307 @return If unsuccessful, one of the following status codes MUST be returned
1308 by this method, where the first applicable error in the list (starting with
1309 the first element of the list, and working down) is the error returned. Any
1310 additional method-specific interpretation of the error in is given in
1311 parentheses.
1312 <UL>
1313 <LI>CIM_ERR_ACCESS_DENIED
1314 <LI>CIM_ERR_INVALID_NAMESPACE
1315
1316 <LI>CIM_ERR_INVALID_PARAMETER (including
1317 missing,duplicate, unrecognized or otherwise incorrect parameters)
1318
1319 <LI>CIM_ERR_INVALID_CLASS (the CIM Class does not exist in the specified
1320 namespace)
1321 <LI>CIM_ERR_NOT_FOUND (the CIM Class does exist, but the requested
1322 CIM Instance does not exist in the specified namespace)
1323 mike 1.2 <LI>CIM_ERR_NO_SUCH_PROPERTY (the CIM Instance does exist, but the
1324 requested CIMProperty does not)
1325 <LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI>
1326 </UL>
1327 */
1328 virtual void setProperty(
1329 const String& nameSpace,
1330 const CIMReference& instanceName,
1331 const String& propertyName,
1332 const CIMValue& newValue = CIMValue()) = 0;
1333
1334 /** The <TT>getQualifier</TT> operation retrieves a single CIMQualifier
1335 declaration from the target Namespace.
1336
1337 @param nameSpace The nameSpace parameter is a string that defines the target
1338 namespace. See defintion of
1339 \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
1340
1341 @param qualifierName The <TT>qualifierName</TT> input parameter identifies
1342 the CIMQualifier whose declaration to be retrieved.
1343
1344 mike 1.2 @return If successful, the method returns the CIMQualifier declaration for
1345 the named CIMQualifier.
1346
1347 If unsuccessful, one of the following status codes MUST be returned by this
1348 method, where the first applicable error in the list (starting with the
1349 first element of the list, and working down) is the error returned. Any
1350 additional method-specific interpretation of the error in is given in
1351 parentheses.
1352
1353 <UL>
1354 <LI>CIM_ERR_ACCESS_DENIED
1355 <LI>CIM_ERR_NOT_SUPPORTED
1356 <LI>CIM_ERR_INVALID_NAMESPACE
1357 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
1358 duplicate, unrecognized or otherwise incorrect parameters)
1359 <LI>CIM_ERR_INVALID_CLASS (the CIM Class does not exist in the specified
1360 namespace)
1361 <LI>CIM_ERR_NOT_FOUND (the CIM Class does exist, but the requested
1362 CIM Instance does not exist in the specified namespace)
1363 <LI>CIM_ERR_NO_SUCH_PROPERTY (the CIM Instance does exist, but the
1364 requested CIMProperty does not)
1365 mike 1.2 <LI>CIM_ERR_TYPE_MISMATCH (the supplied value is incompatible with the
1366 type of the CIMProperty)
1367 <LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI>
1368 </UL>
1369 */
1370 virtual CIMQualifierDecl getQualifier(
1371 const String& nameSpace,
1372 const String& qualifierName) = 0;
1373
1374
1375 /** The <TT>setQualifier</TT> creates or update a single CIMQualifier
1376 declaration in the target Namespace. If the CIMQualifier declaration
1377 already
1378 exists it is overwritten.
1379
1380 @param NameSpace The NameSpace parameter is a string that defines the target
1381 namespace \Ref{NAMESPACE}
1382
1383 @param nameSpace The nameSpace parameter is a string that defines the target
1384 namespace. See defintion of
1385 \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
1386 mike 1.2
1387 @param CIMQualifierDecl The <TT>CIMQualifierDecl</TT> input parameter
1388 defines the CIMQualifier Declaration to be added to the Namespace.
1389
1390 @return If successful, the CIMQualifier declaration MUST have been added to
1391 the target Namespace. If a CIMQualifier declaration with the same
1392 CIMQualifier name already existed, then it MUST have been replaced by the
1393 new declaration.
1394
1395 If unsuccessful, one of the following status codes MUST be returned
1396 by this method, where the first applicable error in the list (starting with
1397 the first element of the list, and working down) is the error returned. Any
1398 additional method-specific interpretation of the error in is given in
1399 parentheses.
1400
1401 <UL>
1402 <LI>CIM_ERR_ACCESS_DENIED
1403 <LI>CIM_ERR_NOT_SUPPORTED
1404 <LI>CIM_ERR_INVALID_NAMESPACE
1405 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
1406 duplicate, unrecognized or otherwise incorrect parameters)
1407 mike 1.2 <LI>CIM_ERR_NOT_FOUND (the requested CIMQualifier declaration did not
1408 exist)
1409 <LI>CIM_ERR_FAILED (some other unspecified error occurred)
1410 </LI>
1411 </UL>
1412 */
1413 virtual void setQualifier(
1414 const String& nameSpace,
1415 const CIMQualifierDecl& qualifierDecl) = 0;
1416
1417 /** The <TT>deleteQualifier</TT> operation deletes a single CIMQualifier
1418 declaration from the target Namespace.
1419
1420 @param nameSpace The nameSpace parameter is a string that defines the target
1421 namespace. See defintion of
1422 \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
1423
1424 @param qualifierName The <TT>qualifierName</TT> input parameter identifies
1425 the CIMQualifier whose declaration to be deleted. @return If successful, the
1426 specified CIMQualifier declaration MUST have been deleted from the
1427 Namespace.
1428 mike 1.2
1429 @return If unsuccessful, one of the following status codes MUST be returned
1430 by this method, where the first applicable error in the list (starting with
1431 the first element of the list, and working down) is the error returned. Any
1432 additional method-specific interpretation of the error in is given in
1433 parentheses.
1434
1435 <UL>
1436 <LI>CIM_ERR_ACCESS_DENIED
1437 <LI>CIM_ERR_NOT_SUPPORTED
1438 <LI>CIM_ERR_INVALID_NAMESPACE
1439 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
1440 duplicate, unrecognized or otherwise incorrect parameters)
1441 <LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI>
1442 </UL>
1443
1444 */
1445 virtual void deleteQualifier(
1446 const String& nameSpace,
1447 const String& qualifierName) = 0;
1448
1449 mike 1.2
1450 /** The <TT>enumerateQualifiers</TT> operation is used to enumerate
1451 CIMQualifier declarations from the target Namespace.
1452
1453 @param nameSpace The nameSpace parameter is a string that defines the target
1454 namespace. See defintion of
1455 \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
1456
1457 @return If successful, the method returns zero or more CIMQualifier
1458 declarations.
1459
1460 If unsuccessful, one of the following status codes MUST be returned by this
1461 method, where the first applicable error in the list (starting with the
1462 first element of the list, and working down) is the error returned. Any
1463 additional method-specific interpretation of the error in is given in
1464 parentheses.
1465
1466 <UL>
1467 <LI>CIM_ERR_ACCESS_DENIED
1468 <LI>CIM_ERR_NOT_SUPPORTED
1469 <LI>CIM_ERR_INVALID_NAMESPACE
1470 mike 1.2 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
1471 duplicate, unrecognized or otherwise incorrect parameters)
1472 <LI>CIM_ERR_NOT_FOUND (the requested CIMQualifier declaration did not
1473 exist)
1474 <LI>CIM_ERR_FAILED (some other unspecified error occurred)
1475 </LI>
1476 </UL>
1477 */
1478 virtual Array<CIMQualifierDecl> enumerateQualifiers(
1479 const String& nameSpace) = 0;
1480
1481
1482 /** Execute an extrinsic CIM method.
1483 Any CIM Server is assumed to support extrinsic methods. Extrinsic methods
1484 are defined by the Schema supported by the Cim Server. If a CIM Server does
1485 not support extrinsic method invocations, it MUST (subject to the
1486 considerations described in the rest of this section) return the error code
1487 CIM_ERR_NOT_SUPPORTED to any request to execute an extrinsic method. This
1488 allows a CIM client to determine that all attempts to execute extrinsic
1489 methods will fail.
1490
1491 mike 1.2 @param nameSpace The nameSpace parameter is a string that defines the target
1492 namespace. See defintion of
1493 \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
1494
1495 @param instanceName The <TT>instanceName</TT> parameter is a CIMReference
1496 that defines the CIM instance for which the method is defined
1497
1498 @param methodName The <TT>methodName</TT> parameter is a String with the
1499 name of the method to be executed.
1500
1501 @param inParameters This parameter defines an array of input parameters for
1502 the method execution
1503
1504 @param outParameters This parameter defines an array of parameters returned
1505 by the executed method
1506
1507 @return If the Cim Server is unable to perform the extrinsic method
1508 invocation, one of the following status codes MUST be returned by the
1509 CimServer, where the first applicable error in the list (starting with the
1510 first element of the list, and working down) is the error returned. Any
1511 additional specific interpretation of the error is given in parentheses.
1512 mike 1.2
1513 ATTN: We have not defined the CIMValue returned
1514 <UL>
1515
1516 <LI>CIM_ERR_ACCESS_DENIED
1517 <LI>CIM_ERR_NOT_SUPPORTED (the CimServer does not support extrinsic
1518 method invocations)
1519 <LI>CIM_ERR_INVALID_NAMESPACE
1520 <LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,
1521 unrecognized or otherwise incorrect parameters)
1522 <LI>CIM_ERR_NOT_FOUND (the target CIM Class or instance does not exist
1523 in the specified namespace)
1524 <LI>CIM_ERR_METHOD_NOT_FOUND
1525 <LI>CIM_ERR_METHOD_NOT_AVAILABLE (the CimServer is unable to honor the
1526 invocation request)
1527 <LI>CIM_ERR_FAILED (some other unspecified error occurred)
1528 </UL>
1529
1530 */
1531 virtual CIMValue invokeMethod(
1532 const String& nameSpace,
1533 mike 1.2 const CIMReference& instanceName,
1534 const String& methodName,
1535 const Array<CIMValue>& inParameters,
1536 Array<CIMValue>& outParameters) = 0;
1537 };
1538
1539 PEGASUS_NAMESPACE_END
1540
1541 #endif /* Pegasus_Operations_h */
1542
|