27 karl 1.1 // Description: The object classes below are listed in an order that
28 // avoids forward references. Required objects, defined
29 // by other working groups, are omitted.
30 // ==================================================================
31 // Author: DMTF Applications Working Group
32 // ==================================================================
33 // ===================================================================
34 // 06/23/1998 The cardinalities for the associations did not coorespond
35 // to those specified in CR172B. The errors were corrected
36 // for the following associations:
37 // CIM_SoftwareElementChecks
38 // CIM_DirectorySpecificationFile
39 // CIM_SoftwareElementActions
40 // CIM_SoftwareFeatureSoftwareElements
41 // CIM_ProductSoftwareFeature
42 // CIM_ToDirectorySpecification
43 // CIM_FromDirectorySpecification
44 // CIM_ToDirectoryAction
45 // CIM_FromDirectoryAction
46 // CIM_InstalledSoftwareElement (This corrected CR174b)
47 // Also, CR232 (fix mappingstring qualifier) was implemented.
48 karl 1.1 //
49 // 09/24/98 Implemented CR244a and CR275: Added additional architecture types.
50 //
51 // 09/29/98 Fixed ModelCorrespondence syntax ( change "()" to "{}" )
52 //
53 // 09/30/98 Changed 3 names (CR296)
54 //
55 // 06/07/99 Added FRUIncludesSoftwareFeature association (CR277b)
56 // Removed min(1) from SoftwareFeatureSoftwareElement (CR395)
57 // Added more processor types (CR318c)
58 // Added video processor to Arch Type (CR377)
59 // Added Sparc processor to Arch Type (CR297)
60 // Added additional OS type (CR363)
61 // Added VSE and TPF OS types (CR409)
62 //
63 // 01/10/00 Add keys to refs of FRUIncludesSoftwareFeature (CR453)
64 // Add Itanium processor to Arch Type (CR449)
65 //
66 // 01/17/00 Updated Mappingstrings qualifiers (CR431)
67 //
68 // 03/07/00 Change Intel Processor types for legal reasons (CR438)
69 karl 1.1 //
70 // 06/08/00 Added SoftwareElementService/SAPImplementation
71 // associations (CR482a)
72 //
73 // 08/08/00 - Version 2.4
74 // - CR474 Add Processor types to CIM_Processor.Family
75 // 11/29/00 - Version 2.5
76 // - CR527 Add to CIM_ArchitectureCheck.ArchitectureType
77 // 24 = AMD(R) Duron(TM) Processor
78 // - CR530 Correct enumerations in
79 // CIM_ArchitectureCheck.ArchitectureType number 19 & 24
80 // - CR531 Add to CIM_ArchitectureCheck.ArchitectureType
81 // 120 = "Crusoe(TM) TM5000 Family"
82 // 121 = "Crusoe(TM) TM3000 Family"
83 // - CR533b Add Windows(R) Me to *.TargetOperatingSystem*
84 // - CR540c Add SoftwareFeatureComponent Association
85 // - CR542 Add "Not Applicable" to the
86 // *TargetOperatingSystem*
87 // - CR546a Add InstalledProduct Collection
88 // - CR558 subclass Action and Check from ManagedElement
89 //
90 karl 1.1 //
91 // Author : DMTF Application Management Working Group
92 // Description: The object classes below are listed in an order that
93 // avoids forward references. Required objects, defined
94 // by other working groups, are omitted.
95 //
96 // ===================================================================
97 #pragma locale ("en_US")
98
99 // ==================================================================
100 // ApplicationSystem
101 // ==================================================================
102 [Description (
103 " The CIM_ApplicationSystem class is used to represent an application "
104 "or a software system that supports a particular business function and "
105 "that can be managed as an independent units. Such a system can be "
106 "decomposed into its functional components using the "
107 "CIM_SoftwareFeature class. The software features for a particular "
108 "application or software system are located using the "
109 "CIM_ApplicationSystemSoftwareFeature association. ") ]
110 class CIM_ApplicationSystem:CIM_System
111 karl 1.1 {
112 };
113
114 // ==================================================================
115 // CIM_SoftwareElement
116 // ==================================================================
117 [Description (" The CIM_SoftwareElement class is used to decompose a "
118 "CIM_SoftwareFeature object into a set of individually manageable or "
119 "deployable parts for a particular platform. A software element's "
120 "platform is uniquely identified by its underlying hardware "
121 "architecture and operating system (for example Sun Solaris on Sun "
122 "Sparc or Windows NT on Intel). As such, to understand the details of "
123 "how the functionality of a particular software feature is provided on "
124 "a particular platform, the CIM_SoftwareElement objects referenced by "
125 "CIM_SoftwareFeatureSoftwareElement associations are organized in "
126 "disjoint sets based on the TargetOperatingSystem property. A "
127 "CIM_SoftwareElement object captures the management details of a part "
128 "or component in one of four states characterized by the "
129 "SoftwareElementState property. ") ]
130 class CIM_SoftwareElement:CIM_LogicalElement
131 {
132 karl 1.1 [key, maxlen (256) , override ("Name") , Description (
133 "The name used to identify this software element") ]
134 string Name ;
135 [key, Maxlen (64) , Description (
136 "Version should be in the form <Major>.<Minor>.<Revision> or <Major>."
137 "<Minor><letter><revision>") , MappingStrings {
138 "MIF.DMTF|SubComponent Software |001.4"} ]
139 string Version ;
140 [key, Description (
141 " The SoftwareElementState is defined in this model to identify various "
142 "states of a software elements life cycle. \n"
143 " - A software element in the deployable state describes the details "
144 "necessary to successfully distribute it and the details (conditions "
145 "and actions) required to create a software element in the installable "
146 "state (i.e, the next state). \n"
147 " - A software element in the installable state describes "
148 "the details necessary to successfully install it and the details ("
149 "conditions and actions) required to create a software element in the "
150 "executable state (i.e., the next state). \n"
151 " - A software element in the executable state describes the details "
152 "necessary to successfully start it and the details (conditions and "
153 karl 1.1 "actions) required to create a software element in the running state "
154 "(i.e., the next state). \n"
155 " - A software element in the running state describes the details "
156 "necessary to monitor and operate on a started element.") ,
157 Values {"Deployable", "Installable", "Executable", "Running"} ]
158 uint16 SoftwareElementState ;
159 [key, maxlen (256) , Description (
160 " This is an identifier for this software element and is designed to be "
161 "used in conjunction with other keys to create a unique representation "
162 "of this SoftwareElement") ]
163 string SoftwareElementID ;
164 [key, MappingStrings {"MIF.DMTF|SubComponent Software|001.8"}
165 , Description (
166 " The Target Operating System property allows the provider to specify "
167 "the operating system environment. The value of this property does not "
168 "ensure binary executable. Two other pieces of information are needed. "
169 " First, the version of the OS needs to be specified. using the OS "
170 "Version Check. The second piece of information is the architecture the "
171 "OS runs on. This information is capture with the ArchitectureCheck "
172 "class. The combination of these constructs allows the provider to "
173 "clearly identify the level of OS required for a particular software "
174 karl 1.1 "element.") , Values {"Unknown", "Other", "MACOS", "ATTUNIX", "DGUX",
175 "DECNT", "Digital Unix", "OpenVMS", "HPUX", "AIX", "MVS", "OS400",
176 "OS/2", "JavaVM", "MSDOS", "WIN3x", "WIN95", "WIN98", "WINNT", "WINCE",
177 "NCR3000", "NetWare", "OSF", "DC/OS", "Reliant UNIX", "SCO UnixWare",
178 "SCO OpenServer", "Sequent", "IRIX", "Solaris", "SunOS", "U6000",
179 "ASERIES", "TandemNSK", "TandemNT", "BS2000", "LINUX", "Lynx", "XENIX",
180 "VM/ESA", "Interactive UNIX", "BSDUNIX", "FreeBSD", "NetBSD", "GNU Hurd",
181 "OS9", "MACH Kernel", "Inferno", "QNX", "EPOC", "IxWorks", "VxWorks",
182 "MiNT", "BeOS", "HP MPE", "NextStep", "PalmPilot", "Rhapsody",
183 "Windows 2000", "Dedicated","VSE","TPF", "Windows (R) Me",
184 "Not Applicable" } ,
185 ModelCorrespondence {"CIM_OperatingSystem.OSType"} ]
186 uint16 TargetOperatingSystem ;
187 [Description (
188 " The OtherTargetOS property records the manufacturer and operating "
189 "system type for a software element when the TargetOperatingSystem "
190 "property has a value of 1 (\"Other\"). Therefore, when the "
191 "TargetOperating System property has a value of \"Other\", the "
192 "OtherTargetOS property must have a non-null value. For all other "
193 "values of TargetOperatingSystem, the OtherTargetOS property is to be "
194 "NULL. ") , Maxlen (64) , ModelCorrespondence {
195 karl 1.1 "CIM_OperatingSystem.OtherTypeDescription"} ]
196 string OtherTargetOS ;
197 [Maxlen (256) , MappingStrings {"MIF.DMTF|SubComponent Software|001.3"} ,
198 Description ("Manufacturer of this software element") ]
199 string Manufacturer ;
200 [Maxlen (64) , MappingStrings {
201 "MIF.DMTF|Software Component Information|002.4"} , Description (
202 "The internal identifier for this compilation of this software element."
203 ) ]
204 string BuildNumber ;
205 [Maxlen (64) , MappingStrings {"MIF.DMTF|ComponentID|001.4"} ,
206 Description ("The assigned serial number of this software element.") ]
207 string SerialNumber ;
208 [Maxlen (64) , Description (
209 "The code set used by this software element. ") ]
210 string CodeSet ;
211 [Maxlen (64) , MappingStrings {
212 "MIF.DMTF|SubComponent Software|001.6"} , Description (
213 " The value of this property is the manufacturer's identifier for this "
214 "software element. Often this will be a stock keeping unit (SKU) or a "
215 "part number.") ]
216 karl 1.1 string IdentificationCode ;
217 [Maxlen (32) , MappingStrings {
218 "MIF.DMTF|SubComponent Software|001.7"} , Description (
219 "The value of this property identifies the language edition of this "
220 "software element. The language codes defined in ISO 639 should be used. "
221 "Where the software element represents multi-lingual or international "
222 "version of a product, the string multilingual should be used.") ]
223 string LanguageEdition ;
224 };
225
226 // ==================================================================
227 // CIM_SoftwareFeature
228 // ==================================================================
229 [Description (
230 " The CIM_SoftwareFeature class defines a particular function or "
231 "capability of a product or application system. This class in intended "
232 "to capture the level of granularity that is meaningful to a consumer "
233 "or user of a product rather than the units that reflect how the "
234 "product is built or packaged. The latter detailed is captured using a "
235 "CIM_SoftwareElement class. When a software feature can exist on "
236 "multiple platforms or operating systems (for example, a client "
237 karl 1.1 "component of a three tiered client/server applications might run on "
238 "Solaris, Windows NT, and Windows 95), a software feature is a "
239 "collection of all the software elements for these different platforms. "
240 " In this case, the users of the model must be aware of this situation "
241 "since typically they will be interested in a sub-collection of the "
242 "software elements required for a particular platform. Software "
243 "Features are always defined in the context of a CIM_Product class "
244 "using the CIM_ProductSoftwareFeature association since features are "
245 "delivered through products. Optionally, software features from one or "
246 "more products can be organized into application systems using the "
247 "CIM_ApplicationSystemSoftwareFeature association. ") ]
248 class CIM_SoftwareFeature:CIM_LogicalElement
249 {
250 [Propagated ("CIM_Product.IdentifyingNumber"), Key, Maxlen (64),
251 Description (
252 "Product identification such as a serial number on software or a die "
253 "number on a hardware chip"),
254 MappingStrings {"DMTF|ComponentID|001.4"} ]
255 string IdentifyingNumber ;
256 [Propagated ("CIM_Product.Name"), Key, Maxlen (256),
257 Description ("Commonly used Product name"),
258 karl 1.1 MappingStrings {"DMTF|ComponentID|001.2"} ]
259 string ProductName ;
260 [Propagated ("CIM_Product.Vendor"), Key, Maxlen (256),
261 Description (
262 "The name of the Product's supplier. Corresponds to the Vendor property "
263 "in the Product object in the DMTF Solution Exchange Standard."),
264 MappingStrings {"DMTF|ComponentID|001.1"} ]
265 string Vendor ;
266 [Propagated ("CIM_Product.Version"), Key, Maxlen (64), Description (
267 "Product version information. Corresponds to the Version property in "
268 "the Product object in the DMTF Solution Exchange Standard."),
269 MappingStrings {"DMTF|ComponentID|001.3"} ]
270 string Version ;
271 [key, override ("Name"), Description (
272 "The Name property defines the label by which the object is known to the "
273 "world outside the data processing system. This label is a "
274 "human-readable name that uniquely identifies the element in the context "
275 "of the element's namespace."), Maxlen (256) ]
276 string Name ;
277 };
278
279 karl 1.1 // ==================================================================
280 // CIM_Check
281 // ==================================================================
282 [Abstract, Description (
283 " A Check is a condition or characteristic that is expected to be true "
284 "in an environment defined or scoped by an instance of a "
285 "CIM_ComputerSystem. The checks associated with a particular software "
286 "element are organized into one of two groups using the Phase property "
287 "of the CIM_SoftwareElementChecks association. Conditions that are "
288 "expected to be satisfied when a software element is in a particular "
289 "environment are known as in-state conditions. Conditions that need to "
290 "be satisfied in order to transition the current software element to "
291 "its next state are known as next-state conditions A "
292 "CIM_ComputerSystem object represents the environment in which "
293 "CIM_SoftwareElements are already installed or in which "
294 "CIM_SoftwareElements will be installed. For the case in which a "
295 "software element is already installed, the "
296 "CIM_InstalledSoftwareElement association is used to identify the "
297 "CIM_ComputerSystem object that represents the \"environment\". When a "
298 "software elements is being distributed and installed on a different "
299 "computer system, the CIM_ComputerSystem object for the targeted system "
300 karl 1.1 "is the environment.") ]
301 class CIM_Check : CIM_ManagedElement
302 {
303 [Propagated ("CIM_SoftwareElement.Name") , key, maxlen (256) ,
304 Description ("The name used to identify this software element") ]
305 string Name ;
306 [Propagated ("CIM_SoftwareElement.Version") , key, Maxlen (64) ,
307 Description (
308 "Version should be in the form <Major>.<Minor>.<Revision> or <Major>."
309 "<Minor><letter><revision>") , MappingStrings {
310 "MIF.DMTF|ComponentID|001.3"} ]
311 string Version ;
312 [Propagated ("CIM_SoftwareElement.SoftwareElementState") , key,
313 Description (" The SoftwareElementState of a software element ") ,
314 Values {"Deployable", "Installable", "Executable", "Running"} ]
315 uint16 SoftwareElementState ;
316 [Propagated ("CIM_SoftwareElement.SoftwareElementID") , key, maxlen (256
317 ) , Description (" This is an identifier for this software element.") ]
318 string SoftwareElementID ;
319 [Propagated ("CIM_SoftwareElement.TargetOperatingSystem") , key,
320 MappingStrings {"MIF.DMTF|Software Component Information|002.5"} ,
321 karl 1.1 Description (
322 " The Target Operating System of the this software element.") , Values {
323 "Unknown", "Other", "MACOS", "ATTUNIX", "DGUX", "DECNT", "Digital Unix",
324 "OpenVMS", "HPUX", "AIX", "MVS", "OS400", "OS/2", "JavaVM", "MSDOS",
325 "WIN3x", "WIN95", "WIN98", "WINNT", "WINCE", "NCR3000", "NetWare", "OSF",
326 "DC/OS", "Reliant UNIX", "SCO UnixWare", "SCO OpenServer", "Sequent",
327 "IRIX", "Solaris", "SunOS", "U6000", "ASERIES", "TandemNSK", "TandemNT",
328 "BS2000", "LINUX", "Lynx", "XENIX", "VM/ESA", "Interactive UNIX",
329 "BSDUNIX", "FreeBSD", "NetBSD", "GNU Hurd", "OS9", "MACH Kernel",
330 "Inferno", "QNX", "EPOC", "IxWorks", "VxWorks", "MiNT", "BeOS", "HP MPE",
331 "NextStep", "PalmPilot", "Rhapsody","Windows 2000", "Dedicated","VSE",
332 "TPF", "Windows (R) Me", "Not Applicable" } ]
333 uint16 TargetOperatingSystem ;
334 [key, maxlen (256) , Description (
335 "An identifier used in conjunction with other keys to unquely identify "
336 "the check") ]
337 string CheckID ;
338 [Description (
339 " The CheckMode property is used to indicate whether the condition is "
340 "expected to exist or not exist in the environment. When the value is "
341 "True, the condition is expected to exist (e.g., a file is expected to "
342 karl 1.1 "be on a system) so invoke() is expected to return True. When the "
343 "value is False, the condition is not expect to exist (e.g., a file is "
344 "not to be on a system) so invoke is expected to return false ") ]
345 boolean CheckMode ;
346 [Description (
347 " The invoke method is to to evaluate a particular check. The details "
348 "of how the method evaluates a particular check in a CIM context is "
349 "described by the non-abstract Check sub classes. The results of the "
350 "method are based on the return value. - A 0 (zero) is returned if "
351 "the condition is satisfied. - A 1 (one) is returned if the method is "
352 "not supported. - Any other value indicates the condition is not "
353 "satisfied. ") ]
354 uint32 Invoke() ;
355 };
356
357 // ==================================================================
358 // CIM_DirectorySpecification
359 // ==================================================================
360 [Description (
361 " The CIM_DirectorySpecification class captures the major directory "
362 "structure of a software element. This class is used to organize the "
363 karl 1.1 "files of a software element into manageable units that can be "
364 "relocated on a computer system. ") ]
365 class CIM_DirectorySpecification:CIM_Check
366 {
367 [Description (
368 " The DirectoryType property characterizes the type of directory being "
369 "described. ") , Values {"Product base directory",
370 "Product executable directory", "Product library directory",
371 "Product configuration directory", "Product include directory",
372 "Product working directory", "Product log directory",
373 "Shared base directory", "Shared executable directory",
374 "Shared library directory", "Shared include directory",
375 "System base directory", "System executable directory",
376 "System library directory", "System configuration directory",
377 "System include directory", "System log directory", "Other"} ,
378 MappingStrings {"MIF.DMTF|Location|001.2"} ]
379 uint16 DirectoryType ;
380 [Maxlen (1024) , Description (
381 "The DirectoryPath property is used to capture the name of a directory. "
382 "The value supplied by an application provider is actually a default or "
383 "recommended path name. The value can be changed for a particular "
384 karl 1.1 "environment.") ]
385 string DirectoryPath ;
386 };
387
388 // ==================================================================
389 // CIM_ArchitectureCheck
390 // ==================================================================
391 [Description (
392 " The Architecture Check specifies the hardware platform a software "
393 "element can run on. The details of this checks are compared with the "
394 "corresponding details found in a CIM_Processor object referenced by a "
395 "CIM_ComputerSystemProcessor association for the CIM_ComputerSystem "
396 "object that describes the environment. As long as there is at least "
397 "one CIM_Processor that satisfies the details of the condition, the "
398 "check is satisfied. In other words, all the processors on the "
399 "relevant computer system do not need to satistfy the condition. There "
400 "needs to be at least one. ") ]
401 class CIM_ArchitectureCheck:CIM_Check
402 {
403 [Description (
404 " The ArchitectureType property identifies a particular type of "
405 karl 1.1 "architecture or architecture family that is required to properly "
406 "execute a particular software element. The intent is to capture the "
407 "details about the machine instructions exploited by the executables of "
408 "the software element. ") ,
409 ValueMap {"1", "2", "3", "4", "5", "6",
410 "7", "8", "9", "10", "11",
411 "12", "13",
412 "14", "15",
413 "16", "17", "18",
414 "19", "24",
415 "25", "26", "27", "28",
416 "29", "30", "31", "32",
417 "33", "34", "35",
418 "36", "37", "38",
419 "39", "48", "49",
420 "50", "51", "52",
421 "53", "54", "55",
422 "64", "65", "66",
423 "67", "68", "69",
424 "80", "81", "82",
425 "83", "84", "85",
426 karl 1.1 "86", "87", "88",
427 "96", "97", "98", "99", "100",
428 "101", "112",
429 "120", "121",
430 "128", "130",
431 "144", "145", "146",
432 "147", "148", "149",
433 "150", "160", "176",
434 "177",
435 "178",
436 "180", "200", "201", "202", "250", "251",
437 "260", "261", "280", "281", "300", "301", "302",
438 "320", "350", "500"},
439 Values {"Other", "Unknown", "8086", "80286", "80386", "80486",
440 "8087", "80287", "80387", "80487", "Pentium(R) brand",
441 "Pentium(R) Pro", "Pentium(R) II",
442 "Pentium(R) processor with MMX(TM) technology", "Celeron(TM)",
443 "Pentium(R) II Xeon(TM)", "Pentium(R) III", "M1 Family",
444 "AMD Athlon(TM) Processor Family", "AMD Duron(TM) Processor",
445 "K5 Family", "K6 Family", "K6-2", "K6-3",
446 "K7", "AMD29000 Family", "K6-2+", "Power PC Family",
447 karl 1.1 "Power PC 601", "Power PC 603", "Power PC 603+",
448 "Power PC 604", "Power PC 620", "Power PC X704",
449 "Power PC 750", "Alpha Family", "Alpha 21064",
450 "Alpha 21066", "Alpha 21164", "Alpha 21164PC",
451 "Alpha 21164a", "Alpha 21264", "Alpha 21364",
452 "MIPS Family", "MIPS R4000", "MIPS R4200",
453 "MIPS R4400", "MIPS R4600", "MIPS R10000",
454 "SPARC Family", "SuperSPARC", "microSPARC II",
455 "microSPARC IIep", "UltraSPARC", "UltraSPARC II",
456 "UltraSPARC IIi", "UltraSPARC III", "UltraSPARC IIIi",
457 "68040", "68xxx Family", "68000", "68010", "68020",
458 "68030", "Hobbit Family",
459 "Crusoe(TM) TM5000 Family", "Crusoe(TM) TM3000 Family",
460 "Weitek", "Itanium(TM) Processor",
461 "PA-RISC Family", "PA-RISC 8500", "PA-RISC 8000",
462 "PA-RISC 7300LC", "PA-RISC 7200", "PA-RISC 7100LC",
463 "PA-RISC 7100", "V30 Family", "Pentium(R) III Xeon(TM)",
464 "Pentium(R) III Processor with Intel(R) SpeedStep(TM) Technology",
465 "Pentium(R) 4 Processor",
466 "AS400 Family", "IBM390 Family", "G4", "G5", "i860", "i960",
467 "SH-3", "SH-4", "ARM", "StrongARM", "6x86", "MediaGX", "MII",
468 karl 1.1 "WinChip", "DSP", "Video Processor"},
469 MappingStrings {"MIF.DMTF|Processor|004.3"} ,
470 ModelCorrespondence {"CIM_Processor.Family"} ]
471 uint16 ArchitectureType ;
472 };
473
474 // ==================================================================
475 // CIM_MemoryCheck
476 // ==================================================================
477 [Description (
478 " The MemoryCheck specifies a condition for the minimum amount of "
479 "memory that needs to be available on a system. The amount is specified "
480 "in the MemorySize property. The details of this checks are compared "
481 "with the value of the FreePhysicalMemory property of the "
482 "CIM_OperatingSystem object referenced by an InstalledOS association "
483 "for the CIM_ComputerSystem object that describes the environment. "
484 "When the value of FreePhyscalMemory property is greater than or equal "
485 "to the value specified in MemorySize, the condition is satisfied. ")
486 ]
487 class CIM_MemoryCheck:CIM_Check
488 {
489 karl 1.1 [Description (
490 "The amount of memory that needs to exist on a computer system for a "
491 "software element to executing properly. ") , units ("KiloBytes") ,
492 ModelCorrespondence {"CIM_OperatingSystem.FreePhysicalMemory"} ]
493 uint64 MemorySize ;
494 };
495
496 // ==================================================================
497 // CIM_DiskSpaceCheck
498 // ==================================================================
499 [Description (
500 " The Disk Space Check the amount of disk space the needs to be "
501 "available on the system. The amount is specified in the "
502 "AvailableDiskSpace property. The details of this checks are compared "
503 "with the value of the AvailableSpace property of the CIM_FileSystem "
504 "object associated with the CIM_ComputerSystem object that describes "
505 "the environment. When the value of AvailableSpace property is greater "
506 " than or equal to the value specified in AvailableDiskSpace, the "
507 "condition is satisfied. ") ]
508 class CIM_DiskSpaceCheck:CIM_Check
509 {
510 karl 1.1 [units ("KiloBytes") , ModelCorrespondence {
511 "CIM_FileSystem.AvailableSpace "} ]
512 uint64 AvailableDiskSpace ;
513 };
514
515 // ==================================================================
516 // CIM_SwapSpaceCheck
517 // ==================================================================
518 [Description (
519 " The Swap Space Check specifies the amount of swap space that needs to "
520 "be available on the system. The amount is specified in the "
521 "SwapSpaceSize property. The details of this checks are compared with "
522 "the corresponding details found in a CIM_OperatingSystem object "
523 "referenced by InstalledOS association for the CIM_ComputerSystem "
524 "object describing the environment. When the value of "
525 "TotalSwapSpaceSize property is greater than or equal to the value "
526 "specified in SwapSpacesize, the condition is satisfied. ") ]
527 class CIM_SwapSpaceCheck:CIM_Check
528 {
529 [units ("KiloBytes") , Description (
530 " The SwapSpaceSize property specifies the minimum number of Kilo bytes "
531 karl 1.1 "of swap space that needs to be available on the target system.") ,
532 ModelCorrespondence {"CIM_OperatingSystem.TotalSwapSpaceSize"} ]
533 uint64 SwapSpaceSize ;
534 };
535
536 // ==================================================================
537 // CIM_OSVersionCheck
538 // ==================================================================
539 [Description (
540 " The OS Version Check class specifies the versions of the OS that can "
541 "support this software element. This check can be for a specific, "
542 "minimum, maximum or a range of releases of an OS. To specify a "
543 "specific version the minimum and maximum versions must be the same. To "
544 "specify a minimum, the minimum version needs only be specified. To "
545 "specify a maximum version, the maximum version needs only be specified."
546 " To specify a range both minimum and maximum version need to be "
547 "specified. The type of operating system is specified in the "
548 "TargetOperatingSystem property of the owning SoftwareElement. The "
549 "details of this checks are compared with the corresponding details "
550 "found in a CIM_OperatingSystem object referenced by InstalledOS "
551 "association for the CIM_ComputerSystem object that describes the "
552 karl 1.1 "environment. As long as there is at least one CIM_OperatingSystem that "
553 " satisfies the details of the condition, the check is satisfied. In "
554 "other words, all the operating systems on the relevant computer system "
555 "do not need to satistfy the condition. There needs to be at least one. "
556 " Also, note the the OSType property of the CIM_OperatingSystem class "
557 "must match the type of the TargetOperatingSystem property. ") ]
558 class CIM_OSVersionCheck:CIM_Check
559 {
560 [maxlen (64) , Description (
561 " Minimum version of required operating system. The value is encoded as "
562 " <major>.<minor>.<revision> or <major>.<minor><letter revision>"
563 ) , ModelCorrespondence {"CIM_OperatingSystem.Version"} ]
564 string MinimumVersion ;
565 [maxlen (64) , Description (
566 " Maximum version of required operating system. The value is encoded as "
567 " <major>.<minor>.<revision> or <major>.<minor><letter revision>"
568 ) , ModelCorrespondence {"CIM_OperatingSystem.Version"} ]
569 string MaximumVersion ;
570 };
571
572 // ==================================================================
573 karl 1.1 // CIM_SoftwareElementVersionCheck
574 // ==================================================================
575 [Description (
576 " The Software Element Version Check class specifies a type of software "
577 "element that must exist in the environment. This check can be for a "
578 "specific, minimum, maximum or a range of versions. To specify a "
579 "specific version the lower and upper versions must be the same. To "
580 "specify a minimum the lower version needs only be specified. To "
581 "specify a maximum version the upper version needs only be specified. "
582 "To specify a range both upper and lower version need to be specified. "
583 "The details of this checks are compared with the corresponding details "
584 "found in a CIM_SoftwareElement object referenced by an "
585 "InstalledSoftwareElement association for the CIM_ComputerSystem object."
586 " As long as there is at least one CIM_SoftwareElement that satisfies "
587 "the details of the condition, the check is satisfied. In other words, "
588 "all the software elements on the relevant computer system do not need "
589 "to satistfy the condition. There needs to be at least one. ") ]
590 class CIM_SoftwareElementVersionCheck:CIM_Check
591 {
592 [maxlen (256) , Description (
593 " The name of the software element being checked. ") ,
594 karl 1.1 ModelCorrespondence {"CIM_SoftwareElement.Name"} ]
595 string SoftwareElementName ;
596 [maxlen (64) , Description (
597 " The minimum version of a software elements being checked.") ,
598 ModelCorrespondence {"CIM_SoftwareElement.Version"} ]
599 string LowerSoftwareElementVersion ;
600 [maxlen (64) , Description (
601 " The maximum version of a software elements being checked.") ,
602 ModelCorrespondence {"CIM_SoftwareElement.Version"} ]
603 string UpperSoftwareElementVersion ;
604 [maxlen (64) , Description (
605 " The state of the software element being checked.") , Values {
606 "Deployable", "Installable", "Executable", "Running"} ,
607 ModelCorrespondence {"CIM_SoftwareElement.SoftwareElementState"} ]
608 uint16 SoftwareElementStateDesired ;
609 [maxlen (64) , Description (
610 " The target operating system of the software element being checked.")
611 , Values {"Unknown", "Other", "MACOS", "ATTUNIX", "DGUX", "DECNT",
612 "Digital Unix", "OpenVMS", "HPUX", "AIX", "MVS", "OS400", "OS/2",
613 "JavaVM", "MSDOS", "WIN3x", "WIN95", "WIN98", "WINNT", "WINCE",
614 "NCR3000", "NetWare", "OSF", "DC/OS", "Reliant UNIX", "SCO UnixWare",
615 karl 1.1 "SCO OpenServer", "Sequent", "IRIX", "Solaris", "SunOS", "U6000",
616 "ASERIES", "TandemNSK", "TandemNT", "BS2000", "LINUX", "Lynx", "XENIX",
617 "VM/ESA", "Interactive UNIX", "BSDUNIX", "FreeBSD", "NetBSD", "GNU Hurd",
618 "OS9", "MACH Kernel", "Inferno", "QNX", "EPOC", "IxWorks", "VxWorks",
619 "MiNT", "BeOS", "HP MPE", "NextStep", "PalmPilot", "Rhapsody",
620 "Windows 2000", "Dedicated","VSE","TPF", "Windows (R) Me",
621 "Not Applicable" } ,
622 ModelCorrespondence {"CIM_SoftwareElement.TargetOperatingSystem"} ]
623 uint16 TargetOperatingSystemDesired ;
624 };
625
626 // ==================================================================
627 // CIM_FileSpecification
628 // ==================================================================
629 [Description (
630 " A CIM_FileSpecification identifies a file that is either to be on or "
631 "off the system. The file is to be located in the directory identified "
632 "by the DirectorySpecificationFile associations. When the invoke() "
633 "method is used, it is expected that it will use the combination of "
634 "information provided to check for the file existance. Therefore, any "
635 "of the properties with a NULL value are not checked. So, if only the "
636 karl 1.1 "Name and the MD5 properties have values, they are the only ones "
637 "consider by the invoke() method. ") ]
638 class CIM_FileSpecification:CIM_Check
639 {
640 [maxlen (1024) , Description (
641 " Either the name of the file or the name of the file with a directory "
642 "prefix. ") ]
643 string FileName ;
644 [Description ("The creation date and time of the file. ") ]
645 datetime CreateTimeStamp ;
646 [units ("KiloBytes") ]
647 uint64 FileSize ;
648 [Description (
649 " The File Checksum property is a checksum calculated as the 16-bit "
650 "sum of the first 32 bytes of the file.") , MappingStrings {
651 "MIF.DMTF|Software Signature|002.4"} ]
652 uint32 CheckSum ;
653 [Description (
654 " The File CRC 1 property is the CRC value calculated using the middle "
655 "512K bytes.") , MappingStrings {"MIF.DMTF|Software Signature|002.5"} ]
656 uint32 CRC1 ;
657 karl 1.1 [Description (
658 " The File CRC 2 is the CRC value for the middle 512K bytes with a "
659 "offset modulo 3 to the start of the file of zero.") , MappingStrings {
660 "MIF.DMTF|Software Signature|002.6"} ]
661 uint32 CRC2 ;
662 [maxlen (16) , Description (
663 " The MD5 algorithm is a well-known algorithm for computing a 128-bit "
664 "checksum for any file or object. The likelihood of two different "
665 "filesproducing the same MD5 checksum is very small (about 1 in 2^64), "
666 "and as such, the MD5 checksum of a file can be used to construct a "
667 "reliable content identifier that is very likely to uniquely identify "
668 "the file. The reverse is also true. If two files have the same MD5 "
669 "checksum, it is very likely that the files are identical. For purposes "
670 "of MOF specification of the MD5 property, the MD5 algorithm always "
671 "generates a 32 character string. For example: The string "
672 "abcdefghijklmnopqrstuvwxyz generates the string "
673 "c3fcd3d76192e4007dfb496cca67e13b. See http://www. rsa.com/pub/rfc1321."
674 "txt for details on the implementation of the MD5 algorithm.") ]
675 string MD5Checksum ;
676 };
677
678 karl 1.1 // ==================================================================
679 // CIM_VersionCompatibilityCheck
680 // ==================================================================
681 [Description (
682 " The VersionCompatibilityCheck class specifies whether it is "
683 "permissible to create the next state of a software element. ") ]
684 class CIM_VersionCompatibilityCheck:CIM_Check
685 {
686 [Description (
687 " The AllowDownVersion property indicates that this software element "
688 "can transition to its next state even if a higher or latter version of "
689 "the software element already exists in the environment.") ]
690 boolean AllowDownVersion ;
691 [Description (
692 " The AllowMultipleVersions option controls the ability to configure "
693 "multiple versions of a product on a system.") ]
694 boolean AllowMultipleVersions ;
695 [Description (
696 " The Reinstall property indicates that this software element can "
697 "transition to its next state even if a software element of the same "
698 "version already exists in the environment.") ]
699 karl 1.1 boolean Reinstall ;
700 };
701
702 // ==================================================================
703 // CIM_Action
704 // ==================================================================
705 [Abstract, Description (
706 " A CIM_Action is an operation that is part of a process to either "
707 "create a SoftwareElement in its next state or to eliminate the "
708 "SoftwareElement in the current state. ") ]
709 class CIM_Action : CIM_ManagedElement
710 {
711 [Propagated ("CIM_SoftwareElement.Name") , key, maxlen (256) ,
712 Description ("The name used to identify this software element") ]
713 string Name ;
714 [Propagated ("CIM_SoftwareElement.Version") , key, Maxlen (64) ,
715 Description (
716 "Version should be in the form <Major>.<Minor>.<Revision> or <Major>."
717 "<Minor><letter><revision>") , MappingStrings {
718 "MIF.DMTF|ComponentID|001.3"} ]
719 string Version ;
720 karl 1.1 [Propagated ("CIM_SoftwareElement.SoftwareElementState") , key,
721 Description (" The SoftwareElementState of a software element ") ,
722 Values {"Deployable", "Installable", "Executable", "Running"} ]
723 uint16 SoftwareElementState ;
724 [Propagated ("CIM_SoftwareElement.SoftwareElementID") , key, maxlen (256
725 ) , Description (" This is an identifier for this software element.") ]
726 string SoftwareElementID ;
727 [Propagated ("CIM_SoftwareElement.TargetOperatingSystem") , key,
728 MappingStrings {"MIF.DMTF|Software Component Information|002.5"} ,
729 Description (
730 " The Target Operating System of the owning software element.") ,
731 Values {"Unknown", "Other", "MACOS", "ATTUNIX", "DGUX", "DECNT",
732 "Digital Unix", "OpenVMS", "HPUX", "AIX", "MVS", "OS400", "OS/2",
733 "JavaVM", "MSDOS", "WIN3x", "WIN95", "WIN98", "WINNT", "WINCE",
734 "NCR3000", "NetWare", "OSF", "DC/OS", "Reliant UNIX", "SCO UnixWare",
735 "SCO OpenServer", "Sequent", "IRIX", "Solaris", "SunOS", "U6000",
736 "ASERIES", "TandemNSK", "TandemNT", "BS2000", "LINUX", "Lynx", "XENIX",
737 "VM/ESA", "Interactive UNIX", "BSDUNIX", "FreeBSD", "NetBSD", "GNU Hurd",
738 "OS9", "MACH Kernel", "Inferno", "QNX", "EPOC", "IxWorks", "VxWorks",
739 "MiNT", "BeOS", "HP MPE", "NextStep", "PalmPilot", "Rhapsody",
740 "Windows 2000", "Dedicated","VSE","TPF", "Windows (R) Me",
741 karl 1.1 "Not Applicable" } ]
742 uint16 TargetOperatingSystem ;
743 [key, Description (
744 " The ActionID property is a unique identifier assigned to a particular "
745 "action for a softare element. ") , maxlen (256) ]
746 string ActionID ;
747 [Description (
748 " The Direction property is used to indicate whether a particular "
749 "Actionobject is part of a sequence of actions to transition the "
750 "currentsoftware element to its next state, such as Install or to "
751 "remove the current software element, such as Uninstall.") , Values {
752 "Install", "Uninstall"} ]
753 uint16 Direction ;
754 [Description (
755 " The invoke method is to take a particular action. The details of how "
756 "the method performs the action is implementation specific. The "
757 "results of the method are based on the return value. - A 0 (zero) is "
758 "returned if the condition is satisfied. - A 1 (one) is returned if "
759 "the method is not supported. - Any other value indicates the "
760 "condition is not satisfied. ") ]
761 uint32 Invoke() ;
762 karl 1.1 };
763
764 // ==================================================================
765 // CIM_DirectoryAction
766 // ==================================================================
767 [Abstract, Description (
768 " The DirectoryAction is an abstract class that is used for directories "
769 "to be managed. Creation of directories is handled by the "
770 "CreateDirectoriesAction and removal is handled by the RemoveDirectory "
771 "action. ") ]
772 class CIM_DirectoryAction:CIM_Action
773 {
774 [maxlen (1024) ]
775 string DirectoryName ;
776 };
777
778 // ==================================================================
779 // CIM_CreateDirectoryAction
780 // ==================================================================
781 [Description (
782 " The CreateDirectory action creates empty directories for "
783 karl 1.1 "SoftwareElements to be installed locally.") ]
784 class CIM_CreateDirectoryAction:CIM_DirectoryAction
785 {
786 };
787
788 // ==================================================================
789 // CIM_RemoveDirectoryAction
790 // ==================================================================
791 [Description (
792 " The RemoveDirectoryAction removes directories for SoftwareElements. "
793 ) ]
794 class CIM_RemoveDirectoryAction:CIM_DirectoryAction
795 {
796 boolean MustBeEmpty ;
797 };
798
799 // ==================================================================
800 // CIM_FileAction
801 // ==================================================================
802 [Abstract, Description (
803 " The CIM_FileAction allows the author to locate files that already "
804 karl 1.1 "exist on the users machine, and move or copy those files to a new "
805 "location.") ]
806 class CIM_FileAction:CIM_Action
807 {
808 };
809
810 // ==================================================================
811 // CIM_CopyFileAction
812 // ==================================================================
813 [Description (
814 " The CIM_CopyFileAction specifies files that exist on a computer "
815 "system, and to move or copy those files to a new location. The "
816 "to/from information for the copy is specified using either the "
817 "ToDirectorySpecification/FromDirectorySpecification or the "
818 "ToDirectoryAction/FromDirectoryAction associations. The first set is "
819 "used when the source and/or the target are to exist before any actions "
820 "are taken. The second set is used when the source and/or target are "
821 "created as a part of a previous action. In the latter case, the action "
822 " to create the directory must occur prior to the CopyFileAction object."
823 " ") ]
824 class CIM_CopyFileAction:CIM_FileAction
825 karl 1.1 {
826 [maxlen (1024) ]
827 string Source ;
828 [maxlen (1024) ]
829 string Destination ;
830 boolean DeleteAfterCopy ;
831 };
832
833 // ==================================================================
834 // CIM_RemoveFileAction
835 // ==================================================================
836 [Description ("The RemoveFileAction uninstalls files.") ]
837 class CIM_RemoveFileAction:CIM_FileAction
838 {
839 [maxlen (1024) ]
840 string File ;
841 };
842
843 // ==================================================================
844 // RebootAction
845 // ==================================================================
846 karl 1.1 [Description (
847 " The RebootAction Causes a reboot of the system where the "
848 "SoftwareElement is installed. ") ]
849 class CIM_RebootAction:CIM_Action
850 {
851 };
852
853 // ==================================================================
854 // CIM_ExecuteProgram
855 // ==================================================================
856 [Description (
857 " The ExecuteProgram causes files to be executed on the system where "
858 "the SoftwareElement is installed. ") ]
859 class CIM_ExecuteProgram:CIM_Action
860 {
861 [maxlen (1024) ]
862 string ProgramPath ;
863 [Description ("A string that is invocable on a system command line.") ]
864 string CommandLine ;
865 };
866
867 karl 1.1 // ==================================================================
868 // SoftwareElementChecks
869 // ==================================================================
870 [Association, Aggregation, Description (
871 " Since software elements in a runnable state cannot transition into "
872 "another state, the value of the Phase property is restricted to "
873 "In-State for SoftwareElement objects in a runable state. ") ]
874 class CIM_SoftwareElementChecks
875 {
876 [Min (1) , Max (1) , Aggregate]
877 CIM_SoftwareElement REF Element;
878 [Min (0) , Max (NULL), Weak]
879 CIM_Check REF Check;
880 [Description (
881 " The Phase property indicates whether the referenced check is an "
882 "in-state check or a next-state check.") , Values {"In-State",
883 "Next-State"} ]
884 uint16 Phase ;
885 };
886
887 // ==================================================================
888 karl 1.1 // SettingCheck
889 // ==================================================================
890 [Description (
891 " This class specifies information needed to check a particular setting "
892 "file for a specific entry that contains a value that is equal to, or "
893 "contains, the value specified. All compares are assumed to be case "
894 "insensitive.") ]
895 class CIM_SettingCheck:CIM_Check
896 {
897 [Description ("Key of section containing the settings to be checked.")
898 , Maxlen (256) ]
899 string SectionKey ;
900 [Description ("Name of the Entry to be checked") , Maxlen (256) ]
901 string EntryName ;
902 [Description (
903 "Value to be checked that is associated with the named entry.") ]
904 string EntryValue ;
905 [Description (
906 "This specifies the way the setting value should be compared.") ,
907 Values {"Matches", "Contains"} ]
908 uint16 CheckType ;
909 karl 1.1 [Description ("File name of the setting file to be checked.") , Maxlen (
910 1024) ]
911 string FileName ;
912 };
913
914 // ==================================================================
915 // ModifySettingAction
916 // ==================================================================
917 [Description (
918 "This class specifies the information to be used to modify a particular "
919 "setting file for a specific entry with a specific value. The value "
920 "specified is created as a new entry or appends to, replaces, removes "
921 "from, or deletes the specified entry. All additions are assumed to be "
922 "case sensitive. Removes are assumed to be case insensitive.") ]
923 class CIM_ModifySettingAction:CIM_Action
924 {
925 [Description (
926 "This is the key of the section of the setting entry to be modified.")
927 , Maxlen (256) ]
928 string SectionKey ;
929 [Description ("Name of Entry to be modified.") , Maxlen (256) ]
930 karl 1.1 string EntryName ;
931 [Description (
932 "This is the value to be used to add, append, or replace to the "
933 "specified setting.") ]
934 string EntryValue ;
935 [Description ("File Name of setting file entry to be modified.") ,
936 Maxlen (1024) ]
937 string FileName ;
938 [Description (
939 "Type of action to be performed on the specified setting entry. Create "
940 "- Creates the specified entry. Delete - Deletes the specified entry. "
941 "Append - Append to the end of the specified entry. Remove - Remove the "
942 "value from the specified entry.") , Values {"Create", "Delete",
943 "Append", "Remove"} ]
944 uint16 ActionType ;
945 };
946
947 // ==================================================================
948 // DirectorySpecificationFile
949 // ==================================================================
950 [Association, Description (
951 karl 1.1 " The CIM_DirectorySpecificationFile association identifies the "
952 "directorythat contains the file being specified by referencing the "
953 "CIM_DirectorySpecification class. ") ]
954 class CIM_DirectorySpecificationFile
955 {
956 [Min (0) , Max (1) ]
957 CIM_DirectorySpecification REF DirectorySpecification;
958 [Min (0) , Max (NULL)]
959 CIM_FileSpecification REF FileSpecification;
960 };
961
962 // ==================================================================
963 // ActionSequence
964 // ==================================================================
965 [Association, Description (
966 " The CIM_ActionSequence association is used to define a series of "
967 "operations that either transitions the software element, referenced by "
968 "the CIM_SoftwareElementActions association, to its next state or "
969 "removes the software element from its current environment. The Action "
970 "classes participating in this association must have the same value for "
971 "the Direction property since they are either part of a sequence to "
972 karl 1.1 "transition a software element into its next state or to uninstall a "
973 "software element. The next-state actions and uninstall actions "
974 "associated with a particular software element must be a continuos "
975 "sequence. Since the ActionSequence is an association the loops on the "
976 "Action class with roles for the 'prior' action and 'next' action in a "
977 "sequence, the need for a continous sequence imples: (1)Within the set "
978 "of next-state or uninstall actions, there is one and only one action "
979 "that does not have an instance of the ActionSequence association "
980 "referencing it in the 'next' role. This is the first action in the "
981 "sequence. (2) Within the set of next-state or uninstall actions, there "
982 "is one and only one action that does not have an instance of the "
983 "ActionSequence association referencing it in the \"prior\" role. This "
984 "is the last action in the sequence. (3) All other actions within the "
985 "set of next-state and uninstall actions must participate in two "
986 "instances of the ActionSequence association, one in a prior role and "
987 "one in the next role.") ]
988 class CIM_ActionSequence
989 {
990 [Min (0) , Max (1) ]
991 CIM_Action REF Next;
992 [Min (0) , Max (1) ]
993 karl 1.1 CIM_Action REF Prior;
994 };
995
996 // ==================================================================
997 // SoftwareElementActions
998 // ==================================================================
999 [Association, Aggregation, Description (
1000 " This association is used to identify the actions for a software "
1001 "element. ") ]
1002 class CIM_SoftwareElementActions
1003 {
1004 [Min (1) , Max (1) , Aggregate]
1005 CIM_SoftwareElement REF Element;
1006 [Min (0) , Max (NULL), Weak]
1007 CIM_Action REF Action;
1008 };
1009
1010 // ==================================================================
1011 // SoftwareFeatureSoftwareElements
1012 // ==================================================================
1013 [Association, Aggregation, Description (
1014 karl 1.1 " The SoftwareFeatureSoftwareElements associations identifies the "
1015 "software elements that make up a particular software feature.") ]
1016 class CIM_SoftwareFeatureSoftwareElements : CIM_Component
1017 {
1018 [Min (0) , Max (NULL), Aggregate, Override ("GroupComponent") ]
1019 CIM_SoftwareFeature REF GroupComponent;
1020 [Min (0) , Max (NULL), Override ("PartComponent") ]
1021 CIM_SoftwareElement REF PartComponent;
1022 };
1023
1024 // ==================================================================
1025 // ProductSoftwareFeatures
1026 // ==================================================================
1027 [Association, Aggregation, Description (
1028 " The ProductSoftwareFeatures association identifies the software "
1029 "features for a particular product. ") ]
1030 class CIM_ProductSoftwareFeatures
1031 {
1032 [Min (1) , Max (1) , Aggregate]
1033 CIM_Product REF Product;
1034 [Min (0) , Max (NULL), Weak]
1035 karl 1.1 CIM_SoftwareFeature REF Component;
1036 };
1037
1038 // ==================================================================
1039 // ToDirectorySpecification
1040 // ==================================================================
1041 [Association, Description (
1042 " The ToDirectorySpecification association identifies the target "
1043 "directory for the file action. When this association is used, the "
1044 "assumption is that the target directory already existed. This "
1045 "association cannot exist with a ToDirectoryAction association since a "
1046 "file action can only involve a single target directory.") ]
1047 class CIM_ToDirectorySpecification
1048 {
1049 [Min (0) , Max (1) ]
1050 CIM_DirectorySpecification REF DestinationDirectory;
1051 [Min (0) , Max (NULL)]
1052 CIM_CopyFileAction REF FileName;
1053 };
1054
1055 // ==================================================================
1056 karl 1.1 // FromDirectorySpecification
1057 // ==================================================================
1058 [Association, Description (
1059 " The FromDirectorySpecification association identifies the source "
1060 "directory for the file action. When this association is used, the "
1061 "assumption is that the source directory already existed. This "
1062 "association cannot exist with a FromDirectoryAction association since "
1063 "a file action can only involve single source directory.") ]
1064 class CIM_FromDirectorySpecification
1065 {
1066 [Min (0) , Max (1) ]
1067 CIM_DirectorySpecification REF SourceDirectory;
1068 [Min (0) , Max (NULL)]
1069 CIM_FileAction REF FileName;
1070 };
1071
1072 // ==================================================================
1073 // ToDirectoryAction
1074 // ==================================================================
1075 [Association, Description (
1076 " The ToDirectoryAction association identifies the target directory for "
1077 karl 1.1 "the file action. When this association is used, the assumption is that "
1078 "the target directory was created by a previous action. This "
1079 "association cannot exist with a ToDirectorySpecification association "
1080 "since a file action can only involve a single target directory. ") ]
1081 class CIM_ToDirectoryAction
1082 {
1083 [Min (0) , Max (1) ]
1084 CIM_DirectoryAction REF DestinationDirectory;
1085 [Min (0) , Max (NULL)]
1086 CIM_CopyFileAction REF FileName;
1087 };
1088
1089 // ==================================================================
1090 // FromDirectoryAction
1091 // ==================================================================
1092 [Association, Description (
1093 " The FromDirectoryAction association identifies the source directory "
1094 "for the file action. When this association is used, the assumption is "
1095 "that the source directory was created by a previous action. This "
1096 "association cannot exist with a FromDirectorySpecification association "
1097 "since a file action can only involve a single source directory. ") ]
1098 karl 1.1 class CIM_FromDirectoryAction
1099 {
1100 [Min (0) , Max (1) ]
1101 CIM_DirectoryAction REF SourceDirectory;
1102 [Min (0) , Max (NULL)]
1103 CIM_FileAction REF FileName;
1104 };
1105
1106 // ==================================================================
1107 // SoftwareFeatureServiceImplementation
1108 // ==================================================================
1109 [Association, Description (
1110 " An association between a Service and how it is implemented in software."
1111 " The cardinality of this association is many-to-many. A Service may "
1112 "be provided by more than one SoftwareFeature, operating in conjunction."
1113 " And, any software Feature may provide more than one Service. When "
1114 "multiple SoftwareFeatures are associated with a single Service, it is "
1115 "assumed that these elements operate in conjunction to provide the "
1116 "Service. If different implementations of a Service exist, each of "
1117 "these implementations would result in individual instantiations of the "
1118 "Service object. These individual instantiations would then have "
1119 karl 1.1 "associations to the unique implementations. ") ]
1120 class CIM_SoftwareFeatureServiceImplementation : CIM_Dependency
1121 {
1122 [Min (0) , Max (NULL), Override ("Antecedent") ]
1123 CIM_SoftwareFeature REF Antecedent;
1124 [Min (0) , Max (NULL), Override ("Dependent") ]
1125 CIM_Service REF Dependent;
1126 };
1127
1128 // ==================================================================
1129 // SoftwareFeatureSAPImplementation
1130 // ==================================================================
1131 [Association, Description (
1132 " An association between a ServiceAccessPoint and how it is "
1133 "implementedin software. The cardinality of this association is "
1134 "many-to-many. A SAP may be provided by more than one SoftwareFeature, "
1135 "operating in conjunction. And, any SoftwareFeature may provide more "
1136 "than one ServiceAccessPoint. a When many SoftwareFeatures are "
1137 "associated with single SAP, it is assumed that these elements operate "
1138 "in conjunction to provide the AccessPoint. If different "
1139 "implementations of a SAP exist, each of these implementations would "
1140 karl 1.1 "result in individual instantiations of the ServiceAccessPoint object. "
1141 "These individual instantiations would then have associations to the "
1142 "unique implementations. ") ]
1143 class CIM_SoftwareFeatureSAPImplementation : CIM_Dependency
1144 {
1145 [Min (0) , Max (NULL), Override ("Antecedent") ]
1146 CIM_SoftwareFeature REF Antecedent;
1147 [Min (0) , Max (NULL), Override ("Dependent") ]
1148 CIM_ServiceAccessPoint REF Dependent;
1149 };
1150
1151 // ==================================================================
1152 // ApplicationSystemSoftwareFeature
1153 // ==================================================================
1154 [Association, Aggregation, Description (
1155 " The ApplicationSystemSoftwareFeature associations identifies the "
1156 "software features that make up a particular application system. The "
1157 "software features can be part of different products. ") ]
1158 class CIM_ApplicationSystemSoftwareFeature : CIM_SystemComponent
1159 {
1160 [Min (0) , Max (NULL), Override ("GroupComponent") , Aggregate,
1161 karl 1.1 Description ("The parent system in the Association") ]
1162 CIM_ApplicationSystem REF GroupComponent;
1163 [Min (0) , Max (NULL), Override ("PartComponent") , Description (
1164 "The child element that is a component of a system") ]
1165 CIM_SoftwareFeature REF PartComponent;
1166 };
1167
1168 // ==================================================================
1169 // InstalledSoftwareElement
1170 // ==================================================================
1171 [Association, Description (
1172 " The InstalledSoftwareElement association allows one to to identify "
1173 "the Computer System a particular Software element is installed on. ")
1174 ]
1175 class CIM_InstalledSoftwareElement
1176 {
1177 [Min (0) , Max (NULL), Description (
1178 "References the software element that is installed.") ]
1179 CIM_SoftwareElement REF Software;
1180 [Min (0) , Max (1) , Description (
1181 "References the computer system hosting a particular software element. "
1182 karl 1.1 ) ]
1183 CIM_ComputerSystem REF System;
1184 };
1185
1186 // ==================================================================
1187 // FRUIncludesSoftwareFeature
1188 // ==================================================================
1189 [Association, Aggregation,
1190 Description( "The FRUIncludesSoftwareFeature association identifies "
1191 "the software features packaged with a particular FRU. A common way "
1192 "this association can be used is to support a management task to "
1193 "determine if a particular FRU is compatible with a particular hardware "
1194 "product. In order to determine whether or not a FRU is compatible with "
1195 "a particular hardware product, the following conditions need to verified: "
1196 "(1) Is the physical package of the FRU compatible with the slots or "
1197 "equivalent of the hardware device? (2) Are there any physical constraints "
1198 "(like power consumption) that prevent the FRU from being installed "
1199 "properly? (3) Are the software features packaged with the FRU compatiable "
1200 "with the underlying operating system and other software already installed "
1201 "in the hardware product? This latter question can be answered by first "
1202 "seeing if an instance of the FRUIncludesSoftwareFeature association exists. "
1203 karl 1.1 "If it does, then the compatibility of each SoftwareFeature can be "
1204 "determined by evaluating the Check classes that are referenced by the "
1205 "SoftwareElementChecks association on each SoftwareElement. For example, "
1206 "there might be a SoftwareElementVersionCheck that declares that a "
1207 "SoftwareElement of the FRU's SoftwareFeature is not compatible with "
1208 "another SoftwareFeature." )
1209 ]
1210 class CIM_FRUIncludesSoftwareFeature
1211 {
1212 [Key, Min(0), Max(1), Aggregate ]
1213 CIM_FRU REF FRU;
1214 [Key, Min(0), Max(NULL) ]
1215 CIM_SoftwareFeature REF Component;
1216 };
1217
1218 // ==================================================================
1219 // SoftwareElementServiceImplementation
1220 // ==================================================================
1221 [Association, Description (
1222 " An association between a Service and how it is implemented "
1223 "by one or more executable SoftwareElements. Note that this "
1224 karl 1.1 "association is restricted to 'executable' Elements. In "
1225 "earlier phases of deployment, the SoftwareFeatureService"
1226 "Implementation association is adequate and recommended. \n"
1227 " The relationship between this association and SoftwareFeature"
1228 "ServiceImplementation is more fully described here. Software"
1229 "ElementServiceImplementation allows the description of greater "
1230 "granularity than SoftwareFeatureServiceImplementation, when a "
1231 "SoftwareFeature is fully deployed and results in several "
1232 "executable Elements. These Elements may implement several "
1233 "different Services. \n"
1234 " Since SoftwareFeatures decompse into SoftwareElements, "
1235 "it is possible to describe how software implements a Service "
1236 "by using either this association or the SoftwareFeatureService"
1237 "Implementation relationship. One or the other should be chosen. "
1238 "Both associations should not be used for a particular Service, "
1239 "since their information is redundant. \n"
1240 " This relationship is especially important when the "
1241 "SoftwareFeature and Product aspects are not described for a "
1242 "SoftwareElement (ie, when the acquisition and deployment of "
1243 "the software is not detailed). In this case, the Software"
1244 "ElementServiceImplementation association is the only one "
1245 karl 1.1 "available to describe how a Service is implemented in "
1246 "software. Since SoftwareFeatures are not instantiated, it "
1247 "is not possible to use the SoftwareFeatureService"
1248 "Implementation association. \n"
1249 " The cardinality of this association is many-to-many. A "
1250 "Service may be provided by more than one SoftwareElement. (If "
1251 "this is true, it is assumed that the SoftwareElements operate "
1252 "in conjunction.) And, any SoftwareElement may provide more "
1253 "than one Service.") ]
1254 class CIM_SoftwareElementServiceImplementation : CIM_Dependency
1255 {
1256 [Override ("Antecedent"),
1257 Description (
1258 "The executable SoftwareElement implementing the Service.") ]
1259 CIM_SoftwareElement REF Antecedent;
1260 [Override ("Dependent"),
1261 Description (
1262 "The Service implemented by the SoftwareElement.") ]
1263 CIM_Service REF Dependent;
1264 };
1265
1266 karl 1.1 // ==================================================================
1267 // SoftwareElementSAPImplementation
1268 // ==================================================================
1269 [Association, Description (
1270 " An association between a ServiceAccessPoint and how it is "
1271 "implemented by one or more executable SoftwareElements. Note "
1272 "that this association is restricted to 'executable' Elements. "
1273 "In earlier phases of deployment, the SoftwareFeatureSAP"
1274 "Implementation association is adequate and recommended. \n"
1275 " The relationship between this association and SoftwareFeature"
1276 "SAPImplementation is more fully described here. Software"
1277 "ElementSAPImplementation allows the description of greater "
1278 "granularity than SoftwareFeatureSAPImplementation, when a "
1279 "SoftwareFeature is fully deployed and results in several "
1280 "executable Elements. These Elements may implement several "
1281 "different ServiceAccessPoints. \n"
1282 " Since SoftwareFeatures decompse into SoftwareElements, "
1283 "it is possible to describe how software implements a SAP "
1284 "by using either this association or the SoftwareFeatureSAP"
1285 "Implementation relationship. One or the other should be chosen. "
1286 "Both associations should not be used for a particular Access"
1287 karl 1.1 "Point, since their information is redundant. \n"
1288 " This relationship is especially important when the "
1289 "SoftwareFeature and Product aspects are not described for a "
1290 "SoftwareElement (ie, when the acquisition and deployment of "
1291 "the software is not detailed). In this case, the Software"
1292 "ElementSAPImplementation association is the only one "
1293 "available to describe how an AccessPoint is implemented in "
1294 "software. Since SoftwareFeatures are not instantiated, it "
1295 "is not possible to use the SoftwareFeatureSAP"
1296 "Implementation association. \n"
1297 " The cardinality of this association is many-to-many. A "
1298 "ServiceAccessPoint may be provided by more than one Software"
1299 "Element. (If this is true, it is assumed that the Software"
1300 "Elements operate in conjunction.) And, any SoftwareElement "
1301 "may provide more than one SAP.") ]
1302 class CIM_SoftwareElementSAPImplementation : CIM_Dependency
1303 {
1304 [Override ("Antecedent"),
1305 Description (
1306 "The executable SoftwareElement implementing the SAP.") ]
1307 CIM_SoftwareElement REF Antecedent;
1308 karl 1.1 [Override ("Dependent"),
1309 Description (
1310 "The ServiceAccessPoint implemented by the SoftwareElement.") ]
1311 CIM_ServiceAccessPoint REF Dependent;
1312 };
1313
1314 // ==================================================================
1315 // SoftwareFeatureComponent
1316 // ==================================================================
1317 [Association, Aggregation, Description (
1318 "The SoftwareFeatureComponent aggregation models a set of "
1319 "subordinate or independent Software Features "
1320 "under a Product "
1321 "that are aggregated together to form "
1322 "a higher-level or large grain Software Feature "
1323 "under the same Product.") ]
1324 class CIM_SoftwareFeatureComponent : CIM_Component
1325 {
1326 [Override ("GroupComponent"), Aggregate,
1327 Description ("The parent SoftwareFeature.") ]
1328 CIM_SoftwareFeature REF GroupComponent;
1329 karl 1.1 [Override ("PartComponent"),
1330 Description ("The component SoftwareFeature.") ]
1331 CIM_SoftwareFeature REF PartComponent;
1332 };
1333
1334 // ===================================================================
1335 // InstalledProduct
1336 // ===================================================================
1337 [Description (
1338 "The InstalledProduct object allows the grouping of "
1339 "SoftwareFeatures and SoftwareElements that "
1340 "represent a purchased Product or the result of "
1341 "the installation of a Product. Often, Products are purchased "
1342 "once but may be installed several times in different locations "
1343 "on a system or different systems. All of the SoftwareElements "
1344 "and SoftwareFeatures of a single install should be grouped in "
1345 "instances of InstalledProduct. "
1346 "This is defined using the two associations, Collected"
1347 "SoftwareFeatures and CollectedSoftwareElements."
1348 "These associations define the particular "
1349 "SoftwareFeatures and SoftwareElements that are "
1350 karl 1.1 "part of an InstalledProduct. "
1351 "These MemberOf associations allow one to find all of the "
1352 "Product installations in which a SoftwareFeature is represented "
1353 "or a SoftwareElement is deployed. "
1354 "In general, the InstalledProduct "
1355 "object represents a grouping or 'bag' of 'like' Elements. "
1356 "InstalledProduct is weak to Product. ") ]
1357 class CIM_InstalledProduct : CIM_Collection
1358 {
1359 [Propagated ("CIM_Product.IdentifyingNumber"), Key, Maxlen (64),
1360 Description (
1361 "Product identification such as a serial number on software or a die "
1362 "number on a hardware chip"),
1363 MappingStrings {"DMTF|ComponentID|001.4"} ]
1364 string ProductIdentifyingNumber ;
1365 [Propagated ("CIM_Product.Name"), Key, Maxlen (256),
1366 Description ("Commonly used Product name"),
1367 MappingStrings {"DMTF|ComponentID|001.2"} ]
1368 string ProductName ;
1369 [Propagated ("CIM_Product.Vendor"), Key, Maxlen (256),
1370 Description (
1371 karl 1.1 "The name of the Product's supplier. Corresponds to the Vendor property "
1372 "in the Product object in the DMTF Solution Exchange Standard."),
1373 MappingStrings {"DMTF|ComponentID|001.1"} ]
1374 string ProductVendor ;
1375 [Propagated ("CIM_Product.Version"), Key, Maxlen (64), Description (
1376 "Product version information. Corresponds to the Version property in "
1377 "the Product object in the DMTF Solution Exchange Standard."),
1378 MappingStrings {"DMTF|ComponentID|001.3"} ]
1379 string ProductVersion ;
1380 [Key, MaxLen (256), Description (
1381 "The identifying information of the System (ie, the instance) on "
1382 "which the Product is installed. The property contains the "
1383 "path of an instance, encoded as a string parameter - if the "
1384 "System instance is modeled in the CIM Schema, if the product "
1385 "is installed on a single system, and if the "
1386 "information is available during installation. If not, "
1387 "the property contains some identifying string that names the "
1388 "System on which the Product is installed.") ]
1389 string SystemID;
1390 [Key, MaxLen (256), Description (
1391 "The identification of the InstalledProduct object. "
1392 karl 1.1 "This key can be used to differentiate between "
1393 "product intstallations - usually installation location.") ]
1394 string CollectionID;
1395 [Description (
1396 "The Name property defines the label by which the object is known to the "
1397 "world outside the data processing system. This label is a "
1398 "human-readable name that uniquely identifies the element in the context "
1399 "of the element's namespace."), Maxlen (256) ]
1400 string Name ;
1401 };
1402 // ==================================================================
1403 // InstalledProductImage
1404 // ==================================================================
1405 [Association, Description (
1406 " The InstalledProductImage association identifies the "
1407 "InstalledProduct instance representing the "
1408 "collection of installed features and elements "
1409 "for a particular product's installed instance. ") ]
1410 class CIM_InstalledProductImage
1411 {
1412 [Min (1) , Max (1) , Aggregate,
1413 karl 1.1 Description("The product that has been "
1414 "installed and created the software features "
1415 "and software elements on the system.")]
1416 CIM_Product REF Product;
1417 [Weak, Description("The collection representing "
1418 "the set of software features and elements that "
1419 "are the result of one product installation. ")]
1420 CIM_InstalledProduct REF Collection;
1421 };
1422
1423 // ==================================================================
1424 // CollectedSoftwareElements
1425 // ==================================================================
1426 [Association, Aggregation, Description (
1427 "CIM_CollectedSoftwareElements is an association used to "
1428 "establish the SoftwareElements of a product "
1429 "installation represented by the grouping object, "
1430 "InstalledProductCollection. ") ]
1431 class CIM_CollectedSoftwareElements : CIM_MemberOfCollection
1432 {
1433 [Aggregate, Description (
1434 karl 1.1 "The collection representing the "
1435 "installed image of a Product ."), Override("Collection") ]
1436 CIM_InstalledProduct REF Collection;
1437 [Description ("The SoftwareElements that are "
1438 "members of the InstalledProduct Collection."),
1439 Override("Member") ]
1440 CIM_SoftwareElement REF Member;
1441 };
1442
1443 // ==================================================================
1444 // CollectedSoftwareFeatures
1445 // ==================================================================
1446 [Association, Aggregation, Description (
1447 "CIM_CollectedSoftwareFeatures is an association used to "
1448 "establish the SoftwareFeatures of a product "
1449 "installation represented by the grouping object, "
1450 "InstalledProductCollection. ") ]
1451 class CIM_CollectedSoftwareFeatures : CIM_MemberOfCollection
1452 {
1453 [Aggregate, Description (
1454 "The collection representing the "
1455 karl 1.1 "installed image of a "
1456 "Product."), Override("Collection") ]
1457 CIM_InstalledProduct REF Collection;
1458 [Description ("The SoftwareFeatures that are "
1459 "members of the InstalledProduct Collection."),
1460 Override("Member") ]
1461 CIM_SoftwareFeature REF Member;
1462 };
1463
1464 // ==================================================================
1465 // end of file
1466 // ==================================================================
|