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