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

   1 kumpf 1.2 // ===================================================================
   2           // Title:       Core Elements 2.7
   3           // Filename:    Core27_CoreElements.mof
   4           // Version:     2.7.0
   5           // Release:     Final
   6           // Date:        04/23/03
   7           // ===================================================================
   8           // Copyright 1998-2003 Distributed Management Task Force, Inc. (DMTF).
   9           // All rights reserved.  
  10           // DMTF is a not-for-profit association of industry members dedicated 
  11           // to promoting enterprise and systems management and interoperability. 
  12           // DMTF specifications and documents may be reproduced for uses
  13           // consistent with this purpose by members and non-members, 
  14           // provided that correct attribution is given. 
  15           // As DMTF specifications may be revised from time to time, 
  16           // the particular version and release date should always be noted.
  17           //
  18           // Implementation of certain elements of this standard or proposed 
  19           // standard may be subject to third party patent rights, including 
  20           // provisional patent rights (herein "patent rights"). DMTF makes 
  21           // no representations to users of the standard as to the existence 
  22 kumpf 1.2 // of such rights, and is not responsible to recognize, disclose, or
  23           // identify any or all such third party patent right, owners or 
  24           // claimants, nor for any incomplete or inaccurate identification or 
  25           // disclosure of such rights, owners or claimants. DMTF shall have no 
  26           // liability to any party, in any manner or circumstance, under any 
  27           // legal theory whatsoever, for failure to recognize, disclose, or 
  28           // identify any such third party patent rights, or for such party's
  29           // reliance on the standard or incorporation thereof in its product, 
  30           // protocols or testing procedures. DMTF shall have no liability to 
  31           // any party implementing such standard, whether such implementation 
  32           // is foreseeable or not, nor to any patent owner or claimant, and shall 
  33           // have no liability or responsibility for costs or losses incurred if 
  34           // a standard is withdrawn or modified after publication, and shall be
  35           // indemnified and held harmless by any party implementing the 
  36           // standard from any and all claims of infringement by a patent owner 
  37           // for such implementations.
  38           //
  39           // For information about patents held by third-parties which have 
  40           // notified the DMTF that, in their opinion, such patent may relate to 
  41           // or impact implementations of DMTF standards, visit 
  42           // http://www.dmtf.org/about/policies/disclosures.php.
  43 kumpf 1.2 // ===================================================================
  44           // Description: The Core Model defines basic management concepts. 
  45           //              This file defines the concepts for the top of the CIM
  46           //              object hierarchies (ManagedElement, ManagedSystemElement,
  47           //              LogicalElement, Systems, Services, etc.) and the 'top'
  48           //              associations (Dependency, Component, 
  49           //              LogicalIdentity, ...).
  50           //
  51           //              The object classes below are listed in an order that
  52           //              avoids forward references. Required objects, defined 
  53           //              by other working groups, are omitted.
  54           // ==================================================================
  55           // Change Log for v2.7 Final
  56           // CR961 - Rename EnabledLogicalElement. xxxStatus properties to be
  57           //         State.
  58           //       - Update description of xxxState properties to reflect the
  59           //         expected behavior of the state values.
  60           //       - Change references to EnabledStatus and RequestedStatus to 
  61           //         EnabledState and RequestedState in the Service.
  62           //            StartService()
  63           //            StopService()  
  64 kumpf 1.2 // CR966 - Remove the Terminal qualifier from ConcreteDependency,
  65           //         ConcreteComponent, and ConcreteIdentity associations and
  66           //         add text to describe the intent of the original placement
  67           // CR968 - Remove the Experimental qualifier
  68           // CR993 - Change property name and description of 
  69           //            ManagedSystemElement.OtherStatusDescription
  70           // CR1009 - Add ServiceAccessURI class
  71           //
  72           // Change Log for v2.7
  73           // CR641 - Add ConcreteDependency
  74           // CR643 - Promote Component to ManagedElement, and add 
  75           //         ConcreteComponent
  76           // CR660 - Add RemoteServiceAccessPoint and RemotePort
  77           // CR663 - Update the Description of ActiveConnection and some of 
  78           //         its properties.  Deprecate the properties, TrafficType 
  79           //         and OtherTrafficDescription 
  80           // CR670 - Promote LogicalIdentity to ManagedElement, and add
  81           //         ConcreteIdentity
  82           // CR671 - Deprecate ProvidesServiceToElement
  83           //       - Add ServiceAvailableToElement
  84           //       - Update description for ServiceServiceDependency
  85 kumpf 1.2 // CR672 - Update description for SystemComponent to clarify its use
  86           // CR677 - Add the array property OperationalStatus & OtherStatus
  87           //         Description, and deprecate the existing Status property of
  88           //         ManagedSystemElement
  89           //       - Deprecate StartMode in Service
  90           // CR717 - Clarify description of System.Roles
  91           // CR747 - Add the Write Qualifier and update description of System.
  92           //         Roles
  93           // CR751 - Promote ActiveConnection from ProtocolEndpoint to 
  94           //         ServiceAccessPoint
  95           // CR757 - Add EnabledLogicalElement
  96           //       - Change subclass of System, Service, and ServiceAccessPoint
  97           //         from LogicalElement to EnabledLogicalElement
  98           //       - Update the descriptions to Service.StartService() and
  99           //         Service.StopService() to explain the overlap with 
 100           //         RequestedStatus
 101           //       - Update the deprecation of Service.StartMode to 
 102           //         EnabledDefault
 103           // CR758 - Add ElementName to ManagedElement
 104           // CR764 - Add ServiceAffectsElement
 105           // CR779 - Extend ManagedSystemElement.OperationalStatus to include
 106 kumpf 1.2 //         "Completed"
 107           // CR804 - Update the enumeration for ProtocolEndpoint.ProtocolType
 108           // CR833 - Extend EnabledLogicalElement.EnabledStatus & .Requested
 109           //         Status to include "In Test" and "Test" respectively
 110           // CR834 - Extend ManagedSystemElement.OperationalStatus to include 
 111           //         "Aborted", "Dormant", and "Supported Entity in Error"
 112           // CR844 - Add PrimaryOwnerName and PrimaryOwnerContact to Service;
 113           //         Add Write qualifier to the same properties in System
 114           // CR894 - Clarify the description for System.
 115           // CR898 - Extend MaxLen qualifier on ManagedSystemElement.Name 
 116           //         from 256 to 1024 (to match subclassing requriements)
 117           // ==================================================================
 118           
 119           #pragma locale ("en_US")
 120           
 121           
 122           // ==================================================================
 123           // ManagedElement
 124           // ================================================================== 
 125           [Abstract, Version ("2.7.0"), Description (
 126               "ManagedElement is an abstract class that provides a common "  
 127 kumpf 1.2     "superclass (or top of the inheritance tree) for the "
 128               "non-association classes in the CIM Schema.") ]
 129           class CIM_ManagedElement {  
 130           
 131               [MaxLen (64), Description (  
 132                   "The Caption property is a short textual description (one-"    
 133                   "line string) of the object.") ]   
 134               string Caption;  
 135               
 136               [Description (  
 137                   "The Description property provides a textual description of "
 138                   "the object.") ]   
 139               string Description;    
 140                 
 141               [Description (  
 142                   "  A user-friendly name for the object. This property allows "
 143                   "each instance to define a user-friendly name IN ADDITION TO its "
 144                   "key properties/identity data, and description information. \n"
 145                   "  Note that ManagedSystemElement's Name property is also defined "
 146                   "as a user-friendly name. But, it is often subclassed to be a "
 147                   "Key. It is not reasonable that the same property can convey "
 148 kumpf 1.2         "both identity and a user friendly name, without inconsistencies. "
 149                   "Where Name exists and is not a Key (such as for instances of "
 150                   "LogicalDevice), the same information MAY be present in both "
 151                   "the Name and ElementName properties.") ]
 152               string ElementName;
 153           };
 154                
 155           
 156           // ==================================================================
 157           // Dependency   
 158           // ==================================================================
 159           [Association, Abstract, Version ("2.6.0"), Description (   
 160               "CIM_Dependency is a generic association used to establish "   
 161               "dependency relationships between ManagedElements.") ]    
 162           class CIM_Dependency {   
 163           
 164               [Key, Description (   
 165                   "Antecedent represents the independent object in this "   
 166                   "association.") ]    
 167               CIM_ManagedElement REF Antecedent;   
 168               
 169 kumpf 1.2     [Key, Description (   
 170                   "Dependent represents the object dependent on the "   
 171                   "Antecedent.") ]    
 172               CIM_ManagedElement REF Dependent;   
 173           };   
 174            
 175                            
 176           // ==================================================================
 177           // ConcreteDependency   
 178           // ==================================================================
 179           [Association, Version ("2.7.0"), Description (
 180               "  CIM_ConcreteDependency is a generic association used to "
 181               "establish dependency relationships between ManagedElements. It "
 182               "is defined as a concrete subclass of the abstract "
 183               "CIM_Dependency class, to be used in place of many specific "
 184               "subclasses of Dependency that add no semantics - "
 185               "i.e., that do not clarify the type of dependency, update "
 186               "cardinalities, or add/remove qualifiers. Note that when "
 187               "defining additional semantics for Dependency that this class "
 188               "MUST NOT be subclassed. Specific semantics continue to "
 189               "be defined as subclasses of the abstract CIM_Dependency. "
 190 kumpf 1.2     "ConcreteDependency is limited in its use as a concrete form of "
 191               "a general dependency. \n"
 192               "\n"
 193               "  It was deemed more prudent to create this concrete subclass "
 194               "than to change Dependency from an abstract to a concrete class. "
 195               "Dependency already had multiple abstract subclasses in the CIM "
 196               "Schema, and wider industry usage and impact could not be "
 197               "anticipated.") ]    
 198           class CIM_ConcreteDependency : CIM_Dependency {   
 199            
 200               [Override ("Antecedent"), Description (   
 201                   "Antecedent represents the independent object in this "   
 202                   "association.") ]    
 203               CIM_ManagedElement REF Antecedent;   
 204            
 205               [Override ("Dependent"), Description (   
 206                   "Dependent represents the object dependent on the "   
 207                   "Antecedent.") ]    
 208               CIM_ManagedElement REF Dependent;   
 209           };
 210           
 211 kumpf 1.2 // ==================================================================
 212           // Component
 213           // ==================================================================
 214           [Association, Abstract, Aggregation, Version ("2.7.0"), Description (
 215               "CIM_Component is a generic association used to establish "
 216               "'part of' relationships between Managed Elements. For "
 217               "example, it could be used to define the components or parts of "
 218               "a System.") ] 
 219           class CIM_Component {
 220           
 221               [Aggregate, Key, Description (
 222                   "The parent element in the association.") ] 
 223               CIM_ManagedElement REF GroupComponent;
 224               
 225               [Key, Description (
 226                   "The child element in the association.") ] 
 227               CIM_ManagedElement REF PartComponent;
 228           };
 229           
 230                
 231           // ==================================================================
 232 kumpf 1.2 // ConcreteComponent
 233           // ==================================================================
 234           [Association, Aggregation, 
 235               Version ("2.7.0"), Description (   
 236               "  CIM_ConcreteComponent is a generic association used to "
 237               "establish 'part of' relationships between ManagedElements. It "
 238               "is defined as a concrete subclass of the abstract "
 239               "CIM_Component class, to be used in place of many "
 240               "specific subclasses of Component that add no semantics - "
 241               "i.e., that do not clarify the type of composition, update "
 242               "cardinalities, or add/remove qualifiers. Note that when "
 243               "defining additional semantics for Component that this "
 244               "class MUST NOT be subclassed. Specific semantics "
 245               "continue to be defined as subclasses of the abstract "
 246               "CIM_Component.  ConcreteComponent is limited in its use "
 247               "as a concrete form of a general composition. \n"
 248               "\n"
 249               "  It was deemed more prudent to create this concrete subclass "
 250               "than to change Component from an abstract to a concrete class. "
 251               "Industry usage and impact could not be anticipated.") ]    
 252           class CIM_ConcreteComponent : CIM_Component {
 253 kumpf 1.2 
 254               [Aggregate, Override ("GroupComponent"), Description (
 255                   "The parent element in the association.") ] 
 256               CIM_ManagedElement REF GroupComponent;
 257           
 258               [Override ("PartComponent"), Description (
 259                   "The child element in the association.") ] 
 260               CIM_ManagedElement REF PartComponent;
 261           };     
 262           
 263           
 264           // ==================================================================
 265           // LogicalIdentity
 266           // ==================================================================
 267           [Association, Abstract, Version ("2.7.0"), Description (
 268               "  CIM_LogicalIdentity is an abstract and generic association, "
 269               "indicating that two ManagedElements represent different "
 270               "aspects of the same underlying entity. This relationship "
 271               "conveys what could be defined with multiple inheritance.  "
 272               "In most scenarios, the Identity relationship is "
 273               "determined by the equivalence of Keys or some other "
 274 kumpf 1.2     "identifying properties of the related Elements. \n\n"
 275               "  One of the scenarios where this relationship is reasonable "
 276               "is to represent that a LogicalDevice is both a 'bus' entity and "
 277               "a 'functional' entity. For example, a Device could be both a "
 278               "USB (bus) and a Keyboard (functional) entity.") ]
 279           class CIM_LogicalIdentity {
 280                 
 281               [Key, Description (
 282                   "SystemElement represents one aspect of the Managed"
 283                   "Element.  The use of 'System' in the role name does not "
 284                   "limit the scope of the association. The role name was "
 285                   "defined in the original association, where the "
 286                   "referenced elements were limited to LogicalElements. "
 287                   "Since that time, it has been found valuable to instantiate "
 288                   "these types of relationships for ManagedElements, such as "
 289                   "Collections. So, the referenced elements of the association "
 290                   "were redefined to be ManagedElements. Unfortunately, the "
 291                   "role name could not be changed without deprecating the "
 292                   "entire association. This was not deemed necessary just to "
 293                   "correct the role name.") ]
 294               CIM_ManagedElement REF SystemElement;
 295 kumpf 1.2    
 296               [Key, Description (
 297                   "SameElement represents an alternate aspect of the "
 298                   "ManagedElement.") ]
 299               CIM_ManagedElement REF SameElement;
 300           };
 301           
 302           
 303           // ==================================================================     
 304           // ConcreteIdentity
 305           // ==================================================================     
 306           [Association, Version ("2.7.0"), Description (
 307               "  CIM_ConcreteIdentity associates two elements representing "
 308               "different aspects of the same underlying entity. It is "
 309               "defined as a concrete subclass of the abstract "
 310               "CIM_LogicalIdentity class, to be used in place of many specific "
 311               "subclasses of LogicalIdentity that add no semantics - "
 312               "i.e., that do not clarify the type of identity, update "
 313               "cardinalities, or add/remove qualifiers. Note -that when  "
 314               "defining additional semantics for LogicalIdentity that this class "
 315               "should not be subclassed. Specifc semantics continue to be "
 316 kumpf 1.2     "defined as subclasses of the abstract CIM_LogicalIdentity. "
 317               "ConcreteIdentity is limited in its use as a concrete form of "
 318               "a general identity relationship. \n"
 319               "\n"
 320               "  It was deemed more prudent to create this concrete subclass "
 321               "than to change LogicalIdentity from an abstract to a concrete "
 322               "class. LogicalIdentity already had multiple abstract subclasses "
 323               "in the CIM Schema, and wider industry usage and impact could "
 324               "not be anticipated.") ]
 325           class CIM_ConcreteIdentity : CIM_LogicalIdentity {
 326                
 327               [Override ("SystemElement"), Description (
 328                   "One aspect of the ManagedElement.  The use of 'System' "
 329                   "in the name does not limit the scope of the association. "
 330                   "This is an artifact of the original definition of the "
 331                   "association.") ]
 332               CIM_ManagedElement REF SystemElement;
 333                
 334               [Override ("SameElement"), Description (
 335                   "Another aspect of the ManagedElement.") ]
 336               CIM_ManagedElement REF SameElement;
 337 kumpf 1.2 };
 338           
 339           
 340           // ================================================================== 
 341           // ManagedSystemElement
 342           // ==================================================================
 343           [Abstract, Version ("2.7.0"), Description (
 344               "CIM_ManagedSystemElement is the base class for the System "
 345               "Element hierarchy. Membership Criteria: Any distinguishable "
 346               "component of a System is a candidate for inclusion in this "
 347               "class. Examples: software components, such as files; and "
 348               "devices, such as disk drives and controllers, and physical "
 349               "components such as chips and cards.") ] 
 350           class CIM_ManagedSystemElement : CIM_ManagedElement {
 351           
 352               [Description (
 353                   "A datetime value indicating when the object was installed. "
 354                   "A lack of a value does not indicate that the object is not "
 355                   "installed."), 
 356                   MappingStrings {"MIF.DMTF|ComponentID|001.5"} ] 
 357               datetime InstallDate;
 358 kumpf 1.2     
 359               [MaxLen (1024), Description (
 360                   "The Name property defines the label by which the object is "
 361                   "known. When subclassed, the Name property can be overridden "
 362                   "to be a Key property.") ] 
 363               string Name;
 364              
 365               [Description ( 
 366                   "   Indicates the current status(es) of the element. "
 367                   "Various health and operational statuses are "
 368                   "defined. Many of the enumeration's values are self-"
 369                   "explanatory.  However, a few are not and are described "
 370                   "in more detail. \n"
 371                   "  \"Stressed\" indicates that the element is functioning, "
 372                   "but needs attention. Examples of \"Stressed\" states are "
 373                   "overload, overheated, etc. \n"
 374                   "  \"Predictive Failure\" indicates that an element is "
 375                   "functioning nominally but predicting a failure in the "
 376                   "near future. \n"
 377                   "  \"In Service\" describes an element being configured, "
 378                   "maintained, cleaned, or otherwise administered. \n"
 379 kumpf 1.2         "  \"No Contact\" indicates that the monitoring system "
 380                   "has knowledge of this element, but has never been able to "
 381                   "establish communications with it. \n"
 382                   "  \"Lost Communication\" indicates that the ManagedSystem"
 383                   "Element is known to exist and has been contacted "
 384                   "successfully in the past, but is currently unreachable. \n"
 385                   "  \"Stopped\" and \"Aborted\" are similar, although the "
 386                   "former implies a clean and orderly stop, while the latter "
 387                   "implies an abrupt stop where the element's state and "
 388                   "configuration may need to be updated. \n"
 389                   "\"Dormant\" indicates that the element is inactive or "
 390                   "quiesced. \n"
 391                   "  \"Supporting Entity in Error\" describes that this "
 392                   "element may be \"OK\" but that another element, on which it "
 393                   "is dependent, is in error. An example is a network service "
 394                   "or endpoint that cannot function due to lower layer "
 395                   "networking problems. \n"
 396                   "\"Completed\" indicates the element has completed its "
 397                   "operation.  This value should be combined with either OK, "
 398                   "Error, or Degraded so that a client can till if the complete "
 399                   "operation passed (Completed with OK), and failure (Completed "
 400 kumpf 1.2         "with Error).  Completed with Degraded would imply the "
 401                   "operation finished, but did not complete OK or report an "
 402                   "error. \n"
 403                   "  OperationalStatus replaces the Status property on "
 404                   "ManagedSystemElement to provide a consistent approach to "
 405                   "enumerations, to address implementation needs for an "
 406                   "array property, and to provide a migration path from today's "
 407                   "environment to the future. This change was not made earlier "
 408                   "since it required the DEPRECATED qualifier. Due to the "
 409                   "widespread use of the existing Status property in "
 410                   "management applications, it is strongly recommended that "
 411                   "providers/instrumentation provide BOTH the Status and "
 412                   "OperationalStatus properties. As always, Status (since it "
 413                   "is single-valued) provides the primary status of the "
 414                   "element."),
 415                   ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", 
 416                       "9", "10", "11", "12", "13", "14", "15", "16", "17"}, 
 417                   Values {"Unknown", "Other", "OK", "Degraded", "Stressed",
 418                       "Predictive Failure", "Error", "Non-Recoverable Error", 
 419                       "Starting", "Stopping", "Stopped", "In Service", 
 420                       "No Contact", "Lost Communication", "Aborted", 
 421 kumpf 1.2             "Dormant", "Supporting Entity in Error", "Completed"}, 
 422                   ArrayType ("Indexed"),
 423                   ModelCorrespondence {
 424                       "CIM_ManagedSystemElement.StatusDescriptions"} ] 
 425               uint16 OperationalStatus[];
 426               
 427               [Description (
 428                   "Strings describing the various OperationalStatus "
 429                   "array values. For example, if \"Stopping\" is the value "
 430                   "assigned to OperationalStatus, then this property may "
 431                   "contain an explanation as to why an object is being "
 432                   "stopped. Note that entries in this array are correlated "
 433                   "with those at the same array index in OperationalStatus."),
 434                   ArrayType ("Indexed"), 
 435                   ModelCorrespondence {
 436                       "CIM_ManagedSystemElement.OperationalStatus"} ]
 437               string StatusDescriptions[];
 438               
 439               [MaxLen (10), 
 440                   Deprecated {"CIM_ManagedSystemElement.OperationalStatus"},
 441                   Description ( 
 442 kumpf 1.2             "A string indicating the current status of the object. " 
 443                       "Various operational and non-operational statuses are " 
 444                       "defined. This property is deprecated in lieu of " 
 445                       "OperationalStatus, which includes the same semantics "
 446                       "in its enumeration. This change is made for 3 reasons: "
 447                       "1) Status is more correctly defined as an array. "
 448                       "This overcomes the limitation of describing status via a "
 449                       "single value, when it is really a multi-valued property " 
 450                       "(for example, an element may be OK AND Stopped. 2) A "
 451                       "MaxLen of 10 is too restrictive and leads to unclear "
 452                       "enumerated values. And, 3) The change to a uint16 data "
 453                       "type was discussed when CIM V2.0 was defined. However, "
 454                       "existing V1.0 implementations used the string property "
 455                       "and did not want to modify their code. Therefore, Status "
 456                       "was grandfathered into the Schema. Use of the Deprecated "
 457                       "qualifier allows the maintenance of the existing "
 458                       "property, but also permits an improved definition using "
 459                       "OperationalStatus."), 
 460                  ValueMap {"OK", "Error", "Degraded", "Unknown", "Pred Fail", 
 461                            "Starting", "Stopping", "Service", "Stressed", 
 462                            "NonRecover", "No Contact", "Lost Comm", "Stopped"} ] 
 463 kumpf 1.2    string Status; 
 464           };
 465           
 466           
 467           // ==================================================================
 468           // LogicalElement
 469           // ==================================================================
 470           [Abstract, Version ("2.6.0"), Description (
 471               "CIM_LogicalElement is a base class for all the components of "
 472               "a System that represent abstract system components, such "
 473               "as Files, Processes, or LogicalDevices.") ] 
 474           class CIM_LogicalElement : CIM_ManagedSystemElement {
 475           };
 476           
 477           
 478           // ==================================================================
 479           // EnabledLogicalElement
 480           // ==================================================================
 481           [Abstract, Version ("2.7.0"), Description (
 482               "This class extends LogicalElement to abstract the concept of an "
 483               "element that is enabled and disabled, such as a LogicalDevice or "
 484 kumpf 1.2     "a ServiceAccessPoint.") ]
 485           class CIM_EnabledLogicalElement : CIM_LogicalElement {
 486           
 487               [Description (
 488                   "EnabledState is an integer enumeration that indicates the "
 489                   "enabled/disabled states of an element. It can also indicate "
 490                   "the transitions between these requested states. For "
 491                   "example, shutting down (value = 4) and starting "
 492                   "(value=8) are transient states between enabled and disabled. "
 493                   "The following text briefly summarizes the various "
 494                   "enabled/disabled states: \n"
 495                   "Enabled (2) indicates that the element is/could be executing "
 496                   "commands, will process any queued commands, and queues new "
 497                   "requests. \n"
 498                   "Disabled (3) indicates that the element will not execute "
 499                   "commands and will drop any new requests. \n"
 500                   "Shutting Down (4) indicates that the element is in the process "
 501                   "of going to a Disabled state. \n"
 502                   "Not Applicable (5) indicates the element doesn't support being "
 503                   "enabled/disabled. \n"
 504                   "Enabled but Offline (6) indicates that the element may be "
 505 kumpf 1.2         "completing commands, and will drop any new requests. \n"
 506                   "Test (7) indicates that the element is in a test state. \n"
 507                   "Deferred (8) indicates that the element may be completing "
 508                   "commands, but will queue any new requests. \n"
 509                   "Quiesce (9) indicates that the element is enabled but in a "
 510                   "restricted mode. The element's behavior is similar to the "
 511                   "Enabled state, but it only processes a restricted set of "
 512                   "commands. All other requests are queued. \n"
 513                   "Starting (10) indicates that the element is in the process of "
 514                   "going to an Enabled state.  New requests are queued. \n"),
 515                   ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
 516                                   "11..32767", "32768..65535" }, 
 517                   Values {"Unknown", "Other", "Enabled", "Disabled", 
 518                       "Shutting Down", "Not Applicable", "Enabled but Offline",
 519                       "In Test", "Deferred", "Quiesce", "Starting",
 520                       "DMTF Reserved", "Vendor Reserved" },
 521                   ModelCorrespondence {
 522                       "CIM_EnabledLogicalElement.OtherEnabledState"} ]
 523               uint16 EnabledState = 5;
 524               
 525               [Description (
 526 kumpf 1.2         "A string describing the element's enabled/disabled state when "
 527                   "the EnabledState property is set to 1 (\"Other\"). This "
 528                   "property MUST be set to NULL when EnabledState "
 529                   "is any value other than 1."),
 530                   ModelCorrespondence {"CIM_EnabledLogicalElement.EnabledState"} ]
 531               string OtherEnabledState;
 532            
 533               [Description (
 534                   "RequestedState is an integer enumeration indicating "
 535                   "the last requested or desired state for the element. "
 536                   "The actual state of the element is represented by EnabledState. " 
 537                   "This property is provided to compare the last requested and "
 538                   "current enabled/disabled states. Note that when "
 539                   "EnabledState is set to 5 (\"Not Applicable\"), "
 540                   "then this property has no meaning. By default, "
 541                   "the element's RequestedState is 5 (\"No Change\"). Refer "
 542                   "to the EnabledState's property Description for explanations "
 543                   "of the values in the RequestedState enumeration. \n" 
 544                   "\n"
 545                   "This property is set as the result of a method invocation "
 546                   "(such as Start or StopService on CIM_Service), or may be "
 547 kumpf 1.2         "overridden and defined as WRITEable in a subclass. The method "
 548                   "approach is considered superior to a WRITEable property, "
 549                   "since it allows an explicit invocation of the operation and "
 550                   "the return of a result code."),
 551                   ModelCorrespondence  {"CIM_EnabledLogicalElement.EnabledState"},
 552                   ValueMap {"2", "3", "4", "5", "6", "7", "8", "9",
 553                                   "10..32767", "32768..65535" },  
 554                   Values {"Enabled", "Disabled", "Shut Down", "No Change",
 555                       "Offline", "Test", "Deferred", "Quiesce",
 556                       "DMTF Reserved", "Vendor Reserved"} ]
 557               uint16 RequestedState = 5;
 558            
 559               [Write, Description (
 560                   "An enumerated value indicating an administrator's "
 561                   "default/startup configuration for an element's Enabled"
 562                   "State. By default, the element is \"Enabled\" (value=2)."), 
 563                   ValueMap {"2", "3", "5", "6", "7", "8..32767", 
 564                                   "32768..65535"}, 
 565                   Values {"Enabled", "Disabled", "Not Applicable", 
 566                       "Enabled but Offline", "No Default",
 567                       "DMTF Reserved", "Vendor Reserved"} ] 
 568 kumpf 1.2     uint16 EnabledDefault = 2;
 569           };
 570           
 571                
 572           // ==================================================================
 573           // Synchrononized
 574           // ==================================================================
 575           [Association, Version ("2.6.0"), Description (
 576               "Indicates that two LogicalElements were aligned or made to "
 577               "be equivalent at the specified point in time. If the boolean "
 578               "property SyncMaintained is TRUE, then synchronization "
 579               "of the Elements is preserved. Both like and unlike objects "
 580               "may be synchronized. For example, two WatchDog timers may be "
 581               "aligned, or the contents of a LogicalFile may be synchronized "
 582               "with the contents of a StorageExtent.") ]
 583           class CIM_Synchronized {
 584                 
 585               [Key, Description (
 586                   "SystemElement represents one LogicalElement that is "
 587                   "synchronized with the entity referenced as SyncedElement.") ]
 588               CIM_LogicalElement REF SystemElement;
 589 kumpf 1.2     
 590               [Key, Description (
 591                   "SyncedElement represents another LogicalElement that is "
 592                   "synchronized with the entity referenced as SystemElement.") ]
 593               CIM_LogicalElement REF SyncedElement;
 594               
 595               [Description (
 596                   "The point in time that the Elements were synchronized.") ]
 597               datetime WhenSynced;
 598               
 599               [Description (
 600                   "Boolean indicating whether synchronization is "
 601                   "maintained.") ]
 602               boolean SyncMaintained;
 603           };
 604           
 605           
 606           // ==================================================================
 607           // System
 608           // ==================================================================
 609           [Abstract, Version ("2.7.0"), Description (
 610 kumpf 1.2     "CIM_System represents an entity made up of component "
 611               "parts (defined by the SystemComponent relationship), that "
 612               "operates as a 'functional whole'. Systems are top level "
 613               "objects in the CIM hierarchy, requiring no scoping or weak "
 614               "relationships in order to exist and have context. It should "
 615               "be reasonable to uniquely name and manage a System at an "
 616               "enterprise level. For example, a ComputerSystem is a kind of "
 617               "System that can be uniquely named and independently managed "
 618               "in an enterprise. However, this is not true for the power "
 619               "supply (or the power supply sub-'system') within "
 620               "the computer. \n"
 621               "\n"
 622               "Although a System may be viewed as a Collection, this is "
 623               "not the correct model. A Collection is simply a 'bag' "
 624               "that 'holds' its members. A System is a higher level "
 625               "abstraction, built out of its individual components. It "
 626               "is more than a sum of its parts. Note that System is a "
 627               "subclass of EnabledLogicalElement which allows the entire "
 628               "abstraction to be functionally enabled/disabled - at a higher "
 629               "level than enabling/disabling its component parts.") ]
 630           class CIM_System : CIM_EnabledLogicalElement {
 631 kumpf 1.2     
 632               [Key, MaxLen (256), Description (
 633                   "CreationClassName indicates the name of the class or the "
 634                   "subclass used in the creation of an instance. When used "
 635                   "with the other key properties of this class, this property "
 636                   "allows all instances of this class and its subclasses to "
 637                   "be uniquely identified.") ]
 638               string CreationClassName;
 639               
 640               [Key, MaxLen (256), Override ("Name"), Description (
 641                   "The inherited Name serves as key of a System instance in " 
 642                   "an enterprise environment.") ] 
 643               string Name;
 644               
 645               [MaxLen (64), Description (
 646                   "The System object and its derivatives are Top Level Objects "
 647                   "of CIM. They provide the scope for numerous components. " 
 648                   "Having unique System keys is required. A heuristic can be "
 649                   "defined in individual System subclasses to attempt to always "
 650                   "generate the same System Name Key. The NameFormat property "
 651                   "identifies how the System name was generated, using "
 652 kumpf 1.2         "the subclass' heuristic.") ] 
 653               string NameFormat;
 654               
 655               [MaxLen (64), Write, Description (
 656                   "The name of the primary system owner. The system owner "
 657                   "is the primary user of the system."),
 658                   MappingStrings {
 659                       "MIF.DMTF|General Information|001.3"} ]  
 660               string PrimaryOwnerName;
 661               
 662               [MaxLen (256), Write, Description (
 663                   "A string that provides information on how the primary system "
 664                   "owner can be reached (e.g. phone number, email address, "
 665                   "...)."),
 666                   MappingStrings {
 667                       "MIF.DMTF|General Information|001.4"} ] 
 668               string PrimaryOwnerContact;
 669               
 670               [Write, Description (
 671                   "  An array (bag) of strings that specify the administrator"
 672                   "-defined roles this System plays in the managed environment. "
 673 kumpf 1.2         "Examples might be 'Building 8 print server' or 'Boise user "
 674                   "directories'. A single system may perform multiple roles. \n"
 675                   "  Note that instrumentation's view of a System's 'roles' is "
 676                   "defined by instantiating a specific subclass of System and/"
 677                   "or by properties in a subclass.  For example, a "
 678                   "ComputerSystem's purpose is defined using the Dedicated and "
 679                   "OtherDedicatedDescription properties.") ]
 680               string Roles[];
 681           };
 682           
 683           
 684           // ==================================================================
 685           // SystemComponent
 686           // ==================================================================
 687           [Association, Aggregation, Version ("2.7.0"), Description (
 688               "CIM_SystemComponent is a specialization of the CIM_Component "
 689               "association that establishes 'part of' relationships between "
 690               "a System and any ManagedSystemElements of which it is "
 691               "composed. \n" 
 692               "The use of this association is cautioned - versus the use "
 693               "of a subclass such as SystemDevice, or a peer association such "
 694 kumpf 1.2     "as HostedService.  This class is very broadly defined which can "
 695               "lead to erroneous use.  For example, Access Points that are "
 696               "dependent on (and hosted on) a System are NOT Components of the "
 697               "System. The System is not made up of any AccessPoint 'parts', "
 698               "which is why a Dependency association, HostedAccessPoint, was "
 699               "defined.  Similarly, a PhysicalPackage is not a 'part' of a "
 700               "System, since the physical element exists independently of any "
 701               "internal components, software, etc. In fact, again, a Dependency "
 702               "relationship is true - where a ComputerSystem is Dependent on its "
 703               "packaging, as described by the ComputerSystemPackage "
 704               "association.") ] 
 705           class CIM_SystemComponent : CIM_Component {
 706                 
 707               [Override ("GroupComponent"), Aggregate, 
 708                   Description ("The parent System in the Association.") ] 
 709               CIM_System REF GroupComponent;
 710                 
 711               [Override ("PartComponent"), Description (
 712                   "The child element that is a component of a System.") ] 
 713               CIM_ManagedSystemElement REF PartComponent;
 714           }; 
 715 kumpf 1.2      
 716           
 717           // ==================================================================
 718           // AdminDomain
 719           // ==================================================================
 720           [Version ("2.6.0"), Description (
 721               "  This is a special grouping of ManagedSystemElements. The "
 722               "grouping is viewed as a single entity, reflecting that all "
 723               "of its components are administered similarly - either by "
 724               "the same user, group of users or policy. It serves as "
 725               "an aggregation point to associate one or more of the "
 726               "following elements: network devices, such as routers and "
 727               "switches, servers, and other resources that can be "
 728               "accessed by end systems. This grouping of devices "
 729               "plays an essential role in ensuring that the same "
 730               "administrative policy and actions are applied to all "
 731               "of the devices in the grouping. The specific behavior "
 732               "and/or semantics of the AdminDomain can be identified "
 733               "through its aggregated and associated entities. \n") ]
 734           class CIM_AdminDomain : CIM_System {
 735               
 736 kumpf 1.2     [Override ("NameFormat"), Description (
 737                   "The NameFormat property identifies how the Name of the "
 738                   "AdminDomain is generated, using the heuristic specified "
 739                   "in the CIM V2 System Model spec. It assumes that the "
 740                   "documented rules are traversed in order, to determine and "
 741                   "assign a Name. The NameFormat Values list defines the "
 742                   "precedence order for assigning the Name of the "
 743                   "AdminDomain."), 
 744                   ValueMap {"Other", "AS", "NAP", "NOC", "POP", "RNP", "IP",
 745                       "IPX", "SNA", "Dial", "WAN", "LAN", "ISDN", "Frame Relay",
 746                       "ATM", "E.164", "IB", "FC", "Policy Repository"},
 747                   Values {"Other", "Autonomous System",
 748                       "Network Access Provider", "Network Operations Center",
 749                       "Point of Presence", "Regional Network Provider",
 750                       "IP", "IPX", "SNA", "Dial", "WAN", "LAN", "ISDN",
 751                       "Frame Relay", "ATM", "E.164", "Infiniband", 
 752                       "Fibre Channel", "Policy Repository"} ]
 753               string NameFormat;
 754           };
 755           
 756           
 757 kumpf 1.2 // ==================================================================
 758           // ContainedDomain
 759           // ==================================================================
 760           [Association, Aggregation, Version ("2.6.0"), Description (
 761               "A relationship that aggregates one or more lower-level "
 762               "AdminDomain instances into a higher-level AdminDomain.") ]
 763           class CIM_ContainedDomain: CIM_SystemComponent {
 764               
 765               [Override ("GroupComponent"), Aggregate, Description (
 766                   "An AdminDomain that aggregates other AdminDomains.") ]
 767               CIM_AdminDomain REF GroupComponent;
 768               
 769               [Override ("PartComponent"), Description (
 770                   "An AdminDomain aggregated by another AdminDomain.") ]
 771               CIM_AdminDomain REF PartComponent;
 772           };
 773           
 774           
 775           // ==================================================================
 776           // Service
 777           // ==================================================================  
 778 kumpf 1.2 [Abstract, Version ("2.7.0"), Description (
 779               "A CIM_Service is a Logical Element that contains the "
 780               "information necessary to represent and manage the "
 781               "functionality provided by a Device and/or SoftwareFeature. "
 782               "A Service is a general-purpose object to configure and "
 783               "manage the implementation of functionality.  It is not the "
 784               "functionality itself.") ] 
 785           class CIM_Service : CIM_EnabledLogicalElement {
 786               
 787               [Propagated ("CIM_System.CreationClassName"), Key, MaxLen (256), 
 788                   Description (
 789                       "The scoping System's CreationClassName.") ] 
 790               string SystemCreationClassName;
 791                 
 792               [Propagated ("CIM_System.Name"), Key, MaxLen (256),
 793                   Description (
 794                       "The scoping System's Name.") ] 
 795               string SystemName;
 796               
 797               [Key, MaxLen (256), Description (
 798                   "CreationClassName indicates the name of the class or the "
 799 kumpf 1.2         "subclass used in the creation of an instance. When used "
 800                   "with the other key properties of this class, this property "
 801                   "allows all instances of this class and its subclasses to "
 802                   "be uniquely identified.") ]
 803               string CreationClassName;
 804                 
 805               [Override ("Name"), Key, MaxLen (256), Description (
 806                   "The Name property uniquely identifies the Service and "
 807                   "provides an indication of the functionality that is "
 808                   "managed. This functionality is described in more detail in "
 809                   "the object's Description property.") ] 
 810               string Name;
 811                  
 812               [MaxLen (64), Write, Description (
 813                   "The name of the primary owner for the service, if "
 814                   "one is defined. The primary owner is the initial "
 815                   "support contact for the Service."),
 816                   MappingStrings {"MIF.DMTF|General Information|001.3"} ]  
 817               string PrimaryOwnerName;
 818           
 819               [MaxLen (256), Write, Description (
 820 kumpf 1.2         "A string that provides information on how the primary "
 821                   "owner of the Service can be reached (e.g. phone "
 822                   "number, email address, ...)."),
 823                   MappingStrings {"MIF.DMTF|General Information|001.4"} ] 
 824               string PrimaryOwnerContact;
 825               
 826               [MaxLen (10), 
 827                   Deprecated {"CIM_Service.EnabledDefault"}, 
 828                   Description (
 829                       "StartMode is a string value indicating whether the "
 830                       "Service is automatically started by a System, Operating "
 831                       "System, etc. or only started upon request. This property "
 832                       "is deprecated in lieu of the EnabledDefault property "
 833                       "inherited from EnabledLogicalElement, which addresses "
 834                       "the same semantics. The change to a uint16 data "
 835                       "type was discussed when CIM V2.0 was defined. However, "
 836                       "existing V1.0 implementations used the string "
 837                       "property and did not want to modify their code. "
 838                       "Therefore, StartMode was grandfathered into the Schema. "
 839                       "Use of the Deprecated qualifier allows the maintenance "
 840                       "of the existing property, but also permits an improved, "
 841 kumpf 1.2             "clarified definition using EnabledDefault."),  
 842                   ValueMap {"Automatic", "Manual"} ] 
 843               string StartMode;
 844              
 845               [Description (
 846                   "Started is a boolean indicating whether the Service "
 847                   "has been started (TRUE), or stopped (FALSE).") ] 
 848               boolean Started;
 849               
 850               [Description (
 851                   "The StartService method places the Service in the started "
 852                   "state. Note that this method's function overlaps with the "
 853                   "RequestedState property. RequestedState was added to "
 854                   "the model to maintain a record (i.e., a persisted value) "
 855                   "of the last state request. Invoking the StartService "
 856                   "method should set the RequestedState property appropriately."
 857                   " The method returns an integer value of 0 if the Service was "
 858                   "successfully started, 1 if the request is not supported and "
 859                   "any other number to indicate an error. In a subclass, the "
 860                   "set of possible return codes could be specified, using a "
 861                   "ValueMap qualifier on the method. The strings to which the "
 862 kumpf 1.2         "ValueMap contents are 'translated' may also be specified in "
 863                   "the subclass as a Values array qualifier.") ] 
 864               uint32 StartService();
 865               
 866               [Description (
 867                   "The StopService method places the Service in the stopped "
 868                   "state. Note that this method's function overlaps with the "
 869                   "RequestedState property. RequestedState was added to "
 870                   "the model to maintain a record (i.e., a persisted value) "
 871                   "of the last state request. Invoking the StopService "
 872                   "method should set the RequestedState property appropriately."
 873                   " The method returns an integer value of 0 if the Service was "
 874                   "successfully stopped, 1 if the request is not supported and "
 875                   "any other number to indicate an error. In a subclass, the "
 876                   "set of possible return codes could be specified, using a "
 877                   "ValueMap qualifier on the method. The strings to which the "
 878                   "ValueMap contents are 'translated' may also be specified in "
 879                   "the subclass as a Values array qualifier.") ] 
 880               uint32 StopService();
 881           };
 882           
 883 kumpf 1.2      
 884           // ==================================================================
 885           // HostedService
 886           // ==================================================================
 887           [Association, Version ("2.6.0"), Description (
 888               "CIM_HostedService is an association between a Service and "
 889               "the System on which the functionality resides.  The "
 890               "cardinality of this association is 1-to-many.  A System may "
 891               "host many Services. Services are weak with respect to their "
 892               "hosting System. Heuristic:  A Service is hosted on the "
 893               "System where the LogicalDevices or SoftwareFeatures that "
 894               "implement the Service are located.  The model does not "
 895               "represent Services hosted across multiple systems. This is "
 896               "modeled as an ApplicationSystem that acts as an aggregation "
 897               "point for Services, that are each located on a single "
 898               "host.") ] 
 899           class CIM_HostedService : CIM_Dependency {
 900               
 901               [Override ("Antecedent"), Max (1), Min (1),
 902                   Description ("The hosting System.") ] 
 903               CIM_System REF Antecedent;
 904 kumpf 1.2     
 905               [Override ("Dependent"), Weak,
 906                   Description ("The Service hosted on the System.") ] 
 907               CIM_Service REF Dependent;
 908           };
 909           
 910                
 911           // ==================================================================
 912           // ProvidesServiceToElement
 913           // ==================================================================
 914           [Association, Deprecated {"CIM_ServiceAvailableToElement"}, 
 915               Version ("2.7.0"), Description (
 916               "The use of the CIM_ProvidesServiceToElement class has been "
 917               "deprecated.  Instead, ServiceAvailableToElement conveys the "
 918               "semantics of 'use', while the subclasses of ProvidesService"
 919               "ToElement (or the ConcreteDependency  association) describe "
 920               "dependency relationships. CIM_ProvidesServiceToElement was "
 921               "meant to generalize the ServiceServiceDependency association. "
 922               "It tried to indicate that ManagedElements may use the "
 923               "functionality provided by one or more Services. An example is "
 924               "that a Processor and an enclosure (a PhysicalElement) may use "
 925 kumpf 1.2     "AlertOnLAN Services to signal an incomplete or erroneous boot. "
 926               "In reality, AlertOnLAN is simply a HostedService on a computer "
 927               "system that is generally 'available for 'use' and not a "
 928               "dependency of the processor or enclosure. To describe that use "
 929               "of the service may be restricted or have limited availability/"
 930               "applicability, then the CIM_ServiceAvailableToElement "
 931               "association would be instantiated.") ]
 932           class CIM_ProvidesServiceToElement : CIM_Dependency {
 933            
 934               [Override ("Antecedent"), 
 935                   Deprecated {"CIM_ServiceAvailableToElement.ServiceProvided"}, 
 936                   Description ("The Service provided.") ]
 937               CIM_Service REF Antecedent;
 938            
 939               [Override ("Dependent"), 
 940                   Deprecated {"CIM_ServiceAvailableToElement.UserOfService"},
 941                   Description ("The ManagedElement dependent on the Service.") ]
 942               CIM_ManagedElement REF Dependent;
 943           };
 944           
 945            
 946 kumpf 1.2 // ==================================================================
 947           // ServiceAvailableToElement
 948           // ==================================================================
 949           [Association, Version ("2.7.0"), Description (
 950               "CIM_ServiceAvailableToElement conveys the semantics "
 951               "of a Service being available for the 'use' of a ManagedElement. "
 952               "An example is that a Processor and an enclosure "
 953               "(a PhysicalElement) may use AlertOnLAN Services to signal an "
 954               "incomplete or erroneous boot.  In reality, AlertOnLAN is simply a "
 955               "HostedService on a computer system that is generally 'available for "
 956               "use', and not a dependency of the processor or enclosure. To "
 957               "describe that use of this service is restricted or has limited "
 958               "availability/applicability, then the CIM_ServiceAvailableToElement "
 959               "association would be instantiated between the Service and specific "
 960               "CIM_Processors and CIM_Chassis .") ]
 961           class CIM_ServiceAvailableToElement {
 962            
 963               [Key, Description (
 964                   "The Service that is available.") ]
 965               CIM_Service REF ServiceProvided;
 966            
 967 kumpf 1.2     [Key, Description (
 968                   "The ManagedElement that may use the Service.") ]
 969               CIM_ManagedElement REF UserOfService;
 970           };
 971           
 972            
 973           // ===================================================================
 974           // ServiceAffectsElement
 975           // ===================================================================
 976           [Association, Version ("2.7.0"), Description (
 977               "ServiceAffectsElement represents an association between a "
 978               "Service and the ManagedElement(s) that may be affected by its "
 979               "execution. Instantiating this association indicates that running "
 980               "the service will pose some burden on the ManagedElement "
 981               "that may affect performance, throughput, availability, "
 982               "etc.") ]
 983           class CIM_ServiceAffectsElement {  
 984            
 985               [Key, Description (
 986                   "The Managed Element affected by the Service.")]
 987               CIM_ManagedElement REF AffectedElement;
 988 kumpf 1.2  
 989               [Key, Description (
 990                   "The Service that is affecting the ManagedElement.")]
 991               CIM_Service REF AffectingElement; 
 992            
 993               [Description (
 994                   "An enumeration describing the 'effect' on the "
 995                   "ManagedElement. This array corresponds to the "
 996                   "OtherElementEffectsDescriptions array, where the "
 997                   "latter provides details related to the high-level "
 998                   "'effects' enumerated by this property. Additional "
 999                   "detail is required if the ElementEffects array contains "
1000                   "the value 1, \"Other\"."),
1001                   ArrayType ("Indexed"),
1002                   ValueMap {"0", "1", "2", "3", "4"},
1003                   Values {"Unknown", "Other", "Exclusive Use", 
1004                       "Performance Impact", "Element Integrity"},
1005                   ModelCorrespondence {
1006                   "CIM_ServiceAffectsElement.OtherElementEffectsDescriptions"} ]
1007               uint16 ElementEffects[];
1008           
1009 kumpf 1.2     [Description (
1010                   "Provides details for the 'effect' at the corresponding array "
1011                   "position in ElementEffects. This information is required "
1012                   "ElementEffects contains the value 1 (\"Other\")."),
1013                   ArrayType ("Indexed"),
1014                   ModelCorrespondence {
1015                       "CIM_ServiceAffectsElement.ElementEffects"} ]
1016               string OtherElementEffectsDescriptions[];
1017           };
1018           
1019           
1020           // ==================================================================
1021           // ServiceServiceDependency
1022           // ==================================================================
1023           [Association, Version ("2.7.0"), Description (
1024               "   CIM_ServiceServiceDependency is an association between a " 
1025               "Service and another Service, indicating that the latter is "
1026               "required to be present, required to have completed, or must " 
1027               "be absent for the former Service to provide its "
1028               "functionality. For example, Boot Services may be dependent "
1029               "upon underlying system initialization Services. "
1030 kumpf 1.2     "In the case of the initialization Services, the Boot Service "
1031               "may be dependent on the init Services completing. \n"
1032               "   Examining the ServiceServiceDependency class definition, "
1033               "note that its superclass ProvidesServiceToElement is deprecated. "
1034               "Unfortunately, ProvidesServiceToElement cannot be removed from "
1035               "the object hierarchy without a major Schema release. "
1036               "When/if this occurs, the ProvidesServiceToElement superclass "
1037               "will be removed, and ServiceServiceDependency will subclass "
1038               "from CIM_Dependency directly. " ) ] 
1039           class CIM_ServiceServiceDependency : CIM_ProvidesServiceToElement {
1040            
1041               [Override ("Antecedent"), 
1042                   Description ("The required Service.") ] 
1043               CIM_Service REF Antecedent;
1044            
1045               [Override ("Dependent"), Description (
1046                   "The Service that is dependent on an underlying Service.") ] 
1047               CIM_Service REF Dependent;
1048            
1049               [Description (
1050                   "The nature of the Service to Service dependency. This "
1051 kumpf 1.2         "property describes that the associated Service must have "
1052                   "completed (value=2), must be started (3) or must not be "
1053                   "started (4) in order for the Service to function."),  
1054                   ValueMap {"0", "1", "2", "3", "4"},
1055                   Values {"Unknown", "Other", "Service Must Have Completed",
1056                       "Service Must Be Started", 
1057                       "Service Must Not Be Started"} ]
1058               uint16 TypeOfDependency;
1059            
1060               [Description (
1061                   "This property describes that the Antecedent Service must "
1062                   "be restarted after the Dependent operation is complete.") ]
1063               boolean RestartService;
1064           };
1065           
1066           
1067           // ==================================================================
1068           // ServiceComponent
1069           // ==================================================================
1070           [Association, Aggregation, Version ("2.6.0"), Description (
1071               "The ServiceComponent aggregation models a set of "
1072 kumpf 1.2     "subordinate Services that are aggregated together to form "
1073               "a higher-level service.") ]
1074           class CIM_ServiceComponent : CIM_Component {
1075               [Override ("GroupComponent"), Aggregate, Description (
1076                   "The parent Service.") ]
1077               CIM_Service REF GroupComponent;
1078               
1079               [Override ("PartComponent"), Description (
1080                   "The component Service.") ]
1081              CIM_Service REF PartComponent;
1082           };
1083           
1084                
1085           // ==================================================================
1086           // ServiceAccessPoint
1087           // ==================================================================
1088           [Abstract, Version ("2.6.0"), Description (
1089               "CIM_ServiceAccessPoint represents the ability to utilize or "
1090               "invoke a Service.  Access points represent that a Service is "
1091               "made available to other entities for use.") ] 
1092           class CIM_ServiceAccessPoint : CIM_EnabledLogicalElement {
1093 kumpf 1.2       
1094               [Propagated ("CIM_System.CreationClassName"), Key, MaxLen (256), 
1095                   Description (
1096                       "The scoping System's CreationClassName.") ] 
1097               string SystemCreationClassName;
1098               
1099               [Propagated ("CIM_System.Name"), Key, MaxLen (256), Description (
1100                   "The scoping System's Name.") ] 
1101               string SystemName;
1102               
1103               [Key, MaxLen (256), Description (
1104                   "CreationClassName indicates the name of the class or the "
1105                   "subclass used in the creation of an instance. When used "
1106                   "with the other key properties of this class, this property "
1107                   "allows all instances of this class and its subclasses to "
1108                   "be uniquely identified.") ]
1109               string CreationClassName;
1110               
1111               [Override ("Name"), Key, MaxLen (256), Description (
1112                   "The Name property uniquely identifies the ServiceAccessPoint "
1113                   "and provides an indication of the functionality that is "
1114 kumpf 1.2         "managed.  This functionality is described in more detail in "
1115                   "the object's Description property.") ] 
1116              string Name;
1117           };
1118           
1119                
1120           // ==================================================================
1121           // HostedAccessPoint
1122           // ==================================================================
1123           [Association, Version ("2.6.0"), Description (
1124               "CIM_HostedAccessPoint is an association between a Service"
1125               "AccessPoint and the System on which it is provided. The "
1126               "cardinality of this association is 1-to-many and is weak "
1127               "with respect to the System. Each System may host many "
1128               "ServiceAccessPoints.  Heuristic:  If the implementation of "
1129               "the ServiceAccessPoint is modeled, it must be "
1130               "implemented by a Device or SoftwareFeature that is part of "
1131               "the System hosting the ServiceAccessPoint.") ] 
1132           class CIM_HostedAccessPoint:CIM_Dependency {
1133              
1134               [Override ("Antecedent"), Max (1), Min (1), 
1135 kumpf 1.2         Description ("The hosting System.") ] 
1136               CIM_System REF Antecedent;
1137               
1138               [Override ("Dependent"), Weak,
1139                   Description ("The SAP(s) that are hosted on this System.") ] 
1140               CIM_ServiceAccessPoint REF Dependent;
1141           };
1142              
1143           
1144           // ==================================================================
1145           // ServiceSAPDependency
1146           // ==================================================================
1147           [Association, Version ("2.6.0"), Description (
1148               "CIM_ServiceSAPDependency is an association between a Service "
1149               "and a ServiceAccessPoint indicating that the referenced SAP "
1150               "is utilized by the Service to provide its functionality. For "
1151               "example, Boot Services may invoke BIOS' Disk Services "
1152               "(interrupts) in order to function.") ] 
1153           class CIM_ServiceSAPDependency : CIM_Dependency {
1154               
1155               [Override ("Antecedent"), Description (
1156 kumpf 1.2         "The required ServiceAccessPoint.") ] 
1157               CIM_ServiceAccessPoint REF Antecedent;
1158               
1159               [Override ("Dependent"), Description (
1160                   "The Service that is dependent on an underlying SAP.") ] 
1161               CIM_Service REF Dependent;
1162           };
1163           
1164                
1165           // ==================================================================
1166           // ServiceAccessBySAP
1167           // ==================================================================
1168           [Association, Version ("2.6.0"), Description (
1169               "CIM_ServiceAccessBySAP is an association that identifies the "
1170               "access points for a Service. For example, a printer may be "
1171               "accessed by Netware, MacIntosh or Windows ServiceAccess"
1172               "Points, potentially hosted on different Systems.") ] 
1173           class CIM_ServiceAccessBySAP : CIM_Dependency {
1174           
1175               [Override ("Antecedent"),
1176                   Description ("The Service.") ] 
1177 kumpf 1.2     CIM_Service REF Antecedent;
1178                 
1179               [Override ("Dependent"), Description (
1180                   "An Access Point for a Service. Access points are dependent " 
1181                   "in this relationship since they have no function without a "
1182                   "corresponding Service.") ] 
1183               CIM_ServiceAccessPoint REF Dependent;
1184           };
1185           
1186                
1187           // ==================================================================
1188           // SAPSAPDependency
1189           // ==================================================================
1190           [Association, Version ("2.6.0"), Description (
1191               "CIM_SAPSAPDependency is an association between a Service"
1192               "AccessPoint and another ServiceAccessPoint indicating that "
1193               "the latter is required in order for the former ServiceAccess"
1194               "Point to utilize or connect with its Service. For example, "
1195               "to print at a network printer, local Print Access Points "
1196               "must utilize underlying network-related SAPs, or "
1197               "ProtocolEndpoints, in order to send the print request.") ] 
1198 kumpf 1.2 class CIM_SAPSAPDependency : CIM_Dependency {
1199           
1200               [Override ("Antecedent"), Description (
1201                   "The required ServiceAccessPoint.") ] 
1202               CIM_ServiceAccessPoint REF Antecedent;
1203                 
1204               [Override ("Dependent"), Description (
1205                   "The ServiceAccessPoint that is dependent on an underlying "
1206                   "SAP.") ] 
1207               CIM_ServiceAccessPoint REF Dependent;
1208           };
1209           
1210           
1211           // ==================================================================
1212           // ActiveConnection
1213           // ==================================================================
1214           [Association, Version ("2.7.0"), Description (
1215               "This association defines a connection that is currently "
1216               "communicating, or is configured to communicate, "
1217               "between two ServiceAccessPoints. It is used when the "
1218               "connection is not treated as a ManagedElement itself "
1219 kumpf 1.2     "(i.e., with Status, statistics, etc.), but its "
1220               "existence is known. The SAPs that are connected are "
1221               "typically at the same networking or application layer.") ]
1222           class CIM_ActiveConnection : CIM_SAPSAPDependency {
1223                   
1224               [Override ("Antecedent"), Description (
1225                   "A ServiceAccessPoint that is configured to communicate "
1226                   "and/or is actively communicating with the Dependent "
1227                   "SAP. In a unidirectional connection, this is the "
1228                   "SAP which is transmitting.") ]
1229               CIM_ServiceAccessPoint REF Antecedent;
1230                   
1231               [Override ("Dependent"), Description (
1232                   "A second SeriveAccessPoint that is/can communicate "
1233                   "with the Antecedent SAP. In a unidirectional "
1234                   "connection, this is the SAP that is receiving the "
1235                   "communication.") ] 
1236               CIM_ServiceAccessPoint REF Dependent;
1237                   
1238               [Deprecated {"No value"}, Description (
1239                   "The type of traffic that is carried over this "
1240 kumpf 1.2         "connection. This property is deprecated since it is "
1241                   "incorrectly placed on the association. Unicast, "
1242                   "broadcast or other traffic types are not a function "
1243                   "of the connection between the referenced endpoints, "
1244                   "but on the addressing, protocol, and basic functionality "
1245                   "of the endpoints."),
1246                   ValueMap {"0", "1", "2", "3", "4", "5" },
1247                   Values {"Unknown", "Other", "Unicast", "Broadcast",
1248                       "Multicast", "Anycast"},
1249                   ModelCorrespondence {
1250                       "CIM_ActiveConnection.OtherTrafficDescription" } ]
1251               uint16 TrafficType;
1252                   
1253               [Deprecated {"No value"}, MaxLen(64), Description (
1254                   "A string describing the type of traffic that is being "
1255                   "carried over this instance when its Type property is set "
1256                   "to 1 (e.g., 'Other'). This property is deprecated since it is "
1257                   "incorrectly placed on the association. Unicast, "
1258                   "broadcast or other traffic types are not a function "
1259                   "of the connection between the referenced endpoints, "
1260                   "but on the addressing, protocol, and basic functionality "
1261 kumpf 1.2         "of the endpoints."),
1262                   ModelCorrespondence {
1263                       "CIM_ActiveConnection.TrafficType" } ]
1264               string OtherTrafficDescription;
1265                  
1266               [Description (
1267                   "TRUE means that this connection is uni-directional; FALSE "
1268                   "means that this connection is bi-directional. When the "
1269                   "connection is unidirectional, the 'speaker' should be "
1270                   "defined as the Antecedent reference. In a bidirectional "
1271                   "connection, the selection of which AccessPoint is the "
1272                   "Antecedent or Dependent is immaterial.") ]
1273               boolean IsUnidirectional;
1274           };
1275           
1276           
1277           // ==================================================================
1278           // RemoteServiceAccessPoint
1279           // ==================================================================
1280           [Version ("2.7.0"), Description (
1281               "   RemoteServiceAccessPoint describes access and/or "
1282 kumpf 1.2     "addressing information for a remote connection, that is "
1283               "known to a 'local' network element. This information is "
1284               "scoped/contained by the 'local' network element, since "
1285               "this is the context in which it is 'remote'. \n\n"
1286               "   Why the remote access point is relevant and information "
1287               "on its use are described by subclassing RemoteService"
1288               "AccessPoint, or by associating to it.") ]
1289           class CIM_RemoteServiceAccessPoint : CIM_ServiceAccessPoint {
1290                
1291               [Description (
1292                   "Access and/or addressing information for a remote "
1293                   "connection. This can be a host name, network "
1294                   "address or similar information."),
1295                   ModelCorrespondence {
1296                       "CIM_RemoteServiceAccessPoint.InfoFormat"} ]
1297               string AccessInfo;
1298                
1299               [Description (
1300                   "An enumerated integer describing the format and "
1301                   "interpretation of the AccessInfo property."),
1302                   ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", 
1303 kumpf 1.2             "9", "10..99", "100", "101", "102", "103", "104", 
1304                       "105..199", "200", "32768..65535"},
1305                   Values {"Other", "Host Name", "Ipv4 Address",
1306                       "Ipv6 Address", "IPX Address", "DECnet Address", 
1307                       "SNA Address", "Autonomous System Number", 
1308                       "MPLS Label", "DMTF Reserved", "Dial String", 
1309                       "Ethernet Address", "Token Ring Address", 
1310                       "ATM Address", "Frame Relay Address", 
1311                       "DMTF Reserved", "URL", "Vendor Specific"},
1312                   ModelCorrespondence {
1313                       "CIM_RemoteServiceAccessPoint.OtherInfoFormatDescription"} ]
1314               uint16 InfoFormat;
1315                
1316               [Description (
1317                   "Describes the format when the property InfoFormat "
1318                   "is set to 1 (\"Other\")."),
1319                   ModelCorrespondence {
1320                       "CIM_RemoteServiceAccessPoint.InfoFormat"} ]
1321               string OtherInfoFormatDescription;
1322           };
1323           
1324 kumpf 1.2 
1325           // ==================================================================
1326           // RemotePort
1327           // ==================================================================
1328           [Version ("2.7.0"), Description (
1329               "RemotePort adds port information to the access data "
1330               "(such as IP Address), specified in and inherited from "
1331               "RemoteServiceAccessPoint. For example, using the "
1332               "additional properties in this class, one could indicate that "
1333               "UDP Port 123 is accessed at IP Address xyz. The IP Address "
1334               "would be specified in the inherited AccessInfo property, "
1335               "while the UDP Port number would be specified in this "
1336               "class' property, PortInfo.") ]
1337           class CIM_RemotePort : CIM_RemoteServiceAccessPoint {
1338                 
1339               [Description (
1340                   "Port information that may further specify the "
1341                   "remote access information."), 
1342                   ModelCorrespondence {
1343                       "CIM_RemotePort.PortProtocol"} ]
1344               string PortInfo;
1345 kumpf 1.2       
1346               [Description (
1347                   "An enumerated integer describing the protocol "
1348                   "of the port addressed by PortInformation."),
1349                   ValueMap {"1", "2", "3", "32768..65535"}, 
1350                   Values {"Other", "TCP", "UDP", "Vendor Specific"},
1351                   ModelCorrespondence {
1352                       "CIM_RemotePort.OtherProtocolDescription"} ]
1353               uint16 PortProtocol;
1354                 
1355               [Description (
1356                   "Describes the protocol when the property PortProtocol "
1357                   "is set to 1 (\"Other\")."),
1358                   ModelCorrespondence {
1359                       "CIM_RemotePort.PortProtocol"} ]
1360               string OtherProtocolDescription;
1361           };
1362           
1363           
1364           // ==================================================================
1365           // ServiceAccessURI
1366 kumpf 1.2 // ==================================================================
1367           [Version ("2.7.0"), Description (
1368               "CIM_ServiceAccessURI represents the ability to utilize or "
1369               "invoke a Service via a uniform resource identifier. "
1370               "RFC 1738 describes the Uniform Resource Locator which is a "
1371               "more specific form of a URI, and RFC 2396 describes the broader, "
1372               "inclusive URI. Quoting from the RFC, 'A Uniform Resource "
1373               "Identifier (URI) is a compact string of characters for identifying "
1374               "an abstract or physical resource.' In the context of a "
1375               "ServiceAccessPoint, a URI contains the information necessary "
1376               "to access an associated service (associated via "
1377               "ServiceAccessBySAP), using a syntax specific to that service.") ]
1378           class CIM_ServiceAccessURI : CIM_ServiceAccessPoint {
1379           
1380               [Required, MaxLen (256), Description (
1381                   "The LabeledURI property is based on RFC 2079 and its value "
1382                   "and syntax is service specific.") ]
1383               string LabeledURI;
1384           };
1385           
1386           
1387 kumpf 1.2 // ==================================================================
1388           // ProtocolEndpoint
1389           // ==================================================================
1390           [Version ("2.7.0"), Description (
1391               "A communication point from which data may be sent or "
1392               "received. ProtocolEndpoints link system/computer interfaces "
1393               "to LogicalNetworks.") ]
1394           class CIM_ProtocolEndpoint : CIM_ServiceAccessPoint {
1395           
1396               [Override ("Name"), MaxLen(256), Description (
1397                   "A string which identifies this ProtocolEndpoint with either "
1398                   "a port or an interface on a device. To ensure uniqueness, "
1399                   "the Name property should be prepended or appended with "
1400                   "information from the Type or OtherTypeDescription "
1401                   "properties. The method chosen is described in the "
1402                   "NameFormat property of this class.") ]
1403               string Name;
1404           
1405               [MaxLen (256), Description (
1406                   "NameFormat contains the naming heuristic that is chosen to "
1407                   "ensure that the value of the Name property is unique. For "
1408 kumpf 1.2         "example, one might choose to prepend the name of the port "
1409                   "or interface with the Type of ProtocolEndpoint that this "
1410                   "instance is (e.g., IPv4) followed by an underscore.") ]
1411               string NameFormat;
1412           
1413               [Description (
1414                   "ProtocolType is an enumeration providing information to "
1415                   "categorize and classify different instances of this class. "
1416                   "For most instances, information in this enumeration and the "
1417                   "subclass' definition overlap. However, there are several cases "
1418                   "where a specific subclass of ProtocolEndpoint is not required "
1419                   "(for example, there is no Fibre Channel Endpoint). Hence, this "
1420                   "property is needed to define the type of Endpoint. Note that "
1421                   "in a future major release of the CIM Schema, it is likely "
1422                   "that ProtocolEndpoint will be ABSTRACT, forcing "
1423                   "subclassing and removing the need for this property."), 
1424                   ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
1425                       "10", "11", "12", "13", "14", "15", "16", "17", "18", 
1426                       "19", "20", "21", "22", "23", "24", "25", "26", "27"},
1427                   Values {"Unknown", "Other", "IPv4", "IPv6", "IPX", 
1428                       "AppleTalk", "DECnet", "SNA", "CONP", "CLNP",
1429 kumpf 1.2             "VINES", "XNS", "ATM", "Frame Relay",
1430                       "Ethernet", "TokenRing", "FDDI", "Infiniband", 
1431                       "Fibre Channel", "ISDN BRI Endpoint", 
1432                       "ISDN B Channel Endpoint", "ISDN D Channel Endpoint", 
1433                       // 22
1434                       "IPv4/v6", "BGP", "OSPF", "MPLS", "UDP", "TCP"},
1435                   ModelCorrespondence {
1436                       "CIM_ProtocolEndpoint.OtherTypeDescription"} ] 
1437               uint16 ProtocolType;
1438           
1439               [MaxLen(64), Description (
1440                   "A string describing the type of ProtocolEndpoint when "
1441                   "the Type property of this class (or any of its "
1442                   "subclasses) is set to 1 (i.e., \"Other\"). This "
1443                   "property should be set to NULL when the Type property "
1444                   "is any value other than 1."),
1445                   ModelCorrespondence {"CIM_ProtocolEndpoint.ProtocolType"} ]
1446               string OtherTypeDescription;
1447           };
1448           
1449           
1450 kumpf 1.2 // ==================================================================
1451           // BindsTo
1452           // ==================================================================
1453           [Association, Version ("2.6.0"), Description (
1454               "This association establishes a ServiceAccessPoint "
1455               "as a requestor of protocol services from a "
1456               "ProtocolEndpoint. Typically, this association runs "
1457               "between SAPs and endpoints on a single system. Since a "
1458               "ProtocolEndpoint is a kind of ServiceAccessPoint, this "
1459               "binding can be used to establish a layering of two "
1460               "protocols, the upper layer represented by the Dependent "
1461               "and the lower layer represented by the Antecedent.") ]
1462           class CIM_BindsTo : CIM_SAPSAPDependency {
1463           
1464               [Override ("Antecedent"), Description (
1465                   "The lower-level endpoint which is accessed by the SAP.") ]
1466               CIM_ProtocolEndpoint REF Antecedent;
1467           
1468               [Override ("Dependent"), Description (
1469                   "The AccessPoint or ProtocolEndpoint dependent on the "
1470                   "lower level endpoint.") ]
1471 kumpf 1.2     CIM_ServiceAccessPoint REF Dependent;
1472           };
1473           
1474           
1475           // ==================================================================
1476           // ProvidesEndpoint
1477           // ==================================================================
1478           [Association, Version ("2.7.0"), Description (
1479               "This association represents a ProtocolEndpoint provided "
1480               "by a Service, to allow access to the Service.") ]
1481           class CIM_ProvidesEndpoint : CIM_ServiceAccessBySAP {
1482           
1483               [Override ("Antecedent"), Description (
1484                   "The Service that is accessed by the ProtocolEndpoint.") ]
1485               CIM_Service REF Antecedent;
1486           
1487               [Override ("Dependent"), Description (
1488                   "The ProtocolEndpoint that provides access to the "
1489                   "Service.") ] 
1490               CIM_ProtocolEndpoint REF Dependent;
1491           };
1492 kumpf 1.2 
1493           
1494           // ===================================================================
1495           // end of file
1496           // ===================================================================

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2