Create a data migration schedule

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/schedules

Create a data migration schedule.

Note: Accepted parameter values may be restricted based on the virtual server access granted by the API key used for authentication.

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/schedules'
-d ''
import http.client conn = http.client.HTTPSConnection("172.27.146.40:8444") payload = "{\"dataMigrationPolicyObjectId\":\"323a3a3a39314346313035423644463836324334303030303030303030303030303030303a3a3a303a3a3a4f49445f24232140255f56\",\"initialRunTime\":0,\"isEnabled\":true,\"maxDurationInSeconds\":0,\"runType\":\"SIMULATION_ONLY\"}" headers = { 'Authorization': "Basic REPLACE_BASIC_AUTH", 'content-type': "application/json" } conn.request("POST", "/v9/storage/data-migration/schedules", 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/schedules") 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 = "{\"dataMigrationPolicyObjectId\":\"323a3a3a39314346313035423644463836324334303030303030303030303030303030303a3a3a303a3a3a4f49445f24232140255f56\",\"initialRunTime\":0,\"isEnabled\":true,\"maxDurationInSeconds\":0,\"runType\":\"SIMULATION_ONLY\"}" response = http.request(request) puts response.read_body
const data = JSON.stringify({ "dataMigrationPolicyObjectId": "323a3a3a39314346313035423644463836324334303030303030303030303030303030303a3a3a303a3a3a4f49445f24232140255f56", "initialRunTime": 0, "isEnabled": true, "maxDurationInSeconds": 0, "runType": "SIMULATION_ONLY" }); 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/schedules"); 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/schedules") .header("Authorization", "Basic REPLACE_BASIC_AUTH") .header("content-type", "application/json") .body("{\"dataMigrationPolicyObjectId\":\"323a3a3a39314346313035423644463836324334303030303030303030303030303030303a3a3a303a3a3a4f49445f24232140255f56\",\"initialRunTime\":0,\"isEnabled\":true,\"maxDurationInSeconds\":0,\"runType\":\"SIMULATION_ONLY\"}") .asString();
import Foundation let headers = [ "Authorization": "Basic REPLACE_BASIC_AUTH", "content-type": "application/json" ] let parameters = [ "dataMigrationPolicyObjectId": "323a3a3a39314346313035423644463836324334303030303030303030303030303030303a3a3a303a3a3a4f49445f24232140255f56", "initialRunTime": 0, "isEnabled": true, "maxDurationInSeconds": 0, "runType": "SIMULATION_ONLY" ] 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/schedules")! 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/schedules", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => "{\"dataMigrationPolicyObjectId\":\"323a3a3a39314346313035423644463836324334303030303030303030303030303030303a3a3a303a3a3a4f49445f24232140255f56\",\"initialRunTime\":0,\"isEnabled\":true,\"maxDurationInSeconds\":0,\"runType\":\"SIMULATION_ONLY\"}", 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/schedules"); 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, "{\"dataMigrationPolicyObjectId\":\"323a3a3a39314346313035423644463836324334303030303030303030303030303030303a3a3a303a3a3a4f49445f24232140255f56\",\"initialRunTime\":0,\"isEnabled\":true,\"maxDurationInSeconds\":0,\"runType\":\"SIMULATION_ONLY\"}"); CURLcode ret = curl_easy_perform(hnd);
var client = new RestClient("https://172.27.146.40:8444/v9/storage/data-migration/schedules"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", "Basic REPLACE_BASIC_AUTH"); request.AddHeader("content-type", "application/json"); request.AddParameter("application/json", "{\"dataMigrationPolicyObjectId\":\"323a3a3a39314346313035423644463836324334303030303030303030303030303030303a3a3a303a3a3a4f49445f24232140255f56\",\"initialRunTime\":0,\"isEnabled\":true,\"maxDurationInSeconds\":0,\"runType\":\"SIMULATION_ONLY\"}", ParameterType.RequestBody); IRestResponse response = client.Execute(request);
Body parameters
required
application/json
dataMigrationPolicyObjectIdstring

Object ID of the data migration policy

Example:"323a3a3a39314346313035423644463836324334303030303030303030303030303030303a3a3a303a3a3a4f49445f24232140255f56"
initialRunTimeintegerint64

Initial time that the data migration schedule will start - posix time format

isEnabledboolean

True if enabled, false for disabled

maxDurationInSecondsintegerint32

Maximum duration that a data migration should run for. 0 indicates there is no maximum duration

runTypestring (Enum)

Type of data migration run

Allowed values:"SIMULATION_ONLY""ONCE_ONLY""DAILY""WEEKLY"
REQUEST
{ "dataMigrationPolicyObjectId": "323a3a3a39314346313035423644463836324334303030303030303030303030303030303a3a3a303a3a3a4f49445f24232140255f56", "initialRunTime": 0, "isEnabled": false, "maxDurationInSeconds": 0, "runType": "SIMULATION_ONLY" }
Responses

Created - a new object has been created

Body
application/json
dataMigrationScheduleobject

Data migration schedule

errorLoggedboolean

True indicates that some form of error occurred when the schedule executed

initialRunTimeinteger

Initial time that the data migration schedule will start - posix time format

isEnabledboolean

True if enabled, false for disabled

maxDurationInSecondsinteger

Maximum duration that a data migration should run for. 0 indicates there is no maximum duration

nextRunTimeinteger

Time of next run schedule in posix time format

objectIdstring

Unique ID of the object

Example:"333a3a3a3a3a3a303a3a3a4f49445f24232140255f56"
policyIdstring

ID of the policy

Example:"296f15f2-af39-11d9-98a9-0bef787b2638"
policyObjectIdstring

Object ID of the policy

Example:"313a3a3a30653834353530382d623365352d313164392d393830312d3062656637383762323633383a3a3a303a3a3a4f49445f24232140255f56"
runTypestring (Enum)

Type of data migration run

Allowed values:"SIMULATION_ONLY""ONCE_ONLY""DAILY""WEEKLY"
scheduleIdintegerint32

ID of the schedule

Example:7
virtualServerIdintegerint32

ID of the virtual server. 0 = management virtual server 255 = not assigned to virtual server

Example:1
uristring

URI of the newly created or updated object

RESPONSE
{ "dataMigrationSchedule": { "errorLogged": false, "initialRunTime": 0, "isEnabled": false, "maxDurationInSeconds": 0, "nextRunTime": 0, "objectId": "333a3a3a3a3a3a303a3a3a4f49445f24232140255f56", "policyId": "296f15f2-af39-11d9-98a9-0bef787b2638", "policyObjectId": "313a3a3a30653834353530382d623365352d313164392d393830312d3062656637383762323633383a3a3a303a3a3a4f49445f24232140255f56", "runType": "SIMULATION_ONLY", "scheduleId": 7, "virtualServerId": 1 }, "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" }