(file) Return to CIM_Application26.mof CVS log (file) (dir) Up to [Pegasus] / pegasus / Schemas / CIM26

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2