1 tony 1.1 // ===================================================================
2 // Title: Core Products & FRUs 2.8
3 // Filename: Core28_ProductFRU.mof
4 // Version: 2.8
5 // Status: Final
6 // Date: Jan 26, 2004
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 by "
88 "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 { "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 { "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 { "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 CIM_Service. "
481 "These 'Services' may be enabled/disabled, started/stopped, "
482 "signal an error, etc. (They behave as standard "
483 "ManagedSystemElements.) Specific requests against the Services "
484 tony 1.1 "- for example, a request for warranty service or increased "
485 "storage space - are NOT new instances of Service, but may be "
486 "requested via the methods of the Service subclass, or be "
487 "instantiated as specific subclasses of ManagedElement.")]
488 class CIM_ProductServiceComponent : CIM_Component {
489
490 [Aggregate, Override ( "GroupComponent" ), Max ( 1 ),
491 Description (
492 "The Product.")]
493 CIM_Product REF GroupComponent;
494
495 [Override ( "PartComponent" ), Description (
496 "The Service which is a part of the Product.")]
497 CIM_Service REF PartComponent;
498 };
499
500
501 // ==================================================================
502 // ProductPhysicalElements
503 // ==================================================================
504 [Association, Deprecated { "CIM_ProductPhysicalComponent" },
505 tony 1.1 Aggregation, Composition, Version ( "2.7.0" ), Description (
506 "Indicates the PhysicalElement(s) that make up a Product. This "
507 "association is deprecated in order to correctly place it in "
508 "the inheritance hierarchy and align the definition with other "
509 "new classes that are being added to the model, such as "
510 "CIM_ProductServiceComponent. ProductPhysicalElements was "
511 "defined in the original CIM V2.0 release, when a Managed "
512 "Element and a Component relationship between ManagedElements "
513 "did not exist.")]
514 class CIM_ProductPhysicalElements {
515
516 [Deprecated { "CIM_ProductPhysicalComponent.GroupComponent" },
517 Key, Aggregate, Max ( 1 ), Description (
518 "The Product.")]
519 CIM_Product REF Product;
520
521 [Deprecated { "CIM_ProductPhysicalComponent.PartComponent" }, Key,
522 Description (
523 "The PhysicalElement which is a part of the Product.")]
524 CIM_PhysicalElement REF Component;
525 };
526 tony 1.1
527
528 // ==================================================================
529 // FRUPhysicalElements
530 // ==================================================================
531 [Association, Aggregation, Composition, Version ( "2.7.0" ),
532 Description (
533 "Indicates the PhysicalElements that make up a FRU.")]
534 class CIM_FRUPhysicalElements {
535
536 [Key, Aggregate, Max ( 1 ), Description (
537 "The FRU.")]
538 CIM_FRU REF FRU;
539
540 [Key, Description (
541 "The PhysicalElement which is a part of the FRU.")]
542 CIM_PhysicalElement REF Component;
543 };
544
545
546 // ==================================================================
547 tony 1.1 // FRUIncludesProduct
548 // ==================================================================
549 [Association, Aggregation, Composition, Version ( "2.7.0" ),
550 Description (
551 "Indicates that a FRU may be composed of other Product(s).")]
552 class CIM_FRUIncludesProduct {
553
554 [Key, Aggregate, Max ( 1 ), Description (
555 "The FRU.")]
556 CIM_FRU REF FRU;
557
558 [Key, Description (
559 "The Product which is a part of the FRU.")]
560 CIM_Product REF Component;
561 };
562
563
564 // ===================================================================
565 // end of file
566 // ===================================================================
|