// Copyright (c) 2013 DMTF. All rights reserved. [Experimental, Version ( "2.43.0" ), UMLPackagePath ( "CIM::Device::StorageServices" ), Description ( "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)." )] class CIM_StorageConfigurationService : CIM_Service { [Description ( "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 { "0", "1", "2", "3", "4", "5", "6", "..", "4096", "4097", "4098..32767", "32768..65535" }, Values { "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" }] uint32 CreateOrModifyStoragePool( [IN, Description ( "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." )] string ElementName, [IN ( false ), OUT, Description ( "Reference to the job (may be null if job completed)." )] CIM_ConcreteJob REF Job, [IN, Description ( "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." )] CIM_StorageSetting REF Goal, [IN, OUT, Description ( "As an input parameter this specifies the desired " "pool size in bytes. As an output parameter this " "specifies the size achieved." ), Units ( "Bytes" ), PUnit ( "byte" )] uint64 Size, [IN, Description ( "Array of strings containing representations of " "references to CIM_StoragePool instances, that are " "used to create the Pool or modify the source " "pools." )] string InPools[], [IN, Description ( "Array of strings containing representations of " "references to CIM_StorageExtent instances, that " "are used to create the Pool or modify the source " "extents." )] string InExtents[], [IN, OUT, Description ( "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." )] CIM_StoragePool REF Pool); [Description ( "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 { "0", "1", "2", "3", "4", "5", "6", "..", "4096", "4097", "4098..32767", "32768..65535" }, Values { "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" }] uint32 CreateOrModifyElementFromStoragePool( [IN, Description ( "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." )] string ElementName, [Experimental, IN, Description ( "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. With ElementType of \"2\" and \"3\", " "the implementation decides the provisioning of the " "element." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "..", "32768..65535" }, Values { "Unknown", "Reserved", "StorageVolume", "StorageExtent", "LogicalDisk", "ThinlyProvisionedStorageVolume", "ThinlyProvisionedLogicalDisk", "FullyProvisionedStorageVolume", "FullyProvisionedLogicalDisk", "DMTF Reserved", "Vendor Specific" }] uint16 ElementType, [IN ( false ), OUT, Description ( "Reference to the job (may be null if job completed)." )] CIM_ConcreteJob REF Job, [IN, Description ( "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." )] CIM_ManagedElement REF Goal, [IN, OUT, Description ( "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." ), Units ( "Bytes" ), PUnit ( "byte" )] uint64 Size, [IN, Description ( "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)." )] CIM_StoragePool REF InPool, [IN, OUT, Description ( "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." )] CIM_LogicalElement REF TheElement); [Description ( "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 { "0", "1", "2", "3", "4", "5", "6", "..", "4096", "4097..32767", "32768..65535" }, Values { "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" }] uint32 DeleteStoragePool( [IN ( false ), OUT, Description ( "Reference to the job (may be null if job completed)." )] CIM_ConcreteJob REF Job, [IN, Description ( "Reference to the pool to delete." )] CIM_StoragePool REF Pool); [Description ( "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 { "0", "1", "2", "3", "4", "5", "6", "..", "4096", "4097..32767", "32768..65535" }, Values { "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" }] uint32 ReturnToStoragePool( [IN ( false ), OUT, Description ( "Reference to the job (may be null if job completed)." )] CIM_ConcreteJob REF Job, [IN, Description ( "Reference to the element to return to the StoragePool." )] CIM_LogicalElement REF TheElement); [Description ( "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 { "0", "1", "2", "3", "4", "5", "6", "..", "4096", "4097..32767", "32768..65535" }, Values { "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" }] uint32 CreateReplica( [IN, Description ( "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." )] string ElementName, [IN ( false ), OUT, Description ( "Reference to the job (may be null if job completed)." )] CIM_ConcreteJob REF Job, [Required, IN, Description ( "The source storage object which may be a " "StorageVolume or storage object." )] CIM_LogicalElement REF SourceElement, [IN ( false ), OUT, Description ( "Reference to the created target storage element " "(i.e., the replica)." )] CIM_LogicalElement REF TargetElement, [IN, Description ( "The definition for the StorageSetting to be " "maintained by the target storage object (the " "replica)." )] CIM_StorageSetting REF TargetSettingGoal, [IN, Description ( "The underlying storage for the target element (the " "replica) will be drawn from TargetPool if " "specified, otherwise the allocation is " "implementation specific." )] CIM_StoragePool REF TargetPool, [IN, Description ( "CopyType describes the type of copy that will be " "made. Values are: \n" "Async: Create and maintain an asynchronous copy of " "the source. \n" "Sync: Create and maintain a synchronized copy of " "the source. \n" "UnSyncAssoc: Create an unsynchronized copy and " "maintain an association to the source. \n" "UnSyncUnAssoc: Create unassociated copy of the " "source element." ), ValueMap { "2", "3", "4", "5", "..", "32768..65535" }, Values { "Async", "Sync", "UnSyncAssoc", "UnSyncUnAssoc", "DMTF Reserved", "Vendor Specific" }] uint16 CopyType); [Description ( "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 { "0", "1", "2", "3", "4", "5", "6", "..", "0x1000", "0x1001..0x7FFF", "0x8000..0xFFFF" }, Values { "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" }] uint32 ModifySynchronization( [IN, Description ( "Operation describes the type of modification to be " "made to the replica. Values are: \n" "Detach: \'Forget\' the synchronization between two " "storage objects. Start to treat the objects as " "independent. \n" "Fracture: Suspend the synchronization between two " "storage objects using Sync or Async replication. \n" "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. \n" "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. \n" "Restore from Replica: Renew the contents of the " "original storage object from a replica. \n" "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. \n" "Unprepare: Clear a prepared state if a Prepare is " "not to be followed by a Resync operation. \n" "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. \n" "Unquiesce: Take the link from the quiesced state " "(without executing the intended operation. \n" "Start Copy: initiate a full background copy of the " "source to the UnSyncAssoc replica. Replica enters " "Frozen state when copy operation is completed. \n" "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). \n" "Reset To Async: Change the CopyType of the " "association to Async (e.g., from the Sync " "CopyType)." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "..", "0x8000..0xFFFF" }, Values { "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" }] uint16 Operation, [IN ( false ), OUT, Description ( "Reference to the job (may be null if the task completed)." )] CIM_ConcreteJob REF Job, [IN, Description ( "The referenced to the StorageSynchronized " "association describing the storage source/replica " "relationship." )] CIM_StorageSynchronized REF Synchronization); [Description ( "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 { "0", "1", "2", "3", "4", "5", "6", "..", "0x1000", "0x1001..0x7FFF", "0x8000..0xFFFF" }, Values { "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" }] uint32 AttachReplica( [IN ( false ), OUT, Description ( "Reference to the job (may be null if the task completed)." )] CIM_ConcreteJob REF Job, [Required, IN, Description ( "The source storage object which may be a " "StorageVolume or other storage object." )] CIM_ManagedElement REF SourceElement, [IN, Description ( "Reference to the target storage element (i.e., the replica)." )] CIM_ManagedElement REF TargetElement, [IN, Description ( "CopyType describes the type of Synchronized " "relationship that will be created. Values are: \n" "Async: Create and maintain an asynchronous copy of " "the source. \n" "Sync: Create and maintain a synchronized copy of " "the source. \n" "UnSyncAssoc: Create an unsynchronized copy and " "maintain an association to the source. \n" "UnSyncUnAssoc: Create unassociated copy of the " "source element." ), ValueMap { "2", "3", "4", "5", "..", "0x8000..0xFFFF" }, Values { "Async", "Sync", "UnSyncAssoc", "UnSyncUnAssoc", "DMTF Reserved", "Vendor Specific" }] uint16 CopyType); [Experimental, Description ( "Create (or start a job to create) a StorageSynchronized " "mirror relationship between two storage elements. The " "target element may be a local or a remote storage " "element. A remote mirror pair may be scoped by a " "peer-to-peer connection modeled as a NetworkPipe between " "peers. \n" "\n" "If Job Completed with No Error (0) is returned, the " "function completed successfully and a ConcreteJob " "instance is not created. \n" "\n" "If Method Parameters Checked - Job Started (0x1000) is " "returned, a ConcreteJob is started, a reference to which " "is returned in the Job output parameter. \n" "\n" "A return value of Not Supported (1) indicates the method " "is not supported. \n" "\n" "All other values indicate some type of error condition." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "0x1000", "0x1001..0x7FFF", "0x8000..0xFFFF" }, Values { "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" }] uint32 AttachOrModifyReplica( [IN ( false ), OUT, Description ( "Reference to the job (may be null if the task completed)." )] CIM_ConcreteJob REF Job, [Required, IN, Description ( "The source storage element which may be a " "StorageVolume, StorageExtent, LogicalFile, " "FileSystem, CommonDatabase, or any other storage " "object. For this reason, the type is made very " "generic." )] CIM_ManagedElement REF SourceElement, [Required, IN, Description ( "Reference to the target storage element (i.e., the " "replica). The target storage element which may be " "a StorageVolume, StorageExtent, LogicalFile, " "FileSystem, CommonDatabase, or any other storage " "object. For this reason, the type is made very " "generic." )] CIM_ManagedElement REF TargetElement, [Required, IN, Description ( "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 element. \n" "UnSyncUnAssoc: Create an unassociated copy of the " "source element. \n" "UnSyncAssoc and UnSyncUnAssoc are not supported " "for remote mirror replicas." ), ValueMap { "2", "3", "4", "5", "6..4095", "0x1000..0xFFFF" }, Values { "Async", "Sync", "UnSyncAssoc", "UnSyncUnAssoc", "DMTF Reserved", "Vendor Specific" }] uint16 CopyType, [IN, Description ( "The StorageSetting properties to be created or " "modified for the target element." ), EmbeddedInstance ( "CIM_SettingData" )] string Goal, [IN, Description ( "The NetworkPipe element that scopes the remote " "mirror pair. If the value is null, remote mirrors " "do not require a pre-established connection." )] CIM_NetworkPipe REF ReplicationPipe); [Experimental, Description ( "This method establishes a peer-to-peer connection " "identified by a NetworkPipe element and two " "ProtocolEndpoint elements created by the method " "provider. The NetworkPipe is associated to a special " "peer-to-peer Network element. The provider will verify " "that two systems are capable of a peer relationship. If " "endpoints are assigned to the pipe, the same number of " "source and target endpoints must be supplied by the " "client to form a set of endpoint pairs. If " "ReplicationPipe is not supplied as an input parameter, a " "new pipe is created. If a pipe is supplied, a new set of " "endpoints is assigned to the existing pipe. \n" "\n" "If Success (0) is returned, the function completed " "successfully. \n" "\n" "A return value of Not Supported (1) indicates the method " "is not supported. \n" "\n" "A return value of Busy (0x1000) indicates the method is " "not supported. \n" "\n" "All other values indicate some type of error condition." ), ValueMap { "0", "1", "2", "3", "4", "5", "..", "0x1000", "0x1001..0x7FFF", "0x8000..0xFFFF" }, Values { "Success", "Not Supported", "Unspecified Error", "Timeout", "Failed", "Invalid Parameter", "DMTF Reserved", "Busy", "Method Reserved", "Vendor Specific" }] uint32 CreateOrModifyReplicationPipe( [IN, Description ( "A user-friendly name for the element created." )] string PipeElementName, [Required, IN, Description ( "One of the two peer systems participating in the " "established peer-to-peer connection. If the " "provider supports uni-directional connections, " "this must identify the system hosting replica " "source elements." )] CIM_ComputerSystem REF SourceSystem, [Required, IN, Description ( "One of the two peer systems participating in the " "established peer-to-peer connection. If the " "provider supports uni-directional connections, " "this must identify the system hosting replica " "target elements." )] CIM_ComputerSystem REF TargetSystem, [IN, Description ( "References to source system endpoints/ports " "assigned to the pipe. If a new pipe is created, " "this is the initial set of endpoints assigned. If " "an existing pipe is modified, this set replaces " "the previous set. The list must be null if a " "provider does not allow the client to manage port " "assignment." )] CIM_ProtocolEndpoint REF SourceEndpoint[], [IN, Description ( "References to target system endpoints/ports " "assigned to the pipe. If a new pipe is created, " "this is the initial set of endpoints assigned. If " "an existing pipe is modified, this set replaces " "the previous set. The list must be null if a " "provider does not allow the client to manage port " "assignment." )] CIM_ProtocolEndpoint REF TargetEndpoint[], [IN, Description ( "The setting properties to be maintained for the " "peer-to-peer connection." ), EmbeddedInstance ( "CIM_SettingData" )] string Goal, [IN, OUT, Description ( "Reference to the created or modified NetworkPipe." )] CIM_NetworkPipe REF ReplicationPipe); [Experimental, Description ( "Create (or start a job to create) a replication buffer " "that buffers asynchronous write operations for remote " "mirror pairs. The buffer is an instance of CIM_Memory " "with an AssociatedMemory association to a hosting system " "or to a replication network pipe. The buffer element may " "be created based on a StorageExtent, in a pool or in a " "manner opaque to a client. 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. \n" "\n" "If Job Completed with No Error (0) is returned, the " "function completed successfully and a ConcreteJob " "instance is not created. \n" "\n" "If Method Parameters Checked - Job Started (0x1000) is " "returned, a ConcreteJob is started, a reference to which " "is returned in the Job output parameter. \n" "\n" "A return value of Not Supported (1) indicates the method " "is not supported. \n" "\n" "All other values indicate some type of error condition." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "0x1000", "0x1001..0x7FFF", "0x8000..0xFFFF" }, Values { "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" }] uint32 CreateReplicationBuffer( [IN ( false ), OUT, Description ( "Reference to the job (may be null if the task completed)." )] CIM_ConcreteJob REF Job, [Required, IN, Description ( "The hosting system or replication pipe that will " "be antecedent to the created buffer." )] CIM_ManagedElement REF Host, [IN, Description ( "Reference to a component extent for the buffer element." )] CIM_StorageExtent REF TargetElement, [IN, Description ( "Reference to a container pool for the buffer element." )] CIM_StoragePool REF TargetPool, [OUT, Description ( "Reference to the created replica buffer element." )] CIM_Memory REF ReplicaBuffer); [Description ( "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 { "0", "1", "2", "3", "4", "5", "6", "..", "4096", "4097", "4098..32767", "32768..65535" }, Values { "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" }] uint32 CreateOrModifyElementFromElements( [IN, Description ( "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." )] string ElementName, [Experimental, Required, IN, Description ( "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." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "..", "32768..65535" }, Values { "Unknown", "Reserved", "Storage Volume", "Storage Extent", "Storage Pool", "Logical Disk", "ThinlyProvisionedStorageVolume", "ThinlyProvisionedLogicalDisk", "DMTF Reserved", "Vendor Specific" }] uint16 ElementType, [IN ( false ), OUT, Description ( "Reference to the job (may be null if job completed)." )] CIM_ConcreteJob REF Job, [IN, Description ( "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." )] CIM_ManagedElement REF Goal, [IN, OUT, Description ( "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." ), Units ( "Bytes" ), PUnit ( "byte" )] uint64 Size, [Required, IN, Description ( "Array of references to storage element instances " "that are used to create or modify TheElement." )] CIM_StorageExtent REF InElements[], [IN, OUT, Description ( "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." )] CIM_LogicalElement REF TheElement); [Experimental, Description ( "This method requests that the system rescan SCSI devices " "for changes in their configuration. If called on a " "general-purpose host, the changes are reflected in the " "list of devices available to applications (for example, " "the UNIX \'device tree\'. This method may also be used " "on a storage appliance to force rescanning of attached " "SCSI devices. \n" "\n" "This operation can be disruptive; optional parameters " "allow the caller to limit the scan to a single or set of " "SCSI device elements. All parameters are optional; if " "parameters other Job are passed in as null, a full scan " "is invoked." ), ValueMap { "0", "1", "2", "3", "4", "5", "6..4095", "4096", "4097", "4098", "4099", "4100", "..", "32768..65535" }, Values { "Success", "Not Supported", "Unknown", "Timeout", "Failed", "Invalid Parameter", "DMTF Reserved", "Invalid connection type", "Invalid Initiator", "No matching target found", "No matching LUs found", "Prohibited by name binding configuration", "DMTF Reserved", "Vendor Specific" }] uint32 ScsiScan( [IN, OUT, Description ( "Reference to the job (may be null if job completed)." )] CIM_ConcreteJob REF Job, [Description ( "The type of connection, constrains the scan to " "initiator ports of this type. Only used if the " "Initiators parameter is null." ), ValueMap { "1", "2", "3", "4", "5", "6", "7", "8", "9" }, Values { "Other", "Fibre Channel", "Parallel SCSI", "SSA", "IEEE 1394", "RDMA", "iSCSI", "SAS", "ADT" }, ModelCorrespondence { "CIM_SCSIProtocolEndpoint.ConnectionType" }] uint16 ConnectionType, [Description ( "The connection type, if the ConnectionType " "parameter is \"Other\"." )] string OtherConnectionType, [Description ( "A list of references to initiators. Scanning will " "be limited to SCSI targets attached to these " "initiators. If this parameter is null and " "connection is specified, all initiators of that " "connection type are scanned. If this parameter and " "ConnectionType are null, all targets on all system " "initiators are probed." )] CIM_SCSIProtocolEndpoint REF Initiators[], [Description ( "A list of names or numbers for targets. These " "should be formatted to match the appropriate " "connection type, For example, PortWWNs would be " "specified for Fibre Channel targets." )] string Targets[], [Description ( "A list of SCSI logical unit numbers representing " "logical units hosted on the targets specified in " "the Targets argument." )] string LogicalUnits[]); [Experimental, Description ( "Allows a client to request the Usage to be set if the " "client has access to the element supplied and the " "request is valid." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "4096", "4097..32767", "32768..65535" }, Values { "Completed with No Error", "Not Supported", "Unknown", "Timeout", "Failed", "Invalid Parameter", "Not Authorized", "DMTF Reserved", "Method Parameters Checked - Job Started", "Method Reserved", "Vendor Specific" }] uint32 RequestUsageChange( [IN, Description ( "The action to perform." ), ValueMap { "2", "3", "..", "32768..65535" }, Values { "Set", "Modify \"Other\" description only", "DMTF Reserved", "Vendor Specific" }] uint16 Operation, [IN, Description ( "Applicable requested usage/restriction -- see the " "appropriate Usage ValueMap." ), ModelCorrespondence { "CIM_StoragePool.Usage", "CIM_StorageExtent.Usage" }] uint16 UsageValue, [IN, Description ( "New description text. Applicable when the usage " "value includes \"Other\"." )] string OtherUsageDescription, [OUT, Description ( "Reference to the job (may be null if job completed)." )] CIM_ConcreteJob REF Job, [IN, Description ( "The storage element to modify." )] CIM_LogicalElement REF TheElement); [Experimental, Description ( "Allows retrieving elements that meet the specified " "Usage. The criteria can be \"available only\", \"in use " "only\", or both." ), ValueMap { "0", "1", "2", "3", "4", "5", "..", "32768..65535" }, Values { "Completed with No Error", "Not Supported", "Unknown", "Timeout", "Failed", "Invalid Parameter", "DMTF Reserved", "Vendor Specific" }] uint32 GetElementsBasedOnUsage( [IN, Description ( "Enumeration indicating the type of elements to get." ), ValueMap { "0", "2", "3", "4", "5", "..", "32768..65535" }, Values { "Unknown", "StorageVolume", "StorageExtent", "StoragePool", "Logical Disk", "DMTF Reserved", "Vendor Specific" }] uint16 ElementType, [IN, Description ( "The specific Usage to be retrieved." ), ModelCorrespondence { "CIM_StoragePool.Usage", "CIM_StorageExtent.Usage" }] uint16 Usage, [IN, Description ( "Specifies whether to retrieve all elements, " "available elements only, or the elements that are " "in use." ), ValueMap { "0", "2", "3", "4", "..", "32768..65535" }, Values { "Unknown", "All", "Available Only", "In Use Only", "DMTF Reserved", "Vendor Specific" }] uint16 Criteria, [IN, Description ( "Limit the search for the elements that satisfy the " "criteria to this StoragePool only. If null, all " "appropriate StoragePools will be considered." )] CIM_StoragePool REF ThePool, [OUT, Description ( "Array of references to storage element instances retrieved." )] CIM_ManagedSystemElement REF TheElements[]); [Experimental, MethodConstraint { "pre:(StorageResources.oclIsTypeOf(CIM_StoragePool)OR StorageResources.oclIsTypeOf(CIM_StorageVolume))" }, Description ( "Start a job to assign affinity of a StoragePool(s) or " "StorageVolume(s) to a storage processor. At the " "conclusion of the operation, the resource will be a " "member of the StorageResourceLoadGroup with the primary " "affinity for the specified storage processor. Support " "for this method is indicated by the presence of an " "instance of StorageServerAsymmetryCapabilites in which " "the property StorageResourceAffinityAssignable is " "\'true\'. If 0 is returned, the function completed " "successfully and no ConcreteJob instance was required. " "If 4096/0x1000 is returned, a job will be started to " "assign the element. The Job\'s reference will be " "returned in the output parameter Job." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "4096", "4097", "4098..32767", "32768..65535" }, Values { "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" }] uint32 AssignStorageResourceAffinity( [Required, IN, Description ( "Enumeration indicating the type of resource being " "assigned or modified. ." ), ValueMap { "2", "3" }, Values { "StorageVolume", "StoragePool" }] uint16 ResourceType, [IN ( false ), OUT, Description ( "Reference to the job (may be null if job completed)." )] CIM_ConcreteJob REF Job, [IN, OUT ( false ), Description ( "Reference to the storage processor to which to " "assign the resource." )] CIM_ComputerSystem REF StorageProcessor, [Required, IN, Description ( "Array of references to storage resource instances " "to be assigned." )] CIM_LogicalElement REF StorageResources[]); [Experimental, Description ( "Start a job to delete elements previously created from " "StoragePools. 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 { "0", "1", "2", "3", "4", "5", "6", "..", "4096", "4097..32767", "32768..65535" }, Values { "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" }] uint32 ReturnElementsToStoragePool( [IN, Description ( "Additional options. \n" "Continue on nonexistent element: if the method " "encounters a non-existent element in the list of " "elements supplied, the method continues to delete " "the remaining elements. Return error on " "nonexistent element: if the method encounters a " "non-existent element in the list of elements " "supplied, the method returns an error." ), ValueMap { "2", "3", "..", "32768..65535" }, Values { "Continue on nonexistent element", "Return error on nonexistent element", "DMTF Reserved", "Vendor Specific" }] uint16 Options, [IN ( false ), OUT, Description ( "Reference to the job (may be null if job completed)." )] CIM_ConcreteJob REF Job, [Required, IN, Description ( "References to the elements to return to the StoragePool." )] CIM_LogicalElement REF TheElements[]); [Experimental, Description ( "Start a job to create (or modify) a specified elements " "(for example StorageVolumes or StorageExtents) from " "StoragePools. 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. If the number of elements created " "is less than the number of elements requested, the " "return value will be 4098/0x1002." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "4096", "4097", "4098", "4099..32767", "32768..65535" }, Values { "Job Completed with No Error", "Not Supported", "Unknown", "Timeout", "Failed", "Invalid Parameter", "In Use", "DMTF Reserved", "Method Parameters Checked - Job Started", "Size Not Supported", "Partially Completed Operation", "Method Reserved", "Vendor Specific" }] uint32 CreateElementsFromStoragePools( [IN, Description ( "One or more user relevant names for the element " "being created. If NULL, then system supplied " "default names may be used. The value will be " "stored in the \"ElementName\" property for the " "created element." )] string ElementNames[], [IN, Description ( "Enumeration indicating the type of element being " "created. With ElementType of \"2\" and \"3\", the " "implementation decides the provisioning of the " "element." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "..", "32768..65535" }, Values { "Unknown", "Reserved", "StorageVolume", "StorageExtent", "LogicalDisk", "ThinlyProvisionedStorageVolume", "ThinlyProvisionedLogicalDisk", "FullyProvisionedStorageVolume", "FullyProvisionedLogicalDisk", "DMTF Reserved", "Vendor Specific" }] uint16 ElementType, [IN, Description ( "Count of elements to create. If null, it defaults " "to one element." )] uint64 ElementCount, [IN ( false ), OUT, Description ( "Reference to the job (may be null if job completed)." )] CIM_ConcreteJob REF Job, [IN, Description ( "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." )] CIM_SettingData REF Goal, [IN, OUT, Description ( "As an input parameter Size specifies the desired " "size for each element created. As an output " "parameter Size specifies the size achieved." ), Units ( "Bytes" ), PUnit ( "byte" )] uint64 Size, [IN, Description ( "The Pools from which to create the elements. If " "not supplied, system locates the appropriate " "pools." )] CIM_StoragePool REF InPools[], [OUT, Description ( "Reference to the resulting elements." )] CIM_LogicalElement REF TheElements[]); [Description ( "Given a source volume and a set of storage pools, this " "method will return a list of candidate target volumes. " "Since the rules for determining potential target volumes " "for a copy operation are not always straightforward, due " "to certain conditions, such as RAID level, the number of " "extents which consist of the StorageVolume, the type of " "storage array, and so on, it can be difficult for the " "client to know which volumes can be used as copy targets " "for a given source volume. This makes it difficult for " "the user to create a copy pair with the " "AttachOrModifyReplica because he must know which volumes " "can be used for target volume for a particular source " "volume, otherwise the request may fail." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "4096..32767", "32768..65535" }, Values { "Completed with No Error", "Not Supported", "Unknown", "Timeout", "Failed", "Invalid Parameter", "In Use", "DMTF Reserved", "Method Reserved", "Vendor Specific" }] uint32 GetAvailableTargetElements( [Required, IN, Description ( "The original source volume for the pair." )] CIM_LogicalElement REF SourceElement, [IN, Description ( "The arrays of the pools to search for target " "volumes. The method finds candidate target volumes " "from the available volumes in the specified " "TargetPools. This does include volumes with a " "Usage property value of reserved for copy target.\n" "If null, the method finds volumes from all of the " "pools." )] CIM_StoragePool REF TargetPool[], [Required, IN, Description ( "Copy type:\n" "2: Async\n" "3: Sync\n" "4: UnSyncAssoc\n" "5: UnSyncUnAssoc\n" "6: Migrate" )] uint16 CopyType, [OUT, Description ( "The list of the target volumes as the candidates." )] CIM_LogicalElement REF Candidates[]); };