Skip to main content
A newer release of this product is available.

Create a vVol binding

Contributors

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 or svm.name - Existing SVM in which to create the vVol binding.

  • protocol_endpoint.uuid or protocol_endpoint.name - Existing class protocol_endpoint LUN to bind to the specified class vvol LUN.

  • vvol.uuid or vvol.name - Existing class vvol LUN to bind to the specified class protocol_endpoint LUN.

  • lun bind create

Parameters

Name Type In Required Description

return_records

boolean

query

False

The default is false. If set to true, the records are returned.

  • Default value:

Request Body

Name Type Description

_links

_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 delete_all_references is supplied, is the vVol binding destroyed.

id

integer

The identifier assigned to the vVol binding. The bind identifier is unique amongst all class vvol LUNs bound to the same class protocol_endpoint LUN.

is_optimal

boolean

Indicates if the class procotol_endpoint LUN and the class vvol LUN are on the same cluster node.

protocol_endpoint

protocol_endpoint

The class protocol_endpoint LUN in the vVol binding. Required in POST.

svm

svm

The SVM in which the vVol binding and its LUNs are located. Required in POST.

vvol

vvol

The class vvol LUN in the vVol binding. Required in POST.

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

_links

num_records

integer

Number of records.

records

array[vvol_binding]

Example response
{
  "_links": {
    "next": {
      "href": "/api/resourcelink"
    },
    "self": {
      "href": "/api/resourcelink"
    }
  },
  "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"
      },
      "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"
      }
    }
  ]
}

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 svm.name or svm.uuid must be supplied.

5374238

A LUN in a Snapshot copy was specified.

5374323

The LUN specified as the protocol endpoint LUN is not of class protocol_endpoint.

5374325

The LUN specified as the vVol LUN is not of class vvol.

5374874

The UUID and name supplied for the protocol endpoint of Vvol LUN do not refer to the same LUN. Use to the target property of the error object to differentiate between the protocol endpoint LUN and the vVol LUN.

5374875

The protocol endpoint or vVol LUN was not found or is not accessible to the caller. Use to the target property of the error object to differentiate between the protocol endpoint LUN and the vVol LUN.

5374876

The protocol endpoint or vVol LUN was not found in the SVM. Use to the target property of the error object to differentiate between the protocol endpoint LUN and the vVol LUN.

5374924

No protocol endpoint LUN was supplied.

5374925

No vVol LUN was supplied.

Name Type Description

error

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

Name Type Description

self

href

protocol_endpoint

The class protocol_endpoint LUN in the vVol binding. Required in POST.

Name Type Description

_links

_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

_links

name

string

The name of the SVM.

uuid

string

The unique identifier of the SVM.

vvol

The class vvol LUN in the vVol binding. Required in POST.

Name Type Description

_links

_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

_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 delete_all_references is supplied, is the vVol binding destroyed.

id

integer

The identifier assigned to the vVol binding. The bind identifier is unique amongst all class vvol LUNs bound to the same class protocol_endpoint LUN.

is_optimal

boolean

Indicates if the class procotol_endpoint LUN and the class vvol LUN are on the same cluster node.

protocol_endpoint

protocol_endpoint

The class protocol_endpoint LUN in the vVol binding. Required in POST.

svm

svm

The SVM in which the vVol binding and its LUNs are located. Required in POST.

vvol

vvol

The class vvol LUN in the vVol binding. Required in POST.

Name Type Description

next

href

self

href

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.