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