Create a vVol binding
POST /protocols/san/vvol-bindings
Introduced In: 9.10
Creates a vVol binding. The binding between any two specific LUNs is reference counted. When a binding is created that already exists, the binding count is incremented.
Required properties
-
svm.uuid
orsvm.name
- Existing SVM in which to create the vVol binding. -
protocol_endpoint.uuid
orprotocol_endpoint.name
- Existing classprotocol_endpoint
LUN to bind to the specified classvvol
LUN. -
vvol.uuid
orvvol.name
- Existing classvvol
LUN to bind to the specified classprotocol_endpoint
LUN.
Related ONTAP commands
-
lun bind create
Learn more
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
return_records |
boolean |
query |
False |
The default is false. If set to true, the records are returned.
|
Request Body
Name | Type | Description |
---|---|---|
_links |
||
count |
integer |
The vVol binding between any two specific LUNs is reference counted. When a REST POST is executed for a vVol binding that already exists, the vVol binding reference count is incremented. When a REST DELETE is executed, the vVol binding reference count is decremented. Only when the vVol binding count reaches zero, or the query parameter |
id |
integer |
The ONTAP internal identifier assigned to the vVol binding. The bind identifier is unique amongst all class This property was included in early releases of the REST API for vVols and is maintained for backward compatibility. See the
|
is_optimal |
boolean |
Indicates if the class |
protocol_endpoint |
The class |
|
secondary_id |
string |
The identifier assigned to the vVol binding, known as the secondary LUN ID. The identifier is unique amongst all class The format for a secondary LUN ID is 16 hexadecimal digits (zero-filled) followed by a lower case "h". |
svm |
The SVM in which the vVol binding and its LUNs are located. Required in POST. |
|
vvol |
The class |
Example request
{
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"count": 1,
"id": 1,
"is_optimal": 1,
"protocol_endpoint": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "/vol/volume1/lun1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"secondary_id": "0000D20000010000h",
"svm": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "svm1",
"uuid": "02c9e252-41be-11e9-81d5-00a0986138f7"
},
"vvol": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "/vol/volume1/lun1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
}
}
Response
Status: 201, Created
Name | Type | Description |
---|---|---|
_links |
||
num_records |
integer |
The number of records in the response. |
records |
array[vvol_binding] |
Example response
{
"_links": {
"next": {
"href": "/api/resourcelink"
},
"self": {
"href": "/api/resourcelink"
}
},
"num_records": 1,
"records": [
{
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"count": 1,
"id": 1,
"is_optimal": 1,
"protocol_endpoint": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "/vol/volume1/lun1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"secondary_id": "0000D20000010000h",
"svm": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "svm1",
"uuid": "02c9e252-41be-11e9-81d5-00a0986138f7"
},
"vvol": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "/vol/volume1/lun1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
}
}
]
}
Headers
Name | Description | Type |
---|---|---|
Location |
Useful for tracking the resource location |
string |
Error
Status: Default
ONTAP Error Response Codes
Error Code | Description |
---|---|
2621462 |
The specified SVM does not exist or is not accessible to the caller. |
2621706 |
Both the SVM UUID and SVM name were supplied, but don't refer to the same SVM. |
2621707 |
No SVM was specified. Either |
5374238 |
A LUN in a Snapshot copy was specified. |
5374323 |
The LUN specified as the protocol endpoint LUN is not of class |
5374325 |
The LUN specified as the vVol LUN is not of class |
5374874 |
The UUID and name supplied for the protocol endpoint of Vvol LUN do not refer to the same LUN. Use to the |
5374875 |
The protocol endpoint or vVol LUN was not found or is not accessible to the caller. Use to the |
5374876 |
The protocol endpoint or vVol LUN was not found in the SVM. Use to the |
5374924 |
No protocol endpoint LUN was supplied. |
5374925 |
No vVol LUN was supplied. |
Also see the table of common errors in the Response body overview section of this documentation.
Name | Type | Description |
---|---|---|
error |
Example error
{
"error": {
"arguments": [
{
"code": "string",
"message": "string"
}
],
"code": "4",
"message": "entry doesn't exist",
"target": "uuid"
}
}
Definitions
See Definitions
href
Name | Type | Description |
---|---|---|
href |
string |
_links
Name | Type | Description |
---|---|---|
self |
protocol_endpoint
The class protocol_endpoint
LUN in the vVol binding. Required in POST.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
The fully qualified path name of the LUN composed of the "/vol" prefix, the volume name, the (optional) qtree name, and base name of the LUN. Valid in POST and PATCH. |
uuid |
string |
The unique identifier of the LUN. |
svm
The SVM in which the vVol binding and its LUNs are located. Required in POST.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
The name of the SVM. This field cannot be specified in a PATCH method. |
uuid |
string |
The unique identifier of the SVM. This field cannot be specified in a PATCH method. |
vvol
The class vvol
LUN in the vVol binding. Required in POST.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
The fully qualified path name of the LUN composed of the "/vol" prefix, the volume name, the (optional) qtree name, and base name of the LUN. Valid in POST and PATCH. |
uuid |
string |
The unique identifier of the LUN. |
vvol_binding
A VMware virtual volume (vVol) binding is an association between a LUN of class protocol_endpoint
and a LUN of class vvol
. Class protocol_endpoint
LUNs are mapped to igroups and granted access using the same configuration as class regular
LUNs. When a class vvol
LUN is bound to a mapped class protocol_endpoint
LUN, VMware can access the class vvol
LUN through the class protocol_endpoint
LUN mapping.
Class protocol_endpoint
and vvol
LUNs support many-to-many vVol bindings. A LUN of one class can be bound to zero or more LUNs of the opposite class.
The vVol binding between any two specific LUNs is reference counted. When a REST POST is executed for a vVol binding that already exists, the vVol binding reference count is incremented. When a REST DELETE is executed, the vVol binding reference count is decremented. Only when the vVol binding count reaches zero, or the query parameter delete_all_references
is supplied, is the vVol binding destroyed.
Name | Type | Description |
---|---|---|
_links |
||
count |
integer |
The vVol binding between any two specific LUNs is reference counted. When a REST POST is executed for a vVol binding that already exists, the vVol binding reference count is incremented. When a REST DELETE is executed, the vVol binding reference count is decremented. Only when the vVol binding count reaches zero, or the query parameter |
id |
integer |
The ONTAP internal identifier assigned to the vVol binding. The bind identifier is unique amongst all class This property was included in early releases of the REST API for vVols and is maintained for backward compatibility. See the
|
is_optimal |
boolean |
Indicates if the class |
protocol_endpoint |
The class |
|
secondary_id |
string |
The identifier assigned to the vVol binding, known as the secondary LUN ID. The identifier is unique amongst all class The format for a secondary LUN ID is 16 hexadecimal digits (zero-filled) followed by a lower case "h". |
svm |
The SVM in which the vVol binding and its LUNs are located. Required in POST. |
|
vvol |
The class |
_links
Name | Type | Description |
---|---|---|
next |
||
self |
error_arguments
Name | Type | Description |
---|---|---|
code |
string |
Argument code |
message |
string |
Message argument |
returned_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. |