# Class CIM_StorageElementCompositionService
extends CIM_Service

Supplies the methods used to create and modify composite elements.

### 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_StorageElementCompositionService

## Direct Known Subclasses

## Class Qualifiers

Name | Data Type | Value
--- | --- | ---
Description | string | Supplies the methods used to create and modify composite elements.
UMLPackagePath | string | CIM::Device::StorageServices
Version | string | 2.49.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
Generation | uint64 | CIM_ManagedElement
HealthState | uint16 | CIM_ManagedSystemElement
InstallDate | datetime | CIM_ManagedSystemElement
InstanceID | string | CIM_ManagedElement
LoSID | string | CIM_Service
LoSOrgID | string | CIM_Service
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

#### CreateOrModifyCompositeElement (uint32)

#### Method Qualifiers (CreateOrModifyCompositeElement)

Name | Data Type | Value
--- | --- | ---
Description | string | Creates (or modifies) a composite element. Note that only like elements can be combined.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, .., 4096, 4097, 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, Vendor Reserved

#### Method Parameters (CreateOrModifyCompositeElement)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
CompositeType | uint16
Description | string | Type of composite element to create. Possible values are Concatenate, Stripe, Concatenate+Stripe, Vendor specific.
ValueMap | string | 2, 3, 4, .., 32768..65535
Values | string | Concatenate elements, Stripe elements, Concatenate and stripe elements, DMTF Reserved, Vendor Reserved
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.
ElementSource | uint16
Description | string | Tell the instrumentation where to get the elements. Only applies when Size is specified and not InElements. Otherwise it shall be NULL. Possible values are: 1. Use existing elements only 2. Create new elements only 3. Can use existing or create new or both 4. Instrumentation decides If NULL, the instrumentation will decide.
ValueMap | string | 1, 2, 3, 4, .., 0x8000..0xFFFF
Values | string | Use existing elements only, Create new elements only, Can use existing or create new or both, Instrumentation decides, DMTF Reserved, Vendor Specific
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.
ValueMap | string | 0, 2, 3, .., 32768..65535
Values | string | Unknown, StorageVolume, LogicalDisk, DMTF Reserved, Vendor Reserved
Size | uint64
Description | string | As an input parameter Size specifies the desired size. If NULL, then InElements shall be supplied. If not NULL, this parameter will supply a new size when modifying an existing element. As an output parameter Size specifies the size achieved.
OUT | boolean | true
PUNIT | string | byte
InElements | CIM_StorageExtent[]
Description | string | The elements from which to create the composite element. This parameter shall be NULL if Size is supplied. Once the elements are combined, they will be removed from the model and replaced with a single element. For some instrumentation, this may be one of the InElements, so in effect, all but one are removed.
Goal | REF CIM_ManagedElement
Description | string | The QoS requirements for the composite element to maintain. If NULL, then the QoS setting associated to RepresentativeElement will be used for the QoS goal of the composite. If both Goal and RepresentativeElement are null, the instrumentation selects an appropriate Goal from the InElements.
Job | REF CIM_ConcreteJob
Description | string | Reference to the job - may be null if job completed.
IN | boolean | false
OUT | boolean | true
RepresentativeElement | REF CIM_StorageExtent
Description | string | The instrumentation will use this parameter to determine the QoS goal of the composite. It will use this parameter + Size or InElements to determine the elements used to construct the composite. This parameter may be NULL. If both Goal and RepresentativeElement are null, the instrumentation selects an appropriate Goal from the InElements.
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.
OUT | boolean | true

#### ReturnElementToElements (uint32)

#### Method Qualifiers (ReturnElementToElements)

Name | Data Type | Value
--- | --- | ---
Description | string | Dissolves a composite into its constituent elements.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, .., 4096, 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, Vendor Reserved

#### Method Parameters (ReturnElementToElements)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
OutElements | CIM_StorageExtent[]
Description | string | The elements the extent was dissolved into.
OUT | 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 | The composite element to dissolve. Possible element types are StorageVolume and LogicalDisk.

#### RemoveElementsFromElement (uint32)

#### Method Qualifiers (RemoveElementsFromElement)

Name | Data Type | Value
--- | --- | ---
Description | string | Removes one or more constituent elements from a composite volume. Note, removing a constituent element from a composite element may impact the data stored on the remaining constituent elements (see capabilities). Removing all constituent members is the same as invoking ReturnElementToElements.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, .., 4096, 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, Vendor Reserved

#### Method Parameters (RemoveElementsFromElement)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
InElements | CIM_LogicalElement[]
Description | string | The elements to remove.
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 | The composite element to affect. Possible element types are StorageVolume and LogicalDisk.

#### GetAvailableElements (uint32)

#### Method Qualifiers (GetAvailableElements)

Name | Data Type | Value
--- | --- | ---
Description | string | This method queries the set of pools passed in and returns a set of volumes or logical disks that can be composed together based on the specified goal and element passed in. Since there are usually complicated vendor-specific rules for creating these composite volumes, using the representative element can supply more vendor-specific information than would be in a interoperable setting. The client can then use some or all of this list in a call to CreateOrModifyCompositeElement().
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, .., 4096, 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, Vendor Reserved

#### Method Parameters (GetAvailableElements)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
ElementType | uint16
Description | string | Enumeration indicating the type of element being created or modified.
ValueMap | string | 0, 2, 3, .., 32768..65535
Values | string | Unknown, StorageVolume, LogicalDisk, DMTF Reserved, Vendor Reserved
Candidates | CIM_StorageExtent[]
Description | string | The elements that can be used to create the composite element. These will be an array of references to StorageVolumes or LogicalDisks.
OUT | boolean | true
InPools | CIM_StoragePool[]
Description | string | A list of pools to draw the candidate elements from.
Goal | REF CIM_StorageSetting
Description | string | The requirements for the element to maintain. This parameter should be a reference to a Setting or Profile appropriate to the element being created. .
Job | REF CIM_ConcreteJob
Description | string | Reference to the job (may be null if job completed).
IN | boolean | false
OUT | boolean | true
RepresentativeElement | REF CIM_StorageExtent
Description | string | Serves as a guide to help the instrumentation determine which elements to return. It must be a member of one of the pools passed in. This may be NULL.

#### GetCompositeElements (uint32)

#### Method Qualifiers (GetCompositeElements)

Name | Data Type | Value
--- | --- | ---
Description | string | Determines the component elements of a composite element.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, .., 4096, 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, Vendor Reserved

#### Method Parameters (GetCompositeElements)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
RequestType | uint16
Description | string | Enumeration indicating the type of elements to return. Immediate: Immediate children of TheElement. Primordial: Dependent storage extents of TheElement at the lowest extent hierarchy.
ValueMap | string | 0, 2, 3, .., 32768..65535
Values | string | Unknown, Immediate, Primordial, DMTF Reserved, Vendor Reserved
OutElementTypes | uint16[]
Description | string | A parallel array to OutElements array containing: "Member of Stripe Set" or "Member of Concatenation".
OUT | boolean | true
ValueMap | string | 0, 2, 3, .., 32768..65535
Values | string | Unknown, Member of Stripe Set, Member of Concatenation, DMTF Reserved, Vendor Reserved
OutElements | CIM_StorageExtent[]
Description | string | The elements that comprise the composite.
OUT | 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 | The composite element to query.

#### GetSupportedStripeLengths (uint32)

#### Method Qualifiers (GetSupportedStripeLengths)

Name | Data Type | Value
--- | --- | ---
Description | string | This method returns the list of possible stripe lengths which can be used in the property StorageSetting.ExtentStripeLength supplied, as the Goal, to the CreateOrModifyCompositeElement method. Note that different implementations may support either the GetSupportedStripeLengths or the GetSupportedStripeLengthRange method.
ValueMap | string | 0, 1, 2, 3, .., 32768..65535
Values | string | Method Completed with no errors, Method Not Supported, ElementType not supported, Use GetSupportedStripeLengthRange instead, DMTF Reserved, Vendor Reserved

#### Method Parameters (GetSupportedStripeLengths)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
ElementType | uint16
Description | string | Type of element.
ValueMap | string | 0, 2, 3, .., 32768..65535
Values | string | Unknown, StorageVolume, LogicalDisk, DMTF Reserved, Vendor Reserved
StripeLengths | uint64[]
Description | string | List of supported stripe lengths.
IN | boolean | false
OUT | boolean | true
PUNIT | string | count

#### GetSupportedStripeLengthRange (uint32)

#### Method Qualifiers (GetSupportedStripeLengthRange)

Name | Data Type | Value
--- | --- | ---
Description | string | For systems that support a range of stripe lengths for composite volumes, this method can be used to retrieve the range of possible stripe lengths which can be used in the property StorageSetting.ExtentStripeLength supplied, as the Goal, to the CreateOrModifyCompositeElement method. Note that different implementations may support either the GetSupportedStripeLengths or the GetSupportedStripeLengthRange method. If the system only supports discrete values, then the return value will be set to 3.
ValueMap | string | 0, 1, 2, 3, .., 32768..65535
Values | string | Method Completed with no errors, Method Not Supported, ElementType not supported, Use GetSupportedStripeLengths instead, DMTF Reserved, Vendor Reserved

#### Method Parameters (GetSupportedStripeLengthRange)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
ElementType | uint16
Description | string | Type of element.
ValueMap | string | 0, 2, 3, .., 32768..65535
Values | string | Unknown, StorageVolume, LogicalDisk, DMTF Reserved, Vendor Reserved
MaximumStripeLength | uint64
Description | string | Maximum StripeLength for a composite element.
IN | boolean | false
OUT | boolean | true
MinimumStripeLength | uint64
Description | string | Minimum StripeLength for a composite element.
IN | boolean | false
OUT | boolean | true
StripeLengthDivisor | uint64
Description | string | Composite elements stripe length must be a multiple of this value.
IN | boolean | false
OUT | boolean | true

#### GetSupportedStripeDepths (uint32)

#### Method Qualifiers (GetSupportedStripeDepths)

Name | Data Type | Value
--- | --- | ---
Description | string | This method returns the list of possible stripe depths (aka stripe size)to use in Goal parameter of the CreateOrModifyCompositeElement method for systems that support discrete stripe depths. Note that different implementations may support either the GetSupportedStripeDepths or the GetSupportedStripeDepthRange method.
ValueMap | string | 0, 1, 2, 3, .., 32768..65535
Values | string | Method Completed with no errors, Method Not Supported, ElementType not supported, Use GetSupportedStripeDepthRange instead, DMTF Reserved, Vendor Reserved

#### Method Parameters (GetSupportedStripeDepths)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
ElementType | uint16
Description | string | Type of element.
ValueMap | string | 0, 2, 3, .., 32768..65535
Values | string | Unknown, StorageVolume, LogicalDisk, DMTF Reserved, Vendor Reserved
StripeDepths | uint64[]
Description | string | List of supported stripe depths.
IN | boolean | false
OUT | boolean | true
PUNIT | string | byte

#### GetSupportedStripeDepthRange (uint32)

#### Method Qualifiers (GetSupportedStripeDepthRange)

Name | Data Type | Value
--- | --- | ---
Description | string | This method returns the range of possible stripe depths (aka stripe size) to use in Goal parameter of the CreateOrModifyCompositeElement method. Note that different implementations may support either the GetSupportedStripeDepths or the GetSupportedStripeDepthRange method.
ValueMap | string | 0, 1, 2, 3, .., 32768..65535
Values | string | Method Completed with no errors, Method Not Supported, ElementType not supported, Use GetSupportedStripeDepths instead, DMTF Reserved, Vendor Reserved

#### Method Parameters (GetSupportedStripeDepthRange)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
ElementType | uint16
Description | string | Type of element.
ValueMap | string | 0, 2, 3, .., 32768..65535
Values | string | Unknown, StorageVolume, LogicalDisk, DMTF Reserved, Vendor Reserved
MaximumStripeDepth | uint64
Description | string | Maximum StripeDepth for a composite element.
IN | boolean | false
OUT | boolean | true
PUNIT | string | byte
MinimumStripeDepth | uint64
Description | string | Minimum StripeDepth for a composite element.
IN | boolean | false
OUT | boolean | true
PUNIT | string | byte
StripeDepthDivisor | uint64
Description | string | Composite elements stripe depth must be a multiple of this value.
IN | boolean | false
OUT | boolean | true
PUNIT | string | byte

#### CreateOrModifyCompositeElementFromStoragePool (uint32)

#### Method Qualifiers (CreateOrModifyCompositeElementFromStoragePool)

Name | Data Type | Value
--- | --- | ---
Description | string | Creates (or modifies) a composite element. Note that only like elements can be combined.
Experimental | boolean | true
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, .., 4096, 4097, 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, Vendor Reserved

#### Method Parameters (CreateOrModifyCompositeElementFromStoragePool)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
CompositeType | uint16
Description | string | Type of composite element to create. Possible values are Concatenate, Stripe, Concatenate+Stripe, Vendor specific.
ValueMap | string | 2, 3, 4, .., 32768..65535
Values | string | Concatenate elements, Stripe elements, Concatenate and stripe elements, DMTF Reserved, Vendor Reserved
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.
ElementSource | uint16
Description | string | Tell the instrumentation where to get the elements. Only applies when Size is specified and not InElements. Otherwise it shall be NULL. Possible values are: 1. Use existing elements only 2. Create new elements only 3. Can use existing or create new or both 4. Instrumentation decides If NULL, the instrumentation will decide.
ValueMap | string | 1, 2, 3, 4, .., 0x8000..0xFFFF
Values | string | Use existing elements only, Create new elements only, Can use existing or create new or both, Instrumentation decides, DMTF Reserved, Vendor Specific
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.
ValueMap | string | 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, .., 32768..65535
Values | string | Unknown, StorageVolume, LogicalDisk, ThinStorageVolume, LocalMirror, ThinLocalMirror, LocalSnap, ThinLocalSnap, ThinLocalMirrorPersistent, FullyProvisionedStorageVolume, DMTF Reserved, Vendor Reserved
NumberOfDevices | uint32
Description | string | By default, only one composite volume will be created. To request more than one volume to be created,supply a number for this parameter.
Experimental | boolean | true
IN | boolean | true
OUT | boolean | false
Size | uint64
Description | string | As an input parameter Size specifies the desired size. If NULL, then InElements shall be supplied. If not NULL, this parameter will supply a new size when modifying an existing element. As an output parameter Size specifies the size achieved.
OUT | boolean | true
PUNIT | string | byte
TryAndPreserveData | boolean
Description | string | To preserve the data on the existing member volumes, set this parameter to true. The array then tries to preserve the data on the existing member volumes, if possible.
Experimental | boolean | true
IN | boolean | true
OUT | boolean | false
InElements | CIM_StorageExtent[]
Description | string | The elements from which to create the composite element. This parameter shall be NULL if Size is supplied. Once the elements are combined, they will be removed from the model and replaced with a single element. For some instrumentation, this may be one of the InElements, so in effect, all but one are removed.
InPools | CIM_StoragePool[]
Description | string | Array of strings containing representations of references to CIM_StoragePool instances, that are used to create the members of the Composite Volume (constituent volumes). If more than one StoragePool is supplied, the implementation decides which StoragePool to use. The implementation may decide to use one or more supplied StoragePools.
Goal | REF CIM_ManagedElement
Description | string | The QoS requirements for the composite element to maintain. If NULL, then the QoS setting associated to RepresentativeElement will be used for the QoS goal of the composite. If both Goal and RepresentativeElement are null, the instrumentation selects an appropriate Goal from the InElements.
HelperElement | REF CIM_StorageExtent
Description | string | If specified, it indicates an element that can be used as a helper element for certain operations, such as expanding a volume with data preservation.
Experimental | boolean | true
Job | REF CIM_ConcreteJob
Description | string | Reference to the job - may be null if job completed.
OUT | boolean | true
RepresentativeElement | REF CIM_StorageExtent
Description | string | The instrumentation will use this parameter to determine the QoS goal of the composite. It will use this parameter + Size or InElements to determine the elements used to construct the composite. This parameter may be NULL. If both Goal and RepresentativeElement are null, the instrumentation selects an appropriate Goal from the InElements.
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.
OUT | boolean | true

### Inherited Class Methods

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