openapi: 3.1.0
info:
title: NetApp ONTAP REST API
description: >-
REST API for managing NetApp ONTAP storage systems. Provides programmatic
access to cluster administration, storage provisioning, data protection, and
networking configuration. The ONTAP REST API is available on all ONTAP 9.6
and later systems, with expanded coverage in each subsequent release. Resources
include clusters, storage virtual machines (SVMs), aggregates, volumes,
LUNs, snapshots, network interfaces, and more.
version: 9.15.1
contact:
name: NetApp Developer Resources
url: https://devnet.netapp.com/
license:
name: NetApp Terms of Use
url: https://www.netapp.com/how-to-buy/sales-terms-and-conditions/
termsOfService: https://www.netapp.com/how-to-buy/sales-terms-and-conditions/
x-logo:
url: https://www.netapp.com/media/na_logo_black_rgb_reg-mark_tcm19-21014.jpg
servers:
- url: https://{clusterMgmtIp}/api
description: ONTAP cluster management endpoint
variables:
clusterMgmtIp:
default: cluster-mgmt-ip
description: IP address or hostname of the ONTAP cluster management LIF
security:
- basicAuth: []
- bearerAuth: []
tags:
- name: Aggregates
description: Operations for managing storage aggregates (local tiers)
- name: Cluster
description: Operations for managing ONTAP cluster configuration, nodes, licensing, and health
- name: Network
description: Operations for managing network interfaces, ports, and IP configuration
- name: Snapshots
description: Operations for managing volume snapshots
- name: SVMs
description: Operations for managing storage virtual machines (SVMs / vservers)
- name: Volumes
description: Operations for creating, modifying, and managing storage volumes
paths:
/cluster:
get:
operationId: getCluster
summary: Netapp Retrieve Cluster Information
description: >-
Retrieves the cluster configuration including name, version, UUID,
contact information, DNS domains, NTP servers, and management interfaces.
tags:
- Cluster
parameters:
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/return_records'
- $ref: '#/components/parameters/return_timeout'
responses:
'200':
description: Cluster information retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Cluster'
application/hal+json:
schema:
$ref: '#/components/schemas/Cluster'
default:
$ref: '#/components/responses/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
patch:
operationId: updateCluster
summary: Netapp Update Cluster Configuration
description: >-
Updates cluster-wide configuration properties such as name, contact,
location, DNS, NTP, and timezone settings.
tags:
- Cluster
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Cluster'
responses:
'200':
description: Cluster configuration updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Cluster'
default:
$ref: '#/components/responses/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/cluster/nodes:
get:
operationId: listClusterNodes
summary: Netapp List Cluster Nodes
description: >-
Retrieves the list of nodes in the cluster, including node name, UUID,
model, serial number, version, uptime, and health status.
tags:
- Cluster
parameters:
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/return_records'
- $ref: '#/components/parameters/return_timeout'
- $ref: '#/components/parameters/max_records'
- $ref: '#/components/parameters/order_by'
responses:
'200':
description: List of cluster nodes retrieved successfully
content:
application/json:
schema:
type: object
properties:
records:
type: array
items:
$ref: '#/components/schemas/ClusterNode'
num_records:
type: integer
description: Number of records returned
_links:
$ref: '#/components/schemas/CollectionLinks'
application/hal+json:
schema:
type: object
properties:
records:
type: array
items:
$ref: '#/components/schemas/ClusterNode'
num_records:
type: integer
_links:
$ref: '#/components/schemas/CollectionLinks'
default:
$ref: '#/components/responses/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/cluster/nodes/{uuid}:
get:
operationId: getClusterNode
summary: Netapp Retrieve a Specific Cluster Node
description: >-
Retrieves information about a specific node in the cluster identified
by its UUID.
tags:
- Cluster
parameters:
- $ref: '#/components/parameters/uuid'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: Node information retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ClusterNode'
default:
$ref: '#/components/responses/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/cluster/licensing/licenses:
get:
operationId: listLicenses
summary: Netapp List Cluster Licenses
description: >-
Retrieves information about the licenses installed on the cluster,
including license name, scope, state, and compliance status.
tags:
- Cluster
parameters:
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/max_records'
responses:
'200':
description: License information retrieved successfully
content:
application/json:
schema:
type: object
properties:
records:
type: array
items:
$ref: '#/components/schemas/License'
num_records:
type: integer
_links:
$ref: '#/components/schemas/CollectionLinks'
default:
$ref: '#/components/responses/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/storage/volumes:
get:
operationId: listVolumes
summary: Netapp List Storage Volumes
description: >-
Retrieves a list of volumes across the cluster. Supports filtering by
SVM, aggregate, state, type, and other attributes. Returns volume
configuration, space usage, performance counters, and relationships.
tags:
- Volumes
parameters:
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/return_records'
- $ref: '#/components/parameters/return_timeout'
- $ref: '#/components/parameters/max_records'
- $ref: '#/components/parameters/order_by'
- name: svm.name
in: query
description: Filter by SVM name
schema:
type: string
- name: name
in: query
description: Filter by volume name
schema:
type: string
- name: state
in: query
description: Filter by volume state
schema:
type: string
enum:
- online
- offline
- restricted
- mixed
- name: type
in: query
description: Filter by volume type
schema:
type: string
enum:
- rw
- dp
- ls
responses:
'200':
description: List of volumes retrieved successfully
content:
application/json:
schema:
type: object
properties:
records:
type: array
items:
$ref: '#/components/schemas/Volume'
num_records:
type: integer
description: Number of records in this response
_links:
$ref: '#/components/schemas/CollectionLinks'
application/hal+json:
schema:
type: object
properties:
records:
type: array
items:
$ref: '#/components/schemas/Volume'
num_records:
type: integer
_links:
$ref: '#/components/schemas/CollectionLinks'
default:
$ref: '#/components/responses/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
operationId: createVolume
summary: Netapp Create a New Volume
description: >-
Creates a new volume on the specified SVM and aggregate. The volume name,
SVM, and aggregate are required. Optional parameters include size,
security style, export policy, tiering policy, QoS policy, and snapshot
policy.
tags:
- Volumes
parameters:
- name: return_records
in: query
description: Return the newly created record
schema:
type: boolean
default: false
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Volume'
responses:
'201':
description: Volume created successfully
headers:
Location:
description: URL of the newly created volume resource
schema:
type: string
format: uri
content:
application/json:
schema:
type: object
properties:
job:
$ref: '#/components/schemas/JobLink'
'202':
description: Volume creation accepted (asynchronous operation)
content:
application/json:
schema:
type: object
properties:
job:
$ref: '#/components/schemas/JobLink'
default:
$ref: '#/components/responses/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/storage/volumes/{uuid}:
get:
operationId: getVolume
summary: Netapp Retrieve a Specific Volume
description: >-
Retrieves detailed information about a specific volume including
space utilization, configuration, state, associated SVM, aggregate,
export policy, snapshot policy, and QoS settings.
tags:
- Volumes
parameters:
- $ref: '#/components/parameters/uuid'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: Volume details retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Volume'
application/hal+json:
schema:
$ref: '#/components/schemas/Volume'
default:
$ref: '#/components/responses/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
patch:
operationId: updateVolume
summary: Netapp Update a Volume
description: >-
Updates the properties of an existing volume. Supports modifying
the volume name, size, comment, state, export policy, snapshot
policy, tiering policy, and QoS settings.
tags:
- Volumes
parameters:
- $ref: '#/components/parameters/uuid'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Volume'
responses:
'200':
description: Volume updated successfully
content:
application/json:
schema:
type: object
properties:
job:
$ref: '#/components/schemas/JobLink'
'202':
description: Volume update accepted (asynchronous operation)
content:
application/json:
schema:
type: object
properties:
job:
$ref: '#/components/schemas/JobLink'
default:
$ref: '#/components/responses/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
delete:
operationId: deleteVolume
summary: Netapp Delete a Volume
description: >-
Deletes an existing volume. The volume must be offline or unmounted
before deletion. This is an asynchronous operation.
tags:
- Volumes
parameters:
- $ref: '#/components/parameters/uuid'
responses:
'200':
description: Volume deleted successfully
content:
application/json:
schema:
type: object
properties:
job:
$ref: '#/components/schemas/JobLink'
'202':
description: Volume deletion accepted (asynchronous operation)
content:
application/json:
schema:
type: object
properties:
job:
$ref: '#/components/schemas/JobLink'
default:
$ref: '#/components/responses/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/storage/volumes/{volume.uuid}/snapshots:
get:
operationId: listSnapshots
summary: Netapp List Snapshots for a Volume
description: >-
Retrieves the list of snapshots for a specific volume, including
snapshot name, UUID, creation time, and size.
tags:
- Snapshots
parameters:
- name: volume.uuid
in: path
required: true
description: UUID of the volume
schema:
type: string
format: uuid
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/max_records'
- $ref: '#/components/parameters/order_by'
responses:
'200':
description: List of snapshots retrieved successfully
content:
application/json:
schema:
type: object
properties:
records:
type: array
items:
$ref: '#/components/schemas/Snapshot'
num_records:
type: integer
_links:
$ref: '#/components/schemas/CollectionLinks'
default:
$ref: '#/components/responses/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
operationId: createSnapshot
summary: Netapp Create a Volume Snapshot
description: >-
Creates a new snapshot of the specified volume. The snapshot name
is required. An optional comment and expiry time can be specified.
tags:
- Snapshots
parameters:
- name: volume.uuid
in: path
required: true
description: UUID of the volume
schema:
type: string
format: uuid
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Snapshot'
responses:
'201':
description: Snapshot created successfully
content:
application/json:
schema:
type: object
properties:
job:
$ref: '#/components/schemas/JobLink'
'202':
description: Snapshot creation accepted (asynchronous operation)
content:
application/json:
schema:
type: object
properties:
job:
$ref: '#/components/schemas/JobLink'
default:
$ref: '#/components/responses/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/storage/aggregates:
get:
operationId: listAggregates
summary: Netapp List Storage Aggregates
description: >-
Retrieves a list of aggregates (local tiers) in the cluster. Returns
aggregate configuration, space usage, state, RAID details, and the
owning node. Aggregates are the physical storage pools from which
volumes are provisioned.
tags:
- Aggregates
parameters:
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/return_records'
- $ref: '#/components/parameters/return_timeout'
- $ref: '#/components/parameters/max_records'
- $ref: '#/components/parameters/order_by'
- name: name
in: query
description: Filter by aggregate name
schema:
type: string
- name: node.name
in: query
description: Filter by owning node name
schema:
type: string
- name: state
in: query
description: Filter by aggregate state
schema:
type: string
enum:
- online
- offline
- restricted
- creating
- destroying
- failed
- frozen
- inconsistent
- iron_restricted
- mounting
- partial
- quiesced
- quiescing
- relocated
- relocating
- reverted
- unknown
- unmounted
- unmounting
responses:
'200':
description: List of aggregates retrieved successfully
content:
application/json:
schema:
type: object
properties:
records:
type: array
items:
$ref: '#/components/schemas/Aggregate'
num_records:
type: integer
_links:
$ref: '#/components/schemas/CollectionLinks'
application/hal+json:
schema:
type: object
properties:
records:
type: array
items:
$ref: '#/components/schemas/Aggregate'
num_records:
type: integer
_links:
$ref: '#/components/schemas/CollectionLinks'
default:
$ref: '#/components/responses/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
operationId: createAggregate
summary: Netapp Create a New Aggregate
description: >-
Creates a new aggregate (local tier) on the specified node. The
aggregate name, node, disk count, and RAID type are required.
tags:
- Aggregates
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Aggregate'
responses:
'201':
description: Aggregate created successfully
content:
application/json:
schema:
type: object
properties:
job:
$ref: '#/components/schemas/JobLink'
'202':
description: Aggregate creation accepted (asynchronous operation)
content:
application/json:
schema:
type: object
properties:
job:
$ref: '#/components/schemas/JobLink'
default:
$ref: '#/components/responses/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/storage/aggregates/{uuid}:
get:
operationId: getAggregate
summary: Netapp Retrieve a Specific Aggregate
description: >-
Retrieves detailed information about a specific aggregate including
space usage, RAID configuration, state, and owning node.
tags:
- Aggregates
parameters:
- $ref: '#/components/parameters/uuid'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: Aggregate details retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Aggregate'
application/hal+json:
schema:
$ref: '#/components/schemas/Aggregate'
default:
$ref: '#/components/responses/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
patch:
operationId: updateAggregate
summary: Netapp Update an Aggregate
description: >-
Updates the properties of an existing aggregate. Supports modifying
the name and adding disks to expand capacity.
tags:
- Aggregates
parameters:
- $ref: '#/components/parameters/uuid'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Aggregate'
responses:
'200':
description: Aggregate updated successfully
content:
application/json:
schema:
type: object
properties:
job:
$ref: '#/components/schemas/JobLink'
'202':
description: Aggregate update accepted (asynchronous operation)
content:
application/json:
schema:
type: object
properties:
job:
$ref: '#/components/schemas/JobLink'
default:
$ref: '#/components/responses/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
delete:
operationId: deleteAggregate
summary: Netapp Delete an Aggregate
description: >-
Deletes an existing aggregate. The aggregate must be empty (no volumes)
and offline before deletion.
tags:
- Aggregates
parameters:
- $ref: '#/components/parameters/uuid'
responses:
'200':
description: Aggregate deleted successfully
content:
application/json:
schema:
type: object
properties:
job:
$ref: '#/components/schemas/JobLink'
'202':
description: Aggregate deletion accepted (asynchronous operation)
content:
application/json:
schema:
type: object
properties:
job:
$ref: '#/components/schemas/JobLink'
default:
$ref: '#/components/responses/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/svm/svms:
get:
operationId: listSvms
summary: Netapp List Storage Virtual Machines
description: >-
Retrieves a list of storage virtual machines (SVMs) in the cluster.
SVMs are secure virtualized storage containers that provide data
access to clients. Each SVM has its own volumes, network interfaces,
protocols, and security configuration.
tags:
- SVMs
parameters:
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/return_records'
- $ref: '#/components/parameters/return_timeout'
- $ref: '#/components/parameters/max_records'
- $ref: '#/components/parameters/order_by'
- name: name
in: query
description: Filter by SVM name
schema:
type: string
- name: state
in: query
description: Filter by SVM state
schema:
type: string
enum:
- starting
- running
- stopping
- stopped
- deleting
responses:
'200':
description: List of SVMs retrieved successfully
content:
application/json:
schema:
type: object
properties:
records:
type: array
items:
$ref: '#/components/schemas/Svm'
num_records:
type: integer
_links:
$ref: '#/components/schemas/CollectionLinks'
application/hal+json:
schema:
type: object
properties:
records:
type: array
items:
$ref: '#/components/schemas/Svm'
num_records:
type: integer
_links:
$ref: '#/components/schemas/CollectionLinks'
default:
$ref: '#/components/responses/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
operationId: createSvm
summary: Netapp Create a New Svm
description: >-
Creates a new storage virtual machine (SVM). The SVM name is required.
Optional parameters include allowed protocols (NFS, CIFS, iSCSI, FCP),
aggregates, language, snapshot policy, and IP interface configuration.
tags:
- SVMs
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Svm'
responses:
'201':
description: SVM created successfully
content:
application/json:
schema:
type: object
properties:
job:
$ref: '#/components/schemas/JobLink'
'202':
description: SVM creation accepted (asynchronous operation)
content:
application/json:
schema:
type: object
properties:
job:
$ref: '#/components/schemas/JobLink'
default:
$ref: '#/components/responses/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/svm/svms/{uuid}:
get:
operationId: getSvm
summary: Netapp Retrieve a Specific Svm
description: >-
Retrieves detailed information about a specific SVM including name,
state, allowed protocols, IP interfaces, aggregates, and CIFS/NFS
configuration.
tags:
- SVMs
parameters:
- $ref: '#/components/parameters/uuid'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: SVM details retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Svm'
application/hal+json:
schema:
$ref: '#/components/schemas/Svm'
default:
$ref: '#/components/responses/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
patch:
operationId: updateSvm
summary: Netapp Update an Svm
description: >-
Updates the properties of an existing SVM. Supports modifying name,
allowed protocols, language, comment, and snapshot policy.
tags:
- SVMs
parameters:
- $ref: '#/components/parameters/uuid'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Svm'
responses:
'200':
description: SVM updated successfully
content:
application/json:
schema:
type: object
properties:
job:
$ref: '#/components/schemas/JobLink'
'202':
description: SVM update accepted (asynchronous operation)
content:
application/json:
schema:
type: object
properties:
job:
$ref: '#/components/schemas/JobLink'
default:
$ref: '#/components/responses/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
delete:
operationId: deleteSvm
summary: Netapp Delete an Svm
description: >-
Deletes an existing SVM and all associated configuration. All volumes
and network interfaces in the SVM must be deleted first.
tags:
- SVMs
parameters:
- $ref: '#/components/parameters/uuid'
responses:
'200':
description: SVM deleted successfully
content:
application/json:
schema:
type: object
properties:
job:
$ref: '#/components/schemas/JobLink'
'202':
description: SVM deletion accepted (asynchronous operation)
content:
application/json:
schema:
type: object
properties:
job:
$ref: '#/components/schemas/JobLink'
default:
$ref: '#/components/responses/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/network/ip/interfaces:
get:
operationId: listNetworkInterfaces
summary: Netapp List Network Interfaces
description: >-
Retrieves a list of network interfaces (LIFs) across the cluster.
Network interfaces provide data access and management connectivity
for SVMs and the cluster.
tags:
- Network
parameters:
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/max_records'
- $ref: '#/components/parameters/order_by'
- name: svm.name
in: query
description: Filter by SVM name
schema:
type: string
- name: name
in: query
description: Filter by interface name
schema:
type: string
responses:
'200':
description: List of network interfaces retrieved successfully
content:
application/json:
schema:
type: object
properties:
records:
type: array
items:
$ref: '#/components/schemas/NetworkInterface'
num_records:
type: integer
_links:
$ref: '#/components/schemas/CollectionLinks'
default:
$ref: '#/components/responses/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
components:
securitySchemes:
basicAuth:
type: http
scheme: basic
description: >-
HTTP basic authentication using ONTAP user credentials. Provide the
cluster or SVM administrator username and password.
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: >-
OAuth 2.0 bearer token authentication. Supported in ONTAP 9.8 and later.
parameters:
uuid:
name: uuid
in: path
required: true
description: The unique identifier (UUID) of the resource
schema:
type: string
format: uuid
fields:
# --- truncated at 32 KB (67 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/netapp/refs/heads/main/openapi/netapp-ontap-openapi.yml