1 kumpf 1.2 // ===================================================================
2 // Title: Core Products & FRUs 2.7
3 // Filename: Core27_ProductFRU.mof
4 // Version: 2.7.0
5 // Release: Final
6 // Date: 03/31/03
7 // ===================================================================
8 // Copyright 1999-2003 Distributed Management Task Force, Inc. (DMTF).
9 // All rights reserved.
10 // DMTF is a not-for-profit association of industry members dedicated
11 // to promoting enterprise and systems management and interoperability.
12 // DMTF specifications and documents may be reproduced for uses
13 // consistent with this purpose by members and non-members,
14 // provided that correct attribution is given.
15 // As DMTF specifications may be revised from time to time,
16 // the particular version and release date should always be noted.
17 //
18 // Implementation of certain elements of this standard or proposed
19 // standard may be subject to third party patent rights, including
20 // provisional patent rights (herein "patent rights"). DMTF makes
21 // no representations to users of the standard as to the existence
22 kumpf 1.2 // of such rights, and is not responsible to recognize, disclose, or
23 // identify any or all such third party patent right, owners or
24 // claimants, nor for any incomplete or inaccurate identification or
25 // disclosure of such rights, owners or claimants. DMTF shall have no
26 // liability to any party, in any manner or circumstance, under any
27 // legal theory whatsoever, for failure to recognize, disclose, or
28 // identify any such third party patent rights, or for such party's
29 // reliance on the standard or incorporation thereof in its product,
30 // protocols or testing procedures. DMTF shall have no liability to
31 // any party implementing such standard, whether such implementation
32 // is foreseeable or not, nor to any patent owner or claimant, and shall
33 // have no liability or responsibility for costs or losses incurred if
34 // a standard is withdrawn or modified after publication, and shall be
35 // indemnified and held harmless by any party implementing the
36 // standard from any and all claims of infringement by a patent owner
37 // for such implementations.
38 //
39 // For information about patents held by third-parties which have
40 // notified the DMTF that, in their opinion, such patent may relate to
41 // or impact implementations of DMTF standards, visit
42 // http://www.dmtf.org/about/policies/disclosures.php.
43 kumpf 1.2 // ===================================================================
44 // Description: The Core Model defines basic management concepts.
45 // This file defines the concepts for Products and
46 // FRUs (field replaceable units).
47 //
48 // The object classes below are listed in an order that
49 // avoids forward references. Required objects, defined
50 // by other working groups, are omitted.
51 // ==================================================================
52 // Change Log for v2.7
53 // CR968 - Remove the Experimental qualifier
54 //
55 // Change Log for v2.7
56 // CR753 - Update description for Product and add ModelCorrespondence
57 // to the CIM Support Schema
58 // - Add ProductComponent, ProductPhysicalComponent,
59 // ProductSoftwareComponent and ProductServiceComponent
60 // - Deprecate ProductPhysicalElementsComponent
61 // CR761 - Add the Composition qualifier to ProductParentChild,
62 // ProductPhysicalElements, FRUPhysicalElements, and
63 // FRUIncludesProduct
64 kumpf 1.2 // ==================================================================
65
66 #pragma locale ("en_US")
67
68
69 // ==================================================================
70 // Product
71 // ==================================================================
72 [Version ("2.7.0"), Description (
73 " CIM_Product is a concrete class that aggregates "
74 "PhysicalElements, software (SoftwareIdentity and "
75 "SoftwareFeatures), Services and/or other Products, and is "
76 "acquired as a unit. Acquisition implies an agreement "
77 "between supplier and consumer which may have implications "
78 "to Product licensing, support and warranty. Non-commercial "
79 "(e.g., in-house developed Products) should also be "
80 "identified as an instance of CIM_Product. \n"
81 " Note that software is handled a bit differently in the list "
82 "of aggregated entities, above. This is because software can "
83 "be viewed as a tangible asset (similar to PhysicalElements) AND/"
84 "OR as a set of features that make up a Product and are deployed. "
85 kumpf 1.2 "These are two different concepts, usually managed by different "
86 "units in a business' organization. When software 'features' are "
87 "described, the CIM_SoftwareFeature class from the Application "
88 "Model is instantiated (where Features are Weak to/scoped by a "
89 "Product). When a specific piece of software is acquired and "
90 "perhaps warrantied as part of a Product, this is addressed by "
91 "the class, SoftwareIdentity.") ]
92 class CIM_Product : CIM_ManagedElement {
93
94 [Key, MaxLen (256),
95 Description ("Commonly used Product name."),
96 ModelCorrespondence {"CIM.DMTF|PRS_Product.ProductName"},
97 MappingStrings {"MIF.DMTF|ComponentID|001.2"} ]
98 string Name;
99
100 [Key, MaxLen (64), Description (
101 "Product identification such as a serial number on software, "
102 "a die number on a hardware chip, or (for non-commercial "
103 "Products) a project number."),
104 MappingStrings {"MIF.DMTF|ComponentID|001.4"} ]
105 string IdentifyingNumber;
106 kumpf 1.2
107 [Key, MaxLen (256), Description (
108 "The name of the Product's supplier, or entity selling the "
109 "Product (the manufacturer, reseller, OEM, etc.). Corresponds "
110 "to the Vendor property in the Product object in the DMTF "
111 "Solution Exchange Standard."),
112 ModelCorrespondence {"CIM.DMTF|PRS_Product.Vendor"},
113 MappingStrings {"MIF.DMTF|ComponentID|001.1"} ]
114 string Vendor;
115
116 [Key, MaxLen (64),
117 Description ("Product version information."),
118 ModelCorrespondence {"CIM.DMTF|PRS_Product.Version"},
119 MappingStrings {"MIF.DMTF|ComponentID|001.3"} ]
120 string Version;
121
122 [MaxLen (64), Description (
123 "Product SKU (stock keeping unit) information.") ]
124 string SKUNumber;
125
126 [Description (
127 kumpf 1.2 "If this Product is under warranty, the start date of the "
128 "warranty."),
129 ModelCorrespondence {"CIM_Product.WarrantyDuration"},
130 MappingStrings {"MIF.DMTF|FRU|002.9"} ]
131 datetime WarrantyStartDate;
132
133 [Description (
134 "If this Product is under warranty, the duration of the "
135 "warranty in days."), Units ("Days"),
136 ModelCorrespondence {"CIM_Product.WarrantyStartDate"},
137 MappingStrings {"MIF.DMTF|FRU|002.10"}]
138 uint32 WarrantyDuration;
139 };
140
141
142 // ==================================================================
143 // ProductComponent
144 // ==================================================================
145 [Association, Aggregation, Composition,
146 Version ("2.7.0"), Description (
147 "The CIM_ProductComponent association defines a containment "
148 kumpf 1.2 "and component relationship among Products. For example, a "
149 "Product may come bundled with other Products. \n"
150 "Note that this association duplicates ProductParentChild. "
151 "The latter association is maintained for legacy reasons. "
152 "This association, ProductComponent, is added for ease of "
153 "query and modeling consistency. Using ProductComponent, an "
154 "application can query for all Component relationships for "
155 "a Product, versus querying the various Component "
156 "relationships AND ProductParentChild.") ]
157 class CIM_ProductComponent : CIM_Component {
158
159 [Override ("GroupComponent"), Aggregate,
160 ModelCorrespondence {"PRS_ProductComponent.Antecedent"},
161 Description (
162 "The Product which contains another Product as a component. "
163 "The cardinality of this reference takes the default values "
164 "(no minimum or maximum) since an instance of Product "
165 "can describe either a general product type, or a specific "
166 "item that is acquired. In the case of a specific item, "
167 "a cardinality of Max(1) is indicated. However, when "
168 "dealing with the general description/templating of a Product, "
169 kumpf 1.2 "then it may be a component of several others and a "
170 "cardinality of Max(1) would be invalid.") ]
171 CIM_Product REF GroupComponent;
172
173 [Override ("PartComponent"),
174 ModelCorrespondence {"PRS_ProductComponent.Dependent"},
175 Description ("The contained Product.") ]
176 CIM_Product REF PartComponent;
177 };
178
179
180 // ==================================================================
181 // ProductParentChild
182 // ==================================================================
183 [Association, Aggregation, Composition, Version ("2.7.0"),
184 Description (
185 "The CIM_ProductParentChild association defines a parent "
186 "child hierarchy among Products. For example, a Product may "
187 "come bundled with other Products.") ]
188 class CIM_ProductParentChild {
189
190 kumpf 1.2 [Aggregate, Key, Description (
191 "The parent Product in the association.") ]
192 CIM_Product REF Parent;
193
194 [Key, Description (
195 "The child Product in the association.") ]
196 CIM_Product REF Child;
197 };
198
199
200 // ==================================================================
201 // CompatibleProduct
202 // ==================================================================
203 [Association, Version ("2.6.0"), Description (
204 "CIM_CompatibleProduct is an association between Products "
205 "that can indicate a wide variety of information. For "
206 "example, it can indicate that the two referenced Products "
207 "interoperate, that they can be installed together, that "
208 "one can be the physical container for the other, etc. The "
209 "string property, CompatibilityDescription, defines how the "
210 "Products interoperate or are compatible, any limitations "
211 kumpf 1.2 "regarding interoperability or installation, ...") ]
212 class CIM_CompatibleProduct {
213
214 [Key, Description (
215 "The Product for which compatible offerings are defined.") ]
216 CIM_Product REF Product;
217
218 [Key, Description (
219 "The compatible Product.") ]
220 CIM_Product REF CompatibleProduct;
221
222 [Description (
223 "CompatibilityDescription is a free-form string defining "
224 "how the two referenced Products interoperate or are "
225 "compatible, any limitations to compatibility, etc.") ]
226 string CompatibilityDescription;
227 };
228
229
230 // ==================================================================
231 // ProductProductDependency
232 kumpf 1.2 // ==================================================================
233 [Association, Version ("2.6.0"), Description (
234 "CIM_ProductProductDependency is an association between two "
235 "Products, indicating that one must be installed, or must be "
236 "absent, for the other to function. This is conceptually "
237 "equivalent to the ServiceServiceDependency association.") ]
238 class CIM_ProductProductDependency {
239
240 [Key, Description (
241 "The required Product.") ]
242 CIM_Product REF RequiredProduct;
243
244 [Key, Description (
245 "The Product that is dependent on another Product.") ]
246 CIM_Product REF DependentProduct;
247
248 [Description (
249 "The nature of the Product dependency. This property "
250 "describes that the associated Product must be installed "
251 "(value=2) or must be absent (value=3) in order for the "
252 "Product to function."),
253 kumpf 1.2 ValueMap {"0", "1", "2", "3"},
254 Values {"Unknown", "Other", "Product Must Be Installed",
255 "Product Must Not Be Installed"} ]
256 uint16 TypeOfDependency;
257 };
258
259
260 // ==================================================================
261 // SupportAccess
262 // ==================================================================
263 [Version ("2.6.0"), Description (
264 "The CIM_SupportAccess association defines how to obtain "
265 "assistance for a Product.") ]
266 class CIM_SupportAccess : CIM_ManagedElement {
267
268 [Key, MaxLen (256), Description (
269 "SupportAccessID is an arbitrary, free form string defined by "
270 "the Product Vendor or by the organization that deploys the "
271 "Product. This property, since it is a key, should be unique "
272 "throughout the enterprise.") ]
273 string SupportAccessId;
274 kumpf 1.2
275 [Override ("Description"), Description (
276 "A textual description of the type of Support provided."),
277 MappingStrings {"MIF.DMTF|Support|001.3"} ]
278 string Description;
279
280 [Description (
281 "CommunicationInfo provides the details of the Communication"
282 "Mode. For example, if the CommunicationMode is 'Phone', "
283 "CommunicationInfo specifies the phone number to be called."),
284 MappingStrings {"MIF.DMTF|FRU|002.11", "MIF.DMTF|FRU|002.12"} ]
285 string CommunicationInfo;
286
287 [Description (
288 "CommunicationMode defines the form of communication in order "
289 "to obtain support. For example, phone communication (value"
290 "=2), fax (3) or email (8) can be specified."),
291 ValueMap {"1", "2", "3", "4", "5", "6", "7", "8"},
292 Values {"Other", "Phone", "Fax", "BBS",
293 "Online Service", "Web Page", "FTP", "E-mail"},
294 MappingStrings {"MIF.DMTF|Support|001.5"} ]
295 kumpf 1.2 uint16 CommunicationMode;
296
297 [MaxLen (64), Description (
298 "Locale defines the geographic region and/or language dialect "
299 "to which this Support resource pertains."),
300 MappingStrings {"MIF.DMTF|Support|001.2"} ]
301 string Locale;
302 };
303
304
305 // ==================================================================
306 // ProductSupport
307 // ==================================================================
308 [Association, Version ("2.6.0"), Description (
309 "CIM_ProductSupport is an association between Product and "
310 "SupportAccess that conveys how support is obtained for the "
311 "Product. This is a many-to-many relationship, implying that "
312 "various types of Support are available for a Product, and "
313 "that the same Support object can provide assistance for "
314 "multiple Products.") ]
315 class CIM_ProductSupport {
316 kumpf 1.2
317 [Key, Description (
318 "The Product.") ]
319 CIM_Product REF Product;
320
321 [Key, Description (
322 "Support for the Product.") ]
323 CIM_SupportAccess REF Support;
324 };
325
326
327 // ==================================================================
328 // FRU
329 // ==================================================================
330 [Version ("2.6.0"), Description (
331 "The CIM_FRU class is a vendor-defined collection of Products "
332 "and/or PhysicalElements that is associated with a "
333 "Product for the purpose of supporting, maintaining or "
334 "upgrading that Product at the customer's location. FRU is "
335 "an acronym for 'field replaceable unit'.") ]
336 class CIM_FRU : CIM_ManagedElement {
337 kumpf 1.2
338 [Key, MaxLen (64), Description (
339 "FRU ordering information."),
340 MappingStrings {"MIF.DMTF|FRU|002.6"} ]
341 string FRUNumber;
342
343 [Key, MaxLen (64), Description (
344 "FRU identification such as a serial number on software or "
345 "a die number on a hardware chip."),
346 MappingStrings {"MIF.DMTF|FRU|002.7"} ]
347 string IdentifyingNumber;
348
349 [Key, MaxLen (256),
350 Description ("The name of the FRU's supplier."),
351 MappingStrings {"MIF.DMTF|FRU|002.4"} ]
352 string Vendor;
353
354 [Override ("Description"), Description (
355 "A textual description of the FRU."),
356 MappingStrings {"MIF.DMTF|FRU|002.3"} ]
357 string Description;
358 kumpf 1.2
359 [MaxLen (256), Description (
360 "FRU name.") ]
361 string Name;
362
363 [MaxLen (64), Description (
364 "The FRU's revision level."),
365 MappingStrings {"MIF.DMTF|FRU|002.8"} ]
366 string RevisionLevel;
367
368 [Description (
369 "Indicates whether the FRU is customer replaceable.") ]
370 boolean CustomerReplaceable;
371 };
372
373
374 // ==================================================================
375 // ProductFRU
376 // ==================================================================
377 [Association, Version ("2.6.0"), Description (
378 "CIM_ProductFRU is an association between Product and FRU "
379 kumpf 1.2 "that provides information regarding what Product components "
380 "have been or are being replaced. The association is one to "
381 "many, conveying that a Product can have many FRUs, and that "
382 "a particular instance of a FRU is only applied to one "
383 "(instance of a) Product.") ]
384 class CIM_ProductFRU {
385
386 [Max (1), Key, Description (
387 "The Product to which the FRU is applied.") ]
388 CIM_Product REF Product;
389
390 [Key, Description (
391 "The FRU.") ]
392 CIM_FRU REF FRU;
393 };
394
395
396 // ==================================================================
397 // ReplaceableProductFRU
398 // ==================================================================
399 [Association, Version ("2.6.0"), Description (
400 kumpf 1.2 "ReplaceableProductFRU is an association between Product and "
401 "FRU that shows what Product components may be replaced. "
402 "The association is one to many, conveying that a Product "
403 "can have many FRUs, and that a particular instance of a "
404 "FRU is only applied to one (instance of a) Product.") ]
405 class CIM_ReplaceableProductFRU {
406
407 [Max (1), Key, Description (
408 "The Product to which the FRU is applied.") ]
409 CIM_Product REF Product;
410
411 [Key, Description (
412 "The FRU.") ]
413 CIM_FRU REF FRU;
414 };
415
416
417 // ==================================================================
418 // ProductPhysicalComponent
419 // ==================================================================
420 [Association, Aggregation, Composition,
421 kumpf 1.2 Version ("2.7.0"), Description (
422 "Indicates that the referenced PhysicalElement is acquired "
423 "as part of a Product.") ]
424 class CIM_ProductPhysicalComponent : CIM_Component {
425
426 [Override ("GroupComponent"), Max (1), Description (
427 "The Product.") ]
428 CIM_Product REF GroupComponent;
429
430 [Override ("PartComponent"), Description (
431 "The PhysicalElement which is a part of the Product.") ]
432 CIM_PhysicalElement REF PartComponent;
433 };
434
435
436 // ==================================================================
437 // ProductSoftwareComponent
438 // ==================================================================
439 [Association, Aggregation, Composition,
440 Version ("2.7.0"), Description (
441 "Indicates that the referenced SoftwareIdentity is acquired "
442 kumpf 1.2 "as part of a Product.") ]
443 class CIM_ProductSoftwareComponent : CIM_Component {
444
445 [Override ("GroupComponent"), Max (1), Description (
446 "The Product.") ]
447 CIM_Product REF GroupComponent;
448
449 [Override ("PartComponent"), Description (
450 "The software which is a part of the Product.") ]
451 CIM_SoftwareIdentity REF PartComponent;
452 };
453
454
455 // ==================================================================
456 // ProductServiceComponent
457 // ==================================================================
458 [Association, Aggregation, Composition,
459 Version ("2.7.0"), Description (
460 "Indicates that the referenced Service is acquired as part "
461 "of a Product. Examples of Services that may be acquired "
462 "are outsourced storage and networking services, or support "
463 kumpf 1.2 "and warranty services. Expanding on the examples, Services "
464 "represent generic functionality - so, it is possible to "
465 "model the existence of storage volume management or warranty "
466 "services as individual instances of subclasses of "
467 "CIM_Service. These 'Services' may be enabled/disabled, "
468 "started/stopped, signal an error, etc. (They behave as "
469 "standard ManagedSystemElements.) Specific requests against "
470 "the Services - for example, a request for warranty service "
471 "or increased storage space - are NOT new instances of "
472 "Service, but may be requested via the methods of the "
473 "Service subclass, or be instantiated as specific subclasses "
474 "of ManagedElement.") ]
475 class CIM_ProductServiceComponent : CIM_Component {
476
477 [Override ("GroupComponent"), Max (1), Description (
478 "The Product.") ]
479 CIM_Product REF GroupComponent;
480
481 [Override ("PartComponent"), Description (
482 "The Service which is a part of the Product.") ]
483 CIM_Service REF PartComponent;
484 kumpf 1.2 };
485
486
487 // ==================================================================
488 // ProductPhysicalElements
489 // ==================================================================
490 [Association, Aggregation, Deprecated {"CIM_ProductPhysicalComponent"},
491 Composition, Version ("2.7.0"), Description (
492 "Indicates the PhysicalElement(s) that make up a Product. "
493 "This association is deprecated in order to correctly place "
494 "it in the inheritance hierarchy and align the definition "
495 "with other new classes that are being added to the model, "
496 "such as CIM_ProductServiceComponent. ProductPhysicalElements "
497 "was defined in the original CIM V2.0 release, when a Managed"
498 "Element and a Component relationship between ManagedElements "
499 "did not exist.") ]
500 class CIM_ProductPhysicalElements {
501
502 [Max (1), Aggregate, Key,
503 Deprecated {"CIM_ProductPhysicalComponent.GroupComponent"},
504 Description ("The Product.") ]
505 kumpf 1.2 CIM_Product REF Product;
506
507 [Key,
508 Deprecated {"CIM_ProductPhysicalComponent.PartComponent"},
509 Description (
510 "The PhysicalElement which is a part of the Product.") ]
511 CIM_PhysicalElement REF Component;
512 };
513
514
515 // ==================================================================
516 // FRUPhysicalElements
517 // ==================================================================
518 [Association, Aggregation, Composition, Version ("2.7.0"),
519 Description (
520 "Indicates the PhysicalElements that make up a FRU.") ]
521 class CIM_FRUPhysicalElements {
522
523 [Max (1), Aggregate, Key, Description (
524 "The FRU.") ]
525 CIM_FRU REF FRU;
526 kumpf 1.2
527 [Key, Description (
528 "The PhysicalElement which is a part of the FRU.") ]
529 CIM_PhysicalElement REF Component;
530 };
531
532
533 // ==================================================================
534 // FRUIncludesProduct
535 // ==================================================================
536 [Association, Aggregation, Composition, Version ("2.7.0"),
537 Description (
538 "Indicates that a FRU may be composed of other Product(s).") ]
539 class CIM_FRUIncludesProduct {
540
541 [Max (1), Aggregate, Key, Description (
542 "The FRU.") ]
543 CIM_FRU REF FRU;
544
545 [Key, Description (
546 "The Product which is a part of the FRU.") ]
547 kumpf 1.2 CIM_Product REF Component;
548 };
549
550
551 // ===================================================================
552 // end of file
553 // ===================================================================
|