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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2