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

   1 a.dunfey 1.1 // ===================================================================
   2              // Title: Device_StorageServices
   3              // $State: Exp $
   4              // $Date: 2004/11/29 18:31:42 $
   5              // $RCSfile: Device_StorageServices.mof,v $
   6              // $Revision: 1.14.2.3 $
   7              // ===================================================================
   8              //#pragma inLine ("Includes/copyright.inc")
   9              // Copyright 1998-2005 Distributed Management Task Force, Inc. (DMTF).
  10              // All rights reserved.
  11              // DMTF is a not-for-profit association of industry members dedicated
  12              // to promoting enterprise and systems management and interoperability.
  13              // DMTF specifications and documents may be reproduced for uses
  14              // consistent with this purpose by members and non-members,
  15              // provided that correct attribution is given.
  16              // As DMTF specifications may be revised from time to time,
  17              // the particular version and release date should always be noted.
  18              // 
  19              // Implementation of certain elements of this standard or proposed
  20              // standard may be subject to third party patent rights, including
  21              // provisional patent rights (herein "patent rights"). DMTF makes
  22 a.dunfey 1.1 // no representations to users of the standard as to the existence
  23              // of such rights, and is not responsible to recognize, disclose, or
  24              // identify any or all such third party patent right, owners or
  25              // claimants, nor for any incomplete or inaccurate identification or
  26              // disclosure of such rights, owners or claimants. DMTF shall have no
  27              // liability to any party, in any manner or circumstance, under any
  28              // legal theory whatsoever, for failure to recognize, disclose, or
  29              // identify any such third party patent rights, or for such party's
  30              // reliance on the standard or incorporation thereof in its product,
  31              // protocols or testing procedures. DMTF shall have no liability to
  32              // any party implementing such standard, whether such implementation
  33              // is foreseeable or not, nor to any patent owner or claimant, and shall
  34              // have no liability or responsibility for costs or losses incurred if
  35              // a standard is withdrawn or modified after publication, and shall be
  36              // indemnified and held harmless by any party implementing the
  37              // standard from any and all claims of infringement by a patent owner
  38              // for such implementations.
  39              // 
  40              // For information about patents held by third-parties which have
  41              // notified the DMTF that, in their opinion, such patent may relate to
  42              // or impact implementations of DMTF standards, visit
  43 a.dunfey 1.1 // http://www.dmtf.org/about/policies/disclosures.php.
  44              //#pragma inLine
  45              // ===================================================================
  46              // Description: The Device Model extends the management concepts that
  47              //              are related to LogicalDevices. This file defines
  48              //              a model for storage services.
  49              // 
  50              //              The object classes below are listed in an order that
  51              //              avoids forward references. Required objects, defined
  52              //              by other working groups, are omitted.
  53              // ==================================================================
  54              // Change Log for v2.8 Final
  55              //  CR1171 - Add WRITE qualifiers to StorageSetting.x
  56              //  CR1151 -  Clarify description of
  57              //  AllocatedFromStoragePool.SpaceConsummed
  58              //  CR1227 - Missing commas in ModelCorrespondences in StorageSetting
  59              //  CR1202 - Remove Experimental to Final for Device
  60              //  CR1223 - Omnibus SysDev Cr - minor MOF corrections
  61              // 
  62              // Change Log for v2.8 Preliminary
  63              //  CR997  - clarify StorageEfficiencyHint
  64 a.dunfey 1.1 //  CR1028 - Add CreateSetting to StorageCapabilities
  65              //  CR1033 - Extent copy services.
  66              //  CR1044 - Add:
  67              //             StoragePool.TotalManagedSpace
  68              //             StoragePool.TotalAvailableSpace
  69              //             StoragePool.Primordial
  70              //         - Remove TotalAvailableSpace
  71              //  CR1046 - Add StorageConfigurationCapabilities
  72              //  CR1141 - Correction of StorageSynchronized.SyncState.
  73              // 
  74              // Change Log for v2.7.1
  75              //       - Fix MaxValue declarations in StorageSettingWithHints - the
  76              //         properties, AccessDirectionHint and AccessBandwidthWeight
  77              // 
  78              // Change Log for v2.7 Final
  79              // CR970 - Removal of the Experimental qualifier
  80              //       - Remove StoragePool.GetSupportedSize and StoragePool.
  81              //         GetSupportedSizeRange so they can remain experimental in 2.8
  82              // CR978 - Clarify the use of settings and capabilities
  83              //       - Change 'spindle' to 'package'
  84              //       - Add ElementType in StoragePool methods
  85 a.dunfey 1.1 //       - Add ElementName to creation methods
  86              //       - Fix ValueMap issues
  87              //       - Generalize the "goal" parameter in CreateOrModifyElement
  88              //       - Change units from megabytes to bytes.
  89              // CR994 - Update description for InstanceID
  90              // 
  91              // Change Log for v2.7
  92              // CR775 - Add StorageSetting, StoragePool, StorageCapabilities,
  93              //         StorageConfigurationService, StorageSettingsWithHints,
  94              //         HostedStoragePool, and AllocatedStoragePool
  95              // CR759 - Add ConfigurationReportingService
  96              // CR777 - Add StorageSynchrononized
  97              //         Add StorageSetting.DeltaReservation,
  98              //         StorageCpabilities.DeltaReservationMin,
  99              //         StorageCpabilities.DeltaReservationMax,
 100              //         StorageCpabilities.DeltaReservationDefault,
 101              //         StorageConfigurationService.CreateReplica() and
 102              //         StorageConfigurationService.ModifySynchronization()
 103              // CR895 - Correct the method return Values/ValueMaps for all the
 104              //         methods in the ConfigurationReportingService.
 105              // ==================================================================
 106 a.dunfey 1.1 
 107              #pragma locale ("en_US")
 108              
 109              
 110              // ==================================================================
 111              // StorageSynchronized
 112              // ==================================================================
 113                 [Association, Version ( "2.8.0" ), Description (
 114                     "Indicates that two Storage objects were replicated at the "
 115                     "specified point in time. If the CopyType property is set to "
 116                     "'Sync' (=3), then synchronization of the Storage objects is "
 117                     "preserved.")]
 118              class CIM_StorageSynchronized : CIM_Synchronized {
 119              
 120                    [Override ( "SystemElement" ), Description (
 121                        "SystemElement represents the Storage that is the source of "
 122                        "the replication.")]
 123                 CIM_ManagedElement REF SystemElement;
 124              
 125                    [Override ( "SyncedElement" ), Description (
 126                        "SyncedElement represents the Storage that is the target of "
 127 a.dunfey 1.1           "the replication.")]
 128                 CIM_ManagedElement REF SyncedElement;
 129              
 130                    [Description (
 131                        "CopyType describes the Replication Policy. Values are: \n"
 132                        "Async: create and maintain an asynchronous copy of the "
 133                        "source. \n"
 134                        "Sync: create and maintain a synchronized copy of the "
 135                        "source. \n"
 136                        "UnSyncAssoc: create an unsynchronized copy and maintain an "
 137                        "association to the source."), 
 138                     ValueMap { "2", "3", "4", "..", "0x8000.." }, 
 139                     Values { "Async", "Sync", "UnSyncAssoc", "DMTF Reserved",
 140                        "Vendor Specific" }]
 141                 uint16 CopyType;
 142              
 143                    [Description (
 144                        "ReplicaType provides information on how the Replica is "
 145                        "being maintained. Values are: \n"
 146                        "Full Copy: This indicates that a full copy of the source "
 147                        "object is (or will be) generated . \n"
 148 a.dunfey 1.1           "Before Delta: This indicates that the source object will be "
 149                        "maintained as a delta data from the replica. \n"
 150                        "After Delta: This indicates that the replica will be "
 151                        "maintained as delta data from the source object. \n"
 152                        "Log: This indicates that the replica object is being "
 153                        "maintained as a log of changes to the source. \n"
 154                        "Not Specified: The method of maintaining the copy is not "
 155                        "specified."), 
 156                     ValueMap { "0", "2", "3", "4", "5","..", "0x8000.." }, 
 157                     Values { "Not Specified", "Full Copy", "Before Delta",
 158                        "After Delta", "Log","DMTF Reserved", "Vendor Specific" }]
 159                 uint16 ReplicaType;
 160              
 161                    [Description (
 162                        "SyncState describes the state of the association with "
 163                        "respect to Replication activity. Values are: \n"
 164                        "Initialized: The link to enable replication is established. "
 165                        "\nPrepareInProgress: Preparation for Replication is in "
 166                        "progress. \n"
 167                        "Prepared: All necessary preparation has completed. \n"
 168                        "ResyncInProgress: Synchronization or Resynchronization is "
 169 a.dunfey 1.1           "in progress. \n"
 170                        "This may be the initial 'copy' or subsequent changes being "
 171                        "copied. \n"
 172                        "Synchronized: An Async or Sync replication is currently "
 173                        "synchronized. When this value is set, SyncMaintained will "
 174                        "be true. \n"
 175                        "FractureInProgress: An operation to fracture an Async or "
 176                        "Sync replication is in progress. \n"
 177                        "Fractured: An Async or Sync replication is fractured. \n"
 178                        "QuiesceInProgress: A quiesce operation is in progress. \n"
 179                        "Quiesced: The replication has been quiesced and is ready "
 180                        "for a change. \n"
 181                        "RestoreInProgress: An operation is in progress to copy the "
 182                        "Synced object to the System object. \n"
 183                        "Idle: The 'normal' state for an UnSyncAssoc replica. \n"
 184                        "Broken: The relationship is non-functional due to errors in "
 185                        "the source, the target, the path between the two or space "
 186                        "constraints."), 
 187                     ValueMap { "2", "3", "4", "5", "6", "7", "8", "9", "10", "11",
 188                        "12", "13", "..", "0x8000.." }, 
 189                     Values { "Initialized", "PrepareInProgress", "Prepared",
 190 a.dunfey 1.1           "ResyncInProgress", "Synchronized", "Fracture In Progress",
 191                        "QuiesceInProgress", "Quiesced", "Restore In Progresss",
 192                        "Idle", "Broken", "Fractured", "DMTF Reserved",
 193                        "Vendor Specific" }]
 194                 uint16 SyncState;
 195              };
 196              
 197              
 198              // ==================================================================
 199              // StorageSetting
 200              // ==================================================================
 201                 [Version ( "2.7.0" ), Description (
 202                     "StorageSetting is roughly equivalent to a Service Level "
 203                     "Agreement (SLA) It defines the characteristics, qualities of "
 204                     "service and goals when used in a CreateOrModifyElement "
 205                     "FromStoragePool or CreateOrModifyStoragePool method in the "
 206                     "StorageConfigurationService. It specifies a series of "
 207                     "properties with Maximum and Minimum values that define the "
 208                     "(inclusive) bounds that the object should maintain. Note that "
 209                     "the setting is associated to a StorageVolume, using "
 210                     "ElementSetting.")]
 211 a.dunfey 1.1 class CIM_StorageSetting : CIM_SettingData {
 212              
 213                    [Write, Description (
 214                        "Indicates the desired value for No Single Point of Failure. "
 215                        "Possible values are false = single point of failure, and "
 216                        "true = no single point of failure.")]
 217                 boolean NoSinglePointOfFailure;
 218              
 219                    [Write, Description (
 220                        "DataRedundancyMax describes the maximum number of complete "
 221                        "copies of data to be maintained. Examples would be RAID 5 "
 222                        "where 1 copy is maintained and RAID 1 where 2 or more "
 223                        "copies are maintained. Possible values are 1 to n. The "
 224                        "desired redundancy is specified using DataRedundancyGoal, "
 225                        "while the minimum is defined by DataRedundancyMin."), 
 226                     MinValue ( 1 ), 
 227                     ModelCorrespondence { "CIM_StorageSetting.DataRedundancyMin",
 228                        "CIM_StorageSetting.DataRedundancyGoal" }]
 229                 uint16 DataRedundancyMax;
 230              
 231                    [Write, Description (
 232 a.dunfey 1.1           "DataRedundancyMin describes the minimum number of complete "
 233                        "copies of data to be maintained. Examples would be RAID 5 "
 234                        "where 1 copy is maintained and RAID 1 where 2 or more "
 235                        "copies are maintained. Possible values are 1 to n. The "
 236                        "desired redundancy is specified using DataRedundancyGoal, "
 237                        "while the maximum is defined by DataRedundancyMax."), 
 238                     MinValue ( 1 ), 
 239                     ModelCorrespondence { "CIM_StorageSetting.DataRedundancyMax",
 240                        "CIM_StorageSetting.DataRedundancyGoal" }]
 241                 uint16 DataRedundancyMin;
 242              
 243                    [Write, Description (
 244                        "DataRedundancyGoal describes the desired number of complete "
 245                        "copies of data to be maintained. Examples would be RAID 5 "
 246                        "where 1 copy is maintained and RAID 1 where 2 or more "
 247                        "copies are maintained. Possible values are 1 to n. The "
 248                        "bounds (max and min) for redundancy are defined using the "
 249                        "properties, DataRedundancyMax and DataRedundancyMin."), 
 250                     MinValue ( 1 ), 
 251                     ModelCorrespondence { "CIM_StorageSetting.DataRedundancyMax",
 252                        "CIM_StorageSetting.DataRedundancyMin" }]
 253 a.dunfey 1.1    uint16 DataRedundancyGoal;
 254              
 255                    [Write, Description (
 256                        "PackageRedundancyMax describes the maximum number of "
 257                        "redundant packages to be used. For example, in the storage "
 258                        "domain, package redundancy describes how many disk spindles "
 259                        "can fail without data loss including, at most, one spare. "
 260                        "An example would be RAID5 with a spare disk which would "
 261                        "have a PackageRedundancy of 2. Possible values are 0 to n. "
 262                        "The desired redundancy is specified using "
 263                        "PackageRedundancyGoal, while the minimum is defined by "
 264                        "PackageRedundancyMin."), 
 265                     ModelCorrespondence { "CIM_StorageSetting.PackageRedundancyMin",
 266                        "CIM_StorageSetting.PackageRedundancyGoal" }]
 267                 uint16 PackageRedundancyMax;
 268              
 269                    [Write, Description (
 270                        "PackageRedundancyMin describes the minimum number of "
 271                        "redundant packages to be used. For example, in the storage "
 272                        "domain, package redundancy describes how many disk spindles "
 273                        "can fail without data loss including, at most, one spare. "
 274 a.dunfey 1.1           "An example would be RAID5 with a spare disk which would "
 275                        "have a PackageRedundancy of 2. Possible values are 0 to n. "
 276                        "The desired redundancy is specified using "
 277                        "PackageRedundancyGoal, while the maximum is defined by "
 278                        "PackageRedundancyMax."), 
 279                     ModelCorrespondence { "CIM_StorageSetting.PackageRedundancyMax",
 280                        "CIM_StorageSetting.PackageRedundancyGoal" }]
 281                 uint16 PackageRedundancyMin;
 282              
 283                    [Write, Description (
 284                        "PackageRedundancyGoal describes the desired number of "
 285                        "redundant packages to be used. For example, in the storage "
 286                        "domain, package redundancy describes how many disk spindles "
 287                        "can fail without data loss including, at most, one spare. "
 288                        "An example would be RAID5 with a spare disk which would "
 289                        "have a PackageRedundancy of 2. Possible values are 0 to n. "
 290                        "The bounds (max and min) for redundancy are defined using "
 291                        "the properties, PackageRedundancyMax and "
 292                        "PackageRedundancyMin."), 
 293                     ModelCorrespondence { "CIM_StorageSetting.PackageRedundancyMax",
 294                        "CIM_StorageSetting.PackageRedundancyMin" }]
 295 a.dunfey 1.1    uint16 PackageRedundancyGoal;
 296              
 297                    [Write, Description (
 298                        "DeltaReservationMax is a number between 1 (1%) and a 100 "
 299                        "(100%) which specifies the maximum amount of space that "
 300                        "should be reserved in a replica for caching changes. For a "
 301                        "complete copy this would be 100%. The desired reservation "
 302                        "is specified using DeltaReservationGoal, while the minimum "
 303                        "is defined by DeltaReservationMin."), 
 304                     Units ( "Percentage" ), MinValue ( 1 ), MaxValue ( 100 ), 
 305                     ModelCorrespondence { "CIM_StorageSetting.DeltaReservationMin",
 306                        "CIM_StorageSetting.DeltaReservationGoal" }]
 307                 uint8 DeltaReservationMax;
 308              
 309                    [Write, Description (
 310                        "DeltaReservationMin is a number between 1 (1%) and a 100 "
 311                        "(100%) which specifies the minimum amount of space that "
 312                        "should be reserved in a replica for caching changes. For a "
 313                        "complete copy this would be 100%. The desired reservation "
 314                        "is specified using DeltaReservationGoal, while the maximum "
 315                        "is defined by DeltaReservationMax."), 
 316 a.dunfey 1.1        Units ( "Percentage" ), MinValue ( 1 ), MaxValue ( 100 ), 
 317                     ModelCorrespondence { "CIM_StorageSetting.DeltaReservationMax",
 318                        "CIM_StorageSetting.DeltaReservationGoal" }]
 319                 uint8 DeltaReservationMin;
 320              
 321                    [Write, Description (
 322                        "DeltaReservationGoal is a number between 1 (1%) and a 100 "
 323                        "(100%) which specifies the desired amount of space that "
 324                        "should be reserved in a replica for caching changes. For a "
 325                        "complete copy this would be 100%. The bounds (max and min) "
 326                        "for the reservation are defined using the properties, "
 327                        "DeltaReservationMax and DeltaReservationMin."), 
 328                     Units ( "Percentage" ), MinValue ( 1 ), MaxValue ( 100 ), 
 329                     ModelCorrespondence { "CIM_StorageSetting.DeltaReservationMin",
 330                        "CIM_StorageSetting.DeltaReservationMax" }]
 331                 uint8 DeltaReservationGoal;
 332              };
 333              
 334              
 335              // ==================================================================
 336              // StoragePool
 337 a.dunfey 1.1 // ==================================================================
 338                 [Version ( "2.8.0" ), Description (
 339                     "A pool of Storage that is managed within the scope of a "
 340                     "particular System. StoragePools may consist of component "
 341                     "StoragePools or StorageExtents. StorageExtents that belong to "
 342                     "the StoragePool have a Component relationship to the "
 343                     "StoragePool. StorageExtents/StoragePools that are elements of "
 344                     "a pool have their available space aggregated into the pool. "
 345                     "StoragePools and StorageVolumes may be created from "
 346                     "StoragePools. This is indicated by the "
 347                     "AllocatedFromStoragePool association. StoragePool is scoped to "
 348                     "a system by the HostedStoragePool association.")]
 349              class CIM_StoragePool : CIM_LogicalElement {
 350              
 351                    [Key, Description (
 352                        "Within the scope of the instantiating Namespace, InstanceID "
 353                        "opaquely and uniquely identifies an instance of this class. "
 354                        "In order to ensure uniqueness within the NameSpace, the "
 355                        "value of InstanceID SHOULD be constructed using the "
 356                        "following 'preferred' algorithm: \n"
 357                        "<OrgID>:<LocalID> \n"
 358 a.dunfey 1.1           "Where <OrgID> and <LocalID> are separated by a colon ':', "
 359                        "and where <OrgID> MUST include a copyrighted, trademarked "
 360                        "or otherwise unique name that is owned by the business "
 361                        "entity creating/defining the InstanceID, or is a registered "
 362                        "ID that is assigned to the business entity by a recognized "
 363                        "global authority (This is similar to the <Schema "
 364                        "Name>_<Class Name> structure of Schema class names.) In "
 365                        "addition, to ensure uniqueness <OrgID> MUST NOT contain a "
 366                        "colon (':'). When using this algorithm, the first colon to "
 367                        "appear in InstanceID MUST appear between <OrgID> and "
 368                        "<LocalID>. \n"
 369                        "<LocalID> is chosen by the business entity and SHOULD not "
 370                        "be re-used to identify different underlying (real-world) "
 371                        "elements. If the above 'preferred' algorithm is not used, "
 372                        "the defining entity MUST assure that the resultant "
 373                        "InstanceID is not re-used across any InstanceIDs produced "
 374                        "by this or other providers for this instance's NameSpace. \n"
 375                        "For DMTF defined instances, the 'preferred' algorithm MUST "
 376                        "be used with the <OrgID> set to 'CIM'.")]
 377                 string InstanceID;
 378              
 379 a.dunfey 1.1       [Required, Description (
 380                        "A unique name in the context of the System that identifies "
 381                        "this pool."), 
 382                     MaxLen ( 256 )]
 383                 string PoolID;
 384              
 385                    [Description (
 386                        "If true, \"Primordial\" indicates that the containing "
 387                        "System does not have the ability to create or delete this "
 388                        "operational element. This is important because higher-level "
 389                        "StoragePools may be assembled using the Component or "
 390                        "AllocatedFromStoragePool associations. Although the "
 391                        "higher-level abstractions can be created and deleted, the "
 392                        "most basic, (i.e. primordial), hardware-based StoragePools "
 393                        "cannot. They are physically realized as part of the System, "
 394                        "or are actually managed by some other System and imported "
 395                        "as if they were physically realized.")]
 396                 boolean Primordial=false;
 397              
 398                    [Description (
 399                        "The total amount of raw storage (in bytes) managed by this "
 400 a.dunfey 1.1           "StoragePool. This includes all of the bytes consumed to "
 401                        "create the storage surfaced by this StoragePool, including "
 402                        "all of the overhead bytes that are not reflected in the "
 403                        "size of the logical storage allocated from this "
 404                        "StoragePool. \n"
 405                        "Conceptually TotalManagedSpace reflects all storage known "
 406                        "via Component associations to underlying StorageExtents or "
 407                        "via AllocatedFromStoragePool associations to underlying "
 408                        "StoragePools. However, note that this underlying storage "
 409                        "may not be surfaced by the instrumentation."), 
 410                     Units ( "Bytes" ), 
 411                     ModelCorrespondence { "CIM_StoragePool.RemainingManagedSpace" }]
 412                 uint64 TotalManagedSpace;
 413              
 414                    [Required, Description (
 415                        "The remaining amount of raw storage (in bytes) from the "
 416                        "TotalManagedSpace of this StoragePool. This property is "
 417                        "maintained here to provide efficient access to this "
 418                        "information. However, note that it is possible to compute "
 419                        "RemainingManagedSpace as (TotalManagedSpace minus the sum "
 420                        "of SpaceConsumed from all of the AllocatedFromStoragePool "
 421 a.dunfey 1.1           "references from this StoragePool). Note that SpaceConsumed "
 422                        "remains useful to determine the amount of raw storage "
 423                        "consumed by a particular allocated element."), 
 424                     Units ( "Bytes" ), 
 425                     ModelCorrespondence { "CIM_StoragePool.TotalManagedSpace",
 426                        "CIM_AllocatedFromStoragePool.SpaceConsumed" }]
 427                 uint64 RemainingManagedSpace;
 428              
 429                    [Description (
 430                        "For pools that support discrete sizes for volume or pool "
 431                        "creation, this method can be used to retrieve a list of "
 432                        "supported sizes. Note that different pool implementations "
 433                        "may support either or both the GetSupportedSizes and "
 434                        "GetSupportedSizeRanges methods at different times, "
 435                        "depending on Pool configuration. Also note that the "
 436                        "advertised sizes may change after the call due to requests "
 437                        "from other clients. If the pool currently only supports a "
 438                        "range of sizes, then the return value will be set to 1."), 
 439                     ValueMap { "0", "1", "2" }, 
 440                     Values { "Method completed OK", "Method not supported",
 441                        "Use GetSupportedSizeRange instead" }]
 442 a.dunfey 1.1    uint32 GetSupportedSizes ( 
 443                       [IN, Description (
 444                           "The type of element for which supported sizes are "
 445                           "reported for."), 
 446                        ValueMap { "2", "3" }, 
 447                        Values { "Storage Pool", "Storage Volume" }]
 448                    uint16 ElementType, 
 449                       [IN, Description (
 450                           "The StorageSetting for which supported sizes should be "
 451                           "reported for.")]
 452                    CIM_StorageSetting REF Goal, 
 453                       [IN ( false ), OUT, Description (
 454                           "List of supported sizes for a Volume/Pool creation or "
 455                           "modification."), 
 456                        Units ( "Bytes" )]
 457                    uint64 Sizes[] ); 
 458              
 459                    [Description (
 460                        "For pools that that support a range of sizes for volume or "
 461                        "pool creation, this method can be used to retrieve the "
 462                        "supported range. Note that different pool implementations "
 463 a.dunfey 1.1           "may support either or both the GetSupportedSizes and "
 464                        "GetSupportedSizeRanges methods at different times, "
 465                        "depending on Pool configuration. Also note that the "
 466                        "advertised sizes may change after the call due to requests "
 467                        "from other clients. If the pool currently only supports "
 468                        "discrete sizes, then the return value will be set to 1."), 
 469                     ValueMap { "0", "1", "2" }, 
 470                     Values { "Method completed OK", "Method not supported",
 471                        "Use GetSupportedSizes instead" }]
 472                 uint32 GetSupportedSizeRange ( 
 473                       [IN, Description (
 474                           "The type of element for which supported size ranges are "
 475                           "reported for."), 
 476                        ValueMap { "2", "3" }, 
 477                        Values { "Storage Pool", "Storage Volume" }]
 478                    uint16 ElementType, 
 479                       [IN, Description (
 480                           "The StorageSetting for which supported size ranges "
 481                           "should be reported for.")]
 482                    CIM_StorageSetting REF Goal, 
 483                       [IN ( false ), OUT, Description (
 484 a.dunfey 1.1              "The minimum size for a volume/pool in bytes."), 
 485                        Units ( "Bytes" )]
 486                    uint64 MinimumVolumeSize, 
 487                       [IN ( false ), OUT, Description (
 488                           "The maximum size for a volume/pool in bytes."), 
 489                        Units ( "Bytes" )]
 490                    uint64 MaximumVolumeSize, 
 491                       [IN ( false ), OUT, Description (
 492                           "A volume/pool size must be a multiple of this value "
 493                           "which is specified in bytes."), 
 494                        Units ( "Bytes" )]
 495                    uint64 VolumeSizeDivisor); 
 496              };
 497              
 498              
 499              // ==================================================================
 500              // StorageCapabilities
 501              // ==================================================================
 502                 [Version ( "2.8.0" ), Description (
 503                     "A subclass of Capabilities that defines the Capabilities of a "
 504                     "StorageService or StoragePool. For example, an instance of "
 505 a.dunfey 1.1        "StorageCapabilities could be associated with either a "
 506                     "StorageConfigurationService or StoragePool by using "
 507                     "ElementCapabilities.")]
 508              class CIM_StorageCapabilities : CIM_Capabilities {
 509              
 510                    [Description (
 511                        "Enumeration indicating the type of element to which this "
 512                        "StorageCapabilities applies."), 
 513                     ValueMap { "0", "1", "2", "3", "4", "5", "6" }, 
 514                     Values { "Unknown", "Reserved", "Any Type", "StorageVolume",
 515                        "StorageExtent", "StoragePool",
 516                     "StorageConfigurationService" }]
 517                 uint16 ElementType;
 518              
 519                    [Description (
 520                        "Indicates whether or not the associated element supports no "
 521                        "single point of failure. Values are: FALSE = does not "
 522                        "support no single point of failure, and TRUE = supports no "
 523                        "single point of failure."), 
 524                     ModelCorrespondence { 
 525                        "CIM_StorageCapabilities.NoSinglePointOfFailureDefault" }]
 526 a.dunfey 1.1    boolean NoSinglePointOfFailure;
 527              
 528                    [Description (
 529                        "Indicates the default value for the NoSinglePointOfFailure "
 530                        "property."), 
 531                     ModelCorrespondence { 
 532                        "CIM_StorageCapabilities.NoSinglePointOfFailure" }]
 533                 boolean NoSinglePointOfFailureDefault;
 534              
 535                    [Description (
 536                        "DataRedundancyMax describes the maximum number of complete "
 537                        "copies of data that can be maintained. Examples would be "
 538                        "RAID 5 (where 1 copy is maintained) and RAID 1 (where 2 or "
 539                        "more copies are maintained). Possible values are 1 to n. "
 540                        "The default redundancy is specified using "
 541                        "DataRedundancyDefault, while the minimum is defined by "
 542                        "DataRedundancyMin."), 
 543                     MinValue ( 1 ), 
 544                     ModelCorrespondence { 
 545                        "CIM_StorageCapabilities.DataRedundancyMin",
 546                        "CIM_StorageCapabilities.DataRedundancyDefault" }]
 547 a.dunfey 1.1    uint16 DataRedundancyMax;
 548              
 549                    [Description (
 550                        "DataRedundancyMin describes the minimum number of complete "
 551                        "copies of data that can be maintained. Examples would be "
 552                        "RAID 5 where 1 copy is maintained and RAID 1 where 2 or "
 553                        "more copies are maintained). Possible values are 1 to n. "
 554                        "The default redundancy is specified using "
 555                        "DataRedundancyDefault, while the maximum is defined by "
 556                        "DataRedundancyMax."), 
 557                     MinValue ( 1 ), 
 558                     ModelCorrespondence { 
 559                        "CIM_StorageCapabilities.DataRedundancyMax",
 560                        "CIM_StorageCapabilities.DataRedundancyDefault" }]
 561                 uint16 DataRedundancyMin;
 562              
 563                    [Description (
 564                        "DataRedundancyDefault describes the default number of "
 565                        "complete copies of data that can be maintained. Examples "
 566                        "would be RAID 5 where 1 copy is maintained and RAID 1 where "
 567                        "2 or more copies are maintained. Possible values are 1 to "
 568 a.dunfey 1.1           "n. The bounds for the redundancy (max and min) are defined "
 569                        "by DataRedundancyMax and DataRedundancyMin."), 
 570                     MinValue ( 1 ), 
 571                     ModelCorrespondence { 
 572                        "CIM_StorageCapabilities.DataRedundancyMax",
 573                        "CIM_StorageCapabilities.DataRedundancyMin" }]
 574                 uint16 DataRedundancyDefault;
 575              
 576                    [Description (
 577                        "PackageRedundancyMax describes the maximum number of "
 578                        "redundant packages that can be used. For example, in the "
 579                        "storage domain, package redundancy describes how many disk "
 580                        "spindles can fail without data loss including, at most, one "
 581                        "spare. An example would be RAID5 with a spare disk which "
 582                        "would have a PackageRedundancy of 2. Possible values are 0 "
 583                        "to n. The default redundancy is specified using "
 584                        "PackageRedundancyDefault, while the maximum is defined by "
 585                        "PackageRedundancyMax."), 
 586                     ModelCorrespondence { 
 587                        "CIM_StorageCapabilities.PackageRedundancyMin",
 588                        "CIM_StorageCapabilities.PackageRedundancyDefault" }]
 589 a.dunfey 1.1    uint16 PackageRedundancyMax;
 590              
 591                    [Description (
 592                        "PackageRedundancyMin describes the minimum number of "
 593                        "redundant packages that can be used. For example, in the "
 594                        "storage domain, package redundancy describes how many disk "
 595                        "spindles can fail without data loss including, at most, one "
 596                        "spare. An example would be RAID5 with a spare disk which "
 597                        "would have a PackageRedundancy of 2. Possible values are 0 "
 598                        "to n. The default redundancy is specified using "
 599                        "PackageRedundancyDefault, while the minimum is defined by "
 600                        "PackageRedundancyMin."), 
 601                     ModelCorrespondence { 
 602                        "CIM_StorageCapabilities.PackageRedundancyMax",
 603                        "CIM_StorageCapabilities.PackageRedundancyDefault" }]
 604                 uint16 PackageRedundancyMin;
 605              
 606                    [Description (
 607                        "PackageRedundancyDefault describes the default number of "
 608                        "redundant packages that will be used. For example, in the "
 609                        "storage domain, package redundancy describes how many disk "
 610 a.dunfey 1.1           "spindles can fail without data loss including, at most, one "
 611                        "spare. An example would be RAID5 with a spare disk which "
 612                        "would have a PackageRedundancy of 2. Possible values are 0 "
 613                        "to n. The bounds for redundancy are specified using the "
 614                        "properties, PackageRedundancyMax and PackageRedundancyMin."), 
 615                     ModelCorrespondence { 
 616                        "CIM_StorageCapabilities.PackageRedundancyMin",
 617                        "CIM_StorageCapabilities.PackageRedundancyMax" }]
 618                 uint16 PackageRedundancyDefault;
 619              
 620                    [Description (
 621                        "DeltaReservatioMax is a number between 1 (1%) and a 100 "
 622                        "(100%) that specifies the maximum amount of space reserved "
 623                        "in a replica for caching changes. For a complete copy this "
 624                        "would be 100%, but it can be lower in some implementations. "
 625                        "This parameter sets the upper limit, while "
 626                        "DeltaReservationMin sets the lower limit."), 
 627                     Units ( "Percentage" ), MinValue ( 0 ), MaxValue ( 100 ), 
 628                     ModelCorrespondence { 
 629                        "CIM_StorageCapabilities.DeltaReservationMin",
 630                        "CIM_StorageCapabilities.DeltaReservationDefault" }]
 631 a.dunfey 1.1    uint16 DeltaReservationMax;
 632              
 633                    [Description (
 634                        "DeltaReservationMin is a number between 1 (1%) and a 100 "
 635                        "(100%) that specifies the minimum amount of space that "
 636                        "should be reserved in a replica for caching changes. For a "
 637                        "complete copy this would be 100%, but it can be lower in "
 638                        "some implementations. This parameter sets the lower limit, "
 639                        "while DeltaReservationMax sets the upper limit."), 
 640                     Units ( "Percentage" ), MinValue ( 0 ), MaxValue ( 100 ), 
 641                     ModelCorrespondence { 
 642                        "CIM_StorageCapabilities.DeltaReservationMax",
 643                        "CIM_StorageCapabilities.DeltaReservationDefault" }]
 644                 uint16 DeltaReservationMin;
 645              
 646                    [Description (
 647                        "Delta reservation is a number between 1 (1%) and a 100 "
 648                        "(100%) that specifies how much space should be reserved by "
 649                        "default in a replica for caching changes. For a complete "
 650                        "copy this would be 100%, but it can be lower in some "
 651                        "implementations. This parameter sets the default value, "
 652 a.dunfey 1.1           "while DeletaReservationMax and DeltReservationMin set the "
 653                        "upper and lower bounds."), 
 654                     Units ( "Percentage" ), MinValue ( 0 ), MaxValue ( 100 ), 
 655                     ModelCorrespondence { 
 656                        "CIM_StorageCapabilities.DeltaReservationMax",
 657                        "CIM_StorageCapabilities.DeltaReservationMin" }]
 658                 uint16 DeltaReservationDefault;
 659              
 660                    [Description (
 661                        "Method to create and populate a StorageSetting instance "
 662                        "from a StorageCapability instance. This removes the need to "
 663                        "populate default settings and other settings in the context "
 664                        "of each StorageCapabilities (which could be numerous). If "
 665                        "the underlying instrumentation supports the "
 666                        "StorageSettingWithHints subclass, then an instance of that "
 667                        "class will be created instead."), 
 668                     ValueMap { "0", "1", "2", "3", "4", "5", "..", "32768..65535" }, 
 669                     Values { "Success", "Not Supported", "Unspecified Error",
 670                        "Timeout", "Failed", "Invalid Parameter", "DMTF Reserved",
 671                        "Vendor Specific" }]
 672                 uint32 CreateSetting ( 
 673 a.dunfey 1.1          [IN, Description (
 674                           "If 'Default' is passed for the CreateDefault parameter, "
 675                           "the Max, Goal, and Min setting attributes are set to the "
 676                           "Default values of the parent StorageCapabilities when "
 677                           "the instance is created. \n"
 678                           "If set to 'Goal' the new StorageSetting attributes are "
 679                           "set to the related attributes of the parent "
 680                           "StorageCapabilities, e.g. Min to Min, Goal to Default, "
 681                           "and Max to Max. \n"
 682                           "\n"
 683                           "This method maybe deprecated in lieu of intrinsics once "
 684                           "limitations in the CIM Operations are addressed."), 
 685                        ValueMap { "2", "3" }, 
 686                        Values { "Default", "Goal" }]
 687                    uint16 SettingType, 
 688                       [IN ( False ), OUT, Description (
 689                           "Reference to the created StorageSetting instance.")]
 690                    CIM_StorageSetting REF NewSetting ); 
 691              };
 692              
 693              // ==================================================================
 694 a.dunfey 1.1 // StorageConfigurationService
 695              // ==================================================================
 696                 [Version ( "2.8.0" ), Description (
 697                     "This service allows the active management of a Storage Server. "
 698                     "It allows jobs to be started for the creation, modification "
 699                     "and deletion of storage objects (StoragePools and "
 700                     "StorageVolumes).")]
 701              class CIM_StorageConfigurationService : CIM_Service {
 702              
 703                    [Description (
 704                        "Starts a job to create (or modify) a StoragePool. The "
 705                        "StoragePool will be (or must be) scoped to the same System "
 706                        "as this Service. One of the parameters for this method is "
 707                        "Size. As an input parameter, Size specifies the desired "
 708                        "size of the pool. As an output parameter, it specifies the "
 709                        "size achieved. Space is taken from either or both of the "
 710                        "specified input StoragePools and StorageExtents (InPools "
 711                        "and InExtents). The capability requirements that the Pool "
 712                        "must support are defined using the Goal parameter. If the "
 713                        "requested pool size cannot be created, no action will be "
 714                        "taken, the Return Value will be 4097/0x1001, and the output "
 715 a.dunfey 1.1           "value of Size will be set to the nearest possible size. If "
 716                        "0 is returned, then the task completed successfully and the "
 717                        "use of ConcreteJob was not required. If the task will take "
 718                        "some time to complete, a ConcreteJob will be created and "
 719                        "its reference returned in the output parameter Job."), 
 720                     ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "4096",
 721                        "4097", "4098..32767", "32768..65535" }, 
 722                     Values { "Job Completed with No Error", "Not Supported",
 723                        "Unknown", "Timeout", "Failed", "Invalid Parameter",
 724                        "In Use", "DMTF Reserved",
 725                        "Method Parameters Checked - Job Started",
 726                        "Size Not Supported", "Method Reserved", "Vendor Specific" }]
 727                 uint32 CreateOrModifyStoragePool ( 
 728                       [IN, Description (
 729                           "A end user relevant name for the pool being created. If "
 730                           "NULL, then a system supplied default name can be used. "
 731                           "The value will be stored in the 'ElementName' property "
 732                           "for the created pool. If not NULL, this parameter will "
 733                           "supply a new name when modifying an existing pool.")]
 734                    string ElementName, 
 735                       [IN ( false ), OUT, Description (
 736 a.dunfey 1.1              "Reference to the job (may be null if job completed).")]
 737                    CIM_ConcreteJob REF Job, 
 738                       [IN, Description (
 739                           "Reference to an instance of StorageSetting that defines "
 740                           "the desired capabilities of the StoragePool. If set to a "
 741                           "null value, the default configuration from the source "
 742                           "pool will be used. If not NULL, this parameter will "
 743                           "supply a new Goal setting when modifying an existing "
 744                           "pool.")]
 745                    CIM_StorageSetting REF Goal, 
 746                       [IN, OUT, Description (
 747                           "As an input parameter this specifies the desired pool "
 748                           "size in bytes. As an output parameter this specifies the "
 749                           "size achieved."), 
 750                        Units ( "Bytes" )]
 751                    uint64 Size, 
 752                       [IN, Description (
 753                           "Array of strings containing representations of "
 754                           "references to CIM_StoragePool instances, that are used "
 755                           "to create the Pool or modify the source pools.")]
 756                    string InPools[], 
 757 a.dunfey 1.1          [IN, Description (
 758                           "Array of strings containing representations of "
 759                           "references to CIM_StorageExtent instances, that are used "
 760                           "to create the Pool or modify the source extents.")]
 761                    string InExtents[], 
 762                       [IN, OUT, Description (
 763                           "As an input parameter: if null, creates a new "
 764                           "StoragePool. If not null, modifies the referenced Pool. "
 765                           "When returned, it is a reference to the resulting "
 766                           "StoragePool.")]
 767                    CIM_StoragePool REF Pool); 
 768              
 769                    [Description (
 770                        "Start a job to create (or modify) a specified element (for "
 771                        "example a StorageVolume or StorageExtent) from a "
 772                        "StoragePool. One of the parameters for this method is Size. "
 773                        "As an input parameter, Size specifies the desired size of "
 774                        "the element. As an output parameter, it specifies the size "
 775                        "achieved. Space is taken from the input StoragePool. The "
 776                        "desired settings for the element are specified by the Goal "
 777                        "parameter. If the requested size cannot be created, no "
 778 a.dunfey 1.1           "action will be taken, and the Return Value will be "
 779                        "4097/0x1001. Also, the output value of Size is set to the "
 780                        "nearest possible size. If 0 is returned, the function "
 781                        "completed successfully and no ConcreteJob instance was "
 782                        "required. If 4096/0x1000 is returned, a ConcreteJob will be "
 783                        "started to create the element. The Job's reference will be "
 784                        "returned in the output parameter Job."), 
 785                     ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "4096",
 786                        "4097", "4098..32767", "32768..65535" }, 
 787                     Values { "Job Completed with No Error", "Not Supported",
 788                        "Unknown", "Timeout", "Failed", "Invalid Parameter",
 789                        "In Use", "DMTF Reserved",
 790                        "Method Parameters Checked - Job Started",
 791                        "Size Not Supported", "Method Reserved", "Vendor Specific" }]
 792                 uint32 CreateOrModifyElementFromStoragePool( 
 793                       [IN, Description (
 794                           "A end user relevant name for the element being created. "
 795                           "If NULL, then a system supplied default name can be "
 796                           "used. The value will be stored in the 'ElementName' "
 797                           "property for the created element. If not NULL, this "
 798                           "parameter will supply a new name when modifying an "
 799 a.dunfey 1.1              "existing element.")]
 800                    string ElementName, 
 801                       [IN, Description (
 802                           "Enumeration indicating the type of element being created "
 803                           "or modified. If the input parameter TheElement is "
 804                           "specified when the operation is a 'modify', this type "
 805                           "value must match the type of that instance."), 
 806                        ValueMap { "0", "1", "2", "3", "..", "32768..65535" }, 
 807                        Values { "Unknown", "Reserved", "StorageVolume",
 808                           "StorageExtent", "DMTF Reserved", "Vendor Specific" }]
 809                    uint16 ElementType, 
 810                       [IN ( false ), OUT, Description (
 811                           "Reference to the job (may be null if job completed).")]
 812                    CIM_ConcreteJob REF Job, 
 813                       [IN, Description (
 814                           "The requirements for the element to maintain. If set to "
 815                           "a null value, the default configuration from the source "
 816                           "pool will be used. This parameter should be a reference "
 817                           "to a Setting or Profile appropriate to the element being "
 818                           "created. If not NULL, this parameter will supply a new "
 819                           "Goal when modifying an existing element.")]
 820 a.dunfey 1.1       CIM_ManagedElement REF Goal, 
 821                       [IN, OUT, Description (
 822                           "As an input parameter Size specifies the desired size. "
 823                           "If not NULL, this parameter will supply a new size when "
 824                           "modifying an existing element. As an output parameter "
 825                           "Size specifies the size achieved."), 
 826                        Units ( "Bytes" )]
 827                    uint64 Size, 
 828                       [IN, Description (
 829                           "The Pool from which to create the element. This "
 830                           "parameter must be set to null if the input parameter "
 831                           "TheElement is specified (in the case of a 'modify' "
 832                           "operation).")]
 833                    CIM_StoragePool REF InPool, 
 834                       [IN, OUT, Description (
 835                           "As an input parameter: if null, creates a new element. "
 836                           "If not null, then the method modifies the specified "
 837                           "element. As an output parameter, it is a reference to "
 838                           "the resulting element.")]
 839                    CIM_LogicalElement REF TheElement); 
 840              
 841 a.dunfey 1.1       [Description (
 842                        "Start a job to delete a StoragePool. The freed space is "
 843                        "returned source StoragePools (indicated by AllocatedFrom "
 844                        "StoragePool) or back to underlying storage extents. If 0 is "
 845                        "returned, the function completed successfully, and no "
 846                        "ConcreteJob was required. If 4096/0x1000 is returned, a "
 847                        "ConcreteJob will be started to delete the StoragePool. A "
 848                        "reference to the Job is returned in the Job parameter."), 
 849                     ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "4096",
 850                        "4097..32767", "32768..65535" }, 
 851                     Values { "Job Completed with No Error", "Not Supported",
 852                        "Unknown", "Timeout", "Failed", "Invalid Parameter",
 853                        "In Use", "DMTF Reserved",
 854                        "Method Parameters Checked - Job Started", "Method Reserved",
 855                        "Vendor Specific" }]
 856                 uint32 DeleteStoragePool ( 
 857                       [IN ( false ), OUT, Description (
 858                           "Reference to the job (may be null if job completed).")]
 859                    CIM_ConcreteJob REF Job, 
 860                       [IN, Description (
 861                           "Reference to the pool to delete.")]
 862 a.dunfey 1.1       CIM_StoragePool REF Pool); 
 863              
 864                    [Description (
 865                        "Start a job to delete an element previously created from a "
 866                        "StoragePool. The freed space is returned to the source "
 867                        "StoragePool. If 0 is returned, the function completed "
 868                        "successfully and no ConcreteJob was required. If "
 869                        "4096/0x1000 is returned, a ConcreteJob will be started to "
 870                        "delete the element. A reference to the Job is returned in "
 871                        "the Job parameter."), 
 872                     ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "4096",
 873                        "4097..32767", "32768..65535" }, 
 874                     Values { "Job Completed with No Error", "Not Supported",
 875                        "Unknown", "Timeout", "Failed", "Invalid Parameter",
 876                        "In Use", "DMTF Reserved",
 877                        "Method Parameters Checked - Job Started", "Method Reserved",
 878                        "Vendor Specific" }]
 879                 uint32 ReturnToStoragePool( 
 880                       [IN ( false ), OUT, Description (
 881                           "Reference to the job (may be null if job completed).")]
 882                    CIM_ConcreteJob REF Job, 
 883 a.dunfey 1.1          [IN, Description (
 884                           "Reference to the element to return to the StoragePool.")]
 885                    CIM_LogicalElement REF TheElement); 
 886              
 887                    [Description (
 888                        "Start a job to create a new storage object which is a "
 889                        "replica of the specified source storage object. "
 890                        "(SourceElement). Note that using the input paramter, "
 891                        "CopyType, this function can be used to instantiate the "
 892                        "replica, and to create an ongoing association between the "
 893                        "source and replica. If 0 is returned, the function "
 894                        "completed successfully and no ConcreteJob instance is "
 895                        "created. If 4096/0x1000 is returned, a ConcreteJob is "
 896                        "started, a reference to which is returned in the Job output "
 897                        "parameter."), 
 898                     ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "4096",
 899                        "4097..32767", "32768..65535" }, 
 900                     Values { "Job Completed with No Error", "Not Supported",
 901                        "Unknown", "Timeout", "Failed", "Invalid Parameter",
 902                        "In Use", "DMTF Reserved",
 903                        "Method Parameters Checked - Job Started", "Method Reserved",
 904 a.dunfey 1.1           "Vendor Specific" }]
 905                 uint32 CreateReplica( 
 906                       [IN, Description (
 907                           "A end user relevant name for the element being created. "
 908                           "If NULL, then a system supplied default name can be "
 909                           "used. The value will be stored in the 'ElementName' "
 910                           "property for the created element.")]
 911                    string ElementName, 
 912                       [IN ( false ), OUT, Description (
 913                           "Reference to the job (may be null if job completed).")]
 914                    CIM_ConcreteJob REF Job, 
 915                       [Required, IN, Description (
 916                           "The source storage object which may be a StorageVolume "
 917                           "or storage object.")]
 918                    CIM_LogicalElement REF SourceElement, 
 919                       [IN ( false ), OUT, Description (
 920                           "Reference to the created target storage element (i.e., "
 921                           "the replica).")]
 922                    CIM_LogicalElement REF TargetElement, 
 923                       [IN, Description (
 924                           "The definition for the StorageSetting to be maintained "
 925 a.dunfey 1.1              "by the target storage object (the replica).")]
 926                    CIM_StorageSetting REF TargetSettingGoal, 
 927                       [IN, Description (
 928                           "The underlying storage for the target element (the "
 929                           "replica) will be drawn from TargetPool if specified, "
 930                           "otherwise the allocation is implementation specific.")]
 931                    CIM_StoragePool REF TargetPool, 
 932                       [IN, Description (
 933                           "CopyType describes the type of copy that will be made. "
 934                           "Values are: \n"
 935                           "Async: Create and maintain an asynchronous copy of the "
 936                           "source. \n"
 937                           "Sync: Create and maintain a synchronized copy of the "
 938                           "source. \n"
 939                           "UnSyncAssoc: Create an unsynchronized copy and maintain "
 940                           "an association to the source. \n"
 941                           "UnSyncUnAssoc: Create unassociated copy of the source "
 942                           "element."), 
 943                        ValueMap { "2", "3", "4", "5", "..", "32768..65535" }, 
 944                        Values { "Async", "Sync", "UnSyncAssoc", "UnSyncUnAssoc",
 945                           "DMTF Reserved", "Vendor Specific" }]
 946 a.dunfey 1.1       uint16 CopyType); 
 947              
 948                    [Description (
 949                        "Modify (or start a job to modify) the synchronization "
 950                        "association between two storage objects. If 0 is returned, "
 951                        "the function completed successfully and no ConcreteJob "
 952                        "instance was created. If 0x1000 is returned, a ConcreteJob "
 953                        "was started and a reference to this Job is returned in the "
 954                        "Job output parameter. A return value of 1 indicates the "
 955                        "method is not supported. All other values indicate some "
 956                        "type of error condition."), 
 957                     ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "0x1000",
 958                        "0x1001..0x7FFF", "0x8000..0xFFFF" }, 
 959                     Values { "Job Completed with No Error", "Not Supported",
 960                        "Unspecified Error", "Timeout", "Failed",
 961                        "Invalid Parameter", "In Use", "DMTF Reserved",
 962                        "Method Parameters Checked - Job Started", "Method Reserved",
 963                        "Vendor Specific" }]
 964                 uint32 ModifySynchronization( 
 965                       [IN, Description (
 966                           "Operation describes the type of modification to be made "
 967 a.dunfey 1.1              "to the replica. Values are: \n"
 968                           "Detach: 'Forget' the synchronization between two storage "
 969                           "objects. Start to treat the objects as independent. \n"
 970                           "Fracture: Suspend the synchronization between two "
 971                           "storage objects. The association and (typically) changes "
 972                           "are remembered to allow a fast resynchronization. This "
 973                           "may be used during a backup cycle to allow one of the "
 974                           "objects to be copied while the other remains in "
 975                           "production. \n"
 976                           "Resync Replica: Re-establish the synchronization of a "
 977                           "replica. This will negate the action of a previous "
 978                           "Fracture operation. \n"
 979                           "Restore from Replica: Renew the contents of the original "
 980                           "storage object from a replica. \n"
 981                           "Prepare: Get the link ready for a Resync operation to "
 982                           "take place. Some implementations will require this "
 983                           "operation to be invoked to keep the Resync operation as "
 984                           "fast as possible. \n"
 985                           "Unprepare: Clear a prepared state if a Prepare is not to "
 986                           "be followed by a Resync operation. \n"
 987                           "Quiesce: Some applications require notification so that "
 988 a.dunfey 1.1              "they can ready the link for an operation. For example "
 989                           "flush any cached data or buffered changes. \n"
 990                           "Unquiesce: Take the link from the quiesced state "
 991                           "(without executing the intended operation. \n"
 992                           "Reset To Sync: Change the CopyType of the association to "
 993                           "Sync (e.g., from the Async CopyType). \n"
 994                           "Reset To Async: Change the CopyType of the association "
 995                           "to Async (e.g., from the Sync CopyType)."), 
 996                        ValueMap { "0","1","2", "3", "4", "5", "6", "7", "8", "9",
 997                           "10", "11", "..", "0x8000..0xFFFF" }, 
 998                        Values { "DMTF Reserved", "DMTF Reserved", "Detach",
 999                           "Fracture", "Resync Replica", "Restore from Replica",
1000                           "Prepare", "Unprepare", "Quiesce", "Unquiesce",
1001                           "Reset To Sync", "Reset To Async", "DMTF Reserved",
1002                           "Vendor Specific" }]
1003                    uint16 Operation, 
1004                       [IN ( false ), OUT, Description (
1005                           "Reference to the job (may be null if the task "
1006                           "completed).")]
1007                    CIM_ConcreteJob REF Job, 
1008                       [IN, Description (
1009 a.dunfey 1.1              "The referenced to the StorageSynchronized association "
1010                           "describing the storage source/replica relationship.")]
1011                    CIM_StorageSynchronized REF Synchronization); 
1012              
1013                    [Description (
1014                        "Create (or start a job to create) a StorageSynchronized "
1015                        "relationship between two existing storage objects. Note "
1016                        "that using the input parameter, CopyType, this function can "
1017                        "be used to to create an ongoing association between the "
1018                        "source and replica. If 0 is returned, the function "
1019                        "completed successfully and no ConcreteJob instance is "
1020                        "created. If 0x1000 is returned, a ConcreteJob is started, a "
1021                        "reference to which is returned in the Job output parameter. "
1022                        "A return value of 1 indicates the method is not supported. "
1023                        "All other values indicate some type of error condition."), 
1024                     ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "0x1000",
1025                        "0x1001..0x7FFF", "0x8000..0xFFFF" }, 
1026                     Values { "Job Completed with No Error", "Not Supported",
1027                        "Unspecified Error", "Timeout", "Failed",
1028                        "Invalid Parameter", "In Use", "DMTF Reserved",
1029                        "Method Parameters Checked - Job Started", "Method Reserved",
1030 a.dunfey 1.1           "Vendor Specific" }]
1031                 uint32 AttachReplica( 
1032                       [IN ( false ), OUT, Description (
1033                           "Reference to the job (may be null if the task "
1034                           "completed).")]
1035                    CIM_ConcreteJob REF Job, 
1036                       [Required, IN, Description (
1037                           "The source storage object which may be a StorageVolume "
1038                           "or other storage object.")]
1039                    CIM_ManagedElement REF SourceElement, 
1040                       [IN, Description (
1041                           "Reference to the target storage element (i.e., the "
1042                           "replica).")]
1043                    CIM_ManagedElement REF TargetElement, 
1044                       [IN, Description (
1045                           "CopyType describes the type of Synchronized relationship "
1046                           "that will be created. Values are: \n"
1047                           "Async: Create and maintain an asynchronous copy of the "
1048                           "source. \n"
1049                           "Sync: Create and maintain a synchronized copy of the "
1050                           "source. \n"
1051 a.dunfey 1.1              "UnSyncAssoc: Create an unsynchronized copy and maintain "
1052                           "an association to the source. \n"
1053                           "UnSyncUnAssoc: Create unassociated copy of the source "
1054                           "element."), 
1055                        ValueMap { "2", "3", "4", "5", "..", "0x8000..0xFFFF" }, 
1056                        Values { "Async", "Sync", "UnSyncAssoc", "UnSyncUnAssoc",
1057                           "DMTF Reserved", "Vendor Specific" }]
1058                    uint16 CopyType); 
1059              };
1060              
1061              // ==================================================================
1062              //  StorageConfigurationCapabilities
1063              // ==================================================================
1064                 [Version ( "2.8.0" ), Description (
1065                     "A subclass of Capabilities that defines the Capabilities of a "
1066                     "StorageConfigurationService. An instance of "
1067                     "StorageConfigurationCapabilities is associated with a "
1068                     "StorageConfigurationService using ElementCapabilities.")]
1069              class CIM_StorageConfigurationCapabilities : CIM_Capabilities {
1070              
1071                    [Description (
1072 a.dunfey 1.1           "Enumeration indicating what operations will be executed as "
1073                        "asynchronous jobs. If an operation is included in both this "
1074                        "and SupportedSynchronousActions then the underlying "
1075                        "implementation is indicating that it may or may not create "
1076                        "a job."), 
1077                     ValueMap { "2", "3", "4", "5", "6", "7", "8", "9", "10" }, 
1078                     Values { "Storage Pool Creation", "Storage Pool Deletion",
1079                        "Storage Pool Modification", "Storage Element Creation",
1080                        "Storage Element Return", "Storage Element Modification",
1081                        "Replica Creation", "Replica Modification",
1082                        "Replica Attachment" }, 
1083                     ModelCorrespondence { 
1084                        "CIM_StorageConfigurationCapabilities.SupportedSynchronousActions" 
1085                        }]
1086                 uint16 SupportedAsynchronousActions[];
1087              
1088                    [Description (
1089                        "Enumeration indicating what operations will be executed "
1090                        "without the creation of a job. If an operation is included "
1091                        "in both this and SupportedAsynchronousActions then the "
1092                        "underlying instrumentation is indicating that it may or may "
1093 a.dunfey 1.1           "not create a job."), 
1094                     ValueMap { "2", "3", "4", "5", "6", "7", "8", "9", "10" }, 
1095                     Values { "Storage Pool Creation", "Storage Pool Deletion",
1096                        "Storage Pool Modification", "Storage Element Creation",
1097                        "Storage Element Return", "Storage Element Modification",
1098                        "Replica Creation", "Replica Modification",
1099                        "Replica Attachment" }, 
1100                     ModelCorrespondence { "CIM_StorageConfigurationCapabilities." 
1101                        "SupportedAsynchronousActions" }]
1102                 uint16 SupportedSynchronousActions[];
1103              
1104                    [Description (
1105                        "Enumeration indicating the type of storage elements that "
1106                        "are supported by the associated "
1107                        "StorageConfigurationService."), 
1108                     ValueMap { "2", "3", "..", "0x8000..0xFFFF" }, 
1109                     Values { "StorageVolume", "StorageExtent", "DMTF Reserved",
1110                        "Vendor Specific" }, 
1111                     ModelCorrespondence { "CIM_StorageConfigurationService." 
1112                        "CreateOrModifyElementFromStoragePool.ElementType" }]
1113                 uint16 SupportedStorageElementTypes[];
1114 a.dunfey 1.1 
1115                    [Description (
1116                        "Enumeration indicating features supported by the "
1117                        "StoragePool methods."), 
1118                     ValueMap { "2", "3", "4", "..", "0x8000..0xFFFF" }, 
1119                     Values { "InExtents", "Single InPool", "Multiple InPools",
1120                        "DMTF Reserved", "Vendor Specific" }, 
1121                     ModelCorrespondence { "CIM_StorageConfigurationService." 
1122                        "CreateOrModifyStoragePool.InPools",
1123                        "CIM_StorageConfigurationService." 
1124                        "CreateOrModifyStoragePool.InExtents" }]
1125                 uint16 SupportedStoragePoolFeatures[];
1126              
1127                    [Description (
1128                        "Enumeration indicating features supported by the Storage "
1129                        "Element methods."), 
1130                     ValueMap { "2", "3", "4", "5", "6", "7", "..",
1131                     "0x8000..0xFFFF" }, 
1132                     Values { "StorageExtent Creation", "StorageVolume Creation",
1133                        "StorageExtent Modification", "StorageVolume Modification",
1134                        "Single InPool", "Multiple InPools", "DMTF Reserved",
1135 a.dunfey 1.1           "Vendor Specific" }, 
1136                     ModelCorrespondence { "CIM_StorageConfigurationService." 
1137                        "CreateOrModifyElementFromStoragePool.ElementType",
1138                        "CIM_StorageConfigurationService." 
1139                        "CreateOrModifyElementFromStoragePool.InPool" }]
1140                 uint16 SupportedStorageElementFeatures[];
1141              
1142                    [Description (
1143                        "SupportedCopyTypes describes the replication capabilities "
1144                        "supported by the associated StorageConfigurationServices. "
1145                        "Values are: \n"
1146                        "Async: asynchronous copies may be created and maintained. \n"
1147                        "Sync: synchronous copies may be created and maintained. \n"
1148                        "UnSyncAssoc: unsynchronized copies may be created and "
1149                        "maintained. \n"
1150                        "UnSyncUnAssoc: a 'straight copy' may be created."), 
1151                     ValueMap { "2", "3", "4", "5", "..", "0x8000..0xFFFF" }, 
1152                     Values { "Async", "Sync", "UnSyncAssoc", "UnSyncUnAssoc",
1153                        "DMTF Reserved", "Vendor Specific" }, 
1154                     ModelCorrespondence { 
1155                        "CIM_StorageConfigurationService.CreateReplica.CopyType" }]
1156 a.dunfey 1.1    uint16 SupportedCopyTypes[];
1157              
1158                    [Description (
1159                        "InitialReplicationState specifies which initial "
1160                        "ReplicationState is supported by a particular provider. "
1161                        "Values are: \n"
1162                        "Initialized: The replication relationship is known and "
1163                        "unsynchronized, but time required to synchronize may be "
1164                        "long. \n"
1165                        "Prepared: The replication relationship is known and "
1166                        "unsynchronized and the time required to synchronize will be "
1167                        "short. \n"
1168                        "Synchronized: The replicas are synchronized."), 
1169                     ValueMap { "2", "3", "4", "..", "0x8000..0xFFFF" }, 
1170                     Values { "Initialized", "Prepared", "Synchronized",
1171                        "DMTF Reserved", "Vendor Specific" }, 
1172                     ModelCorrespondence { 
1173                        "CIM_StorageConfigurationService.AttachReplica",
1174                        "CIM_StorageConfigurationService.CreateReplica" }]
1175                 uint16 InitialReplicationState;
1176              };
1177 a.dunfey 1.1 
1178              // ====================================================================
1179              // StorageSettingWithHints
1180              // ====================================================================
1181                 [Version ( "2.7.1" ), Description (
1182                     "This subclass of StorageSetting allows a client to specify "
1183                     "'hint's for optimization of the volume performance. The effect "
1184                     "of these hints is implementation dependent.")]
1185              class CIM_StorageSettingWithHints : CIM_StorageSetting {
1186              
1187                    [Write, Description (
1188                        "This hint is an indication from a client of the importance "
1189                        "placed on data availability. Values are 0=Don't Care to "
1190                        "10=Very Important."), 
1191                     MinValue ( 0 ), MaxValue ( 10 )]
1192                 uint16 DataAvailabilityHint;
1193              
1194                    [Write, Description (
1195                        "This hint is an indication from a client of the randomness "
1196                        "of accesses. Values are 0=Entirely Sequential to "
1197                        "10=Entirely Random."), 
1198 a.dunfey 1.1        MinValue ( 0 ), MaxValue ( 10 )]
1199                 uint16 AccessRandomnessHint;
1200              
1201                    [Write, Description (
1202                        "This hint is an indication from a client of the direction "
1203                        "of accesses. Values are 0=Entirely Read to 10=Entirely "
1204                        "Write."), 
1205                     MinValue ( 0 ), MaxValue ( 10 )]
1206                 uint16 AccessDirectionHint;
1207              
1208                    [Write, Description (
1209                        "This hint is an indication from a client of the optimal "
1210                        "access sizes (in bytes). Since this property is an array, "
1211                        "several sizes can be specified."), 
1212                     Units ( "Bytes" )]
1213                 uint16 AccessSizeHint[];
1214              
1215                    [Write, Description (
1216                        "This hint is an indication from a client how important "
1217                        "access latency is. Values are 0=Don't Care to 10=Very "
1218                        "Important."), 
1219 a.dunfey 1.1        MinValue ( 0 ), MaxValue ( 10 )]
1220                 uint16 AccessLatencyHint;
1221              
1222                    [Write, Description (
1223                        "This hint is an indication from a client of bandwidth "
1224                        "prioritization. Values are 0=Don't Care to 10=Very "
1225                        "Important."), 
1226                     MinValue ( 0 ), MaxValue ( 10 )]
1227                 uint16 AccessBandwidthWeight;
1228              
1229                    [Write, Description (
1230                        "This hint is an indication of the importance the client "
1231                        "places on the cost of storage. Values are 0=Don't Care to "
1232                        "10=Very Important. A StorageVolume provider might choose to "
1233                        "place data on low cost or high cost drives based on this "
1234                        "parameter."), 
1235                     MinValue ( 0 ), MaxValue ( 10 )]
1236                 uint16 StorageCostHint;
1237              
1238                    [Write, Description (
1239                        "This hint is an indication of the importance placed on "
1240 a.dunfey 1.1           "storage space efficiency by the client. Values are 0=Don't "
1241                        "Care to 10=Very Important. A StorageVolume provider might "
1242                        "choose different RAID levels based on this hint."), 
1243                     MinValue ( 0 ), MaxValue ( 10 )]
1244                 uint16 StorageEfficiencyHint;
1245              };
1246              
1247              
1248              // ===================================================================
1249              // AllocatedFromStoragePool
1250              // ===================================================================
1251                 [Association, Version ( "2.8.0" ), Description (
1252                     "AllocatedFromStoragePool is an association describing how "
1253                     "LogicalElements are allocated from underlying StoragePools. "
1254                     "These elements typically would be subclasses of StorageExtents "
1255                     "or StoragePools.")]
1256              class CIM_AllocatedFromStoragePool : CIM_Dependency {
1257              
1258                    [Override ( "Antecedent" ), Description (
1259                        "The StoragePool.")]
1260                 CIM_StoragePool REF Antecedent;
1261 a.dunfey 1.1 
1262                    [Override ( "Dependent" ), Description (
1263                        "The subsidiary element.")]
1264                 CIM_LogicalElement REF Dependent;
1265              
1266                    [Required, Description (
1267                        "Space consumed from this Pool, in bytes. This value MUST be "
1268                        "maintained so that, relative to the Antecedent StoragePool, "
1269                        "it is possible to compute TotalManagedSpace as "
1270                        "StoragePool.RemainingManagedSpace plus the sum of "
1271                        "SpaceConsumed from all of the AllocatedFromStoragePool "
1272                        "references from the antecedent StoragePool."), 
1273                     Units ( "Bytes" ), 
1274                     ModelCorrespondence { "CIM_StoragePool.TotalManagedSpace",
1275                        "CIM_StoragePool.RemainingManagedSpace" }]
1276                 uint64 SpaceConsumed;
1277              
1278              };
1279              
1280              
1281              // ==================================================================
1282 a.dunfey 1.1 // HostedStoragePool
1283              // ==================================================================
1284                 [Association, Aggregation, Composition, Version ( "2.7.0" ), 
1285                  Description (
1286                     "SystemStoragePool is a specialization of SystemComponent "
1287                     "association that establishes that the StoragePool is defined "
1288                     "in the context of the System.")]
1289              class CIM_HostedStoragePool : CIM_SystemComponent {
1290              
1291                    [Aggregate, Override ( "GroupComponent" ), Min ( 1 ), Max ( 1 ), 
1292                     Description (
1293                        "The parent system in the Association.")]
1294                 CIM_System REF GroupComponent;
1295              
1296                    [Override ( "PartComponent" ), Description (
1297                        "The StoragePool that is a component of a System.")]
1298                 CIM_StoragePool REF PartComponent;
1299              };
1300              
1301              
1302              // ===================================================================
1303 a.dunfey 1.1 // ConfigurationReportingService
1304              // ===================================================================
1305                 [Version ( "2.7.0" ), Description (
1306                     "Service to provide reports on current configuration and "
1307                     "potential for growth. The service may be used in several "
1308                     "circumstances: \n"
1309                     "- To report growth potential (how many can I have) \n"
1310                     "- To report information on objects not directly modeled for "
1311                     "performance or other reasons. \n"
1312                     "It can also report counts of 'things' or counts of 'units'. "
1313                     "For example, the number of disk drives could be reported or "
1314                     "the capacity that they would provide.")]
1315              class CIM_ConfigurationReportingService : CIM_Service {
1316              
1317                    [Description (
1318                        "Returns a list of classes that the given Managed Element "
1319                        "supports or has installed."), 
1320                     ValueMap { "0", "1", "2", "3", "4", "..", "32768..65535" }, 
1321                     Values { "Success", "Not Supported", "Unknown", "Timeout",
1322                        "Failed", "DMTF Reserved", "Vendor Specific" }]
1323                 uint32 GetClassTypes( 
1324 a.dunfey 1.1          [IN, Description (
1325                           "The type of inquiry to be performed."), 
1326                        ValueMap { "2", "3" }, 
1327                        Values { "Supports", "Installed" }]
1328                    uint16 InquiryType, 
1329                       [IN, Description (
1330                           "False : Only report on elements directly contained "
1331                           "in/attached to the given ManagedElement. \n"
1332                           "True : Report on all objects contained in/attached to "
1333                           "the given ManagedElement.")]
1334                    boolean Recursive, 
1335                       [IN, Description (
1336                           "The target of query, for example a rack or a chassis.")]
1337                    CIM_ManagedElement REF Target, 
1338                       [IN ( false ), OUT, Description (
1339                           "Array containing the class names (typically the leaf "
1340                           "classes) that the given ManagedElement can support or "
1341                           "has installed.")]
1342                    string ClassTypes[]); 
1343              
1344                    [Description (
1345 a.dunfey 1.1           "Returns a list of UnitTypes that are installed for a given "
1346                        "ClassType on a given ManagedElement."), 
1347                     ValueMap { "0", "1", "2", "3", "4", "..", "32768..65535" }, 
1348                     Values { "Success", "Not Supported", "Unknown", "Timeout",
1349                        "Failed", "DMTF Reserved", "Vendor Specific" }]
1350                 uint32 GetUnitTypes( 
1351                       [IN, Description (
1352                           "The type of inquiry to be performed."), 
1353                        ValueMap { "2", "3" }, 
1354                        Values { "Supported", "Installed" }]
1355                    uint16 InquiryType, 
1356                       [IN, Description (
1357                           "False : Only report on elements directly contained "
1358                           "in/attached to the given ManagedElement. \n"
1359                           "True : Report on all objects contained in/attached to "
1360                           "the given ManagedElement.")]
1361                    boolean Recursive, 
1362                       [IN, Description (
1363                           "The target of query, for example a rack or a chassis.")]
1364                    CIM_ManagedElement REF Target, 
1365                       [IN, Description (
1366 a.dunfey 1.1              "The ClassType for the query. This should be a entry "
1367                           "returned in the GetClassTypes.ClassTypes property.")]
1368                    string ClassType, 
1369                       [IN ( false ), OUT, Description (
1370                           "A list of supported UnitTypes."), 
1371                        ValueMap { "2", "3", "4", "5", "6", "7", "8", "9", "10",
1372                           "..", "32768..65535" }, 
1373                        Values { "None", "Front Side", "Back Side", "Contained",
1374                           "Connected", "I/O", "Memory", "StorageMediaLocation",
1375                           "Megabytes", "DMTF Reserved", "Vendor Specific" }, 
1376                        ModelCorrespondence { "CIM_ConfigurationReportingService." 
1377                           "ReportCapacity(UnitType)" }]
1378                    uint16 UnitTypes[]); 
1379              
1380                    [Description (
1381                        "Returns the maximum number supported or the number of "
1382                        "currently installed units for the given UnitType, for a "
1383                        "given ClassType on a given ManagedElement."), 
1384                     ValueMap { "0", "1", "2", "3", "4", "..", "32768..65535" }, 
1385                     Values { "Success", "Not Supported", "Unknown", "Timeout",
1386                        "Failed", "DMTF Reserved", "Vendor Specific" }]
1387 a.dunfey 1.1    uint32 ReportCapacity( 
1388                       [IN, Description (
1389                           "The type of inquiry to be performed."), 
1390                        ValueMap { "2", "3" }, 
1391                        Values { "Supported", "Installed" }]
1392                    uint16 InquiryType, 
1393                       [IN, Description (
1394                           "False : Only report on elements directly contained "
1395                           "in/attached to the given ManagedElement. \n"
1396                           "True : Report on all objects contained in/attached to "
1397                           "the given ManagedElement.")]
1398                    boolean Recursive, 
1399                       [IN, Description (
1400                           "The target of query, for example a rack or a chassis.")]
1401                    CIM_ManagedElement REF Target, 
1402                       [IN, Description (
1403                           "The ClassType for the query. This should be a entry "
1404                           "returned in the GetClassTypes.ClassTypes property.")]
1405                    string ClassType, 
1406                       [IN, Description (
1407                           "The UnitType for the query."), 
1408 a.dunfey 1.1           ValueMap { "2", "3", "4", "5", "6", "7", "8", "9", "10",
1409                           "..", "32768..65535" }, 
1410                        Values { "None", "Front Side", "Back Side", "Contained",
1411                           "Connected", "I/O", "Memory", "StorageMediaLocation",
1412                           "Megabytes", "DMTF Reserved", "Vendor Specific" }, 
1413                        ModelCorrespondence { "CIM_ConfigurationReportingService." 
1414                           "GetUnitTypes(UnitTypes)" }]
1415                    uint16 UnitType, 
1416                       [IN ( false ), OUT, Description (
1417                           "The maximum number of supported or the number of "
1418                           "currently installed units.")]
1419                    uint64 NumberOfUnits); 
1420              };
1421              
1422              
1423              // ===================================================================
1424              // end of file
1425              // ===================================================================

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2