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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2