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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2