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