Create a QoS policy
POST /storage/qos/policies
Introduced In: 9.6
Creates a QoS policy.
Required properties
- 
svm.uuidorsvm.name- The existing SVM owning the QoS policy. - 
name- The name of the QoS policy. - 
fixed.*oradaptive.*- Either of the fixed or adaptive parameters. 
Default property values
- 
If
fixed.*parameters are specified, then capacity.shared is set to false by default. 
Related ONTAP commands
- 
qos policy-group create - 
qos adaptive-policy-group create 
Parameters
| Name | Type | In | Required | Description | 
|---|---|---|---|---|
return_records  | 
boolean  | 
query  | 
False  | 
The default is false. If set to true, the records are returned. 
  | 
return_timeout  | 
integer  | 
query  | 
False  | 
The number of seconds to allow the call to execute before returning. When doing a POST, PATCH, or DELETE operation on a single record, the default is 0 seconds. This means that if an asynchronous operation is started, the server immediately returns HTTP code 202 (Accepted) along with a link to the job. If a non-zero value is specified for POST, PATCH, or DELETE operations, ONTAP waits that length of time to see if the job completes so it can return something other than 202. 
  | 
Request Body
| Name | Type | Description | 
|---|---|---|
adaptive  | 
Adaptive QoS policy-groups define measurable service level objectives (SLOs) that adjust based on the storage object used space and the storage object allocated space.  | 
|
fixed  | 
QoS policy-groups define a fixed service level objective (SLO) for a storage object.  | 
|
name  | 
string  | 
Name of the QoS policy.  | 
object_count  | 
integer  | 
Number of objects attached to this policy.  | 
pgid  | 
integer  | 
Policy group ID of the QoS policy.  | 
policy_class  | 
string  | 
Class of the QoS policy.  | 
scope  | 
string  | 
Scope of the entity. Set to "cluster" for cluster owned objects and to "svm" for SVM owned objects.  | 
svm  | 
||
uuid  | 
string  | 
Example request
{
  "adaptive": {
    "block_size": "string",
    "expected_iops_allocation": "string",
    "peak_iops_allocation": "string"
  },
  "name": "extreme",
  "object_count": 0,
  "pgid": 0,
  "policy_class": "string",
  "scope": "string",
  "svm": {
    "name": "svm1",
    "uuid": "02c9e252-41be-11e9-81d5-00a0986138f7"
  },
  "uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
}
Response
Status: 202, Accepted
| Name | Type | Description | 
|---|---|---|
job  | 
Example response
{
  "job": {
    "uuid": "string"
  }
}
Error
Status: Default
ONTAP Error Response Codes
| Error Code | Description | 
|---|---|
8454147  | 
The maximum limit for QoS policies has been reached.  | 
8454154  | 
The name specified for creating conflicts with an existing QoS policy name.  | 
8454260  | 
Invalid value for maximum and minimum fields. Valid values for max_throughput_iops and max_throughput_mbps combination is for the ratio of max_throughput_mbps and max_throughput_iops to be within 1 to 4096.  | 
8454273  | 
Invalid value for an adaptive field. Value should be non-zero.  | 
8454277  | 
The name specified for creating an adaptive QoS policy conflicts with an existing fixed QoS policy name.  | 
8454278  | 
The name specified for creating a fixed QoS policy conflicts with an existing adaptive QoS policy name.  | 
Definitions
See Definitions
href
| Name | Type | Description | 
|---|---|---|
href  | 
string  | 
_links
adaptive
Adaptive QoS policy-groups define measurable service level objectives (SLOs) that adjust based on the storage object used space and the storage object allocated space.
| Name | Type | Description | 
|---|---|---|
absolute_min_iops  | 
integer  | 
Specifies the absolute minimum IOPS that is used as an override when the expected_iops is less than this value. These floors are not guaranteed on non-AFF platforms or when FabricPool tiering policies are set.  | 
block_size  | 
string  | 
Specifies the block size  | 
expected_iops  | 
integer  | 
Expected IOPS. Specifies the minimum expected IOPS per TB allocated based on the storage object allocated size. These floors are not guaranteed on non-AFF platforms or when FabricPool tiering policies are set.  | 
expected_iops_allocation  | 
string  | 
Specifies the size to be used to calculate expected IOPS per TB. The size options are either the storage object allocated space or the storage object used space.  | 
peak_iops  | 
integer  | 
Peak IOPS. Specifies the maximum possible IOPS per TB allocated based on the storage object allocated size or the storage object used size.  | 
peak_iops_allocation  | 
string  | 
Specifies the size to be used to calculate peak IOPS per TB. The size options are either the storage object allocated space or the storage object used space.  | 
fixed
QoS policy-groups define a fixed service level objective (SLO) for a storage object.
| Name | Type | Description | 
|---|---|---|
capacity_shared  | 
boolean  | 
Specifies whether the capacities are shared across all objects that use this QoS policy-group. Default is false.  | 
max_throughput_iops  | 
integer  | 
Maximum throughput defined by this policy. It is specified in terms of IOPS. 0 means no maximum throughput is enforced.  | 
max_throughput_mbps  | 
integer  | 
Maximum throughput defined by this policy. It is specified in terms of Mbps. 0 means no maximum throughput is enforced.  | 
min_throughput_iops  | 
integer  | 
Minimum throughput defined by this policy. It is specified in terms of IOPS. 0 means no minimum throughput is enforced. These floors are not guaranteed on non-AFF platforms or when FabricPool tiering policies are set.  | 
min_throughput_mbps  | 
integer  | 
Minimum throughput defined by this policy. It is specified in terms of Mbps. 0 means no minimum throughput is enforced.  | 
svm
| Name | Type | Description | 
|---|---|---|
name  | 
string  | 
The name of the SVM.  | 
uuid  | 
string  | 
The unique identifier of the SVM.  | 
qos_policy
| Name | Type | Description | 
|---|---|---|
adaptive  | 
Adaptive QoS policy-groups define measurable service level objectives (SLOs) that adjust based on the storage object used space and the storage object allocated space.  | 
|
fixed  | 
QoS policy-groups define a fixed service level objective (SLO) for a storage object.  | 
|
name  | 
string  | 
Name of the QoS policy.  | 
object_count  | 
integer  | 
Number of objects attached to this policy.  | 
pgid  | 
integer  | 
Policy group ID of the QoS policy.  | 
policy_class  | 
string  | 
Class of the QoS policy.  | 
scope  | 
string  | 
Scope of the entity. Set to "cluster" for cluster owned objects and to "svm" for SVM owned objects.  | 
svm  | 
||
uuid  | 
string  | 
job_link
| Name | Type | Description | 
|---|---|---|
uuid  | 
string  | 
The UUID of the asynchronous job that is triggered by a POST, PATCH, or DELETE operation.  | 
error_arguments
| Name | Type | Description | 
|---|---|---|
code  | 
string  | 
Argument code  | 
message  | 
string  | 
Message argument  | 
error
| Name | Type | Description | 
|---|---|---|
arguments  | 
array[error_arguments]  | 
Message arguments  | 
code  | 
string  | 
Error code  | 
message  | 
string  | 
Error message  | 
target  | 
string  | 
The target parameter that caused the error.  |