Skip to main content

Update an NVMe namespace

Contributors

PATCH /storage/namespaces/{uuid}

Introduced In: 9.6

Updates an NVMe namespace.

  • volume file clone autodelete

  • vserver nvme namespace modify

Parameters

Name Type In Required Description

uuid

string

path

True

The unique identifier of the NVMe namespace to update.

Request Body

Name Type Description

_links

_links

auto_delete

boolean

This property marks the NVMe namespace for auto deletion when the volume containing the namespace runs out of space. This is most commonly set on namespace clones.

When set to true, the NVMe namespace becomes eligible for automatic deletion when the volume runs out of space. Auto deletion only occurs when the volume containing the namespace is also configured for auto deletion and free space in the volume decreases below a particular threshold.

This property is optional in POST and PATCH. The default value for a new NVMe namespace is false.

There is an added computational cost to retrieving this property's value. It is not populated for either a collection GET or an instance GET unless it is explicitly requested using the fields query parameter. See Requesting specific fields to learn more.

clone

clone

This sub-object is used in POST to create a new NVMe namespace as a clone of an existing namespace, or PATCH to overwrite an existing namespace as a clone of another. Setting a property in this sub-object indicates that a namespace clone is desired.

When used in a PATCH, the patched NVMe namespace's data is over-written as a clone of the source and the following properties are preserved from the patched namespace unless otherwise specified as part of the PATCH: auto_delete (unless specified in the request), subsystem_map, status.state, and uuid.

comment

string

A configurable comment available for use by the administrator. Valid in POST and PATCH.

consistency_group

consistency_group

The NVMe namespace's consistency group. This property is populated for NVMe namespaces that are members of a consistency group. If the NVMe namespace is a member of a child consistency group, the parent consistency group is reported.

Platform Specifics

  • Unified ONTAP: An NVMe namespace's consistency group is the consistency group of its containing volume.

  • ASA.Next: An NVMe namespace is optionally associated directly with a consistency group.

  • readOnly: 1

convert

convert

This sub-object is used in POST to convert a valid in-place LUN to an NVMe namespace. Setting a property in this sub-object indicates that a conversion from the specified LUN to NVMe namespace is desired.

create_time

string

The time the NVMe namespace was created.

enabled

boolean

The enabled state of the NVMe namespace. Certain error conditions cause the namespace to become disabled. If the namespace is disabled, you can check the state property to determine what error disabled the namespace. An NVMe namespace is enabled automatically when it is created.

encryption

encryption

Encryption related properties for the NVMe namespace.

Platform Specifics

  • Unified ONTAP: These properties are not available on the NVMe namespace object in the REST API and are not reported for GET requests. See the containing volume object for this information.

  • ASA.Next: Available for GET, POST and PATCH.

location

location

The location of the NVMe namespace within the ONTAP cluster. Valid in POST.

NVMe namespaces do not support rename, or movement between volumes.

  • Introduced in: 9.6

  • readCreate: 1

metric

metric

Performance numbers, such as IOPS latency and throughput

name

string

The fully qualified path name of the NVMe namespace composed of a "/vol" prefix, the volume name, the (optional) qtree name and base name of the namespace. Valid in POST.

NVMe namespaces do not support rename, or movement between volumes.

os_type

string

The operating system type of the NVMe namespace.

Required in POST when creating an NVMe namespace that is not a clone of another. Disallowed in POST when creating a namespace clone.

qos_policy

qos_policy

The QoS policy for the NVMe namspace. Both traditional and adaptive QoS policies are supported. If both property qos_policy.uuid and qos_policy.name are specified in the same request, they must refer to the same QoS policy. To remove the QoS policy from an NVMe namspace, leaving it with no QoS policy, set property qos_policy.name to an empty string ("") in a PATCH request. Valid in POST and PATCH.

Platform Specifics

  • Unified ONTAP: These properties are not available on the NVMe namespace object in the REST API and are not reported for GET requests. You can set a QoS policy on the containing volume.

  • ASA.Next: An NVMe namespace is optionally associated directly with a QoS policy.

space

space

The storage space related properties of the NVMe namespace.

statistics

statistics

These are raw performance numbers, such as IOPS latency and throughput. These numbers are aggregated across all nodes in the cluster and increase with the uptime of the cluster.

status

status

Status information about the NVMe namespace.

subsystem_map

subsystem_map

The NVMe subsystem with which the NVMe namespace is associated. A namespace can be mapped to zero (0) or one (1) subsystems.

There is an added computational cost to retrieving property values for subsystem_map. They are not populated for either a collection GET or an instance GET unless explicitly requested using the fields query parameter. See Requesting specific fields to learn more.

svm

svm

SVM, applies only to SVM-scoped objects.

uuid

string

The unique identifier of the NVMe namespace.

Example request
{
  "_links": {
    "self": {
      "href": "/api/resourcelink"
    }
  },
  "clone": {
    "source": {
      "name": "/vol/volume1/namespace1",
      "uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
    }
  },
  "comment": "string",
  "consistency_group": {
    "_links": {
      "self": {
        "href": "/api/resourcelink"
      }
    },
    "name": "cg1",
    "uuid": "4abc2317-4332-9d37-93a0-20bd29c22df0"
  },
  "convert": {
    "lun": {
      "name": "/vol/volume1/lun1",
      "uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
    }
  },
  "create_time": "2018-06-04 15:00:00 -0400",
  "encryption": {
    "action": "string",
    "key_create_time": "2022-01-01 14:00:00 -0500",
    "key_id": "string",
    "key_manager_attribute": "CRN=v1:bluemix:public:containers-kubernetes:us-south:a/asdfghjkl1234:asdfghjkl1234:worker:kubernetes-asdfghjkl-worker1",
    "state": "string",
    "status": {
      "code": "string",
      "message": "string"
    },
    "type": "string"
  },
  "location": {
    "namespace": "namespace1",
    "node": {
      "_links": {
        "self": {
          "href": "/api/resourcelink"
        }
      },
      "name": "node1",
      "uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
    },
    "qtree": {
      "_links": {
        "self": {
          "href": "/api/resourcelink"
        }
      },
      "id": 1,
      "name": "qt1"
    },
    "volume": {
      "_links": {
        "self": {
          "href": "/api/resourcelink"
        }
      },
      "name": "volume1",
      "uuid": "028baa66-41bd-11e9-81d5-00a0986138f7"
    }
  },
  "metric": {
    "_links": {
      "self": {
        "href": "/api/resourcelink"
      }
    },
    "duration": "PT15S",
    "iops": {
      "read": 200,
      "total": 1000,
      "write": 100
    },
    "latency": {
      "read": 200,
      "total": 1000,
      "write": 100
    },
    "status": "ok",
    "throughput": {
      "read": 200,
      "total": 1000,
      "write": 100
    },
    "timestamp": "2017-01-25 06:20:13 -0500"
  },
  "name": "/vol/volume1/qtree1/namespace1",
  "os_type": "string",
  "qos_policy": {
    "_links": {
      "self": {
        "href": "/api/resourcelink"
      }
    },
    "name": "qos1",
    "uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
  },
  "space": {
    "block_size": 512,
    "size": 1073741824,
    "used": 0
  },
  "statistics": {
    "iops_raw": {
      "read": 200,
      "total": 1000,
      "write": 100
    },
    "latency_raw": {
      "read": 200,
      "total": 1000,
      "write": 100
    },
    "status": "ok",
    "throughput_raw": {
      "read": 200,
      "total": 1000,
      "write": 100
    },
    "timestamp": "2017-01-25 06:20:13 -0500"
  },
  "status": {
    "container_state": "string",
    "state": "online"
  },
  "subsystem_map": {
    "_links": {
      "self": {
        "href": "/api/resourcelink"
      }
    },
    "anagrpid": "00103050h",
    "nsid": "00000001h",
    "subsystem": {
      "_links": {
        "self": {
          "href": "/api/resourcelink"
        }
      },
      "name": "subsystem1",
      "uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
    }
  },
  "svm": {
    "_links": {
      "self": {
        "href": "/api/resourcelink"
      }
    },
    "name": "svm1",
    "uuid": "02c9e252-41be-11e9-81d5-00a0986138f7"
  },
  "uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
}

Response

Status: 200, Ok

Error

Status: Default

ONTAP Error Response Codes

Error Code Description

5374127

An invalid namespace name was specified.

13565952

The namespace clone request failed.

72089724

The specified namespace size is too large.

72089730

The specified namespace cannot be updated as it resides in a Snapshot copy.

72090005

The specified clone.source.uuid and clone.source.name do not refer to the same LUN.

72090006

The specified namespace was not found. This can apply to clone.source or the target namespace. The target property of the error object identifies the property.

72090007

The specified namespace was not found. This can apply to clone.source or the target namespace. The target property of the error object identifies the property.

72090010

An error occurred after successfully overwriting data for the namespace as a clone. Some properties were not modified.

72090011

An error occurred after successfully modifying some of the properties of the namespace. Some properties were not modified.

72090016

The namespace's aggregate is offline. The aggregate must be online to modify or remove the namespace.

72090017

The namespace's volume is offline. The volume must be online to modify or remove the namespace.

72090038

An attempt was made to reduce the size of the specified namespace.

Also see the table of common errors in the Response body overview section of this documentation.

Name Type Description

error

returned_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

source

The source NVMe namespace for a namespace clone operation. This can be specified using property clone.source.uuid or clone.source.name. If both properties are supplied, they must refer to the same namespace.

Valid in POST to create a new NVMe namespace as a clone of the source.

Valid in PATCH to overwrite an existing NVMe namespace's data as a clone of another.

Name Type Description

name

string

The fully qualified path name of the clone source NVMe namespace composed of a "/vol" prefix, the volume name, the (optional) qtree name and base name of the namespace. Valid in POST and PATCH.

uuid

string

The unique identifier of the clone source NVMe namespace. Valid in POST and PATCH.

clone

This sub-object is used in POST to create a new NVMe namespace as a clone of an existing namespace, or PATCH to overwrite an existing namespace as a clone of another. Setting a property in this sub-object indicates that a namespace clone is desired.

When used in a PATCH, the patched NVMe namespace's data is over-written as a clone of the source and the following properties are preserved from the patched namespace unless otherwise specified as part of the PATCH: auto_delete (unless specified in the request), subsystem_map, status.state, and uuid.

Name Type Description

source

source

The source NVMe namespace for a namespace clone operation. This can be specified using property clone.source.uuid or clone.source.name. If both properties are supplied, they must refer to the same namespace.

Valid in POST to create a new NVMe namespace as a clone of the source.

Valid in PATCH to overwrite an existing NVMe namespace's data as a clone of another.

consistency_group

The NVMe namespace's consistency group. This property is populated for NVMe namespaces that are members of a consistency group. If the NVMe namespace is a member of a child consistency group, the parent consistency group is reported.

=== Platform Specifics

  • Unified ONTAP: An NVMe namespace's consistency group is the consistency group of its containing volume.

  • ASA.Next: An NVMe namespace is optionally associated directly with a consistency group.

Name Type Description

_links

_links

name

string

The name of the consistency group.

uuid

string

The unique identifier of the consistency group.

lun

The source LUN for convert operation. This can be specified using property convert.lun.uuid or convert.lun.name. If both properties are supplied, they must refer to the same LUN.

Valid in POST. A convert request from LUN to NVMe namespace cannot be combined with setting any other namespace properties. All other properties of the converted NVMe namespace come from the source LUN.

Name Type Description

name

string

The fully qualified path name of the source LUN composed of a "/vol" prefix, the volume name, the (optional) qtree name and base name of the LUN. Valid in POST.

uuid

string

The unique identifier of the source LUN. Valid in POST.

convert

This sub-object is used in POST to convert a valid in-place LUN to an NVMe namespace. Setting a property in this sub-object indicates that a conversion from the specified LUN to NVMe namespace is desired.

Name Type Description

lun

lun

The source LUN for convert operation. This can be specified using property convert.lun.uuid or convert.lun.name. If both properties are supplied, they must refer to the same LUN.

Valid in POST. A convert request from LUN to NVMe namespace cannot be combined with setting any other namespace properties. All other properties of the converted NVMe namespace come from the source LUN.

status

Name Type Description

code

string

Encryption progress message code.

message

string

Encryption progress message.

encryption

Encryption related properties for the NVMe namespace.

=== Platform Specifics

  • Unified ONTAP: These properties are not available on the NVMe namespace object in the REST API and are not reported for GET requests. See the containing volume object for this information.

  • ASA.Next: Available for GET, POST and PATCH.

Name Type Description

action

string

This property can be used to pause an ongoing rekey or conversion operation or resume a paused rekey or conversion operation. Valid in PATCH.

The following actions are supported for this field:

  • conversion_pause - Pause an encryption conversion operation currently in progress.

  • conversion_resume - Resume a paused encryption conversion operation.

  • rekey_pause - Pause an encryption rekey operation currently in progress.

  • rekey_resume - Resume a paused encryption rekey operation.

enabled

boolean

Creates an encrypted or an unencrypted NVMe namespace. For POST, when set to true, a new key is generated and used to encrypt the NVMe namespace. The underlying SVM must be configured with the key manager. When set to false, the NVMe namespace created will be unencrypted. For PATCH, when set to true, the API encrypts an unencrypted NVMe namespace. An encrypted NVMe namespace cannot be PATCHED to false.

key_create_time

string

Encryption key creation time of the NVMe namespace.

key_id

string

The key ID used for creating encrypted NVMe namespace. A new key-id is generated for creating an encrypted NVMe namespace. This key-id is associated with the generated key.

key_manager_attribute

string

Specifies an additional key manager attribute that is an identifier-value pair, separated by =. For example, CRN=unique-value. This parameter is required when using the POST method and an IBM Key Lore key manager is configured on the SVM.

rekey

boolean

If set to true, re-encrypts the NVMe namespace with a new key. Valid in PATCH.

state

string

NVMe namespace encryption state.

  • encrypted - The NVMe namespace is completely encrypted.

  • encrypting - Encryption operation is in progress.

  • rekeying - Encryption of NVMe namespace with a new key is in progress.

  • unencrypted - The NVMe namespace is not encrypted.

status

status

type

string

NVMe namespace encryption type.

  • none - The NVMe namespace is not encrypted.

  • volume - The NVMe namespace is encrypted with namespace-level encryption.

node

The cluster node that hosts the NVMe namespace.

Name Type Description

_links

_links

name

string

uuid

string

qtree

The qtree in which the NVMe namespace is optionally located. Valid in POST.

If properties name and location.qtree.name and/or location.qtree.uuid are specified in the same request, they must refer to the same qtree.

NVMe namespaces do not support rename.

Name Type Description

_links

_links

id

integer

The identifier for the qtree, unique within the qtree's volume.

name

string

The name of the qtree.

volume

The volume in which the NVMe namespace is located. Valid in POST.

If properties name and location.volume.name and/or location.volume.uuid are specified in the same request, they must refer to the same volume.

NVMe namespaces do not support movement between volumes.

Name Type