NetApp Aggregates API

Operations for managing storage aggregates (local tiers)

OpenAPI Specification

netapp-aggregates-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: NetApp ONTAP REST Aggregates 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)
paths:
  /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
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
    Aggregate:
      type: object
      description: An aggregate (local tier) is a collection of physical disks that provides a pool of storage from which FlexVol volumes are provisioned.
      properties:
        uuid:
          type: string
          format: uuid
          description: Aggregate UUID
          readOnly: true
          example: '500123'
        name:
          type: string
          description: Aggregate name
          examples:
          - aggr1
        state:
          type: string
          description: Aggregate operational state
          readOnly: true
          enum:
          - online
          - offline
          - restricted
          - creating
          - destroying
          - failed
          - frozen
          - inconsistent
          - iron_restricted
          - mounting
          - partial
          - quiesced
          - quiescing
          - relocated
          - relocating
          - reverted
          - unknown
          - unmounted
          - unmounting
          example: online
        node:
          $ref: '#/components/schemas/ClusterNodeReference'
        space:
          type: object
          description: Aggregate space usage
          properties:
            block_storage:
              type: object
              description: Block storage space
              properties:
                size:
                  type: integer
                  format: int64
                  description: Total usable space in bytes
                available:
                  type: integer
                  format: int64
                  description: Available space in bytes
                used:
                  type: integer
                  format: int64
                  description: Used space in bytes
                percent_used:
                  type: integer
                  description: Percentage of block storage used
                full_threshold_percent:
                  type: integer
                  description: Threshold percentage at which the aggregate is considered full
                nearly_full_threshold_percent:
                  type: integer
                  description: Threshold percentage for nearly full warning
            cloud_storage:
              type: object
              description: FabricPool cloud tier space
              properties:
                used:
                  type: integer
                  format: int64
                  description: Space used in the cloud tier in bytes
            efficiency:
              type: object
              description: Storage efficiency information
              properties:
                savings:
                  type: integer
                  format: int64
                  description: Total space saved through efficiency
                ratio:
                  type: number
                  format: double
                  description: Data reduction ratio
                logical_used:
                  type: integer
                  format: int64
                  description: Logical space used before efficiency savings
          example: example_value
        block_storage:
          type: object
          description: Block storage configuration
          properties:
            primary:
              type: object
              properties:
                disk_count:
                  type: integer
                  description: Number of disks in the aggregate
                disk_class:
                  type: string
                  description: Class of disks
                  enum:
                  - capacity
                  - performance
                  - archive
                  - solid_state
                  - array
                  - virtual
                  - data_center
                  - capacity_flash
                raid_type:
                  type: string
                  description: RAID type
                  enum:
                  - raid4
                  - raid_dp
                  - raid_tec
                  - raid0
                raid_size:
                  type: integer
                  description: Number of disks per RAID group
                checksum_style:
                  type: string
                  description: Checksum style
                  enum:
                  - block
                  - advanced_zoned
            mirror:
              type: object
              properties:
                enabled:
                  type: boolean
                  description: Whether SyncMirror is enabled
                state:
                  type: string
                  description: Mirror state
                  enum:
                  - unmirrored
                  - cp_count_check
                  - limbo
                  - mirrored
          example: example_value
        data_encryption:
          type: object
          description: Aggregate encryption configuration
          properties:
            software_encryption_enabled:
              type: boolean
              description: Whether software encryption is enabled on the aggregate
            drive_protection_enabled:
              type: boolean
              description: Whether self-encrypting drives are used
          example: example_value
        cloud_storage:
          type: object
          description: FabricPool configuration
          properties:
            attach_eligible:
              type: boolean
              description: Whether the aggregate is eligible for FabricPool attachment
          example: example_value
        create_time:
          type: string
          format: date-time
          description: Time when the aggregate was created
          readOnly: true
          example: '2026-01-15T10:30:00Z'
        _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
  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.