Exoscale · Capability

Exoscale API

Infrastructure automation API, allowing programmatic access to all Exoscale products and services.

Run with Naftiko ExoscaleAPI

What You Can Do

DELETE
Delete load balancer service — Delete a Load Balancer Service
/load-balancer/{id}/service/{service-id}
PUT
Update load balancer service — Update a Load Balancer Service
/load-balancer/{id}/service/{service-id}
GET
Get load balancer service — Retrieve Load Balancer Service details
/load-balancer/{id}/service/{service-id}
DELETE
Delete dbaas external endpoint opensearch — [BETA] Delete OpenSearch logs external integration endpoint
/dbaas-external-endpoint-opensearch/{endpoint-id}
GET
Get dbaas external endpoint opensearch — [BETA] Get OpenSearch Logs external integration endpoint settings
/dbaas-external-endpoint-opensearch/{endpoint-id}
PUT
Update dbaas external endpoint opensearch — [BETA] Update OpenSearch Logs external integration endpoint
/dbaas-external-endpoint-opensearch/{endpoint-id}
GET
Get dbaas opensearch acl config — Get DBaaS OpenSearch ACL configuration
/dbaas-opensearch/{name}/acl-config
PUT
Update dbaas opensearch acl config — Create a DBaaS OpenSearch ACL configuration
/dbaas-opensearch/{name}/acl-config
PUT
Scale instance pool — Scale an Instance Pool
/instance-pool/{id}:scale
POST
Create snapshot — Create a Snapshot of a Compute instance
/instance/{id}:create-snapshot
POST
Stop dbaas valkey migration — Stop a DBaaS Valkey migration
/dbaas-valkey/{name}/migration/stop
GET
Get reverse dns elastic ip — Query the PTR DNS records for an elastic IP
/reverse-dns/elastic-ip/{id}
POST
Update reverse dns elastic ip — Update/Create the PTR DNS record for an elastic IP
/reverse-dns/elastic-ip/{id}
DELETE
Delete reverse dns elastic ip — Delete the PTR DNS record for an elastic IP
/reverse-dns/elastic-ip/{id}
GET
List anti affinity groups — List Anti-affinity Groups
/anti-affinity-group
POST
Create anti affinity group — Create an Anti-affinity Group
/anti-affinity-group
GET
List ai api keys — List AI API Keys
/ai/ai-api-key
POST
Create ai api key — Create AI API Key
/ai/ai-api-key
GET
Get usage report — Retrieve organization usage reports
/usage-report
GET
List events — List Events
/event
DELETE
Delete rule from security group — Delete a Security Group rule
/security-group/{id}/rules/{rule-id}
PUT
Start dbaas grafana maintenance — Initiate Grafana maintenance update
/dbaas-grafana/{name}/maintenance/start
POST
Disable kms key rotation — [BETA] Disable Key Rotation
/kms-key/{id}/disable-key-rotation
POST
Create dbaas pg upgrade check — Check whether you can upgrade Postgres service to a newer version
/dbaas-postgres/{service}/upgrade-check
PUT
Reset dbaas mysql user password — Reset the credentials of a DBaaS mysql user
/dbaas-mysql/{service-name}/user/{username}/password/reset
GET
Get inference engine help — Get inference-engine Help
/ai/help/inference-engine-parameters
POST
Create load balancer — Create a Load Balancer
/load-balancer
GET
List load balancers — List Load Balancers
/load-balancer
POST
Create security group — Create a Security Group
/security-group
GET
List security groups — List Security Groups.
/security-group
POST
Create dbaas pg connection pool — Create a DBaaS PostgreSQL connection pool
/dbaas-postgres/{service-name}/connection-pool
PUT
Update dbaas service mysql — Update a DBaaS MySQL service
/dbaas-mysql/{name}
GET
Get dbaas service mysql — Get a DBaaS MySQL service
/dbaas-mysql/{name}
POST
Create dbaas service mysql — Create a DBaaS MySQL service
/dbaas-mysql/{name}
DELETE
Delete dbaas service mysql — Delete a MySQL service
/dbaas-mysql/{name}
POST
Assume iam role — [BETA] Request generation of key/secret that allow caller to assume target role
/iam-role/{target-role-id}/assume
PUT
Attach instance to private network — Attach a Compute instance to a Private Network
/private-network/{id}:attach
GET
Get kms key — [BETA] Get KMS Key
/kms-key/{id}
PUT
Start dbaas thanos maintenance — Initiate Thanos maintenance update
/dbaas-thanos/{name}/maintenance/start
DELETE
Delete dbaas external endpoint elasticsearch — [BETA] Delete ElasticSearch logs external integration endpoint
/dbaas-external-endpoint-elasticsearch/{endpoint-id}
GET
Get dbaas external endpoint elasticsearch — [BETA] Get ElasticSearch Logs external integration endpoint settings
/dbaas-external-endpoint-elasticsearch/{endpoint-id}
PUT
Update dbaas external endpoint elasticsearch — [BETA] Update ElasticSearch Logs external integration endpoint
/dbaas-external-endpoint-elasticsearch/{endpoint-id}
POST
Create model — Create Model
/ai/model
GET
List models — List Models
/ai/model
POST
Create dbaas mysql user — Create a DBaaS MySQL user
/dbaas-mysql/{service-name}/user
GET
List dbaas service types — DBaaS Service Types
/dbaas-service-type
POST
Scale deployment — Scale Deployment
/ai/deployment/{id}/scale
GET
Get instance type — Retrieve Instance Type details
/instance-type/{id}
GET
Reveal instance password — Reveal the password used during instance creation or the latest password reset.
/instance/{id}:password
GET
Get active nodepool template — Get the active template for a given kube version and variant (standard | nvidia)
/sks-template/{kube-version}/{variant}
PUT
Resize instance disk — Resize a Compute instance disk
/instance/{id}:resize-disk
GET
List dbaas services — List DBaaS services
/dbaas-service
POST
Create elastic ip — Create an Elastic IP
/elastic-ip
GET
List elastic ips — List Elastic IPs
/elastic-ip
GET
List zones — List Zones
/zone
GET
List instance pools — List Instance Pools
/instance-pool
POST
Create instance pool — Create an Instance Pool
/instance-pool
POST
Create dbaas external endpoint rsyslog — [BETA] Create RSyslog external integration endpoint
/dbaas-external-endpoint-rsyslog/{name}
POST
Generate sks cluster kubeconfig — Generate a new Kubeconfig file for a SKS cluster
/sks-cluster-kubeconfig/{id}
GET
List dns domain records — List DNS domain records
/dns-domain/{domain-id}/record

MCP Tools

delete-load-balancer-service

Delete a Load Balancer Service

idempotent
update-load-balancer-service

Update a Load Balancer Service

idempotent
get-load-balancer-service

Retrieve Load Balancer Service details

read-only idempotent
delete-dbaas-external-endpoint-opensearch

[BETA] Delete OpenSearch logs external integration endpoint

idempotent
get-dbaas-external-endpoint-opensearch

[BETA] Get OpenSearch Logs external integration endpoint settings

read-only idempotent
update-dbaas-external-endpoint-opensearch

[BETA] Update OpenSearch Logs external integration endpoint

idempotent
get-dbaas-opensearch-acl-config

Get DBaaS OpenSearch ACL configuration

read-only idempotent
update-dbaas-opensearch-acl-config

Create a DBaaS OpenSearch ACL configuration

idempotent
scale-instance-pool

Scale an Instance Pool

idempotent
create-snapshot

Create a Snapshot of a Compute instance

stop-dbaas-valkey-migration

Stop a DBaaS Valkey migration

get-reverse-dns-elastic-ip

Query the PTR DNS records for an elastic IP

read-only idempotent
update-reverse-dns-elastic-ip

Update/Create the PTR DNS record for an elastic IP

delete-reverse-dns-elastic-ip

Delete the PTR DNS record for an elastic IP

idempotent
list-anti-affinity-groups

List Anti-affinity Groups

read-only idempotent
create-anti-affinity-group

Create an Anti-affinity Group

list-ai-api-keys

List AI API Keys

read-only idempotent
create-ai-api-key

Create AI API Key

get-usage-report

Retrieve organization usage reports

read-only idempotent
list-events

List Events

read-only idempotent
delete-rule-from-security-group

Delete a Security Group rule

idempotent
start-dbaas-grafana-maintenance

Initiate Grafana maintenance update

idempotent
disable-kms-key-rotation

[BETA] Disable Key Rotation

create-dbaas-pg-upgrade-check

Check whether you can upgrade Postgres service to a newer version

reset-dbaas-mysql-user-password

Reset the credentials of a DBaaS mysql user

idempotent
get-inference-engine-help

Get inference-engine Help

read-only idempotent
create-load-balancer

Create a Load Balancer

list-load-balancers

List Load Balancers

read-only idempotent
create-security-group

Create a Security Group

list-security-groups

List Security Groups.

read-only idempotent
create-dbaas-pg-connection-pool

Create a DBaaS PostgreSQL connection pool

update-dbaas-service-mysql

Update a DBaaS MySQL service

idempotent
get-dbaas-service-mysql

Get a DBaaS MySQL service

read-only idempotent
create-dbaas-service-mysql

Create a DBaaS MySQL service

delete-dbaas-service-mysql

Delete a MySQL service

idempotent
assume-iam-role

[BETA] Request generation of key/secret that allow caller to assume target role

attach-instance-to-private-network

Attach a Compute instance to a Private Network

idempotent
get-kms-key

[BETA] Get KMS Key

read-only idempotent
start-dbaas-thanos-maintenance

Initiate Thanos maintenance update

idempotent
delete-dbaas-external-endpoint-elasticsearch

[BETA] Delete ElasticSearch logs external integration endpoint

idempotent
get-dbaas-external-endpoint-elasticsearch

[BETA] Get ElasticSearch Logs external integration endpoint settings

read-only idempotent
update-dbaas-external-endpoint-elasticsearch

[BETA] Update ElasticSearch Logs external integration endpoint

idempotent
create-model

Create Model

list-models

List Models

read-only idempotent
create-dbaas-mysql-user

Create a DBaaS MySQL user

list-dbaas-service-types

DBaaS Service Types

read-only idempotent
scale-deployment

Scale Deployment

get-instance-type

Retrieve Instance Type details

read-only idempotent
reveal-instance-password

Reveal the password used during instance creation or the latest password reset.

read-only idempotent
get-active-nodepool-template

Get the active template for a given kube version and variant (standard | nvidia)

read-only idempotent
resize-instance-disk

Resize a Compute instance disk

idempotent
list-dbaas-services

List DBaaS services

read-only idempotent
create-elastic-ip

Create an Elastic IP

list-elastic-ips

List Elastic IPs

read-only idempotent
list-zones

List Zones

read-only idempotent
list-instance-pools

List Instance Pools

read-only idempotent
create-instance-pool

Create an Instance Pool

create-dbaas-external-endpoint-rsyslog

[BETA] Create RSyslog external integration endpoint

generate-sks-cluster-kubeconfig

Generate a new Kubeconfig file for a SKS cluster

list-dns-domain-records

List DNS domain records

read-only idempotent

Capability Spec

exoscale-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Exoscale API
  description: Infrastructure automation API, allowing programmatic access to all Exoscale products and services.
  tags:
  - Exoscale
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: exoscale
    baseUri: https://api-ch-gva-2.exoscale.com/v2
    description: Exoscale API HTTP API.
    resources:
    - name: load-balancer-id-service-service-id
      path: /load-balancer/{id}/service/{service-id}
      operations:
      - name: delete-load-balancer-service
        method: DELETE
        description: Delete a Load Balancer Service
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        - name: service-id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: update-load-balancer-service
        method: PUT
        description: Update a Load Balancer Service
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        - name: service-id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: get-load-balancer-service
        method: GET
        description: Retrieve Load Balancer Service details
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        - name: service-id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: dbaas-external-endpoint-opensearch-endpoint-id
      path: /dbaas-external-endpoint-opensearch/{endpoint-id}
      operations:
      - name: delete-dbaas-external-endpoint-opensearch
        method: DELETE
        description: '[BETA] Delete OpenSearch logs external integration endpoint'
        inputParameters:
        - name: endpoint-id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: get-dbaas-external-endpoint-opensearch
        method: GET
        description: '[BETA] Get OpenSearch Logs external integration endpoint settings'
        inputParameters:
        - name: endpoint-id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: update-dbaas-external-endpoint-opensearch
        method: PUT
        description: '[BETA] Update OpenSearch Logs external integration endpoint'
        inputParameters:
        - name: endpoint-id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: dbaas-opensearch-name-acl-config
      path: /dbaas-opensearch/{name}/acl-config
      operations:
      - name: get-dbaas-opensearch-acl-config
        method: GET
        description: Get DBaaS OpenSearch ACL configuration
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: update-dbaas-opensearch-acl-config
        method: PUT
        description: Create a DBaaS OpenSearch ACL configuration
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: instance-pool-id-scale
      path: /instance-pool/{id}:scale
      operations:
      - name: scale-instance-pool
        method: PUT
        description: Scale an Instance Pool
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: instance-id-create-snapshot
      path: /instance/{id}:create-snapshot
      operations:
      - name: create-snapshot
        method: POST
        description: Create a Snapshot of a Compute instance
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: dbaas-valkey-name-migration-stop
      path: /dbaas-valkey/{name}/migration/stop
      operations:
      - name: stop-dbaas-valkey-migration
        method: POST
        description: Stop a DBaaS Valkey migration
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: reverse-dns-elastic-ip-id
      path: /reverse-dns/elastic-ip/{id}
      operations:
      - name: get-reverse-dns-elastic-ip
        method: GET
        description: Query the PTR DNS records for an elastic IP
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: update-reverse-dns-elastic-ip
        method: POST
        description: Update/Create the PTR DNS record for an elastic IP
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: delete-reverse-dns-elastic-ip
        method: DELETE
        description: Delete the PTR DNS record for an elastic IP
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: anti-affinity-group
      path: /anti-affinity-group
      operations:
      - name: list-anti-affinity-groups
        method: GET
        description: List Anti-affinity Groups
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: create-anti-affinity-group
        method: POST
        description: Create an Anti-affinity Group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ai-ai-api-key
      path: /ai/ai-api-key
      operations:
      - name: list-ai-api-keys
        method: GET
        description: List AI API Keys
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: create-ai-api-key
        method: POST
        description: Create AI API Key
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: usage-report
      path: /usage-report
      operations:
      - name: get-usage-report
        method: GET
        description: Retrieve organization usage reports
        inputParameters:
        - name: period
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: event
      path: /event
      operations:
      - name: list-events
        method: GET
        description: List Events
        inputParameters:
        - name: from
          in: query
          type: string
        - name: to
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: security-group-id-rules-rule-id
      path: /security-group/{id}/rules/{rule-id}
      operations:
      - name: delete-rule-from-security-group
        method: DELETE
        description: Delete a Security Group rule
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        - name: rule-id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: dbaas-grafana-name-maintenance-start
      path: /dbaas-grafana/{name}/maintenance/start
      operations:
      - name: start-dbaas-grafana-maintenance
        method: PUT
        description: Initiate Grafana maintenance update
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: kms-key-id-disable-key-rotation
      path: /kms-key/{id}/disable-key-rotation
      operations:
      - name: disable-kms-key-rotation
        method: POST
        description: '[BETA] Disable Key Rotation'
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: dbaas-postgres-service-upgrade-check
      path: /dbaas-postgres/{service}/upgrade-check
      operations:
      - name: create-dbaas-pg-upgrade-check
        method: POST
        description: Check whether you can upgrade Postgres service to a newer version
        inputParameters:
        - name: service
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: dbaas-mysql-service-name-user-username-password-
      path: /dbaas-mysql/{service-name}/user/{username}/password/reset
      operations:
      - name: reset-dbaas-mysql-user-password
        method: PUT
        description: Reset the credentials of a DBaaS mysql user
        inputParameters:
        - name: service-name
          in: path
          type: string
          required: true
        - name: username
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ai-help-inference-engine-parameters
      path: /ai/help/inference-engine-parameters
      operations:
      - name: get-inference-engine-help
        method: GET
        description: Get inference-engine Help
        inputParameters:
        - name: version
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: load-balancer
      path: /load-balancer
      operations:
      - name: create-load-balancer
        method: POST
        description: Create a Load Balancer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: list-load-balancers
        method: GET
        description: List Load Balancers
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: security-group
      path: /security-group
      operations:
      - name: create-security-group
        method: POST
        description: Create a Security Group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: list-security-groups
        method: GET
        description: List Security Groups.
        inputParameters:
        - name: visibility
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: dbaas-postgres-service-name-connection-pool
      path: /dbaas-postgres/{service-name}/connection-pool
      operations:
      - name: create-dbaas-pg-connection-pool
        method: POST
        description: Create a DBaaS PostgreSQL connection pool
        inputParameters:
        - name: service-name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: dbaas-mysql-name
      path: /dbaas-mysql/{name}
      operations:
      - name: update-dbaas-service-mysql
        method: PUT
        description: Update a DBaaS MySQL service
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: get-dbaas-service-mysql
        method: GET
        description: Get a DBaaS MySQL service
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: create-dbaas-service-mysql
        method: POST
        description: Create a DBaaS MySQL service
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: delete-dbaas-service-mysql
        method: DELETE
        description: Delete a MySQL service
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: iam-role-target-role-id-assume
      path: /iam-role/{target-role-id}/assume
      operations:
      - name: assume-iam-role
        method: POST
        description: '[BETA] Request generation of key/secret that allow caller to assume target role'
        inputParameters:
        - name: target-role-id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: private-network-id-attach
      path: /private-network/{id}:attach
      operations:
      - name: attach-instance-to-private-network
        method: PUT
        description: Attach a Compute instance to a Private Network
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: kms-key-id
      path: /kms-key/{id}
      operations:
      - name: get-kms-key
        method: GET
        description: '[BETA] Get KMS Key'
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: dbaas-thanos-name-maintenance-start
      path: /dbaas-thanos/{name}/maintenance/start
      operations:
      - name: start-dbaas-thanos-maintenance
        method: PUT
        description: Initiate Thanos maintenance update
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: dbaas-external-endpoint-elasticsearch-endpoint-i
      path: /dbaas-external-endpoint-elasticsearch/{endpoint-id}
      operations:
      - name: delete-dbaas-external-endpoint-elasticsearch
        method: DELETE
        description: '[BETA] Delete ElasticSearch logs external integration endpoint'
        inputParameters:
        - name: endpoint-id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: get-dbaas-external-endpoint-elasticsearch
        method: GET
        description: '[BETA] Get ElasticSearch Logs external integration endpoint settings'
        inputParameters:
        - name: endpoint-id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: update-dbaas-external-endpoint-elasticsearch
        method: PUT
        description: '[BETA] Update ElasticSearch Logs external integration endpoint'
        inputParameters:
        - name: endpoint-id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ai-model
      path: /ai/model
      operations:
      - name: create-model
        method: POST
        description: Create Model
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: list-models
        method: GET
        description: List Models
        inputParameters:
        - name: visibility
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: dbaas-mysql-service-name-user
      path: /dbaas-mysql/{service-name}/user
      operations:
      - name: create-dbaas-mysql-user
        method: POST
        description: Create a DBaaS MySQL user
        inputParameters:
        - name: service-name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: dbaas-service-type
      path: /dbaas-service-type
      operations:
      - name: list-dbaas-service-types
        method: GET
        description: DBaaS Service Types
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ai-deployment-id-scale
      path: /ai/deployment/{id}/scale
      operations:
      - name: scale-deployment
        method: POST
        description: Scale Deployment
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: instance-type-id
      path: /instance-type/{id}
      operations:
      - name: get-instance-type
        method: GET
        description: Retrieve Instance Type details
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: instance-id-password
      path: /instance/{id}:password
      operations:
      - name: reveal-instance-password
        method: GET
        description: Reveal the password used during instance creation or the latest password reset.
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: sks-template-kube-version-variant
      path: /sks-template/{kube-version}/{variant}
      operations:
      - name: get-active-nodepool-template
        method: GET
        description: Get the active template for a given kube version and variant (standard | nvidia)
        inputParameters:
        - name: kube-version
          in: path
          type: string
          required: true
        - name: variant
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: instance-id-resize-disk
      path: /instance/{id}:resize-disk
      operations:
      - name: resize-instance-disk
        method: PUT
        description: Resize a Compute instance disk
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: dbaas-service
      path: /dbaas-service
      operations:
      - name: list-dbaas-services
        method: GET
        description: List DBaaS services
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: elastic-ip
      path: /elastic-ip
      operations:
      - name: create-elastic-ip
        method: POST
        description: Create an Elastic IP
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: list-elastic-ips
        method: GET
        description: List Elastic IPs
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: zone
      path: /zone
      operations:
      - name: list-zones
        method: GET
        description: List Zones
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: instance-pool
      path: /instance-pool
      operations:
      - name: list-instance-pools
        method: GET
        description: List Instance Pools
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: create-instance-pool
        method: POST
        description: Create an Instance Pool
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: dbaas-external-endpoint-rsyslog-name
      path: /dbaas-external-endpoint-rsyslog/{name}
      operations:
      - name: create-dbaas-external-endpoint-rsyslog
        method: POST
        description: '[BETA] Create RSyslog external integration endpoint'
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: sks-cluster-kubeconfig-id
      path: /sks-cluster-kubeconfig/{id}
      operations:
      - name: generate-sks-cluster-kubeconfig
        method: POST
        description: Generate a new Kubeconfig file for a SKS cluster
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: dns-domain-domain-id-record
      path: /dns-domain/{domain-id}/record
      operations:
      - name: list-dns-domain-records
        method: GET
        description: List DNS domain records
        inputParameters:
        - name: domain-id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: exoscale-rest
    description: REST adapter for Exoscale API.
    resources:
    - path: /load-balancer/{id}/service/{service-id}
      name: delete-load-balancer-service
      operations:
      - method: DELETE
        name: delete-load-balancer-service
        description: Delete a Load Balancer Service
        call: exoscale.delete-load-balancer-service
        with:
          id: rest.id
          service-id: rest.service-id
        outputParameters:
        - type: object
          mapping: $.
    - path: /load-balancer/{id}/service/{service-id}
      name: update-load-balancer-service
      operations:
      - method: PUT
        name: update-load-balancer-service
        description: Update a Load Balancer Service
        call: exoscale.update-load-balancer-service
        with:
          id: rest.id
          service-id: rest.service-id
        outputParameters:
        - type: object
          mapping: $.
    - path: /load-balancer/{id}/service/{service-id}
      name: get-load-balancer-service
      operations:
      - method: GET
        name: get-load-balancer-service
        description: Retrieve Load Balancer Service details
        call: exoscale.get-load-balancer-service
        with:
          id: rest.id
          service-id: rest.service-id
        outputParameters:
        - type: object
          mapping: $.
    - path: /dbaas-external-endpoint-opensearch/{endpoint-id}
      name: delete-dbaas-external-endpoint-opensearch
      operations:
      - method: DELETE
        name: delete-dbaas-external-endpoint-opensearch
        description: '[BETA] Delete OpenSearch logs external integration endpoint'
        call: exoscale.delete-dbaas-external-endpoint-opensearch
        with:
          endpoint-id: rest.endpoint-id
        outputParameters:
        - type: object
          mapping: $.
    - path: /dbaas-external-endpoint-opensearch/{endpoint-id}
      name: get-dbaas-external-endpoint-opensearch
      operations:
      - method: GET
        name: get-dbaas-external-endpoint-opensearch
        description: '[BETA] Get OpenSearch Logs external integration endpoint settings'
        call: exoscale.get-dbaas-external-endpoint-opensearch
        with:
          endpoint-id: rest.endpoint-id
        outputParameters:
        - type: object
          mapping: $.
    - path: /dbaas-external-endpoint-opensearch/{endpoint-id}
      name: update-dbaas-external-endpoint-opensearch
      operations:
      - method: PUT
        name: update-dbaas-external-endpoint-opensearch
        description: '[BETA] Update OpenSearch Logs external integration endpoint'
        call: exoscale.update-dbaas-external-endpoint-opensearch
        with:
          endpoint-id: rest.endpoint-id
        outputParameters:
        - type: object
          mapping: $.
    - path: /dbaas-opensearch/{name}/acl-config
      name: get-dbaas-opensearch-acl-config
      operations:
      - method: GET
        name: get-dbaas-opensearch-acl-config
        description: Get DBaaS OpenSearch ACL configuration
        call: exoscale.get-dbaas-opensearch-acl-config
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /dbaas-opensearch/{name}/acl-config
      name: update-dbaas-opensearch-acl-config
      operations:
      - method: PUT
        name: update-dbaas-opensearch-acl-config
        description: Create a DBaaS OpenSearch ACL configuration
        call: exoscale.update-dbaas-opensearch-acl-config
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /instance-pool/{id}:scale
      name: scale-instance-pool
      operations:
      - method: PUT
        name: scale-instance-pool
        description: Scale an Instance Pool
        call: exoscale.scale-instance-pool
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /instance/{id}:create-snapshot
      name: create-snapshot
      operations:
      - method: POST
        name: create-snapshot
        description: Create a Snapshot of a Compute instance
        call: exoscale.create-snapshot
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /dbaas-valkey/{name}/migration/stop
      name: stop-dbaas-valkey-migration
      operations:
      - method: POST
        name: stop-dbaas-valkey-migration
        description: Stop a DBaaS Valkey migration
        call: exoscale.stop-dbaas-valkey-migration
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /reverse-dns/elastic-ip/{id}
      name: get-reverse-dns-elastic-ip
      operations:
      - method: GET
        name: get-reverse-dns-elastic-ip
        description: Query the PTR DNS records for an elastic IP
        call: exoscale.get-reverse-dns-elastic-ip
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /reverse-dns/elastic-ip/{id}
      name: update-reverse-dns-elastic-ip
      operations:
      - method: POST
        name: update-reverse-dns-elastic-ip
        description: Update/Create the PTR DNS record for an elastic IP
        call: exoscale.update-reverse-dns-elastic-ip
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /reverse-dns/elastic-ip/{id}
      name: delete-reverse-dns-elastic-ip
      operations:
      - method: DELETE
        name: delete-reverse-dns-elastic-ip
        description: Delete the PTR DNS record for an elastic IP
        call: exoscale.delete-reverse-dns-elastic-ip
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /anti-affinity-group
      name: list-anti-affinity-groups
      operations:
      - method: GET
        name: list-anti-affinity-groups
        description: List Anti-affinity Groups
        call: exoscale.list-anti-affinity-groups
        outputParameters:
        - type: object
          mapping: $.
    - path: /anti-affinity-group
      name: create-anti-affinity-group
      operations:
      - method: POST
        name: create-anti-affinity-group
        description: Create an Anti-affinity Group
        call: exoscale.create-anti-affinity-group
        outputParameters:
        - type: object
          mapping: $.
    - path: /ai/ai-api-key
      name: list-ai-api-keys
      operations:
      - method: GET
        name: list-ai-api-keys
        description: List AI API Keys
        call: exoscale.list-ai-api-keys
        outputParameters:
        - type: object
          mapping: $.
    - path: /ai/ai-api-key
      name: create-ai-api-key
      operations:
      - method: POST
        name: create-ai-api-key
        description: Create AI API Key
        call: exoscale.create-ai-api-key
        outputParameters:
        - type: object
          mapping: $.
    - path: /usage-report
      name: get-usage-report
      operations:
      - method: GET
        name: get-usage-report
        description: Retrieve organization usage reports
        call: exoscale.get-usage-report
        outputParameters:
        - type: object
          mapping: $.
    - path: /event
      name: list-events
      operations:
      - method: GET
        name: list-events
        description: List Events
        call: exoscale.list-events
        outputParameters:
        - type: object
          mapping: $.
    - path: /security-group/{id}/rules/{rule-id}
      name: delete-rule-from-security-group
      operations:
      - method: DELETE
        name: delete-rule-from-security-group
        description: Delete a Security Group rule
        call: exoscale.delete-rule-from-security-group
        with:
          id: rest.id
          rule-id: rest.rule-id
        outputParameters:
        - type: object
          mapping: $.
    - path: /dbaas-grafana/{name}/maintenance/start
      name: start-dbaas-grafana-maintenance
      operations:
      - method: PUT
        name: start-dbaas-grafana-maintenance
        description: Initiate Grafana maintenance update
        call: exoscale.start-dbaas-grafana-maintenance
        with:
          name: res

# --- truncated at 32 KB (70 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/exoscale/refs/heads/main/capabilities/exoscale-capability.yaml