NetApp SVMs API

Operations for managing storage virtual machines (SVMs / vservers)

OpenAPI Specification

netapp-svms-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: NetApp ONTAP REST Aggregates SVMs 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: SVMs
  description: Operations for managing storage virtual machines (SVMs / vservers)
paths:
  /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
components:
  schemas:
    Svm:
      type: object
      description: A storage virtual machine (SVM), also known as a vserver, is a secure virtual storage server that provides isolated data access to clients. Each SVM has its own set of volumes, network interfaces, and protocol configurations.
      properties:
        uuid:
          type: string
          format: uuid
          description: SVM UUID
          readOnly: true
          example: '500123'
        name:
          type: string
          description: SVM name (unique within the cluster)
          examples:
          - svm1
        state:
          type: string
          description: SVM operational state
          enum:
          - starting
          - running
          - stopping
          - stopped
          - deleting
          example: starting
        subtype:
          type: string
          description: SVM subtype
          readOnly: true
          enum:
          - default
          - dp_destination
          - sync_source
          - sync_destination
          example: default
        language:
          type: string
          description: Default language encoding for volumes in the SVM
          examples:
          - c.utf_8
        comment:
          type: string
          description: Optional comment or description for the SVM
          example: example_value
        ipspace:
          type: object
          description: IPspace associated with the SVM
          properties:
            name:
              type: string
              description: IPspace name
              examples:
              - Default
            uuid:
              type: string
              format: uuid
          example: example_value
        aggregates:
          type: array
          description: Aggregates assigned to the SVM for volume provisioning
          items:
            $ref: '#/components/schemas/AggregateReference'
          example: []
        ip_interfaces:
          type: array
          description: Network interfaces configured for the SVM
          readOnly: true
          items:
            $ref: '#/components/schemas/NetworkInterface'
          example: []
        nfs:
          type: object
          description: NFS protocol configuration
          properties:
            enabled:
              type: boolean
              description: Whether NFS is enabled on the SVM
            allowed:
              type: boolean
              description: Whether NFS is allowed on the SVM
          example: example_value
        cifs:
          type: object
          description: CIFS/SMB protocol configuration
          properties:
            enabled:
              type: boolean
              description: Whether CIFS is enabled on the SVM
            allowed:
              type: boolean
              description: Whether CIFS is allowed on the SVM
            name:
              type: string
              description: CIFS server name
          example: example_value
        iscsi:
          type: object
          description: iSCSI protocol configuration
          properties:
            enabled:
              type: boolean
              description: Whether iSCSI is enabled on the SVM
            allowed:
              type: boolean
              description: Whether iSCSI is allowed on the SVM
          example: example_value
        fcp:
          type: object
          description: Fibre Channel Protocol configuration
          properties:
            enabled:
              type: boolean
              description: Whether FCP is enabled on the SVM
            allowed:
              type: boolean
              description: Whether FCP is allowed on the SVM
          example: example_value
        nvme:
          type: object
          description: NVMe over Fabrics protocol configuration
          properties:
            enabled:
              type: boolean
              description: Whether NVMe is enabled on the SVM
            allowed:
              type: boolean
              description: Whether NVMe is allowed on the SVM
          example: example_value
        snapshot_policy:
          type: object
          description: Default snapshot policy for the SVM
          properties:
            name:
              type: string
            uuid:
              type: string
              format: uuid
          example: example_value
        dns:
          type: object
          description: DNS configuration for the SVM
          properties:
            domains:
              type: array
              description: DNS domain names
              items:
                type: string
            servers:
              type: array
              description: DNS server IP addresses
              items:
                type: string
          example: example_value
        certificate:
          type: object
          description: SSL/TLS certificate for the SVM
          properties:
            uuid:
              type: string
              format: uuid
            name:
              type: string
          example: example_value
        max_volumes:
          type: string
          description: Maximum number of volumes allowed on the SVM
          example: example_value
        _links:
          $ref: '#/components/schemas/SelfLink'
    CollectionLinks:
      type: object
      description: Pagination links for collection responses
      properties:
        self:
          type: object
          properties:
            href:
              type: string
              format: uri
          example: example_value
        next:
          type: object
          description: Link to the next page of results
          properties:
            href:
              type: string
              format: uri
          example: example_value
    AggregateReference:
      type: object
      description: Reference to an aggregate
      properties:
        uuid:
          type: string
          format: uuid
          example: '500123'
        name:
          type: string
          example: Example Title
        _links:
          $ref: '#/components/schemas/SelfLink'
    NetworkInterface:
      type: object
      description: A network interface (LIF) providing data or management access
      properties:
        uuid:
          type: string
          format: uuid
          description: Network interface UUID
          readOnly: true
          example: '500123'
        name:
          type: string
          description: Interface name
          examples:
          - lif1
        ip:
          type: object
          description: IP address configuration
          properties:
            address:
              type: string
              description: IP address
              examples:
              - 192.168.1.100
            netmask:
              type: string
              description: Network mask
              examples:
              - 255.255.255.0
            family:
              type: string
              description: IP address family
              enum:
              - ipv4
              - ipv6
          example: example_value
        state:
          type: string
          description: Operational state of the interface
          readOnly: true
          enum:
          - up
          - down
          example: up
        enabled:
          type: boolean
          description: Whether the interface is administratively enabled
          example: true
        scope:
          type: string
          description: Interface scope
          enum:
          - svm
          - cluster
          example: svm
        service_policy:
          type: object
          description: Service policy governing the interface
          properties:
            name:
              type: string
              description: Service policy name
              examples:
              - default-data-files
          example: example_value
        svm:
          $ref: '#/components/schemas/SvmReference'
        location:
          type: object
          description: Current location of the interface
          properties:
            home_node:
              $ref: '#/components/schemas/ClusterNodeReference'
            home_port:
              type: object
              properties:
                name:
                  type: string
                  description: Port name
                  examples:
                  - e0d
                node:
                  $ref: '#/components/schemas/ClusterNodeReference'
            node:
              $ref: '#/components/schemas/ClusterNodeReference'
            port:
              type: object
              properties:
                name:
                  type: string
                node:
                  $ref: '#/components/schemas/ClusterNodeReference'
            is_home:
              type: boolean
              description: Whether the interface is on its home port
          example: example_value
        _links:
          $ref: '#/components/schemas/SelfLink'
    SvmReference:
      type: object
      description: Reference to an SVM
      properties:
        uuid:
          type: string
          format: uuid
          example: '500123'
        name:
          type: string
          example: Example Title
        _links:
          $ref: '#/components/schemas/SelfLink'
    SelfLink:
      type: object
      description: HAL self link
      properties:
        self:
          type: object
          properties:
            href:
              type: string
              format: uri
              description: URL of this resource
          example: example_value
    JobLink:
      type: object
      description: Reference to an asynchronous job
      properties:
        uuid:
          type: string
          format: uuid
          description: Job UUID
          example: '500123'
        _links:
          type: object
          properties:
            self:
              type: object
              properties:
                href:
                  type: string
                  format: uri
                  description: URL to retrieve the job status
          example: example_value
    ClusterNodeReference:
      type: object
      description: Reference to a cluster node
      properties:
        uuid:
          type: string
          format: uuid
          example: '500123'
        name:
          type: string
          example: Example Title
        _links:
          $ref: '#/components/schemas/SelfLink'
    ErrorResponse:
      type: object
      description: ONTAP REST API error response
      properties:
        error:
          type: object
          properties:
            message:
              type: string
              description: Human-readable error message
            code:
              type: string
              description: Error code
            target:
              type: string
              description: The field or resource that caused the error
          example: example_value
  parameters:
    uuid:
      name: uuid
      in: path
      required: true
      description: The unique identifier (UUID) of the resource
      schema:
        type: string
        format: uuid
    order_by:
      name: order_by
      in: query
      required: false
      description: Comma-separated list of fields to sort by. Add 'desc' after a field name to sort in descending order (e.g., name desc).
      schema:
        type: string
    return_records:
      name: return_records
      in: query
      required: false
      description: If true, return the records in the response body
      schema:
        type: boolean
        default: true
    fields:
      name: fields
      in: query
      required: false
      description: Comma-separated list of fields to return. Use * for all fields. Nested fields can be specified using dot notation (e.g., space.size).
      schema:
        type: string
    max_records:
      name: max_records
      in: query
      required: false
      description: Maximum number of records to return per page
      schema:
        type: integer
        minimum: 1
        maximum: 10000
    return_timeout:
      name: return_timeout
      in: query
      required: false
      description: The number of seconds to wait for the response. If the operation takes longer, a job link is returned instead (0-120 seconds).
      schema:
        type: integer
        minimum: 0
        maximum: 120
        default: 15
  responses:
    ErrorResponse:
      description: Error response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  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.