Set the default group quota template of a file system

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
patch /v9/storage/filesystems/{filesystemId}/quota-templates/group

Set the default group quota template of a file system.

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
Path parameters
filesystemId String required

Either the file system ID or the object ID of the file system

Example: 7B263DFD1D71E65A0000000000000000
CLIENT REQUEST
curl -X 'PATCH'
-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/filesystems/{filesystemId}/quota-templates/group'
-d ''
import http.client conn = http.client.HTTPSConnection("172.27.146.40:8444") payload = "{\"diskUsageThreshold\":{\"isHard\":true,\"limit\":0,\"reset\":65,\"severe\":95,\"warning\":90},\"fileCountThreshold\":{\"isHard\":true,\"limit\":0,\"reset\":65,\"severe\":95,\"warning\":90},\"ignoreDomainUsers\":true,\"logEvent\":true}" headers = { 'Authorization': "Basic REPLACE_BASIC_AUTH", 'content-type': "application/json" } conn.request("PATCH", "/v9/storage/filesystems/7B263DFD1D71E65A0000000000000000/quota-templates/group", 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/filesystems/7B263DFD1D71E65A0000000000000000/quota-templates/group") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Patch.new(url) request["Authorization"] = 'Basic REPLACE_BASIC_AUTH' request["content-type"] = 'application/json' request.body = "{\"diskUsageThreshold\":{\"isHard\":true,\"limit\":0,\"reset\":65,\"severe\":95,\"warning\":90},\"fileCountThreshold\":{\"isHard\":true,\"limit\":0,\"reset\":65,\"severe\":95,\"warning\":90},\"ignoreDomainUsers\":true,\"logEvent\":true}" response = http.request(request) puts response.read_body
const data = JSON.stringify({ "diskUsageThreshold": { "isHard": true, "limit": 0, "reset": 65, "severe": 95, "warning": 90 }, "fileCountThreshold": { "isHard": true, "limit": 0, "reset": 65, "severe": 95, "warning": 90 }, "ignoreDomainUsers": true, "logEvent": true }); const xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function () { if (this.readyState === this.DONE) { console.log(this.responseText); } }); xhr.open("PATCH", "https://172.27.146.40:8444/v9/storage/filesystems/7B263DFD1D71E65A0000000000000000/quota-templates/group"); xhr.setRequestHeader("Authorization", "Basic REPLACE_BASIC_AUTH"); xhr.setRequestHeader("content-type", "application/json"); xhr.send(data);
HttpResponse<String> response = Unirest.patch("https://172.27.146.40:8444/v9/storage/filesystems/7B263DFD1D71E65A0000000000000000/quota-templates/group") .header("Authorization", "Basic REPLACE_BASIC_AUTH") .header("content-type", "application/json") .body("{\"diskUsageThreshold\":{\"isHard\":true,\"limit\":0,\"reset\":65,\"severe\":95,\"warning\":90},\"fileCountThreshold\":{\"isHard\":true,\"limit\":0,\"reset\":65,\"severe\":95,\"warning\":90},\"ignoreDomainUsers\":true,\"logEvent\":true}") .asString();
import Foundation let headers = [ "Authorization": "Basic REPLACE_BASIC_AUTH", "content-type": "application/json" ] let parameters = [ "diskUsageThreshold": [ "isHard": true, "limit": 0, "reset": 65, "severe": 95, "warning": 90 ], "fileCountThreshold": [ "isHard": true, "limit": 0, "reset": 65, "severe": 95, "warning": 90 ], "ignoreDomainUsers": true, "logEvent": true ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://172.27.146.40:8444/v9/storage/filesystems/7B263DFD1D71E65A0000000000000000/quota-templates/group")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "PATCH" 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/filesystems/7B263DFD1D71E65A0000000000000000/quota-templates/group", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "PATCH", CURLOPT_POSTFIELDS => "{\"diskUsageThreshold\":{\"isHard\":true,\"limit\":0,\"reset\":65,\"severe\":95,\"warning\":90},\"fileCountThreshold\":{\"isHard\":true,\"limit\":0,\"reset\":65,\"severe\":95,\"warning\":90},\"ignoreDomainUsers\":true,\"logEvent\":true}", 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, "PATCH"); curl_easy_setopt(hnd, CURLOPT_URL, "https://172.27.146.40:8444/v9/storage/filesystems/7B263DFD1D71E65A0000000000000000/quota-templates/group"); 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, "{\"diskUsageThreshold\":{\"isHard\":true,\"limit\":0,\"reset\":65,\"severe\":95,\"warning\":90},\"fileCountThreshold\":{\"isHard\":true,\"limit\":0,\"reset\":65,\"severe\":95,\"warning\":90},\"ignoreDomainUsers\":true,\"logEvent\":true}"); CURLcode ret = curl_easy_perform(hnd);
var client = new RestClient("https://172.27.146.40:8444/v9/storage/filesystems/7B263DFD1D71E65A0000000000000000/quota-templates/group"); var request = new RestRequest(Method.PATCH); request.AddHeader("Authorization", "Basic REPLACE_BASIC_AUTH"); request.AddHeader("content-type", "application/json"); request.AddParameter("application/json", "{\"diskUsageThreshold\":{\"isHard\":true,\"limit\":0,\"reset\":65,\"severe\":95,\"warning\":90},\"fileCountThreshold\":{\"isHard\":true,\"limit\":0,\"reset\":65,\"severe\":95,\"warning\":90},\"ignoreDomainUsers\":true,\"logEvent\":true}", ParameterType.RequestBody); IRestResponse response = client.Execute(request);
Body parameters
required
application/json
diskUsageThresholdobject

Percentages associated with a quota type

isHardboolean

True indicates there is a hard limit, rather than soft

limitinteger

The upper limit allowed

resetintegerint32

Percent of the amount of space size or file numbers specified in the limit field at which a reset alert is sent. This value cannot exceed the value of the warning alert. A minimum value is required

Example:65
severeintegerint32

Percent of the amount of space or number of file count specified in the limit field at which a severe alert is sent. This value cannot be bigger than 100. A minimum value is required

Example:95
warningintegerint32

Percent of the amount of space or number of the file count specified in the limit field at which a warning alert is sent. This value cannot exceed the value of the severe alert. A minimum value is required

Example:90
fileCountThresholdobject

Percentages associated with a quota type

isHardboolean

True indicates there is a hard limit, rather than soft

limitinteger

The upper limit allowed

resetintegerint32

Percent of the amount of space size or file numbers specified in the limit field at which a reset alert is sent. This value cannot exceed the value of the warning alert. A minimum value is required

Example:65
severeintegerint32

Percent of the amount of space or number of file count specified in the limit field at which a severe alert is sent. This value cannot be bigger than 100. A minimum value is required

Example:95
warningintegerint32

Percent of the amount of space or number of the file count specified in the limit field at which a warning alert is sent. This value cannot exceed the value of the severe alert. A minimum value is required

Example:90
ignoreDomainUsersboolean

Indicates whether to apply a default group quota to the Windows Domain Users group

logEventboolean

True indicates that quota related events will be logged

REQUEST
{ "diskUsageThreshold": { "isHard": false, "limit": 0, "reset": 65, "severe": 95, "warning": 90 }, "fileCountThreshold": { "isHard": false, "limit": 0, "reset": 65, "severe": 95, "warning": 90 }, "ignoreDomainUsers": false, "logEvent": false }
Responses

No Content - the resource was updated successfully

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" }

Not Found - a resource specified was not found

Body
application/json
errorCodeintegerint32

Generic error code

Example:1081345
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:"Cannot find the object of the operation on the device"
RESPONSE
{ "errorCode": 1081345, "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": "Cannot find the object of the operation on the device" }

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" }