Longhorn · Capability

Longhorn Manager API

The Longhorn Manager REST API provides programmatic access to all Longhorn storage management operations. The API follows the Rancher REST API specification and is served by the Longhorn Manager service, typically accessible within a Kubernetes cluster at port 9500 or via the longhorn-backend service. It provides full lifecycle management for volumes, snapshots, backups, nodes, disks, engine images, recurring jobs, and system settings. The API is used by the Longhorn UI and can be accessed directly for automation and integration. The schema is discoverable at /v1/schemas.

Run with Naftiko LonghornAPI

What You Can Do

GET
Listvolumes — Longhorn List volumes
/v1/volumes
POST
Createvolume — Longhorn Create a volume
/v1/volumes
GET
Getvolume — Longhorn Get a volume
/v1/volumes/{volumeName}
DELETE
Deletevolume — Longhorn Delete a volume
/v1/volumes/{volumeName}
POST
Attachvolume — Longhorn Attach a volume to a node
/v1/volumes/{volumeName}?action=attach
POST
Detachvolume — Longhorn Detach a volume from its node
/v1/volumes/{volumeName}?action=detach
POST
Expandvolume — Longhorn Expand a volume
/v1/volumes/{volumeName}?action=expand
POST
Createsnapshot — Longhorn Create a snapshot
/v1/volumes/{volumeName}?action=snapshotCreate
GET
Listsnapshots — Longhorn List snapshots for a volume
/v1/volumes/{volumeName}?action=snapshotList
POST
Deletesnapshot — Longhorn Delete a snapshot
/v1/volumes/{volumeName}?action=snapshotDelete
POST
Revertsnapshot — Longhorn Revert a volume to a snapshot
/v1/volumes/{volumeName}?action=snapshotRevert
POST
Backupsnapshot — Longhorn Back up a snapshot
/v1/volumes/{volumeName}?action=snapshotBackup
GET
Listbackupvolumes — Longhorn List backup volumes
/v1/backupvolumes
GET
Getbackupvolume — Longhorn Get a backup volume
/v1/backupvolumes/{backupVolumeName}
GET
Listbackups — Longhorn List backups for a backup volume
/v1/backupvolumes/{backupVolumeName}/backups
GET
Listnodes — Longhorn List nodes
/v1/nodes
GET
Getnode — Longhorn Get a node
/v1/nodes/{nodeId}
PUT
Updatenode — Longhorn Update a node
/v1/nodes/{nodeId}
GET
Listengineimages — Longhorn List engine images
/v1/engineimages
POST
Createengineimage — Longhorn Create an engine image
/v1/engineimages
GET
Getengineimage — Longhorn Get an engine image
/v1/engineimages/{engineImageName}
DELETE
Deleteengineimage — Longhorn Delete an engine image
/v1/engineimages/{engineImageName}
GET
Listrecurringjobs — Longhorn List recurring jobs
/v1/recurringjobs
POST
Createrecurringjob — Longhorn Create a recurring job
/v1/recurringjobs
GET
Getrecurringjob — Longhorn Get a recurring job
/v1/recurringjobs/{recurringJobName}
PUT
Updaterecurringjob — Longhorn Update a recurring job
/v1/recurringjobs/{recurringJobName}
DELETE
Deleterecurringjob — Longhorn Delete a recurring job
/v1/recurringjobs/{recurringJobName}
GET
Listsettings — Longhorn List all settings
/v1/settings
GET
Getsetting — Longhorn Get a setting
/v1/settings/{settingName}
PUT
Updatesetting — Longhorn Update a setting
/v1/settings/{settingName}
GET
Listbackingimages — Longhorn List backing images
/v1/backingimages
POST
Createbackingimage — Longhorn Create a backing image
/v1/backingimages
GET
Listsystembackups — Longhorn List system backups
/v1/systembackups
POST
Createsystembackup — Longhorn Create a system backup
/v1/systembackups

MCP Tools

listvolumes

Longhorn List volumes

read-only idempotent
createvolume

Longhorn Create a volume

getvolume

Longhorn Get a volume

read-only idempotent
deletevolume

Longhorn Delete a volume

idempotent
attachvolume

Longhorn Attach a volume to a node

detachvolume

Longhorn Detach a volume from its node

expandvolume

Longhorn Expand a volume

createsnapshot

Longhorn Create a snapshot

listsnapshots

Longhorn List snapshots for a volume

read-only idempotent
deletesnapshot

Longhorn Delete a snapshot

revertsnapshot

Longhorn Revert a volume to a snapshot

backupsnapshot

Longhorn Back up a snapshot

listbackupvolumes

Longhorn List backup volumes

read-only idempotent
getbackupvolume

Longhorn Get a backup volume

read-only idempotent
listbackups

Longhorn List backups for a backup volume

read-only idempotent
listnodes

Longhorn List nodes

read-only idempotent
getnode

Longhorn Get a node

read-only idempotent
updatenode

Longhorn Update a node

idempotent
listengineimages

Longhorn List engine images

read-only idempotent
createengineimage

Longhorn Create an engine image

getengineimage

Longhorn Get an engine image

read-only idempotent
deleteengineimage

Longhorn Delete an engine image

idempotent
listrecurringjobs

Longhorn List recurring jobs

read-only idempotent
createrecurringjob

Longhorn Create a recurring job

getrecurringjob

Longhorn Get a recurring job

read-only idempotent
updaterecurringjob

Longhorn Update a recurring job

idempotent
deleterecurringjob

Longhorn Delete a recurring job

idempotent
listsettings

Longhorn List all settings

read-only idempotent
getsetting

Longhorn Get a setting

read-only idempotent
updatesetting

Longhorn Update a setting

idempotent
listbackingimages

Longhorn List backing images

read-only idempotent
createbackingimage

Longhorn Create a backing image

listsystembackups

Longhorn List system backups

read-only idempotent
createsystembackup

Longhorn Create a system backup

Capability Spec

longhorn-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Longhorn Manager API
  description: The Longhorn Manager REST API provides programmatic access to all Longhorn storage management operations. The
    API follows the Rancher REST API specification and is served by the Longhorn Manager service, typically accessible within
    a Kubernetes cluster at port 9500 or via the longhorn-backend service. It provides full lifecycle management for volumes,
    snapshots, backups, nodes, disks, engine images, recurring jobs, and system settings. The API is used by the Longhorn
    UI and can be accessed directly for automation and integration. The schema is discoverable at /v1/schemas.
  tags:
  - Longhorn
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: longhorn
    baseUri: http://longhorn-backend:9500
    description: Longhorn Manager API HTTP API.
    authentication:
      type: bearer
      token: '{{LONGHORN_TOKEN}}'
    resources:
    - name: v1-volumes
      path: /v1/volumes
      operations:
      - name: listvolumes
        method: GET
        description: Longhorn List volumes
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createvolume
        method: POST
        description: Longhorn Create a volume
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-volumes-volumename
      path: /v1/volumes/{volumeName}
      operations:
      - name: getvolume
        method: GET
        description: Longhorn Get a volume
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletevolume
        method: DELETE
        description: Longhorn Delete a volume
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-volumes-volumename-action-attach
      path: /v1/volumes/{volumeName}?action=attach
      operations:
      - name: attachvolume
        method: POST
        description: Longhorn Attach a volume to a node
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-volumes-volumename-action-detach
      path: /v1/volumes/{volumeName}?action=detach
      operations:
      - name: detachvolume
        method: POST
        description: Longhorn Detach a volume from its node
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-volumes-volumename-action-expand
      path: /v1/volumes/{volumeName}?action=expand
      operations:
      - name: expandvolume
        method: POST
        description: Longhorn Expand a volume
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-volumes-volumename-action-snapshotcreate
      path: /v1/volumes/{volumeName}?action=snapshotCreate
      operations:
      - name: createsnapshot
        method: POST
        description: Longhorn Create a snapshot
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-volumes-volumename-action-snapshotlist
      path: /v1/volumes/{volumeName}?action=snapshotList
      operations:
      - name: listsnapshots
        method: GET
        description: Longhorn List snapshots for a volume
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-volumes-volumename-action-snapshotdelete
      path: /v1/volumes/{volumeName}?action=snapshotDelete
      operations:
      - name: deletesnapshot
        method: POST
        description: Longhorn Delete a snapshot
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-volumes-volumename-action-snapshotrevert
      path: /v1/volumes/{volumeName}?action=snapshotRevert
      operations:
      - name: revertsnapshot
        method: POST
        description: Longhorn Revert a volume to a snapshot
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-volumes-volumename-action-snapshotbackup
      path: /v1/volumes/{volumeName}?action=snapshotBackup
      operations:
      - name: backupsnapshot
        method: POST
        description: Longhorn Back up a snapshot
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-backupvolumes
      path: /v1/backupvolumes
      operations:
      - name: listbackupvolumes
        method: GET
        description: Longhorn List backup volumes
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-backupvolumes-backupvolumename
      path: /v1/backupvolumes/{backupVolumeName}
      operations:
      - name: getbackupvolume
        method: GET
        description: Longhorn Get a backup volume
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-backupvolumes-backupvolumename-backups
      path: /v1/backupvolumes/{backupVolumeName}/backups
      operations:
      - name: listbackups
        method: GET
        description: Longhorn List backups for a backup volume
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-nodes
      path: /v1/nodes
      operations:
      - name: listnodes
        method: GET
        description: Longhorn List nodes
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-nodes-nodeid
      path: /v1/nodes/{nodeId}
      operations:
      - name: getnode
        method: GET
        description: Longhorn Get a node
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updatenode
        method: PUT
        description: Longhorn Update a node
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-engineimages
      path: /v1/engineimages
      operations:
      - name: listengineimages
        method: GET
        description: Longhorn List engine images
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createengineimage
        method: POST
        description: Longhorn Create an engine image
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-engineimages-engineimagename
      path: /v1/engineimages/{engineImageName}
      operations:
      - name: getengineimage
        method: GET
        description: Longhorn Get an engine image
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deleteengineimage
        method: DELETE
        description: Longhorn Delete an engine image
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-recurringjobs
      path: /v1/recurringjobs
      operations:
      - name: listrecurringjobs
        method: GET
        description: Longhorn List recurring jobs
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createrecurringjob
        method: POST
        description: Longhorn Create a recurring job
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-recurringjobs-recurringjobname
      path: /v1/recurringjobs/{recurringJobName}
      operations:
      - name: getrecurringjob
        method: GET
        description: Longhorn Get a recurring job
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updaterecurringjob
        method: PUT
        description: Longhorn Update a recurring job
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deleterecurringjob
        method: DELETE
        description: Longhorn Delete a recurring job
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-settings
      path: /v1/settings
      operations:
      - name: listsettings
        method: GET
        description: Longhorn List all settings
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-settings-settingname
      path: /v1/settings/{settingName}
      operations:
      - name: getsetting
        method: GET
        description: Longhorn Get a setting
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updatesetting
        method: PUT
        description: Longhorn Update a setting
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-backingimages
      path: /v1/backingimages
      operations:
      - name: listbackingimages
        method: GET
        description: Longhorn List backing images
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createbackingimage
        method: POST
        description: Longhorn Create a backing image
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-systembackups
      path: /v1/systembackups
      operations:
      - name: listsystembackups
        method: GET
        description: Longhorn List system backups
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createsystembackup
        method: POST
        description: Longhorn Create a system backup
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: longhorn-rest
    description: REST adapter for Longhorn Manager API.
    resources:
    - path: /v1/volumes
      name: listvolumes
      operations:
      - method: GET
        name: listvolumes
        description: Longhorn List volumes
        call: longhorn.listvolumes
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/volumes
      name: createvolume
      operations:
      - method: POST
        name: createvolume
        description: Longhorn Create a volume
        call: longhorn.createvolume
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/volumes/{volumeName}
      name: getvolume
      operations:
      - method: GET
        name: getvolume
        description: Longhorn Get a volume
        call: longhorn.getvolume
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/volumes/{volumeName}
      name: deletevolume
      operations:
      - method: DELETE
        name: deletevolume
        description: Longhorn Delete a volume
        call: longhorn.deletevolume
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/volumes/{volumeName}?action=attach
      name: attachvolume
      operations:
      - method: POST
        name: attachvolume
        description: Longhorn Attach a volume to a node
        call: longhorn.attachvolume
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/volumes/{volumeName}?action=detach
      name: detachvolume
      operations:
      - method: POST
        name: detachvolume
        description: Longhorn Detach a volume from its node
        call: longhorn.detachvolume
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/volumes/{volumeName}?action=expand
      name: expandvolume
      operations:
      - method: POST
        name: expandvolume
        description: Longhorn Expand a volume
        call: longhorn.expandvolume
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/volumes/{volumeName}?action=snapshotCreate
      name: createsnapshot
      operations:
      - method: POST
        name: createsnapshot
        description: Longhorn Create a snapshot
        call: longhorn.createsnapshot
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/volumes/{volumeName}?action=snapshotList
      name: listsnapshots
      operations:
      - method: GET
        name: listsnapshots
        description: Longhorn List snapshots for a volume
        call: longhorn.listsnapshots
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/volumes/{volumeName}?action=snapshotDelete
      name: deletesnapshot
      operations:
      - method: POST
        name: deletesnapshot
        description: Longhorn Delete a snapshot
        call: longhorn.deletesnapshot
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/volumes/{volumeName}?action=snapshotRevert
      name: revertsnapshot
      operations:
      - method: POST
        name: revertsnapshot
        description: Longhorn Revert a volume to a snapshot
        call: longhorn.revertsnapshot
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/volumes/{volumeName}?action=snapshotBackup
      name: backupsnapshot
      operations:
      - method: POST
        name: backupsnapshot
        description: Longhorn Back up a snapshot
        call: longhorn.backupsnapshot
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/backupvolumes
      name: listbackupvolumes
      operations:
      - method: GET
        name: listbackupvolumes
        description: Longhorn List backup volumes
        call: longhorn.listbackupvolumes
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/backupvolumes/{backupVolumeName}
      name: getbackupvolume
      operations:
      - method: GET
        name: getbackupvolume
        description: Longhorn Get a backup volume
        call: longhorn.getbackupvolume
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/backupvolumes/{backupVolumeName}/backups
      name: listbackups
      operations:
      - method: GET
        name: listbackups
        description: Longhorn List backups for a backup volume
        call: longhorn.listbackups
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/nodes
      name: listnodes
      operations:
      - method: GET
        name: listnodes
        description: Longhorn List nodes
        call: longhorn.listnodes
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/nodes/{nodeId}
      name: getnode
      operations:
      - method: GET
        name: getnode
        description: Longhorn Get a node
        call: longhorn.getnode
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/nodes/{nodeId}
      name: updatenode
      operations:
      - method: PUT
        name: updatenode
        description: Longhorn Update a node
        call: longhorn.updatenode
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/engineimages
      name: listengineimages
      operations:
      - method: GET
        name: listengineimages
        description: Longhorn List engine images
        call: longhorn.listengineimages
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/engineimages
      name: createengineimage
      operations:
      - method: POST
        name: createengineimage
        description: Longhorn Create an engine image
        call: longhorn.createengineimage
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/engineimages/{engineImageName}
      name: getengineimage
      operations:
      - method: GET
        name: getengineimage
        description: Longhorn Get an engine image
        call: longhorn.getengineimage
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/engineimages/{engineImageName}
      name: deleteengineimage
      operations:
      - method: DELETE
        name: deleteengineimage
        description: Longhorn Delete an engine image
        call: longhorn.deleteengineimage
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/recurringjobs
      name: listrecurringjobs
      operations:
      - method: GET
        name: listrecurringjobs
        description: Longhorn List recurring jobs
        call: longhorn.listrecurringjobs
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/recurringjobs
      name: createrecurringjob
      operations:
      - method: POST
        name: createrecurringjob
        description: Longhorn Create a recurring job
        call: longhorn.createrecurringjob
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/recurringjobs/{recurringJobName}
      name: getrecurringjob
      operations:
      - method: GET
        name: getrecurringjob
        description: Longhorn Get a recurring job
        call: longhorn.getrecurringjob
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/recurringjobs/{recurringJobName}
      name: updaterecurringjob
      operations:
      - method: PUT
        name: updaterecurringjob
        description: Longhorn Update a recurring job
        call: longhorn.updaterecurringjob
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/recurringjobs/{recurringJobName}
      name: deleterecurringjob
      operations:
      - method: DELETE
        name: deleterecurringjob
        description: Longhorn Delete a recurring job
        call: longhorn.deleterecurringjob
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/settings
      name: listsettings
      operations:
      - method: GET
        name: listsettings
        description: Longhorn List all settings
        call: longhorn.listsettings
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/settings/{settingName}
      name: getsetting
      operations:
      - method: GET
        name: getsetting
        description: Longhorn Get a setting
        call: longhorn.getsetting
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/settings/{settingName}
      name: updatesetting
      operations:
      - method: PUT
        name: updatesetting
        description: Longhorn Update a setting
        call: longhorn.updatesetting
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/backingimages
      name: listbackingimages
      operations:
      - method: GET
        name: listbackingimages
        description: Longhorn List backing images
        call: longhorn.listbackingimages
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/backingimages
      name: createbackingimage
      operations:
      - method: POST
        name: createbackingimage
        description: Longhorn Create a backing image
        call: longhorn.createbackingimage
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/systembackups
      name: listsystembackups
      operations:
      - method: GET
        name: listsystembackups
        description: Longhorn List system backups
        call: longhorn.listsystembackups
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/systembackups
      name: createsystembackup
      operations:
      - method: POST
        name: createsystembackup
        description: Longhorn Create a system backup
        call: longhorn.createsystembackup
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: longhorn-mcp
    transport: http
    description: MCP adapter for Longhorn Manager API for AI agent use.
    tools:
    - name: listvolumes
      description: Longhorn List volumes
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: longhorn.listvolumes
      outputParameters:
      - type: object
        mapping: $.
    - name: createvolume
      description: Longhorn Create a volume
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: longhorn.createvolume
      outputParameters:
      - type: object
        mapping: $.
    - name: getvolume
      description: Longhorn Get a volume
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: longhorn.getvolume
      outputParameters:
      - type: object
        mapping: $.
    - name: deletevolume
      description: Longhorn Delete a volume
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: longhorn.deletevolume
      outputParameters:
      - type: object
        mapping: $.
    - name: attachvolume
      description: Longhorn Attach a volume to a node
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: longhorn.attachvolume
      outputParameters:
      - type: object
        mapping: $.
    - name: detachvolume
      description: Longhorn Detach a volume from its node
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: longhorn.detachvolume
      outputParameters:
      - type: object
        mapping: $.
    - name: expandvolume
      description: Longhorn Expand a volume
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: longhorn.expandvolume
      outputParameters:
      - type: object
        mapping: $.
    - name: createsnapshot
      description: Longhorn Create a snapshot
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: longhorn.createsnapshot
      outputParameters:
      - type: object
        mapping: $.
    - name: listsnapshots
      description: Longhorn List snapshots for a volume
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: longhorn.listsnapshots
      outputParameters:
      - type: object
        mapping: $.
    - name: deletesnapshot
      description: Longhorn Delete a snapshot
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: longhorn.deletesnapshot
      outputParameters:
      - type: object
        mapping: $.
    - name: revertsnapshot
      description: Longhorn Revert a volume to a snapshot
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: longhorn.revertsnapshot
      outputParameters:
      - type: object
        mapping: $.
    - name: backupsnapshot
      description: Longhorn Back up a snapshot
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: longhorn.backupsnapshot
      outputParameters:
      - type: object
        mapping: $.
    - name: listbackupvolumes
      description: Longhorn List backup volumes
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: longhorn.listbackupvolumes
      outputParameters:
      - type: object
        mapping: $.
    - name: getbackupvolume
      description: Longhorn Get a backup volume
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: longhorn.getbackupvolume
      outputParameters:
      - type: object
        mapping: $.
    - name: listbackups
      description: Longhorn List backups for a backup volume
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: longhorn.listbackups
      outputParameters:
      - type: object
        mapping: $.
    - name: listnodes
      description: Longhorn List nodes
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: longhorn.listnodes
      outputParameters:
      - type: object
        mapping: $.
    - name: getnode
      description: Longhorn Get a node
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: longhorn.getnode
      outputParameters:
      - type: object
        mapping: $.
    - name: updatenode
      description: Longhorn Update a node
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: longhorn.updatenode
      outputParameters:
      - type: object
        mapping: $.
    - name: listengineimages
      description: Longhorn List engine images
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: longhorn.listengineimages
      outputParameters:
      - type: object
        mapping: $.
    - name: createengineimage
      description: Longhorn Create an engine image
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: longhorn.createengineimage
      outputParameters:
      - type: object
        mapping: $.
    - name: getengineimage
      description: Longhorn Get an engine image
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: longhorn.getengineimage
      outputParameters:
      - type: object
        mapping: $.
    - name: deleteengineimage
      description: Longhorn Delete an engine image
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: longhorn.deleteengineimage
      outputParameters:
      - type: object
        mapping: $.
    - name: listrecurringjobs
      description: Longhorn List recurring jobs
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: longhorn.listrecurringjobs
      outputParameters:
      - type: object
        mapping: $.
    - name: createrecurringjob
      description: Longhorn Create a recurring job
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: longhorn.createrecurringjob
      outputParameters:
      - type: object
        mapping: $.
    - name: getrecurringjob
      description: Longhorn Get a recurring job
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: longhorn.getrecurringjob
      outputParameters:
      - type: object
        mapping: $.
    - name: updaterecurringjob
      description: Longhorn Update a recurring job
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: longhorn.updaterecurringjob
      outputParameters:
      - type: object
        mapping: $.
    - name: deleterecurringjob
      description: Longhorn Delete a recurring job
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: longhorn.deleterecurringjob
      outputParameters:
      - type: object
        mapping: $.
    - name: listsettings
      description: Longhorn List all settings
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: longhorn.listsettings
      outputParameters:
      - type: object
        mapping: $.
    - name: getsetting
      description: Longhorn Get a setting
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: longhorn.getsetting
      outputParameters:
      - type: object
        mapping: $.
    - name: updatesetting
      description: Longhorn Update a setting
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: longhorn.updatesetting
      outputParameters:
      - type: object
        mapping: $.
    - name: listbackingimages
      description: Longhorn List backing images
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: longhorn.listbackingimages
      outputParameters:
      - type: object
        mapping: $.
    - name: createbackingimage
      description: Longhorn Create a backing image
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: longhorn.createbackingimage
      outputParameters:
      - type: object
        mapping: $.
    - name: listsystembackups
      description: Longhorn List system backups
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: longhorn.listsystembackups
      outputParameters:
      - type: object
        mapping: $.
    - name: createsystembackup
      description: Longhorn Create a system backup
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: longhorn.createsystembackup
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    LONGHORN_TOKEN: LONGHORN_TOKEN