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

   1 karl  1.2 // ===================================================================
   2           // Title:       Core MOF Specification 2.6
   3           // Filename:    CIM_Core26.mof
   4           // Version:     2.6.0
   5           // Status:      Final
   6           // Date:        06/04/2002
   7           // ===================================================================
   8           // Copyright 1998-2002 Distributed Management Task Force, Inc. (DMTF).
   9           // All rights reserved.  
  10           // DMTF is a not-for-profit association of industry members dedicated 
  11           // to promoting enterprise and systems management and interoperability. 
  12           // DMTF specifications and documents may be reproduced for uses
  13           // consistent with this purpose by members and non-members, 
  14           // provided that correct attribution is given. 
  15           // As DMTF specifications may be revised from time to time, 
  16           // the particular version and release date should always be noted.
  17           //
  18           // Implementation of certain elements of this standard or proposed 
  19           // standard may be subject to third party patent rights, including 
  20           // provisional patent rights (herein "patent rights"). DMTF makes 
  21           // no representations to users of the standard as to the existence 
  22 karl  1.2 // of such rights, and is not responsible to recognize, disclose, or
  23           // identify any or all such third party patent right, owners or 
  24           // claimants, nor for any incomplete or inaccurate identification or 
  25           // disclosure of such rights, owners or claimants. DMTF shall have no 
  26           // liability to any party, in any manner or circumstance, under any 
  27           // legal theory whatsoever, for failure to recognize, disclose, or 
  28           // identify any such third party patent rights, or for such party’s
  29           // reliance on the standard or incorporation thereof in its product, 
  30           // protocols or testing procedures. DMTF shall have no liability to 
  31           // any party implementing such standard, whether such implementation 
  32           // is foreseeable or not, nor to any patent owner or claimant, and shall 
  33           // have no liability or responsibility for costs or losses incurred if 
  34           // a standard is withdrawn or modified after publication, and shall be
  35           // indemnified and held harmless by any party implementing the 
  36           // standard from any and all claims of infringement by a patent owner 
  37           // for such implementations.
  38           // 
  39           // For information about patents held by third-parties which have 
  40           // notified the DMTF that, in their opinion, such patent may relate to 
  41           // or impact implementations of DMTF standards, visit 
  42           // http://www.dmtf.org/about/policies/disclosures.php.
  43 karl  1.2 // ===================================================================
  44           // Description: The Core Model defines basic management concepts 
  45           //              such as ManagedElements, Systems, Services, Collections
  46           //              and StatisticalInformation.  Its classes form the
  47           //              top of the CIM object hierarchy.
  48           //
  49           //              The object classes below are listed in an order that
  50           //              avoids forward references. Required objects, defined 
  51           //              by other working groups, are omitted.
  52           // ==================================================================
  53           //  Date 06/16/1998 - V2.0 Errata
  54           //      - CR224 CIM_ missed in 3 class names
  55           //          CIM_ProductPhysicalElements, CIM_FRUPhysicalElements
  56           //          and CIM_FRUIncludesProduct
  57           //      - CR231 Format for specifying Propagated keys uses
  58           //          period, not colon
  59           //  Date 09/29/1998 - Version 2.1 
  60           //      - CR238 Add CompatibleProduct association
  61           //      - CR239 Add ProductProductDependency association
  62           //      - CR240 Add statistics-related objects
  63           //          CIM_StatisticalInformation, CIM_Statistics and
  64 karl  1.2 //          CIM_RelatedStatistics
  65           //      - CR241 Remove "general" from the description of the
  66           //          compute capabilities of ComputerSystem
  67           //      - CR242a Add to the enumeration for MSE.Status
  68           //      - CR249 Add LastErrorCode, ErrorDescription and
  69           //          ErrorCleared properties to LogicalDevice
  70           //      - CR250 Add CreationClassName (key) to PhysicalElement
  71           //      - CR252 Add OtherIdentifyingInfo and PoweredOn properties
  72           //          to PhysicalElement
  73           //      - CR270 Correct the descriptions for Product and FRU
  74           //      - CR272 Remove repetition of the Values array from the
  75           //          descriptions of several properties
  76           //      - CR276b Add to the enumeration for LogicalDevice.
  77           //          Availability 
  78           //      - CR282 Add PartNumber property to PhysicalElement
  79           //  Date 06/08/1999 - Version 2.2
  80           //      - CR291a Write qualifier "False" by default
  81           //      - CR295a Clarify Descriptions for CIM_Product and its
  82           //          property, IdentifyingNumber 
  83           //      - CR300a Enhance Description for CIM_SettingContext
  84           //      - CR304 Create the NullValue qualifier
  85 karl  1.2 //      - CR305 Add DisableOverride flavor to In, Out, Override
  86           //      - CR306 Add DisableOverride flavor to Aggregation 
  87           //          (Already present in V2.1, Spec change only)
  88           //      - CR307b Allow ArrayType, MaxLen, Units, ValueMap, Values,
  89           //          Syntax and SyntaxType qualifiers to pertain to methods
  90           //          and method parameters 
  91           //      - CR308a Add LogicalIdentity association
  92           //      - CR309 Remove Min(1) from ManagedSystemElement 
  93           //          reference of ElementSetting
  94           //      - CR315 Create ProvidesServiceToElement association
  95           //      - CR317 Create DefaultSetting association
  96           //      - CR320 Add UnknownValues and UnsupportedValues qualifiers
  97           //      - CR321 Create ConfigurationComponent association
  98           //      - CR322b and 323a - Add 4 methods to 'apply' CIM_Settings
  99           //      - CR324a Add CollectionOfMSE object and its associations
 100           //      - CR352b New statuses in ManagedSystemElement.Status
 101           //          (NonRecover and Stressed added)
 102           //      - CR353b Add EnableDevice method to LogicalDevice
 103           //      - CR355a Use Values-ValueMap qualifiers for the PowerState  
 104           //          parameter of LogicaDevice.SetPowerState / Update
 105           //          the method descriptions indicating that Values-
 106 karl  1.2 //          ValueMap qualifiers can be defined for return codes
 107           //      - CR356a Put keys on the references of Dependency,
 108           //          Component, and all of the non-subclassed Setting, 
 109           //          Configuration, Product and Collection associations 
 110           //      - CR359 Clarify PhysicalElement.Manufacturer and 
 111           //          Product.Vendor
 112           //      - CR361a Add Terminal and DisplayName qualifiers
 113           //      - CR362a Add 3 properties to ComputerSystem (Dedicated,
 114           //          OtherIdentifyingInfo and IdentifyingDescriptions) /
 115           //          Update the Description for System.Roles
 116           //      - CR376 Add OtherIdentifyingInfo and 
 117           //          IdentifyingDescriptions properties to LogicalDevice
 118           //      - CR387 Add PowerOnHours and TotalPowerOnHours properties
 119           //          to LogicalDevice / Update the Availability enum
 120           //      - CR389 Add MinValue and MaxValue qualifiers
 121           //      - CR390a Create subclasses of StatisticalInformation
 122           //          to formalize naming
 123           //      - CR391b 400a and 401b - Add Counter, Gauge, BitMap, 
 124           //          BitValue and Static qualifiers / Update MinValue 
 125           //          and MaxValue to apply to methods and parameters
 126           //      - CR396d, Add NonlocalType and SourceType qualifiers
 127 karl  1.2 //      - CR404a, Add ServiceComponent association
 128           //      - CR405, Add Counter qualifier to PowerOnHours and
 129           //          and TotalPowerOnHours properties of LogicalDevice
 130           //      - CR411 Add Provider qualifier
 131           //      - CR413 Fix propagation of keys from 390a
 132           //  Date 07/06/1999 - Version 2.2.1
 133           //      - CR423 Locale should be specified as en_US
 134           //      - CR425 Update the DMI MappingStrings using the June
 135           //          release of the master.mif
 136           //  Date 02/18/2000 - Version 2.3
 137           //      - CR433 New properties and enums from Master.MIF 
 138           //          and new ModelCorrespondences
 139           //      - CR444 Add the RestartService property to the 
 140           //          CIM_ServiceServiceDependency association in the 
 141           //          Core mof to support diagnostics. 
 142           //      - CR445e Modify the LogicalDevice for Fault Tolerance: 
 143           //          Update the Availability property; Add an 
 144           //          AdditionalAvailability property; Change the Description 
 145           //          for the StatusInfo property; Add new methods;
 146           //          Add a MaxQuiesceTime property
 147           //      - CR446c add Octetstring Qualifier 
 148 karl  1.2 //      - CR448b Add ManagedElement, Collection and 
 149           //          MemberOfCollection Classes, update ManagedSystemElement 
 150           //          and Dependency classes accordingly
 151           //      - CR456 Add "Management" to the end of the Values array for 
 152           //          CIM_ComputerSystem.Dedicated
 153           //      - CR458c Add a new association, CIM_Synchronized  
 154           //      - CR461 Subclass from CIM_ManagedElement, CIM_Collection and 
 155           //          CIM_MemberOfCollection; Remove Description & Caption where 
 156           //          it is inherited
 157           //      - CR462 Update the Description for ManagedElement; Add qualifier in 
 158           //          MemberOfCollection
 159           //  Date 06/04/2000 - Version 2.3.2
 160           //      - Errata, Changes in CR448b not complete / Missing delete of
 161           //          Caption and Description properties where inherited from
 162           //          CIM_ManagedElement for CIM_CollectionOfMSEs
 163           //  Date 06/09/2000 - Version 2.4
 164           //      - CR481 Change the CIM_Statistics association to reference ManagedElement,
 165           //           not just ManagedSystemElement.
 166           //      - CR491a Add to new values to the enumeration for 
 167           //          ManagedSystemElement.Status and update the property's Description.
 168           //  Date 07/14/2000 - Version 2.4
 169 karl  1.2 //      - CR505 - 1. Clarify the subclassing of ServiceServiceDependency
 170           //          2. ProvidesServiceToElement needs to come before 
 171           //             ServiceServiceDependency in MOF
 172           //          3. Update the Description for CollectionOfMSEs to include 'bags'
 173           //      - CR519 ERRATA CIM 2.3: correct ValueMap syntax errors in 
 174           //          CIM_LogicalDevice.Availability 
 175           //  Date 12/01/2000 - Version 2.5
 176           //      - CR514j Add Deprecated qualifier
 177           //      - CR529 CIM_LogicalDisk.StatusInfo property description refers to  
 178           //          it as a string even though the property is a uint16
 179           //      - CR532 Update description on PhysicalElement.OtherIdentifyingInfo 
 180           //          to remove word "asset"
 181           //      - CR534 Update MappingStrings Qualifiers to stay in sync with 
 182           //          updates to the MASTER.MIF.
 183           //      - CR536a Add EXPERIMENTAL Qualifier
 184           //      - CR537a Add Stopped as a valid state in the enumeration for 
 185           //          ManagedSystemElement.Status.
 186           //      - CR544a Add DN qualifier 
 187           //      - CR447e Add PropertyUsage qualifier
 188           //      - CR548a Add a methods to CIM_Setting to allow a subset of the 
 189           //          properties in the CIM_Setting instance to be verified 
 190 karl  1.2 //          and/or applied
 191           //      - CR557 Change the reference for ProvidesServiceToElement.
 192           //          Dependent to ME (was MSE) 
 193           //      - CR564 Move AdminDomain to the Core Model, change to concrete, 
 194           //          and update description 
 195           //      - CR568a Corrections to CIM_CollectionOfMSEs Description 
 196           //      - CR569 Add EmbeddedObject qualifier 
 197           //      - CR581 Revise the description of CIM_AdminDomain.NameFormat 
 198           //          to alter reference to Network model 
 199           //      - CR585 Company review Changes from Compaq
 200           //          1) Remove word "schema" from qualifier scope declarations 
 201           //             per CIM_Spec_Errat221
 202           //  Date 05/20/2001 - Version 2.5 Final
 203           //      Changed format of classes to be consistent.
 204           //  Date 05/24/2001 - Version 2.6
 205           //      - CR583d Move the following properties and methods from
 206           //          UnitaryComputerSystem to ComputerSystem:
 207           //          ResetCapability, PowerManagementCapabilites, and 
 208           //          SetPowerState.
 209           //      - CR587 Add boolean CustomerReplaceable to the FRU class.
 210           //      - CR588 Add new ReplaceableProductFRU association
 211 karl  1.2 //      - CR608 Correct the mapping strings associated with 
 212           //          System.PrimaryOwnerName and System.Primary OwnerContact 
 213           //          properties.
 214           //  Date 08/23/2001 - Version 2.6
 215           //      - CR597 Add ContainedDomain aggregation to AdminDomain.
 216           //  Date 03/10/2002 - Version 2.6 Final
 217           //      - CR733 Specify "IN (false)" for all "OUT only" parameters.
 218           //      - CR746 Add the version qualifier to all classes.
 219           //      - CR827 Clean up descriptions for AdminDomain, Realizes, and
 220           //          SupportAccess.
 221           //
 222           // ==================================================================
 223           
 224           // ==================================================================
 225           // Pragmas
 226           // ==================================================================
 227           #pragma locale ("en_US")
 228           
 229           // ==================================================================
 230           // Qualifiers
 231           // ==================================================================
 232 karl  1.2 Qualifier Abstract : boolean = false, Scope(class, association, 
 233               indication), Flavor(DisableOverride, Restricted);
 234           Qualifier Aggregate: boolean = false, Scope (reference),
 235               Flavor(DisableOverride);
 236           Qualifier Aggregation : boolean = false, Scope(association),
 237               Flavor(DisableOverride);
 238           Qualifier Alias : string = null, Scope(property, reference, 
 239               method), Flavor(Translatable);
 240           Qualifier ArrayType : string = "Bag", Scope(property, parameter);
 241           Qualifier Association : boolean = false, Scope(class, association), 
 242                 Flavor(DisableOverride);
 243           Qualifier BitMap : string[], Scope(property, method, parameter);
 244           Qualifier BitValues : string[], Scope(property, method,
 245               parameter), Flavor(Translatable);
 246           Qualifier Counter : boolean = false, Scope(property, method, 
 247               parameter);
 248           Qualifier Delete : boolean = false, Scope(association, reference);
 249           Qualifier Deprecated : string [], Scope(class, association, property, method);
 250           Qualifier Description : string = null, Scope(any), 
 251               Flavor(Translatable);
 252           Qualifier DisplayName : string = null, Scope(any),
 253 karl  1.2     Flavor(Translatable);
 254           Qualifier DN : boolean=false, 
 255               Scope(property, parameter), Flavor(DisableOverride); 
 256           Qualifier EmbeddedObject : boolean = false, Scope(property);
 257           Qualifier Expensive : boolean = false, 
 258               Scope(property, reference, method, class, association);
 259           Qualifier Experimental : boolean = false, 
 260               Scope(any), Flavor (DisableOverride); 
 261           Qualifier Gauge : boolean = false, Scope(property, method, 
 262               parameter);
 263           Qualifier Ifdeleted : boolean = false, Scope(association, 
 264               reference);
 265           Qualifier In : boolean = true, Scope(parameter),
 266               Flavor(DisableOverride);
 267           Qualifier Indication : boolean = false, Scope(class, indication), 
 268               Flavor(DisableOverride);
 269           Qualifier Invisible : boolean = false,
 270               Scope(reference, association, class, property, method);
 271           Qualifier Key : boolean = false, Scope(property, reference), 
 272               Flavor(DisableOverride);
 273           Qualifier Large : boolean = false, Scope(property, class);
 274 karl  1.2 Qualifier MappingStrings : string[],
 275               Scope(class, property, association, indication, reference);
 276           Qualifier Max : uint32 = null, Scope(reference);
 277           Qualifier MaxLen : uint32 = null, Scope(property, method, 
 278               parameter);
 279           Qualifier MaxValue : sint64 = null, Scope(property, method,
 280               parameter);
 281           Qualifier Min : uint32 = 0, Scope(reference);
 282           Qualifier MinValue : sint64 = null, Scope(property, method,
 283               parameter);
 284           Qualifier ModelCorrespondence : string[], Scope(property);
 285           Qualifier Nonlocal : string = null, Scope(reference);
 286           Qualifier NonlocalType : string = null, Scope(reference);
 287           Qualifier NullValue : string = null, Scope (property),
 288                 Flavor(DisableOverride);
 289           Qualifier Octetstring : boolean = false, Scope(property, parameter);
 290           Qualifier Out : boolean = false, Scope(parameter),
 291               Flavor(DisableOverride);
 292           Qualifier Override : string = null, Scope(property, method, 
 293               reference), Flavor(DisableOverride);
 294           Qualifier Propagated : string = null, Scope(property),
 295 karl  1.2     Flavor(DisableOverride);
 296           Qualifier PropertyUsage : string = "CurrentContext", Scope(property) ; 
 297           Qualifier Provider : string = null, Scope(any);
 298           Qualifier Read : boolean = true, Scope(property);
 299           Qualifier Required : boolean = false, Scope(property);
 300           Qualifier Revision : string = ".5", Scope(class, 
 301               association, indication ), Flavor(Translatable);
 302           Qualifier Schema : string = null, Scope (property, method), 
 303               Flavor(DisableOverride, Translatable);
 304           Qualifier Source : string = null, Scope(class, association, 
 305               indication);
 306           Qualifier SourceType : string = null, Scope(class, association, 
 307                 indication, reference);
 308           Qualifier Static : boolean = false, Scope(method, property),
 309               Flavor(DisableOverride);
 310           Qualifier Syntax : string = null, Scope(property, reference,
 311               method, parameter);
 312           Qualifier SyntaxType : string = null, Scope(property, reference,
 313               method, parameter);
 314           Qualifier Terminal : boolean = FALSE, Scope(class);
 315           Qualifier TriggerType : string = null,
 316 karl  1.2     Scope(class, property, reference, method, association, 
 317               indication);
 318           Qualifier Units : string = null, Scope(property, method,  
 319               parameter), Flavor(Translatable);
 320           Qualifier UnknownValues : string[], Scope(property),
 321               Flavor(DisableOverride);
 322           Qualifier UnsupportedValues : string[], Scope(property),
 323               Flavor(DisableOverride);
 324           Qualifier ValueMap : string[], Scope(property, method, parameter);
 325           Qualifier Values : string[], Scope(property, method, parameter), 
 326               Flavor(Translatable);
 327           Qualifier Version : string = "V2.5", Scope(class, 
 328               association, indication), Flavor(Translatable);
 329           Qualifier Weak : boolean = false, Scope(reference), 
 330                 Flavor(DisableOverride, ToSubclass);
 331           Qualifier Write : boolean = false, Scope(property);
 332           
 333           
 334           // ==================================================================
 335           //  UML Page 1 - ManagedElement
 336           // ==================================================================
 337 karl  1.2 // ==================================================================
 338           //    ManagedElement
 339           // ================================================================== 
 340              [Abstract, Version ("2.6.0"), Description (
 341                "ManagedElement is an abstract class that provides a common "  
 342                "superclass (or top of the inheritance tree) for the "
 343                "non-association classes in the CIM Schema.") ]
 344           class CIM_ManagedElement {  
 345                 [MaxLen (64), Description (  
 346                   "The Caption property is a short textual description (one-"    
 347                   "line string) of the object.") ]   
 348              string Caption;  
 349                 [Description (  
 350                   "The Description property provides a textual description of "
 351                   "the object.") ]   
 352              string Description;    
 353           };
 354                
 355           
 356           // ==================================================================
 357           //    Dependency   
 358 karl  1.2 // ==================================================================
 359              [Association, Abstract, Version ("2.6.0"), Description (   
 360                "CIM_Dependency is a generic association used to establish "   
 361                "dependency relationships between ManagedElements.") ]    
 362           class CIM_Dependency {   
 363                 [Key, Description (   
 364                   "Antecedent represents the independent object in this "   
 365                   "association.") ]    
 366              CIM_ManagedElement REF Antecedent;   
 367                 [Key, Description (   
 368                   "Dependent represents the object dependent on the "   
 369                   "Antecedent.") ]    
 370              CIM_ManagedElement REF Dependent;   
 371           };   
 372            
 373                            
 374           // ================================================================== 
 375           //    ManagedSystemElement
 376           // ==================================================================
 377              [Abstract, Version ("2.6.0"), Description (
 378                "CIM_ManagedSystemElement is the base class for the System "
 379 karl  1.2      "Element hierarchy. Membership Criteria: Any distinguishable "
 380                "component of a System is a candidate for inclusion in this "
 381                "class. Examples: software components, such as files; and "
 382                "devices, such as disk drives and controllers, and physical "
 383                "components such as chips and cards.") ] 
 384           class CIM_ManagedSystemElement : CIM_ManagedElement {
 385                 [Description (
 386                   "A datetime value indicating when the object was installed. "
 387                   "A lack of a value does not indicate that the object is not "
 388                   "installed."), 
 389                  MappingStrings {"MIF.DMTF|ComponentID|001.5"} ] 
 390              datetime InstallDate;
 391                 [MaxLen (256), Description (
 392                   "The Name property defines the label by which the object is "
 393                   "known. When subclassed, the Name property can be overridden "
 394                   "to be a Key property.") ] 
 395              string Name;
 396                 [MaxLen (10), Description ( 
 397                   "  A string indicating the current status of the object. " 
 398                   "Various operational and non-operational statuses are " 
 399                   "defined. Operational statuses are \"OK\", \"Degraded\", " 
 400 karl  1.2         "\"Stressed\" and \"Pred Fail\". \"Stressed\" indicates that " 
 401                   "the Element is functioning, but needs attention. Examples " 
 402                   "of \"Stressed\" states are overload, overheated, etc. The " 
 403                   "condition \"Pred Fail\" (failure predicted) indicates that " 
 404                   "an Element is functioning properly but predicting a failure " 
 405                   "in the near future. An example is a SMART-enabled hard " 
 406                   "drive. \n" 
 407                   "  Non-operational statuses can also be specified. These " 
 408                   "are \"Error\", \"NonRecover\", \"Starting\", \"Stopping\", " 
 409                   " \"Stopped\", " 
 410                   "\"Service\", \"No Contact\" and \"Lost Comm\". \"NonRecover\" " 
 411                   "indicates that a non-recoverable error has occurred. " 
 412                   "\"Service\" describes an Element being configured, maintained, " 
 413                   "cleaned, or otherwise administered. This status could apply " 
 414                   "during mirror-resilvering of a disk, reload of a user " 
 415                   "permissions list, or other administrative task. Not all such " 
 416                   "work is on-line, yet the Element is neither \"OK\" nor in " 
 417                   "one of the other states. \"No Contact\" indicates that the " 
 418                   "current instance of the monitoring system has knowledge of " 
 419                   "this Element but has never been able to establish " 
 420                   "communications with it. \"Lost Comm\" indicates that the " 
 421 karl  1.2         "ManagedSystemElement is known to exist and has been contacted " 
 422                   "successfully in the past, but is currently unreachable. " 
 423                   "\"Stopped\" indicates that the ManagedSystemElement is known " 
 424                   "to exist, it is not operational (i.e. it is unable to " 
 425                   "provide service to users), but it has not failed. It has " 
 426                   "purposely been made non-operational. The Element " 
 427                   "may have never been \"OK\", the Element may have initiated its " 
 428                   "own stop, or a management system may have initiated the stop."), 
 429                  ValueMap {"OK", "Error", "Degraded", "Unknown", "Pred Fail", 
 430                            "Starting", "Stopping", "Service", "Stressed", 
 431                            "NonRecover", "No Contact", "Lost Comm", "Stopped"} ] 
 432              string Status; 
 433           };
 434           
 435           
 436           // ==================================================================
 437           //    Component
 438           // ==================================================================
 439              [Association, Abstract, Aggregation, Version ("2.6.0"), 
 440               Description (
 441                "CIM_Component is a generic association used to establish "
 442 karl  1.2      "'part of' relationships between Managed System Elements. For "
 443                "example, the SystemComponent association defines parts of "
 444                "a System.") ] 
 445           class CIM_Component {
 446                 [Aggregate, Key, Description (
 447                   "The parent element in the association.") ] 
 448              CIM_ManagedSystemElement REF GroupComponent;
 449                 [Key, Description (
 450                   "The child element in the association.") ] 
 451              CIM_ManagedSystemElement REF PartComponent;
 452           };
 453           
 454                
 455           // ================================================================= 
 456           //    PhysicalElement
 457           // ==================================================================
 458              [Abstract, Version ("2.6.0"), Description (
 459                "Subclasses of CIM_PhysicalElement define any component of a " 
 460                "System that has a distinct physical identity. Instances of "
 461                "this class can be defined in terms of labels that can be "
 462                "physically attached to the object. All Processes, Files, "
 463 karl  1.2      "and LogicalDevices are considered not to be Physical"
 464                "Elements. For example, it is not possible to attach a "
 465                "label to a modem. It is only possible to attach a label to "
 466                "the card that implements the modem. The same card could "
 467                "also implement a LAN  adapter. These are tangible Managed"
 468                "SystemElements (usually actual hardware items) that have a "
 469                "physical manifestation of some sort. A ManagedSystem"
 470                "Element is not necessarily a discrete component. For "
 471                "example, it is possible for a single Card (which is a type "
 472                "of PhysicalElement) to host more than one LogicalDevice. "
 473                "The card would be represented by a single PhysicalElement "
 474                "associated with multiple Devices.") ] 
 475           class CIM_PhysicalElement : CIM_ManagedSystemElement {
 476                 [Key, MaxLen (256), Description (
 477                   "An arbitrary string that uniquely identifies the Physical"
 478                   "Element and serves as the Element's key.  The Tag property "
 479                   "can contain information such as asset tag or serial number "
 480                   "data. The key for PhysicalElement is placed very high in the "
 481                   "object hierarchy in order to independently identify the "
 482                   "hardware/entity, regardless of physical placement in or on "
 483                   "Cabinets, Adapters, etc.  For example, a hotswappable or "
 484 karl  1.2         "removeable component may be taken from its containing "
 485                   "(scoping) Package and be temporarily unused.  The object "
 486                   "still continues to exist - and may even be inserted into a "
 487                   "different scoping container.  Therefore, the key for Physical"
 488                   "Element is an arbitrary string and is defined independently "
 489                   "of any placement or location-oriented hierarchy.") ]
 490              string Tag;
 491                 [Key, MaxLen (256), Description (
 492                   "CreationClassName indicates the name of the class or the "
 493                   "subclass used in the creation of an instance. When used "
 494                   "with the other key properties of this class, this property "
 495                   "allows all instances of this class and its subclasses to "
 496                   "be uniquely identified.") ]
 497              string CreationClassName;
 498                 [MaxLen (256), Description (
 499                   "The name of the organization responsible for producing the "
 500                   "PhysicalElement. This may be the entity from whom the Element "
 501                   "is purchased, but this is not necessarily true. The latter "
 502                   "information is contained in the Vendor property of "
 503                   "CIM_Product.") ] 
 504              string Manufacturer;
 505 karl  1.2       [MaxLen (64), Description (
 506                   "The name by which the PhysicalElement is generally known.") ] 
 507              string Model;
 508                 [MaxLen (64), Description (
 509                   "The stock keeping unit number for this PhysicalElement.") ] 
 510              string SKU;
 511                 [MaxLen (64), Description (
 512                   "A manufacturer-allocated number used to identify the Physical"
 513                   "Element.") ] 
 514              string SerialNumber;
 515                 [MaxLen (64), Description (
 516                   "A string indicating the version of the PhysicalElement.") ] 
 517              string Version;
 518                 [MaxLen (256), Description (
 519                   "The part number assigned by the organization responsible for "
 520                   "producing or manufacturing the PhysicalElement.") ]
 521              string PartNumber;
 522                 [Description (
 523                   "OtherIdentifyingInfo captures additional data, beyond that of " 
 524                   "Tag information, that could be used to identify a Physical" 
 525                   "Element. One example is bar code data associated with an " 
 526 karl  1.2         "Element that also has an asset tag. Note that if only bar " 
 527                   "code data is available and is unique/able to be used as an " 
 528                   "Element key, this property would be NULL and the bar code " 
 529                   "data used as the class key, in the Tag property.") ] 
 530              string OtherIdentifyingInfo;
 531                 [Description (
 532                   "Boolean indicating that the PhysicalElement is powered on "
 533                   "(TRUE), or is currently off (FALSE).") ]
 534              boolean PoweredOn;
 535                 [Description (
 536                   "Date that this PhysicalElement was manufactured.") ]
 537              datetime ManufactureDate;
 538           };
 539           
 540                
 541           // ==================================================================
 542           //    LogicalElement
 543           // ==================================================================
 544              [Abstract, Version ("2.6.0"), Description (
 545                "CIM_LogicalElement is a base class for all the components of "
 546                "a System that represent abstract system components, such "
 547 karl  1.2      "as Files, Processes, or LogicalDevices.") ] 
 548           class CIM_LogicalElement : CIM_ManagedSystemElement {
 549           };
 550           
 551                
 552           // ==================================================================
 553           //    LogicalIdentity
 554           // ==================================================================
 555              [Association, Abstract, Version ("2.6.0"), Description (
 556                "CIM_LogicalIdentity is an abstract and generic association, "
 557                "indicating that two LogicalElements represent different "
 558                "aspects of the same underlying entity. This relationship "
 559                "conveys what could be defined with multiple inheritance. It "
 560                "is restricted to the 'logical' aspects of a ManagedSystem"
 561                "Element. In most scenarios, the Identity relationship is "
 562                "determined by the equivalence of Keys or some other "
 563                "identifying properties of the related Elements. The "
 564                "association should only be used in well understood scenarios. "
 565                "This is why the association is abstract - allowing more "
 566                "concrete definition and clarification in subclasses. One of "
 567                "the scenarios where this relationship is reasonable is to "
 568 karl  1.2      "represent that a Device is both a 'bus' entity and a "
 569                "'functional' entity. For example, a Device could be both a "
 570                "USB (bus) and a Keyboard (functional) entity.") ]
 571           class CIM_LogicalIdentity {
 572                 [Key, Description (
 573                   "SystemElement represents one aspect of the Logical"
 574                   "Element.") ]
 575              CIM_LogicalElement ref SystemElement;
 576                 [Key, Description (
 577                   "SameElement represents an alternate aspect of the "
 578                   "System entity.") ]
 579              CIM_LogicalElement ref SameElement;
 580           };
 581           
 582           
 583           // ==================================================================
 584           //    Synchrononized
 585           // ==================================================================
 586              [Association, Version ("2.6.0"), Description (
 587                "Indicates that two LogicalElements were aligned or made to "
 588                "be equivalent at the specified point in time. If the boolean "
 589 karl  1.2      "property SyncMaintained is TRUE, then synchronization "
 590                "of the Elements is preserved. Both like and unlike objects "
 591                "may be synchronized. For example, two WatchDog timers may be "
 592                "aligned, or the contents of a LogicalFile may be synchronized "
 593                "with the contents of a StorageExtent.") ]
 594           class CIM_Synchronized {
 595                 [Key, Description (
 596                   "SystemElement represents one LogicalElement that is "
 597                   "synchronized with the entity referenced as SyncedElement.") ]
 598              CIM_LogicalElement ref SystemElement;
 599                 [Key, Description (
 600                   "SyncedElement represents another LogicalElement that is "
 601                   "synchronized with the entity referenced as SystemElement.") ]
 602              CIM_LogicalElement ref SyncedElement;
 603                 [Description (
 604                   "The point in time that the Elements were synchronized.") ]
 605              datetime WhenSynced;
 606                 [Description (
 607                   "Boolean indicating whether synchronization is "
 608                   "maintained.") ]
 609              boolean SyncMaintained;
 610 karl  1.2 };
 611           
 612           
 613           // ===================================================================
 614           //    LogicalDevice
 615           // ===================================================================
 616              [Abstract, Version ("2.6.0"), Description (
 617                "An abstraction or emulation of a hardware entity, that may "
 618                "or may not be Realized in physical hardware. Any "
 619                "characteristics of a LogicalDevice that are used to manage "
 620                "its operation or configuration are contained in, or "
 621                "associated with, the LogicalDevice object. Examples of the "
 622                "operational properties of a Printer would be paper sizes "
 623                "supported, or detected errors. Examples of the configuration "
 624                "properties of a Sensor Device would be threshold settings. "
 625                "Various configurations could exist for a LogicalDevice. "
 626                "These configurations could be contained in Setting objects "
 627                "and associated with the LogicalDevice.") ] 
 628           class CIM_LogicalDevice : CIM_LogicalElement {
 629                 [Propagated("CIM_System.CreationClassName"), 
 630                  Key, MaxLen (256), Description (
 631 karl  1.2         "The scoping System's CreationClassName.") ]
 632              string SystemCreationClassName;
 633                 [Propagated("CIM_System.Name"),
 634                  Key, MaxLen (256), Description (
 635                   "The scoping System's Name.") ]
 636              string SystemName;
 637                 [Key, MaxLen (256), Description (
 638                   "CreationClassName indicates the name of the class or "
 639                   "the subclass used in the creation of an instance. When "
 640                   "used with the other key properties of this class, this "
 641                   "property allows all instances of this class and its "
 642                   "subclasses to be uniquely identified.") ]
 643              string CreationClassName;
 644                 [Key, MaxLen (64), Description (
 645                   "An address or other identifying information to uniquely "
 646                   "name the LogicalDevice.") ]
 647              string DeviceID;
 648                 [Description (
 649                   "Boolean indicating that the Device can be power managed "
 650                   "- ie, put into a power save state. This boolean does not "
 651                   "indicate that power management features are currently "
 652 karl  1.2         "enabled, or if enabled, what features are supported. "
 653                   "Refer to the PowerManagementCapabilities array for this "
 654                   "information. If this boolean is false, the integer value "
 655                   "1, for the string, \"Not Supported\", should be the only "
 656                   "entry in the PowerManagementCapabilities array.") ]    
 657              boolean PowerManagementSupported;
 658                 [Description(
 659                   "Indicates the specific power-related capabilities of a "
 660                   "LogicalDevice. The array values, 0=\"Unknown\", 1="
 661                   "\"Not Supported\" and 2=\"Disabled\" are self-explanatory. "
 662                   "The value, 3=\"Enabled\" indicates that the power management "
 663                   "features are currently enabled but the exact feature set "
 664                   "is unknown or the information is unavailable. "
 665                   "\"Power Saving Modes Entered Automatically\" (4) describes "
 666                   "that a Device can change its power state based on usage or "
 667                   "other criteria. \"Power State Settable\" (5) indicates that "
 668                   "the SetPowerState method is supported. \"Power Cycling "
 669                   "Supported\" (6) indicates that the SetPowerState method "
 670                   "can be invoked with the PowerState input variable set to 5 ("
 671                   "\"Power Cycle\"). \"Timed Power On Supported\" (7) indicates "
 672                   "that the SetPowerState method can be invoked with the Power"
 673 karl  1.2         "State input variable set to 5 (\"Power Cycle\") and the Time "
 674                   "parameter set to a specific date and time, or interval, "
 675                   "for power-on."),
 676                  ValueMap {"0", "1", "2", "3", "4", "5", "6", "7"},
 677                  Values {"Unknown", "Not Supported", "Disabled", 
 678                          "Enabled", "Power Saving Modes Entered Automatically",
 679                          "Power State Settable", "Power Cycling Supported",
 680                          "Timed Power On Supported"} ]
 681              uint16 PowerManagementCapabilities[];
 682                 [Description (
 683                   "The primary availability and status of the Device. (Additional "
 684                   "status information can be specified using the Additional"
 685                   "Availability array property.) For example, the Availability "
 686                   "property indicates that the Device is running and has full "
 687                   "power (value=3), or is in a warning (4), test (5), degraded "
 688                   "(10) or power save state (values 13-15 and 17). Regarding the "
 689                   "Power Save states, these are defined as follows: "
 690                   "Value 13 (\"Power Save - Unknown\") indicates "
 691                   "that the Device is known to be in a power save mode, but its "
 692                   "exact status in this mode is unknown; 14 (\"Power Save - Low "
 693                   "Power Mode\") indicates that the Device is in a power save "
 694 karl  1.2         "state but still functioning, and may exhibit degraded "
 695                   "performance; 15 (\"Power Save - Standby\") describes that "
 696                   "the Device is not functioning but could be brought to full "
 697                   "power 'quickly'; and value 17 (\"Power Save - Warning\") "
 698                   "indicates that the Device is in a warning state, though also "
 699                   "in a power save mode."), 
 700                  ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9",
 701                           "10", "11", "12", "13", "14", "15", "16", "17", "18", 
 702                           "19", "20", "21"},
 703                  Values {"Other", "Unknown", "Running/Full Power", "Warning", 
 704                          "In Test", "Not Applicable", "Power Off", "Off Line", 
 705                          "Off Duty", "Degraded", "Not Installed", "Install Error",
 706                          "Power Save - Unknown", "Power Save - Low Power Mode", 
 707                          "Power Save - Standby", "Power Cycle","Power Save - Warning", 
 708                          "Paused", "Not Ready", "Not Configured", "Quiesced"}, 
 709                  MappingStrings {"MIF.DMTF|Operational State|006",
 710                   "MIB.IETF|HOST-RESOURCES-MIB.hrDeviceStatus", 
 711                   "MIF.DMTF|Host Device|001.5"},
 712                  ModelCorrespondence {"CIM_LogicalDevice.AdditionalAvailability"} ]
 713              uint16 Availability;
 714                 [Description (
 715 karl  1.2         "The StatusInfo property indicates whether the Logical"
 716                   "Device is in an enabled (value = 3), disabled (value = "
 717                   "4) or some other (1) or unknown (2) state. If this "
 718                   "property does not apply to the LogicalDevice, the value, "
 719                   "5 (\"Not Applicable\"), should be used.  "
 720                   "If a Device is (\"Enabled\")(value=3), it has been "
 721                   "powered up, and is configured and operational.  The Device "
 722                   "may or may not be functionally active, depending on whether "
 723                   "its Availability (or AdditionalAvailability) indicate that "
 724                   "it is (\"Running/Full Power\")(value=3) or (\"Off line\")"
 725                   "(value=8). In an enabled but offline mode, a Device may be "
 726                   "performing out-of-band requests, such as running Diagnostics.  "
 727                   "If (\"Disabled\") StatusInfo value=4), a Device can only be " 
 728                   "\"enabled\" or powered off.  In a personal computer environment, "
 729                   "(\"Disabled\") means that the Device's driver is not "
 730                   "available in the stack. In other environments, a Device can "
 731                   "be disabled by removing its configuration file. A disabled "
 732                   "device is physically present in a System and consuming "
 733                   "resources, but cannot be communicated with until a load "
 734                   "of a driver, a load of a configuration file or some other "
 735                   "\"enabling\" activity has occurred."),
 736 karl  1.2        ValueMap {"1", "2", "3", "4", "5"},
 737                  Values {"Other", "Unknown", "Enabled",
 738                          "Disabled", "Not Applicable"},
 739                  MappingStrings {"MIF.DMTF|Operational State|006"} ]
 740              uint16 StatusInfo;
 741                 [Description (
 742                   "LastErrorCode captures the last error code reported by " 
 743                   "the LogicalDevice.") ]
 744              uint32 LastErrorCode;
 745                 [Description (
 746                   "ErrorDescription is a free-form string supplying more " 
 747                   "information about the error recorded in LastErrorCode, and " 
 748                   "information on any corrective actions that may be taken.") ]
 749              string ErrorDescription;
 750                 [Description (
 751                   "ErrorCleared is a boolean property indicating that the " 
 752                   "error reported in LastErrorCode is now cleared.") ]
 753              boolean ErrorCleared;
 754                 [MaxLen (256), ArrayType ("Indexed"), Description (
 755                   "OtherIdentifyingInfo captures additional data, beyond "
 756                   "DeviceID information, that could be used to identify a "
 757 karl  1.2         "LogicalDevice. One example would be to hold the Operating"
 758                   "System's user friendly name for the Device in this "
 759                   "property."),
 760                  ModelCorrespondence {
 761                   "CIM_LogicalDevice.IdentifyingDescriptions"} ]
 762              string OtherIdentifyingInfo[];
 763                 [Description (
 764                   "The number of consecutive hours that this Device has been "
 765                   "powered, since its last power cycle."),
 766                  Units ("Hours"), Counter ]
 767              uint64 PowerOnHours;
 768                 [Description (
 769                   "The total number of hours that this Device has been "
 770                   "powered."),
 771                  Units ("Hours"), Counter ]
 772              uint64 TotalPowerOnHours;
 773                 [ArrayType ("Indexed"), Description (
 774                   "An array of free-form strings providing explanations "
 775                   "and details behind the entries in the OtherIdentifyingInfo "
 776                   "array. Note, each entry of this array is related to the "
 777                   "entry in OtherIdentifyingInfo that is located at the same "
 778 karl  1.2         "index."),
 779                  ModelCorrespondence {"CIM_LogicalDevice.OtherIdentifyingInfo"} ]
 780              string IdentifyingDescriptions[];
 781                 [Description (
 782                   "Additional availability and status of the Device, beyond that "
 783                   "specified in the Availability property. The Availability "
 784                   "property denotes the primary status and availability of the "
 785                   "Device. In some cases, this will not be sufficient to denote "
 786                   "the complete status of the Device. In those cases, the "
 787                   "AdditionalAvailability property can be used to provide further "
 788                   "information. For example, a Device's primary Availability may "
 789                   "be \"Off line\" (value=8), but it may also be in a low power "
 790                   "state (AdditonalAvailability value=14), or the Device could be "
 791                   "running Diagnostics (AdditionalAvailability value=5, \"In "
 792                   "Test\")."),
 793                  ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9",
 794                            "10", "11", "12", "13", "14", "15", "16", "17", "18",  
 795                            "19", "20", "21"},
 796                  Values {"Other", "Unknown", "Running/Full Power", "Warning", 
 797                          "In Test", "Not Applicable", "Power Off", "Off Line", 
 798                          "Off Duty", "Degraded", "Not Installed", "Install Error",
 799 karl  1.2                "Power Save - Unknown", "Power Save - Low Power Mode", 
 800                          "Power Save - Standby", "Power Cycle", 
 801                          "Power Save - Warning", "Paused", "Not Ready",
 802                          "Not Configured", "Quiesced"}, 
 803                  ModelCorrespondence {"CIM_LogicalDevice.Availability"} ]
 804              uint16 AdditionalAvailability[];
 805                 [Description (
 806                   "Maximum time in milliseconds, that a Device can run in "
 807                   "a \"Quiesced\" state. A Device's state is defined in its "
 808                   "Availability and AdditionalAvailability properties, where "
 809                   "\"Quiesced\" is conveyed by the value 21. What occurs at "
 810                   "the end of the time limit is device-specific. The Device "
 811                   "may unquiesce, may offline or take other action. A value of "
 812                   "0 indicates that a Device can remain quiesced indefinitely."), 
 813                  Units ("MilliSeconds") ]
 814              uint64 MaxQuiesceTime;
 815                 [Description(
 816                   "SetPowerState defines the desired power state for a "
 817                   "LogicalDevice and when a Device should be put into that "
 818                   "state. The desired power state is specified by setting "
 819                   "the PowerState parameter to one of the "
 820 karl  1.2         "following integer values: 1=\"Full Power\", 2=\"Power Save "
 821                   "- Low Power Mode\", 3=\"Power Save - Standby\", 4=\"Power "
 822                   "Save - Other\", 5=\"Power Cycle\" or 6=\"Power Off\". "
 823                   "The Time parameter (for all state changes but 5, "
 824                   "\"Power Cycle\") indicates when the power state should be "
 825                   "set, either as a regular date-time value or as an interval "
 826                   "value (where the interval begins when the method "
 827                   "invocation is received). When the PowerState parameter is "
 828                   "equal to 5, \"Power Cycle\", the Time parameter indicates "
 829                   "when the Device should power on again. Power off is "
 830                   "immediate. SetPowerState should return 0 if successful, 1 "
 831                   "if the specified PowerState and Time request is not "
 832                   "supported, and some other value if any other error "
 833                   "occurred. In a subclass, the set of possible return codes "
 834                   "could be specified, using a ValueMap qualifier on the method. "
 835                   "The strings to which the ValueMap contents are 'translated' "
 836                   "may also be specified in the subclass as a Values array "
 837                   "qualifier.") ]
 838              uint32 SetPowerState(
 839                 [IN, ValueMap {"1", "2", "3", "4", "5", "6"},
 840                      Values {"Full Power", "Power Save - Low Power Mode", 
 841 karl  1.2                    "Power Save - Standby", "Power Save - Other", 
 842                              "Power Cycle", "Power Off"} ] 
 843                  uint16 PowerState, 
 844                 [IN] datetime Time);
 845                 [Description (
 846                   "Requests a reset of the LogicalDevice. The return value "
 847                   "should be 0 if the request was successfully executed, "
 848                   "1 if the request is not supported and some other value "
 849                   "if an error occurred. In a subclass, the set of possible "
 850                   "return codes could be specified, using a ValueMap qualifier "
 851                   "on the method. The strings to which the ValueMap contents "
 852                   "are 'translated' may also be specified in the subclass as a "
 853                   "Values array qualifier.") ]
 854               uint32 Reset();
 855                 [Description (
 856                   "Requests that the LogicalDevice be enabled (\"Enabled\" "
 857                   "input parameter = TRUE) or disabled (= FALSE). If "
 858                   "successful, the Device's StatusInfo property should also "
 859                   "reflect the desired state (enabled/disabled). The return "
 860                   "code should be 0 if the request was successfully executed, "
 861                   "1 if the request is not supported and some other value if "
 862 karl  1.2         "an error occurred. In a subclass, the set of possible "
 863                   "return codes could be specified, using a ValueMap qualifier "
 864                   "on the method. The strings to which the ValueMap contents "
 865                   "are 'translated' may also be specified in the subclass as a "
 866                   "Values array qualifier.") ]
 867               uint32 EnableDevice(
 868                 [IN] boolean Enabled);
 869                 [Description (
 870                   "  Requests that the LogicalDevice be brought online (\"Online\" "
 871                   "input parameter = TRUE) or taken offline (= FALSE). "
 872                   "\"Online\" indicates that the Device is ready to accept "
 873                   "requests, and is operational and fully functioning. In this "
 874                   "case, the Device's Availability property would be set to "
 875                   "a value of 3 (\"Running/Full Power\"). \"Offline\" indicates "
 876                   "that a Device is powered up and operational, but not processing "
 877                   "functional requests. In an offline state, a Device may be capable "
 878                   "of running diagnostics or generating operational alerts. For "
 879                   "example, when the \"Offline\" button is pushed on a Printer, the "
 880                   "Device is no longer available to process print jobs, but "
 881                   "could be available for diagnostics or maintenance. \n"
 882                   "  If this method is successful, the Device's Availability and "
 883 karl  1.2         "AdditionalAvailability properties should reflect the updated "
 884                   "status. If a failure occurs trying to bring the Device online "
 885                   "or offline, it should remain in its current state. IE, the "
 886                   "request, if unsuccessful, should not leave the Device in an "
 887                   "indeterminate state. When bringing a Device back \"Online\", "
 888                   "from an \"Offline\" mode, the Device should be restored to its "
 889                   "last \"Online\" state, if at all possible. Only a Device that "
 890                   "has a StatusInfo of \"Enabled\" (value=3) and has been "
 891                   "configured can be brought online or taken offline. \n"
 892                   "  OnlineDevice should return 0 if successful, 1 if the request "
 893                   "is not supported at all, 2 if the request is not supported due "
 894                   "to the current state of the Device, and some other value if any "
 895                   "other error occurred. In a subclass, the set of possible return "
 896                   "codes could be specified, using a ValueMap qualifier on the method. "
 897                   "The strings to which the ValueMap contents are 'translated' may "
 898                   "also be specified in the subclass as a Values array qualifier.") ]
 899              uint32 OnlineDevice(
 900                 [IN] boolean Online);
 901                 [Description (
 902                   "  Requests that the LogicalDevice cleanly cease all current "
 903                   "activity (\"Quiesce\" input parameter = TRUE) or resume "
 904 karl  1.2         "activity (= FALSE). For this method to quiesce a Device, "
 905                   "that Device should have an Availability (or Additional"
 906                   "Availability) of \"Running/Full Power\" (value=3) and a "
 907                   "StatusInfo of \"Enabled\" (value=3). For example, if quiesced, "
 908                   "a Device may then be offlined for diagnostics, or disabled "
 909                   "for power off and hot swap.  For the method to \"unquiesce\" "
 910                   "a Device, that Device should have an Availability (or Additional"
 911                   "Availability) of \"Quiesced\" (value=21) and a StatusInfo of "
 912                   "\"Enabled\" (value=3). In this case, the Device would "
 913                   "be returned to an \"Enabled\" and \"Running/Full Power\" "
 914                   "status. \n"
 915                   "  The method's return code should indicate the success or "
 916                   "failure of the quiesce. It should return 0 if successful, "
 917                   "1 if the request is not supported at all, 2 if the request "
 918                   "is not supported due to the current state of the Device, "
 919                   "and some other value if any other error occurred. In a subclass, "
 920                   "the set of possible return codes could be specified, using a "
 921                   "ValueMap qualifier on the method.  The strings to which the "
 922                   "ValueMap contents are 'translated' may also be specified in "
 923                   "the subclass as a Values array qualifier.") ]
 924              uint32 QuiesceDevice(
 925 karl  1.2       [IN] boolean Quiesce);
 926                 [Description (
 927                   "Requests that the Device capture its current configuration, "
 928                   "setup and/or state information in a backing store. The goal "
 929                   "would be to use this information at a later time (via the "
 930                   "RestoreProperties method), to return a Device to its present "
 931                   "\"condition\". This method may not be supported by all Devices. "
 932                   "The method should return 0 if successful, 1 if the request is "
 933                   "not supported, and some other value if any other error occurred. "
 934                   "In a subclass, the set of possible return codes could be "
 935                   "specified, using a ValueMap qualifier on the method. The strings "
 936                   "to which the ValueMap contents are 'translated' may also be "
 937                   "specified in the subclass as a Values array qualifier.") ]
 938              uint32 SaveProperties();
 939                 [Description (
 940                   "Requests that the Device re-establish its configuration, "
 941                   "setup and/or state information from a backing store. The "
 942                   "intent is to capture this information at an earlier time "
 943                   "(via the SaveProperties method), and use it to return a "
 944                   "Device to this earlier \"condition\". This method may not "
 945                   "be supported by all Devices. The method should return 0 if "
 946 karl  1.2         "successful, 1 if the request is not supported, and some "
 947                   "other value if any other error occurred. In a subclass, "
 948                   "the set of possible return codes could be specified, using "
 949                   "a ValueMap qualifier on the method. The strings to which "
 950                   "the ValueMap contents are 'translated' may also be specified "
 951                   "in the subclass as a Values array qualifier.") ]
 952              uint32 RestoreProperties();        
 953           };  
 954           
 955              
 956           // ==================================================================
 957           //    Realizes
 958           // ==================================================================
 959              [Association, Version ("2.6.0"), Description (
 960                "CIM_Realizes is the association that defines the mapping "
 961                "between LogicalDevices and the PhysicalElements that "
 962                "implement them.") ] 
 963           class CIM_Realizes : CIM_Dependency {
 964                 [Override ("Antecedent"), Description (
 965                   "The physical component that implements the Device.") ]
 966              CIM_PhysicalElement REF Antecedent;
 967 karl  1.2       [Override ("Dependent"), Description (
 968                   "The LogicalDevice.") ]
 969              CIM_LogicalDevice REF Dependent;
 970           };
 971           
 972                
 973           // ==================================================================
 974           //    Service
 975           // ==================================================================  
 976              [Abstract, Version ("2.6.0"), Description (
 977                "A CIM_Service is a Logical Element that contains the "
 978                "information necessary to represent and manage the "
 979                "functionality provided by a Device and/or SoftwareFeature. "
 980                "A Service is a general-purpose object to configure and "
 981                "manage the implementation of functionality.  It is not the "
 982                "functionality itself.") ] 
 983           class CIM_Service : CIM_LogicalElement {
 984                 [Propagated ("CIM_System.CreationClassName"), Key, 
 985                  MaxLen (256), Description (
 986                   "The scoping System's CreationClassName.") ] 
 987              string SystemCreationClassName;
 988 karl  1.2       [Propagated ("CIM_System.Name"), Key, MaxLen (256),
 989                  Description ("The scoping System's Name.") ] 
 990              string SystemName;
 991                 [Key, MaxLen (256), Description (
 992                   "CreationClassName indicates the name of the class or the "
 993                   "subclass used in the creation of an instance. When used "
 994                   "with the other key properties of this class, this property "
 995                   "allows all instances of this class and its subclasses to "
 996                   "be uniquely identified.") ]
 997              string CreationClassName;
 998                 [Override ("Name"), Key, MaxLen (256), Description (
 999                   "The Name property uniquely identifies the Service and "
1000                   "provides an indication of the functionality that is "
1001                   "managed. This functionality is described in more detail in "
1002                   "the object's Description property.") ] 
1003              string Name;
1004                 [MaxLen (10), Description (
1005                   "StartMode is a string value indicating whether the Service "
1006                   "is automatically started by a System, Operating System, etc. "
1007                   "or only started upon request."), 
1008                  ValueMap {"Automatic", "Manual"} ] 
1009 karl  1.2    string StartMode;
1010                 [Description (
1011                   "Started is a boolean indicating whether the Service "
1012                   "has been started (TRUE), or stopped (FALSE).") ] 
1013              boolean Started;
1014                 [Description (
1015                   "The StartService method places the Service in the started "
1016                   "state. It returns an integer value of 0 if the Service was "
1017                   "successfully started, 1 if the request is not supported and "
1018                   "any other number to indicate an error. In a subclass, the "
1019                   "set of possible return codes could be specified, using a "
1020                   "ValueMap qualifier on the method. The strings to which the "
1021                   "ValueMap contents are 'translated' may also be specified in "
1022                   "the subclass as a Values array qualifier.") ] 
1023              uint32 StartService();
1024                 [Description (
1025                   "The StopService method places the Service in the stopped "
1026                   "state. It returns an integer value of 0 if the Service was "
1027                   "successfully stopped, 1 if the request is not supported and "
1028                   "any other number to indicate an error. In a subclass, the "
1029                   "set of possible return codes could be specified, using a "
1030 karl  1.2         "ValueMap qualifier on the method. The strings to which the "
1031                   "ValueMap contents are 'translated' may also be specified in "
1032                   "the subclass as a Values array qualifier.") ] 
1033              uint32 StopService();
1034           };
1035           
1036                
1037           // ==================================================================
1038           //    ProvidesServiceToElement
1039           // ==================================================================
1040              [Association, Version ("2.6.0"), Description (
1041                "CIM_ProvidesServiceToElement is used to describe that "
1042                "ManagedElements may be dependent on the functionality "
1043                "of one or more Services. An example is that a Processor "
1044                "and an Enclosure (PhysicalElement) are dependent on AlertOn"
1045                "LAN Services to signal an incomplete or erroneous boot, and "
1046                "hardware-related errors.") ]
1047           class CIM_ProvidesServiceToElement : CIM_Dependency {
1048                 [Override ("Antecedent"), Description (
1049                   "The Service provided.") ]
1050              CIM_Service ref Antecedent;
1051 karl  1.2       [Override ("Dependent"), Description (
1052                   "The ManagedElement dependent on the Service.") ]
1053              CIM_ManagedElement ref Dependent;
1054           };
1055           
1056           
1057           // ==================================================================
1058           //    ServiceServiceDependency
1059           // ==================================================================
1060              [Association, Version ("2.6.0"), Description (
1061                "CIM_ServiceServiceDependency is an association between a " 
1062                "Service and another Service, indicating that the latter is "
1063                "required to be present, required to have completed, or must " 
1064                "be absent for the former Service to provide its "
1065                "functionality. For example, Boot Services may be dependent "
1066                "upon underlying BIOS Disk and initialization Services. "
1067                "In the case of the initialization Services, the Boot Service "
1068                "is simply dependent on the init Services completing.  For "
1069                "the Disk Services, Boot Services may actually utilize the "
1070                 "SAPs of this Service.  This usage dependency is modeled via "
1071                "the CIM_ServiceSAPDependency association.") ] 
1072 karl  1.2 class CIM_ServiceServiceDependency : CIM_ProvidesServiceToElement {
1073                 [Override ("Antecedent"), 
1074                  Description ("The required Service.") ] 
1075              CIM_Service REF Antecedent;
1076                 [Override ("Dependent"), Description (
1077                   "The Service that is dependent on an underlying Service.") ] 
1078              CIM_Service REF Dependent;
1079                 [Description (
1080                   "The nature of the Service to Service dependency. This "
1081                   "property describes that the associated Service must have "
1082                   "completed (value=2), must be started (3) or must not be "
1083                   "started (4) in order for the Service to function."),  
1084                  ValueMap {"0", "1", "2", "3", "4"},
1085                  Values {"Unknown", "Other", "Service Must Have Completed",
1086                          "Service Must Be Started", 
1087                          "Service Must Not Be Started"} ]
1088              uint16 TypeOfDependency;
1089                 [Description(
1090                   "this property describes that the antecedent service "
1091                   "must be restarted after the dependent operation is "
1092                   "complete.") ]
1093 karl  1.2    boolean RestartService;
1094           };
1095           
1096           
1097           // ==================================================================
1098           //    ServiceComponent
1099           // ==================================================================
1100              [Association, Aggregation, Version ("2.6.0"), Description (
1101                "The ServiceComponent aggregation models a set of "
1102                "subordinate Services that are aggregated together to form "
1103                "a higher-level service.") ]
1104           class CIM_ServiceComponent : CIM_Component {
1105                 [Override ("GroupComponent"), Aggregate, 
1106                  Description ("The parent Service.") ]
1107              CIM_Service REF GroupComponent;
1108                 [Override ("PartComponent"), 
1109                  Description ("The component Service.") ]
1110              CIM_Service REF PartComponent;
1111           };
1112           
1113                
1114 karl  1.2 // ==================================================================
1115           //    ServiceAccessPoint
1116           // ==================================================================
1117              [Abstract, Version ("2.6.0"), Description (
1118                "CIM_ServiceAccessPoint represents the ability to utilize or "
1119                "invoke a Service.  Access points represent that a Service is "
1120                "made available to other entities for use.") ] 
1121           class CIM_ServiceAccessPoint : CIM_LogicalElement {
1122                 [Propagated ("CIM_System.CreationClassName"), Key, 
1123                  MaxLen (256), Description (
1124                   "The scoping System's CreationClassName.") ] 
1125              string SystemCreationClassName;
1126                 [Propagated ("CIM_System.Name"), Key, MaxLen (256),
1127                  Description ("The scoping System's Name.") ] 
1128              string SystemName;
1129                 [Key, MaxLen (256), Description (
1130                   "CreationClassName indicates the name of the class or the "
1131                   "subclass used in the creation of an instance. When used "
1132                   "with the other key properties of this class, this property "
1133                   "allows all instances of this class and its subclasses to "
1134                   "be uniquely identified.") ]
1135 karl  1.2    string CreationClassName;
1136                 [Override ("Name"), Key, MaxLen (256), Description (
1137                   "The Name property uniquely identifies the ServiceAccessPoint "
1138                   "and provides an indication of the functionality that is "
1139                   "managed.  This functionality is described in more detail in "
1140                   "the object's Description property.") ] 
1141              string Name;
1142           };
1143           
1144                
1145           // ==================================================================
1146           //    ServiceSAPDependency
1147           // ==================================================================
1148              [Association, Version ("2.6.0"), Description (
1149                "CIM_ServiceSAPDependency is an association between a Service "
1150                "and a ServiceAccessPoint indicating that the referenced SAP "
1151                "is utilized by the Service to provide its functionality. For "
1152                "example, Boot Services may invoke BIOS' Disk Services "
1153                "(interrupts) in order to function.") ] 
1154           class CIM_ServiceSAPDependency : CIM_Dependency {
1155                 [Override ("Antecedent"), 
1156 karl  1.2        Description ("The required ServiceAccessPoint.") ] 
1157              CIM_ServiceAccessPoint REF Antecedent;
1158                 [Override ("Dependent"), Description (
1159                   "The Service that is dependent on an underlying SAP.") ] 
1160              CIM_Service REF Dependent;
1161           };
1162           
1163                
1164           // ==================================================================
1165           //    SAPSAPDependency
1166           // ==================================================================
1167              [Association, Version ("2.6.0"), Description (
1168                "CIM_SAPSAPDependency is an association between a Service"
1169                "AccessPoint and another ServiceAccessPoint indicating that "
1170                "the latter is required in order for the former ServiceAccess"
1171                "Point to utilize or connect with its Service. For example, "
1172                "to print at a network printer, local Print Access Points "
1173                "must utilize underlying network-related SAPs, or "
1174                "ProtocolEndpoints, in order to send the print request.") ] 
1175           class CIM_SAPSAPDependency:CIM_Dependency {
1176                 [Override ("Antecedent"), Description (
1177 karl  1.2         "The required ServiceAccessPoint.") ] 
1178              CIM_ServiceAccessPoint REF Antecedent;
1179                 [Override ("Dependent"), Description (
1180                   "The ServiceAccessPoint that is dependent on an underlying "
1181                   "SAP.") ] 
1182              CIM_ServiceAccessPoint REF Dependent;
1183           };
1184           
1185           
1186           // ==================================================================
1187           //    ServiceAccessBySAP
1188           // ==================================================================
1189              [Association, Version ("2.6.0"), Description (
1190                "CIM_ServiceAccessBySAP is an association that identifies the "
1191                "access points for a Service. For example, a printer may be "
1192                "accessed by Netware, MacIntosh or Windows ServiceAccess"
1193                "Points, potentially hosted on different Systems.") ] 
1194           class CIM_ServiceAccessBySAP : CIM_Dependency {
1195                 [Override ("Antecedent"),
1196                  Description ("The Service.") ] 
1197              CIM_Service REF Antecedent;
1198 karl  1.2       [Override ("Dependent"), Description (
1199                   "An Access Point for a Service. Access points are dependent " 
1200                   "in this relationship since they have no function without a "
1201                   "corresponding Service.") ] 
1202              CIM_ServiceAccessPoint REF Dependent;
1203           };
1204           
1205                
1206           // ==================================================================
1207           //    System
1208           // ==================================================================
1209              [Abstract, Version ("2.6.0"), Description (
1210                "A CIM_System is a LogicalElement that aggregates an "
1211                "enumerable set of Managed System Elements. The aggregation "
1212                "operates as a functional whole. Within any particular "
1213                "subclass of System, there is a well-defined list of "
1214                "Managed System Element classes whose instances must be "
1215                "aggregated.") ] 
1216           class CIM_System : CIM_LogicalElement {
1217                 [Key, MaxLen (256), Description (
1218                   "CreationClassName indicates the name of the class or the "
1219 karl  1.2         "subclass used in the creation of an instance. When used "
1220                   "with the other key properties of this class, this property "
1221                   "allows all instances of this class and its subclasses to "
1222                   "be uniquely identified.") ]
1223              string CreationClassName;
1224                 [Key, MaxLen (256), Override ("Name"), Description (
1225                   "The inherited Name serves as key of a System instance in " 
1226                   "an enterprise environment.") ] 
1227              string Name;
1228                 [MaxLen (64), Description (
1229                   "The System object and its derivatives are Top Level Objects "
1230                   "of CIM. They provide the scope for numerous components. " 
1231                   "Having unique System keys is required. A heuristic can be "
1232                   "defined in individual System subclasses to attempt to always "
1233                   "generate the same System Name Key. The NameFormat property "
1234                   "identifies how the System name was generated, using "
1235                   "the subclass' heuristic.") ] 
1236              string NameFormat;
1237                 [MaxLen (64), Description (
1238                   "The name of the primary system owner."),
1239                  MappingStrings {"MIF.DMTF|General Information|001.3"} ]  
1240 karl  1.2    string PrimaryOwnerName;
1241                 [MaxLen (256), Description (
1242                   "A string that provides information on how the primary system "
1243                   "owner can be reached (e.g. phone number, email address, "
1244                   "...)."),
1245                  MappingStrings {"MIF.DMTF|General Information|001.4"} ] 
1246              string PrimaryOwnerContact;
1247                 [Description (
1248                   "An array (bag) of strings that specify the roles this System "
1249                   "plays in the IT-environment. Subclasses of System may "
1250                   "override this property to define explicit Roles values. "
1251                   "Alternately, a Working Group may describe the heuristics, "
1252                   "conventions and guidelines for specifying Roles. For "
1253                   "example, for an instance of a networking system, the Roles "
1254                   "property might contain the string, 'Switch' or 'Bridge'.") ]
1255              string Roles[];
1256           };
1257           
1258           
1259           // ==================================================================
1260           //    HostedService
1261 karl  1.2 // ==================================================================
1262              [Association, Version ("2.6.0"), Description (
1263                "CIM_HostedService is an association between a Service and "
1264                "the System on which the functionality resides.  The "
1265                "cardinality of this association is 1-to-many.  A System may "
1266                "host many Services. Services are weak with respect to their "
1267                "hosting System. Heuristic:  A Service is hosted on the "
1268                "System where the LogicalDevices or SoftwareFeatures that "
1269                "implement the Service are located.  The model does not "
1270                "represent Services hosted across multiple systems. This is "
1271                "modeled as an ApplicationSystem that acts as an aggregation "
1272                "point for Services, that are each located on a single "
1273                "host.") ] 
1274           class CIM_HostedService : CIM_Dependency {
1275                 [Override ("Antecedent"), Max (1), Min (1),
1276                  Description ("The hosting System.") ] 
1277              CIM_System REF Antecedent;
1278                 [Override ("Dependent"), Weak,
1279                  Description ("The Service hosted on the System.") ] 
1280              CIM_Service REF Dependent;
1281           };
1282 karl  1.2 
1283                
1284           // ==================================================================
1285           //    HostedAccessPoint
1286           // ==================================================================
1287              [Association, Version ("2.6.0"), Description (
1288                "CIM_HostedAccessPoint is an association between a Service"
1289                "AccessPoint and the System on which it is provided. The "
1290                "cardinality of this association is 1-to-many and is weak "
1291                "with respect to the System. Each System may host many "
1292                "ServiceAccessPoints.  Heuristic:  If the implementation of "
1293                "the ServiceAccessPoint is modeled, it must be "
1294                "implemented by a Device or SoftwareFeature that is part of "
1295                "the System hosting the ServiceAccessPoint.") ] 
1296           class CIM_HostedAccessPoint:CIM_Dependency {
1297                 [Override ("Antecedent"), Max (1), Min (1), 
1298                  Description ("The hosting System.") ] 
1299              CIM_System REF Antecedent;
1300                 [Override ("Dependent"), Weak,
1301                  Description ("The SAP(s) that are hosted on this System.") ] 
1302              CIM_ServiceAccessPoint REF Dependent;
1303 karl  1.2 };
1304              
1305           
1306           // ==================================================================
1307           //    SystemComponent
1308           // ==================================================================
1309              [Association, Aggregation, Version ("2.6.0"), Description (
1310                "CIM_SystemComponent is a specialization of the CIM_Component "
1311                "association that establishes 'part of' relationships between "
1312                "a System and the Managed System Elements of which it is "
1313                "composed.") ] 
1314           class CIM_SystemComponent : CIM_Component {
1315                 [Override ("GroupComponent"), Aggregate, 
1316                  Description ("The parent System in the Association.") ] 
1317              CIM_System REF GroupComponent;
1318                 [Override ("PartComponent"), Description (
1319                   "The child element that is a component of a System.") ] 
1320              CIM_ManagedSystemElement REF PartComponent;
1321           }; 
1322                
1323           
1324 karl  1.2 // ==================================================================
1325           //    SystemDevice
1326           // ==================================================================
1327              [Association, Aggregation, Version ("2.6.0"), Description (
1328                "LogicalDevices may be aggregated by a System.  This " 
1329                "relationship is made explicit by the SystemDevice "
1330                "association.") ]
1331           class CIM_SystemDevice:CIM_SystemComponent {
1332                 [Override ("GroupComponent"), Aggregate, Max (1), Min (1), 
1333                  Description ("The parent system in the Association.") ] 
1334              CIM_System REF GroupComponent;
1335                 [Override ("PartComponent"), Weak, Description (
1336                   "The LogicalDevice that is a component of a System.") ] 
1337              CIM_LogicalDevice REF PartComponent;
1338           };
1339           
1340           
1341           // ===================================================================
1342           //    ComputerSystem
1343           // ===================================================================
1344              [Abstract, Version ("2.6.0"), Description (
1345 karl  1.2      "A class derived from System that is a special collection of "
1346                "ManagedSystemElements. This collection provides "
1347                "compute capabilities and serves as aggregation point to "
1348                "associate one or more of the following elements: FileSystem, "
1349                "OperatingSystem, Processor and Memory (Volatile and/or "
1350                "NonVolatile Storage).") ] 
1351           class CIM_ComputerSystem : CIM_System {
1352                 [Override ("NameFormat"), Description (
1353                   "  The ComputerSystem object and its derivatives are Top "
1354                   "Level Objects of CIM. They provide the scope for numerous "
1355                   "components. Having unique System keys is required. "
1356                   "A heuristic is defined to create the ComputerSystem Name "
1357                   "to attempt to always generate the same Name, independent of "
1358                   "discovery protocol. This prevents inventory and management "
1359                   "problems where the same asset or entity is discovered "
1360                   "multiple times, but cannot be resolved to a single object. "
1361                   "Use of the heuristic is optional, but recommended. \n"
1362                   "  The NameFormat property identifies how the ComputerSystem "
1363                   "Name is generated, using a heuristic. The heuristic is "
1364                   "outlined, in detail, in the CIM V2 System Model spec. "
1365                   "It assumes that the documented rules are traversed in order, "
1366 karl  1.2         "to determine and assign a Name. The NameFormat Values "
1367                   "list defines the precedence order for assigning the Computer"
1368                   "System Name. Several rules do map to the same Value. \n"
1369                   "  Note that the ComputerSystem Name calculated using the "
1370                   "heuristic is the System's key value. Other names can be "
1371                   "assigned and used for the ComputerSystem, that better suit "
1372                   "a business, using Aliases."), 
1373                  ValueMap {"Other", "IP", "Dial", "HID", "NWA", "HWA", "X25", 
1374                            "ISDN", "IPX", "DCC", "ICD", "E.164", "SNA", 
1375                            "OID/OSI"} ]
1376              string NameFormat;
1377                 [MaxLen (256), ArrayType ("Indexed"), Description (
1378                   "OtherIdentifyingInfo captures additional data, beyond "
1379                   "System Name information, that could be used to identify "
1380                   "a ComputerSystem. One example would be to hold the "
1381                   "Fibre Channel World-Wide Name (WWN) of a node. Note that "
1382                   "if only the Fibre Channel name is available and is "
1383                   "unique (able to be used as the System key), then this "
1384                   "property would be NULL and the WWN would become the "
1385                   "System key, its data placed in the Name property."),
1386                  ModelCorrespondence {
1387 karl  1.2         "CIM_ComputerSystem.IdentifyingDescriptions"} ]
1388              string OtherIdentifyingInfo[];
1389                 [ArrayType ("Indexed"), Description (
1390                   "An array of free-form strings providing explanations "
1391                   "and details behind the entries in the OtherIdentifying"
1392                   "Info array. Note, each entry of this array is related "
1393                   "to the entry in OtherIdentifyingInfo that is located at "
1394                   "the same index."),
1395                  ModelCorrespondence {
1396                   "CIM_ComputerSystem.OtherIdentifyingInfo"} ]
1397              string IdentifyingDescriptions[];
1398                 [Description (
1399                   "Enumeration indicating whether the ComputerSystem is "
1400                   "a special-purpose System (ie, dedicated to a particular "
1401                   "use), versus being 'general purpose'. For example, one "
1402                   "could specify that the System is dedicated to \"Print\" "
1403                   "(value=11) or acts as a \"Hub\" (value=8)."),
1404                  ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", 
1405                            "9", "10", "11", "12", "13", "14"},
1406                  Values {"Not Dedicated", "Unknown", "Other", "Storage", 
1407                          "Router", "Switch", "Layer 3 Switch", 
1408 karl  1.2                "Central Office Switch", "Hub", "Access Server", 
1409                          "Firewall", "Print", "I/O", "Web Caching", "Management"} ]
1410              uint16 Dedicated[];
1411                 [Description (
1412                   "If enabled (value = 4), the UnitaryComputerSystem can be "
1413                   "reset via hardware (e.g. the power and reset buttons). If "
1414                   "disabled (value = 3), hardware reset is not allowed. In "
1415                   "addition to Enabled and Disabled, other Values for the "
1416                   "property are also defined - \"Not Implemented\" (5), "
1417                   "\"Other\" (1) and \"Unknown\" (2)."),
1418                  ValueMap {"1", "2", "3", "4", "5"},
1419                  Values {"Other", "Unknown", "Disabled",
1420                          "Enabled", "Not Implemented"},
1421                  MappingStrings {"MIF.DMTF|System Hardware Security|001.4"} ]
1422              uint16 ResetCapability;
1423                 [Description(
1424                   "Indicates the specific power-related capabilities of a "
1425                   "ComputerSystem and its associated running OperatingSystem. "
1426                   "The values, 0=\"Unknown\", 1=\"Not Supported\", and "
1427                   "2=\"Disabled\" are self-explanatory. "
1428                   "The value, 3=\"Enabled\" indicates that the power management "
1429 karl  1.2         "features are currently enabled but the exact feature set "
1430                   "is unknown or the information is unavailable. "
1431                   "\"Power Saving Modes Entered Automatically\" (4) describes "
1432                   "that a system can change its power state based on usage or "
1433                   "other criteria. \"Power State Settable\" (5) indicates that "
1434                   "the SetPowerState method is supported. \"Power Cycling "
1435                   "Supported\" (6) indicates that the SetPowerState method "
1436                   "can be invoked with the PowerState input variable set to 5 "
1437                   "(\"Power Cycle\"). \"Timed Power On Supported\" (7) indicates "
1438                   "that the SetPowerState method can be invoked with the Power"
1439                   "State input variable set to 5 (\"Power Cycle\") and the Time "
1440                   "parameter set to a specific date and time, or interval, "
1441                   "for power-on."),
1442                  ValueMap {"0", "1", "2", "3", "4", "5", "6", "7"},
1443                  Values {"Unknown", "Not Supported", "Disabled", 
1444                          "Enabled", "Power Saving Modes Entered Automatically",
1445                          "Power State Settable", "Power Cycling Supported",
1446                          "Timed Power On Supported"},
1447                  MappingStrings {"MIF.DMTF|System Power Controls|001.2"} ]
1448              uint16 PowerManagementCapabilities[];
1449                 [Description(
1450 karl  1.2         "SetPowerState defines the desired power state of a "
1451                   "ComputerSystem and its running OperatingSystem, and when "
1452                   "the system should be put into that state. The PowerState "
1453                   "parameter is specified as one of the following integer "
1454                   "values: 1=\"Full Power\", 2=\"Power Save - Low Power Mode\", "
1455                   "3=\"Power Save - Standby\", 4=\"Power Save - Other\", "
1456                   "5=\"Power Cycle\", 6=\"Power Off\", 7=\"Hibernate\" and "
1457                   "8=\"Soft Off\". The Time parameter (for all state changes "
1458                   "but 5, \"Power Cycle\") indicates when the power state "
1459                   "should be set, either as a regular date-time value or as "
1460                   "an interval value (where the interval begins when the "
1461                   "method invocation is received). When the PowerState "
1462                   "parameter is equal to 5, \"Power Cycle\", the Time "
1463                   "parameter indicates when the system should power on "
1464                   "again. Power off is immediate. SetPowerState should "
1465                   "return 0 if successful, 1 if the specified State and "
1466                   "Time request is not supported, and some other value if "
1467                   "any other error occurred. In a subclass, the "
1468                   "set of possible return codes could be specified, using a "
1469                   "ValueMap qualifier on the method. The strings to which the "
1470                   "ValueMap contents are 'translated' may also be specified in "
1471 karl  1.2         "the subclass as a Values array qualifier.") ]
1472              uint32 SetPowerState(
1473                 [IN, ValueMap {"1", "2", "3", "4", "5", "6", "7", "8"},
1474                      Values {"Full Power", "Power Save - Low Power Mode", 
1475                              "Power Save - Standby", "Power Save - Other", 
1476                              "Power Cycle", "Power Off", "Hibernate", 
1477                              "Soft Off"} ] 
1478                 uint32 PowerState, 
1479                 [IN] datetime Time);
1480           };
1481           
1482                 
1483           // ==================================================================
1484           //     AdminDomain
1485           // ==================================================================
1486              [Version ("2.6.0"), Description (
1487                "  This is a special grouping of ManagedSystemElements. The "
1488                "grouping is viewed as a single entity, reflecting that all "
1489                "of its components are administered similarly - either by "
1490                "the same user, group of users or policy. It serves as "
1491                "an aggregation point to associate one or more of the "
1492 karl  1.2      "following elements: network devices, such as routers and "
1493                "switches, servers, and other resources that can be "
1494                "accessed by end systems. This grouping of devices "
1495                "plays an essential role in ensuring that the same "
1496                "administrative policy and actions are applied to all "
1497                "of the devices in the grouping. The specific behavior "
1498                "and/or semantics of the AdminDomain can be identified "
1499                "through its aggregated and associated entities. \n") ]
1500           class CIM_AdminDomain : CIM_System {
1501                 [Override ("NameFormat"), Description (
1502                   "The NameFormat property identifies how the Name of the "
1503                   "AdminDomain is generated, using the heuristic specified "
1504                   "in the CIM V2 System Model spec. It assumes that the "
1505                   "documented rules are traversed in order, to determine and "
1506                   "assign a Name. The NameFormat Values list defines the "
1507                   "precedence order for assigning the Name of the "
1508                   "AdminDomain."), 
1509                  ValueMap {"Other", "AS", "NAP", "NOC", "POP", "RNP", "IP",
1510                       "IPX", "SNA", "Dial", "WAN", "LAN", "ISDN", "Frame Relay",
1511                       "ATM", "E.164", "IB", "FC", "Policy Repository"},
1512                  Values {"Other", "Autonomous System",
1513 karl  1.2                "Network Access Provider", "Network Operations Center",
1514                          "Point of Presence", "Regional Network Provider",
1515                          "IP", "IPX", "SNA", "Dial", "WAN", "LAN", "ISDN",
1516                          "Frame Relay", "ATM", "E.164", "Infiniband", 
1517                          "Fibre Channel", "Policy Repository"} ]
1518              string NameFormat;
1519           };
1520           
1521           
1522           // ==================================================================
1523           //    ContainedDomain
1524           // ==================================================================
1525              [Association, Aggregation, Version ("2.6.0"), Description (
1526                "A relationship that aggregates one or more lower-level "
1527                "AdminDomain instances into a higher-level AdminDomain.") ]
1528           class CIM_ContainedDomain: CIM_SystemComponent {
1529                 [Override ("GroupComponent"), Aggregate, Description (
1530                   "An AdminDomain that aggregates other AdminDomains.") ]
1531               CIM_AdminDomain REF GroupComponent;
1532                 [Override ("PartComponent"), Description (
1533                   "An AdminDomain aggregated by another AdminDomain.") ]
1534 karl  1.2     CIM_AdminDomain REF PartComponent;
1535           };
1536           
1537           
1538           // ==================================================================
1539           //  UML Page 2 - FRU, Product, & Collection
1540           // ==================================================================
1541           // ==================================================================
1542           //    Product
1543           // ==================================================================
1544              [Version ("2.6.0"), Description (
1545                "CIM_Product is a concrete class that is a collection of "
1546                "PhysicalElements, SoftwareFeatures and/or other Products, "
1547                "acquired as a unit. Acquisition implies an agreement "
1548                "between supplier and consumer which may have implications "
1549                "to Product licensing, support and warranty. Non-commercial "
1550                "(e.g., in-house developed Products) should also be "
1551                "identified as an instance of CIM_Product.") ] 
1552           class CIM_Product : CIM_ManagedElement {
1553                 [Key, MaxLen (256),
1554                  Description ("Commonly used Product name."), 
1555 karl  1.2        MappingStrings {"MIF.DMTF|ComponentID|001.2"} ] 
1556              string Name;
1557                 [Key, MaxLen (64), Description (
1558                   "Product identification such as a serial number on software, "
1559                   "a die number on a hardware chip, or (for non-commercial "
1560                   "Products) a project number."), 
1561                  MappingStrings {"MIF.DMTF|ComponentID|001.4"} ] 
1562              string IdentifyingNumber;
1563                 [Key, MaxLen (256), Description (
1564                   "The name of the Product's supplier, or entity selling the "
1565                   "Product (the manufacturer, reseller, OEM, etc.). Corresponds "
1566                   "to the Vendor property in the Product object in the DMTF "
1567                   "Solution Exchange Standard."), 
1568                  MappingStrings {"MIF.DMTF|ComponentID|001.1"} ] 
1569              string Vendor;
1570                 [Key, MaxLen (64), Description (
1571                   "Product version information. Corresponds to the Version "
1572                   "property in the Product object in the DMTF Solution "
1573                   "Exchange Standard."), 
1574                  MappingStrings {"MIF.DMTF|ComponentID|001.3"} ] 
1575              string Version;
1576 karl  1.2       [MaxLen (64), Description (
1577                   "Product SKU (stock keeping unit) information.") ] 
1578              string SKUNumber;
1579                 [Description (
1580                   "If this Product is under warranty, the start date of the "
1581                   "warranty."),
1582                  ModelCorrespondence {"CIM_Product.WarrantyDuration"},
1583                  MappingStrings {"MIF.DMTF|FRU|002.9"} ]
1584              datetime WarrantyStartDate;
1585                 [Description (
1586                   "If this Product is under warranty, the duration of the "
1587                   "warranty in days."), Units ("Days"), 
1588                  ModelCorrespondence {"CIM_Product.WarrantyStartDate"},
1589                  MappingStrings {"MIF.DMTF|FRU|002.10"} ]
1590              uint32 WarrantyDuration;
1591           };
1592           
1593                
1594           // ==================================================================
1595           //    ProductParentChild
1596           // ==================================================================
1597 karl  1.2    [Association, Aggregation, Version ("2.6.0"), Description (
1598                "The CIM_ProductParentChild association defines a parent "
1599                "child hierarchy among Products.  For example, a Product may "
1600                "come bundled with other Products.") ] 
1601           class CIM_ProductParentChild {
1602                 [Aggregate, Key, Description (
1603                   "The parent Product in the association.") ] 
1604              CIM_Product REF Parent;
1605                 [Key, Description (
1606                   "The child Product in the association.") ] 
1607              CIM_Product REF Child;
1608           };
1609           
1610           
1611           // ==================================================================
1612           //    CompatibleProduct
1613           // ================================================================== 
1614              [Association, Version ("2.6.0"), Description ( 
1615                "CIM_CompatibleProduct is an association between Products " 
1616                "that can indicate a wide variety of information. For " 
1617                "example, it can indicate that the two referenced Products " 
1618 karl  1.2      "interoperate, that they can be installed together, that " 
1619                "one can be the physical container for the other, etc. The " 
1620                "string property, CompatibilityDescription, defines how the " 
1621                "Products interoperate or are compatible, any limitations " 
1622                "regarding interoperability or installation, ...") ]
1623           class CIM_CompatibleProduct {
1624                 [Key, Description ( 
1625                   "The Product for which compatible offerings are defined.") ] 
1626              CIM_Product REF Product; 
1627                 [Key, Description (
1628                   "The compatible Product.") ]
1629              CIM_Product REF CompatibleProduct; 
1630                 [Description ( 
1631                   "CompatibilityDescription is a free-form string defining " 
1632                   "how the two referenced Products interoperate or are " 
1633                   "compatible, any limitations to compatibility, etc.") ]
1634              string CompatibilityDescription;
1635           };
1636           
1637           
1638           // ==================================================================
1639 karl  1.2 //    ProductProductDependency
1640           // ================================================================== 
1641              [Association, Version ("2.6.0"), Description ( 
1642                "CIM_ProductProductDependency is an association between two " 
1643                "Products, indicating that one must be installed, or must be " 
1644                "absent, for the other to function. This is conceptually " 
1645                "equivalent to the ServiceServiceDependency association.") ] 
1646           class CIM_ProductProductDependency { 
1647                 [Key, Description ("The required Product.") ] 
1648              CIM_Product REF RequiredProduct; 
1649                 [Key, Description ( 
1650                   "The Product that is dependent on another Product.") ] 
1651              CIM_Product REF DependentProduct; 
1652                 [Description ( 
1653                   "The nature of the Product dependency. This property " 
1654                   "describes that the associated Product must be installed "
1655                   "(value=2) or must be absent (value=3) in order for the "
1656                   "Product to function."),  
1657                  ValueMap {"0", "1", "2", "3"},
1658                  Values {"Unknown", "Other", "Product Must Be Installed", 
1659                          "Product Must Not Be Installed"} ]
1660 karl  1.2    uint16 TypeOfDependency; 
1661           };
1662           
1663                
1664           // ==================================================================
1665           //    SupportAccess
1666           // ==================================================================
1667              [Version ("2.6.0"), Description (
1668                "The CIM_SupportAccess association defines how to obtain "
1669                "assistance for a Product.") ] 
1670           class CIM_SupportAccess : CIM_ManagedElement {
1671                 [Override ("Description"), Description (
1672                   "A textual description of the type of Support provided."),
1673                  MappingStrings {"MIF.DMTF|Support|001.3"} ] 
1674              string Description;
1675                 [Key, MaxLen (256), Description (
1676                   "SupportAccessID is an arbitrary, free form string defined by "
1677                   "the Product Vendor or by the organization that deploys the "
1678                   "Product.  This property, since it is a key, should be unique "
1679                   "throughout the enterprise.") ] 
1680              string SupportAccessId;
1681 karl  1.2       [Description (
1682                   "CommunicationInfo provides the details of the Communication"
1683                   "Mode. For example, if the CommunicationMode is 'Phone', "
1684                   "CommunicationInfo specifies the phone number to be called."), 
1685                  MappingStrings {"MIF.DMTF|FRU|002.11", "MIF.DMTF|FRU|002.12"} ] 
1686              string CommunicationInfo;
1687                 [Description (
1688                   "CommunicationMode defines the form of communication in order "
1689                   "to obtain support. For example, phone communication (value"
1690                   "=2), fax (3) or email (8) can be specified."), 
1691                  ValueMap {"1", "2", "3", "4", "5", "6", "7", "8"}, 
1692                  Values {"Other", "Phone", "Fax", "BBS", 
1693                          "Online Service", "Web Page", "FTP", "E-mail"}, 
1694                  MappingStrings {"MIF.DMTF|Support|001.5"} ] 
1695              uint16 CommunicationMode;
1696                 [MaxLen (64), Description (
1697                   "Locale defines the geographic region and/or language dialect "
1698                   "to which this Support resource pertains."), 
1699                  MappingStrings {"MIF.DMTF|Support|001.2"} ] 
1700              string Locale;
1701           };
1702 karl  1.2 
1703                
1704           // ==================================================================
1705           //    ProductSupport
1706           // ==================================================================
1707              [Association, Version ("2.6.0"), Description (
1708                "CIM_ProductSupport is an association between Product and "
1709                "SupportAccess that conveys how support is obtained for the "
1710                "Product.  This is a many-to-many relationship, implying that "
1711                "various types of Support are available for a Product, and "
1712                "that the same Support object can provide assistance for "
1713                "multiple Products.") ] 
1714           class CIM_ProductSupport {
1715                 [Key, Description ("The Product.") ]     
1716              CIM_Product REF Product;
1717                 [Key, Description ("Support for the Product.") ]
1718              CIM_SupportAccess REF Support;
1719           };
1720           
1721                
1722           // ==================================================================
1723 karl  1.2 //    FRU
1724           // ==================================================================
1725              [Version ("2.6.0"), Description (
1726                "The CIM_FRU class is a vendor-defined collection of Products "
1727                "and/or PhysicalElements that is associated with a "
1728                "Product for the purpose of supporting, maintaining or "
1729                "upgrading that Product at the customer's location. FRU is "
1730                "an acronym for 'field replaceable unit'.") ] 
1731           class CIM_FRU : CIM_ManagedElement {
1732                 [Override ("Description"), Description (
1733                   "A textual description of the FRU."), 
1734                  MappingStrings {"MIF.DMTF|FRU|002.3"} ] 
1735              string Description;
1736                 [Key, MaxLen (64), Description (
1737                   "FRU ordering information."), 
1738                  MappingStrings {"MIF.DMTF|FRU|002.6"} ] 
1739              string FRUNumber;
1740                 [Key, MaxLen (64), Description (
1741                   "FRU identification such as a serial number on software or "
1742                   "a die number on a hardware chip."), 
1743                  MappingStrings {"MIF.DMTF|FRU|002.7"} ] 
1744 karl  1.2    string IdentifyingNumber;
1745                 [Key, MaxLen (256),
1746                  Description ("The name of the FRU's supplier."), 
1747                  MappingStrings {"MIF.DMTF|FRU|002.4"} ] 
1748              string Vendor;
1749                 [Description ("FRU name."), MaxLen (256) ] 
1750              string Name;
1751                 [MaxLen (64), Description ("The FRU's revision level."),
1752                  MappingStrings {"MIF.DMTF|FRU|002.8"} ] 
1753              string RevisionLevel;
1754                 [Description ("Indicates whether the FRU is "
1755                   "customer replaceable.") ]
1756              boolean CustomerReplaceable;
1757           };
1758               
1759                
1760           // ==================================================================
1761           //    ProductFRU
1762           // ==================================================================
1763              [Association, Version ("2.6.0"), Description (
1764                "CIM_ProductFRU is an association between Product and FRU "
1765 karl  1.2      "that provides information regarding what Product components "
1766                "have been or are being replaced.  The association is one to "
1767                "many, conveying that a Product can have many FRUs, and that "
1768                "a particular instance of a FRU is only applied to one " 
1769                "(instance of a) Product.") ] 
1770           class CIM_ProductFRU {
1771                 [Max (1), Key, Description (
1772                   "The Product to which the FRU is applied.") ] 
1773              CIM_Product REF Product;
1774                 [Key, Description ("The FRU.") ]
1775              CIM_FRU REF FRU;
1776           };
1777           
1778                
1779           // ==================================================================
1780           //    ReplaceableProductFRU
1781           // ==================================================================
1782              [Association, Version ("2.6.0"), Description (
1783                "ReplaceableProductFRU is an association between Product and "
1784                "FRU that shows what Product components may be replaced. "
1785                "The association is one to many, conveying that a Product "
1786 karl  1.2      "can have many FRUs, and that a particular instance of a "
1787                "FRU is only applied to one (instance of a) Product.") ] 
1788           class CIM_ReplaceableProductFRU {
1789                 [Max (1), Key, Description (
1790                   "The Product to which the FRU is applied.") ] 
1791              CIM_Product REF Product;
1792                 [Key, Description ("The FRU.") ]
1793              CIM_FRU REF FRU;
1794           };
1795           
1796                
1797           // ==================================================================
1798           //    ProductPhysicalElements
1799           // ==================================================================
1800              [Association, Aggregation, Version ("2.6.0"), Description (
1801                "Indicates the PhysicalElements that make up a Product.") ]
1802           class CIM_ProductPhysicalElements {
1803                 [Max (1), Aggregate, Key, Description (
1804                   "The Product.") ]
1805              CIM_Product REF Product;
1806                 [Key, Description (
1807 karl  1.2         "The PhysicalElement which is a part of the Product.") ]
1808              CIM_PhysicalElement REF Component;
1809           };
1810           
1811           
1812           // ==================================================================
1813           //    FRUPhysicalElements
1814           // ==================================================================
1815              [Association, Aggregation, Version ("2.6.0"), Description (
1816                "Indicates the PhysicalElements that make up a FRU.") ]
1817           class CIM_FRUPhysicalElements {
1818                 [Max (1), Aggregate, Key, Description (
1819                   "The FRU.") ]
1820              CIM_FRU REF FRU;
1821                 [Key, Description (
1822                   "The PhysicalElement which is a part of the FRU.") ]
1823              CIM_PhysicalElement REF Component;
1824           };
1825           
1826           
1827           // ==================================================================
1828 karl  1.2 //    FRUIncludesProduct
1829           // ==================================================================
1830              [Association, Aggregation, Version ("2.6.0"), Description (
1831                "Indicates that a FRU may be composed of other Product(s).") ]
1832           class CIM_FRUIncludesProduct {
1833                 [Max (1), Aggregate, Key, Description ("The FRU.") ]
1834              CIM_FRU REF FRU;
1835                 [Key, Description (
1836                   "The Product which is a part of the FRU.") ]
1837              CIM_Product REF Component;
1838           };
1839           
1840           
1841           // ==================================================================
1842           //    Collection 
1843           // ================================================================== 
1844              [Abstract, Version ("2.6.0"), Description (   
1845                "Collection is an abstract class that provides a common "   
1846                "superclass for data elements that represent collections of "
1847                "ManagedElements and its subclasses.") ]
1848           class CIM_Collection : CIM_ManagedElement {   
1849 karl  1.2 };
1850           
1851           
1852           // ==================================================================
1853           //    MemberOfCollection    
1854           // ==================================================================
1855              [Association, Aggregation, Version ("2.6.0"), Description (   
1856                "CIM_MemberOfCollection is an aggregation used to establish "   
1857                "membership of ManagedElements in a Collection." ) ]  
1858           class CIM_MemberOfCollection {   
1859                 [Key, Aggregate, Description (
1860                   "The Collection that aggregates members.") ]    
1861              CIM_Collection REF Collection;
1862                 [Key, Description (
1863                   "The aggregated member of the Collection.") ]    
1864              CIM_ManagedElement REF Member;   
1865           };   
1866           
1867           
1868           // ===================================================================
1869           //    CollectionOfMSEs
1870 karl  1.2 // ===================================================================
1871              [Abstract, Version ("2.6.0"), Description (
1872                "  The CollectionOfMSEs object allows the grouping of Managed"
1873                "SystemElements for various identification purposes and to "
1874                "reduce the complexity of associating Settings and "
1875                "Configurations. It is abstract to require further definition "
1876                "and semantic refinement in subclasses. The CollectionOfMSEs "
1877                "object does not carry any state or status information, but "
1878                "only represents a grouping or 'bag' of Elements. For this "
1879                "reason, it is incorrect to subclass groups that have state/"
1880                "status from CollectionOfMSEs - an example is CIM_Redundancy"
1881                "Group (which is subclassed from LogicalElement). \n"
1882                "  Collections typically aggregate 'like'objects, but are " 
1883                "not required to do so.  They simply identify 'bags' and "
1884                "may represent an optimization. This is especially true "
1885                "with respect to their association to Settings and "
1886                "Configurations. Without Collections, one is forced to "
1887                "define individual ElementSetting andElementConfiguration "
1888                "associations, to tie Settings and Configuration objects to "
1889                "individual ManagedSystemElements. There may be much "
1890                "duplication in assigning the same Setting to multiple objects. "
1891 karl  1.2      "In addition, using the Collection object allows the "
1892                "determination that the Setting and Configuration associations "
1893                "are indeed the same for the Collection's members. This "
1894                "information would otherwise be obtained by defining the "
1895                "Collection in a proprietary manner, and then querying "
1896                "the ElementSetting and ElementConfiguration associations to "
1897                "determine ifthe Collection set is completely covered.") ]
1898           class CIM_CollectionOfMSEs : CIM_Collection {
1899                 [MaxLen (256), Description (
1900                   "The identification of the Collection object. When subclassed, "
1901                   "the CollectionID property can be overridden to be a Key "
1902                   "property.") ]
1903              string CollectionID;
1904           };
1905           
1906           
1907           // ==================================================================
1908           //    CollectedCollections
1909           // ==================================================================
1910              [Association, Aggregation, Version ("2.6.0"), Description (
1911                "CIM_CollectedCollections is an aggregation association "
1912 karl  1.2      "representing that a CollectionOfMSEs may itself be contained "
1913                "in a CollectionOfMSEs.") ]
1914           class CIM_CollectedCollections {
1915                 [Aggregate, Key, Description (
1916                   "The 'higher level' or parent element in the aggregation.") ]
1917              CIM_CollectionOfMSEs REF Collection;
1918                 [Key, Description ("The 'collected' Collection.") ]
1919              CIM_CollectionOfMSEs REF CollectionInCollection;
1920           };
1921           
1922                
1923           // ==================================================================
1924           //    CollectedMSEs
1925           // ==================================================================
1926              [Association, Aggregation, Version ("2.6.0"), Description (
1927                "CIM_CollectedMSEs is a generic association used to "
1928                "establish the members of the grouping object, CollectionOf"
1929                "MSEs.") ]
1930           class CIM_CollectedMSEs : CIM_MemberOfCollection {
1931                 [Aggregate, Override("Collection"), Description (
1932                   "The grouping or 'bag' object that represents the "
1933 karl  1.2         "Collection.") ]
1934              CIM_CollectionOfMSEs REF Collection;
1935                 [Override("Member"), 
1936                  Description ("The members of the Collection.") ]
1937              CIM_ManagedSystemElement REF Member;
1938           };
1939           
1940           
1941           // ==================================================================
1942           //  UML Page 3 - Statistics
1943           // ==================================================================
1944           // ==================================================================
1945           //    StatisticalInformation
1946           // ================================================================== 
1947              [Abstract, Version ("2.6.0"), Description ( 
1948                "CIM_StatisticalInformation is a root class for any arbitrary " 
1949                "collection of statistical data and/or metrics applicable to " 
1950                "one or more ManagedSystemElements.") ] 
1951           class CIM_StatisticalInformation : CIM_ManagedElement { 
1952                 [MaxLen (256), Description ( 
1953                   "The Name property defines the label by which the statistic " 
1954 karl  1.2         "or metric is known. When subclassed, the property can be " 
1955                   "overridden to be a Key property.") ] 
1956              string Name; 
1957           };
1958           
1959           
1960           // ==================================================================
1961           //    Statistics
1962           // ================================================================== 
1963              [Association, Version ("2.6.0"), Description ( 
1964                "CIM_Statistics is an association that relates Managed" 
1965                "Elements to the StatisticalGroup(s) that apply to them.") ]
1966           class CIM_Statistics { 
1967                 [Key, Description (
1968                   "The statistic information/object.") ] 
1969              CIM_StatisticalInformation REF Stats; 
1970                 [Key, Description ( 
1971                   "The ManagedElement for which statistical or metric " 
1972                   "data is defined.") ] 
1973              CIM_ManagedElement REF Element;
1974           };
1975 karl  1.2 
1976           
1977           // ==================================================================
1978           //    RelatedStatistics
1979           // ================================================================== 
1980              [Association, Version ("2.6.0"), Description( 
1981                "CIM_RelatedStatistics is an association that defines " 
1982                "hierarchies and/or dependencies of related CIM_Statistical" 
1983                "Information classes.") ]
1984           class CIM_RelatedStatistics { 
1985                 [Key, Description (
1986                   "The statistic information/object.") ] 
1987              CIM_StatisticalInformation REF Stats; 
1988                 [Key, Description (
1989                   "The related statistics or metrics.") ] 
1990              CIM_StatisticalInformation REF RelatedStats;
1991           };
1992           
1993           
1994           // ==================================================================
1995           //    SystemStatisticalInformation
1996 karl  1.2 // ==================================================================
1997              [Version ("2.6.0"), Description (
1998                "Statistical information associated with a System object "
1999                "or one of its subclasses.") ]
2000           class CIM_SystemStatisticalInformation : CIM_StatisticalInformation {
2001                 [Propagated("CIM_System.CreationClassName"), Key, 
2002                  MaxLen (256), Description (
2003                   "The scoping System's CreationClassName.") ]
2004              string SystemCreationClassName;
2005                 [Propagated("CIM_System.Name"), Key, MaxLen (256), 
2006                  Description ("The scoping System's Name.") ]
2007              string SystemName;
2008                 [Key, MaxLen (256), Description (
2009                   "CreationClassName indicates the name of the class or the "
2010                   "subclass used in the creation of an instance. When used "
2011                   "with the other key properties of this class, this property "
2012                   "allows all instances of this class and its subclasses to "
2013                   "be uniquely identified.") ]
2014              string CreationClassName;
2015                 [Key, MaxLen (256), Override ("Name"), Description (
2016                   "The Name property, inherited from StatisticalInformation, "
2017 karl  1.2         "serves as part of the object key.") ]
2018              string Name;
2019           };
2020           
2021           
2022           // ==================================================================
2023           //    SystemStatistics
2024           // ==================================================================
2025              [Association, Version ("2.6.0"), Description (
2026                "SystemStatistics relates the SystemStatisticalInformation "
2027                "class to the System to which it applies.") ]
2028           class CIM_SystemStatistics : CIM_Statistics {
2029                 [Override ("Stats"), Weak, Description (
2030                   "The statistical object.") ]
2031              CIM_SystemStatisticalInformation REF Stats;
2032                 [Override ("Element"), Min (1), Max (1), 
2033                  Description ("The System to which the statistics apply.") ]
2034              CIM_System REF Element;
2035           };
2036           
2037           
2038 karl  1.2 // ==================================================================
2039           //    ServiceStatisticalInformation
2040           // ==================================================================
2041              [Version ("2.6.0"), Description (
2042                "Statistical information associated with a Service object "
2043                "or one of its subclasses.") ]
2044           class CIM_ServiceStatisticalInformation : CIM_StatisticalInformation {
2045                 [Propagated("CIM_Service.SystemCreationClassName"), Key, 
2046                  MaxLen (256), Description (
2047                   "The scoping System's CreationClassName.") ]
2048              string SystemCreationClassName;
2049                 [Propagated("CIM_Service.SystemName"), Key, MaxLen (256), 
2050                  Description ("The scoping System's Name.") ]
2051              string SystemName;
2052                 [Propagated("CIM_Service.CreationClassName"), Key, 
2053                  MaxLen (256), Description (
2054                   "The scoping Service's CreationClassName.") ]
2055              string ServiceCreationClassName;
2056                 [Propagated("CIM_Service.Name"), Key, MaxLen (256), 
2057                  Description ("The scoping Service's Name.") ]
2058              string ServiceName;
2059 karl  1.2       [Key, MaxLen (256), Description (
2060                   "CreationClassName indicates the name of the class or the "
2061                   "subclass used in the creation of an instance. When used "
2062                   "with the other key properties of this class, this property "
2063                   "allows all instances of this class and its subclasses to "
2064                   "be uniquely identified.") ]
2065              string CreationClassName;
2066                 [Key, MaxLen (256), Override ("Name"), Description (
2067                   "The Name property, inherited from StatisticalInformation, "
2068                   "serves as part of the object key.") ]
2069              string Name;
2070           };
2071           
2072           
2073           // ==================================================================
2074           //    ServiceStatistics
2075           // ==================================================================
2076              [Association, Version ("2.6.0"), Description (
2077                "ServiceStatistics relates the ServiceStatisticalInformation "
2078                "class to the Service to which it applies.") ]
2079           class CIM_ServiceStatistics : CIM_Statistics {
2080 karl  1.2       [Override ("Stats"), Weak, 
2081                  Description ("The statistical object.") ]
2082              CIM_ServiceStatisticalInformation REF Stats;
2083                 [Override ("Element"), Min (1), Max (1), 
2084                  Description ( 
2085                   "The Service to which the statistics apply.") ]
2086              CIM_Service REF Element;
2087           };
2088           
2089           
2090           // ==================================================================
2091           //    SAPStatisticalInformation
2092           // ==================================================================
2093              [Version ("2.6.0"), Description (
2094                "Statistical information associated with a Service"
2095                "AccessPoint object or one of its subclasses.") ]
2096           class CIM_SAPStatisticalInformation : CIM_StatisticalInformation {
2097                 [Propagated("CIM_ServiceAccessPoint.SystemCreationClassName"),  
2098                  Key, MaxLen (256), Description (
2099                   "The scoping System's CreationClassName.") ]
2100              string SystemCreationClassName;
2101 karl  1.2       [Propagated("CIM_ServiceAccessPoint.SystemName"), Key, 
2102                  MaxLen (256), Description ("The scoping System's Name.") ]
2103              string SystemName;
2104                 [Propagated("CIM_ServiceAccessPoint.CreationClassName"), 
2105                  Key, MaxLen (256), Description (
2106                   "The scoping SAP's CreationClassName.") ]
2107              string SAPCreationClassName;
2108                 [Propagated("CIM_ServiceAccessPoint.Name"), Key, 
2109                  MaxLen (256), Description ("The scoping SAP's Name.") ]
2110              string SAPName;
2111                 [Key, MaxLen (256), Description (
2112                   "CreationClassName indicates the name of the class or the "
2113                   "subclass used in the creation of an instance. When used "
2114                   "with the other key properties of this class, this property "
2115                   "allows all instances of this class and its subclasses to "
2116                   "be uniquely identified.") ]
2117              string CreationClassName;
2118                 [Key, MaxLen (256), Override ("Name"), Description (
2119                   "The Name property, inherited from StatisticalInformation, "
2120                   "serves as part of the object key.") ]
2121              string Name;
2122 karl  1.2 };
2123           
2124           
2125           // ==================================================================
2126           //    SAPStatistics
2127           // ==================================================================
2128              [Association, Version ("2.6.0"), Description (
2129                "SAPStatistics relates the SAPStatisticalInformation "
2130                "class to the ServiceAccessPoint to which it applies.") ]
2131           class CIM_SAPStatistics : CIM_Statistics {
2132                 [Override ("Stats"), Weak, 
2133                  Description ("The statistical object.") ]
2134              CIM_SAPStatisticalInformation REF Stats;
2135                 [Override ("Element"), Min (1), Max (1), Description (
2136                   "The ServiceAccessPoint to which the statistics apply.") ]
2137              CIM_ServiceAccessPoint REF Element;
2138           };
2139           
2140           
2141           // ==================================================================
2142           //    DeviceStatisticalInformation
2143 karl  1.2 // ==================================================================
2144              [Version ("2.6.0"), Description (
2145                "Statistical information associated with a LogicalDevice "
2146                "or one of its subclasses.") ]
2147           class CIM_DeviceStatisticalInformation : CIM_StatisticalInformation {
2148                 [Propagated("CIM_LogicalDevice.SystemCreationClassName"), Key, 
2149                  MaxLen (256), Description (
2150                   "The scoping System's CreationClassName.") ]
2151              string SystemCreationClassName;
2152                 [Propagated("CIM_LogicalDevice.SystemName"), Key, MaxLen (256), 
2153                  Description ("The scoping System's Name.") ]
2154              string SystemName;
2155                 [Propagated("CIM_LogicalDevice.CreationClassName"), Key, 
2156                  MaxLen (256), 
2157                  Description ("The scoping Device's CreationClassName.") ]
2158              string DeviceCreationClassName;
2159                 [Propagated("CIM_LogicalDevice.DeviceID"), Key, MaxLen (64), 
2160                  Description ("The scoping Device's ID.") ]
2161              string DeviceID;
2162                 [Key, MaxLen (256), Description (
2163                   "CreationClassName indicates the name of the class or the "
2164 karl  1.2         "subclass used in the creation of an instance. When used "
2165                   "with the other key properties of this class, this property "
2166                   "allows all instances of this class and its subclasses to "
2167                   "be uniquely identified.") ]
2168              string CreationClassName;
2169                 [Key, MaxLen (256), Override ("Name"), Description (
2170                   "The Name property, inherited from StatisticalInformation, "
2171                   "serves as part of the object key.") ]
2172              string Name;
2173           };
2174           
2175           
2176           // ==================================================================
2177           //    DeviceStatistics
2178           // ==================================================================
2179              [Association, Version ("2.6.0"), Description (
2180                "DeviceStatistics relates the DeviceStatisticalInformation "
2181                "class to the LogicalDevice to which it applies.") ]
2182           class CIM_DeviceStatistics : CIM_Statistics {
2183                 [Override ("Stats"), Weak, 
2184                  Description ("The statistical object.") ]
2185 karl  1.2    CIM_DeviceStatisticalInformation REF Stats;
2186                 [Override ("Element"), Min (1), Max (1), 
2187                  Description ("The Device to which the statistics apply.") ]
2188              CIM_LogicalDevice REF Element;
2189           };
2190           
2191           
2192           // ==================================================================
2193           //    PhysicalStatisticalInformation
2194           // ==================================================================
2195              [Version ("2.6.0"), Description (
2196                "Statistical information associated with a PhysicalElement "
2197                "or one of its subclasses.") ]
2198           class CIM_PhysicalStatisticalInformation : CIM_StatisticalInformation {
2199                 [Propagated("CIM_PhysicalElement.CreationClassName"), Key, 
2200                  MaxLen (256), 
2201                  Description ("The scoping Element's CreationClassName.") ]
2202              string PhysicalCreationClassName;
2203                 [Propagated("CIM_PhysicalElement.Tag"), Key, MaxLen (256), 
2204                  Description ("The scoping Element's identifying Tag.") ]
2205              string Tag;
2206 karl  1.2       [Key, MaxLen (256), Description (
2207                   "CreationClassName indicates the name of the class or the "
2208                   "subclass used in the creation of an instance. When used "
2209                   "with the other key properties of this class, this property "
2210                   "allows all instances of this class and its subclasses to "
2211                   "be uniquely identified.") ]
2212              string CreationClassName;
2213                 [Key, MaxLen (256), Override ("Name"), Description (
2214                   "The Name property, inherited from StatisticalInformation, "
2215                   "serves as part of the object key.") ]
2216              string Name;
2217           };
2218           
2219           
2220           // ==================================================================
2221           //    PhysicalStatistics
2222           // ==================================================================
2223              [Association, Version ("2.6.0"), Description (
2224                "PhysicalStatistics relates the PhysicalStatisticalInformation "
2225                "class to the PhysicalElement to which it applies.") ]
2226           class CIM_PhysicalStatistics : CIM_Statistics {
2227 karl  1.2       [Override ("Stats"), Weak, 
2228                  Description ("The statistical object.") ]
2229              CIM_PhysicalStatisticalInformation REF Stats;
2230                 [Override ("Element"), Min (1), Max (1), Description (
2231                   "The PhysicalElement to which the statistics apply.") ]
2232              CIM_PhysicalElement REF Element;
2233           };
2234           
2235           
2236           // ==================================================================
2237           //  UML Page 4 - Settings
2238           // ==================================================================
2239           // ===================================================================
2240           //    Setting
2241           // ===================================================================
2242              [Abstract, Version ("2.6.0"), Description (
2243                "The Setting class represents configuration-related and "
2244                "operational parameters for one or more ManagedSystem"
2245                "Element(s). A ManagedSystemElement may have multiple Setting "
2246                "objects associated with it. The current operational values "
2247                "for an Element's parameters are reflected by properties in "
2248 karl  1.2      "the Element itself or by properties in its associations. "
2249                "These properties do not have to be the same values present "
2250                "in the Setting object. For example, a modem may have a "
2251                "Setting baud rate of 56Kb/sec but be operating "
2252                "at 19.2Kb/sec.") ]
2253           class CIM_Setting : CIM_ManagedElement {
2254                 [MaxLen (256), Description (
2255                   "The identifier by which the Setting object is known.") ]
2256              string SettingID;
2257                 [Description (
2258                   "The VerifyOKToApplyToMSE method is used to verify that "
2259                   "this Setting can be 'applied' to the referenced Managed"
2260                   "SystemElement, at the given time or time interval. This "
2261                   "method takes three input parameters: MSE (the Managed"
2262                   "SystemElement that is being verified), TimeToApply (which, "
2263                   "being a datetime, can be either a specific time or a time "
2264                   "interval), and MustBeCompletedBy (which indicates the "
2265                   "required completion time for the method). The return "
2266                   "value should be 0 if it is OK to apply the Setting, 1 if "
2267                   "the method is not supported, 2 if the Setting cannot be "
2268                   "applied within the specified times, and any other number "
2269 karl  1.2         "if an error occurred. In a subclass, the "
2270                   "set of possible return codes could be specified, using a "
2271                   "ValueMap qualifier on the method. The strings to which the "
2272                   "ValueMap contents are 'translated' may also be specified in "
2273                   "the subclass as a Values array qualifier.") ]
2274              uint32 VerifyOKToApplyToMSE(
2275                 [IN] CIM_ManagedSystemElement ref MSE, 
2276                 [IN] datetime TimeToApply, 
2277                 [IN] datetime MustBeCompletedBy);
2278                 [Description (
2279                   "  The ApplyToMSE method performs the actual application of "
2280                   "the Setting to the referenced ManagedSystemElement. It "
2281                   "takes three input parameters: MSE (the ManagedSystem"
2282                   "Element to which the Setting is being applied), "
2283                   "TimeToApply (which, being a datetime, can be either a "
2284                   "specific time or a time interval), and MustBeCompletedBy "
2285                   "(which indicates the required completion time for the "
2286                   "method). Note that the semantics of this method are that "
2287                   "individual Settings are either wholly applied or not "
2288                   "applied at all to their target ManagedSystemElement. The "
2289                   "return value should be 0 if the Setting is successfully "
2290 karl  1.2         "applied to the referenced ManagedSystemElement, 1 if the "
2291                   "method is not supported, 2 if the Setting was not applied "
2292                   "within the specified times, and any other number if an "
2293                   "error occurred. In a subclass, the set of possible return "
2294                   "codes could be specified, using a ValueMap qualifier on "
2295                   "the method. The strings to which the ValueMap contents are "
2296                   "'translated' may also be specified in the subclass as a "
2297                   "Values array qualifier. \n"
2298                   "  Note: If an error occurs in applying the Setting to a "
2299                   "ManagedSystemElement, the Element must be configured as "
2300                   "when the 'Apply' attempt began. That is, the Element "
2301                   "should NOT be left in an indeterminate state.") ]
2302              uint32 ApplyToMSE(
2303                 [IN] CIM_ManagedSystemElement ref MSE, 
2304                 [IN] datetime TimeToApply, 
2305                 [IN] datetime MustBeCompletedBy);
2306                 [Description (
2307                   "  The VerifyOKToApplyToCollection method is used to verify "
2308                   "that this Setting can be 'applied' to the referenced "
2309                   "Collection of ManagedSystemElements, at the given time "
2310                   "or time interval, without causing adverse effects to "
2311 karl  1.2         "either the Collection itself or its surrounding "
2312                   "environment. The net effect is to execute the "
2313                   "VerifyOKToApply method against each of the Elements "
2314                   "aggregated by the Collection. This method takes three "
2315                   "input parameters: Collection (the Collection of Managed"
2316                   "SystemElements that is being verified), TimeToApply (which, "
2317                   "being a datetime, can be either a specific time or a time "
2318                   "interval), and MustBeCompletedBy (which indicates the "
2319                   "required completion time for the method). The return "
2320                   "value should be 0 if it is OK to apply the Setting, 1 if "
2321                   "the method is not supported, 2 if the Setting cannot be "
2322                   "applied within the specified times, and any other number if "
2323                   "an error occurred. One output parameter is defined - "
2324                   "CanNotApply - which is a string array that lists the keys "
2325                   "of the ManagedSystemElements to which the Setting can NOT be "
2326                   "applied. This enables those Elements to be revisited and "
2327                   "either fixed, or other corrective action taken. \n"
2328                   "  In a subclass, the set of possible return codes could be "
2329                   "specified, using a ValueMap qualifier on the method. The "
2330                   "strings to which the ValueMap contents are 'translated' may "
2331                   "also be specified in the subclass as a Values array "
2332 karl  1.2         "qualifier.") ] 
2333              uint32 VerifyOKToApplyToCollection (
2334                 [IN] CIM_CollectionOfMSEs ref Collection,
2335                 [IN] datetime TimeToApply, 
2336                 [IN] datetime MustBeCompletedBy,
2337                 [IN (false), OUT] string CanNotApply[]);
2338                 [Description (
2339                   "  The ApplyToCollection method performs the application of "
2340                   "the Setting to the referenced Collection of ManagedSystem"
2341                   "Elements. The net effect is to execute the ApplyToMSE "
2342                   "method against each of the Elements aggregated by the "
2343                   "Collection. If the input value ContinueOnError is FALSE, "
2344                   "this method applies the Setting to all Elements in the "
2345                   "Collection until it encounters an error, in which case it "
2346                   "stops execution, logs the key of the Element that caused "
2347                   "the error in the CanNotApply array, and issues a return code "
2348                   "of 2. If the input value ContinueOnError is TRUE, then this "
2349                   "method applies the Setting to all the ManagedSystemElements "
2350                   "in the Collection, and reports the failed Elements in the "
2351                   "array, CanNotApply. For the latter, processing will continue "
2352                   "until the method is applied to all Elements in the "
2353 karl  1.2         "Collection, regardless of any errors encountered. The key of "
2354                   "each ManagedSystemElement to which the Setting could not be "
2355                   "applied is logged into the CanNotApply array. This method "
2356                   "takes four input parameters: Collection (the Collection of "
2357                   "Elements to which the Setting is being applied), TimeToApply "
2358                   "(which, being a datetime, can be either a specific time or a "
2359                   "time interval), ContinueOnError (TRUE means to continue "
2360                   "processing on encountering an error), and MustBeCompletedBy "
2361                   "(which indicates the required completion time for the "
2362                   "method). The return value should be 0 if the Setting is "
2363                   "successfully applied to the referenced Collection, 1 if the "
2364                   "method is not supported, 2 if the Setting was not applied "
2365                   "within the specified times, 3 if the Setting cannot be "
2366                   "applied using the input value for ContinueOnError, and any "
2367                   "other number if an error occurred. One output parameter is "
2368                   "defined, CanNotApplystring, which is an array that lists "
2369                   "the keys of the ManagedSystemElements to which the Setting "
2370                   "was NOT able to be applied. This output parameter has "
2371                   "meaning only when the ContinueOnError parameter is TRUE. \n"
2372                   "  In a subclass, the set of possible return codes could be "
2373                   "specified, using a ValueMap qualifier on the method. The "
2374 karl  1.2         "strings to which the ValueMap contents are 'translated' may "
2375                   "also be specified in the subclass as a Values array "
2376                   "qualifier. \n"
2377                   "Note: if an error occurs in applying the Setting to a "
2378                   "ManagedSystemElement in the Collection, the Element must be "
2379                   "configured as when the 'Apply' attempt began. That is, the "
2380                   "Element should NOT be left in an indeterminate state.") ]
2381              uint32 ApplyToCollection(
2382                 [IN] CIM_CollectionOfMSEs ref Collection, 
2383                 [IN] datetime TimeToApply, 
2384                 [IN] boolean ContinueOnError,
2385                 [IN] datetime MustBeCompletedBy, 
2386                 [IN (false), OUT] string CanNotApply[]);
2387                 [Description ( 
2388                   "The VerifyOKToApplyIncrementalChangeToMSE method " 
2389                   "is used to verify that a subset of the properties in " 
2390                   "this Setting can be 'applied' to the referenced Managed" 
2391                   "SystemElement, at the given time or time interval. This " 
2392                   "method takes four input parameters: MSE (the Managed" 
2393                   "SystemElement that is being verified), TimeToApply (which, " 
2394                   "being a datetime, can be either a specific time or a time " 
2395 karl  1.2         "interval), MustBeCompletedBy (which indicates the " 
2396                   "required completion time for the method), and a " 
2397                   "PropertiesToApply array (which contains a list of the " 
2398                   "property names whose values will be verified.) " 
2399                   "If the array is null, empty or contains the string \"ALL\" " 
2400                   "as a property name, then all Settings properties shall be " 
2401                   "verified.  If it is set to \"NONE\", then no Settings " 
2402                   "properties will be verified. The return " 
2403                   "value should be 0 if it is OK to apply the Setting, 1 if " 
2404                   "the method is not supported, 2 if the Setting cannot be " 
2405                   "applied within the specified times, and any other number " 
2406                   "if an error occurred. In a subclass, the " 
2407                   "set of possible return codes could be specified, using a " 
2408                   "ValueMap qualifier on the method. The strings to which the " 
2409                   "ValueMap contents are 'translated' may also be specified in " 
2410                   "the subclass as a Values array qualifier.") ] 
2411              uint32 VerifyOKToApplyIncrementalChangeToMSE( 
2412                 [IN] CIM_ManagedSystemElement ref MSE, 
2413                 [IN] datetime TimeToApply, 
2414                 [IN] datetime MustBeCompletedBy, 
2415                 [IN] string PropertiesToApply[]); 
2416 karl  1.2       [Description ( 
2417                   "  The ApplyIncrementalChangeToMSE method performs the " 
2418                   "actual application of a subset of the properties in " 
2419                   "the Setting to the referenced ManagedSystemElement. It " 
2420                   "takes four input parameters: MSE (the ManagedSystem" 
2421                   "Element to which the Setting is being applied), " 
2422                   "TimeToApply (which, being a datetime, can be either a " 
2423                   "specific time or a time interval), MustBeCompletedBy " 
2424                   "(which indicates the required completion time for the " 
2425                   "method), and a PropertiesToApply array (which contains a "
2426                   "list of the property names whose values will be applied.) If a " 
2427                   "property is not in this list, it will be ignored by the Apply. " 
2428                   "If the array is null, empty or contains the string \"ALL\" " 
2429                   "as a property name, then all Settings properties shall be " 
2430                   "applied.  If it is set to \"NONE\", then no Settings " 
2431                   "properties will be applied. \n" 
2432                   "  Note that the semantics of this method are that " 
2433                   "individual Settings are either wholly applied or not " 
2434                   "applied at all to their target ManagedSystemElement. The " 
2435                   "return value should be 0 if the Setting is successfully " 
2436                   "applied to the referenced ManagedSystemElement, 1 if the " 
2437 karl  1.2         "method is not supported, 2 if the Setting was not applied " 
2438                   "within the specified times, and any other number if an " 
2439                   "error occurred. In a subclass, the set of possible return " 
2440                   "codes could be specified, using a ValueMap qualifier on " 
2441                   "the method. The strings to which the ValueMap contents are " 
2442                   "'translated' may also be specified in the subclass as a " 
2443                   "Values array qualifier. \n" 
2444                   "  Note: If an error occurs in applying the Setting to a " 
2445                   "ManagedSystemElement, the Element must be configured as " 
2446                   "when the 'Apply' attempt began. That is, the Element " 
2447                   "should NOT be left in an indeterminate state.") ] 
2448              uint32 ApplyIncrementalChangeToMSE( 
2449                 [IN] CIM_ManagedSystemElement ref MSE, 
2450                 [IN] datetime TimeToApply, 
2451                 [IN] datetime MustBeCompletedBy, 
2452                 [IN] string PropertiesToApply[]); 
2453                 [Description ( 
2454                   "  The VerifyOKToApplyIncrementalChangeToCollection method " 
2455                   "is used to verify that a subset of the properties in " 
2456                   "this Setting can be 'applied' to the referenced " 
2457                   "Collection of ManagedSystemElements, at the given time " 
2458 karl  1.2         "or time interval, without causing adverse effects to " 
2459                   "either the Collection itself or its surrounding " 
2460                   "environment. The net effect is to execute the " 
2461                   "VerifyOKToApplyIncrementalChangeToMSE method " 
2462                   "against each of the Elements " 
2463                   "aggregated by the Collection. This method takes three " 
2464                   "input parameters: Collection (the Collection of Managed" 
2465                   "SystemElements that is being verified), TimeToApply (which, " 
2466                   "being a datetime, can be either a specific time or a time " 
2467                   "interval), MustBeCompletedBy (which indicates the " 
2468                   "required completion time for the method), and a " 
2469                   "PropertiesToApply array (which contains a list of the " 
2470                   "property names whose values will be verified. " 
2471                   "If they array is null or empty or constains the string \"all\" " 
2472                   "as a property name then all Settings properties shall be " 
2473                   "verified.  If it is set to \"none\" then no Settings properties " 
2474                   "will be verified). The return " 
2475                   "value should be 0 if it is OK to apply the Setting, 1 if " 
2476                   "the method is not supported, 2 if the Setting cannot be " 
2477                   "applied within the specified times, and any other number if " 
2478                   "an error occurred. One output parameter is defined - " 
2479 karl  1.2         "CanNotApply - which is a string array that lists the keys of " 
2480                   "the ManagedSystemElements to which the Setting can NOT be " 
2481                   "applied. This enables those Elements to be revisited and " 
2482                   "either fixed, or other corrective action taken. \n" 
2483                   "  In a subclass, the set of possible return codes could be " 
2484                   "specified, using a ValueMap qualifier on the method. The " 
2485                   "strings to which the ValueMap contents are 'translated' may " 
2486                   "also be specified in the subclass as a Values array " 
2487                   "qualifier.") ] 
2488              uint32 VerifyOKToApplyIncrementalChangeToCollection ( 
2489                 [IN] CIM_CollectionOfMSEs ref Collection, 
2490                 [IN] datetime TimeToApply, 
2491                 [IN] datetime MustBeCompletedBy, 
2492                 [IN] string PropertiesToApply[], 
2493                 [IN (false), OUT] string CanNotApply[]); 
2494                 [Description ( 
2495                   "  The ApplyIncrementalChangeToCollection method performs " 
2496                   "the application of a subset of the properties in this " 
2497                   "Setting to the referenced Collection of ManagedSystem" 
2498                   "Elements. The net effect is to execute the " 
2499                   "ApplyIncrementalChangeToMSE " 
2500 karl  1.2         "method against each of the Elements aggregated by the " 
2501                   "Collection. If the input value ContinueOnError is FALSE, " 
2502                   "this method applies the Setting to all Elements in the " 
2503                   "Collection until it encounters an error, in which case it " 
2504                   "stops execution, logs the key of the Element that caused " 
2505                   "the error in the CanNotApply array, and issues a return code " 
2506                   "of 2. If the input value ContinueOnError is TRUE, then this " 
2507                   "method applies the Setting to all the ManagedSystemElements " 
2508                   "in the Collection, and reports the failed Elements in the " 
2509                   "array, CanNotApply. For the latter, processing will continue " 
2510                   "until the method is applied to all Elements in the " 
2511                   "Collection, regardless of any errors encountered. The key of " 
2512                   "each ManagedSystemElement to which the Setting could not be " 
2513                   "applied is logged into the CanNotApply array. This method " 
2514                   "takes four input parameters: Collection (the Collection of " 
2515                   "Elements to which the Setting is being applied), TimeToApply " 
2516                   "(which, being a datetime, can be either a specific time or a " 
2517                   "time interval), ContinueOnError (TRUE means to continue " 
2518                   "processing on encountering an error), and MustBeCompletedBy " 
2519                   "(which indicates the required completion time for the " 
2520                   "method), and a PropertiesToApply array (which contains a list " 
2521 karl  1.2         "of the property names whose values will be applied.) If a " 
2522                   "property is not in this list, it will be ignored by the Apply. " 
2523                   "If the array is null or empty or contains the string \"ALL\" " 
2524                   "as a property name, then all Settings properties shall be " 
2525                   "applied. If it is set to \"NONE\", then no Settings properties " 
2526                   "will be applied. \n"
2527                   "  The return value should be 0 if the Setting is " 
2528                   "successfully applied to the referenced Collection, 1 if the " 
2529                   "method is not supported, 2 if the Setting was not applied " 
2530                   "within the specified time, 3 if the Setting cannot be " 
2531                   "applied using the input value for ContinueOnError, and any " 
2532                   "other number if an error occurred. One output parameter is " 
2533                   "defined, CanNotApplystring, which is an array that lists " 
2534                   "the keys of the ManagedSystemElements to which the Setting " 
2535                   "was NOT able to be applied. This output parameter has " 
2536                   "meaning only when the ContinueOnError parameter is TRUE. \n" 
2537                   "  In a subclass, the set of possible return codes could be " 
2538                   "specified, using a ValueMap qualifier on the method. The " 
2539                   "strings to which the ValueMap contents are 'translated' may " 
2540                   "also be specified in the subclass as a Values array " 
2541                   "qualifier. \n" 
2542 karl  1.2         "  Note: if an error occurs in applying the Setting to a " 
2543                   "ManagedSystemElement in the Collection, the Element must be " 
2544                   "configured as when the 'Apply' attempt began. That is, the " 
2545                   "Element should NOT be left in an indeterminate state.") ] 
2546              uint32 ApplyIncrementalChangeToCollection( 
2547                 [IN] CIM_CollectionOfMSEs ref Collection, 
2548                 [IN] datetime TimeToApply, 
2549                 [IN] boolean ContinueOnError, 
2550                 [IN] datetime MustBeCompletedBy, 
2551                 [IN] string PropertiesToApply[], 
2552                 [IN (false), OUT] string CanNotApply[]); 
2553           };
2554           
2555           
2556           // ===================================================================
2557           //    ElementSetting
2558           // ===================================================================
2559              [Association, Version ("2.6.0"), Description (
2560                "ElementSetting represents the association between Managed"
2561                "SystemElements and the Setting class(es) defined for them.") ]
2562           class CIM_ElementSetting {
2563 karl  1.2       [Key, Description ("The ManagedSystemElement.") ]
2564              CIM_ManagedSystemElement REF Element;
2565                 [Key, Description (
2566                   "The Setting object associated with the ManagedSystem"
2567                   "Element.") ]
2568              CIM_Setting REF Setting;
2569           };
2570           
2571           
2572           // ===================================================================
2573           //    DefaultSetting
2574           // ===================================================================
2575              [Association, Version ("2.6.0"), Description (
2576                "DefaultSetting represents the association between a Managed"
2577                "SystemElement and the single Setting class that is defined "
2578                "to be the default setting for this Element.") ]
2579           class CIM_DefaultSetting : CIM_ElementSetting {
2580                 [Override ("Setting"), Max (1), Description (
2581                   "The Setting object which is the default.") ]
2582              CIM_Setting REF Setting;
2583           };
2584 karl  1.2 
2585           
2586           // ================================================================== 
2587           //    MethodParameters 
2588           // ================================================================== 
2589               [Abstract, Version ("2.6.0"), Description (
2590                 "  CIM_MethodParameters represents a set of values to be used "
2591                 "as the parameters of a method. These parameters may be passed "
2592                 "to the method, diretly used by the method in its invocation, "
2593                 "or accessed by the method when it is called. The properties "
2594                 "of a concrete subclass of MethodParameters are mapped to the "
2595                 "parameters of a method by the method itself or by the method "
2596                 "caller. This is an implementation detail independent of the "
2597                 "definition of the class. For ease of use, property names "
2598                 "should match parameter names. \n"
2599                 "  Property values should be set before the method is invoked. " 
2600                 "The ModelCorrespondence qualifier can be used to indicate " 
2601                 "if the property value should come from another class's property. " 
2602                 "The instances that the property values should be gleaned from " 
2603                 "should be associated with MethodParameters using the Parameter"
2604                 "ValueSources association. If the property is declared as an "
2605 karl  1.2       "array, then the same property value (identified by the Model"
2606                 "Correspondence) will be retrieved from all appropriate "
2607                 "ParameterValueSources instances and stored in the array. If "
2608                 "the property is declared as an array and the Model"
2609                 "Correspondence is to an array property, then only one instance "
2610                 "of the array will be copied from one ParameterValueSource. " 
2611                 "If the property is not declared as an array and there are " 
2612                 "multiple instances of the class and property associated with " 
2613                 "it through ModelCorrespondence where the values are not all "
2614                 "the same, then an error will occur and the property's value "
2615                 "will not be set. Several MethodParameters instances can be "
2616                 "associated with any ManagedElement's methods. This allows the " 
2617                 "maintenance of 'canned' method invocation and reduces the " 
2618                 "overhead of recreating all method parameters for every method " 
2619                 "invocation.") ] 
2620           class CIM_MethodParameters : CIM_ManagedElement { 
2621                 [Maxlen (256) , Description ( 
2622                   "The identifier by which the MethodParameters object is known.") ] 
2623               string MethodParametersId ; 
2624                 [Description ( 
2625                   "The resetValues method updates the values of the properties of " 
2626 karl  1.2         "MethodParameters which have ModelCorrespondence to the " 
2627                   "SourceME ManagedElement. This allows the association of " 
2628                   "several source candidates with the MethodParameters with " 
2629                   "one being chosen as the source for this set of values. " 
2630                   "If resetValues is invoked and sourceME is null, then all " 
2631                   "associated MEs in ParameterValueSources will be used " 
2632                   "to set the values of the MethodParameters properties.") ]
2633               uint32 ResetValues([IN] CIM_ManagedElement ref SourceME); 
2634           }; 
2635           
2636           
2637           // =================================================================== 
2638           //    ParameterValueSources 
2639           // =================================================================== 
2640               [Association, Version ("2.6.0"), Description ( 
2641                 "ParameterValueSources represents the association between " 
2642                 "a MethodParameters instance and the ManagedElement instances " 
2643                 "which contain properties to be used to create values " 
2644                 "for the MethodParameters properties.") ] 
2645           class CIM_ParameterValueSources {        
2646                 [Key, Description ( 
2647 karl  1.2         "The MethodParameters instance whose property values "
2648                   "are to be set.") ] 
2649               CIM_MethodParameters ref Parameters; 
2650                 [Key, Description (
2651                   "The ManagedElement which contains properties to be used " 
2652                    "to populate the values of the properties of the "
2653                    "MethodParameters instance.") ] 
2654               CIM_ManagedElement ref ValueSource; 
2655           }; 
2656           
2657           
2658           // =================================================================== 
2659           //    ParametersForMethod 
2660           // =================================================================== 
2661               [Association, Version ("2.6.0"), Description ( 
2662                 "ParametersForMethod represents the association between "
2663                 "MethodParameters class(es) and a ManagedElement which has a "
2664                 "method that may use the MethodParameters during its "
2665                 "invocation. This association is optional, as the Method"
2666                 "Parameters instance may be passed as a parameter to a method " 
2667                 "or used to create a method signature before the method is "
2668 karl  1.2       "invoked. This association is useful for finding all the valid "
2669                 "MethodParameters instances for a particular method. It may "
2670                 "be particularly useful for user-oriented interfaces and "
2671                 "automated or policy driven method invocations.") ] 
2672           class CIM_ParametersForMethod {       
2673                 [Key, Description (
2674                   "The MethodParameters instance which may be used by the "
2675                   "ParametersForMethod's method invocation.") ]
2676               CIM_MethodParameters ref Parameters;
2677                 [Key, Description ("The ManagedElement which has "
2678                   "a method that may use this instance of MethodParameters.") ]
2679               CIM_ManagedElement ref TheMethod;
2680                 [Key, MaxLen(64),Description ("The name of the method that "
2681                   "may use the referenced instance of MethodParameters during "
2682                   "its invocation.") ]
2683               string MethodName;
2684           }; 
2685           
2686           
2687           // ==================================================================
2688           //     CIM_SystemSetting
2689 karl  1.2 // ==================================================================
2690               [Abstract, Version ("2.6.0"), Description (
2691                 "CIM_SystemSetting represents the general concept of a "
2692                 "CIM_Setting which is scoped by/weak to a System.") ]
2693           class CIM_SystemSetting : CIM_Setting {
2694                 [Propagated ("CIM_System.CreationClassName"), Key, 
2695                  MaxLen (256), Description (
2696                   "The scoping System's CreationClassName.") ] 
2697               string SystemCreationClassName;
2698                 [Propagated ("CIM_System.Name"), Key, MaxLen (256),
2699                  Description ("The scoping System's Name.") ] 
2700               string SystemName;
2701                 [Key, MaxLen (256), Description (
2702                   "CreationClassName indicates the name of the class or the "
2703                   "subclass used in the creation of an instance. When used "
2704                   "with the other key properties of this class, this property "
2705                   "allows all instances of this class and its subclasses to "
2706                   "be uniquely identified.") ]
2707               string CreationClassName;
2708                 [Override ("SettingID"), Key, MaxLen (256) ]
2709               string SettingID;
2710 karl  1.2 };
2711           
2712           
2713           // ==================================================================
2714           //     CIM_SettingForSystem
2715           // ==================================================================
2716               [Association, Version ("2.6.0"), Description (
2717                 "CIM_SettingForSystem defines a Setting in the context "
2718                 "of the System on which it resides.") ]
2719           class CIM_SettingForSystem : CIM_Dependency {
2720                 [Override ("Antecedent"), Max (1), Min (1),
2721                  Description ("The hosting System.") ] 
2722               CIM_System REF Antecedent;
2723                 [Override ("Dependent"), Weak,
2724                  Description ("The Setting defined for the System.") ] 
2725               CIM_SystemSetting REF Dependent;
2726           };
2727           
2728           
2729           // ==================================================================
2730           //  UML Page 5 - Configuration
2731 karl  1.2 // ==================================================================
2732           // ===================================================================
2733           //    Configuration
2734           // ===================================================================
2735              [Version ("2.6.0"), Description (
2736                "The Configuration object allows the grouping of sets of "
2737                "parameters (defined in Setting objects) and dependencies for "
2738                "one or more ManagedSystemElements. The Configuration object "
2739                "represents a certain behavior, or a desired functional state "
2740                "for the ManagedSystemElements. The desired functional state "
2741                "is typically driven by external requirements such as time or "
2742                "location. For example, to connect to a Mail System from "
2743                "'home', a dependency on a modem exists, but a dependency on "
2744                "a network adapter exists at 'work'. Settings for the "
2745                "pertinent LogicalDevices (in this example, POTSModem and "
2746                "NetworkAdapter) can be defined and aggregated by the "
2747                "Configuration. Therefore, two 'Connect to Mail' "
2748                "Configurations may be defined grouping the relevant "
2749                "dependencies and Setting objects.") ]
2750           class CIM_Configuration : CIM_ManagedElement {
2751                 [Key, MaxLen (256), Description (
2752 karl  1.2         "The label by which the Configuration object is known.") ]
2753              string Name;
2754           };
2755           
2756           
2757           // ===================================================================
2758           //    ConfigurationComponent
2759           // ===================================================================
2760              [Association, Aggregation, Version ("2.6.0"), Description (
2761                "ConfigurationComponent aggregates 'lower-level' "
2762                "Configuration objects into a 'high-level' Configuration. "
2763                "This enables the assembly of complex Configurations by "
2764                "grouping together simpler ones. For example, a logon policy "
2765                "for the United States could consist of two Configuration "
2766                "groups, one for the east coast and one for the west coast. "
2767                "Each of these could in turn consist of multiple "
2768                "Configurations to handle different aspects of the logon "
2769                "process.") ]
2770           class CIM_ConfigurationComponent {
2771                 [Aggregate, Key, Description (
2772                   "The Configuration that aggregates additional "
2773 karl  1.2         "Configurations." ) ]
2774              CIM_Configuration REF ConfigGroup;
2775                 [Key, Description (
2776                   "A Configuration that is part of a 'higher-level' "
2777                   "Configuration.") ]
2778              CIM_Configuration REF ConfigComponent;
2779           };
2780           
2781           
2782           // ===================================================================
2783           //    ElementConfiguration
2784           // ===================================================================
2785              [Association, Version ("2.6.0"), Description (
2786                "This association relates a Configuration object to one or "
2787                "more ManagedSystemElements. The Configuration object "
2788                "represents a certain behavior, or a desired functional state "
2789                "for the associated ManagedSystemElements.") ]
2790           class CIM_ElementConfiguration {
2791                 [Key, Description ("The ManagedSystemElement.") ]
2792              CIM_ManagedSystemElement REF Element;
2793                 [Key, Description (
2794 karl  1.2         "The Configuration object that groups the Settings and "
2795                   "dependencies associated with the ManagedSystemElement.") ] 
2796              CIM_Configuration REF Configuration;
2797           };
2798           
2799           
2800           // ===================================================================
2801           //    CollectionConfiguration
2802           // ===================================================================
2803              [Association, Version ("2.6.0"), Description (
2804                "This association relates a Configuration object to one or "
2805                "more CollectionOfMSEs objects. The Configuration object "
2806                "represents a certain behavior, or a desired functional state "
2807                "for the associated Collection.") ]
2808           class CIM_CollectionConfiguration {
2809                 [Key, Description ("The CollectionOfMSEs.") ]
2810              CIM_CollectionOfMSEs REF Collection;
2811                 [Key, Description (
2812                   "The Configuration object that groups the Settings and "
2813                   "dependencies associated with the Collection.") ]
2814              CIM_Configuration REF Configuration;
2815 karl  1.2 };
2816           
2817           
2818           // ===================================================================
2819           //    DependencyContext
2820           // ===================================================================
2821              [Association, Aggregation, Version ("2.6.0"), Description (
2822                "This relationship associates a Dependency with one or more "
2823                "Configuration objects. For example, a ComputerSystem's "
2824                "dependencies could change based on the site/network to which "
2825                "the System is attached.") ]
2826           class CIM_DependencyContext {
2827                 [Aggregate, Key, Description (
2828                   "The Configuration object that aggregates the Dependency.") ]
2829              CIM_Configuration REF Context;
2830                 [Key, Description ("An aggregated Dependency.") ]
2831              CIM_Dependency REF Dependency;
2832           };
2833           
2834                
2835           // ===================================================================
2836 karl  1.2 //    SettingContext
2837           // ===================================================================
2838              [Association, Aggregation, Version ("2.6.0"), Description (
2839                "This relationship associates Configuration objects with "
2840                "Setting objects. For example, a NetworkAdapter's Settings "
2841                "could change based on the site/network to which its hosting "
2842                "ComputerSystem is attached. In this case, the ComputerSystem "
2843                "would have two different Configuration objects, corresponding "
2844                "to the differences in network configuration for the two network "
2845                "segments. Configuration A would aggregate a Setting object for "
2846                "the NetworkAdapter when operating on segment \"ANet\", whereas "
2847                "Configuration B would aggregate a different NetworkAdapter "
2848                "Setting object, specific to segment \"BNet\". Note that many "
2849                "Settings of the computer are independent of the network "
2850                "Configuration. For example, both Configurations A and B would "
2851                "aggregate the same Setting object for the ComputerSystem's "
2852                "MonitorResolution.") ]
2853           class CIM_SettingContext {
2854                 [Aggregate, Key, Description (
2855                   "The Configuration object that aggregates the Setting.") ]
2856              CIM_Configuration REF Context;
2857 karl  1.2       [Key, Description ("An aggregated Setting.") ]
2858              CIM_Setting REF Setting;
2859           };
2860           
2861           
2862           // ===================================================================
2863           //    CollectionSetting
2864           // ===================================================================
2865              [Association, Version ("2.6.0"), Description (
2866                "CollectionSetting represents the association between a "
2867                "CollectionOfMSEs class and the Setting class(es) defined for "
2868                "them.") ]
2869           class CIM_CollectionSetting {
2870                 [Key, Description ("The CollectionOfMSEs.") ]
2871              CIM_CollectionOfMSEs REF Collection;
2872                 [Key, Description (
2873                   "The Setting object associated with the Collection.") ]
2874              CIM_Setting REF Setting;
2875           };
2876           
2877           
2878 karl  1.2 // ==================================================================
2879           //     CIM_SystemConfiguration
2880           // ==================================================================
2881               [Version ("2.6.0"), Description (
2882                 "CIM_SystemConfiguration represents the general concept "
2883                 "of a CIM_Configuration which is scoped by/weak to a "
2884                 "System. This class is a peer of CIM_Configuration since "
2885                 "the key structure of Configuration is currently "
2886                 "defined and cannot be modified with additional "
2887                 "properties.") ]
2888           class CIM_SystemConfiguration : CIM_ManagedElement {
2889                 [Propagated ("CIM_System.CreationClassName"), Key, 
2890                  MaxLen (256), Description (
2891                   "The scoping System's CreationClassName.") ] 
2892               string SystemCreationClassName;
2893                 [Propagated ("CIM_System.Name"), Key, MaxLen (256),
2894                  Description ("The scoping System's Name.") ] 
2895               string SystemName;
2896                 [Key, MaxLen (256), Description (
2897                   "CreationClassName indicates the name of the class or the "
2898                   "subclass used in the creation of an instance. When used "
2899 karl  1.2         "with the other key properties of this class, this property "
2900                   "allows all instances of this class and its subclasses to "
2901                   "be uniquely identified.") ]
2902               string CreationClassName;
2903                 [Key, MaxLen (256), Description (
2904                   "The label by which the Configuration object is known.") ]
2905               string Name;
2906           };
2907            
2908           
2909           // ==================================================================
2910           //     CIM_ConfigurationForSystem
2911           // ==================================================================
2912               [Association, Version ("2.6.0"), Description (
2913                 "CIM_ConfigurationForSystem defines a Configuration "
2914                 "in the context of the System on which it resides.") ]
2915           class CIM_ConfigurationForSystem : CIM_Dependency {
2916                 [Override ("Antecedent"), Max (1), Min (1),
2917                  Description ("The hosting System.") ] 
2918               CIM_System REF Antecedent;
2919                 [Override ("Dependent"), Weak,
2920 karl  1.2        Description ("The Configuration defined for the System.") ] 
2921               CIM_SystemConfiguration REF Dependent;
2922           };
2923           
2924           
2925           // ==================================================================
2926           //     CIM_SystemSettingContext
2927           // ==================================================================
2928               [Association, Aggregation, Version ("2.6.0"), Description (
2929                 "This relationship associates System-specific Configuration "
2930                 "objects with System-specific Setting objects, similar to the "
2931                 "SettingContext association.") ]
2932           class CIM_SystemSettingContext {
2933                 [Aggregate, Key, Description (
2934                   "The Configuration object that aggregates the Setting.") ]
2935              CIM_SystemConfiguration REF Context;
2936                 [Key, Description ("An aggregated Setting.") ]
2937              CIM_SystemSetting REF Setting;
2938           };
2939           
2940           
2941 karl  1.2 // ===================================================================
2942           // end of file
2943           // ===================================================================

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2