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