NetApp Cluster API

Operations for managing ONTAP cluster configuration, nodes, licensing, and health

OpenAPI Specification

netapp-cluster-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: NetApp ONTAP REST Aggregates Cluster 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: Cluster
  description: Operations for managing ONTAP cluster configuration, nodes, licensing, and health
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
components:
  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
  schemas:
    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
    License:
      type: object
      description: Cluster feature license
      properties:
        name:
          type: string
          description: License name
          examples:
          - NFS
          - CIFS
          - iSCSI
          - FCP
          - SnapMirror
          - SnapRestore
          - FlexClone
          - SnapVault
          - FabricPool
        scope:
          type: string
          description: License scope
          enum:
          - cluster
          - node
          - not_available
          example: cluster
        state:
          type: string
          description: License compliance state
          enum:
          - compliant
          - noncompliant
          - unlicensed
          - unknown
          example: compliant
        licenses:
          type: array
          description: Individual license entries
          items:
            type: object
            properties:
              serial_number:
                type: string
                description: License serial number
              owner:
                type: string
                description: Node or cluster that owns the license
              compliance:
                type: object
                properties:
                  state:
                    type: string
                    enum:
                    - compliant
                    - noncompliant
          example: []
        _links:
          $ref: '#/components/schemas/SelfLink'
    ClusterNode:
      type: object
      description: A node in the ONTAP cluster
      properties:
        uuid:
          type: string
          format: uuid
          description: Node UUID
          readOnly: true
          example: '500123'
        name:
          type: string
          description: Node name
          examples:
          - node1
        model:
          type: string
          description: Hardware model of the node
          readOnly: true
          examples:
          - AFF-A400
        serial_number:
          type: string
          description: System serial number
          readOnly: true
          example: example_value
        uptime:
          type: integer
          description: Node uptime in seconds
          readOnly: true
          example: 10
        version:
          type: object
          description: ONTAP version running on the node
          readOnly: true
          properties:
            full:
              type: string
              description: Full version string
            generation:
              type: integer
            major:
              type: integer
            minor:
              type: integer
          example: example_value
        controller:
          type: object
          description: Node controller information
          readOnly: true
          properties:
            cpu:
              type: object
              properties:
                count:
                  type: integer
                  description: Number of CPU cores
                processor:
                  type: string
                  description: CPU processor model
            memory_size:
              type: integer
              description: Total memory in bytes
              format: int64
            over_temperature:
              type: string
              description: Over-temperature status
              enum:
              - over
              - normal
          example: example_value
        state:
          type: string
          description: Current operational state of the node
          readOnly: true
          enum:
          - up
          - down
          - taken_over
          - waiting_for_giveback
          example: up
        _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
    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'
    Cluster:
      type: object
      description: ONTAP cluster configuration and status
      properties:
        uuid:
          type: string
          format: uuid
          description: Cluster UUID
          readOnly: true
          example: '500123'
        name:
          type: string
          description: Cluster name
          examples:
          - cluster1
        contact:
          type: string
          description: Contact information for the cluster administrator
          example: example_value
        location:
          type: string
          description: Physical location of the cluster
          example: example_value
        version:
          type: object
          description: ONTAP software version
          readOnly: true
          properties:
            full:
              type: string
              description: Full version string
              examples:
              - NetApp Release 9.15.1
            generation:
              type: integer
              description: Major version generation
            major:
              type: integer
              description: Major version number
            minor:
              type: integer
              description: Minor version number
          example: example_value
        dns_domains:
          type: array
          description: DNS domain names for the cluster
          items:
            type: string
          example: []
        ntp_servers:
          type: array
          description: NTP server addresses
          items:
            type: string
          example: []
        timezone:
          type: object
          description: Cluster timezone setting
          properties:
            name:
              type: string
              description: Timezone name (Olson format)
              examples:
              - America/New_York
          example: example_value
        management_interfaces:
          type: array
          description: Cluster management network interfaces
          readOnly: true
          items:
            type: object
            properties:
              ip:
                type: object
                properties:
                  address:
                    type: string
                    format: ipv4
                    description: IPv4 address
          example: []
        nodes:
          type: array
          description: Nodes in the cluster
          readOnly: true
          items:
            $ref: '#/components/schemas/ClusterNodeReference'
          example: []
        _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
  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.