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