Create a data migration account

NAS File Storage REST API Reference

Version
15.6.x
File Size
1291 KB
Audience
anonymous
Part Number
MK-92HNAS100-07
ft:lastEdition
2026-04-07
post /v9/storage/data-migration/accounts

Create a data migration account.

Authentication: x_subsystem_user Api Key "X-Subsystem-User"
Authentication: x_subsystem_password Api Key "X-Subsystem-Password"
Authentication: api_key Api Key "X-Api-Key"
Authentication: basicAuth HTTP - basic scheme
CLIENT REQUEST
curl -X 'POST'
-H "X-Subsystem-User: [[apiKey]]" \
-H "X-Subsystem-Password: [[apiKey]]" \
-H "X-Api-Key: [[apiKey]]" \
-H "Authorization: Basic [[basicHash]]" \
-H 'Accept: application/json'
-H 'Content-Type: application/json'
'https://172.27.146.40:8444/v9/storage/data-migration/accounts'
-d ''
import http.client conn = http.client.HTTPSConnection("172.27.146.40:8444") payload = "{\"description\":\"This is the description\",\"name\":\"Name2\",\"password\":\"pa$$word\",\"serverName\":\"string\",\"userName\":\"User1\",\"vendor\":\"HCP\"}" headers = { 'Authorization': "Basic REPLACE_BASIC_AUTH", 'content-type': "application/json" } conn.request("POST", "/v9/storage/data-migration/accounts", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
require 'uri' require 'net/http' require 'openssl' url = URI("https://172.27.146.40:8444/v9/storage/data-migration/accounts") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Post.new(url) request["Authorization"] = 'Basic REPLACE_BASIC_AUTH' request["content-type"] = 'application/json' request.body = "{\"description\":\"This is the description\",\"name\":\"Name2\",\"password\":\"pa$$word\",\"serverName\":\"string\",\"userName\":\"User1\",\"vendor\":\"HCP\"}" response = http.request(request) puts response.read_body
const data = JSON.stringify({ "description": "This is the description", "name": "Name2", "password": "pa$$word", "serverName": "string", "userName": "User1", "vendor": "HCP" }); const xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function () { if (this.readyState === this.DONE) { console.log(this.responseText); } }); xhr.open("POST", "https://172.27.146.40:8444/v9/storage/data-migration/accounts"); xhr.setRequestHeader("Authorization", "Basic REPLACE_BASIC_AUTH"); xhr.setRequestHeader("content-type", "application/json"); xhr.send(data);
HttpResponse<String> response = Unirest.post("https://172.27.146.40:8444/v9/storage/data-migration/accounts") .header("Authorization", "Basic REPLACE_BASIC_AUTH") .header("content-type", "application/json") .body("{\"description\":\"This is the description\",\"name\":\"Name2\",\"password\":\"pa$$word\",\"serverName\":\"string\",\"userName\":\"User1\",\"vendor\":\"HCP\"}") .asString();
import Foundation let headers = [ "Authorization": "Basic REPLACE_BASIC_AUTH", "content-type": "application/json" ] let parameters = [ "description": "This is the description", "name": "Name2", "password": "pa$$word", "serverName": "string", "userName": "User1", "vendor": "HCP" ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://172.27.146.40:8444/v9/storage/data-migration/accounts")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume()
<?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_PORT => "8444", CURLOPT_URL => "https://172.27.146.40:8444/v9/storage/data-migration/accounts", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => "{\"description\":\"This is the description\",\"name\":\"Name2\",\"password\":\"pa$$word\",\"serverName\":\"string\",\"userName\":\"User1\",\"vendor\":\"HCP\"}", CURLOPT_HTTPHEADER => [ "Authorization: Basic REPLACE_BASIC_AUTH", "content-type: application/json" ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; }
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST"); curl_easy_setopt(hnd, CURLOPT_URL, "https://172.27.146.40:8444/v9/storage/data-migration/accounts"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Basic REPLACE_BASIC_AUTH"); headers = curl_slist_append(headers, "content-type: application/json"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\"description\":\"This is the description\",\"name\":\"Name2\",\"password\":\"pa$$word\",\"serverName\":\"string\",\"userName\":\"User1\",\"vendor\":\"HCP\"}"); CURLcode ret = curl_easy_perform(hnd);
var client = new RestClient("https://172.27.146.40:8444/v9/storage/data-migration/accounts"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", "Basic REPLACE_BASIC_AUTH"); request.AddHeader("content-type", "application/json"); request.AddParameter("application/json", "{\"description\":\"This is the description\",\"name\":\"Name2\",\"password\":\"pa$$word\",\"serverName\":\"string\",\"userName\":\"User1\",\"vendor\":\"HCP\"}", ParameterType.RequestBody); IRestResponse response = client.Execute(request);
Body parameters
required
application/json
descriptionstring

Description to be associated with the item

Example:"This is the description"
namestring

Name to associate with the item

Example:"Name2"
passwordstring

Password associated with the user name

Example:"pa$$word"
serverNamestring

The fully-qualified name of the cloud storage server if it is necessary to specify one. For the HCP and HCPS3 providers, this should be the address of the namespace that will host data for this account. For the S3 provider, this should be an endpoint. Azure and Test accounts do not require this option to be set.

userNamestring

User name

Example:"User1"
vendorstring (Enum)

Vendor associated with the data migration account

Allowed values:"HCP""TEST""S3""CLEVERSAFE""AZURE""HCP_S3"
REQUEST
{ "description": "This is the description", "name": "Name2", "password": "pa$$word", "serverName": "example", "userName": "User1", "vendor": "HCP" }
Responses

Created - a new object has been created

Body
application/json
dataMigrationAccountobject

Data migration account

accountIdstring

ID of the account

Example:"bc526470-c2c9-11d4-9000-040402000106"
descriptionstring

A description associated with the item

Example:"This is the description"
inUseboolean

True indicates that the account is in use by one or more data migration destinations

namestring

Name of the data migration account

Example:"Account1"
objectIdstring

Unique ID of the object

Example:"333a3a3a3a3a3a303a3a3a4f49445f24232140255f56"
passwordstring

Password associated with the user name

Example:"pa$$word"
serverNamestring

Either the fully-qualified name of the cloud storage server, address of the namespace that hosts the data, an endpoint, or blank if not account does not require it

userNamestring

User name used to authenticate with the data migration target

Example:"User1"
vendorstring (Enum)

Vendor associated with the data migration account

Allowed values:"HCP""TEST""S3""CLEVERSAFE""AZURE""HCP_S3""AMAZON_S3"
uristring

URI of the newly created or updated object

RESPONSE
{ "dataMigrationAccount": { "accountId": "bc526470-c2c9-11d4-9000-040402000106", "description": "This is the description", "inUse": false, "name": "Account1", "objectId": "333a3a3a3a3a3a303a3a3a4f49445f24232140255f56", "password": "pa$$word", "serverName": "example", "userName": "User1", "vendor": "HCP" }, "uri": "example" }

Bad Request

Body
application/json
errorCodeintegerint32

Generic error code

Example:1081353
errorMsgstring

Main error message

Example:"Invalid description parameter - the optional parameter must be between 2 and 30 characters long to be valid, if supplied"
RESPONSE
{ "errorCode": 1081353, "errorMsg": "Invalid description parameter - the optional parameter must be between 2 and 30 characters long to be valid, if supplied" }

Unauthorized - the request was rejected because the credentials or API key were either missing or invalid

Forbidden - the client does not have the required permissions to perform the operation

Body
application/json
errorMsgstring

Main error message

Example:"Forbidden request - the client does not have the required permissions to perform the operation"
RESPONSE
{ "errorMsg": "Forbidden request - the client does not have the required permissions to perform the operation" }

Internal Server Error

Body
application/json
errorCodeintegerint32

Generic error code

errorDetailobject

Detailed error information

detailstring

More details on why the error occurred

faultstring
fileNamestring

Source file where the error occurred

Example:"RestApiFilesystems.cpp"
functionstring

Internal function name where the error occurred

Example:"mountFilesystem"
lineNumberintegerint32

Line number within the source file, where the error occurred

messagestring

Reason why the error(s) occurred

Example:"The file system is currently unassigned"
reasonstring

Reason why the error(s) occurred

Example:"The file system is currently unassigned"
returnedValueintegerint32

Not used

subCodeintegerint32

Specific failure error code

errorMsgstring

Main error message

Example:"Failed to mount file system"
RESPONSE
{ "errorCode": 0, "errorDetail": { "detail": "", "fault": "", "fileName": "RestApiFilesystems.cpp", "function": "mountFilesystem", "lineNumber": 0, "message": "The file system is currently unassigned", "reason": "The file system is currently unassigned", "returnedValue": 0, "subCode": 0 }, "errorMsg": "Failed to mount file system" }