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

   1 karl  1.1 // ===================================================================
   2 karl  1.1.2.1 // Title:       System MOF specification 2.5
   3               // Filename:    CIM_System25.mof
   4 karl  1.1     // Version:     2.5
   5               // Release:     0
   6 karl  1.1.2.1 // Date:        06/12/2001
   7               // ===================================================================
   8               // Copyright "2001" 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 cited should always be noted.
  17               // ===================================================================
  18 karl  1.1     // Description: The object classes below are listed in an order that
  19               //              avoids forward references. Required objects, defined 
  20 karl  1.1.2.1 //              by other working groups, are omitted.
  21 karl  1.1     // ==================================================================
  22 karl  1.1.2.1 // Author:      DMTF System and Devices Working Group
  23 karl  1.1     //          06/16/1998 - V2.0 Errata
  24 karl  1.1.2.1 //      - CR233, Format for specifying Propagated keys uses
  25 karl  1.1     //                period, not colon and CIM_ missing from class name
  26 karl  1.1.2.1 //          (CIM_OperatingSystemSoftwareFeature)
  27               //      09/29/1998 - Version 2.1
  28               //      - CR251, Remove DMI mapping reference from OperatingSystem.
  29               //          NumberOfUsers and move to LocalDateTime
  30               //      - CR268, Change cardinality of the Antecedent reference
  31               //          of the ParticipatingCS association (to Min(1))
  32               //      - CR273, Remove repetition of the Values array from the
  33               //          descriptions of several properties
  34               //      - CR276b, Add to the enumeration for UnitaryComputerSystem.
  35               //          PowerState
  36               //      - CR290, Add ModelCorrespondence to "linked" properties
  37               //      - CR293, Correct xxxMemory properties of OperatingSystem
  38               //          and add MaxProcessMemorySize property
  39               //      06/08/1999 - Version 2.2
  40               //      - CR354, Update the Values array for "power save" for
  41               //          UnitaryComputerSystem (both the property and method)
  42               //      - CR355a, Update the method descriptions for SetPowerState,
  43 karl  1.1     //                 AddNode, EvictNode, Reboot and Shutdown indicating 
  44               //                 that Values-ValueMap qualifiers can be defined for 
  45               //                 return codes
  46               //          - CR356a, Put keys on the references of Export
  47 karl  1.1.2.1 //      - CR358a, Add ClusterSize property to FileSystem
  48               //      - CR363, Update OperatingSystem.OSType enumeration and the
  49               //           description for OperatingSystem.OtherTypeDescription
  50               //      - CR364, Create TotalVisibleMemorySize property on 
  51               //           OperatingSystem
  52               //      - CR368, Update ComponentCS' Description and add new 
  53               //           associations, SystemPartition and SystemBIOS
  54               //      - CR369, Update FileSystem - CodeSet's Description and 
  55               //           enum, and create a new property, FileSystemType
  56               //      - CR370a, Update BIOSFeature.Characteristics enumeration and
  57               //           add ListOfLanguages and CurrentLanguage properties
  58               //           to BIOSElement
  59 karl  1.1     //          - CR371, Add WakeUpType property to UnitaryComputerSystem
  60 karl  1.1.2.1 //      - CR374a, Update Process' Description
  61               //      - CR383 and 409, Add OS/390, VSE and TPF to OS's OSType enum
  62               //      - CR386, Add to the enums for Cluster.Types and 
  63 karl  1.1     //                 ParticipatingCS.RoleOfNode and update the latter's 
  64 karl  1.1.2.1 //           Description
  65               //      - CR388a, Create StorageLibrary object
  66               //      - CR405, Add Counter and Gauge qualifiers
  67               //      - CR407, Remove the word "automated" from StorageLibrary's
  68               //           Description / Update descriptions for AuditInProgress
  69               //           and MaxAuditTime
  70               //      - CR408, Set ComputerSystem's cardinality in SystemPartition
  71               //           to Max(1)
  72               //      - CR417a, Change cardinality of UnitaryComputerSystem in
  73 karl  1.1     //                 SystemBIOS (add Max(1)) and remove Min(1) from 
  74 karl  1.1.2.1 //           ComputerSystem for RunningOS
  75 karl  1.1     //        07/06/1999 - Version 2.2.1
  76 karl  1.1.2.1 //      - CR423, Locale should be specified as en_US
  77               //      - CR425, Update the DMI MappingStrings using the June
  78               //               release of the master.mif
  79               //  Date  02/18/2000 - Version 2.3
  80               //      - CR433 Add new properties and enums from Master.MIF and new 
  81               //              ModelCorrespondences 
  82               //      - CR344 Update to CIM_FileSystem classes and associations
  83               //      - CR437e, Diagnostic extensions, classes and associations.
  84               //      - CR460a Add Gauge qualifier to properties
  85               //      - CR473 Update to CIM_Mount association 
  86               //  Date 06/09/2000 - Version 2.4
  87               //      - CR480, Add a property to CIM_StorageLibrary, RoboticsEnabled.
  88               //      - CR488, Change descriptions in CIM_Service:DiagnosticTest 
  89               //               RunTest method, DiagnosticResult, DiagnosticSetting
  90               //  Date 07/14/2000 - Version 2.4
  91               //      - CR504 ERRATA to CIM V2.3 Add remainder of the propagated keys 
  92               //              for DiagnosticResult
  93               //      - CR511a, Update to the DiagnosticSetting.SettingID Description
  94               //      - CR517, Correct Compile error on RunTest method in the class 
  95               //               CIM_DiagnosticTest
  96               //  Date 12/01/2000 Version 2.5
  97 karl  1.1.2.1 //      - CR533b Add Windows (R) Me  to Operating System property 
  98               //               enumerations
  99               //      - CR541a Add an association between Process and Service
 100               //      - CR543a Update the Description for LogicalFile.Name
 101               //      - CR582 ERRATA - Change the ValueMap qualifier to a Values 
 102               //              qualifier on the CIM_DiagnosticTest.ResourcesUsed[]
 103               //              property due to type mismatch.
 104               //  Date 05/08/2001 Version 2.5 Final Version
 105               //              Rearranged ordering of class definitions to match Visio
 106               //              Changed format of class definitions to be consistent
 107 karl  1.1     // ===================================================================
 108               
 109               
 110               // ===================================================================
 111               // Pragmas
 112               // ===================================================================
 113               #pragma locale ("en_US")
 114               
 115               
 116               // ===================================================================
 117               // ComponentCS
 118               // ===================================================================
 119 karl  1.1.2.1    [Association,  Aggregation, Description (
 120                    "A ComputerSystem can aggregate another ComputerSystem. "
 121                    "This association can be used to model MPP Systems with "
 122                    "workstation frontends, an I2O subsystem embedded in a Unitary"
 123                    "ComputerSystem, or a System that splits functionality between "
 124                    "two processors, potentially running different Operating"
 125                    "Systems. For example, if a CISC Processor and its associated "
 126                    "OperatingSystem, are used for user interface and file "
 127                    "support, and a RISC Processor and its OS are used for complex "
 128                    "mathematical operations, this could be modeled as two "
 129                    "ComputerSystems where one aggregates the other. In some cases, "
 130                    "this could be modeled as a Cluster. The difference is the "
 131                    "focus of the relationship. ComponentCS represents that "
 132                    "unique and distinct ComputerSystems are aggregated by a "
 133                    "higher level CS object. However, each of the component CSs are "
 134                    "still distinguishable entities and are only viewed as such. "
 135                    "Alternately, with a Cluster, the ComputerSystems that "
 136                    "participate in it are inconsequential, when viewed through the "
 137                    "'Cluster System'.\n\n"
 138                    "When instantiating or subclassing the ComponentCS "
 139                    "relationship, care should be taken that the component "
 140 karl  1.1.2.1      "ComputerSystem meets the definitional requirements of a "
 141                    "ComputerSystem - ie, a functional whole that provides "
 142                    "compute capabilities and aggregates System Devices, an "
 143                    "OperatingSystem, etc.") ] 
 144               class CIM_ComponentCS : CIM_SystemComponent {
 145 karl  1.1           [Override ("GroupComponent"),
 146                      Aggregate,
 147                      Description (
 148 karl  1.1.2.1         "The ComputerSystem that contains and/or aggregates other "
 149                       "Systems.") ]
 150 karl  1.1        CIM_ComputerSystem REF GroupComponent;
 151                     [Override ("PartComponent"), 
 152 karl  1.1.2.1        Description ("The contained (Sub)ComputerSystem.") ]
 153 karl  1.1        CIM_ComputerSystem REF PartComponent;
 154               };
 155               
 156 karl  1.1.2.1 
 157 karl  1.1     // ===================================================================
 158               // UnitaryComputerSystem
 159               // ===================================================================
 160                  [Description (
 161 karl  1.1.2.1      "A class derived from ComputerSystem that represents a Desktop, "
 162                    "Mobile, NetPC, Server or other type of a single node Computer "
 163                    "System.") ] 
 164               class CIM_UnitaryComputerSystem : CIM_ComputerSystem {
 165                     [Description (
 166                       "This object contains the data needed to find either the "
 167                       "initial load device (its key) or the boot service to "
 168                       "request the operating system to start up. In addition, "
 169                       "the load parameters (ie, a pathname and parameters) "
 170                       "may also be specified.") ]
 171 karl  1.1        string InitialLoadInfo[];
 172                     [Description (
 173 karl  1.1.2.1         "This object contains the data identifying either the "
 174                       "initial load device (its key) or the boot service that "
 175                       "requested the last operating system load. In addition, "
 176                       "the load parameters (ie, a pathname and parameters) "
 177                       "may also be specified."),
 178                      MappingStrings {
 179                       "MIB.IETF|HOST-RESOURCES-MIB.hrSystemInitialLoadDevice",
 180                       "MIB.IETF|HOST-RESOURCES-MIB.hrSystemInitialLoadParameters", 
 181                       "MIF.DMTF|Host System|001.3"}]
 182 karl  1.1        string LastLoadInfo;
 183                     [Description (
 184 karl  1.1.2.1       "Boolean indicating that the ComputerSystem, with its "
 185                     "running OperatingSystem, supports power management. This "
 186                     "boolean does not indicate that power management features are "
 187                     "currently enabled, or if enabled, what features are "
 188                     "supported. Refer to the PowerManagementCapabilities array "
 189                     "for this information. If this boolean is false, the integer "
 190                     "value 1 for the string, \"Not Supported\", should be the "
 191                     "only entry in the PowerManagementCapabilities array.")
 192 karl  1.1           ]
 193 karl  1.1.2.1    boolean PowerManagementSupported;    
 194 karl  1.1           [Description(
 195                       "Indicates the current power state of the ComputerSystem and "
 196                       "its associated OperatingSystem. Regarding the Power Save "
 197                       "states, these are defined as follows: Value 4 (\"Power Save "
 198                       "- Unknown\") indicates that the System is known to be in a "
 199                       "power save mode, but its exact status in this mode is "
 200                       "unknown; 2 (\"Power Save - Low Power Mode\") indicates that "
 201                       "the System is in a power save state but still functioning, "
 202                       "and may exhibit degraded performance; 3 (\"Power Save - "
 203                       "Standby\") describes that the System is not functioning but "
 204                       "could be brought to full power 'quickly'; value 7 (\"Power Save "
 205                       "- Warning\") indicates that the ComputerSystem is in a warning "
 206                       "state, though also in a power save mode; and, values 8 and 9 "
 207                       "describe the ACPI \"Hibernate\" and \"Soft Off\" states."),
 208                      Values {"Unknown", "Full Power", "Power Save - Low Power Mode", 
 209 karl  1.1.2.1                "Power Save - Standby", "Power Save - Unknown", 
 210                              "Power Cycle", "Power Off", "Power Save - Warning", 
 211                              "Power Save - Hibernate", "Power Save - Soft Off"}]
 212 karl  1.1        uint16 PowerState;
 213                     [Description (
 214                       "The event that caused the System to power up. This "
 215                       "information is available in SMBIOS, in the Type 1 structure, "
 216                       "the Wake Up Type attribute."),
 217                      Values {"Reserved", "Other", "Unknown", "APM Timer", 
 218 karl  1.1.2.1                "Modem Ring", "LAN Remote", "Power Switch", "PCI PME#", 
 219                              "A/C Power Restored"}]
 220 karl  1.1        uint16 WakeUpType;
 221 karl  1.1.2.1       [Description (
 222                       "If enabled (value = 4), the UnitaryComputerSystem can be "
 223                       "reset via hardware (e.g. the power and reset buttons). If "
 224                       "disabled (value = 3), hardware reset is not allowed. In "
 225                       "addition to Enabled and Disabled, other Values for the "
 226                       "property are also defined - \"Not Implemented\" (5), "
 227                       "\"Other\" (1) and \"Unknown\" (2)."),
 228                      ValueMap {"1", "2", "3", "4", "5"},
 229                      Values {"Other", "Unknown", "Disabled",
 230                              "Enabled", "Not Implemented"},
 231                      MappingStrings {"MIF.DMTF|System Hardware Security|001.4"} ]
 232                   uint16 ResetCapability;
 233                     [Description(
 234                       "Indicates the specific power-related capabilities of a "
 235                       "ComputerSystem and its associated running OperatingSystem. "
 236                       "The values, 0=\"Unknown\", 1=\"Not Supported\", and "
 237                       "2=\"Disabled\" are self-explanatory. "
 238                       "The value, 3=\"Enabled\" indicates that the power management "
 239                       "features are currently enabled but the exact feature set "
 240                       "is unknown or the information is unavailable. "
 241                       "\"Power Saving Modes Entered Automatically\" (4) describes "
 242 karl  1.1.2.1         "that a system can change its power state based on usage or "
 243                       "other criteria. \"Power State Settable\" (5) indicates that "
 244                       "the SetPowerState method is supported. \"Power Cycling "
 245                       "Supported\" (6) indicates that the SetPowerState method "
 246                       "can be invoked with the PowerState input variable set to 5 ("
 247                       "\"Power Cycle\"). \"Timed Power On Supported\" (7) indicates "
 248                       "that the SetPowerState method can be invoked with the Power"
 249                       "State input variable set to 5 (\"Power Cycle\") and the Time "
 250                       "parameter set to a specific date and time, or interval, "
 251                       "for power-on."),
 252                      Values {"Unknown", "Not Supported", "Disabled", 
 253                              "Enabled", "Power Saving Modes Entered Automatically",
 254                              "Power State Settable", "Power Cycling Supported",
 255                              "Timed Power On Supported"},
 256                      MappingStrings {"MIF.DMTF|System Power Controls|001.2"} ]
 257                   uint16 PowerManagementCapabilities[];
 258 karl  1.1           [Description(
 259                       "SetPowerState defines the desired power state of a "
 260                       "ComputerSystem and its running OperatingSystem, and when "
 261                       "the system should be put into that state. The PowerState "
 262                       "parameter is specified as one of the following integer "
 263                       "values: 1=\"Full Power\", 2=\"Power Save - Low Power Mode\", "
 264                       "3=\"Power Save - Standby\", 4=\"Power Save - Other\", "
 265                       "5=\"Power Cycle\", 6=\"Power Off\", 7=\"Hibernate\" and "
 266                       "8=\"Soft Off\". The Time parameter (for all state changes "
 267                       "but 5, \"Power Cycle\") indicates when the power state "
 268                       "should be set, either as a regular date-time value or as "
 269                       "an interval value (where the interval begins when the "
 270                       "method invocation is received). When the PowerState "
 271                       "parameter is equal to 5, \"Power Cycle\", the Time "
 272                       "parameter indicates when the system should power on "
 273                       "again. Power off is immediate. SetPowerState should "
 274                       "return 0 if successful, 1 if the specified State and "
 275                       "Time request is not supported, and some other value if "
 276                       "any other error occurred. In a subclass, the "
 277                       "set of possible return codes could be specified, using a "
 278                       "ValueMap qualifier on the method. The strings to which the "
 279 karl  1.1             "ValueMap contents are 'translated' may also be specified in "
 280 karl  1.1.2.1         "the subclass as a Values array qualifier.") ]
 281                   uint32 SetPowerState(
 282                     [IN, ValueMap {"1", "2", "3", "4", "5", "6", "7", "8"},
 283                          Values {"Full Power", "Power Save - Low Power Mode", 
 284                                  "Power Save - Standby", "Power Save - Other", 
 285                                  "Power Cycle", "Power Off", "Hibernate", "Soft Off"}] 
 286                   uint32 PowerState, 
 287 karl  1.1         [IN] datetime Time);
 288               };
 289               
 290 karl  1.1.2.1 
 291 karl  1.1     // ===================================================================
 292               // SystemPartition
 293               // ===================================================================
 294                  [Association, Aggregation, Description (
 295 karl  1.1.2.1      "A Partition is an instance of a UnitaryComputerSystem (with "
 296                    "its own OperatingSystem and Devices dedicated to the "
 297                    "Partition) that is supported by underlying hardware and "
 298                    "software. A Partition is not a virtualization of a Computer"
 299                    "System, but the segmentation of the System's compute "
 300                    "capabilities. Partitions can run independent copies of "
 301                    "possibly different OperatingSystems and have dedicated "
 302                    "Devices. The 'real', underlying System (perhaps a Cluster "
 303                    "or another UnitaryComputerSystem) aggregates its "
 304                    "Partitions. These semantics are described by the System"
 305                    "Partition association.") ]
 306               class CIM_SystemPartition : CIM_ComponentCS {
 307 karl  1.1           [Override ("GroupComponent"), Aggregate, Max (1),
 308                      Description (
 309 karl  1.1.2.1         "The 'underlying' ComputerSystem that hosts a Partition.") ]
 310 karl  1.1        CIM_ComputerSystem REF GroupComponent;
 311                     [Override ("PartComponent"), 
 312 karl  1.1.2.1        Description ("The System Partition.") ]
 313 karl  1.1        CIM_UnitaryComputerSystem REF PartComponent;
 314               };
 315               
 316 karl  1.1.2.1 
 317 karl  1.1     // ===================================================================
 318               // VirtualComputerSystem
 319               // ===================================================================
 320                  [Description (
 321 karl  1.1.2.1      "A class derived from ComputerSystem that represents the "
 322                    "ability to virtualize or emulate another ComputerSystem.") ] 
 323               class CIM_VirtualComputerSystem : CIM_ComputerSystem {
 324 karl  1.1           [Description (
 325                       "A string describing the type of System or hardware platform "
 326 karl  1.1.2.1         "that is virtualized. OperatingSystem information is obtained "
 327                       "via the RunningOS inherited from ComputerSystem.") ]
 328 karl  1.1        string VirtualSystem;
 329               };
 330               
 331 karl  1.1.2.1 
 332 karl  1.1     // ===================================================================
 333               // HostingCS
 334               // ===================================================================
 335 karl  1.1.2.1    [Association, Description (
 336                    "A VirtualComputerSystem is hosted on another ComputerSystem. "
 337                    "This association makes that relationship explicit.") ] 
 338               class CIM_HostingCS : CIM_Dependency {
 339                     [Override ("Antecedent"),  Min (1),
 340                      Description ("The hosting ComputerSystem.") ]
 341 karl  1.1        CIM_ComputerSystem REF Antecedent;
 342                     [Override ("Dependent"), 
 343 karl  1.1.2.1        Description ("The VirtualComputerSystem.") ]
 344 karl  1.1        CIM_VirtualComputerSystem REF Dependent;
 345               };
 346               
 347 karl  1.1.2.1 
 348 karl  1.1     // ===================================================================
 349               // Cluster
 350               // ===================================================================
 351                  [Description (
 352 karl  1.1.2.1      "A class derived from ComputerSystem that 'is made up of' two "
 353                    "or more ComputerSystems which operate together as an atomic, "
 354                    "functional whole to increase the performance, resources and/or "
 355                    "RAS (Reliability, Availability and Serviceability) of the "
 356                    "component ComputerSystems, related to some aspects of these "
 357                    "ComputerSystems.") ] 
 358               class CIM_Cluster : CIM_ComputerSystem {
 359                     [Description (
 360                       "Interconnect is a free form string that describes the "
 361                       "interconnection mechanism for the Cluster.") ]
 362                  string Interconnect; 
 363                     [Description (
 364                       "InterconnectAddress indicates the address of the Cluster "
 365                       "System, which is dependent on the interconnection scheme. "
 366                       "If no address is available or applicable, a null string "
 367                       "should be used.") ]
 368 karl  1.1        string InterconnectAddress;
 369                     [Description (
 370 karl  1.1.2.1         "The cluster types. This specifies whether the cluster is for "
 371                       "failover (value=2), performance (3), etc. The values which "
 372                       "can be specified are not mutually exclusive. Thus, Types is "
 373                       "an array."),
 374 karl  1.1            Values {"Unknown", "Other", "Failover", 
 375 karl  1.1.2.1                "Performance", "Distributed OS", "Node Grouping",
 376                              "SysPlex"}]
 377 karl  1.1        uint16 Types[];
 378                     [Description (
 379 karl  1.1.2.1         "Indicates the maximum number of nodes that may participate in "
 380                       "the Cluster.  If unlimited, enter 0.") ]
 381 karl  1.1        uint32 MaxNumberOfNodes;  
 382                     [Description (
 383 karl  1.1.2.1         "Indicates the state of the Cluster.  The cluster can be "
 384                       "defined to be on-line (value=2), off-line (3), in a degraded "
 385                       "mode of operation (4) or unavailable (5)."),
 386 karl  1.1            Values {"Unknown", "Other", "On-line", "Off-line", 
 387 karl  1.1.2.1                "Degraded", "Unavailable"}]
 388 karl  1.1        uint16 ClusterState;
 389               };
 390               
 391 karl  1.1.2.1 
 392 karl  1.1     // ===================================================================
 393               // ParticipatingCS
 394               // ===================================================================
 395 karl  1.1.2.1    [Association, Description (
 396                    "A Cluster is composed of two or more ComputerSystems, "
 397                    "operating together. A ComputerSystem may participate in "
 398                    "multiple Clusters. \n\n"
 399                    "When first establishing or bringing up a Cluster, only one "
 400                    "ComputerSystem may be defined as participating in it. "
 401                    "Therfore, the cardinality of the association for "
 402                    "the ComputerSystem reference is Min(1). ") ] 
 403               class CIM_ParticipatingCS : CIM_Dependency { 
 404                     [Override ("Antecedent"), Min (1),
 405                      Description ( 
 406                       "The ComputerSystem which participates in the Cluster. ") ] 
 407 karl  1.1        CIM_ComputerSystem REF Antecedent; 
 408 karl  1.1.2.1       [Override ("Dependent"), 
 409                      Description ("The Cluster.") ] 
 410 karl  1.1        CIM_Cluster REF Dependent;
 411                     [Description (
 412 karl  1.1.2.1         "StateOfNode indicates the condition of the participating "
 413                       "ComputerSystem in the Cluster.  For example, one value is "
 414                       "\"Joining\" (2)."),
 415 karl  1.1            Values {"Unknown", "Other", "Joining", "Paused", 
 416 karl  1.1.2.1                "Available", "Unavailable", "Degraded"} ] 
 417 karl  1.1        uint16 StateOfNode;
 418                     [Description (
 419 karl  1.1.2.1         "RoleOfNode indicates whether the Cluster nodes are "
 420                       "peers (value = 2), connected in a master-slave/primary-"
 421                       "secondary relationship (values = 3 for primary, 4 for "
 422                       "secondary), available in a standby configuration (5) or "
 423                       "of some other (1) or unknown (0) relationship. In a "
 424                       "System/390 environment, the nodes are identified as \"Base "
 425 karl  1.1             "Plex\" (value=6) or \"Enhanced Plex\" (value=7)."),
 426                      Values {"Unknown", "Other", "Peer", "Primary", 
 427 karl  1.1.2.1            "Secondary", "Standby", "Base Plex", "Enhanced Plex"}
 428 karl  1.1           ] 
 429                  uint16 RoleOfNode;
 430               };
 431               
 432 karl  1.1.2.1 
 433 karl  1.1     // ===================================================================
 434               // ClusteringService
 435               // ===================================================================
 436                  [Description (
 437 karl  1.1.2.1      "ClusteringService represents the functionality provided by a "
 438                    "Cluster. For example, failover functionality may be modeled as "
 439                    "a Service of a failover Cluster.") ]
 440               class CIM_ClusteringService : CIM_Service {
 441 karl  1.1           [Description ( 
 442 karl  1.1.2.1         "AddNode brings a new ComputerSystem into a Cluster. "
 443                       "The node to be added is specified as a parameter to the "
 444                       "method. The return value should be 0 if the Computer"
 445                       "System is successfully added, 1 if the method is not "
 446                       "supported and any other number if an error occurred. "
 447 karl  1.1             "In a subclass, the set of possible return codes could be "
 448                       "specified, using a ValueMap qualifier on the method. The "
 449                       "strings to which the ValueMap contents are 'translated' "
 450                       "may also be specified in the subclass as a Values array "
 451 karl  1.1.2.1         "qualifier.") ]
 452 karl  1.1        uint32 AddNode ([IN] CIM_ComputerSystem ref CS);
 453                     [Description (
 454 karl  1.1.2.1         "EvictNode removes a ComputerSystem from a Cluster. "
 455                       "The node to be evicted is specified as a parameter to the "
 456                       "method. The return value should be 0 if the ComputerSystem "
 457                       "is successfully evicted, 1 if the method is not supported "
 458                       "and any other number if an error occurred. In a subclass, "
 459 karl  1.1             "the set of possible return codes could be specified, using a "
 460                       "ValueMap qualifier on the method. The strings to which the "
 461                       "ValueMap contents are 'translated' may also be specified in "
 462 karl  1.1.2.1         "the subclass as a Values array qualifier.") ]
 463 karl  1.1        uint32 EvictNode ([IN] CIM_ComputerSystem ref CS);
 464               };
 465               
 466 karl  1.1.2.1 
 467 karl  1.1     // ===================================================================
 468               // ClusteringSAP
 469               // ===================================================================
 470                  [Description (
 471 karl  1.1.2.1      "A representation of the access points of a ClusteringService.") ]
 472               class CIM_ClusteringSAP : CIM_ServiceAccessPoint {
 473 karl  1.1     };
 474               
 475 karl  1.1.2.1 
 476 karl  1.1     // ===================================================================
 477               // ClusterServiceAccessBySAP
 478               // ===================================================================
 479 karl  1.1.2.1    [Association, Description (
 480                    "ClusterServiceAccessBySAP is the relationship between a "
 481                    "ClusteringService and its access points.") ]
 482               class CIM_ClusterServiceAccessBySAP : CIM_ServiceAccessBySAP {
 483 karl  1.1           [Override ("Antecedent"),
 484 karl  1.1.2.1        Description ("The ClusteringService.") ]
 485 karl  1.1        CIM_ClusteringService REF Antecedent;
 486                     [Override ("Dependent"),
 487 karl  1.1.2.1        Description ("An access point for the ClusteringService.") ]
 488 karl  1.1        CIM_ClusteringSAP REF Dependent;
 489               };
 490               
 491 karl  1.1.2.1 
 492 karl  1.1     // ===================================================================
 493               // HostedClusterService
 494               // ===================================================================
 495                  [Association,
 496                   Description (
 497 karl  1.1.2.1      "HostedClusterService defines the hosting Cluster for a "
 498                    "ClusteringService.  Since this relationship is subclassed "
 499                    "from HostedService, it inherits the scoping/naming scheme "
 500                    "defined for Service - where a Service is weak to its "
 501                    "hosting System.  In this case, a ClusteringService must be "
 502                    "weak to its hosting Cluster System.") ]
 503               class CIM_HostedClusterService : CIM_HostedService {
 504 karl  1.1           [Override ("Antecedent"), 
 505 karl  1.1.2.1        Description ("The Cluster.") ]
 506 karl  1.1        CIM_Cluster REF Antecedent;
 507                     [Override ("Dependent"), 
 508 karl  1.1.2.1        Description (
 509                       "The ClusteringService that is hosted on the Cluster.") ]
 510 karl  1.1        CIM_ClusteringService REF Dependent;
 511               };
 512               
 513 karl  1.1.2.1 
 514 karl  1.1     // ===================================================================
 515               // HostedClusterSAP
 516               // ===================================================================
 517 karl  1.1.2.1    [Association, Description (
 518                    "HostedClusterSAP defines the hosting ComputerSystem for a "
 519                    "ClusteringSAP. Since this relationship is subclassed "
 520                    "from HostedAccessPoint, it inherits the scoping/naming scheme "
 521                    "defined for AccessPoint - where an AccessPoint is weak to "
 522                    "its hosting System.  In this case, a ClusteringSAP must be "
 523                    "weak to its hosting ComputerSystem.") ]
 524               class CIM_HostedClusterSAP : CIM_HostedAccessPoint {
 525 karl  1.1           [Override ("Antecedent"), 
 526 karl  1.1.2.1        Description ("The ComputerSystem.") ]
 527 karl  1.1        CIM_ComputerSystem REF Antecedent;
 528                     [Override ("Dependent"),
 529 karl  1.1.2.1        Description (
 530                       "The ClusteringSAP that is hosted on the ComputerSystem.") ]
 531 karl  1.1        CIM_ClusteringSAP REF Dependent;
 532               };
 533               
 534 karl  1.1.2.1 
 535 karl  1.1     // ===================================================================
 536               // BootService
 537               // ===================================================================
 538                  [Description (
 539 karl  1.1.2.1      "BootService represents the functionality provided by a Device, "
 540                    "software or via a Network to load an Operating System on a "
 541                    "UnitaryComputerSystem.") ]
 542               class CIM_BootService : CIM_Service {
 543 karl  1.1     };
 544               
 545 karl  1.1.2.1 
 546 karl  1.1     // ===================================================================
 547               // BootSAP
 548               // ===================================================================
 549                  [Description (
 550 karl  1.1.2.1        "A representation of the access points of a BootService.") ]
 551               class CIM_BootSAP : CIM_ServiceAccessPoint {
 552 karl  1.1     };
 553               
 554 karl  1.1.2.1 
 555 karl  1.1     // ===================================================================
 556               // BootServiceAccessBySAP
 557               // ===================================================================
 558 karl  1.1.2.1    [Association, Description (
 559                    "BootServiceAccessBySAP is the relationship between a Boot"
 560                    "Service and its access points.") ]
 561               class CIM_BootServiceAccessBySAP : CIM_ServiceAccessBySAP {
 562 karl  1.1           [Override ("Antecedent"), 
 563 karl  1.1.2.1        Description ("The BootService.") ]
 564 karl  1.1        CIM_BootService REF Antecedent;
 565                     [Override ("Dependent"),
 566 karl  1.1.2.1        Description ("An access point for the BootService.") ]
 567 karl  1.1        CIM_BootSAP REF Dependent;
 568               };
 569               
 570 karl  1.1.2.1 
 571 karl  1.1     // ===================================================================
 572               // HostedBootService
 573               // ===================================================================
 574 karl  1.1.2.1    [Association, Description (
 575                    "HostedBootService defines the hosting System for a Boot"
 576                    "Service. Since this relationship is subclassed from Hosted"
 577                    "Service, it inherits the scoping/naming scheme defined for "
 578                    "Service - where a Service is weak to its hosting System.") ]
 579               class CIM_HostedBootService : CIM_HostedService {
 580 karl  1.1           [Override ("Dependent"), 
 581 karl  1.1.2.1        Description ("The BootService hosted on the System.") ]
 582 karl  1.1        CIM_BootService REF Dependent;
 583               };
 584               
 585 karl  1.1.2.1 
 586 karl  1.1     // ===================================================================
 587               // HostedBootSAP
 588               // ===================================================================
 589 karl  1.1.2.1    [Association, Description (
 590                    "HostedBootSAP defines the hosting UnitaryComputerSystem for "
 591                    "a BootSAP. Since this relationship is subclassed from "
 592                    "HostedAccessPoint, it inherits the scoping/naming scheme "
 593                    "defined for AccessPoint - where an AccessPoint is weak to its "
 594                    "hosting System.  In this case, a BootSAP must be "
 595                    "weak to its hosting UnitaryComputerSystem.") ]
 596               class CIM_HostedBootSAP : CIM_HostedAccessPoint {
 597 karl  1.1           [Override ("Antecedent"), 
 598 karl  1.1.2.1        Description ("The UnitaryComputerSystem.") ]
 599 karl  1.1        CIM_UnitaryComputerSystem REF Antecedent;
 600                     [Override ("Dependent"), 
 601 karl  1.1.2.1        Description ("The BootSAP hosted on the UnitaryComputer"
 602                       "System.") ]
 603 karl  1.1        CIM_BootSAP REF Dependent;
 604               };
 605               
 606 karl  1.1.2.1 
 607 karl  1.1     // ===================================================================
 608               // StorageLibrary
 609               // ===================================================================
 610                  [Description (
 611 karl  1.1.2.1      "A StorageLibrary is a collection of ManagedSystemElements "
 612                    "that operate together to provide cartridge library "
 613                    "capabilities. This object serves as an aggregation point to "
 614                    "group the following elements: MediaTransferDevices, a Label"
 615                    "Reader, a library Door, MediaAccessDevices, and other "
 616                    "Library components.") ]
 617               class CIM_StorageLibrary : CIM_System {
 618 karl  1.1           [Description (
 619                       "Capabilities of the StorageLibrary. For example, it can be "
 620                       "indicated that the Library can perform automatic cleaning of "
 621                       "the MediaAccessDevices contained in it (value=1) or that the "
 622                       "Library provides physical door access for an operator "
 623                       "(value=2)."),
 624                      Values {"Unknown", "Other", "Automatic Cleaning", 
 625 karl  1.1.2.1                "Manual Operation", "Front Panel Lockable"}]
 626 karl  1.1        uint16 Capabilities[];
 627                     [Description (
 628                       "Boolean set to TRUE if there are more PhysicalMedia in a "
 629                       "Library than there are StorageMediaLocations to contain them. "
 630                       "For instance, if all MediaAccessDevices have a Media loaded "
 631                       "in them, and all StorageMediaLocations are loaded by an "
 632 karl  1.1.2.1         "operator, then an Overfilled condition exists.") ]
 633 karl  1.1        boolean Overfilled;
 634                     [Description (
 635                       "Boolean set to TRUE if the Library can not currently report "
 636                       "the correct state of each PhysicalMedia within its proper "
 637 karl  1.1.2.1         "StorageMediaLocation.") ]
 638 karl  1.1        boolean AuditNeeded;
 639                     [Description (
 640                       "Boolean set to TRUE if an audit of the location of some or "
 641                       "all of the Library's PhysicalMedia is currently being "
 642                       "performed. That an individual Changer is currently doing an "
 643                       "audit is indicated by a similar AuditInProgress boolean "
 644 karl  1.1.2.1         "property on the Changer object.") ]
 645 karl  1.1        boolean AuditInProgress;
 646                     [Description (
 647                       "Maximum time in seconds that it takes for the Storage"
 648                       "Library to perform a complete audit of each StorageMedia"
 649                       "Location, to determine the absence or presence of a Physical"
 650                       "Media. If automated support is not provided, then this "
 651                       "property's value is undefined."),
 652 karl  1.1.2.1        Units ("Seconds") ]
 653 karl  1.1        uint64 MaxAuditTime;
 654                     [Description (
 655                       "Boolean set to TRUE if the Library includes a robotics "
 656                       "mechanism that can be controlled by a ComputerSystem, to "
 657                       "automatically load and unload PhysicalMedia to/from "
 658                       "MediaAccessDevices and StorageMediaLocations. The "
 659                       "property is set to FALSE if the Library represents a "
 660                       "repository of Media that are inaccessible to a MediaAccess"
 661                       "Device without human intervention. An example of a non-"
 662                       "automated Library is a 'shelf' or 'vault' where Physical"
 663 karl  1.1.2.1         "Media are kept for extended periods of time.") ]
 664 karl  1.1        boolean Automated;
 665 karl  1.1.2.1       [Description (
 666                       "Boolean indicating whether the Library's robotics are "
 667                       "currently active/enabled. If TRUE, then the Library may not "
 668                       "be safe for a human to enter.") ] 
 669 karl  1.1         boolean RoboticsEnabled;
 670                     [Description (
 671                       "Requests that the Library robotics be enabled for "
 672                       "automated operation (input parameter, Enabled, set to TRUE), "
 673                       "or disabled for manual operation (input parameter set to "
 674                       "FALSE). The return value should be 0 if the request was "
 675                       "successfully executed, 1 if the request is not supported "
 676                       "and some other value if an error occurred. In a subclass, "
 677                       "the set of possible return codes could be specified, using "
 678                       "a ValueMap qualifier on the method. The strings to which "
 679                       "the ValueMap contents are 'translated' may also be specified "
 680 karl  1.1.2.1         "in the subclass as a Values array qualifier.") ]
 681 karl  1.1        uint32 EnableRobotics([IN] boolean Enable);
 682               };
 683               
 684 karl  1.1.2.1 
 685 karl  1.1     // ===================================================================
 686               // OperatingSystem
 687               // ===================================================================
 688                  [Description (
 689 karl  1.1.2.1      "An OperatingSystem is software/firmware that makes a "
 690                    "ComputerSystem's hardware usable, and implements and/or "
 691                    "manages the resources, file systems, processes, user "
 692                    "interfaces, services, ... available on the ComputerSystem.") ] 
 693               class CIM_OperatingSystem : CIM_LogicalElement {
 694 karl  1.1           [Propagated ("CIM_ComputerSystem.CreationClassName"),
 695 karl  1.1.2.1        Key, MaxLen (256),
 696                      Description ("The scoping ComputerSystem's CreationClassName.") ]
 697 karl  1.1        string CSCreationClassName;
 698                     [Propagated ("CIM_ComputerSystem.Name"), 
 699 karl  1.1.2.1        Key, MaxLen (256),
 700                      Description ("The scoping ComputerSystem's Name.") ]
 701 karl  1.1        string CSName;
 702 karl  1.1.2.1       [Key, MaxLen (256),
 703 karl  1.1            Description (
 704 karl  1.1.2.1         "CreationClassName indicates the name of the class or the "
 705                       "subclass used in the creation of an instance. When used "
 706                       "with the other key properties of this class, this property "
 707                       "allows all instances of this class and its subclasses to "
 708                       "be uniquely identified.") ]
 709 karl  1.1        string CreationClassName;
 710                     [Override ("Name"),
 711 karl  1.1.2.1        Key, MaxLen (256),
 712 karl  1.1            Description (
 713 karl  1.1.2.1         "The inherited Name serves as key of an OperatingSystem "
 714                       "instance within a ComputerSystem."),
 715                      MappingStrings {"MIF.DMTF|Operating System|001.2"}]
 716 karl  1.1        string Name;
 717                     [Description (
 718 karl  1.1.2.1         "A integer indicating the type of OperatingSystem."),
 719 karl  1.1            Values {"Unknown", "Other", "MACOS", "ATTUNIX", "DGUX",
 720 karl  1.1.2.1                "DECNT", "Digital Unix", "OpenVMS", "HPUX", "AIX",
 721                              "MVS", "OS400", "OS/2", "JavaVM", "MSDOS", "WIN3x",
 722                              "WIN95", "WIN98", "WINNT", "WINCE", "NCR3000",
 723                              "NetWare", "OSF", "DC/OS", "Reliant UNIX",
 724                              "SCO UnixWare", "SCO OpenServer", "Sequent",
 725                              "IRIX", "Solaris", "SunOS", "U6000", "ASERIES",
 726                              "TandemNSK", "TandemNT", "BS2000", "LINUX",
 727                              "Lynx", "XENIX", "VM/ESA", "Interactive UNIX",
 728                              "BSDUNIX", "FreeBSD", "NetBSD", "GNU Hurd", "OS9",
 729                              "MACH Kernel", "Inferno", "QNX", "EPOC", "IxWorks",
 730                              "VxWorks", "MiNT", "BeOS", "HP MPE", "NextStep",
 731                              "PalmPilot", "Rhapsody", "Windows 2000", "Dedicated",
 732                              "OS/390", "VSE", "TPF","Windows (R) Me"},
 733                      ModelCorrespondence {
 734                       "CIM_OperatingSystem.OtherTypeDescription"}]
 735 karl  1.1        uint16 OSType;
 736                     [Description (
 737 karl  1.1.2.1         "A string describing the manufacturer and OperatingSystem "
 738                       "type - used when the OperatingSystem property, OSType, is "
 739                       "set to 1 or 59 (\"Other\" or \"Dedicated\"). The format of "
 740 karl  1.1             "the string inserted in OtherTypeDescription should be "
 741                       "similar in format to the Values strings defined for OSType. "
 742                       "OtherTypeDescription should be set to NULL when OSType is "
 743                       "any value other than 1 or 59."),
 744 karl  1.1.2.1        MaxLen (64),
 745                      ModelCorrespondence {"CIM_OperatingSystem.OSType"}]
 746 karl  1.1        string OtherTypeDescription;
 747                     [Description(
 748 karl  1.1.2.1         "A string describing the Operating System's version "
 749                       "number. The format of the version information is as follows: "
 750                       "<Major Number>.<Minor Number>.<Revision> or "
 751                       "<Major Number>.<Minor Number>.<Revision Letter>."),
 752                      MappingStrings {"MIF.DMTF|Operating System|001.3"}]
 753 karl  1.1        string Version;
 754                     [Description ("Time when the OperatingSystem was last booted."),
 755 karl  1.1.2.1        MappingStrings {"MIF.DMTF|General Information|001.5"}]
 756 karl  1.1        datetime LastBootUpTime; 
 757                     [Description (
 758 karl  1.1.2.1         "OperatingSystem's notion of the local date and time of day."),
 759 karl  1.1            MappingStrings {"MIB.IETF|HOST-RESOURCES-MIB.hrSystemDate",
 760 karl  1.1.2.1         "MIF.DMTF|General Information|001.6"}]
 761 karl  1.1        datetime LocalDateTime;
 762                     [Description (
 763 karl  1.1.2.1         "CurrentTimeZone indicates the number of minutes the "
 764                       "OperatingSystem is offset from Greenwich Mean Time. "
 765                       "Either the number is positive, negative or zero."),
 766                      Units("Minutes") ]
 767 karl  1.1        sint16 CurrentTimeZone;
 768                     [Description (
 769 karl  1.1.2.1        "Number of user licenses for the OperatingSystem. "
 770                      "If unlimited, enter 0.") ]
 771 karl  1.1        uint32 NumberOfLicensedUsers;
 772                     [Description (
 773 karl  1.1.2.1         "Number of user sessions for which the OperatingSystem is "
 774                       "currently storing state information."), Gauge,
 775 karl  1.1            MappingStrings {"MIF.DMTF|Host System|001.4", 
 776 karl  1.1.2.1         "MIB.IETF|HOST-RESOURCES-MIB.hrSystemNumUsers"}]
 777 karl  1.1        uint32 NumberOfUsers;
 778                     [Description (
 779 karl  1.1.2.1         "Number of process contexts currently loaded or running on "
 780                       "the OperatingSystem."), Gauge, 
 781 karl  1.1            MappingStrings {"MIF.DMTF|Host System|001.5", 
 782 karl  1.1.2.1         "MIB.IETF|HOST-RESOURCES-MIB.hrSystemProcesses"}]
 783 karl  1.1        uint32 NumberOfProcesses;
 784                     [Description (
 785 karl  1.1.2.1         "Maximum number of process contexts the OperatingSystem can "
 786                       "support. If there is no fixed maximum, the value should be 0."
 787                       "On systems that have a fixed maximum, this object can help "
 788                       "diagnose failures that occur when the maximum is reached."), 
 789 karl  1.1            MappingStrings {"MIF.DMTF|Host System|001.6", 
 790 karl  1.1.2.1         "MIB.IETF|HOST-RESOURCES-MIB.hrSystemMaxProcesses"}]
 791 karl  1.1        uint32 MaxNumberOfProcesses;
 792                     [Description (
 793 karl  1.1.2.1         "Total swap space in Kbytes. This value may be "
 794                       "NULL (unspecified) if swap space is not distinguished from "
 795                       "page files.  However, some Operating Systems distinguish "
 796                       "these concepts.  For example, in UNIX, whole processes can "
 797                       "be 'swapped out' when the free page list falls and remains "
 798                       "below a specified amount."),
 799                      Units("KiloBytes") ]
 800 karl  1.1        uint64 TotalSwapSpaceSize;
 801                     [Description (
 802 karl  1.1.2.1         "Number of Kbytes of virtual memory. For example, "
 803                       "this may be calculated by adding the amount of total RAM to "
 804                       "the amount of paging space (ie, adding the amount of "
 805                       "memory in/aggregated by the ComputerSystem to the property, "
 806                       "SizeStoredInPagingFiles."),
 807                      Units("KiloBytes"),
 808                      MappingStrings {"MIF.DMTF|System Memory Settings|001.5"}]
 809 karl  1.1        uint64 TotalVirtualMemorySize;
 810                     [Gauge, Description (
 811 karl  1.1.2.1         "Number of Kbytes of virtual memory currently unused and "
 812                       "available. For example, this may be calculated by adding "
 813                       "the amount of free RAM to the amount of free paging space "
 814                       "(ie, adding the properties, FreePhysicalMemory and FreeSpace"
 815                       "InPagingFiles)."),
 816                      Units("KiloBytes"), 
 817                      MappingStrings {"MIF.DMTF|System Memory Settings|001.6"}]
 818 karl  1.1        uint64 FreeVirtualMemory;
 819                     [Gauge, Description (
 820 karl  1.1.2.1         "Number of Kbytes of physical memory currently unused and "
 821                       "available."),
 822                      Units("KiloBytes"),
 823                      MappingStrings {"MIF.DMTF|System Memory Settings|001.2"}]
 824 karl  1.1        uint64 FreePhysicalMemory;
 825                     [Description (
 826                       "The total amount of physical memory (in Kbytes) available "
 827                       "to the OperatingSystem. This value does not necessarily "
 828                       "indicate the true amount of physical memory, but what is "
 829                       "reported to the OperatingSystem as available to it."),
 830 karl  1.1.2.1        Units("KiloBytes") ]
 831 karl  1.1        uint64 TotalVisibleMemorySize;
 832                     [Description (
 833 karl  1.1.2.1         "The total number of KBytes that can be stored in the "
 834                       "OperatingSystem's paging files. 0 indicates that there "
 835                       "are no paging files."),
 836 karl  1.1            Units("KiloBytes"),
 837 karl  1.1.2.1        MappingStrings {"MIF.DMTF|System Memory Settings|001.3"}]
 838 karl  1.1        uint64 SizeStoredInPagingFiles;
 839                     [Gauge, Description (
 840 karl  1.1.2.1         "The total number of KBytes that can be mapped into the "
 841                       "OperatingSystem's paging files without causing any other "
 842                       "pages to be swapped out. 0 indicates that there are no "
 843                       "paging files."),
 844 karl  1.1            Units("KiloBytes"),
 845 karl  1.1.2.1        MappingStrings {"MIF.DMTF|System Memory Settings|001.4"}]
 846 karl  1.1        uint64 FreeSpaceInPagingFiles;
 847 karl  1.1.2.1       [Description (
 848                       "Maximum number of Kbytes of memory that can be allocated "
 849                       "to a Process. For Operating Systems with no virtual memory, "
 850                       "this value is typically equal to the total amount of "
 851                       "physical Memory minus memory used by the BIOS and OS. For "
 852                       "some Operating Systems, this value may be infinity - in "
 853                       "which case, 0 should be entered. In other cases, this value "
 854                       "could be a constant - for example, 2G or 4G."),
 855                      Units("KiloBytes") ]
 856 karl  1.1        uint64 MaxProcessMemorySize;
 857                     [Description (
 858 karl  1.1.2.1         "Boolean indicating whether the OperatingSystem is "
 859                       "distributed across several ComputerSystem nodes. If so, "
 860                       "these nodes should be grouped as a Cluster.") ]
 861 karl  1.1        boolean Distributed;
 862                     [Description (
 863 karl  1.1.2.1         "Requests a reboot of the OperatingSystem. The return value "
 864                       "should be 0 if the request was successfully executed, "
 865                       "1 if the request is not supported and some other value "
 866                       "if an error occurred. In a subclass, the set of possible "
 867 karl  1.1             "return codes could be specified, using a ValueMap qualifier "
 868                       "on the method. The strings to which the ValueMap contents "
 869                       "are 'translated' may also be specified in the subclass as "
 870 karl  1.1.2.1         "a Values array qualifier.") ]
 871 karl  1.1        uint32 Reboot();
 872                     [Description (
 873 karl  1.1.2.1         "Requests a shutdown of the OperatingSystem. The return "
 874                       "value should be 0 if the request was successfully executed, "
 875                       "1 if the request is not supported and some other value if "
 876                       "an error occurred. It is up to the implementation or subclass "
 877                       "of OperatingSystem to establish dependencies between "
 878                       "the Shutdown and Reboot methods, and for example, to provide "
 879                       "more sophisticated capabilities such as scheduled shutdown/"
 880                       "reboot, etc. In a subclass, the set of possible return "
 881 karl  1.1             "codes could be specified, using a ValueMap qualifier on "
 882                       "the method. The strings to which the ValueMap contents are "
 883                       "'translated' may also be specified in the subclass as a "
 884 karl  1.1.2.1         "Values array qualifier.") ]
 885 karl  1.1        uint32 Shutdown();
 886               };
 887               
 888 karl  1.1.2.1 
 889 karl  1.1     // ===================================================================
 890               // InstalledOS
 891               // ===================================================================
 892 karl  1.1.2.1    [Association, Aggregation, Description (
 893                    "A link between the ComputerSystem and the OperatingSystem(s) "
 894                    "installed or loaded on it. An OperatingSystem is 'installed' "
 895                    "on a ComputerSystem, when placed on one of its StorageExtents "
 896                    "- for example, copied to a disk drive or downloaded to "
 897                    "Memory. Using this definition, an OperatingSystem is "
 898                    "'installed' on a NetPC when downloaded via the network.") ]
 899               class CIM_InstalledOS : CIM_SystemComponent {
 900                     [Override ("GroupComponent"), Aggregate, Min(1), Max (1),
 901                      Description ("The ComputerSystem.") ]
 902 karl  1.1        CIM_ComputerSystem REF GroupComponent;
 903 karl  1.1.2.1       [Override ("PartComponent"), Weak,
 904 karl  1.1            Description (
 905 karl  1.1.2.1         "The OperatingSystem installed on the ComputerSystem.") ]
 906 karl  1.1        CIM_OperatingSystem REF PartComponent;
 907                     [Description (
 908 karl  1.1.2.1         "Boolean indicating that the OperatingSystem is the default "
 909                       "OS for the ComputerSystem."),
 910                      MappingStrings {"MIF.DMTF|Operating System|001.4"}]
 911 karl  1.1        boolean PrimaryOS;
 912               };
 913               
 914 karl  1.1.2.1 
 915 karl  1.1     // ===================================================================
 916               // RunningOS
 917               // ===================================================================
 918 karl  1.1.2.1    [Association, Description (
 919                    "RunningOS indicates the currently executing OperatingSystem. "
 920                    "At most one OperatingSystem can execute at any time on a "
 921                    "ComputerSystem. 'At most one' is specified, since the Computer"
 922                    "System may not be currently booted, or its OperatingSystem "
 923                    "may be unknown.") ]
 924               class CIM_RunningOS : CIM_Dependency {
 925                     [Override ("Antecedent"), Max (1),
 926 karl  1.1            Description (
 927 karl  1.1.2.1         "The OperatingSystem currently running on the "
 928                       "ComputerSystem.") ]
 929 karl  1.1        CIM_OperatingSystem REF Antecedent;
 930 karl  1.1.2.1       [Override ("Dependent"), Max (1),
 931                      Description ("The ComputerSystem.") ]
 932 karl  1.1        CIM_ComputerSystem REF Dependent;
 933               };
 934               
 935 karl  1.1.2.1 
 936 karl  1.1     // ==================================================================
 937               // OperatingSystemSoftwareFeature
 938               // ==================================================================
 939 karl  1.1.2.1    [Association, Aggregation, Description (
 940                    "Indicates the SoftwareFeatures that make up the Operating"
 941                    "System. The SoftwareFeatures can be part of different "
 942                    "Products.") ]
 943               class CIM_OperatingSystemSoftwareFeature : CIM_Component {
 944                     [Override ("GroupComponent"), Aggregate,
 945                      Description ("The OperatingSystem.") ]
 946 karl  1.1         CIM_OperatingSystem REF GroupComponent;
 947 karl  1.1.2.1       [Override ("PartComponent"), Description (
 948                       "The SoftwareFeatures that make up the OperatingSystem.") ]
 949 karl  1.1         CIM_SoftwareFeature REF PartComponent;
 950               };
 951               
 952 karl  1.1.2.1 
 953 karl  1.1     // ===================================================================
 954               // FileSystem
 955               // ===================================================================
 956                  [Description (
 957 karl  1.1.2.1      "A file or dataset store local to a ComputerSystem or "
 958                    "remotely mounted from a file server.") ]
 959               class CIM_FileSystem : CIM_LogicalElement {
 960 karl  1.1           [Propagated ("CIM_ComputerSystem.CreationClassName"),
 961 karl  1.1.2.1        Key, MaxLen (256), Description (
 962                       "The scoping ComputerSystem's CreationClassName.") ]
 963 karl  1.1        string CSCreationClassName;
 964 karl  1.1.2.1       [Propagated ("CIM_ComputerSystem.Name"), Key, MaxLen (256),
 965                      Description ("The scoping ComputerSystem's Name.") ]
 966 karl  1.1        string CSName;
 967 karl  1.1.2.1       [Key, MaxLen (256), Description (
 968                       "CreationClassName indicates the name of the class or the "
 969                       "subclass used in the creation of an instance. When used "
 970                       "with the other key properties of this class, this property "
 971                       "allows all instances of this class and its subclasses to "
 972                       "be uniquely identified.") ]
 973 karl  1.1        string CreationClassName;
 974 karl  1.1.2.1       [Override ("Name"), Key, MaxLen (256), Description (
 975                       "The inherited Name serves as key of a FileSystem instance "
 976                       "within a ComputerSystem.") ]
 977 karl  1.1        string Name;
 978                     [Description (
 979 karl  1.1.2.1         "Path name or other information defining the root of the "
 980                       "FileSystem."),
 981                      MappingStrings {
 982                       "MIB.IETF|HOST-RESOURCES-MIB.hrFSMountPoint", 
 983                       "MIF.DMTF|Host File System|001.2"}]
 984 karl  1.1        string Root;
 985                     [Description (
 986 karl  1.1.2.1         "FileSystems can read/write data in blocks which are defined "
 987                       "independently of the underlying StorageExtents. This property "
 988                       "captures the FileSystem's block size for data storage and "
 989                       "retrieval."),
 990                      Units("Bytes") ]
 991 karl  1.1        uint64 BlockSize;
 992                     [Description (
 993 karl  1.1.2.1         "The FileSystemSize property stores the total size of the File"
 994                       "System in bytes. If unknown, enter 0."),
 995 karl  1.1            Units("Bytes"), 
 996 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Host File System|001.13"}]
 997 karl  1.1        uint64 FileSystemSize;
 998                     [Gauge, Description (
 999 karl  1.1.2.1         "AvailableSpace indicates the total amount of free space "
1000                       "for the FileSystem, in bytes. If unknown, enter 0."),
1001 karl  1.1            Units("Bytes"), 
1002                      MappingStrings {"MIF.DMTF|Host File System|001.14", 
1003 karl  1.1.2.1              "MIF.DMTF|Partition|002.4"}]
1004 karl  1.1        uint64 AvailableSpace;
1005                     [Description (
1006 karl  1.1.2.1         "Indicates that the FileSystem is designated as read only."),
1007 karl  1.1            MappingStrings {"MIB.IETF|HOST-RESOURCES-MIB.hrFSAccess", 
1008 karl  1.1.2.1         "MIF.DMTF|Host File System|001.5"}]
1009 karl  1.1        boolean ReadOnly;
1010                     [Description (
1011 karl  1.1.2.1         "A free form string indicating the algorithm or tool used to "
1012                       "encrypt the FileSystem. If it is not possible or not desired "
1013                       "to describe the encryption scheme (perhaps for security "
1014                       "reasons), recommend using the following words: \"Unknown\" to "
1015                       "represent that it is not known whether the FileSystem is "
1016                       "encrypted or not, \"Encrypted\" to represent that the File"
1017                       "System is encrypted but either its encryption scheme is not "
1018                       "known or not disclosed, and \"Not Encrypted\" to represent "
1019                       "that the FileSystem is not encrypted."),
1020                      MappingStrings {"MIF.DMTF|Partition|002.8"}]
1021 karl  1.1        string EncryptionMethod;
1022                     [Description (
1023 karl  1.1.2.1         "A free form string indicating the algorithm or tool used to "
1024                       "compress the FileSystem. If it is not possible or not desired "
1025                       "to describe the compression scheme (perhaps because it is not "
1026                       "known), recommend using the following words: \"Unknown\" to "
1027                       "represent that it is not known whether the FileSystem is "
1028                       "compressed or not, \"Compressed\" to represent that the File"
1029                       "System is compressed but either its compression scheme is not "
1030                       "known or not disclosed, and \"Not Compressed\" to represent "
1031                       "that the FileSystem is not compressed."),
1032                      MappingStrings {"MIF.DMTF|Partition|002.7"}]
1033 karl  1.1        string CompressionMethod;
1034                     [Description (
1035 karl  1.1.2.1         "Indicates that case sensitive file names are supported.") ]
1036 karl  1.1        boolean CaseSensitive;
1037                     [Description (
1038 karl  1.1.2.1         "Indicates that the case of file names are preserved.") ]
1039 karl  1.1        boolean CasePreserved;
1040                     [Description (
1041 karl  1.1.2.1         "Array defining the character sets or encoding supported by "
1042 karl  1.1             "the FileSystem. For example, the values, \"ASCII\" (2) or "
1043                       "\"ISO2022\" (4), may be specified."),
1044                      Values {"Unknown", "Other", "ASCII", "Unicode", 
1045 karl  1.1.2.1                "ISO2022", "ISO8859", "Extended UNIX Code", "UTF-8",
1046                              "UCS-2"}]
1047 karl  1.1        uint16 CodeSet[];
1048                     [Description (
1049 karl  1.1.2.1         "Integer indicating the maximum length of a file name within "
1050                       "the FileSystem. 0 indicates that there is no limit on file "
1051                       "name length.") ]
1052 karl  1.1        uint32 MaxFileNameLength;
1053                     [Description (
1054                       "The minimum file allocation size (an integral number of "
1055                       "blocks), imposed by the FileSystem. (The size of a block is "
1056                       "specified in the BlockSize property for the FileSystem.) "
1057                       "Minimum allocation size is the smallest amount of storage "
1058                       "allocated to a LogicalFile by the FileSystem. This is not a "
1059                       "mandatory minimum allocation for all FileSystems. Under "
1060                       "stress conditions, some FileSystems may allocate storage "
1061 karl  1.1.2.1         "in amounts smaller than the ClusterSize.") ]
1062 karl  1.1        uint32 ClusterSize;
1063                     [Description (
1064                       "String describing the type of FileSystem and therefore, its "
1065                       "conventions. For example, \"NTFS\" or \"S5\" may be listed "
1066                       "as well as any additional information on the FileSystem's "
1067                       "implementation. Since various flavors of FileSystems (like "
1068                       "S5) exist, this property is defined as a string."),
1069                      MappingStrings {"MIF.DMTF|Partition|002.6", 
1070 karl  1.1.2.1              "MIF.DMTF|Host File System|001.4"}]
1071                  string FileSystemType;
1072 karl  1.1     };
1073               
1074 karl  1.1.2.1 
1075 karl  1.1     // ===================================================================
1076               // LocalFileSystem
1077               // ===================================================================
1078                  [Description (
1079 karl  1.1.2.1      "A class derived from FileSystem that represents the file " 
1080                    "store controlled by a ComputerSystem through local means " 
1081                    "(e.g., direct device driver access). In this case, the " 
1082                    "file store is managed directly by the ComputerSystem " 
1083                    "without the need for another computer to act as a " 
1084                    "file server. This definition does not breakdown in the " 
1085                    "case of a Clustered File System. In this scenario, the " 
1086                    "FileSystem is a LocalFileSystem, weak to the Cluster.") ]
1087               class CIM_LocalFileSystem : CIM_FileSystem {
1088 karl  1.1     };
1089               
1090 karl  1.1.2.1 
1091 karl  1.1     // ===================================================================
1092               // RemoteFileSystem
1093               // ===================================================================
1094                  [Description (
1095 karl  1.1.2.1      "A class derived from FileSystem that represents access of the " 
1096                    "FileSystem via a network-related service. In this case, the " 
1097                    "file store is hosted by a computer, acting as a file server. " 
1098                    "For example, the file store for an NFS FileSystem is typically " 
1099                    "NOT on a ComputerSystem's locally controlled media, nor is " 
1100                    "it directly accessed through a device driver. Subclasses of " 
1101                    "RemoteFileSystem contain client-side configuration information " 
1102                    "related to the access of the FileSystem.") ]
1103               class CIM_RemoteFileSystem : CIM_FileSystem {
1104 karl  1.1     };
1105               
1106 karl  1.1.2.1 
1107 karl  1.1     // ===================================================================
1108               // NFS (NetworkFileSystem)
1109               // ===================================================================
1110                  [Description (
1111 karl  1.1.2.1      "A class derived from RemoteFileSystem representing that " 
1112                    "the FileSystem is mounted, using the NFS protocol, from " 
1113                    "a ComputerSystem. The properties of the NFS object " 
1114                    "deal with the operational aspects of the mount and represent " 
1115                    "the client-side configuration for NFS access. The " 
1116                    "FileSystemType (inherited from FileSystem) should be set " 
1117                    "to indicate the type of this FileSystem as it appears to " 
1118                    "the client.") ]
1119               class CIM_NFS : CIM_RemoteFileSystem {
1120                     [Description (
1121                       "If set to true: Once the FileSystem is mounted, NFS requests "
1122                       "are retried until the hosting System responds.\n" 
1123                       "If set to false: Once the FileSystem is mounted, an error "
1124                       "is returned if the hosting System does not respond.") ]
1125 karl  1.1        boolean HardMount;
1126                     [Description (
1127 karl  1.1.2.1         "If set to true: Retries are performed in the foreground.\n"
1128                       "If set to false: If the first mount attempt fails, retries "
1129                       "are performed in the background.") ]
1130 karl  1.1        boolean ForegroundMount;
1131                     [Description (
1132 karl  1.1.2.1         "If set to true: Interrupts are permitted for hard mounts.\n"
1133                       "If set to false: Interrupts are ignored for hard mounts.") ]
1134 karl  1.1        boolean Interrupt;
1135 karl  1.1.2.1       [Description ("Maximum number of mount failure retries "
1136                       "allowed.") ]
1137 karl  1.1        uint16 MountFailureRetries;
1138 karl  1.1.2.1       [Description ("Maximum number of NFS retransmissions allowed.") ]
1139 karl  1.1        uint16 RetransmissionAttempts;
1140                     [Description ("NFS timeout in tenths of a second."),
1141 karl  1.1.2.1        Units ("Tenths of Seconds") ]
1142 karl  1.1        uint32 RetransmissionTimeout;
1143                     [Description ("Read buffer size in bytes."),
1144 karl  1.1.2.1        Units("Bytes") ]
1145 karl  1.1        uint64 ReadBufferSize;
1146                     [Description ("Write buffer size in bytes."),
1147 karl  1.1.2.1        Units("Bytes") ]
1148 karl  1.1        uint64 WriteBufferSize;
1149                     [Description (
1150 karl  1.1.2.1         "The remote ComputerSystem's (ie, the NFS File "
1151                       "'Server's) UDP port number.") ]
1152 karl  1.1        uint32 ServerCommunicationPort;
1153                     [Description (
1154 karl  1.1.2.1         "If set to true: Control attribute caching is enabled.\n"
1155                       "If set to false: Control attribute caching is disabled.") ]
1156 karl  1.1        boolean AttributeCaching;
1157                     [Description (
1158 karl  1.1.2.1         "Minimum number of seconds that cached attributes are held "
1159                       "after file modification."),
1160                      Units("Seconds") ]
1161 karl  1.1        uint16 AttributeCachingForRegularFilesMin;
1162                     [Description (
1163 karl  1.1.2.1         "Maximum number of seconds that cached attributes are held "
1164                       "after file modification."),
1165                      Units("Seconds") ]
1166 karl  1.1        uint16 AttributeCachingForRegularFilesMax;
1167                     [Description (
1168 karl  1.1.2.1         "Minimum number of seconds that cached attributes are held "
1169                       "after directory update."),
1170                      Units("Seconds") ]
1171 karl  1.1        uint16 AttributeCachingForDirectoriesMin;
1172                     [Description (
1173 karl  1.1.2.1         "Maximum number of seconds that cached attributes are held "
1174                       "after directory update."),
1175                      Units("Seconds") ]
1176 karl  1.1        uint16 AttributeCachingForDirectoriesMax;
1177               };
1178               
1179 karl  1.1.2.1 
1180 karl  1.1     // ===================================================================
1181               // LogicalFile
1182               // ===================================================================
1183                  [Description (
1184 karl  1.1.2.1      "A LogicalFile is a named collection of data or executable "
1185                    "code, or represents a LogicalDevice or Directory.  It is "
1186                    "located within the context of a FileSystem, on a Storage"
1187                    "Extent.") ]
1188               class CIM_LogicalFile : CIM_LogicalElement {
1189 karl  1.1           [Propagated ("CIM_FileSystem.CSCreationClassName"),
1190 karl  1.1.2.1        Key, MaxLen (256),
1191                      Description ("The scoping ComputerSystem's CreationClassName.") ]
1192 karl  1.1        string CSCreationClassName;
1193                     [Propagated ("CIM_FileSystem.CSName"),
1194 karl  1.1.2.1        Key, MaxLen (256),
1195                      Description ("The scoping ComputerSystem's Name.") ]
1196 karl  1.1        string CSName;
1197                     [Propagated ("CIM_FileSystem.CreationClassName"), 
1198 karl  1.1.2.1        Key, MaxLen (256),
1199                      Description ("The scoping FileSystem's CreationClassName.") ]
1200 karl  1.1        string FSCreationClassName;
1201                     [Propagated ("CIM_FileSystem.Name"),
1202 karl  1.1.2.1        Key, MaxLen (256),
1203                      Description ("The scoping FileSystem's Name.") ]
1204 karl  1.1        string FSName;
1205 karl  1.1.2.1       [Key, MaxLen (256),
1206 karl  1.1            Description (
1207 karl  1.1.2.1         "CreationClassName indicates the name of the class or the "
1208                       "subclass used in the creation of an instance. When used "
1209                       "with the other key properties of this class, this property "
1210                       "allows all instances of this class and its subclasses to "
1211                       "be uniquely identified.") ]
1212                  string CreationClassName;    
1213                     [Override ("Name"), Key, MaxLen (1024),
1214 karl  1.1            Description (
1215                       "The inherited Name serves as part of the key of a LogicalFile "
1216                       "instance within a FileSystem. A unique identifier (such as a "
1217                       "full path name) is required as a Name value.  Since Files are "
1218                       "weak to their FileSystem (and not to a Directory which would "
1219                       "provide a more granular naming algorithm), care must be "
1220                       "taken to make LogicalFile's Name unique for a given Creation"
1221                       "ClassName and FileSystem. A full path name is one way "
1222 karl  1.1.2.1         "to do this.") ]
1223 karl  1.1        string Name;
1224                     [Gauge, Description ("Size of the File in bytes."),
1225 karl  1.1.2.1        Units ("Bytes") ]
1226 karl  1.1        uint64 FileSize;
1227 karl  1.1.2.1       [Description ("File's creation date.") ] 
1228 karl  1.1        datetime CreationDate;
1229 karl  1.1.2.1       [Description ("Time that the File was last modified.") ] 
1230 karl  1.1        datetime LastModified;
1231 karl  1.1.2.1       [Description ("Time that the File was last accessed.") ] 
1232 karl  1.1        datetime LastAccessed;
1233 karl  1.1.2.1       [Description ("Boolean indicating that the File can be read.") ] 
1234 karl  1.1        boolean Readable;
1235                     [Description (
1236 karl  1.1.2.1         "Boolean indicating that the File can be written.") ]
1237 karl  1.1        boolean Writeable;
1238                     [Description (
1239 karl  1.1.2.1         "A free form string indicating the algorithm or tool used to "
1240                       "compress the LogicalFile. If it is not possible or not "
1241                       "desired to describe the compression scheme (perhaps because "
1242                       "it is not known), recommend using the following words: "
1243                       "\"Unknown\" to represent that it is not known whether the "
1244                       "LogicalFile is compressed or not, \"Compressed\" to "
1245                       "represent that the File is compressed but either its "
1246                       "compression scheme is not known or not disclosed, and \"Not "
1247                       "Compressed\" to represent that the LogicalFile is not "
1248                       "compressed.") ] 
1249 karl  1.1        string CompressionMethod;
1250                     [Description (
1251 karl  1.1.2.1         "A free form string indicating the algorithm or tool used to "
1252                       "encrypt the LogicalFile. If it is not possible or not desired "
1253                       "to describe the encryption scheme (perhaps for security "
1254                       "reasons), recommend using the following words: \"Unknown\" to "
1255                       "represent that it is not known whether the LogicalFile is "
1256                       "encrypted or not, \"Encrypted\" to represent that the File "
1257                       "is encrypted but either its encryption scheme is not known "
1258                       "or not disclosed, and \"Not Encrypted\" to represent "
1259                       "that the LogicalFile is not encrypted.") ] 
1260 karl  1.1        string EncryptionMethod;
1261 karl  1.1.2.1       [Counter, Description (
1262                       "Integer indicating the number of 'file opens' that are "
1263                       "currently active against the File.") ]
1264 karl  1.1        uint64 InUseCount;
1265               };
1266               
1267 karl  1.1.2.1 
1268 karl  1.1     // ===================================================================
1269               // DataFile
1270               // ===================================================================
1271                  [Description (
1272 karl  1.1.2.1      "DataFile is a type of LogicalFile that is a named collection "
1273                    "of data or executable code.") ]
1274               class CIM_DataFile : CIM_LogicalFile {
1275 karl  1.1     };
1276               
1277 karl  1.1.2.1 
1278 karl  1.1     // ===================================================================
1279               // Directory
1280               // ===================================================================
1281                  [Description (
1282 karl  1.1.2.1      "Directory is a type of File that logically groups Files "
1283                    "'contained' in it, and provides path information for the "
1284                    "grouped Files.") ]
1285               class CIM_Directory : CIM_LogicalFile {
1286 karl  1.1     };
1287               
1288 karl  1.1.2.1 
1289 karl  1.1     // ===================================================================
1290               // DeviceFile
1291               // ===================================================================
1292                  [Description (
1293 karl  1.1.2.1      "DeviceFile is a special type of LogicalFile that represents "
1294                    "a Device. This convention is useful for some operating systems "
1295                    "that manage devices using a byte stream I/O model. The Logical"
1296                    "Device that is associated with this file is specified using "
1297                    "the DeviceAccessedByFile relationship.") ]
1298               class CIM_DeviceFile : CIM_LogicalFile {
1299 karl  1.1     };
1300               
1301 karl  1.1.2.1 
1302 karl  1.1     // ===================================================================
1303               // DeviceAccessedByFile
1304               // ===================================================================
1305 karl  1.1.2.1    [Association, Description (
1306                    "Specifies the LogicalDevice that is associated with, and "
1307                    "accessed using the referenced DeviceFile.") ]
1308               class CIM_DeviceAccessedByFile : CIM_Dependency {   
1309 karl  1.1           [Override ("Antecedent"),
1310 karl  1.1.2.1        Description ("The DeviceFile.") ]
1311 karl  1.1        CIM_DeviceFile REF Antecedent;
1312 karl  1.1.2.1       [Override ("Dependent"), Max (1), 
1313 karl  1.1            Description (
1314 karl  1.1.2.1         "The Device that is accessed using the DeviceFile.") ]
1315 karl  1.1        CIM_LogicalDevice REF Dependent;
1316               };
1317               
1318 karl  1.1.2.1 
1319 karl  1.1     // ===================================================================
1320               // DirectoryContainsFile
1321               // ===================================================================
1322 karl  1.1.2.1    [Association, Aggregation,  Description (
1323                    "Specifies the hierarchical arrangement of LogicalFiles in a "
1324                    "Directory.") ]
1325               class CIM_DirectoryContainsFile : CIM_Component {   
1326                     [Override ("GroupComponent"), Aggregate, Max (1),
1327                      Description ("The Directory.") ]
1328 karl  1.1        CIM_Directory REF GroupComponent;
1329                     [Override ("PartComponent"),
1330 karl  1.1.2.1        Description ("The LogicalFile 'contained within' the Directory.") ]
1331 karl  1.1        CIM_LogicalFile REF PartComponent;
1332               };
1333               
1334 karl  1.1.2.1 
1335 karl  1.1     // ===================================================================
1336               // Mount
1337               // ===================================================================
1338 karl  1.1.2.1    [Association,  Description ( 
1339                    "An association between a FileSystem and a Directory "
1340                    "which indicates that the Directory is being attached to "
1341                    "the FileSystem. The semantics of this relationship require "
1342                    "that the mounted Directory be contained by a FileSystem "
1343                    "(via the FileStorage association) that is different from "
1344                    "the FileSystem referenced as the Dependent. The "
1345                    "Directory's containing FileSystem could be either " 
1346                    "local or remote. For example, a LocalFileSystem on a Solaris " 
1347                    "ComputerSystem can mount a Directory from the FileSystem "
1348                    "accessed via the machine's CDROM drive, i.e., another LocalFile"
1349                    "System. On the other hand, in a 'remote' case, the Directory "
1350                    "is first exported by its FileSystem, which is hosted on another "
1351                    "ComputerSystem acting (for example) as a file server. In order to "
1352                    "distinguish these two types of Mount, it is recommended that "
1353                    "a CIM_Export association always be defined for the remotely "
1354                    "accessed/mounted Directories.") ]
1355               class CIM_Mount : CIM_Dependency { 
1356                     [Override ("Antecedent"), Max (1), 
1357                      Description ("The Directory mounted.") ]
1358                   CIM_Directory REF Antecedent; 
1359 karl  1.1.2.1       [Override ("Dependent"), 
1360                      Description ("The FileSystem the Directory is mounted on.") ]
1361                   CIM_FileSystem REF Dependent; 
1362 karl  1.1     };
1363               
1364 karl  1.1.2.1 
1365 karl  1.1     // ===================================================================
1366               // Export
1367               // ===================================================================
1368 karl  1.1.2.1     [Association, Description ( 
1369                     "An association between a LocalFileSystem and its Directories " 
1370                     "indicating that the specified Directories are available for " 
1371                     "mount. When exporting an entire FileSystem, the Directory " 
1372                     "should reference the topmost directory of the FileSystem.") ]
1373               class CIM_Export { 
1374                     [Key, Max (1), Description (
1375                       "The LocalFileSystem.") ]
1376                   CIM_LocalFileSystem REF LocalFS; 
1377                     [Key, Description ("The Directory exported for mount.") ] 
1378                   CIM_Directory REF Directory; 
1379                     [Description ("Name under which the Directory is exported.") ]
1380                   string ExportedDirectoryName; 
1381 karl  1.1     }; 
1382               
1383 karl  1.1.2.1 
1384 karl  1.1     // ===================================================================
1385               // HostedFileSystem
1386               // ===================================================================
1387 karl  1.1.2.1    [Association,  Aggregation,  Description (
1388                    "A link between the ComputerSystem and the FileSystem(s) "
1389                    "hosted on this ComputerSystem.") ]
1390               class CIM_HostedFileSystem : CIM_SystemComponent {
1391                     [Override ("GroupComponent"), Aggregate, Min (1), Max (1),
1392                      Description ("The ComputerSystem.") ]
1393 karl  1.1        CIM_ComputerSystem REF GroupComponent;
1394 karl  1.1.2.1       [Override ("PartComponent"), Weak,
1395                      Description ("The FileSystem owned by the ComputerSystem.") ]
1396 karl  1.1        CIM_FileSystem REF PartComponent;
1397               };
1398               
1399 karl  1.1.2.1 
1400 karl  1.1     // ===================================================================
1401               // BootOSFromFS
1402               // ===================================================================
1403 karl  1.1.2.1    [Association, Description (
1404                    "A link between the OperatingSystem and the FileSystem(s) from "
1405                    "which this OperatingSystem is loaded. The association is many-"
1406                    "to-many since a Distributed OS could depend on several File"
1407                    "Systems in order to correctly and completely load.") ]
1408               class CIM_BootOSFromFS : CIM_Dependency {
1409                     [Override ("Antecedent"), Description (
1410                       "The FileSystem from which the OperatingSystem is loaded.") ]
1411 karl  1.1        CIM_FileSystem REF Antecedent;
1412                     [Override ("Dependent"),
1413 karl  1.1.2.1        Description ("The OperatingSystem.") ]
1414 karl  1.1        CIM_OperatingSystem REF Dependent;
1415               };
1416               
1417 karl  1.1.2.1 
1418 karl  1.1     // ===================================================================
1419               // FileStorage
1420               // ===================================================================
1421 karl  1.1.2.1    [Association, Aggregation, Description (
1422                    "A link between the FileSystem and the LogicalFile(s) addressed "
1423                    "through this FileSystem.") ]
1424               class CIM_FileStorage : CIM_Component {
1425                     [Override ("GroupComponent"), Aggregate, Min (1), Max (1),
1426                      Description ("The FileSystem.") ]
1427 karl  1.1        CIM_FileSystem REF GroupComponent;
1428 karl  1.1.2.1       [Override ("PartComponent"), Weak,
1429 karl  1.1            Description (
1430 karl  1.1.2.1         "The LogicalFile stored in the context of the FileSystem.") ]
1431 karl  1.1        CIM_LogicalFile REF PartComponent;
1432               };
1433               
1434 karl  1.1.2.1 
1435 karl  1.1     // ===================================================================
1436               // Process
1437               // ===================================================================
1438                  [Description (
1439 karl  1.1.2.1      "Each instance of the CIM_Process class represents a single "
1440                    "instance of a running program. A user of the OperatingSystem "
1441                    "will typically see a Process as an application or task. Within "
1442                    "an OperatingSystem, a Process is defined by a workspace of "
1443                    "memory resources and environmental settings that are allocated "
1444                    "to it. On a multitasking System, this workspace prevents "
1445                    "intrusion of resources by other Processes. Additionally, a "
1446                    "Process can execute as multiple Threads, all which run within "
1447                    "the same workspace.") ]
1448               class CIM_Process : CIM_LogicalElement {
1449 karl  1.1           [Propagated("CIM_OperatingSystem.CSCreationClassName"),
1450 karl  1.1.2.1        Key, MaxLen (256),
1451                      Description ("The scoping ComputerSystem's "
1452                       "CreationClassName.") ]
1453 karl  1.1        string CSCreationClassName;
1454                     [Propagated("CIM_OperatingSystem.CSName"),
1455 karl  1.1.2.1        Key, MaxLen (256),
1456                      Description ("The scoping ComputerSystem's Name.") ]
1457 karl  1.1        string CSName;
1458                     [Propagated("CIM_OperatingSystem.CreationClassName"),
1459 karl  1.1.2.1        Key, MaxLen (256),
1460                      Description ("The scoping OperatingSystem's CreationClassName.") ]
1461 karl  1.1        string OSCreationClassName;
1462                     [Propagated("CIM_OperatingSystem.Name"),
1463 karl  1.1.2.1        Key, MaxLen (256),
1464                      Description ("The scoping OperatingSystem's Name.") ]
1465 karl  1.1        string OSName;
1466 karl  1.1.2.1       [Key, MaxLen (256), Description (
1467                       "CreationClassName indicates the name of the class or the "
1468                       "subclass used in the creation of an instance. When used "
1469                       "with the other key properties of this class, this property "
1470                       "allows all instances of this class and its subclasses to "
1471                       "be uniquely identified.") ]
1472 karl  1.1        string CreationClassName;
1473 karl  1.1.2.1       [Key, MaxLen (256), Description (
1474                       "A string used to identify the Process. A Process ID is a "
1475                       "kind of Process Handle."),
1476                      MappingStrings {"MIF.DMTF|Process Information|001.1"}]
1477 karl  1.1        string Handle;
1478 karl  1.1.2.1     [Override ("Name"),
1479                    MappingStrings {"MIF.DMTF|Process Information|001.6"}]
1480 karl  1.1        string Name;
1481                     [Description (
1482 karl  1.1.2.1         "Priority indicates the urgency or importance of execution "
1483                       "of a Process. If a priority is not defined for a Process, "
1484                       "a value of 0 should be used."), 
1485                      MappingStrings {"MIF.DMTF|Process Information|001.10"}]
1486 karl  1.1        uint32 Priority;
1487                     [Description (
1488 karl  1.1.2.1         "Indicates the current operating condition of the Process. "
1489                       "Values include ready (2), running (3), and blocked (4), "
1490                       "among others."),
1491 karl  1.1            Values {"Unknown", "Other", "Ready", "Running", 
1492 karl  1.1.2.1                "Blocked", "Suspended Blocked", "Suspended Ready", 
1493                              "Terminated", "Stopped", "Growing"}, 
1494                      MappingStrings {"MIF.DMTF|Process Information|001.9"}]
1495 karl  1.1        uint16 ExecutionState;
1496 karl  1.1.2.1       [Description ("Time that the Process began executing.") ]
1497 karl  1.1        datetime CreationDate;
1498                     [Description (
1499 karl  1.1.2.1         "Time that the Process was stopped or terminated.") ]
1500 karl  1.1        datetime TerminationDate;
1501                     [Description (
1502 karl  1.1.2.1         "Time in user mode, in milliseconds. If this information "
1503                       "is not available, a value of 0 should be used."),
1504 karl  1.1            Units("MilliSeconds"), 
1505 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Process Information|001.14"}]
1506 karl  1.1        uint64 UserModeTime;
1507                     [Description (
1508 karl  1.1.2.1         "Time in kernel mode, in milliseconds. If this information "
1509                       "is not available, a value of 0 should be used."),
1510 karl  1.1            Units("MilliSeconds"), 
1511 karl  1.1.2.1        MappingStrings {"MIF.DMTF|Process Information|001.13"}]
1512 karl  1.1        uint64 KernelModeTime;
1513                     [Gauge, Description (
1514 karl  1.1.2.1         "The amount of memory in bytes that a Process needs to "
1515                       "execute efficiently, for an OperatingSystem that uses "
1516                       "page-based memory management.  If an insufficient amount "
1517                       "of memory is available (< working set size), thrashing "
1518                       "will occur.  If this information is not known, NULL or 0 "
1519                       "should be entered.  If this data is provided, it could be "
1520                       "monitored to understand a Process' changing memory "
1521                       "requirements as execution proceeds."),
1522                      Units ("Bytes") ]
1523 karl  1.1        uint64 WorkingSetSize;
1524               };
1525               
1526 karl  1.1.2.1 
1527 karl  1.1     // ===================================================================
1528               // OSProcess
1529               // ===================================================================
1530 karl  1.1.2.1    [Association, Aggregation, Description (
1531                    "A link between the OperatingSystem and Process(es) running "
1532                    "in the context of this OperatingSystem.") ]
1533               class CIM_OSProcess : CIM_Component {
1534                     [Override ("GroupComponent"), Aggregate, Min (1), Max (1),
1535                      Description ("The OperatingSystem.") ]
1536 karl  1.1        CIM_OperatingSystem REF GroupComponent;
1537 karl  1.1.2.1       [Override ("PartComponent"), Weak,
1538 karl  1.1            Description (
1539 karl  1.1.2.1         "The Process running in the context of the "
1540                       "OperatingSystem") ]
1541 karl  1.1        CIM_Process REF PartComponent;
1542               };
1543               
1544 karl  1.1.2.1 
1545 karl  1.1     // ===================================================================
1546               // ProcessExecutable
1547               // ===================================================================
1548 karl  1.1.2.1    [Association, Description (
1549                    "A link between a Process and a DataFile indicating that the "
1550                    "File participates in the execution of the Process.") ]
1551               class CIM_ProcessExecutable : CIM_Dependency {
1552 karl  1.1           [Override ("Antecedent"),
1553                      Description (
1554 karl  1.1.2.1         "The DataFile participating in the execution of the Process.") ]
1555 karl  1.1        CIM_DataFile REF Antecedent;
1556                     [Override ("Dependent"),
1557 karl  1.1.2.1        Description ("The Process.") ] 
1558 karl  1.1        CIM_Process REF Dependent;
1559               };
1560               
1561 karl  1.1.2.1 
1562 karl  1.1     // ===================================================================
1563               // Thread
1564               // ===================================================================
1565                  [Description (
1566 karl  1.1.2.1      "Threads represent the ability to execute units of a Process "
1567                    "or task in parallel.  A Process can have many Threads, each "
1568                    "of which is weak to the Process.") ]
1569               class CIM_Thread : CIM_LogicalElement {
1570 karl  1.1           [Propagated("CIM_Process.CSCreationClassName"),
1571 karl  1.1.2.1        Key, MaxLen (256),
1572                      Description ("The scoping ComputerSystem's CreationClassName.") ]
1573 karl  1.1        string  CSCreationClassName;
1574                     [Propagated("CIM_Process.CSName"),
1575 karl  1.1.2.1        Key, MaxLen (256),
1576                      Description ("The scoping ComputerSystem's Name.") ]
1577 karl  1.1        string CSName;
1578                     [Propagated("CIM_Process.OSCreationClassName"),
1579 karl  1.1.2.1        Key, MaxLen (256),
1580                      Description ("The scoping OperatingSystem's CreationClassName.") ]
1581 karl  1.1        string OSCreationClassName;
1582                     [Propagated("CIM_Process.OSName"),
1583 karl  1.1.2.1        Key, MaxLen (256),
1584                      Description ("The scoping OperatingSystem's Name.") ]
1585 karl  1.1        string OSName;
1586                     [Propagated("CIM_Process.CreationClassName"),
1587 karl  1.1.2.1        Key, MaxLen (256),
1588                      Description ("The scoping Process' CreationClassName.") ]
1589 karl  1.1        string ProcessCreationClassName;
1590                     [Propagated("CIM_Process.Handle"),
1591 karl  1.1.2.1        Key, MaxLen (256),
1592                      Description ("The scoping Process' Handle.") ]
1593 karl  1.1        string ProcessHandle;
1594 karl  1.1.2.1       [Key, MaxLen(256),
1595 karl  1.1            Description (
1596 karl  1.1.2.1         "CreationClassName indicates the name of the class or the "
1597                       "subclass used in the creation of an instance. When used "
1598                       "with the other key properties of this class, this property "
1599                       "allow all instances of this class and its subclasses to "
1600                       "be uniquely identified.") ]
1601 karl  1.1        string CreationClassName;
1602 karl  1.1.2.1       [Key, MaxLen(256),
1603                      Description ("A string used to identify the Thread.") ]
1604 karl  1.1        string Handle;
1605                     [Description (
1606 karl  1.1.2.1         "Priority indicates the urgency or importance of execution "
1607                       "of a Thread. A Thread may have a different priority than "
1608                       "its owning Process. If this information is not available "
1609                       "for a Thread, a value of 0 should be used.") ]
1610 karl  1.1        uint32 Priority;
1611                     [Description (
1612 karl  1.1.2.1         "Indicates the current operating condition of the Thread. " 
1613                       "Values include ready (2), running (3), and blocked (4), "
1614                       "among others."),
1615 karl  1.1            Values {"Unknown", "Other", "Ready", "Running", 
1616 karl  1.1.2.1                "Blocked", "Suspended Blocked", "Suspended Ready"}]
1617 karl  1.1        uint16 ExecutionState;
1618                     [Description (
1619 karl  1.1.2.1         "Time in user mode, in milliseconds. If this information is "
1620                       "not available, a value of 0 should be used."),
1621                      Units("MilliSeconds") ]
1622 karl  1.1        uint64 UserModeTime;
1623                     [Description (
1624 karl  1.1.2.1       "Time in kernel mode, in milliseconds. If this information "
1625                     "is not available, a value of 0 should be used."),
1626                      Units("MilliSeconds") ]
1627 karl  1.1        uint64 KernelModeTime;
1628               };
1629               
1630 karl  1.1.2.1 
1631 karl  1.1     // ===================================================================
1632               // ProcessThread
1633               // ===================================================================
1634 karl  1.1.2.1    [Association, Aggregation, Description (
1635                    "A link between a Process and the Thread(s) running in the "
1636                    "context of this Process.") ]
1637               class CIM_ProcessThread : CIM_Component {
1638                     [Override ("GroupComponent"), Aggregate, Min (1), Max (1),
1639                      Description ("The Process.") ]
1640 karl  1.1        CIM_Process REF GroupComponent;
1641 karl  1.1.2.1       [Override ("PartComponent"), Weak,
1642 karl  1.1            Description (
1643 karl  1.1.2.1         "The Thread running in the context of the Process.") ]
1644 karl  1.1        CIM_Thread REF PartComponent;
1645               };
1646               
1647 karl  1.1.2.1 
1648 karl  1.1     // ===================================================================
1649               // BIOSFeature
1650               // ===================================================================
1651                  [Description (
1652 karl  1.1.2.1      "BIOSFeature represents the capabilities of the low-level "
1653                    "software that is used to bring up and configure a Computer"
1654                    "System.") ]
1655               class CIM_BIOSFeature : CIM_SoftwareFeature {
1656 karl  1.1           [Description (
1657                       "An array of integers that specify the features "
1658                       "supported by the BIOS. For example, one can specify that "
1659                       "PnP capabilities are provided (value=9) or that infrared "
1660                       "devices are supported (21). Values specified in the "
1661                       "enumeration are taken from both DMI and SMBIOS (the Type 0 "
1662                       "structure, the BIOS Characteristics and BIOS "
1663                       "Characteristics Extension Bytes attributes."),
1664                      ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", 
1665 karl  1.1.2.1                  "10", "11", "12", "13", "14", "15", "16", "17", "18", 
1666                                "19", "20", "21", "22", "23", "24", "25", "26", 
1667                                "27", "28", "29", "30", "31", "160"},
1668 karl  1.1            Values {"Other", "Unknown", "Undefined", "ISA Support", 
1669 karl  1.1.2.1                "MCA Support", "EISA Support", "PCI Support", 
1670                              "PCMCIA Support", "PnP Support", "APM Support", 
1671                              "Upgradeable BIOS", "BIOS Shadowing Allowed", 
1672                              "VL VESA Support", "ESCD Support", 
1673                              "LS-120 Boot Support", "ACPI Support", 
1674                              "I2O Boot Support", "USB Legacy Support", 
1675                              "AGP Support", "PC Card", "IR", "1394", "I2C", 
1676                              "Smart Battery", "ATAPI ZIP Drive Boot Support", 
1677                              "1394 Boot Support", "Boot from CD", 
1678                              "Selectable Boot", "BIOS ROM is Socketed", 
1679                              "Boot from PCMCIA", "EDD Specification Support", 
1680                              "PC-98"},
1681 karl  1.1            MappingStrings {"MIF.DMTF|BIOS Characteristic|004.3"},
1682                      ArrayType ("Indexed"),
1683 karl  1.1.2.1        ModelCorrespondence {
1684                       "CIM_BIOSFeature.CharacteristicDescriptions"}]
1685 karl  1.1        uint16 Characteristics[];
1686                     [Description (
1687 karl  1.1.2.1         "An array of free-form strings providing more detailed "
1688                       "explanations for any of the BIOS features indicated in the "
1689                       "Characteristics array. Note, each entry of this array "
1690                       "is related to the entry in the Characteristics array that "
1691                       "is located at the same index."),
1692 karl  1.1            ArrayType ("Indexed"),
1693                      MappingStrings {"MIF.DMTF|BIOS Characteristic|004.4"},
1694 karl  1.1.2.1        ModelCorrespondence {"CIM_BIOSFeature.Characteristics"}]
1695 karl  1.1        string CharacteristicDescriptions[];
1696               };
1697 karl  1.1.2.1 
1698 karl  1.1      
1699               // ===================================================================
1700               // BIOSElement
1701               // ===================================================================
1702                  [Description (
1703 karl  1.1.2.1      "BIOSElement represents the low-level software that is loaded "
1704                    "into non-volatile storage and used to bring up and configure "
1705                    "a ComputerSystem.") ]
1706               class CIM_BIOSElement : CIM_SoftwareElement {
1707 karl  1.1           [Override ("Version"),
1708 karl  1.1.2.1        MappingStrings {"MIF.DMTF|System BIOS|001.3"}]
1709 karl  1.1        string Version;
1710                     [Override ("Manufacturer"),
1711 karl  1.1.2.1        MappingStrings {"MIF.DMTF|System BIOS|001.2"}]
1712                  string Manufacturer;     
1713 karl  1.1           [Description (
1714 karl  1.1.2.1       "If true, this is the primary BIOS of the ComputerSystem."),
1715                      MappingStrings {"MIF.DMTF|System BIOS|001.9"}]
1716 karl  1.1        boolean PrimaryBIOS;
1717                     [Description (
1718                       "A list of installable languages for the BIOS. This "
1719                       "information can be obtained from SMBIOS, from the string list "
1720                       "that follows the Type 13 structure. An ISO 639 Language Name "
1721                       "should be used to specify the BIOS' installable languages. The "
1722                       "ISO 3166 Territory Name and the encoding method may also be "
1723 karl  1.1.2.1         "specified, following the Language Name.") ]
1724 karl  1.1        string ListOfLanguages[];
1725                     [Description (
1726                       "The currently selected language for the BIOS. This "
1727                       "information can be obtained from SMBIOS, using the Current "
1728                       "Language attribute of the Type 13 structure, to index into the "
1729                       "string list following the structure. The property is formatted "
1730                       "using the ISO 639 Language Name, and may be followed by the "
1731                       "ISO 3166 Territory Name and the encoding method."),
1732 karl  1.1.2.1        ModelCorrespondence {"CIM_BIOSElement.ListOfLanguages"}]
1733 karl  1.1        string CurrentLanguage;
1734 karl  1.1.2.1       [Description (
1735                       "The starting address of the memory which this BIOS "
1736                       "occupies."), 
1737                      MappingStrings {"MIF.DMTF|System BIOS|001.5"}]
1738                   uint64 LoadedStartingAddress;
1739                     [Description (
1740                       "The ending address of the memory which this BIOS "
1741                       "occupies."),
1742                      MappingStrings {"MIF.DMTF|System BIOS|001.6"}]
1743                   uint64 LoadedEndingAddress;
1744                     [MaxLen (64), Description (
1745                       "A free form string describing the BIOS flash/load utility "
1746                       "that is required to update the BIOSElement. Version and "
1747                       "other information may be indicated in this property."),
1748                      MappingStrings {"MIF.DMTF|System BIOS|001.7"}]
1749                   string LoadUtilityInformation;
1750                     [Description (
1751                       "Date that this BIOS was released."),
1752                      MappingStrings {"MIF.DMTF|System BIOS|001.8"}]
1753                   datetime ReleaseDate;
1754 karl  1.1     };
1755               
1756 karl  1.1.2.1 
1757 karl  1.1     // ===================================================================
1758               // BIOSFeatureBIOSElements
1759               // ===================================================================
1760 karl  1.1.2.1    [Association, Aggregation, Description (
1761                     "A link between BIOSFeature and its aggregated BIOSElements.") ]
1762               class CIM_BIOSFeatureBIOSElements : CIM_SoftwareFeatureSoftwareElements {
1763 karl  1.1           [Override ("GroupComponent"), Aggregate,
1764 karl  1.1.2.1        Description ("The BIOSFeature.") ]
1765 karl  1.1        CIM_BIOSFeature REF GroupComponent;
1766                     [Override ("PartComponent"),
1767                      Description (
1768 karl  1.1.2.1         "The BIOSElement that implements the capabilities described "
1769                       "by BIOSFeature.") ]
1770 karl  1.1        CIM_BIOSElement REF PartComponent;
1771               };
1772               
1773 karl  1.1.2.1 
1774 karl  1.1     // ===================================================================
1775               // SystemBIOS
1776               // ===================================================================
1777 karl  1.1.2.1    [Association, Aggregation, Description (
1778                    "SystemBIOS associates a UnitaryComputerSystem's BIOS with the "
1779                    "System itself.") ]
1780               class CIM_SystemBIOS : CIM_SystemComponent {
1781 karl  1.1           [Override ("GroupComponent"), Max (1), Aggregate, 
1782                      Description (
1783 karl  1.1.2.1         "The UnitaryComputerSystem that boots from the BIOS.") ]
1784 karl  1.1        CIM_UnitaryComputerSystem REF GroupComponent;
1785                     [Override ("PartComponent"), 
1786 karl  1.1.2.1        Description ("The System's BIOS.") ]
1787 karl  1.1        CIM_BIOSElement REF PartComponent;
1788               };
1789               
1790 karl  1.1.2.1 
1791 karl  1.1     // ===================================================================
1792               // Job
1793               // ===================================================================
1794 karl  1.1.2.1    [Abstract, Description (
1795                    "A Job is a LogicalElement representing a unit of work for a "
1796                    "System, such as a print job.  A Job is distinct from a "
1797                    "Process in that a Job can be scheduled.") ]
1798               class CIM_Job : CIM_LogicalElement {
1799 karl  1.1           [Description (
1800 karl  1.1.2.1         "A free form string representing the Job's status.") ]
1801 karl  1.1        string JobStatus;
1802 karl  1.1.2.1       [Description ("Time that the Job was submitted.") ]
1803 karl  1.1        datetime TimeSubmitted;
1804 karl  1.1.2.1       [Description ("Time that the Job was begun.") ]
1805 karl  1.1        datetime StartTime;
1806 karl  1.1.2.1       [Description ("Length of time that the Job has been executing.") ]
1807 karl  1.1        datetime ElapsedTime;
1808                     [Description (
1809 karl  1.1.2.1         "Time after which the Job is invalid or should be stopped.") ]
1810 karl  1.1        datetime UntilTime;
1811                     [Description (
1812 karl  1.1.2.1         "User to be notified upon Job completion or failure.") ]
1813 karl  1.1        string Notify;
1814 karl  1.1.2.1       [Description ("User that submitted the Job.") ] 
1815 karl  1.1        string Owner;
1816                     [Description (
1817 karl  1.1.2.1       "Indicates the urgency or importance of execution of a Job.") ]
1818 karl  1.1        uint32 Priority;
1819               };
1820               
1821 karl  1.1.2.1 
1822 karl  1.1     // ===================================================================
1823               // JobDestination 
1824               // ===================================================================
1825                  [Description (
1826 karl  1.1.2.1      "JobDestination is a LogicalElement representing where a Job "
1827                    "is submitted for processing. It can refer to a queue that "
1828                    "contains zero or more Jobs, such as a print queue containing "
1829                    "print Jobs. JobDestinations are hosted on Systems, similar to "
1830                    "the way that Services are hosted on Systems.") ]
1831               class CIM_JobDestination : CIM_LogicalElement {
1832 karl  1.1           [Propagated ("CIM_System.CreationClassName"),
1833 karl  1.1.2.1        Key, MaxLen (256),
1834                      Description ("The scoping System's CreationClassName.") ]
1835 karl  1.1        string SystemCreationClassName;
1836                     [Propagated ("CIM_System.Name"),
1837 karl  1.1.2.1        Key, MaxLen (256),
1838                      Description ("The scoping System's Name.") ]
1839 karl  1.1        string SystemName;
1840 karl  1.1.2.1       [Key, MaxLen (256),
1841 karl  1.1            Description (
1842 karl  1.1.2.1         "CreationClassName indicates the name of the class or the "
1843                       "subclass used in the creation of an instance. When used "
1844                       "with the other key properties of this class, this property "
1845                       "allows all instances of this class and its subclasses to "
1846                       "be uniquely identified.") ]
1847 karl  1.1        string CreationClassName;
1848 karl  1.1.2.1       [Override ("Name"), Key, MaxLen (256),
1849 karl  1.1            Description (
1850 karl  1.1.2.1         "The inherited Name serves as key of a JobDestination "
1851                       "instance in a System.") ]
1852 karl  1.1        string Name; 
1853               };
1854               
1855 karl  1.1.2.1 
1856 karl  1.1     // ===================================================================
1857               // HostedJobDestination 
1858               // ===================================================================
1859 karl  1.1.2.1    [Association, Description (
1860                    "An association between a JobDestination and a System on "
1861                    "which it resides. The cardinality of this association is "
1862                    "1-to-many.  A System may host many Job queues. Job"
1863                    "Destinations are weak with respect to their hosting System. "
1864                    "Heuristic: A JobDestination is hosted on the System where the "
1865                    "LogicalDevices, SoftwareFeatures or Services that implement/"
1866                    "provide the JobDestination are located.") ]
1867               class CIM_HostedJobDestination : CIM_Dependency {
1868                     [Override ("Antecedent"), Min (1), Max (1),
1869                      Description ("The hosting System.") ]
1870 karl  1.1        CIM_System REF Antecedent;
1871 karl  1.1.2.1       [Override ("Dependent"), Weak,
1872                      Description ("The JobDestination hosted on the System.") ]
1873 karl  1.1        CIM_JobDestination REF Dependent;
1874               };
1875               
1876 karl  1.1.2.1 
1877 karl  1.1     // ===================================================================
1878               // JobDestinationJobs 
1879               // ===================================================================
1880 karl  1.1.2.1    [Association, Description (
1881                    "An association describing where a Job is submitted for "
1882                    "processing, ie to which JobDestination.") ]
1883               class CIM_JobDestinationJobs : CIM_Dependency {
1884                     [Override ("Antecedent"), Max (1),
1885                      Description ("The JobDestination, possibly a queue.") ]
1886 karl  1.1        CIM_JobDestination REF Antecedent;
1887                     [Override ("Dependent"),
1888 karl  1.1.2.1        Description ("The Job that is in the Job queue/Destination.") ]
1889 karl  1.1        CIM_Job REF Dependent;
1890               };
1891               
1892 karl  1.1.2.1 
1893 karl  1.1     // ==================================================================
1894               //    DiagnosticTest
1895               // ==================================================================
1896 karl  1.1.2.1    [Description (
1897                    "The CIM_DiagnosticTest class represents the ability to "
1898                    "execute a test. Specific diagnostic tests may be defined by "
1899                    "subclassing and/or instantiating this object. To provide "
1900                    "more detail for a type of test (i.e, additional properties "
1901                    "and methods), subclassing is appropriate. To indicate that a "
1902                    "test exists and may be applied to a specific ManagedSystem"
1903                    "Element, instantiation of the DiagnosticTest class may "
1904                    "suffice.") ]
1905               class CIM_DiagnosticTest : CIM_Service {
1906                     [Description (
1907                       "The descriptions for each Characteristic are below:\n "
1908                       "\n"
1909                       "* \"Is Exclusive\" (value=2) is specified for the test "
1910                       "module only if the diagnostic cannot run more than one test "
1911                       "at a time, regardless of how many SystemElements are "
1912                       "supported. Typically, this occurs when hardware or software "
1913                       "constraints prevent the test from running as multiple, "
1914                       "concurrent instances. If the diagnostic can be run against "
1915                       "multiple SystemElements, but only once per Element, then set "
1916                       "the IsExclusiveForMSE boolean property on the appropriate "
1917 karl  1.1.2.1         "instances of DiagnosticTestForMSE. \n"
1918                       "\n"
1919                       "* If \"Is Interactive\" (value=3) is set, then the diagnostic "
1920                       "displays a message either before, during or after testing. \n"
1921                       "\n"
1922                       "* Set \"Is Destructive\" (value=4) if the diagnostic will "
1923                       "destroy data, or reconfigure the Element that is being "
1924                       "tested. \n" 
1925                       "\n"
1926                       "* \"Is Risky\" (value=5) indicates that data loss may occur "
1927                       "if the test is interrupted. Some tests make copies of data, "
1928                       "perform the test, and restore the data returning the tested "
1929                       "entity to its previous configuration. If the test is "
1930                       "interrupted, then loss of data or reconfiguration of the "
1931                       "tested ManagedSystemElement may occur. \n"
1932                       "\n"
1933                       "* If \"Is Package\" (value=6) is set, this test is actually "
1934                       "a set of lower level diagnostics, that are 'packaged' "
1935                       "together. \n"
1936                       "\n"
1937                       "\"Supports PercentOfTestCoverage\" (value=7) indicates that "
1938 karl  1.1.2.1         "a request for reduced test coverage can be specified using "
1939                       "the PercentOfTestCoverage property of Diagnostic Setting. \n"
1940                       "\n"
1941                       "Also, the values \"Unknown\" (0) and \"Other\" (1) may be "
1942                       "specified. If \"Other\" is defined, additional detail may be "
1943                       "found in the OtherCharacteristicDescription property of this "
1944                       "class."), 
1945                      Values{"Unknown", "Other", "Is Exclusive", "Is Interactive", 
1946                             "Is Destructive", "Is Risky", "Is Package", 
1947                             "Supports PercentOfTestCoverage"},
1948                      ModelCorrespondence {
1949                       "CIM_DiagnosticTest.OtherCharacteristicDescription"}]
1950                   uint16 Characteristics[];
1951                     [Description (
1952                       "Provides additional information for the Characteristic when "
1953                       "its value is set to 1 (\"Other\")."), 
1954                      ModelCorrespondence {"CIM_DiagnotistTest.Characteristics"}]
1955 karl  1.1           string OtherCharacteristicDescription;
1956 karl  1.1.2.1       [Description(
1957                       "If this test is currently being performed, the InUse "
1958                       "property is set to TRUE. To determine which ManagedSystem"
1959                       "Element is being tested, query the DiagnosticResult objects "
1960                       "associated with this test (query DiagnosticResultForTest), "
1961                       "and for which the TestState equals 4 (\"In Progress\"). "
1962                       "The DiagnosticResult object is associated with the System"
1963                       "Element under test, using DiagnosticResultForMSE.") ]
1964                   boolean IsInUse;
1965                     [Description(
1966                       "The \"Expensive\" qualifier can be applied to this class and "
1967                       "its RunTest method. If so, the ResourcesUsed property "
1968                       "describes the resources that are capitalized, based on a "
1969                       "default setup for the test. Multiple resources can be "
1970                       "specified since the property is an array."), 
1971                      Values{"CPU", "Memory", "Hard Disk", "CDROM", "Floppy", 
1972                             "PCI Bus", "USB Bus", "1394 Bus", "SCSI Bus", "IDE Bus", 
1973                             "Network", "ISA Bus", "EISA Bus", "VESA Bus", "PCMCIA Bus", 
1974                             "CardBus", "Access.bus", "NuBus", "AGP", "VME Bus", 
1975                             "Sbus IEEE 1396-1993", "MCA Bus", "GIO Bus", "XIO Bus", 
1976                             "HIO Bus", "PMC Bus", "SIO Bus"}]
1977 karl  1.1.2.1     uint16 ResourcesUsed[];
1978                     [Description(
1979                       "The RunTest method executes this test for the specified "
1980                       "ManagedSystemElement (defined using the SystemElement input "
1981                       "parameter). Results of the test are stored in a Diagnostic"
1982                       "Result object, a reference to which is returned as the Result "
1983                       "output parameter. How the test should execute, i.e. its "
1984                       "settings, is defined in a DiagnosticSetting object (or by a "
1985                       "subclass of DiagnosticSetting). A reference to a Setting "
1986                       "object is specified using the Setting input parameter.  If a "
1987                       "reference is not passed into the method, then a default "
1988                       "DiagnosticSetting may be used. This default Setting is "
1989                       "associated with the DiagnoticTest using the DefaultSetting "
1990                       "relationship of the Core Model. \n"
1991                       "When RunTest starts execution, the settings, which are time sensitive, "
1992                       "should be evaluated and captured. This is suggested since the "
1993                       "DiagnosticSetting object can be modified at any time, and therefore "
1994                       "the current test settings could be lost. \n"
1995                       "The method's return codes are expected to adhere to the XML "
1996                       "return codes as they are introduced. Currently, the standard "
1997                       "return values are: \n"
1998 karl  1.1.2.1         "0 = OK (function succeeded, but the test itself may have "
1999                       "failed \n"
2000                       "1 = Unspecified Error (function failed for unspecified "
2001                       "reasons) \n"
2002                       "2 = Not Implemented (function is not implemented for this "
2003                       "instance) \n"
2004                       "3 = Out Of Resources (component could not allocate required "
2005                       "resources, e.g. memory, disk space, etc.) \n"
2006                       "In a subclass, the set of possible return codes could be "
2007                       "specified, using a ValueMap qualifier on the method. The "
2008                       "strings to which the ValueMap contents are 'translated' may "
2009                       "also be specified in the subclass as a Values array qualifier.") ]
2010 karl  1.1         uint32 RunTest([IN] CIM_ManagedSystemElement ref SystemElement, 
2011                         [IN] CIM_DiagnosticSetting ref Setting, 
2012                         [OUT] CIM_DiagnosticResult ref Result);   
2013 karl  1.1.2.1       [Description(
2014                       "Execution of this method will delete all instances of the "
2015                       "DiagnosticResultForMSE object, for this DiagnosticTest "
2016                       "and the specified ManagedSystemElement (defined using the "
2017                       "SystemElement input parameter). The DiagnosticResults "
2018                       "referenced in the DiagnosticResultForMSE instances will be "
2019                       "deleted.  Also the association DiagnosticResultForTest that "
2020                       "referees to the DiagnosticResult object, and this test will "
2021                       " be deleted.\n"
2022                       "  One output parameter is defined - ResultsNotCleared "
2023                       "- which is a string array that lists the keys of the "
2024                       "DiagnosticResults which could not be deleted. This information "
2025                       "enables those Results to be revisited and either manually "
2026                       "removed, or other corrective action taken. \n"
2027                       "The method's return codes are expected to adhere to the XML "
2028                       "return codes as they are introduced. Currently, the standard "
2029                       "return values are: \n"
2030                       "0 = OK (function succeeded, but the test itself may have "
2031                       "failed \n"
2032                       "1 = Unspecified Error (function failed for unspecified "
2033                       "reasons) \n"
2034 karl  1.1.2.1         "2 = Not Implemented (function is not implemented for this "
2035                       "instance) \n"
2036                       "3 = Out Of Resources (component could not allocate required "
2037                       "resources, e.g. memory, disk space, etc.) \n"
2038                       "In a subclass, the set of possible return codes could be "
2039                       "specified, using a ValueMap qualifier on the method. The "
2040                       "strings to which the ValueMap contents are 'translated' may "
2041                       "also be specified in the subclass as a Values array qualifier.") ]
2042 karl  1.1         uint32 ClearResults([IN] CIM_ManagedSystemElement ref SystemElement, 
2043                         [OUT] String ResultsNotCleared[]);   
2044 karl  1.1.2.1       [Description (
2045                       "After invocation of this method and its completion, the "
2046                       "specified test(s) will be discontinued for the indicated "
2047                       "ManagedSystemElement (defined by the SystemElement input "
2048                       "parameter). The test to discontinue is specified using the "
2049                       "Result input parameter. If all instances of this test should "
2050                       "be stopped for the SystemElement, then the Result reference "
2051                       "should be NULL. Upon completion of the method, test status "
2052                       "and other information (such as PercentComplete) will be "
2053                       "stored in the DiagnosticResult instance defined by the Result "
2054                       "input parameter. The output parameter, TestingStopped, is "
2055                       "used as follows:\n"
2056                       " Set to TRUE if testing was successfully stopped. \n"
2057                       " Set to FALSE if the current test(s) can not be stopped. \n"
2058                       "If set to FALSE, testing will stop when the diagnostic is "
2059                       "able to do so safely. To determine if/when the testing is "
2060                       "stopped, check the TestState property in the DiagnosticResult "
2061                       "instance defined by the Result parameter. TestState will "
2062                       "change from \"In Progress\" to \"Stopped\" (from 4 to 5). \n"
2063                       "The method's return codes are expected to adhere to the XML "
2064                       "return codes as they are introduced. Currently, the standard "
2065 karl  1.1.2.1         "return values are: \n"
2066                       "0 = OK (function succeeded, but the test itself may have "
2067                       "failed \n"
2068                       "1 = Unspecified Error (function failed for unspecified "
2069                       "reasons) \n"
2070                       "2 = Not Implemented (function is not implemented for this "
2071                       "instance) \n"
2072                       "3 = Out Of Resources (component could not allocate required "
2073                       "resources, e.g. memory, disk space, etc.) \n"
2074                       "In a subclass, the set of possible return codes could be "
2075                       "specified, using a ValueMap qualifier on the method. The "
2076                       "strings to which the ValueMap contents are 'translated' may "
2077                       "also be specified in the subclass as a Values array qualifier.") ]
2078 karl  1.1         uint32 DiscontinueTest([IN] CIM_ManagedSystemElement ref SystemElement, 
2079                         [IN] CIM_DiagnosticResult ref Result, 
2080                         [OUT] Boolean TestingStopped);   
2081               };
2082               
2083               // ==================================================================
2084               //    DiagnosticSetting
2085               // ==================================================================
2086 karl  1.1.2.1    [Description(
2087                    "Specific diagnostic test parameters and execution "
2088                    "instructions are defined by subclassing and/or instantiating "
2089                    "the DiagnosticSetting object. To provide more detailed "
2090                    "Settings for a type of test (i.e., additional properties), "
2091                    "subclassing is appropriate. When only the generic Setting "
2092                    "information is required, instantiation of the Diagnostic"
2093                    "Setting class may suffice.\n"
2094                    "Data from DiagnosticSetting is captured in DiagnosticResult. "
2095                    "When RunTest starts execution the settings, which are time sensitive, "
2096                    "should be evaluated and captured. This is suggested since the "
2097                    "DiagnosticSetting object can be modified at any time, and therefore "
2098                    "the current test settings could be lost.") ]
2099               class CIM_DiagnosticSetting : CIM_Setting {
2100                     [Key, MaxLen (256), Override ("SettingID"), 
2101                      Description (
2102                       "The identifier by which the DiagnosticSetting object is " 
2103                       "known and uniquely named. One possible naming scheme is " 
2104                       "to name the SettingID using the DiagnosticTest's CreationClassName " 
2105                       "and DiagnosticName, plus a GUID (Globally Unique IDentifier).\n" 
2106                       "  Note that at an enterprise level, there is typically not a " 
2107 karl  1.1.2.1         "one to one mapping between a DiagnosticSetting and all " 
2108                       "copies of the DiagnosticTest.  The proposed naming convention will" 
2109                       "scale to the entrprise level.") ]
2110                   string SettingID;
2111                     [Description (
2112                       "Sets the level of warning messages to be logged. If for "
2113                       "example no warning information is required, the level "
2114                       "would be set to \"No Warnings\" (value=0). Using \"Missing "
2115                       "Resources\" (value=1) will cause warnings to be generated "
2116                       "when required resources or hardware are not found. Setting "
2117                       "the value to 2, \"Testing Impacts\", results in both "
2118                       "missing resources and 'test impact' warnings (for example, "
2119                       "multiple retries required) to be reported."), 
2120                      Values {"No Warnings", "Missing Resources", 
2121                              "Testing Impacts", "All Warnings"},
2122                      Write]
2123 karl  1.1         uint16 TestWarningLevel;
2124 karl  1.1.2.1       [Description (
2125                       "When this flag is true, the diagnostic test will report "
2126                       "'soft errors'. In this context, a soft error is a message "
2127                       "from the diagnostic reporting a known defect in the "
2128                       "hardware or driver configuration, or execution "
2129                       "environment.  Examples are: \"Not enough memory\", "
2130                       "\"Driver IOCTL not implemented\", \"Video RAM compare "
2131                       "failed during polygon fill test (A known defect in the "
2132                       "video chipset)\", etc."), 
2133                      Write] 
2134 karl  1.1         boolean ReportSoftErrors;
2135 karl  1.1.2.1       [Description (
2136                       "When this flag is true, the diagnostic test will report "
2137                       "'status messages'. In this context, a status message "
2138                       "indicates that the diagnostic code is at a checkpoint. "
2139                       "Examples are: \"Completion of phase 1\", \"Complex "
2140                       "pattern\", etc."), 
2141                      Write]
2142 karl  1.1         boolean ReportStatusMessages;
2143 karl  1.1.2.1       [Description (
2144                       "When this flag is true, the test will halt after finding "
2145                       "the first error."),
2146                      Write]
2147 karl  1.1         boolean HaltOnError;
2148 karl  1.1.2.1       [Description (
2149                       "When this flag is true, the test software should attempt "
2150                       "to run in an accelerated fashion either by reducing the "
2151                       "coverage or number of tests performed."), 
2152                      Write]
2153 karl  1.1         boolean QuickMode;
2154 karl  1.1.2.1       [Units ("Percent"), MinValue (0), MaxValue (100), 
2155                      Description(
2156                       "Requests the diagnostic software to reduce test coverage "
2157                       "to the specified percentage.  For example, a hard drive "
2158                       "scan test could be asked to run at 50%. The most "
2159                       "effective way to accomplish this is for the test software "
2160                       "to scan every other track, as opposed to only scanning the "
2161                       "first half of a drive. It is assumed that the effectiveness "
2162                       "of the test is impacted proportional to the percentage of "
2163                       "testing requested. Permissible values for this property "
2164                       "range from 0 to 100. \n"
2165                       "This property may not be applicable to all tests.  If it "
2166                       "can be set for a test, the value 7 (\"Supports PercentOf"
2167                       "TestCoverage\") should be entered into the DiagnosticTest's "
2168                       "Characteristics array."), 
2169                      ModelCorrespondence {"CIM_DiagnosticTest.Characteristics"}, 
2170                      Write]
2171 karl  1.1         uint8 PercentOfTestCoverage;
2172                };
2173               
2174 karl  1.1.2.1 
2175 karl  1.1     // ==================================================================
2176               //    DiagnosticResult
2177               // ==================================================================
2178 karl  1.1.2.1    [Description(
2179                    "When a DiagnosticTest Service is running, test results "
2180                    "are reported using a DiagnosticResult object, or one of its "
2181                    "subclasses. A DiagnosticTest may be running because its "
2182                    "Service is Started or due to an invocation of the RunTest "
2183                    "method. DiagnosticResults are related to their Test via an "
2184                    "instance of the DiagnosticResultsForMSE association.\n"
2185                    "For every running of DiagnosticTest, a new instance of "
2186                    "DiagnosticResult, or one of it's subclasses should be created.") ]
2187               class CIM_DiagnosticResult {
2188                     [Propagated("CIM_DiagnosticTest.CreationClassName"), 
2189                      Key, MaxLen (256),
2190                      Description ("The scoping Test's CreationClassName.") ]
2191                   string DiagnosticCreationClassName;
2192                     [Propagated("CIM_DiagnosticTest.Name"),
2193                      Key, MaxLen (256),
2194                      Description ("The scoping Test's Name.") ]
2195                   string DiagnosticName;
2196                     [Key, MaxLen (1024), 
2197                      Description (
2198                       "The Unique identifier for an instance of Diagnostic"
2199 karl  1.1.2.1         "Results.") ]
2200 karl  1.1         string ExecutionID ; 
2201 karl  1.1.2.1       [Propagated ("CIM_DiagnosticTest.SystemCreationClassName"),
2202                      Key, MaxLen (256),
2203                      Description ("The scoping Test's SystemCreationClassName.") ]
2204 karl  1.1        string DiagSystemCreationClassName;
2205 karl  1.1.2.1       [Propagated ("CIM_DiagnosticTest.SystemName"), 
2206                      Key, MaxLen (256),
2207                      Description ("The scoping Test's SystemName.") ]
2208 karl  1.1        string DiagSystemName;
2209 karl  1.1.2.1       [Description (
2210                       "The date and time the result was last updated.") ]
2211 karl  1.1         datetime TimeStamp;
2212 karl  1.1.2.1       [Description (
2213                       "If this property is TRUE, then this DiagnosticResult "
2214                       "summarizes the results from the execution of a packaged "
2215                       "set of DiagnosticTests. The Tests in the package can be "
2216                       "identified by following the DiagnosticResultForTest "
2217                       "association to the test and then using the DiagnosticTest"
2218                       "InPackage aggregation. The individual Results can be "
2219                       "broken out by instantiating DiagnosticResults for the "
2220                       "individual lower level tests and aggregating into the "
2221                       "'summary' Result using the DiagnosticResultInPackage "
2222                       "association.") ]
2223 karl  1.1         boolean IsPackage;
2224 karl  1.1.2.1       [Description (
2225                       "The date and time  when this test started.") ]
2226 karl  1.1         datetime TestStartTime;
2227 karl  1.1.2.1       [Description (
2228                       "The date and time when this test completed.") ]
2229 karl  1.1         datetime TestCompletionTime;
2230 karl  1.1.2.1       [Description (
2231                       "Describes how the test is progressing. For example, if "
2232                       "the test was discontinued, the TestState will be "
2233                       "\"Stopped\" (value=5), or if testing is currently "
2234                       "executing, TestState will be \"In Progress\" (4)."),  
2235                      Values{"Unknown", "Other", "Passed", "Failed", 
2236                             "In Progress", "Stopped"},
2237                      ModelCorrespondence {
2238                       "CIM_DiagnosticResult.OtherStateDescription"}]
2239 karl  1.1          uint16 TestState;
2240 karl  1.1.2.1       [Description (
2241                       "When \"Other\" (value=1) is entered in the TestState "
2242                       "property, OtherStateDescription can be used to describe "
2243                       "the test's state."),
2244                      ModelCorrespondence {"CIM_DiagnosticResult.TestState"}]
2245 karl  1.1          string OtherStateDescription;
2246 karl  1.1.2.1       [Units ("Seconds"), 
2247                      Description (
2248                       "Estimated number of seconds to perform the Diagnostic"
2249                       "Test indicated by the DiagnosticCreationClassName and "
2250                       "DiagnosticName properties.  After the test has completed, "
2251                       "the actual elapsed time can be determined by subtracting "
2252                       "the TestStartTime from the TestCompletionTime. A similar "
2253                       "property is defined in the association, DiagnosticTest"
2254                       "ForMSE. The difference between the two properties is "
2255                       "that the value stored in the association is a generic "
2256                       "test execution time for the Element and the Test. But, "
2257                       "the value here (in DiagnosticResult) is the estimated "
2258                       "time that this instance with the given settings would "
2259                       "take to run the test.  A CIM Consumer can compare this "
2260                       "value with the value in the association DiagnosticTestForMSE "
2261                       "to get an idea what impact their settings have on test "
2262                       "execution."), 
2263                      ModelCorrespondence {
2264                       "CIM_DiagnosticTestForMSE.EstimatedTimeOfPerforming"}]
2265 karl  1.1         uint32 EstimatedTimeOfPerforming;
2266 karl  1.1.2.1       [Description(
2267                       "TestResults stores one or more textual results from the "
2268                       "execution of the DiagnosticTest(s) referenced by the "
2269                       "DiagnosticCreationClassName and DiagnosticName properties. "
2270                       "One entry is considered a cell location in the array. Each "
2271                       "entry is time stamped and contains the following "
2272                       "information, in the following format: \n"
2273                       " yyymmddhhttssoutc|DiagnosticName|Textual message \n"
2274                       "Where: \n"
2275                       "  yyy = year, e.g. 2000 \n"
2276                       "  mm = month (01 - 12) \n"
2277                       "  dd = day (01 - 31) \n" 
2278                       "  hh = hour (00 - 24) \n"
2279                       "  tt = minute (00-59) \n"
2280                       "  ss = second (00-59) \n"
2281                       "  o = \"+\" or \"-\" indicating the sign of the UTC "
2282                       "correction field \n"
2283                       "  utc = offset from UTC (Universal Coordinated Time) "
2284                       "in minutes \n"
2285                       "  DiagnosticName = string reference to the DiagnosticTest "
2286                       "object which was executed\n"
2287 karl  1.1.2.1         "  Textual message = free form string that is the 'test "
2288                       "result'."), 
2289                      ArrayType ("Ordered") ]
2290 karl  1.1         string TestResults[];
2291 karl  1.1.2.1       [Units ("Percent"), MinValue (0), MaxValue (100), 
2292                      Description (
2293                       "The percentage of the test that has executed thus far, if the "
2294                       "TestState property is set to \"In Progress\" or the percentage "
2295                       "of the complete test that was executed if the TestState property "
2296                       "is set to any of the completed states (\"Passed\", \"Failed\" or "
2297                       "\"Stopped\"). Final results may be based on less than 100% coverage "
2298                       "due to the parameters defined in DiagnosticSetting (such as "
2299                       "QuickMode, PercentOfTestCoverage or HaltOnError)." ) ]
2300 karl  1.1         uint8 PercentComplete;
2301               
2302               
2303               // ---------  Properties below here are copied from  ------------------
2304               // ---------  DiagnosticSettings                     ------------------
2305               // Note that the DiagnosticSetting object can be modified at any time,
2306               // and the current test settings can be lost. When RunTest starts execution 
2307               // the settings, which are time sensitive, should be evaluated and captured. 
2308               
2309 karl  1.1.2.1       [Description (
2310                       "Sets the level of warning messages to be logged. If for "
2311                       "example no warning information is required, the level "
2312                       "would be set to \"No Warnings\" (value=0). Using \"Missing "
2313                       "Resources\" (value=1) will cause warnings to be generated "
2314                       "when required resources or hardware are not found. Setting "
2315                       "the value to 2, \"Testing Impacts\", results in both "
2316                       "missing resources and 'test impact' warnings (for example, "
2317                       "multiple retries required) to be reported."), 
2318                      Values {"No Warnings", "Missing Resources", 
2319                              "Testing Impacts", "All Warnings"},
2320                      Write]
2321 karl  1.1         uint16 TestWarningLevel;
2322 karl  1.1.2.1       [Description (
2323                       "When this flag is true, the diagnostic test will report "
2324                       "'soft errors'. In this context, a soft error is a message "
2325                       "from the diagnostic reporting a known defect in the "
2326                       "hardware or driver configuration, or execution "
2327                       "environment.  Examples are: \"Not enough memory\", "
2328                       "\"Driver IOCTL not implemented\", \"Video RAM compare "
2329                       "failed during polygon fill test (A known defect in the "
2330                       "video chipset)\", etc."), 
2331                      Write] 
2332 karl  1.1         boolean ReportSoftErrors;
2333 karl  1.1.2.1       [Description (
2334                       "When this flag is true, the diagnostic test will report "
2335                       "'status messages'. In this context, a status message "
2336                       "indicates that the diagnostic code is at a checkpoint. "
2337                       "Examples are: \"Completion of phase 1\", \"Complex "
2338                       "pattern\", etc."), 
2339                      Write]
2340 karl  1.1         boolean ReportStatusMessages;
2341 karl  1.1.2.1       [Description (
2342                       "When this flag is true, the test will halt after finding "
2343                       "the first error."),
2344                      Write]
2345 karl  1.1         boolean HaltOnError;
2346 karl  1.1.2.1       [Description (
2347                       "When this flag is true, the test software should attempt "
2348                       "to run in an accelerated fashion either by reducing the "
2349                       "coverage or number of tests performed."), 
2350                      Write]
2351 karl  1.1         boolean QuickMode;
2352 karl  1.1.2.1       [Units ("Percent"), MinValue (0), MaxValue (100), 
2353                      Description(
2354                       "Requests the diagnostic software to reduce test coverage "
2355                       "to the specified percentage.  For example, a hard drive "
2356                       "scan test could be asked to run at 50%. The most "
2357                       "effective way to accomplish this is for the test software "
2358                       "to scan every other track, as opposed to only scanning the "
2359                       "first half of a drive. It is assumed that the effectiveness "
2360                       "of the test is impacted proportional to the percentage of "
2361                       "testing requested. Permissible values for this property "
2362                       "range from 0 to 100. \n"
2363                       "This property may not be applicable to all tests.  If it "
2364                       "can be set for a test, the value 7 (\"Supports PercentOf"
2365                       "TestCoverage\") should be entered into the DiagnosticTest's "
2366                       "Characteristics array."), 
2367                      ModelCorrespondence {"CIM_DiagnosticTest.Characteristics"}, 
2368                      Write]
2369 karl  1.1         uint8 PercentOfTestCoverage;
2370               };
2371               
2372 karl  1.1.2.1 
2373 karl  1.1     // ==================================================================
2374               //    DiagnosticResultForMSE
2375               // ==================================================================
2376 karl  1.1.2.1    [Association, Description (
2377                    "This is an association class relating diagnostic test "
2378                    "results to the ManagedSystemElement that is/was tested.") ]
2379               class CIM_DiagnosticResultForMSE {
2380                     [Key, Description (
2381                       "The diagnostic result.") ]
2382 karl  1.1        CIM_DiagnosticResult REF Result;
2383 karl  1.1.2.1       [Key, Description (
2384                       "The ManagedSystemElement to which the diagnostic result "
2385                       "applies.") ]
2386 karl  1.1        CIM_ManagedSystemElement REF SystemElement;
2387               };
2388               
2389 karl  1.1.2.1 
2390 karl  1.1     // ==================================================================
2391               //    DiagnosticResultForTest
2392               // ==================================================================
2393 karl  1.1.2.1    [Association, Description (
2394                    "This is an association class to relate the results of a test "
2395                    "to the test itself.") ]
2396               class CIM_DiagnosticResultForTest {
2397                     [Key, Min (1), Max (1), Weak,
2398                      Description ("The result object.") ]
2399 karl  1.1        CIM_DiagnosticResult REF DiagnosticResult;
2400 karl  1.1.2.1       [Min(1), Max(1), Key, 
2401                      Description ("The test that generated the result object.") ]
2402 karl  1.1        CIM_DiagnosticTest REF DiagnosticTest;
2403               };
2404               
2405 karl  1.1.2.1 
2406 karl  1.1     // ==================================================================
2407               //    DiagnosticTestForMSE
2408               // ==================================================================
2409 karl  1.1.2.1    [Association, Description(
2410                    "This is an association class that relates a DiagnosticTest "
2411                    "to a ManagedSystemElement.  Consumers wishing to 'diagnose' "
2412                    "a particular Element could query this association, for the "
2413                    "Element, to determine what tests are available.") ]
2414               class CIM_DiagnosticTestForMSE : CIM_ProvidesServiceToElement {
2415                     [Override("Antecedent"), Description (
2416                       "The test that may be run against a ManagedSystemElement.") ]
2417 karl  1.1        CIM_DiagnosticTest REF Antecedent;
2418 karl  1.1.2.1       [Override("Dependent"), Description (
2419                       "The ManagedSystemElement that can be tested.") ]
2420 karl  1.1        CIM_ManagedSystemElement REF Dependent;
2421 karl  1.1.2.1       [Units ("Seconds"), 
2422                      Description (
2423                       "Estimated number of seconds to perform the referenced "
2424                       "DiagnosticTest against the ManagedSystemElement. Since "
2425                       "execution times could vary by Element, this property is "
2426                       "located in the association between the two entities. It is "
2427                       "also captured in DiagnosticResult, in the Estimated"
2428                       "TimeOfPerforming property.\n" 
2429                       "A CIM Consumer can compare this value with the value in"
2430                       "DiagnosticResult to get an idea of what impact their"
2431                       "settings have on test execution."),
2432                      ModelCorrespondence {
2433                       "CIM_DiagnosticResult.EstimatedTimeOfPerforming"}]
2434 karl  1.1         uint32 EstimatedTimeOfPerforming;
2435 karl  1.1.2.1       [Description (
2436                       "If the DiagnosticTest referenced in this object can be run "
2437                       "concurrently against multiple SystemElements, but only "
2438                       "run one at a time for the referenced ManagedSystemElement, "
2439                       "then this boolean is set to TRUE. Alternately, if the test "
2440                       "can NOT be run concurrently irregardless of the System"
2441                       "Elements being tested, then the more general \"Is Exclusive\" "
2442                       "enumerated value (2) should be set in DiagnosticTest."
2443                       "Characteristics.") ]
2444 karl  1.1         boolean IsExclusiveForMSE;
2445               };
2446               
2447 karl  1.1.2.1 
2448 karl  1.1     // ==================================================================
2449               //    DiagnosticTestInPackage
2450               // ==================================================================
2451 karl  1.1.2.1    [Association, Aggregation, Description (
2452                    "This is an association class that identifies a Diagnostic"
2453                    "Test as made up of lower level Tests. In this case, the "
2454                    "Test identified as the GroupComponent reference (i.e, "
2455                    "the higher level test) would have the \"Is Package\" "
2456                    "enumerated value specified in DiagnosticTest."
2457                    "Characteristics.") ]
2458               class CIM_DiagnosticTestInPackage : CIM_Component {
2459                     [Override("GroupComponent"), 
2460 karl  1.1            Description (
2461                       "The DiagnosticTest object that acts as the container for all "
2462 karl  1.1.2.1         "the tests of the package.") ]
2463 karl  1.1        CIM_DiagnosticTest REF GroupComponent;
2464 karl  1.1.2.1       [Override("PartComponent"), 
2465 karl  1.1            Description (
2466                       "The DiagnosticTest object that is one of the elements of "
2467 karl  1.1.2.1         "the package.") ]
2468 karl  1.1        CIM_DiagnosticTest REF PartComponent;  
2469               };
2470 karl  1.1.2.1 
2471 karl  1.1          
2472               // ==================================================================
2473               //    DiagnosticResultInPackage
2474               // ==================================================================
2475 karl  1.1.2.1    [Association, Aggregation, Description(
2476                    "This is an association class that identifies a Diagnostic"
2477                    "Result as made up of lower level Results. In this case, the "
2478                    "Result identified as the PackageResult reference (i.e., "
2479                    "the higher level result) would have its IsPackage property "
2480                    "set to TRUE.") ]
2481               class CIM_DiagnosticResultInPackage {
2482                     [Key, Description (
2483 karl  1.1            "The DiagnosticResult object that acts as the container for all "
2484 karl  1.1.2.1        "the results of the package.") ]
2485 karl  1.1        CIM_DiagnosticResult REF PackageResult;
2486 karl  1.1.2.1       [Key, Description (
2487 karl  1.1             "The DiagnosticResult object that is one of the elements of "
2488 karl  1.1.2.1         "the package.") ]
2489 karl  1.1        CIM_DiagnosticResult REF Result; 
2490               };
2491               
2492                    
2493               // ==================================================================
2494               //    DiagnosticTestSoftware
2495               // ==================================================================
2496 karl  1.1.2.1    [Association, Description(
2497                    "This is an association class relating DiagnosticTest to "
2498                    "the SoftwareElements that provide this test. SoftwareElement "
2499                    "describes vendor/version information and other deployment "
2500                    "data.") ]
2501               class CIM_DiagnosticTestSoftware : CIM_Dependency {
2502                     [Override ("Antecedent"), Description (
2503                       "Vendor/version and other information about the software "
2504                       "that runs as the DiagnosticTest.") ]
2505 karl  1.1        CIM_SoftwareElement REF Antecedent;
2506 karl  1.1.2.1       [Override ("Dependent"), Description (
2507                       "The DiagnosticTest whose software is described.") ]
2508 karl  1.1        CIM_DiagnosticTest REF Dependent;
2509               };
2510                 
2511               
2512               // ==================================================================
2513               //    DiagnosticSettingForTest
2514               // ==================================================================
2515 karl  1.1.2.1    [Association, Description (
2516                    "This is an association class to relate test settings with "
2517                    "diagnostic tests.") ]
2518               class CIM_DiagnosticSettingForTest : CIM_ElementSetting {
2519                     [Override("Element"), Description (
2520                       "The Test that can use the Setting object.") ]
2521 karl  1.1        CIM_DiagnosticTest REF Element;
2522 karl  1.1.2.1       [Override("Setting"), Description (
2523 karl  1.1             "The Setting that can be applied to the execution of the "
2524 karl  1.1.2.1         "DiagnosticTest.") ]
2525 karl  1.1        CIM_DiagnosticSetting REF Setting;
2526               };
2527               
2528 karl  1.1.2.1 
2529 karl  1.1     // ================================================================== 
2530               // ServiceProcess 
2531               // ================================================================== 
2532 karl  1.1.2.1    [Association, Description ( 
2533                    "CIM_ServiceProcess is an association used to establish " 
2534                     "relationships between Services and Processes. " 
2535                     "It is used to indicate if a Service is running in a particular " 
2536                     "Process.  It is also used to indicate, via the ExecutionType " 
2537                     "property, if the Service started and is wholly responsible for " 
2538                     "the Process, or if the Service is running in an existing Process, " 
2539                     "perhaps with other unreleated Services, which is owned or " 
2540                     "started by a different entity. This association relates " 
2541                     "a Service with a externally visible system signature. ") ] 
2542               class CIM_ServiceProcess { 
2543                     [Key, Description ( 
2544                       "The Service whose Process is described by this "
2545                       "association.") ] 
2546                   CIM_Service REF Service; 
2547                     [Key, Description ( 
2548                       "The Process which represents or hosts the executing " 
2549                       "Service. " ) ] 
2550                   CIM_Process REF Process; 
2551                     [Description( 
2552                       "Enumeration indicating how the Service runs in the context "
2553 karl  1.1.2.1         "of, or owns the Process. \"Unknown\" indicates that the "
2554                       "ExecutionType is not known. \"Other\" indicates that the "
2555                       "ExecutionType does not match any of the values in the "
2556                       "ExecutionType enumeration. \"Executes in Existing Process\" "
2557                       "indicates that the Service is hosted in a Process that " 
2558                       "already exists in the system.  The lifecycle of the " 
2559                       "Service is separate from that of the Process. "
2560                       "\"Exeutes as Independent Process\" indicates that the "
2561                       "Service is responsible for the lifecycle of the Process. "
2562                       "When the Service is started, the Process is created. " 
2563                       "For example, ServletEngines can run \"InProcess\" " 
2564                       "within the existing Apache processes or \"OutOfProcess\" in "
2565                       "its own servlet engine process.  In this case the Apache "
2566                       "process would communicate with the servlet engine process "
2567                       "based on the content of the request.  The association may "
2568                       "be many to many." ), 
2569                      Values {"Unknown", "Other", "Executes in Existing Process", 
2570                              "Executes as Independent Process" } ] 
2571                   uint16 ExecutionType; 
2572 karl  1.1     }; 
2573               
2574               // ===================================================================
2575               // end of file
2576               // ===================================================================
2577               
2578               

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2