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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2