Incus storage API

The storage API from Incus — 39 operation(s) for storage.

Operations 70

GET /1.0/storage-pools Get the storage pools #
POST /1.0/storage-pools Add a storage pool #
DELETE /1.0/storage-pools/{name}/buckets/{bucketName} Delete the storage bucket #
PATCH /1.0/storage-pools/{name}/buckets/{bucketName} Partially update the storage bucket. #
PUT /1.0/storage-pools/{name}/buckets/{bucketName} Update the storage bucket #
DELETE /1.0/storage-pools/{name}/buckets/{bucketName}/keys/{keyName} Delete the storage bucket key #
PUT /1.0/storage-pools/{name}/buckets/{bucketName}/keys/{keyName} Update the storage bucket key #
GET /1.0/storage-pools/{name}/resources Get storage pool resources information #
DELETE /1.0/storage-pools/{poolName} Delete the storage pool #
GET /1.0/storage-pools/{poolName} Get the storage pool #
PATCH /1.0/storage-pools/{poolName} Partially update the storage pool #
PUT /1.0/storage-pools/{poolName} Update the storage pool #
GET /1.0/storage-pools/{poolName}/buckets Get the storage pool buckets #
POST /1.0/storage-pools/{poolName}/buckets Add a storage pool bucket. #
GET /1.0/storage-pools/{poolName}/buckets/{bucketName} Get the storage pool bucket #
GET /1.0/storage-pools/{poolName}/buckets/{bucketName}/backups Get the storage bucket backups #
POST /1.0/storage-pools/{poolName}/buckets/{bucketName}/backups Create a storage bucket backup #
DELETE /1.0/storage-pools/{poolName}/buckets/{bucketName}/backups/{backupName} Delete a storage bucket backup #
GET /1.0/storage-pools/{poolName}/buckets/{bucketName}/backups/{backupName} Get the storage bucket backup #
POST /1.0/storage-pools/{poolName}/buckets/{bucketName}/backups/{backupName} Rename a storage bucket backup #
GET /1.0/storage-pools/{poolName}/buckets/{bucketName}/backups/{backupName}/export Get the raw backup file #
GET /1.0/storage-pools/{poolName}/buckets/{bucketName}/backups?recursion=1 Get the storage bucket backups #
GET /1.0/storage-pools/{poolName}/buckets/{bucketName}/keys Get the storage pool bucket keys #
POST /1.0/storage-pools/{poolName}/buckets/{bucketName}/keys Add a storage pool bucket key. #
GET /1.0/storage-pools/{poolName}/buckets/{bucketName}/keys/{keyName} Get the storage pool bucket key #
GET /1.0/storage-pools/{poolName}/buckets/{bucketName}/keys?recursion=1 Get the storage pool bucket keys #
GET /1.0/storage-pools/{poolName}/buckets/{bucketName}?recursion=1 Get the full storage pool bucket details #
GET /1.0/storage-pools/{poolName}/buckets?recursion=1 Get the storage pool buckets #
GET /1.0/storage-pools/{poolName}/buckets?recursion=2 Get the storage pool bucket details #
GET /1.0/storage-pools/{poolName}/volumes Get the storage volumes #
POST /1.0/storage-pools/{poolName}/volumes Add a storage volume #
GET /1.0/storage-pools/{poolName}/volumes/{type} Get the storage volumes #
POST /1.0/storage-pools/{poolName}/volumes/{type} Add a storage volume #
DELETE /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName} Delete the storage volume #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName} Get the storage volume #
PATCH /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName} Partially update the storage volume #
POST /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName} Rename or move/migrate a storage volume #
PUT /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName} Update the storage volume #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/backups Get the storage volume backups #
POST /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/backups Create a storage volume backup #
DELETE /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/backups/{backupName} Delete a storage volume backup #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/backups/{backupName} Get the storage volume backup #
POST /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/backups/{backupName} Rename a storage volume backup #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/backups/{backupName}/export Get the raw backup file #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/backups?recursion=1 Get the storage volume backups #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/bitmaps Get the storage volume dirty bitmaps #
POST /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/bitmaps Create a storage volume bitmap #
DELETE /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/bitmaps/{bitmapName} Delete a storage volume bitmap #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/bitmaps/{bitmapName} Get the storage volume dirty bitmap #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/bitmaps?recursion=1 Get the storage volume dirty bitmaps #
DELETE /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/files Delete a file #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/files Get a file #
HEAD /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/files Get metadata for a file #
POST /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/files Create or replace a file #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/nbd Get the storage volume NBD connection #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/sftp Get the storage volume SFTP connection #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/snapshots Get the storage volume snapshots #
POST /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/snapshots Create a storage volume snapshot #
DELETE /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/snapshots/{snapshotName} Delete a storage volume snapshot #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/snapshots/{snapshotName} Get the storage volume snapshot #
PATCH /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/snapshots/{snapshotName} Partially update the storage volume snapshot #
POST /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/snapshots/{snapshotName} Rename a storage volume snapshot #
PUT /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/snapshots/{snapshotName} Update the storage volume snapshot #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/snapshots?recursion=1 Get the storage volume snapshots #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/state Get the storage volume state #
GET /1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}?recursion=1 Get the full storage volume details #
GET /1.0/storage-pools/{poolName}/volumes/{type}?recursion=1 Get the storage volumes #
GET /1.0/storage-pools/{poolName}/volumes/{type}?recursion=2 Get the storage volumes with all details #
GET /1.0/storage-pools/{poolName}/volumes?recursion=1 Get the storage volumes #
GET /1.0/storage-pools?recursion=1 Get the storage pools #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/incus-storage-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

incus-storage-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: lxc-devel@lists.linuxcontainers.org
    name: Incus upstream
    url: https://github.com/lxc/incus
  description: 'This is the REST API used by all Incus clients.

    Internal endpoints aren''t included in this documentation.


    The Incus API is available over both a local unix+http and remote https API.

    Authentication for local users relies on group membership and access to the unix socket.

    For remote users, the default authentication method is TLS client

    certificates.'
  license:
    name: Apache-2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  title: Incus external REST certificates Storage API
  version: '1.0'
tags:
- name: storage
paths:
  /1.0/storage-pools:
    get:
      description: Returns a list of storage pools (URLs).
      operationId: storage_pools_get
      parameters:
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      - description: Collection filter
        example: default
        in: query
        name: filter
        schema:
          type: string
      responses:
        '200':
          description: API endpoints
          content:
            application/json:
              schema:
                description: Sync response
                properties:
                  metadata:
                    description: List of endpoints
                    example: "[\n  \"/1.0/storage-pools/local\",\n  \"/1.0/storage-pools/remote\"\n]"
                    items:
                      type: string
                    type: array
                  status:
                    description: Status description
                    example: Success
                    type: string
                  status_code:
                    description: Status code
                    example: 200
                    type: integer
                  type:
                    description: Response type
                    example: sync
                    type: string
                type: object
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Get the storage pools
      tags:
      - storage
    post:
      description: 'Creates a new storage pool.

        When clustered, storage pools require individual POST for each cluster member prior to a global POST.'
      operationId: storage_pools_post
      parameters:
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      - description: Cluster member name
        example: server01
        in: query
        name: target
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/EmptySyncResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Add a storage pool
      tags:
      - storage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StoragePoolsPost'
        description: Storage pool
        required: true
  /1.0/storage-pools/{name}/buckets/{bucketName}:
    delete:
      description: Removes the storage bucket.
      operationId: storage_pool_bucket_delete
      parameters:
      - description: Resource name
        in: path
        name: name
        required: true
        schema:
          type: string
      - description: Storage bucket name
        in: path
        name: bucketName
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      - description: Cluster member name
        example: server01
        in: query
        name: target
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/EmptySyncResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Delete the storage bucket
      tags:
      - storage
    patch:
      description: Updates a subset of the storage bucket configuration.
      operationId: storage_pool_bucket_patch
      parameters:
      - description: Resource name
        in: path
        name: name
        required: true
        schema:
          type: string
      - description: Storage bucket name
        in: path
        name: bucketName
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      - description: Cluster member name
        example: server01
        in: query
        name: target
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/EmptySyncResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Partially update the storage bucket.
      tags:
      - storage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StorageBucketPut'
        description: Storage bucket configuration
        required: true
    put:
      description: Updates the entire storage bucket configuration.
      operationId: storage_pool_bucket_put
      parameters:
      - description: Resource name
        in: path
        name: name
        required: true
        schema:
          type: string
      - description: Storage bucket name
        in: path
        name: bucketName
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      - description: Cluster member name
        example: server01
        in: query
        name: target
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/EmptySyncResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Update the storage bucket
      tags:
      - storage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StorageBucketPut'
        description: Storage bucket configuration
        required: true
  /1.0/storage-pools/{name}/buckets/{bucketName}/keys/{keyName}:
    delete:
      description: Removes the storage bucket key.
      operationId: storage_pool_bucket_key_delete
      parameters:
      - description: Resource name
        in: path
        name: name
        required: true
        schema:
          type: string
      - description: Storage bucket name
        in: path
        name: bucketName
        required: true
        schema:
          type: string
      - description: Storage bucket key name
        in: path
        name: keyName
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      - description: Cluster member name
        example: server01
        in: query
        name: target
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/EmptySyncResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Delete the storage bucket key
      tags:
      - storage
    put:
      description: Updates the entire storage bucket key configuration.
      operationId: storage_pool_bucket_key_put
      parameters:
      - description: Resource name
        in: path
        name: name
        required: true
        schema:
          type: string
      - description: Storage bucket name
        in: path
        name: bucketName
        required: true
        schema:
          type: string
      - description: Storage bucket key name
        in: path
        name: keyName
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      - description: Cluster member name
        example: server01
        in: query
        name: target
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/EmptySyncResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Update the storage bucket key
      tags:
      - storage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StorageBucketKeyPut'
        description: Storage bucket key configuration
        required: true
  /1.0/storage-pools/{name}/resources:
    get:
      description: Gets the usage information for the storage pool.
      operationId: storage_pool_resources
      parameters:
      - description: Resource name
        in: path
        name: name
        required: true
        schema:
          type: string
      - description: Cluster member name
        example: server01
        in: query
        name: target
        schema:
          type: string
      responses:
        '200':
          description: Hardware resources
          content:
            application/json:
              schema:
                description: Sync response
                properties:
                  metadata:
                    $ref: '#/components/schemas/ResourcesStoragePool'
                  status:
                    description: Status description
                    example: Success
                    type: string
                  status_code:
                    description: Status code
                    example: 200
                    type: integer
                  type:
                    description: Response type
                    example: sync
                    type: string
                type: object
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Get storage pool resources information
      tags:
      - storage
  /1.0/storage-pools/{poolName}:
    delete:
      description: Removes the storage pool.
      operationId: storage_pools_delete
      parameters:
      - description: Storage pool name
        in: path
        name: poolName
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/EmptySyncResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Delete the storage pool
      tags:
      - storage
    get:
      description: Gets a specific storage pool.
      operationId: storage_pool_get
      parameters:
      - description: Storage pool name
        in: path
        name: poolName
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      - description: Cluster member name
        example: server01
        in: query
        name: target
        schema:
          type: string
      responses:
        '200':
          description: Storage pool
          content:
            application/json:
              schema:
                description: Sync response
                properties:
                  metadata:
                    $ref: '#/components/schemas/StoragePool'
                  status:
                    description: Status description
                    example: Success
                    type: string
                  status_code:
                    description: Status code
                    example: 200
                    type: integer
                  type:
                    description: Response type
                    example: sync
                    type: string
                type: object
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Get the storage pool
      tags:
      - storage
    patch:
      description: Updates a subset of the storage pool configuration.
      operationId: storage_pool_patch
      parameters:
      - description: Storage pool name
        in: path
        name: poolName
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      - description: Cluster member name
        example: server01
        in: query
        name: target
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/EmptySyncResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Partially update the storage pool
      tags:
      - storage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StoragePoolPut'
        description: Storage pool configuration
        required: true
    put:
      description: Updates the entire storage pool configuration.
      operationId: storage_pool_put
      parameters:
      - description: Storage pool name
        in: path
        name: poolName
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      - description: Cluster member name
        example: server01
        in: query
        name: target
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/EmptySyncResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Update the storage pool
      tags:
      - storage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StoragePoolPut'
        description: Storage pool configuration
        required: true
  /1.0/storage-pools/{poolName}/buckets:
    get:
      description: Returns a list of storage pool buckets (URLs).
      operationId: storage_pool_buckets_get
      parameters:
      - description: Storage pool name
        in: path
        name: poolName
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      - description: Retrieve storage pool buckets from all projects
        example: true
        in: query
        name: all-projects
        schema:
          type: boolean
      - description: Collection filter
        example: default
        in: query
        name: filter
        schema:
          type: string
      responses:
        '200':
          description: API endpoints
          content:
            application/json:
              schema:
                description: Sync response
                properties:
                  metadata:
                    description: List of endpoints
                    example: "[\n  \"/1.0/storage-pools/default/buckets/foo\",\n  \"/1.0/storage-pools/default/buckets/bar\",\n]"
                    items:
                      type: string
                    type: array
                  status:
                    description: Status description
                    example: Success
                    type: string
                  status_code:
                    description: Status code
                    example: 200
                    type: integer
                  type:
                    description: Response type
                    example: sync
                    type: string
                type: object
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Get the storage pool buckets
      tags:
      - storage
    post:
      description: Creates a new storage pool bucket.
      operationId: storage_pool_bucket_post
      parameters:
      - description: Storage pool name
        in: path
        name: poolName
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/schemas/StorageBucketKey'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Add a storage pool bucket.
      tags:
      - storage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StorageBucketsPost'
        description: Bucket
        required: true
  /1.0/storage-pools/{poolName}/buckets/{bucketName}:
    get:
      description: Gets a specific storage pool bucket.
      operationId: storage_pool_bucket_get
      parameters:
      - description: Storage pool name
        in: path
        name: poolName
        required: true
        schema:
          type: string
      - description: Storage bucket name
        in: path
        name: bucketName
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      responses:
        '200':
          description: Storage pool bucket
          content:
            application/json:
              schema:
                description: Sync response
                properties:
                  metadata:
                    $ref: '#/components/schemas/StorageBucket'
                  status:
                    description: Status description
                    example: Success
                    type: string
                  status_code:
                    description: Status code
                    example: 200
                    type: integer
                  type:
                    description: Response type
                    example: sync
                    type: string
                type: object
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Get the storage pool bucket
      tags:
      - storage
  /1.0/storage-pools/{poolName}/buckets/{bucketName}/backups:
    get:
      description: Returns a list of storage bucket backups (URLs).
      operationId: storage_pool_buckets_backups_get
      parameters:
      - description: Storage pool name
        in: path
        name: poolName
        required: true
        schema:
          type: string
      - description: Storage bucket name
        in: path
        name: bucketName
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      - description: Cluster member name
        example: server01
        in: query
        name: target
        schema:
          type: string
      responses:
        '200':
          description: API endpoints
          content:
            application/json:
              schema:
                description: Sync response
                properties:
                  metadata:
                    description: List of endpoints
                    example: "[\n  \"/1.0/storage-pools/local/buckets/foo/backups/backup0\",\n  \"/1.0/storage-pools/local/buckets/foo/backups/backup1\"\n]"
                    items:
                      type: string
                    type: array
                  status:
                    description: Status description
                    example: Success
                    type: string
                  status_code:
                    description: Status code
                    example: 200
                    type: integer
                  type:
                    description: Response type
                    example: sync
                    type: string
                type: object
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Get the storage bucket backups
      tags:
      - storage
    post:
      description: 'Creates a new storage bucket backup.


        If the `Accept` header is set to `application/octet-stream`, this directly streams the backup

        tarball to the client without any intermediate operation.'
      operationId: storage_pool_buckets_backups_post
      parameters:
      - description: Storage pool name
        in: path
        name: poolName
        required: true
        schema:
          type: string
      - description: Storage bucket name
        in: path
        name: bucketName
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      - description: Cluster member name
        example: server01
        in: query
        name: target
        schema:
          type: string
      responses:
        '202':
          $ref: '#/components/responses/Operation'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Create a storage bucket backup
      tags:
      - storage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StorageBucketBackupsPost'
        description: Storage bucket backup
        required: true
  /1.0/storage-pools/{poolName}/buckets/{bucketName}/backups/{backupName}:
    delete:
      description: Deletes a new storage bucket backup.
      operationId: storage_pool_buckets_backup_delete
      parameters:
      - description: Storage pool name
        in: path
        name: poolName
        required: true
        schema:
          type: string
      - description: Storage bucket name
        in: path
        name: bucketName
        required: true
        schema:
          type: string
      - description: Backup name
        in: path
        name: backupName
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      - description: Cluster member name
        example: server01
        in: query
        name: target
        schema:
          type: string
      responses:
        '202':
          $ref: '#/components/responses/Operation'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Delete a storage bucket backup
      tags:
      - storage
    get:
      description: Gets a specific storage bucket backup.
      operationId: storage_pool_buckets_backup_get
      parameters:
      - description: Storage pool name
        in: path
        name: poolName
        required: true
        schema:
          type: string
      - description: Storage bucket name
        in: path
        name: bucketName
        required: true
        schema:
          type: string
      - description: Backup name
        in: path
        name: backupName
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      - description: Cluster member name
        example: server01
        in: query
        name: target
        schema:
          type: string
      responses:
        '200':
          description: Storage bucket backup
          content:
            application/json:
              schema:
                description: Sync response
                properties:
                  metadata:
                    $ref: '#/components/schemas/StorageBucketBackup'
                  status:
                    description: Status description
                    example: Success
                    type: string
                  status_code:
                    description: Status code
                    example: 200
                    type: integer
                  type:
                    description: Response type
                    example: sync
                    type: string
                type: object
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Get the storage bucket backup
      tags:
      - storage
    post:
      description: Renames a storage bucket backup.
      operationId: storage_pool_buckets_backup_post
      parameters:
      - description: Storage pool name
        in: path
        name: poolName
        required: true
        schema:
          type: string
      - description: Storage bucket name
        in: path
        name: bucketName
        required: true
        schema:
          type: string
      - description: Backup name
        in: path
        name: backupName
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      - description: Cluster member name
        example: server01
        in: query
        name: target
        schema:
          type: string
      responses:
        '202':
          $ref: '#/components/responses/Operation'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Rename a storage bucket backup
      tags:
      - storage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StorageBucketBackupPost'
        description: Storage bucket backup
        required: true
  /1.0/storage-pools/{poolName}/buckets/{bucketName}/backups/{backupName}/export:
    get:
      description: Download the raw backup file from the server.
      operationId: storage_pool_buckets_backup_export_get
      parameters:
      - description: Storage pool name
        in: path
        name: poolName
        required: true
        schema:
          type: string
      - description: Storage bucket name
        in: path
        name: bucketName
        required: true
        schema:
          type: string
      - description: Backup name
        in: path
        name: backupName
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      - description: Cluster member name
        example: server01
        in: query
        name: target
        schema:
          type: string
      responses:
        '200':
          description: Raw backup data
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Get the raw backup file
      tags:
      - storage
  /1.0/storage-pools/{poolName}/buckets/{bucketName}/backups?recursion=1:
    get:
      description: Returns a list of storage bucket backups (structs).
      operationId: storage_pool_buckets_backups_get_recursion1
      parameters:
      - description: Storage pool name
        in: path
        name: poolName
        required: true
        schema:
          type: string
      - description: Storage bucket name
        in: path
        name: bucketName
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      - description: Cluster member name
        example: server01
        in: query
        name: target
        schema:
          type: string
      responses:
        '200':
          description: API endpoints
          content:
            application/json:
              schema:
                description: Sync response
                properties:
                  metadata:
                    description: List of storage bucket backups
                    items:
                      $ref: '#/components/schemas/StorageBucketBackup'
                    type: array
                  status:
                    description: Status description
                    example: Success
                    type: string
                  status_code:
                    description: Status code
                    example: 200
                    type: integer
                  type:
                    description: Response type
                    example: sync
                    type: string
                type: object
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Get the storage bucket backups
      tags:
      - storage
  /1.0/storage-pools/{poolName}/buckets/{bucketName}/keys:
    get:
      description: Returns a list of storage pool bucket keys (URLs).
      operationId: storage_pool_bucket_keys_get
      parameters:
      - description: Storage pool name
        in: path
        name: poolName
        required: true
        schema:
          type: string
      - description: Storage bucket name
        in: path
        name: bucketName
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      responses:
        '200':
          description: API endpoints
          content:
            application/json:
              schema:
                description: Sync response
                properties:
                  metadata:
                    description: List of endpoints
                    

# --- truncated at 32 KB (151 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/incus/refs/heads/main/openapi/incus-storage-api-openapi.yml