# Class CIM_StorageConfigurationService
extends CIM_Service

This service allows the active management of a Storage Server. It allows jobs to be started for the creation, modification and deletion of storage objects (StoragePools, StorageVolumes and LogicalDisks).

### Table of Contents
Hierarchy
Direct Known Subclasses
Class Qualifiers
Class Properties
Class Methods

## Class Hierarchy

CIM_ManagedElement
|
+--CIM_ManagedSystemElement
|
+--CIM_LogicalElement
|
+--CIM_EnabledLogicalElement
|
+--CIM_Service
|
+--CIM_StorageConfigurationService

## Direct Known Subclasses

## Class Qualifiers

Name | Data Type | Value
--- | --- | ---
Description | string | This service allows the active management of a Storage Server. It allows jobs to be started for the creation, modification and deletion of storage objects (StoragePools, StorageVolumes and LogicalDisks).
UMLPackagePath | string | CIM::Device::StorageServices
Version | string | 2.11.0

## Class Properties

### Inherited Properties

Name | Data Type | Class Origin
--- | --- | ---
Caption | string | CIM_ManagedElement
CommunicationStatus | uint16 | CIM_ManagedSystemElement
CreationClassName | string | CIM_Service
Description | string | CIM_ManagedElement
DetailedStatus | uint16 | CIM_ManagedSystemElement
ElementName | string | CIM_ManagedElement
EnabledDefault | uint16 | CIM_EnabledLogicalElement
EnabledState | uint16 | CIM_EnabledLogicalElement
HealthState | uint16 | CIM_ManagedSystemElement
InstallDate | datetime | CIM_ManagedSystemElement
InstanceID | string | CIM_ManagedElement
Name | string | CIM_Service
OperatingStatus | uint16 | CIM_ManagedSystemElement
OtherEnabledState | string | CIM_EnabledLogicalElement
PrimaryOwnerContact | string | CIM_Service
PrimaryOwnerName | string | CIM_Service
PrimaryStatus | uint16 | CIM_ManagedSystemElement
RequestedState | uint16 | CIM_EnabledLogicalElement
Started | boolean | CIM_Service
StartMode | string | CIM_Service
Status | string | CIM_ManagedSystemElement
SystemCreationClassName | string | CIM_Service
SystemName | string | CIM_Service
TimeOfLastStateChange | datetime | CIM_EnabledLogicalElement
TransitioningToState | uint16 | CIM_EnabledLogicalElement
AvailableRequestedStates | uint16[] | CIM_EnabledLogicalElement
OperationalStatus | uint16[] | CIM_ManagedSystemElement
StatusDescriptions | string[] | CIM_ManagedSystemElement

## Class Methods

### Local Class Methods

#### CreateOrModifyStoragePool (uint32)

#### Method Qualifiers (CreateOrModifyStoragePool)

Name | Data Type | Value
--- | --- | ---
Description | string | Starts a job to create (or modify) a StoragePool. The StoragePool will be (or must be) scoped to the same System as this Service. One of the parameters for this method is Size. As an input parameter, Size specifies the desired size of the pool. As an output parameter, it specifies the size achieved. Space is taken from either or both of the specified input StoragePools and StorageExtents (InPools and InExtents). The capability requirements that the Pool must support are defined using the Goal parameter. If the requested pool size cannot be created, no action will be taken, the Return Value will be 4097/0x1001, and the output value of Size will be set to the nearest possible size. If 0 is returned, then the task completed successfully and the use of ConcreteJob was not required. If the task will take some time to complete, a ConcreteJob will be created and its reference returned in the output parameter Job.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, .., 4096, 4097, 4098..32767, 32768..65535
Values | string | Job Completed with No Error, Not Supported, Unknown, Timeout, Failed, Invalid Parameter, In Use, DMTF Reserved, Method Parameters Checked - Job Started, Size Not Supported, Method Reserved, Vendor Specific

#### Method Parameters (CreateOrModifyStoragePool)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
ElementName | string
Description | string | A end user relevant name for the pool being created. If NULL, then a system supplied default name can be used. The value will be stored in the 'ElementName' property for the created pool. If not NULL, this parameter will supply a new name when modifying an existing pool.
IN | boolean | true
Size | uint64
Description | string | As an input parameter this specifies the desired pool size in bytes. As an output parameter this specifies the size achieved.
IN | boolean | true
OUT | boolean | true
Units | string | Bytes
InExtents | string[]
Description | string | Array of strings containing representations of references to CIM_StorageExtent instances, that are used to create the Pool or modify the source extents.
IN | boolean | true
InPools | string[]
Description | string | Array of strings containing representations of references to CIM_StoragePool instances, that are used to create the Pool or modify the source pools.
IN | boolean | true
Goal | REF CIM_StorageSetting
Description | string | Reference to an instance of StorageSetting that defines the desired capabilities of the StoragePool. If set to a null value, the default configuration from the source pool will be used. If not NULL, this parameter will supply a new Goal setting when modifying an existing pool.
IN | boolean | true
Job | REF CIM_ConcreteJob
Description | string | Reference to the job (may be null if job completed).
IN | boolean | false
OUT | boolean | true
Pool | REF CIM_StoragePool
Description | string | As an input parameter: if null, creates a new StoragePool. If not null, modifies the referenced Pool. When returned, it is a reference to the resulting StoragePool.
IN | boolean | true
OUT | boolean | true

#### CreateOrModifyElementFromStoragePool (uint32)

#### Method Qualifiers (CreateOrModifyElementFromStoragePool)

Name | Data Type | Value
--- | --- | ---
Description | string | Start a job to create (or modify) a specified element (for example a StorageVolume or StorageExtent) from a StoragePool. One of the parameters for this method is Size. As an input parameter, Size specifies the desired size of the element. As an output parameter, it specifies the size achieved. Space is taken from the input StoragePool. The desired settings for the element are specified by the Goal parameter. If the requested size cannot be created, no action will be taken, and the Return Value will be 4097/0x1001. Also, the output value of Size is set to the nearest possible size. If 0 is returned, the function completed successfully and no ConcreteJob instance was required. If 4096/0x1000 is returned, a ConcreteJob will be started to create the element. The Job's reference will be returned in the output parameter Job.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, .., 4096, 4097, 4098..32767, 32768..65535
Values | string | Job Completed with No Error, Not Supported, Unknown, Timeout, Failed, Invalid Parameter, In Use, DMTF Reserved, Method Parameters Checked - Job Started, Size Not Supported, Method Reserved, Vendor Specific

#### Method Parameters (CreateOrModifyElementFromStoragePool)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
ElementName | string
Description | string | A end user relevant name for the element being created. If NULL, then a system supplied default name can be used. The value will be stored in the 'ElementName' property for the created element. If not NULL, this parameter will supply a new name when modifying an existing element.
IN | boolean | true
ElementType | uint16
Description | string | Enumeration indicating the type of element being created or modified. If the input parameter TheElement is specified when the operation is a 'modify', this type value must match the type of that instance.
IN | boolean | true
ValueMap | string | 0, 1, 2, 3, 4, .., 32768..65535
Values | string | Unknown, Reserved, StorageVolume, StorageExtent, LogicalDisk, DMTF Reserved, Vendor Specific
Size | uint64
Description | string | As an input parameter Size specifies the desired size. If not NULL, this parameter will supply a new size when modifying an existing element. As an output parameter Size specifies the size achieved.
IN | boolean | true
OUT | boolean | true
Units | string | Bytes
Goal | REF CIM_ManagedElement
Description | string | The requirements for the element to maintain. If set to a null value, the default configuration from the source pool will be used. This parameter should be a reference to a Setting or Profile appropriate to the element being created. If not NULL, this parameter will supply a new Goal when modifying an existing element.
IN | boolean | true
InPool | REF CIM_StoragePool
Description | string | The Pool from which to create the element. This parameter must be set to null if the input parameter TheElement is specified (in the case of a 'modify' operation).
IN | boolean | true
Job | REF CIM_ConcreteJob
Description | string | Reference to the job (may be null if job completed).
IN | boolean | false
OUT | boolean | true
TheElement | REF CIM_LogicalElement
Description | string | As an input parameter: if null, creates a new element. If not null, then the method modifies the specified element. As an output parameter, it is a reference to the resulting element.
IN | boolean | true
OUT | boolean | true

#### DeleteStoragePool (uint32)

#### Method Qualifiers (DeleteStoragePool)

Name | Data Type | Value
--- | --- | ---
Description | string | Start a job to delete a StoragePool. The freed space is returned source StoragePools (indicated by AllocatedFrom StoragePool) or back to underlying storage extents. If 0 is returned, the function completed successfully, and no ConcreteJob was required. If 4096/0x1000 is returned, a ConcreteJob will be started to delete the StoragePool. A reference to the Job is returned in the Job parameter.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, .., 4096, 4097..32767, 32768..65535
Values | string | Job Completed with No Error, Not Supported, Unknown, Timeout, Failed, Invalid Parameter, In Use, DMTF Reserved, Method Parameters Checked - Job Started, Method Reserved, Vendor Specific

#### Method Parameters (DeleteStoragePool)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
Job | REF CIM_ConcreteJob
Description | string | Reference to the job (may be null if job completed).
IN | boolean | false
OUT | boolean | true
Pool | REF CIM_StoragePool
Description | string | Reference to the pool to delete.
IN | boolean | true

#### ReturnToStoragePool (uint32)

#### Method Qualifiers (ReturnToStoragePool)

Name | Data Type | Value
--- | --- | ---
Description | string | Start a job to delete an element previously created from a StoragePool. The freed space is returned to the source StoragePool. If 0 is returned, the function completed successfully and no ConcreteJob was required. If 4096/0x1000 is returned, a ConcreteJob will be started to delete the element. A reference to the Job is returned in the Job parameter.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, .., 4096, 4097..32767, 32768..65535
Values | string | Job Completed with No Error, Not Supported, Unknown, Timeout, Failed, Invalid Parameter, In Use, DMTF Reserved, Method Parameters Checked - Job Started, Method Reserved, Vendor Specific

#### Method Parameters (ReturnToStoragePool)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
Job | REF CIM_ConcreteJob
Description | string | Reference to the job (may be null if job completed).
IN | boolean | false
OUT | boolean | true
TheElement | REF CIM_LogicalElement
Description | string | Reference to the element to return to the StoragePool.
IN | boolean | true

#### CreateReplica (uint32)

#### Method Qualifiers (CreateReplica)

Name | Data Type | Value
--- | --- | ---
Description | string | Start a job to create a new storage object which is a replica of the specified source storage object. (SourceElement). Note that using the input paramter, CopyType, this function can be used to instantiate the replica, and to create an ongoing association between the source and replica. If 0 is returned, the function completed successfully and no ConcreteJob instance is created. If 4096/0x1000 is returned, a ConcreteJob is started, a reference to which is returned in the Job output parameter.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, .., 4096, 4097..32767, 32768..65535
Values | string | Job Completed with No Error, Not Supported, Unknown, Timeout, Failed, Invalid Parameter, In Use, DMTF Reserved, Method Parameters Checked - Job Started, Method Reserved, Vendor Specific

#### Method Parameters (CreateReplica)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
CopyType | uint16
Description | string | CopyType describes the type of copy that will be made. Values are: Async: Create and maintain an asynchronous copy of the source. Sync: Create and maintain a synchronized copy of the source. UnSyncAssoc: Create an unsynchronized copy and maintain an association to the source. UnSyncUnAssoc: Create unassociated copy of the source element.
IN | boolean | true
ValueMap | string | 2, 3, 4, 5, .., 32768..65535
Values | string | Async, Sync, UnSyncAssoc, UnSyncUnAssoc, DMTF Reserved, Vendor Specific
ElementName | string
Description | string | A end user relevant name for the element being created. If NULL, then a system supplied default name can be used. The value will be stored in the 'ElementName' property for the created element.
IN | boolean | true
Job | REF CIM_ConcreteJob
Description | string | Reference to the job (may be null if job completed).
IN | boolean | false
OUT | boolean | true
SourceElement | REF CIM_LogicalElement
Description | string | The source storage object which may be a StorageVolume or storage object.
IN | boolean | true
Required | boolean | true
TargetElement | REF CIM_LogicalElement
Description | string | Reference to the created target storage element (i.e., the replica).
IN | boolean | false
OUT | boolean | true
TargetPool | REF CIM_StoragePool
Description | string | The underlying storage for the target element (the replica) will be drawn from TargetPool if specified, otherwise the allocation is implementation specific.
IN | boolean | true
TargetSettingGoal | REF CIM_StorageSetting
Description | string | The definition for the StorageSetting to be maintained by the target storage object (the replica).
IN | boolean | true

#### ModifySynchronization (uint32)

#### Method Qualifiers (ModifySynchronization)

Name | Data Type | Value
--- | --- | ---
Description | string | Modify (or start a job to modify) the synchronization association between two storage objects. If 0 is returned, the function completed successfully and no ConcreteJob instance was created. If 0x1000 is returned, a ConcreteJob was started and a reference to this Job is returned in the Job output parameter. A return value of 1 indicates the method is not supported. All other values indicate some type of error condition.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, .., 0x1000, 0x1001..0x7FFF, 0x8000..0xFFFF
Values | string | Job Completed with No Error, Not Supported, Unspecified Error, Timeout, Failed, Invalid Parameter, In Use, DMTF Reserved, Method Parameters Checked - Job Started, Method Reserved, Vendor Specific

#### Method Parameters (ModifySynchronization)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
Operation | uint16
Description | string | Operation describes the type of modification to be made to the replica. Values are: Detach: 'Forget' the synchronization between two storage objects. Start to treat the objects as independent. Fracture: Suspend the synchronization between two storage objects using Sync or Async replication. The association and (typically) changes are remembered to allow a fast resynchronization. This may be used during a backup cycle to allow one of the objects to be copied while the other remains in production. Resync Replica: Re-establish the synchronization of a Sync or Async replication. This will negate the action of a previous Fracture operation. Recreate a Point In Time image for an UnSyncAssoc replication. Restore from Replica: Renew the contents of the original storage object from a replica. Prepare: Get the link ready for a Resync operation to take place. Some implementations will require this operation to be invoked to keep the Resync operation as fast as possible. May start the copy engine. Unprepare: Clear a prepared state if a Prepare is not to be followed by a Resync operation. Quiesce: Some applications require notification so that they can ready the link for an operation. For example flush any cached data or buffered changes. The copy engine is stopped for UnSyncAssoc replications. Unquiesce: Take the link from the quiesced state (without executing the intended operation. Start Copy: initiate a full background copy of the source to the UnSyncAssoc replica. Replica enters Frozen state when copy operation is completed. Stop Copy: stop the background copy previously started. Reset To Sync: Change the CopyType of the association to Sync (e.g., from the Async CopyType). Reset To Async: Change the CopyType of the association to Async (e.g., from the Sync CopyType).
IN | boolean | true
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, .., 0x8000..0xFFFF
Values | string | DMTF Reserved, DMTF Reserved, Detach, Fracture, Resync Replica, Restore from Replica, Prepare, Unprepare, Quiesce, Unquiesce, Reset To Sync, Reset To Async, Start Copy, Stop Copy, DMTF Reserved, Vendor Specific
Job | REF CIM_ConcreteJob
Description | string | Reference to the job (may be null if the task completed).
IN | boolean | false
OUT | boolean | true
Synchronization | REF CIM_StorageSynchronized
Description | string | The referenced to the StorageSynchronized association describing the storage source/replica relationship.
IN | boolean | true

#### AttachReplica (uint32)

#### Method Qualifiers (AttachReplica)

Name | Data Type | Value
--- | --- | ---
Description | string | Create (or start a job to create) a StorageSynchronized relationship between two existing storage objects. Note that using the input parameter, CopyType, this function can be used to to create an ongoing association between the source and replica. If 0 is returned, the function completed successfully and no ConcreteJob instance is created. If 0x1000 is returned, a ConcreteJob is started, a reference to which is returned in the Job output parameter. A return value of 1 indicates the method is not supported. All other values indicate some type of error condition.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, .., 0x1000, 0x1001..0x7FFF, 0x8000..0xFFFF
Values | string | Job Completed with No Error, Not Supported, Unspecified Error, Timeout, Failed, Invalid Parameter, In Use, DMTF Reserved, Method Parameters Checked - Job Started, Method Reserved, Vendor Specific

#### Method Parameters (AttachReplica)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
CopyType | uint16
Description | string | CopyType describes the type of Synchronized relationship that will be created. Values are: Async: Create and maintain an asynchronous copy of the source. Sync: Create and maintain a synchronized copy of the source. UnSyncAssoc: Create an unsynchronized copy and maintain an association to the source. UnSyncUnAssoc: Create unassociated copy of the source element.
IN | boolean | true
ValueMap | string | 2, 3, 4, 5, .., 0x8000..0xFFFF
Values | string | Async, Sync, UnSyncAssoc, UnSyncUnAssoc, DMTF Reserved, Vendor Specific
Job | REF CIM_ConcreteJob
Description | string | Reference to the job (may be null if the task completed).
IN | boolean | false
OUT | boolean | true
SourceElement | REF CIM_ManagedElement
Description | string | The source storage object which may be a StorageVolume or other storage object.
IN | boolean | true
Required | boolean | true
TargetElement | REF CIM_ManagedElement
Description | string | Reference to the target storage element (i.e., the replica).
IN | boolean | true

#### CreateOrModifyElementFromElements (uint32)

#### Method Qualifiers (CreateOrModifyElementFromElements)

Name | Data Type | Value
--- | --- | ---
Description | string | Start a job to create (or modify) a specified storage element from specified input StorageExtents. The created or modified storage element can be a StorageExtent, StorageVolume, LogicalDisk, or StoragePool. An input list of InElements must be specified. The GetAvailableExtents method can be used to get a list of valid extents that can be used to achieve a desired goal. Validity of the extents is determined by the implementation. As an input parameter, Size specifies the desired size of the element. As an output parameter, it specifies the size achieved. Space is taken from the input InElements. The desired Settings for the element are specified by the Goal parameter. If the size of Extents passed is less than the size requested, then the capacity is drawn from the extents in the order, left to right, that the Extents were specified. The partial consumption of an Extent is represented by an Extent for the capacity used and an Extent for the capacity not used. If the Size is NULL, then a configuration using all Extents passed will be attempted. If the requested size cannot be created, no action will be taken, and the Return Value will be 4097/0x1001. Also, the output value of Size is set to the nearest possible size. If 0 is returned, the function completed successfully and no ConcreteJob instance was required. If 4096/0x1000 is returned, a ConcreteJob will be started to create the element. The Job's reference will be returned in the output parameter Job.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, .., 4096, 4097, 4098..32767, 32768..65535
Values | string | Completed with No Error, Not Supported, Unknown, Timeout, Failed, Invalid Parameter, In Use, DMTF Reserved, Method Parameters Checked - Job Started, Size Not Supported, Method Reserved, Vendor Specific

#### Method Parameters (CreateOrModifyElementFromElements)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
ElementName | string
Description | string | A end user relevant name for the element being created. If NULL, then a system-supplied default name can be used. The value will be stored in the 'ElementName' property for the created element. If not NULL, this parameter will supply a new name when modifying an existing element.
IN | boolean | true
ElementType | uint16
Description | string | Enumeration indicating the type of element being created or modified. If the input parameter TheElement is specified when the operation is a 'modify', this type value must match the type of that instance. The actual CIM class of the created TheElement can be vendor-specific, but it must be a derived class of the appropriate CIM class -- i.e., CIM_StorageVolume, CIM_StorageExtent, CIM_LogicalDisk, or CIM_StoragePool.
IN | boolean | true
Required | boolean | true
ValueMap | string | 0, 1, 2, 3, 4, 5, .., 32768..65535
Values | string | Unknown, Reserved, Storage Volume, Storage Extent, Storage Pool, Logical Disk, DMTF Reserved, Vendor Specific
Size | uint64
Description | string | As an input parameter Size specifies the desired size. If not NULL, this parameter will supply a new size when modifying an existing element. As an output parameter Size specifies the size achieved.
IN | boolean | true
OUT | boolean | true
Units | string | Bytes
InElements | CIM_StorageExtent[]
Description | string | Array of references to storage element instances that are used to create or modify TheElement.
IN | boolean | true
Required | boolean | true
Goal | REF CIM_ManagedElement
Description | string | The requirements for the element to maintain. If set to a null value, the default configuration associated with the Service will be used. This parameter should be a reference to a Setting, SettingData, or Profile appropriate to the element being created. If not NULL, this parameter will supply a new Goal when modifying an existing element.
IN | boolean | true
Job | REF CIM_ConcreteJob
Description | string | Reference to the job (may be null if job completed).
IN | boolean | false
OUT | boolean | true
TheElement | REF CIM_LogicalElement
Description | string | As an input parameter: if null, creates a new element. If not null, then the method modifies the specified element. As an output parameter, it is a reference to the resulting element.
IN | boolean | true
OUT | boolean | true

### Inherited Class Methods

Name | Return Type | Class Origin
--- | --- | ---
RequestStateChange | uint32 | CIM_EnabledLogicalElement
StartService | uint32 | CIM_Service
StopService | uint32 | CIM_Service