# Exoscale Documentation — Exoscale API

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

---

url: https://community.exoscale.com/reference/api/

---

# Exoscale API

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

[OpenAPI Specification (YAML)](exoscale-openapi-spec.yaml) | [JSON](exoscale-openapi-spec.json)

**Last updated:** October 14, 2026

- [Compute](https://community.exoscale.com/reference/api/compute/index.md) - Host anything from simple applications to complex architectures. Start a compute instance in seconds and scale as your infrastructure grows.
- [Networking](https://community.exoscale.com/reference/api/networking/index.md) - Networking services for Exoscale resources, including Virtual Private Cloud (VPC).
- [SKS](https://community.exoscale.com/reference/api/sks/index.md) - SKS is Exoscale's scalable Kubernetes service which provides managed Kubernetes control planes with integrated support for Exoscale instance pools and network load balancers.
- [DBaaS](https://community.exoscale.com/reference/api/dbaas/index.md) - Databases as a Service (DBaaS) provides scalable and fully-managed database solutions with high availability and performance backed by Exoscale's Compute and Storage services.
- [Object Storage](https://community.exoscale.com/reference/api/object-storage/index.md) - Exoscale Simple Object Storage (SOS) is an S3-compatible object storage service.
- [Block Storage](https://community.exoscale.com/reference/api/block-storage/index.md) - Exoscale's Block Storage offers persistent externally attached volumes for your Compute instances.
- [DNS](https://community.exoscale.com/reference/api/dns/index.md) - DNS zone hosting and records management.
- [IAM](https://community.exoscale.com/reference/api/iam/index.md) - Identity and Access Management: roles, users, policies and credentials for accessing the Exoscale API.
- [AI](https://community.exoscale.com/reference/api/ai/index.md) - Exoscale AI services provide GPU-powered infrastructure for running machine learning workloads and large language models.
- [Audit Trail](https://community.exoscale.com/reference/api/audit-trail/index.md) - The Exoscale audit-trail provides a mechanism to query past events performing mutations on resources which happened on an organization.
- [KMS](https://community.exoscale.com/reference/api/kms/index.md) - Exoscale Key Management Service is a managed security service that lets you create, control and manage the lifecycle of cryptographic keys.
- [General](https://community.exoscale.com/reference/api/general/index.md) - 11 API operations

## API Request Signature


In order to authenticate legitimate users, the Exoscale API requires incoming requests to be signed using valid Exoscale API account credentials with the following mechanism.

## Signature Mechanism

The *message* (i.e. content) to sign contains several segments concatenated using a line return character (`\n`).

All segments must be included and in the described order. For cases where a segment doesn't fit the context of the request (e.g. no request body) **an empty line must be used instead**.

* Request method and request URL (path only), separated by a space character
* Request body
* Request URL parameters (Query String) values, concatenated without separator. The matching parameter names have to be specified in the resulting signature header `signed-query-args=` pragma, separated by semicolons (e.g. `p1;p2;pN`).
* Request header values, concatenated without separator (none at the moment, leave empty)
* Request expiration date in UNIX timestamp format

Example *message* to sign for `GET /v2/resource/a02baf5a-a3e4-49a0-857b-8a08d276c1c0?p1=v1&p2=v2`:

```
GET /v2/resource/a02baf5a-a3e4-49a0-857b-8a08d276c1c0

v1v2

1599140767
```

The two blank lines above are due to the absence of a request body and signed headers.

Example *message* to [create a security group](https://community.exoscale.com/reference/api/compute/security-group/index.md#create-security-group)

```
POST /v2/security-group
{"name": "my-security-group"}


1599140767
```

The two blank lines above are due to the absence of query parameters and signed headers.

The request signature consists of the base64-encoded [HMAC](https://en.wikipedia.org/wiki/HMAC) hash of the UTF-8 encoded *message* and the Exoscale API secret using the SHA256 function:

```
signature = BASE64_ENCODE(HMAC_SHA256(Exoscale API secret, message))
```

Finally, the computed signature must be added to the API request in an `Authorization` header such as:

```
Authorization: EXO2-HMAC-SHA256 credential=<Exoscale API key>,expires=<expiration date UNIX timestamp>,signature=<signature>
```

Example API query:

```
GET /v2/resource/a02baf5a-a3e4-49a0-857b-8a08d276c1c0?p1=v1&p2=v2 HTTP/1.1
Host: api-ch-gva-2.exoscale.com
Authorization: EXO2-HMAC-SHA256 credential=EXO29147e9f89102b7ac1e88514,signed-query-args=p1;p2,expires=1599140767,signature=2AOBQsbElQb4FpKT/FM/9T4NobjlmZkSGvvdUth/xlY=
```

## Reference Implementations

You can look up the following existing reference implementations:

* Go: [github.com/exoscale/egoscale/api/v2 > `SecurityProviderExoscale.signRequest`](https://github.com/exoscale/egoscale/blob/master/v2/api/security.go)
* Python: [requests-exoscale-auth > `ExoscaleV2Auth`](https://github.com/exoscale/requests-exoscale-auth/blob/master/exoscale_auth.py)



## Zone local resources


The API is deployed across all Exoscale zones. When performing a compute call, you should use the relevant zone for your resource.
For example: https://api-de-fra-1.exoscale.com/v2/instance would return only the instances from `de-fra-1`, https://api-ch-gva-2.exoscale.com/v2/instance from `ch-gva-2`.
To obtain a list of all instances across all zones, you would need to do the corresponding request for each zone.

---

url: https://community.exoscale.com/reference/api/compute/

---

# Compute

Host anything from simple applications to complex architectures. Start a compute instance in seconds and scale as your infrastructure grows.

[Read more](https://community.exoscale.com/product/compute/index.md)

- [Instance](https://community.exoscale.com/reference/api/compute/instance/index.md) - Instances are the virtual machines at the core of the Exoscale Compute service.
- [Instance Pool](https://community.exoscale.com/reference/api/compute/instance-pool/index.md) - Instance Pools is an Exoscale service allowing users to provision managed groups of identical Compute instances automatically.
- [Snapshot](https://community.exoscale.com/reference/api/compute/snapshot/index.md) - Snapshots provide a way to get point-in-time recovery for your Compute instance.
- [Template](https://community.exoscale.com/reference/api/compute/template/index.md) - Templates contain the OS and the initial setup of a Compute instance.
- [Security Group](https://community.exoscale.com/reference/api/compute/security-group/index.md) - Security Groups are groups of firewall rules that regulate network traffic to and from your Compute instances.
- [SSH Key](https://community.exoscale.com/reference/api/compute/ssh-key/index.md) - SSH Keypairs
- [Elastic IP](https://community.exoscale.com/reference/api/compute/elastic-ip/index.md) - Elastic IPs are additional public IPv4/6 addresses that can be attached to Compute instances, with optional healthcheck support.
- [Network Load Balancer](https://community.exoscale.com/reference/api/compute/network-load-balancer/index.md) - A Network Load Balancer (NLB) is a Layer 4 (TCP/UDP) load balancer that distributes incoming traffic to Compute instances managed by an Instance Pool.
- [Private Network](https://community.exoscale.com/reference/api/compute/private-network/index.md) - Private Network provides private L2 networking functionality between Compute instances.
- [Instance Type](https://community.exoscale.com/reference/api/compute/instance-type/index.md) - An Instance Type is a resource describing the amount of CPU, RAM and GPUs allocated to a Compute instance.
- [Reverse DNS](https://community.exoscale.com/reference/api/compute/reverse-dns/index.md) - Reverse DNS lets you record PTR records for Compute instance public IP addresses or Elastic IPs.
- [Anti-Affinity Group](https://community.exoscale.com/reference/api/compute/anti-affinity-group/index.md) - Anti-affinity groups let you define placement constraints for your Compute instances.
- [Deploy Target](https://community.exoscale.com/reference/api/compute/deploy-target/index.md) - Deploy Target lets you spin up Compute instances on dedicated hypervisors.

---

url: https://community.exoscale.com/reference/api/compute/instance/

---

# Instance

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Instances are the virtual machines at the core of the Exoscale Compute service.

[Read more](https://www.exoscale.com/compute/)

## <span data-label="POST" class="pill-POST"></span>create-instance

Create a Compute instance

```
POST /instance
```

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `disk-size` | integer | **yes** | Instance disk size in GiB<br/><br/>Min: `10`. Max: `51200`. |
| `instance-type` | [Instance type reference](https://community.exoscale.com/reference/api/_schemas/instance-type-ref/index.md) | **yes** | Instance Type |
| `template` | [Template reference](https://community.exoscale.com/reference/api/_schemas/template-ref/index.md) | **yes** | Instance Template |
| `anti-affinity-groups` | array of [Anti-affinity group reference](https://community.exoscale.com/reference/api/_schemas/anti-affinity-group-ref/index.md) | no | Instance Anti-affinity Groups |
| `application-consistent-snapshot-enabled` | boolean | no | Enable application-consistent snapshot for the instance |
| `auto-start` | boolean | no | Start Instance on creation (default: true) |
| `deploy-target` | [Deploy target reference](https://community.exoscale.com/reference/api/_schemas/deploy-target-ref/index.md) | no | Instance Deploy Target |
| `ip-forwarding` | boolean | no | VPC ip forwarding |
| `ipv6-enabled` | boolean | no | Enable IPv6. DEPRECATED: use `public-ip-assignments`. |
| `labels` | object | no | Resource labels |
| `name` | string | no | Instance name<br/><br/>Min length: `1`. Max length: `255`. |
| `public-ip-assignment` | string | no | Assign public IP to the Instance<br/><br/>Allowed values: `inet4`, `dual`, `none`. |
| `secureboot-enabled` | boolean | no | Enable secure boot |
| `security-groups` | array of [Security group reference](https://community.exoscale.com/reference/api/_schemas/security-group-ref/index.md) | no | Instance Security Groups |
| `ssh-key` | [SSH key reference](https://community.exoscale.com/reference/api/_schemas/ssh-key-ref/index.md) | no | Instance SSH Key |
| `ssh-keys` | array of [SSH key reference](https://community.exoscale.com/reference/api/_schemas/ssh-key-ref/index.md) | no | Instance SSH Keys |
| `tpm-enabled` | boolean | no | Enable Trusted Platform Module (TPM) |
| `user-data` | string | no | Instance Cloud-init user-data (base64 encoded)<br/><br/>Min length: `1`. Max length: `32768`. |
| `vpc` | [Vpc](#vpc) | no | Attach the Instance to VPC Subnets |

<details>
<summary>Example</summary>

```json
{
  "anti-affinity-groups": [
    {
      "id": "string"
    }
  ],
  "application-consistent-snapshot-enabled": true,
  "auto-start": true,
  "deploy-target": {
    "id": "string"
  },
  "disk-size": 0,
  "instance-type": {
    "id": "string"
  },
  "ip-forwarding": true,
  "ipv6-enabled": true,
  "labels": {},
  "name": "string",
  "public-ip-assignment": "inet4",
  "secureboot-enabled": true,
  "security-groups": [
    {
      "id": "string"
    }
  ],
  "ssh-key": {
    "name": "string"
  },
  "ssh-keys": [
    {
      "name": "string"
    }
  ],
  "template": {
    "id": "string"
  },
  "tpm-enabled": true,
  "user-data": "string",
  "vpc": {
    "id": "string",
    "subnets": [
      {
        "id": "string",
        "ipv4": "string"
      }
    ]
  }
}
```
</details>


### Vpc {#vpc}

Attach the Instance to VPC Subnets

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | **yes** | VPC ID<br/><br/>Must be a valid UUID. |
| `subnets` | array of [Subnets](#subnets) | **yes** | VPC Subnets to attach the Instance to |

### Subnets {#subnets}

VPC Subnet attachment

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | **yes** | Subnet ID<br/><br/>Must be a valid UUID. |
| `ipv4` | string | no | Instance IPv4. Random one if unset<br/><br/>Must be a valid IPv4 address. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-instance`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateInstance) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_instance) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createInstance(com.exoscale.sdk.model.CreateInstanceRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-instance`

## <span data-label="GET" class="pill-GET"></span>get-instance

Retrieve Compute instance details

```
GET /instance/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `anti-affinity-groups` | array of [Anti-affinity group reference](https://community.exoscale.com/reference/api/_schemas/anti-affinity-group-ref/index.md) | Instance Anti-affinity Groups |
| `application-consistent-snapshot-enabled` | boolean | Indicates if the instance will take application-consistent snapshots |
| `created-at` | string | Instance creation date<br/><br/>ISO 8601 date-time. |
| `deploy-target` | [Deploy target reference](https://community.exoscale.com/reference/api/_schemas/deploy-target-ref/index.md) | Instance Deploy Target |
| `disk-encrypted` | boolean | Indicates if the root volume of the instance is encrypted |
| `disk-size` | integer | Instance disk size in GiB<br/><br/>Min: `10`. Max: `51200`. |
| `elastic-ips` | array of [Elastic IP reference](https://community.exoscale.com/reference/api/_schemas/elastic-ip-ref/index.md) | Instance Elastic IPs |
| `id` | string | Instance ID<br/><br/>Must be a valid UUID. |
| `instance-type` | [Compute instance type](https://community.exoscale.com/reference/api/_schemas/instance-type/index.md) | Instance Type |
| `ip-forwarding` | boolean | VPC ip forwarding |
| `ipv6-address` | string | Instance IPv6 address |
| `labels` | object | Resource labels |
| `mac-address` | string | Instance MAC address |
| `manager` | [Resource manager](https://community.exoscale.com/reference/api/_schemas/manager/index.md) | Instance manager |
| `name` | string | Instance name<br/><br/>Min length: `1`. Max length: `255`. |
| `private-networks` | array of [Private Networks](https://community.exoscale.com/reference/api/_schemas/instance/index.md#private-networks) | Instance Private Networks |
| `public-ip` | string | Instance public IPv4 address<br/><br/>Must be a valid IPv4 address. |
| `public-ip-assignment` | string | Instance public IP assignment<br/><br/>Allowed values: `inet4`, `dual`, `none`. |
| `secureboot-enabled` | boolean | Indicates if the instance has secure boot enabled |
| `security-groups` | array of [Security group reference](https://community.exoscale.com/reference/api/_schemas/security-group-ref/index.md) | Instance Security Groups |
| `snapshots` | array of [Snapshot reference](https://community.exoscale.com/reference/api/_schemas/snapshot-ref/index.md) | Instance Snapshots |
| `ssh-key` | [SSH key](https://community.exoscale.com/reference/api/_schemas/ssh-key/index.md) | Instance SSH Key |
| `ssh-keys` | array of [SSH key](https://community.exoscale.com/reference/api/_schemas/ssh-key/index.md) | Instance SSH Keys |
| `state` | string | Instance state<br/><br/>Allowed values: `expunging`, `starting`, `destroying`, `running`, `stopping`, `stopped`, `migrating`, `error`, `destroyed`. |
| `template` | [Instance template](https://community.exoscale.com/reference/api/_schemas/template/index.md) | Instance Template |
| `tpm-enabled` | boolean | Indicates if the instance has tpm enabled |
| `user-data` | string | Instance Cloud-init user-data (base64 encoded)<br/><br/>Min length: `1`. |
| `vpc` | [Vpc](https://community.exoscale.com/reference/api/_schemas/instance/index.md#vpc) | VPC |

<details>
<summary>Example output</summary>

```json
{
  "anti-affinity-groups": [
    {
      "id": "string"
    }
  ],
  "application-consistent-snapshot-enabled": true,
  "created-at": "2024-01-01T12:00:00Z",
  "deploy-target": {
    "id": "string"
  },
  "disk-encrypted": true,
  "disk-size": 0,
  "elastic-ips": [
    {
      "id": "string"
    }
  ],
  "id": "string",
  "instance-type": {
    "authorized": true,
    "cpus": 0,
    "family": "gpu3",
    "gpus": 0,
    "id": "string",
    "memory": 0,
    "size": "large",
    "zones": [
      "ch-dk-2"
    ]
  },
  "ip-forwarding": true,
  "ipv6-address": "string",
  "labels": {},
  "mac-address": "string",
  "manager": {
    "id": "string",
    "type": "sks-nodepool"
  },
  "name": "string",
  "private-networks": [
    {
      "id": "string",
      "mac-address": "string"
    }
  ],
  "public-ip": "string",
  "public-ip-assignment": "inet4",
  "secureboot-enabled": true,
  "security-groups": [
    {
      "id": "string"
    }
  ],
  "snapshots": [
    {
      "id": "string"
    }
  ],
  "ssh-key": {
    "fingerprint": "string",
    "name": "string"
  },
  "ssh-keys": [
    {
      "fingerprint": "string",
      "name": "string"
    }
  ],
  "state": "expunging",
  "template": {
    "application-consistent-snapshot-enabled": true,
    "boot-mode": "legacy",
    "build": "string",
    "checksum": "string",
    "created-at": "2024-01-01T12:00:00Z",
    "default-user": "string",
    "description": "string",
    "family": "string",
    "id": "string",
    "maintainer": "string",
    "name": "string",
    "password-enabled": true,
    "size": 0,
    "ssh-key-enabled": true,
    "url": "string",
    "version": "string",
    "visibility": "private"
  },
  "tpm-enabled": true,
  "user-data": "string",
  "vpc": {
    "id": "string",
    "name": "string",
    "subnets": [
      {
        "id": "string",
        "ipv4": "string",
        "name": "string"
      }
    ]
  }
}
```
</details>


SDK reference for `get-instance`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetInstance) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_instance) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getInstance(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-instance`

## <span data-label="PUT" class="pill-PUT"></span>reset-instance

Reset a Compute instance to a base/target template

```
PUT /instance/{id}:reset
```

This operation re-installs a Compute instance to a base template. If target template is provided it will be used to recreated instance from. Warning: the operation wipes all data stored on the disk.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `disk-size` | integer | no | Instance disk size in GiB<br/><br/>Min: `10`. Max: `51200`. |
| `template` | [Template reference](https://community.exoscale.com/reference/api/_schemas/template-ref/index.md) | no | Template to recreate Instance from |

<details>
<summary>Example</summary>

```json
{
  "disk-size": 0,
  "template": {
    "id": "string"
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `reset-instance`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ResetInstance) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reset_instance) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#resetInstance(java.util.UUID,com.exoscale.sdk.model.ResetInstanceRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reset-instance`

## <span data-label="PUT" class="pill-PUT"></span>start-instance

Start a Compute instance

```
PUT /instance/{id}:start
```

This operation starts a virtual machine, potentially using a rescue profile if specified

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `rescue-profile` | string | no | Boot in Rescue Mode, using named profile (supported: netboot, netboot-efi)<br/><br/>Allowed values: `netboot-efi`, `netboot`. |

<details>
<summary>Example</summary>

```json
{
  "rescue-profile": "netboot-efi"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `start-instance`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.StartInstance) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.start_instance) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#startInstance(java.util.UUID,com.exoscale.sdk.model.StartInstanceRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api start-instance`

## <span data-label="PUT" class="pill-PUT"></span>scale-instance

Scale a Compute instance to a new Instance Type

```
PUT /instance/{id}:scale
```

This operation changes the Compute instance's type. Note: the new Instance Type must be within the same family (e.g. a standard instance cannot be scaled to gpu2 or storage).

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `instance-type` | [Instance type reference](https://community.exoscale.com/reference/api/_schemas/instance-type-ref/index.md) | **yes** | Instance Type |

<details>
<summary>Example</summary>

```json
{
  "instance-type": {
    "id": "string"
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `scale-instance`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ScaleInstance) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.scale_instance) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#scaleInstance(java.util.UUID,com.exoscale.sdk.model.ScaleInstanceRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api scale-instance`

## <span data-label="PUT" class="pill-PUT"></span>stop-instance

Stop a Compute instance

```
PUT /instance/{id}:stop
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `stop-instance`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.StopInstance) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.stop_instance) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#stopInstance(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api stop-instance`

## <span data-label="PUT" class="pill-PUT"></span>reboot-instance

Reboot a Compute instance

```
PUT /instance/{id}:reboot
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `reboot-instance`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RebootInstance) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reboot_instance) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#rebootInstance(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reboot-instance`

## <span data-label="PUT" class="pill-PUT"></span>update-instance

Update a Compute instance

```
PUT /instance/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `application-consistent-snapshot-enabled` | boolean | no | Enable/Disable Application Consistent Snapshot for Instance |
| `labels` | object | no | Resource labels |
| `name` | string | no | Instance name<br/><br/>Min length: `1`. Max length: `255`. |
| `public-ip-assignment` | string | no | Assign public IP to the Instance<br/><br/>Allowed values: `inet4`, `dual`, `none`. |
| `user-data` | string | no | Instance Cloud-init user-data (base64 encoded)<br/><br/>Min length: `1`. Max length: `32768`. |

<details>
<summary>Example</summary>

```json
{
  "application-consistent-snapshot-enabled": true,
  "labels": {},
  "name": "string",
  "public-ip-assignment": "inet4",
  "user-data": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-instance`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateInstance) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_instance) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateInstance(java.util.UUID,com.exoscale.sdk.model.UpdateInstanceRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-instance`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-instance

Delete a Compute instance

```
DELETE /instance/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-instance`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteInstance) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_instance) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteInstance(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-instance`

## <span data-label="GET" class="pill-GET"></span>reveal-instance-password

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

```
GET /instance/{id}:password
```

Reveal the password used during instance creation or the latest password reset.
            This is only available for VMs created against templates having the `password-enabled`
            property set to `true`.

            Passwords are transiently stored for at most 24 hours and intended to be retrieved shortly after
            creation or resets.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `password` | string | Password |

<details>
<summary>Example output</summary>

```json
{
  "password": "string"
}
```
</details>


SDK reference for `reveal-instance-password`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RevealInstancePassword) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reveal_instance_password) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#revealInstancePassword(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reveal-instance-password`

## <span data-label="PUT" class="pill-PUT"></span>reset-instance-password

Reset a compute instance password

```
PUT /instance/{id}:reset-password
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `reset-instance-password`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ResetInstancePassword) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reset_instance_password) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#resetInstancePassword(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reset-instance-password`

## <span data-label="PUT" class="pill-PUT"></span>remove-instance-protection

Remove instance destruction protection

```
PUT /instance/{id}:remove-protection
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `remove-instance-protection`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RemoveInstanceProtection) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.remove_instance_protection) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#removeInstanceProtection(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api remove-instance-protection`

## <span data-label="PUT" class="pill-PUT"></span>add-instance-protection

Set instance destruction protection

```
PUT /instance/{id}:add-protection
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `add-instance-protection`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.AddInstanceProtection) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.add_instance_protection) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#addInstanceProtection(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api add-instance-protection`


---

## Other Operations

## <span data-label="GET" class="pill-GET"></span>get-console-proxy-url

Retrieve signed url valid for 60 seconds to connect via console-proxy websocket to VM VNC console.

```
GET /console/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `host` | string |  |
| `path` | string |  |
| `url` | string |  |

<details>
<summary>Example output</summary>

```json
{
  "host": "string",
  "path": "string",
  "url": "string"
}
```
</details>


SDK reference for `get-console-proxy-url`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetConsoleProxyURL) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_console_proxy_url) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getConsoleProxyUrl(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-console-proxy-url`

## <span data-label="PUT" class="pill-PUT"></span>resize-instance-disk

Resize a Compute instance disk

```
PUT /instance/{id}:resize-disk
```

This operation resizes a Compute instance's disk volume. Note: the disk can only grow, cannot be shrunk.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `disk-size` | integer | **yes** | Instance disk size in GiB<br/><br/>Min: `10`. Max: `51200`. |

<details>
<summary>Example</summary>

```json
{
  "disk-size": 0
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `resize-instance-disk`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ResizeInstanceDisk) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.resize_instance_disk) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#resizeInstanceDisk(java.util.UUID,com.exoscale.sdk.model.ResizeInstanceDiskRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api resize-instance-disk`

## <span data-label="DELETE" class="pill-DELETE"></span>reset-instance-field

Reset Instance field

```
DELETE /instance/{id}/{field}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |
| `field` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `reset-instance-field`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ResetInstanceField) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reset_instance_field) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#resetInstanceField(java.util.UUID,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reset-instance-field`

## <span data-label="POST" class="pill-POST"></span>revert-instance-to-snapshot

Revert a snapshot for an instance

```
POST /instance/{instance-id}:revert-snapshot
```

This operation reverts the snapshot to the Compute instance volume, restoring stored data as it was at the time of the snapshot.
The Compute instance must be previously stopped.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `instance-id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | **yes** | Snapshot ID<br/><br/>Must be a valid UUID. |

<details>
<summary>Example</summary>

```json
{
  "id": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `revert-instance-to-snapshot`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RevertInstanceToSnapshot) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.revert_instance_to_snapshot) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#revertInstanceToSnapshot(java.util.UUID,com.exoscale.sdk.model.RevertInstanceToSnapshotRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api revert-instance-to-snapshot`

## <span data-label="GET" class="pill-GET"></span>list-instances

List Compute instances

```
GET /instance
```

### Query parameters

| Name | In | Required | Description |
| --- | --- | --- | --- |
| `manager-id` | `query` | no | Must be a valid UUID. |
| `manager-type` | `query` | no |  |
| `ip-address` | `query` | no |  |
| `labels` | `query` | no |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `instances` | array of [Instances](#instances) |  |

<details>
<summary>Example output</summary>

```json
{
  "instances": [
    {
      "created-at": "2024-01-01T12:00:00Z",
      "id": "string",
      "instance-type": {
        "authorized": true,
        "cpus": 0,
        "family": "gpu3",
        "gpus": 0,
        "id": "string",
        "memory": 0,
        "size": "large",
        "zones": [
          "ch-dk-2"
        ]
      },
      "ipv6-address": "string",
      "labels": {},
      "mac-address": "string",
      "manager": {
        "id": "string",
        "type": "sks-nodepool"
      },
      "name": "string",
      "private-networks": [
        {
          "id": "string",
          "mac-address": "string"
        }
      ],
      "public-ip": "string",
      "public-ip-assignment": "inet4",
      "security-groups": [
        {
          "description": "string",
          "external-sources": [
            null
          ],
          "id": "string",
          "name": "string",
          "rules": [
            null
          ]
        }
      ],
      "ssh-key": {
        "fingerprint": "string",
        "name": "string"
      },
      "ssh-keys": [
        {
          "fingerprint": "string",
          "name": "string"
        }
      ],
      "state": "expunging",
      "template": {
        "application-consistent-snapshot-enabled": true,
        "boot-mode": "legacy",
        "build": "string",
        "checksum": "string",
        "created-at": "2024-01-01T12:00:00Z",
        "default-user": "string",
        "description": "string",
        "family": "string",
        "id": "string",
        "maintainer": "string",
        "name": "string",
        "password-enabled": true,
        "size": 0,
        "ssh-key-enabled": true,
        "url": "string",
        "version": "string",
        "visibility": "private"
      }
    }
  ]
}
```
</details>


### Instances {#instances}

Instance

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `created-at` | string | no | Instance creation date<br/><br/>ISO 8601 date-time. |
| `id` | string | no | Instance ID<br/><br/>Must be a valid UUID. |
| `instance-type` | [Compute instance type](https://community.exoscale.com/reference/api/_schemas/instance-type/index.md) | no | Instance Type |
| `ipv6-address` | string | no | Instance IPv6 address |
| `labels` | object | no | Resource labels |
| `mac-address` | string | no | Instance MAC address |
| `manager` | [Resource manager](https://community.exoscale.com/reference/api/_schemas/manager/index.md) | no | Instance manager |
| `name` | string | no | Instance name<br/><br/>Min length: `1`. Max length: `255`. |
| `private-networks` | array of [Private Networks](#private-networks) | no | Instance Private Networks |
| `public-ip` | string | no | Instance public IPv4 address<br/><br/>Must be a valid IPv4 address. |
| `public-ip-assignment` | string | no | Instance public IP assignment<br/><br/>Allowed values: `inet4`, `dual`, `none`. |
| `security-groups` | array of [Security Group](https://community.exoscale.com/reference/api/_schemas/security-group/index.md) | no | Instance Security Groups |
| `ssh-key` | [SSH key](https://community.exoscale.com/reference/api/_schemas/ssh-key/index.md) | no | Instance SSH Key |
| `ssh-keys` | array of [SSH key](https://community.exoscale.com/reference/api/_schemas/ssh-key/index.md) | no | Instance SSH Keys |
| `state` | string | no | Instance state<br/><br/>Allowed values: `expunging`, `starting`, `destroying`, `running`, `stopping`, `stopped`, `migrating`, `error`, `destroyed`. |
| `template` | [Instance template](https://community.exoscale.com/reference/api/_schemas/template/index.md) | no | Instance Template |

### Private Networks {#private-networks}

Private Network

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | Private Network ID<br/><br/>Must be a valid UUID. |
| `mac-address` | string | no | Private Network MAC address |

SDK reference for `list-instances`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListInstances) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_instances) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listInstances(java.util.UUID,java.lang.String,java.lang.String,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-instances`

## <span data-label="POST" class="pill-POST"></span>create-snapshot

Create a Snapshot of a Compute instance

```
POST /instance/{id}:create-snapshot
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-snapshot`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateSnapshot) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_snapshot) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createSnapshot(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-snapshot`

## <span data-label="POST" class="pill-POST"></span>enable-tpm

Enable tpm for the instance.

```
POST /instance/{id}:enable-tpm
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `enable-tpm`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.EnableTpm) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.enable_tpm) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#enableTpm(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api enable-tpm`

---

url: https://community.exoscale.com/reference/api/compute/instance-pool/

---

# Instance Pool

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Instance Pools is an Exoscale service allowing users to provision managed groups of identical Compute instances automatically.

[Read more](https://community.exoscale.com/product/compute/instances/how-to/instance-pools/index.md)

## <span data-label="POST" class="pill-POST"></span>create-instance-pool

Create an Instance Pool

```
POST /instance-pool
```

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `disk-size` | integer | **yes** | Instances disk size in GiB<br/><br/>Min: `10`. Max: `51200`. |
| `instance-type` | [Instance type reference](https://community.exoscale.com/reference/api/_schemas/instance-type-ref/index.md) | **yes** | Instances type |
| `name` | string | **yes** | Instance Pool name<br/><br/>Min length: `1`. Max length: `255`. |
| `size` | integer | **yes** | Number of Instances<br/><br/>Min: `0`. |
| `template` | [Template reference](https://community.exoscale.com/reference/api/_schemas/template-ref/index.md) | **yes** | Instances template |
| `anti-affinity-groups` | array of [Anti-affinity group reference](https://community.exoscale.com/reference/api/_schemas/anti-affinity-group-ref/index.md) | no | Instance Pool Anti-affinity Groups |
| `application-consistent-snapshot-enabled` | boolean | no | Enable application consistent snapshots |
| `deploy-target` | [Deploy target reference](https://community.exoscale.com/reference/api/_schemas/deploy-target-ref/index.md) | no | Deploy Target to deploy Instances on |
| `description` | string | no | Instance Pool description<br/><br/>Max length: `255`. |
| `elastic-ips` | array of [Elastic IP reference](https://community.exoscale.com/reference/api/_schemas/elastic-ip-ref/index.md) | no | Instances Elastic IPs |
| `instance-prefix` | string | no | Prefix to apply to Instances names (default: pool)<br/><br/>Min length: `1`. Max length: `30`. |
| `ipv6-enabled` | boolean | no | Enable IPv6. DEPRECATED: use `public-ip-assignments`. |
| `labels` | object | no | Instance Pool Labels |
| `min-available` | integer | no | Minimum number of running Instances<br/><br/>Min: `0`. |
| `private-networks` | array of [Private network reference](https://community.exoscale.com/reference/api/_schemas/private-network-ref/index.md) | no | Instance Pool Private Networks |
| `public-ip-assignment` | string | no | Determines public IP assignment of the Instances. Type `none` is final and can't be changed later on.<br/><br/>Allowed values: `inet4`, `dual`, `none`. |
| `security-groups` | array of [Security group reference](https://community.exoscale.com/reference/api/_schemas/security-group-ref/index.md) | no | Instance Pool Security Groups |
| `ssh-key` | [SSH key reference](https://community.exoscale.com/reference/api/_schemas/ssh-key-ref/index.md) | no | Instances SSH key |
| `ssh-keys` | array of [SSH key reference](https://community.exoscale.com/reference/api/_schemas/ssh-key-ref/index.md) | no | Instances SSH Keys |
| `user-data` | string | no | Instances Cloud-init user-data<br/><br/>Min length: `1`. Max length: `32768`. |

<details>
<summary>Example</summary>

```json
{
  "anti-affinity-groups": [
    {
      "id": "string"
    }
  ],
  "application-consistent-snapshot-enabled": true,
  "deploy-target": {
    "id": "string"
  },
  "description": "string",
  "disk-size": 0,
  "elastic-ips": [
    {
      "id": "string"
    }
  ],
  "instance-prefix": "string",
  "instance-type": {
    "id": "string"
  },
  "ipv6-enabled": true,
  "labels": {},
  "min-available": 0,
  "name": "string",
  "private-networks": [
    {
      "id": "string"
    }
  ],
  "public-ip-assignment": "inet4",
  "security-groups": [
    {
      "id": "string"
    }
  ],
  "size": 0,
  "ssh-key": {
    "name": "string"
  },
  "ssh-keys": [
    {
      "name": "string"
    }
  ],
  "template": {
    "id": "string"
  },
  "user-data": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-instance-pool`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateInstancePool) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_instance_pool) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createInstancePool(com.exoscale.sdk.model.CreateInstancePoolRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-instance-pool`

## <span data-label="GET" class="pill-GET"></span>get-instance-pool

Retrieve Instance Pool details

```
GET /instance-pool/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `anti-affinity-groups` | array of [Anti-affinity group reference](https://community.exoscale.com/reference/api/_schemas/anti-affinity-group-ref/index.md) | Instance Pool Anti-affinity Groups |
| `application-consistent-snapshot-enabled` | boolean | Enable application consistent snapshots |
| `deploy-target` | [Deploy target reference](https://community.exoscale.com/reference/api/_schemas/deploy-target-ref/index.md) | Instance Pool Deploy Target |
| `description` | string | Instance Pool description<br/><br/>Min length: `1`. Max length: `255`. |
| `disk-size` | integer | Instances disk size in GiB<br/><br/>Min: `10`. Max: `51200`. |
| `elastic-ips` | array of [Elastic IP reference](https://community.exoscale.com/reference/api/_schemas/elastic-ip-ref/index.md) | Instances Elastic IPs |
| `error-reason` | [Error Reason](https://community.exoscale.com/reference/api/_schemas/instance-pool/index.md#error-reason) | Instance Pool Error Reason |
| `id` | string | Instance Pool ID<br/><br/>Must be a valid UUID. |
| `instance-prefix` | string | The instances created by the Instance Pool will be prefixed with this value (default: pool)<br/><br/>Min length: `1`. Max length: `30`. |
| `instance-type` | [Instance type reference](https://community.exoscale.com/reference/api/_schemas/instance-type-ref/index.md) | Instances type |
| `instances` | array of [Target Instance](https://community.exoscale.com/reference/api/_schemas/instance-ref/index.md) | Instances |
| `ipv6-enabled` | boolean | Enable IPv6 for instances |
| `labels` | object | Instance Pool Labels |
| `manager` | [Resource manager](https://community.exoscale.com/reference/api/_schemas/manager/index.md) | Instance Pool manager |
| `min-available` | integer | Minimum number of running instances<br/><br/>Min: `0`. |
| `name` | string | Instance Pool name<br/><br/>Min length: `1`. Max length: `255`. |
| `private-networks` | array of [Private network reference](https://community.exoscale.com/reference/api/_schemas/private-network-ref/index.md) | Instance Pool Private Networks |
| `public-ip-assignment` | string | Instance Pool public IP assignment<br/><br/>Allowed values: `inet4`, `dual`, `none`. |
| `security-groups` | array of [Security group reference](https://community.exoscale.com/reference/api/_schemas/security-group-ref/index.md) | Instance Pool Security Groups |
| `size` | integer | Number of instances<br/><br/>Min: `0`. |
| `ssh-key` | [SSH key reference](https://community.exoscale.com/reference/api/_schemas/ssh-key-ref/index.md) | Instances SSH key |
| `ssh-keys` | array of [SSH key reference](https://community.exoscale.com/reference/api/_schemas/ssh-key-ref/index.md) | Instances SSH keys |
| `state` | string | Instance Pool state<br/><br/>Allowed values: `scaling-up`, `scaling-down`, `destroying`, `creating`, `suspended`, `running`, `updating`, `error`. |
| `template` | [Template reference](https://community.exoscale.com/reference/api/_schemas/template-ref/index.md) | Instances template |
| `user-data` | string | Instances Cloud-init user-data<br/><br/>Min length: `1`. |

<details>
<summary>Example output</summary>

```json
{
  "anti-affinity-groups": [
    {
      "id": "string"
    }
  ],
  "application-consistent-snapshot-enabled": true,
  "deploy-target": {
    "id": "string"
  },
  "description": "string",
  "disk-size": 0,
  "elastic-ips": [
    {
      "id": "string"
    }
  ],
  "error-reason": {
    "cause": "string",
    "job-id": "string",
    "type": "string"
  },
  "id": "string",
  "instance-prefix": "string",
  "instance-type": {
    "id": "string"
  },
  "instances": [
    {
      "id": "string"
    }
  ],
  "ipv6-enabled": true,
  "labels": {},
  "manager": {
    "id": "string",
    "type": "sks-nodepool"
  },
  "min-available": 0,
  "name": "string",
  "private-networks": [
    {
      "id": "string"
    }
  ],
  "public-ip-assignment": "inet4",
  "security-groups": [
    {
      "id": "string"
    }
  ],
  "size": 0,
  "ssh-key": {
    "name": "string"
  },
  "ssh-keys": [
    {
      "name": "string"
    }
  ],
  "state": "scaling-up",
  "template": {
    "id": "string"
  },
  "user-data": "string"
}
```
</details>


SDK reference for `get-instance-pool`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetInstancePool) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_instance_pool) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getInstancePool(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-instance-pool`

## <span data-label="PUT" class="pill-PUT"></span>scale-instance-pool

Scale an Instance Pool

```
PUT /instance-pool/{id}:scale
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `size` | integer | **yes** | Number of managed Instances<br/><br/>Min: `0`. |

<details>
<summary>Example</summary>

```json
{
  "size": 0
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `scale-instance-pool`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ScaleInstancePool) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.scale_instance_pool) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#scaleInstancePool(java.util.UUID,com.exoscale.sdk.model.ScaleInstancePoolRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api scale-instance-pool`

## <span data-label="PUT" class="pill-PUT"></span>update-instance-pool

Update an Instance Pool

```
PUT /instance-pool/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `anti-affinity-groups` | array of [Anti-affinity group reference](https://community.exoscale.com/reference/api/_schemas/anti-affinity-group-ref/index.md) | no | Instance Pool Anti-affinity Groups |
| `application-consistent-snapshot-enabled` | boolean | no | Enable application consistent snapshots |
| `deploy-target` | [Deploy target reference](https://community.exoscale.com/reference/api/_schemas/deploy-target-ref/index.md) | no | Instance Pool Deploy Target |
| `description` | string | no | Instance Pool description<br/><br/>Max length: `255`. |
| `disk-size` | integer | no | Instances disk size in GiB<br/><br/>Min: `10`. Max: `51200`. |
| `elastic-ips` | array of [Elastic IP reference](https://community.exoscale.com/reference/api/_schemas/elastic-ip-ref/index.md) | no | Instances Elastic IPs |
| `instance-prefix` | string | no | Prefix to apply to Instances names (default: pool) |
| `instance-type` | [Instance type reference](https://community.exoscale.com/reference/api/_schemas/instance-type-ref/index.md) | no | Instances type |
| `ipv6-enabled` | boolean | no | Enable IPv6. DEPRECATED: use `public-ip-assignments`. |
| `labels` | object | no | Instance Pool Labels |
| `min-available` | integer | no | Minimum number of running Instances<br/><br/>Min: `0`. |
| `name` | string | no | Instance Pool name<br/><br/>Min length: `1`. Max length: `255`. |
| `private-networks` | array of [Private network reference](https://community.exoscale.com/reference/api/_schemas/private-network-ref/index.md) | no | Instance Pool Private Networks |
| `public-ip-assignment` | string | no | Determines public IP assignment of the Instances.<br/><br/>Allowed values: `inet4`, `dual`. |
| `security-groups` | array of [Security group reference](https://community.exoscale.com/reference/api/_schemas/security-group-ref/index.md) | no | Instance Pool Security Groups |
| `ssh-key` | [SSH key reference](https://community.exoscale.com/reference/api/_schemas/ssh-key-ref/index.md) | no | Instances SSH key |
| `ssh-keys` | array of [SSH key reference](https://community.exoscale.com/reference/api/_schemas/ssh-key-ref/index.md) | no | Instances SSH keys |
| `template` | [Template reference](https://community.exoscale.com/reference/api/_schemas/template-ref/index.md) | no | Instances template |
| `user-data` | string | no | Instances Cloud-init user-data<br/><br/>Min length: `1`. |

<details>
<summary>Example</summary>

```json
{
  "anti-affinity-groups": [
    {
      "id": "string"
    }
  ],
  "application-consistent-snapshot-enabled": true,
  "deploy-target": {
    "id": "string"
  },
  "description": "string",
  "disk-size": 0,
  "elastic-ips": [
    {
      "id": "string"
    }
  ],
  "instance-prefix": "string",
  "instance-type": {
    "id": "string"
  },
  "ipv6-enabled": true,
  "labels": {},
  "min-available": 0,
  "name": "string",
  "private-networks": [
    {
      "id": "string"
    }
  ],
  "public-ip-assignment": "inet4",
  "security-groups": [
    {
      "id": "string"
    }
  ],
  "ssh-key": {
    "name": "string"
  },
  "ssh-keys": [
    {
      "name": "string"
    }
  ],
  "template": {
    "id": "string"
  },
  "user-data": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-instance-pool`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateInstancePool) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_instance_pool) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateInstancePool(java.util.UUID,com.exoscale.sdk.model.UpdateInstancePoolRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-instance-pool`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-instance-pool

Delete an Instance Pool

```
DELETE /instance-pool/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-instance-pool`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteInstancePool) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_instance_pool) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteInstancePool(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-instance-pool`


---

## Other Operations

## <span data-label="PUT" class="pill-PUT"></span>evict-instance-pool-members

Evict Instance Pool members

```
PUT /instance-pool/{id}:evict
```

This operation evicts the specified Compute instances member from the Instance Pool, shrinking it to `&lt;current pool size&gt; - &lt;# evicted members&gt;`.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `instances` | array[string] | no |  |

<details>
<summary>Example</summary>

```json
{
  "instances": [
    "string"
  ]
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `evict-instance-pool-members`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.EvictInstancePoolMembers) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.evict_instance_pool_members) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#evictInstancePoolMembers(java.util.UUID,com.exoscale.sdk.model.EvictInstancePoolMembersRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api evict-instance-pool-members`

## <span data-label="DELETE" class="pill-DELETE"></span>reset-instance-pool-field

Reset an Instance Pool field to its default value

```
DELETE /instance-pool/{id}/{field}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |
| `field` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `reset-instance-pool-field`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ResetInstancePoolField) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reset_instance_pool_field) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#resetInstancePoolField(java.util.UUID,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reset-instance-pool-field`

## <span data-label="GET" class="pill-GET"></span>list-instance-pools

List Instance Pools

```
GET /instance-pool
```

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `instance-pools` | array of [Instance Pool](https://community.exoscale.com/reference/api/_schemas/instance-pool/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "instance-pools": [
    {
      "anti-affinity-groups": [
        {
          "id": "string"
        }
      ],
      "application-consistent-snapshot-enabled": true,
      "deploy-target": {
        "id": "string"
      },
      "description": "string",
      "disk-size": 0,
      "elastic-ips": [
        {
          "id": "string"
        }
      ],
      "error-reason": {
        "cause": "string",
        "job-id": "string",
        "type": "string"
      },
      "id": "string",
      "instance-prefix": "string",
      "instance-type": {
        "id": "string"
      },
      "instances": [
        {
          "id": "string"
        }
      ],
      "ipv6-enabled": true,
      "labels": {},
      "manager": {
        "id": "string",
        "type": "sks-nodepool"
      },
      "min-available": 0,
      "name": "string",
      "private-networks": [
        {
          "id": "string"
        }
      ],
      "public-ip-assignment": "inet4",
      "security-groups": [
        {
          "id": "string"
        }
      ],
      "size": 0,
      "ssh-key": {
        "name": "string"
      },
      "ssh-keys": [
        {
          "name": "string"
        }
      ],
      "state": "scaling-up",
      "template": {
        "id": "string"
      },
      "user-data": "string"
    }
  ]
}
```
</details>


SDK reference for `list-instance-pools`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListInstancePools) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_instance_pools) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listInstancePools())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-instance-pools`

---

url: https://community.exoscale.com/reference/api/compute/snapshot/

---

# Snapshot

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Snapshots provide a way to get point-in-time recovery for your Compute instance.

[Read more](https://community.exoscale.com/product/compute/instances/how-to/snapshot/index.md)

## <span data-label="GET" class="pill-GET"></span>get-snapshot

Retrieve Snapshot details

```
GET /snapshot/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `application-consistent` | boolean | Indicates whether the snapshot was taken using an application-consistent method |
| `created-at` | string | Snapshot creation date<br/><br/>ISO 8601 date-time. |
| `export` | [Export](https://community.exoscale.com/reference/api/_schemas/snapshot/index.md#export) | Exported snapshot information |
| `id` | string | Snapshot ID<br/><br/>Must be a valid UUID. |
| `instance` | [Instance](https://community.exoscale.com/reference/api/_schemas/instance/index.md) | Compute Instance snapshotted |
| `name` | string | Snapshot name<br/><br/>Min length: `1`. Max length: `255`. |
| `size` | integer | Snapshot size in GiB<br/><br/>Min: `10`. Max: `51200`. |
| `state` | string | Snapshot state<br/><br/>Allowed values: `snapshotting`, `deleted`, `exporting`, `ready`, `deleting`, `error`, `exported`. |

<details>
<summary>Example output</summary>

```json
{
  "application-consistent": true,
  "created-at": "2024-01-01T12:00:00Z",
  "export": {
    "md5sum": "string",
    "presigned-url": "string"
  },
  "id": "string",
  "instance": {
    "anti-affinity-groups": [
      {
        "id": "string"
      }
    ],
    "application-consistent-snapshot-enabled": true,
    "created-at": "2024-01-01T12:00:00Z",
    "deploy-target": {
      "id": "string"
    },
    "disk-encrypted": true,
    "disk-size": 0,
    "elastic-ips": [
      {
        "id": "string"
      }
    ],
    "id": "string",
    "instance-type": {
      "authorized": true,
      "cpus": 0,
      "family": "gpu3",
      "gpus": 0,
      "id": "string",
      "memory": 0,
      "size": "large",
      "zones": [
        "ch-dk-2"
      ]
    },
    "ip-forwarding": true,
    "ipv6-address": "string",
    "labels": {},
    "mac-address": "string",
    "manager": {
      "id": "string",
      "type": "sks-nodepool"
    },
    "name": "string",
    "private-networks": [
      {
        "id": "string",
        "mac-address": "string"
      }
    ],
    "public-ip": "string",
    "public-ip-assignment": "inet4",
    "secureboot-enabled": true,
    "security-groups": [
      {
        "id": "string"
      }
    ],
    "snapshots": [
      {
        "id": "string"
      }
    ],
    "ssh-key": {
      "fingerprint": "string",
      "name": "string"
    },
    "ssh-keys": [
      {
        "fingerprint": "string",
        "name": "string"
      }
    ],
    "state": "expunging",
    "template": {
      "application-consistent-snapshot-enabled": true,
      "boot-mode": "legacy",
      "build": "string",
      "checksum": "string",
      "created-at": "2024-01-01T12:00:00Z",
      "default-user": "string",
      "description": "string",
      "family": "string",
      "id": "string",
      "maintainer": "string",
      "name": "string",
      "password-enabled": true,
      "size": 0,
      "ssh-key-enabled": true,
      "url": "string",
      "version": "string",
      "visibility": "private"
    },
    "tpm-enabled": true,
    "user-data": "string",
    "vpc": {
      "id": "string",
      "name": "string",
      "subnets": [
        {
          "id": "string",
          "ipv4": "string",
          "name": "string"
        }
      ]
    }
  },
  "name": "string",
  "size": 0,
  "state": "snapshotting"
}
```
</details>


SDK reference for `get-snapshot`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetSnapshot) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_snapshot) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getSnapshot(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-snapshot`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-snapshot

Delete a Snapshot

```
DELETE /snapshot/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-snapshot`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteSnapshot) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_snapshot) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteSnapshot(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-snapshot`


---

## Other Operations

## <span data-label="POST" class="pill-POST"></span>export-snapshot

Export a Snapshot

```
POST /snapshot/{id}:export
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `export-snapshot`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ExportSnapshot) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.export_snapshot) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#exportSnapshot(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api export-snapshot`

## <span data-label="POST" class="pill-POST"></span>promote-snapshot-to-template

Promote a Snapshot to a Template

```
POST /snapshot/{id}:promote
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | Template name<br/><br/>Min length: `1`. Max length: `255`. |
| `default-user` | string | no | Template default user<br/><br/>Min length: `1`. Max length: `255`. |
| `description` | string | no | Template description<br/><br/>Max length: `4096`. |
| `password-enabled` | boolean | no | Enable password-based login in the template |
| `ssh-key-enabled` | boolean | no | Enable SSH key-based login in the template |

<details>
<summary>Example</summary>

```json
{
  "default-user": "string",
  "description": "string",
  "name": "string",
  "password-enabled": true,
  "ssh-key-enabled": true
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `promote-snapshot-to-template`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.PromoteSnapshotToTemplate) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.promote_snapshot_to_template) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#promoteSnapshotToTemplate(java.util.UUID,com.exoscale.sdk.model.PromoteSnapshotToTemplateRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api promote-snapshot-to-template`

## <span data-label="GET" class="pill-GET"></span>list-snapshots

List Snapshots

```
GET /snapshot
```

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `snapshots` | array of [Snapshot](https://community.exoscale.com/reference/api/_schemas/snapshot/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "snapshots": [
    {
      "application-consistent": true,
      "created-at": "2024-01-01T12:00:00Z",
      "export": {
        "md5sum": "string",
        "presigned-url": "string"
      },
      "id": "string",
      "instance": {
        "anti-affinity-groups": [
          {
            "id": null
          }
        ],
        "application-consistent-snapshot-enabled": true,
        "created-at": "2024-01-01T12:00:00Z",
        "deploy-target": {
          "id": "string"
        },
        "disk-encrypted": true,
        "disk-size": 0,
        "elastic-ips": [
          {
            "id": null
          }
        ],
        "id": "string",
        "instance-type": {
          "authorized": true,
          "cpus": 0,
          "family": "gpu3",
          "gpus": 0,
          "id": "string",
          "memory": 0,
          "size": "large",
          "zones": [
            null
          ]
        },
        "ip-forwarding": true,
        "ipv6-address": "string",
        "labels": {},
        "mac-address": "string",
        "manager": {
          "id": "string",
          "type": "sks-nodepool"
        },
        "name": "string",
        "private-networks": [
          {
            "id": null,
            "mac-address": null
          }
        ],
        "public-ip": "string",
        "public-ip-assignment": "inet4",
        "secureboot-enabled": true,
        "security-groups": [
          {
            "id": null
          }
        ],
        "snapshots": [
          {
            "id": null
          }
        ],
        "ssh-key": {
          "fingerprint": "string",
          "name": "string"
        },
        "ssh-keys": [
          {
            "fingerprint": null,
            "name": null
          }
        ],
        "state": "expunging",
        "template": {
          "application-consistent-snapshot-enabled": true,
          "boot-mode": "legacy",
          "build": "string",
          "checksum": "string",
          "created-at": "2024-01-01T12:00:00Z",
          "default-user": "string",
          "description": "string",
          "family": "string",
          "id": "string",
          "maintainer": "string",
          "name": "string",
          "password-enabled": true,
          "size": 0,
          "ssh-key-enabled": true,
          "url": "string",
          "version": "string",
          "visibility": "private"
        },
        "tpm-enabled": true,
        "user-data": "string",
        "vpc": {
          "id": "string",
          "name": "string",
          "subnets": [
            null
          ]
        }
      },
      "name": "string",
      "size": 0,
      "state": "snapshotting"
    }
  ]
}
```
</details>


SDK reference for `list-snapshots`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListSnapshots) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_snapshots) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listSnapshots())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-snapshots`

---

url: https://community.exoscale.com/reference/api/compute/template/

---

# Template

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Templates contain the OS and the initial setup of a Compute instance.

[Read more](https://www.exoscale.com/templates/)

## <span data-label="GET" class="pill-GET"></span>get-template

Retrieve Template details

```
GET /template/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `application-consistent-snapshot-enabled` | boolean | Template with Qemu Guest Agent installed for application consistent snapshot |
| `boot-mode` | string | Boot mode (default: legacy)<br/><br/>Allowed values: `legacy`, `uefi`. |
| `build` | string | Template build |
| `checksum` | string | Template MD5 checksum |
| `created-at` | string | Template creation date<br/><br/>ISO 8601 date-time. |
| `default-user` | string | Template default user<br/><br/>Min length: `1`. Max length: `255`. |
| `description` | string | Template description<br/><br/>Max length: `255`. |
| `family` | string | Template family |
| `id` | string | Template ID<br/><br/>Must be a valid UUID. |
| `maintainer` | string | Template maintainer |
| `name` | string | Template name<br/><br/>Min length: `1`. Max length: `255`. |
| `password-enabled` | boolean | Enable password-based login |
| `size` | integer | Template size<br/><br/>Min: `0`. |
| `ssh-key-enabled` | boolean | Enable SSH key-based login |
| `url` | string | Template source URL |
| `version` | string | Template version |
| `visibility` | string | Template visibility<br/><br/>Allowed values: `private`, `public`. |

<details>
<summary>Example output</summary>

```json
{
  "application-consistent-snapshot-enabled": true,
  "boot-mode": "legacy",
  "build": "string",
  "checksum": "string",
  "created-at": "2024-01-01T12:00:00Z",
  "default-user": "string",
  "description": "string",
  "family": "string",
  "id": "string",
  "maintainer": "string",
  "name": "string",
  "password-enabled": true,
  "size": 0,
  "ssh-key-enabled": true,
  "url": "string",
  "version": "string",
  "visibility": "private"
}
```
</details>


SDK reference for `get-template`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetTemplate) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_template) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getTemplate(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-template`

## <span data-label="PUT" class="pill-PUT"></span>update-template

Update template attributes

```
PUT /template/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | no | Template Description<br/><br/>Max length: `255`. |
| `name` | string | no | Template name<br/><br/>Min length: `1`. Max length: `255`. |

<details>
<summary>Example</summary>

```json
{
  "description": "string",
  "name": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-template`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateTemplate) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_template) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateTemplate(java.util.UUID,com.exoscale.sdk.model.UpdateTemplateRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-template`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-template

Delete a Template

```
DELETE /template/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-template`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteTemplate) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_template) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteTemplate(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-template`


---

## Other Operations

## <span data-label="POST" class="pill-POST"></span>copy-template

Copy a Template from a zone to another

```
POST /template/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `target-zone` | [Zone](https://community.exoscale.com/reference/api/_schemas/zone/index.md) | **yes** | Target Zone name |

<details>
<summary>Example</summary>

```json
{
  "target-zone": {
    "api-endpoint": "string",
    "name": "ch-dk-2",
    "sos-endpoint": "string"
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `copy-template`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CopyTemplate) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.copy_template) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#copyTemplate(java.util.UUID,com.exoscale.sdk.model.CopyTemplateRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api copy-template`

## <span data-label="POST" class="pill-POST"></span>register-template

Register a Template

```
POST /template
```

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `checksum` | string | **yes** | Template MD5 checksum<br/><br/>Min length: `1`. |
| `name` | string | **yes** | Template name<br/><br/>Min length: `1`. Max length: `255`. |
| `password-enabled` | boolean | **yes** | Enable password-based login |
| `ssh-key-enabled` | boolean | **yes** | Enable SSH key-based login |
| `url` | string | **yes** | Template source URL<br/><br/>Min length: `1`. |
| `application-consistent-snapshot-enabled` | boolean | no | Template with support for Application Consistent Snapshots |
| `boot-mode` | string | no | Boot mode (default: legacy)<br/><br/>Allowed values: `legacy`, `uefi`. |
| `build` | string | no | Template build<br/><br/>Min length: `1`. Max length: `255`. |
| `default-user` | string | no | Template default user<br/><br/>Min length: `1`. Max length: `255`. |
| `description` | string | no | Template description<br/><br/>Max length: `255`. |
| `maintainer` | string | no | Template maintainer<br/><br/>Min length: `1`. Max length: `255`. |
| `size` | integer | no | Template size<br/><br/>Min: `0`. |
| `version` | string | no | Template version<br/><br/>Min length: `1`. Max length: `255`. |

<details>
<summary>Example</summary>

```json
{
  "application-consistent-snapshot-enabled": true,
  "boot-mode": "legacy",
  "build": "string",
  "checksum": "string",
  "default-user": "string",
  "description": "string",
  "maintainer": "string",
  "name": "string",
  "password-enabled": true,
  "size": 0,
  "ssh-key-enabled": true,
  "url": "string",
  "version": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `register-template`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RegisterTemplate) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.register_template) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#registerTemplate(com.exoscale.sdk.model.RegisterTemplateRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api register-template`

## <span data-label="GET" class="pill-GET"></span>list-templates

List Templates

```
GET /template
```

### Query parameters

| Name | In | Required | Description |
| --- | --- | --- | --- |
| `visibility` | `query` | no |  |
| `family` | `query` | no |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `templates` | array of [Instance template](https://community.exoscale.com/reference/api/_schemas/template/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "templates": [
    {
      "application-consistent-snapshot-enabled": true,
      "boot-mode": "legacy",
      "build": "string",
      "checksum": "string",
      "created-at": "2024-01-01T12:00:00Z",
      "default-user": "string",
      "description": "string",
      "family": "string",
      "id": "string",
      "maintainer": "string",
      "name": "string",
      "password-enabled": true,
      "size": 0,
      "ssh-key-enabled": true,
      "url": "string",
      "version": "string",
      "visibility": "private"
    }
  ]
}
```
</details>


SDK reference for `list-templates`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListTemplates) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_templates) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listTemplates(java.lang.String,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-templates`

---

url: https://community.exoscale.com/reference/api/compute/security-group/

---

# Security Group

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Security Groups are groups of firewall rules that regulate network traffic to and from your Compute instances.

[Read more](https://community.exoscale.com/product/networking/security-group/index.md)

## <span data-label="POST" class="pill-POST"></span>create-security-group

Create a Security Group

```
POST /security-group
```

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | Security Group name<br/><br/>Min length: `1`. Max length: `255`. |
| `description` | string | no | Security Group description<br/><br/>Max length: `255`. |

<details>
<summary>Example</summary>

```json
{
  "description": "string",
  "name": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-security-group`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateSecurityGroup) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_security_group) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createSecurityGroup(com.exoscale.sdk.model.CreateSecurityGroupRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-security-group`

## <span data-label="GET" class="pill-GET"></span>get-security-group

Retrieve Security Group details

```
GET /security-group/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `description` | string | Security Group description<br/><br/>Max length: `255`. |
| `external-sources` | array[string] | Security Group external sources |
| `id` | string | Security Group ID<br/><br/>Must be a valid UUID. |
| `name` | string | Security Group name<br/><br/>Min length: `1`. Max length: `255`. |
| `rules` | array of [Security Group rule](https://community.exoscale.com/reference/api/_schemas/security-group-rule/index.md) | Security Group rules |

<details>
<summary>Example output</summary>

```json
{
  "description": "string",
  "external-sources": [
    "string"
  ],
  "id": "string",
  "name": "string",
  "rules": [
    {
      "description": "string",
      "end-port": 0,
      "flow-direction": "ingress",
      "icmp": {
        "code": 0,
        "type": 0
      },
      "id": "string",
      "network": "string",
      "protocol": "tcp",
      "security-group": {
        "id": "string",
        "name": "string",
        "visibility": "private"
      },
      "start-port": 0
    }
  ]
}
```
</details>


SDK reference for `get-security-group`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetSecurityGroup) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_security_group) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getSecurityGroup(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-security-group`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-security-group

Delete a Security Group

```
DELETE /security-group/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-security-group`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteSecurityGroup) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_security_group) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteSecurityGroup(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-security-group`


---

## Other Operations

## <span data-label="PUT" class="pill-PUT"></span>remove-external-source-from-security-group

Remove an external source from a Security Group

```
PUT /security-group/{id}:remove-source
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `cidr` | string | **yes** | CIDR-formatted network to remove |

<details>
<summary>Example</summary>

```json
{
  "cidr": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `remove-external-source-from-security-group`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RemoveExternalSourceFromSecurityGroup) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.remove_external_source_from_security_group) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#removeExternalSourceFromSecurityGroup(java.util.UUID,com.exoscale.sdk.model.RemoveExternalSourceFromSecurityGroupRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api remove-external-source-from-security-group`

## <span data-label="PUT" class="pill-PUT"></span>add-external-source-to-security-group

Add an external source as a member of a Security Group

```
PUT /security-group/{id}:add-source
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `cidr` | string | **yes** | CIDR-formatted network to add |

<details>
<summary>Example</summary>

```json
{
  "cidr": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `add-external-source-to-security-group`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.AddExternalSourceToSecurityGroup) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.add_external_source_to_security_group) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#addExternalSourceToSecurityGroup(java.util.UUID,com.exoscale.sdk.model.AddExternalSourceToSecurityGroupRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api add-external-source-to-security-group`

## <span data-label="PUT" class="pill-PUT"></span>detach-instance-from-security-group

Detach a Compute instance from a Security Group

```
PUT /security-group/{id}:detach
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `instance` | [Instance](https://community.exoscale.com/reference/api/_schemas/instance/index.md) | **yes** | Compute instance |

<details>
<summary>Example</summary>

```json
{
  "instance": {
    "anti-affinity-groups": [
      {
        "id": "string"
      }
    ],
    "application-consistent-snapshot-enabled": true,
    "created-at": "2024-01-01T12:00:00Z",
    "deploy-target": {
      "id": "string"
    },
    "disk-encrypted": true,
    "disk-size": 0,
    "elastic-ips": [
      {
        "id": "string"
      }
    ],
    "id": "string",
    "instance-type": {
      "authorized": true,
      "cpus": 0,
      "family": "gpu3",
      "gpus": 0,
      "id": "string",
      "memory": 0,
      "size": "large",
      "zones": [
        "ch-dk-2"
      ]
    },
    "ip-forwarding": true,
    "ipv6-address": "string",
    "labels": {},
    "mac-address": "string",
    "manager": {
      "id": "string",
      "type": "sks-nodepool"
    },
    "name": "string",
    "private-networks": [
      {
        "id": "string",
        "mac-address": "string"
      }
    ],
    "public-ip": "string",
    "public-ip-assignment": "inet4",
    "secureboot-enabled": true,
    "security-groups": [
      {
        "id": "string"
      }
    ],
    "snapshots": [
      {
        "id": "string"
      }
    ],
    "ssh-key": {
      "fingerprint": "string",
      "name": "string"
    },
    "ssh-keys": [
      {
        "fingerprint": "string",
        "name": "string"
      }
    ],
    "state": "expunging",
    "template": {
      "application-consistent-snapshot-enabled": true,
      "boot-mode": "legacy",
      "build": "string",
      "checksum": "string",
      "created-at": "2024-01-01T12:00:00Z",
      "default-user": "string",
      "description": "string",
      "family": "string",
      "id": "string",
      "maintainer": "string",
      "name": "string",
      "password-enabled": true,
      "size": 0,
      "ssh-key-enabled": true,
      "url": "string",
      "version": "string",
      "visibility": "private"
    },
    "tpm-enabled": true,
    "user-data": "string",
    "vpc": {
      "id": "string",
      "name": "string",
      "subnets": [
        {
          "id": "string",
          "ipv4": "string",
          "name": "string"
        }
      ]
    }
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `detach-instance-from-security-group`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DetachInstanceFromSecurityGroup) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.detach_instance_from_security_group) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#detachInstanceFromSecurityGroup(java.util.UUID,com.exoscale.sdk.model.DetachInstanceFromSecurityGroupRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api detach-instance-from-security-group`

## <span data-label="PUT" class="pill-PUT"></span>attach-instance-to-security-group

Attach a Compute instance to a Security Group

```
PUT /security-group/{id}:attach
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `instance` | [Instance](https://community.exoscale.com/reference/api/_schemas/instance/index.md) | **yes** | Compute instance |

<details>
<summary>Example</summary>

```json
{
  "instance": {
    "anti-affinity-groups": [
      {
        "id": "string"
      }
    ],
    "application-consistent-snapshot-enabled": true,
    "created-at": "2024-01-01T12:00:00Z",
    "deploy-target": {
      "id": "string"
    },
    "disk-encrypted": true,
    "disk-size": 0,
    "elastic-ips": [
      {
        "id": "string"
      }
    ],
    "id": "string",
    "instance-type": {
      "authorized": true,
      "cpus": 0,
      "family": "gpu3",
      "gpus": 0,
      "id": "string",
      "memory": 0,
      "size": "large",
      "zones": [
        "ch-dk-2"
      ]
    },
    "ip-forwarding": true,
    "ipv6-address": "string",
    "labels": {},
    "mac-address": "string",
    "manager": {
      "id": "string",
      "type": "sks-nodepool"
    },
    "name": "string",
    "private-networks": [
      {
        "id": "string",
        "mac-address": "string"
      }
    ],
    "public-ip": "string",
    "public-ip-assignment": "inet4",
    "secureboot-enabled": true,
    "security-groups": [
      {
        "id": "string"
      }
    ],
    "snapshots": [
      {
        "id": "string"
      }
    ],
    "ssh-key": {
      "fingerprint": "string",
      "name": "string"
    },
    "ssh-keys": [
      {
        "fingerprint": "string",
        "name": "string"
      }
    ],
    "state": "expunging",
    "template": {
      "application-consistent-snapshot-enabled": true,
      "boot-mode": "legacy",
      "build": "string",
      "checksum": "string",
      "created-at": "2024-01-01T12:00:00Z",
      "default-user": "string",
      "description": "string",
      "family": "string",
      "id": "string",
      "maintainer": "string",
      "name": "string",
      "password-enabled": true,
      "size": 0,
      "ssh-key-enabled": true,
      "url": "string",
      "version": "string",
      "visibility": "private"
    },
    "tpm-enabled": true,
    "user-data": "string",
    "vpc": {
      "id": "string",
      "name": "string",
      "subnets": [
        {
          "id": "string",
          "ipv4": "string",
          "name": "string"
        }
      ]
    }
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `attach-instance-to-security-group`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.AttachInstanceToSecurityGroup) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.attach_instance_to_security_group) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#attachInstanceToSecurityGroup(java.util.UUID,com.exoscale.sdk.model.AttachInstanceToSecurityGroupRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api attach-instance-to-security-group`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-rule-from-security-group

Delete a Security Group rule

```
DELETE /security-group/{id}/rules/{rule-id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |
| `rule-id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-rule-from-security-group`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteRuleFromSecurityGroup) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_rule_from_security_group) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteRuleFromSecurityGroup(java.util.UUID,java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-rule-from-security-group`

## <span data-label="POST" class="pill-POST"></span>add-rule-to-security-group

Create a Security Group rule

```
POST /security-group/{id}/rules
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `flow-direction` | string | **yes** | Network flow direction to match<br/><br/>Allowed values: `ingress`, `egress`. |
| `protocol` | string | **yes** | Network protocol<br/><br/>Allowed values: `tcp`, `esp`, `all`, `icmp`, `udp`, `gre`, `ah`, `ipip`, `icmpv6`. |
| `description` | string | no | Security Group rule description<br/><br/>Max length: `255`. |
| `end-port` | integer | no | End port of the range<br/><br/>Min: `1`. Max: `65535`. |
| `icmp` | [ICMP](#icmp) | no | ICMP details (default: -1 (ANY)) |
| `network` | string | no | CIDR-formatted network allowed |
| `security-group` | [Security Group](https://community.exoscale.com/reference/api/_schemas/security-group-resource/index.md) | no | Security Group allowed |
| `start-port` | integer | no | Start port of the range<br/><br/>Min: `1`. Max: `65535`. |

<details>
<summary>Example</summary>

```json
{
  "description": "string",
  "end-port": 0,
  "flow-direction": "ingress",
  "icmp": {
    "code": 0,
    "type": 0
  },
  "network": "string",
  "protocol": "tcp",
  "security-group": {
    "id": "string",
    "name": "string",
    "visibility": "private"
  },
  "start-port": 0
}
```
</details>


### ICMP {#icmp}

ICMP details (default: -1 (ANY))

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `code` | integer | no | Min: `-1`. Max: `254`. |
| `type` | integer | no | Min: `-1`. Max: `254`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `add-rule-to-security-group`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.AddRuleToSecurityGroup) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.add_rule_to_security_group) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#addRuleToSecurityGroup(java.util.UUID,com.exoscale.sdk.model.AddRuleToSecurityGroupRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api add-rule-to-security-group`

## <span data-label="GET" class="pill-GET"></span>list-security-groups

List Security Groups.

```
GET /security-group
```

Lists security groups. When visibility is set to public, lists public security groups.
Public security groups are objects maintained by Exoscale which contain source addresses for
relevant services hosted by Exoscale. They can be used a source in ingress rules and as a destination
in egress rules.

### Query parameters

| Name | In | Required | Description |
| --- | --- | --- | --- |
| `visibility` | `query` | no |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `security-groups` | array of [Security Group](https://community.exoscale.com/reference/api/_schemas/security-group/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "security-groups": [
    {
      "description": "string",
      "external-sources": [
        "string"
      ],
      "id": "string",
      "name": "string",
      "rules": [
        {
          "description": "string",
          "end-port": 0,
          "flow-direction": "ingress",
          "icmp": {
            "code": null,
            "type": null
          },
          "id": "string",
          "network": "string",
          "protocol": "tcp",
          "security-group": {
            "id": null,
            "name": null,
            "visibility": null
          },
          "start-port": 0
        }
      ]
    }
  ]
}
```
</details>


SDK reference for `list-security-groups`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListSecurityGroups) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_security_groups) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listSecurityGroups(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-security-groups`

---

url: https://community.exoscale.com/reference/api/compute/ssh-key/

---

# SSH Key

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

SSH Keypairs

[Read more](https://community.exoscale.com/product/compute/instances/how-to/ssh-keypairs/index.md)

## <span data-label="GET" class="pill-GET"></span>get-ssh-key

Retrieve SSH key details

```
GET /ssh-key/{name}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `fingerprint` | string | SSH key fingerprint |
| `name` | string | SSH key name<br/><br/>Min length: `1`. Max length: `255`. |

<details>
<summary>Example output</summary>

```json
{
  "fingerprint": "string",
  "name": "string"
}
```
</details>


SDK reference for `get-ssh-key`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetSSHKey) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_ssh_key) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getSshKey(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-ssh-key`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-ssh-key

Delete a SSH key

```
DELETE /ssh-key/{name}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-ssh-key`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteSSHKey) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_ssh_key) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteSshKey(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-ssh-key`


---

## Other Operations

## <span data-label="POST" class="pill-POST"></span>register-ssh-key

Import SSH key

```
POST /ssh-key
```

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | SSH key name |
| `public-key` | string | **yes** | Public key value |

<details>
<summary>Example</summary>

```json
{
  "name": "string",
  "public-key": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `register-ssh-key`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RegisterSSHKey) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.register_ssh_key) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#registerSshKey(com.exoscale.sdk.model.RegisterSshKeyRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api register-ssh-key`

## <span data-label="GET" class="pill-GET"></span>list-ssh-keys

List SSH keys

```
GET /ssh-key
```

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `ssh-keys` | array of [SSH key](https://community.exoscale.com/reference/api/_schemas/ssh-key/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "ssh-keys": [
    {
      "fingerprint": "string",
      "name": "string"
    }
  ]
}
```
</details>


SDK reference for `list-ssh-keys`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListSSHKeys) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_ssh_keys) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listSshKeys())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-ssh-keys`

---

url: https://community.exoscale.com/reference/api/compute/elastic-ip/

---

# Elastic IP

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Elastic IPs are additional public IPv4/6 addresses that can be attached to Compute instances, with optional healthcheck support.

[Read more](https://community.exoscale.com/product/networking/eip/index.md)

## <span data-label="POST" class="pill-POST"></span>create-elastic-ip

Create an Elastic IP

```
POST /elastic-ip
```

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `addressfamily` | string | no | Elastic IP address family (default: :inet4)<br/><br/>Allowed values: `inet4`, `inet6`. |
| `description` | string | no | Elastic IP description<br/><br/>Max length: `255`. |
| `healthcheck` | [Elastic IP address healthcheck](https://community.exoscale.com/reference/api/_schemas/elastic-ip-healthcheck/index.md) | no | Elastic IP healthcheck |
| `labels` | object | no | Resource labels |

<details>
<summary>Example</summary>

```json
{
  "addressfamily": "inet4",
  "description": "string",
  "healthcheck": {
    "interval": 0,
    "mode": "tcp",
    "port": 0,
    "strikes-fail": 0,
    "strikes-ok": 0,
    "timeout": 0,
    "tls-skip-verify": true,
    "tls-sni": "string",
    "uri": "string"
  },
  "labels": {}
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-elastic-ip`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateElasticIP) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_elastic_ip) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createElasticIp(com.exoscale.sdk.model.CreateElasticIpRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-elastic-ip`

## <span data-label="GET" class="pill-GET"></span>get-elastic-ip

Retrieve Elastic IP details

```
GET /elastic-ip/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `addressfamily` | string | Elastic IP address family<br/><br/>Allowed values: `inet4`, `inet6`. |
| `cidr` | string | Elastic IP cidr |
| `description` | string | Elastic IP description<br/><br/>Max length: `255`. |
| `healthcheck` | [Elastic IP address healthcheck](https://community.exoscale.com/reference/api/_schemas/elastic-ip-healthcheck/index.md) | Elastic IP healthcheck |
| `id` | string | Elastic IP ID<br/><br/>Must be a valid UUID. |
| `ip` | string | Elastic IP address |
| `labels` | object | Resource labels |

<details>
<summary>Example output</summary>

```json
{
  "addressfamily": "inet4",
  "cidr": "string",
  "description": "string",
  "healthcheck": {
    "interval": 0,
    "mode": "tcp",
    "port": 0,
    "strikes-fail": 0,
    "strikes-ok": 0,
    "timeout": 0,
    "tls-skip-verify": true,
    "tls-sni": "string",
    "uri": "string"
  },
  "id": "string",
  "ip": "string",
  "labels": {}
}
```
</details>


SDK reference for `get-elastic-ip`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetElasticIP) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_elastic_ip) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getElasticIp(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-elastic-ip`

## <span data-label="PUT" class="pill-PUT"></span>update-elastic-ip

Update an Elastic IP

```
PUT /elastic-ip/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | no | Elastic IP description<br/><br/>Max length: `255`. |
| `healthcheck` | [Elastic IP address healthcheck](https://community.exoscale.com/reference/api/_schemas/elastic-ip-healthcheck/index.md) | no | Elastic IP healthcheck |
| `labels` | object | no | Resource labels |

<details>
<summary>Example</summary>

```json
{
  "description": "string",
  "healthcheck": {
    "interval": 0,
    "mode": "tcp",
    "port": 0,
    "strikes-fail": 0,
    "strikes-ok": 0,
    "timeout": 0,
    "tls-skip-verify": true,
    "tls-sni": "string",
    "uri": "string"
  },
  "labels": {}
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-elastic-ip`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateElasticIP) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_elastic_ip) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateElasticIp(java.util.UUID,com.exoscale.sdk.model.UpdateElasticIpRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-elastic-ip`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-elastic-ip

Delete an Elastic IP

```
DELETE /elastic-ip/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-elastic-ip`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteElasticIP) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_elastic_ip) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteElasticIp(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-elastic-ip`


---

## Other Operations

## <span data-label="DELETE" class="pill-DELETE"></span>reset-elastic-ip-field

Reset an Elastic IP field to its default value

```
DELETE /elastic-ip/{id}/{field}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |
| `field` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `reset-elastic-ip-field`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ResetElasticIPField) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reset_elastic_ip_field) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#resetElasticIpField(java.util.UUID,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reset-elastic-ip-field`

## <span data-label="GET" class="pill-GET"></span>list-elastic-ips

List Elastic IPs

```
GET /elastic-ip
```

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `elastic-ips` | array of [Elastic IP](https://community.exoscale.com/reference/api/_schemas/elastic-ip/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "elastic-ips": [
    {
      "addressfamily": "inet4",
      "cidr": "string",
      "description": "string",
      "healthcheck": {
        "interval": 0,
        "mode": "tcp",
        "port": 0,
        "strikes-fail": 0,
        "strikes-ok": 0,
        "timeout": 0,
        "tls-skip-verify": true,
        "tls-sni": "string",
        "uri": "string"
      },
      "id": "string",
      "ip": "string",
      "labels": {}
    }
  ]
}
```
</details>


SDK reference for `list-elastic-ips`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListElasticIPS) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_elastic_ips) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listElasticIps())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-elastic-ips`

## <span data-label="PUT" class="pill-PUT"></span>detach-instance-from-elastic-ip

Detach a Compute instance from an Elastic IP

```
PUT /elastic-ip/{id}:detach
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `instance` | [Target Instance](https://community.exoscale.com/reference/api/_schemas/instance-ref/index.md) | **yes** | Compute instance |

<details>
<summary>Example</summary>

```json
{
  "instance": {
    "id": "string"
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `detach-instance-from-elastic-ip`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DetachInstanceFromElasticIP) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.detach_instance_from_elastic_ip) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#detachInstanceFromElasticIp(java.util.UUID,com.exoscale.sdk.model.DetachInstanceFromElasticIpRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api detach-instance-from-elastic-ip`

## <span data-label="PUT" class="pill-PUT"></span>attach-instance-to-elastic-ip

Attach a Compute instance to an Elastic IP

```
PUT /elastic-ip/{id}:attach
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `instance` | [Target Instance](https://community.exoscale.com/reference/api/_schemas/instance-ref/index.md) | **yes** | Compute instance |

<details>
<summary>Example</summary>

```json
{
  "instance": {
    "id": "string"
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `attach-instance-to-elastic-ip`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.AttachInstanceToElasticIP) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.attach_instance_to_elastic_ip) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#attachInstanceToElasticIp(java.util.UUID,com.exoscale.sdk.model.AttachInstanceToElasticIpRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api attach-instance-to-elastic-ip`

---

url: https://community.exoscale.com/reference/api/compute/network-load-balancer/

---

# Network Load Balancer

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

A Network Load Balancer (NLB) is a Layer 4 (TCP/UDP) load balancer that distributes incoming traffic to Compute instances managed by an Instance Pool.

[Read more](https://community.exoscale.com/product/networking/nlb/index.md)

## <span data-label="POST" class="pill-POST"></span>create-load-balancer

Create a Load Balancer

```
POST /load-balancer
```

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | Load Balancer name<br/><br/>Min length: `1`. Max length: `255`. |
| `addressfamily` | string | no | Load Balancer address family (default: :inet4)<br/><br/>Allowed values: `inet4`, `inet6`. |
| `description` | string | no | Load Balancer description<br/><br/>Max length: `255`. |
| `labels` | object | no | Load balancer labels |

<details>
<summary>Example</summary>

```json
{
  "addressfamily": "inet4",
  "description": "string",
  "labels": {},
  "name": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-load-balancer`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateLoadBalancer) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_load_balancer) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createLoadBalancer(com.exoscale.sdk.model.CreateLoadBalancerRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-load-balancer`

## <span data-label="GET" class="pill-GET"></span>get-load-balancer

Retrieve Load Balancer details

```
GET /load-balancer/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `addressfamily` | string | Load Balancer address family<br/><br/>Allowed values: `inet4`, `inet6`. |
| `created-at` | string | Load Balancer creation date<br/><br/>ISO 8601 date-time. |
| `description` | string | Load Balancer description<br/><br/>Max length: `255`. |
| `id` | string | Load Balancer ID<br/><br/>Must be a valid UUID. |
| `ip` | string | Load Balancer public IP<br/><br/>Format: `ip`. |
| `labels` | object | Load Balancer Labels |
| `name` | string | Load Balancer name<br/><br/>Min length: `1`. Max length: `255`. |
| `services` | array of [Load Balancer Service](https://community.exoscale.com/reference/api/_schemas/load-balancer-service/index.md) | Load Balancer Services |
| `state` | string | Load Balancer state<br/><br/>Allowed values: `creating`, `migrated`, `deleting`, `running`, `migrating`, `error`. |

<details>
<summary>Example output</summary>

```json
{
  "addressfamily": "inet4",
  "created-at": "2024-01-01T12:00:00Z",
  "description": "string",
  "id": "string",
  "ip": "string",
  "labels": {},
  "name": "string",
  "services": [
    {
      "description": "string",
      "healthcheck": {
        "interval": 0,
        "mode": "tcp",
        "port": 0,
        "retries": 0,
        "timeout": 0,
        "tls-sni": "string",
        "uri": "string"
      },
      "healthcheck-status": [
        {
          "public-ip": "string",
          "status": "failure"
        }
      ],
      "id": "string",
      "instance-pool": {
        "anti-affinity-groups": [
          {
            "id": null
          }
        ],
        "application-consistent-snapshot-enabled": true,
        "deploy-target": {
          "id": "string"
        },
        "description": "string",
        "disk-size": 0,
        "elastic-ips": [
          {
            "id": null
          }
        ],
        "error-reason": {
          "cause": "string",
          "job-id": "string",
          "type": "string"
        },
        "id": "string",
        "instance-prefix": "string",
        "instance-type": {
          "id": "string"
        },
        "instances": [
          {
            "id": null
          }
        ],
        "ipv6-enabled": true,
        "labels": {},
        "manager": {
          "id": "string",
          "type": "sks-nodepool"
        },
        "min-available": 0,
        "name": "string",
        "private-networks": [
          {
            "id": null
          }
        ],
        "public-ip-assignment": "inet4",
        "security-groups": [
          {
            "id": null
          }
        ],
        "size": 0,
        "ssh-key": {
          "name": "string"
        },
        "ssh-keys": [
          {
            "name": null
          }
        ],
        "state": "scaling-up",
        "template": {
          "id": "string"
        },
        "user-data": "string"
      },
      "name": "string",
      "port": 0,
      "protocol": "tcp",
      "state": "creating",
      "strategy": "round-robin",
      "target-port": 0
    }
  ],
  "state": "creating"
}
```
</details>


SDK reference for `get-load-balancer`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetLoadBalancer) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_load_balancer) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getLoadBalancer(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-load-balancer`

## <span data-label="PUT" class="pill-PUT"></span>update-load-balancer

Update a Load Balancer

```
PUT /load-balancer/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | no | Load Balancer description<br/><br/>Max length: `255`. |
| `labels` | object | no |  |
| `name` | string | no | Load Balancer name<br/><br/>Min length: `1`. Max length: `255`. |

<details>
<summary>Example</summary>

```json
{
  "description": "string",
  "labels": {},
  "name": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-load-balancer`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateLoadBalancer) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_load_balancer) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateLoadBalancer(java.util.UUID,com.exoscale.sdk.model.UpdateLoadBalancerRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-load-balancer`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-load-balancer

Delete a Load Balancer

```
DELETE /load-balancer/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-load-balancer`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteLoadBalancer) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_load_balancer) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteLoadBalancer(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-load-balancer`

## <span data-label="GET" class="pill-GET"></span>get-load-balancer-service

Retrieve Load Balancer Service details

```
GET /load-balancer/{id}/service/{service-id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |
| `service-id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `description` | string | Load Balancer Service description<br/><br/>Max length: `255`. |
| `healthcheck` | [Load Balancer Service healthcheck](https://community.exoscale.com/reference/api/_schemas/load-balancer-service-healthcheck/index.md) | Healthcheck configuration |
| `healthcheck-status` | array of [Load Balancer Service status](https://community.exoscale.com/reference/api/_schemas/load-balancer-server-status/index.md) | Healthcheck status per backend server |
| `id` | string | Load Balancer Service ID<br/><br/>Must be a valid UUID. |
| `instance-pool` | [Instance Pool](https://community.exoscale.com/reference/api/_schemas/instance-pool/index.md) | Instance Pool to forward network traffic to |
| `name` | string | Load Balancer Service name<br/><br/>Min length: `1`. Max length: `255`. |
| `port` | integer | Port exposed on the Load Balancer's public IP<br/><br/>Min: `0`. |
| `protocol` | string | Network traffic protocol<br/><br/>Allowed values: `tcp`, `udp`. |
| `state` | string | Load Balancer Service state<br/><br/>Allowed values: `creating`, `deleting`, `running`, `updating`, `error`. |
| `strategy` | string | Load balancing strategy<br/><br/>Allowed values: `round-robin`, `maglev-hash`, `source-hash`. |
| `target-port` | integer | Port on which the network traffic will be forwarded to on the receiving instance<br/><br/>Min: `0`. |

<details>
<summary>Example output</summary>

```json
{
  "description": "string",
  "healthcheck": {
    "interval": 0,
    "mode": "tcp",
    "port": 0,
    "retries": 0,
    "timeout": 0,
    "tls-sni": "string",
    "uri": "string"
  },
  "healthcheck-status": [
    {
      "public-ip": "string",
      "status": "failure"
    }
  ],
  "id": "string",
  "instance-pool": {
    "anti-affinity-groups": [
      {
        "id": "string"
      }
    ],
    "application-consistent-snapshot-enabled": true,
    "deploy-target": {
      "id": "string"
    },
    "description": "string",
    "disk-size": 0,
    "elastic-ips": [
      {
        "id": "string"
      }
    ],
    "error-reason": {
      "cause": "string",
      "job-id": "string",
      "type": "string"
    },
    "id": "string",
    "instance-prefix": "string",
    "instance-type": {
      "id": "string"
    },
    "instances": [
      {
        "id": "string"
      }
    ],
    "ipv6-enabled": true,
    "labels": {},
    "manager": {
      "id": "string",
      "type": "sks-nodepool"
    },
    "min-available": 0,
    "name": "string",
    "private-networks": [
      {
        "id": "string"
      }
    ],
    "public-ip-assignment": "inet4",
    "security-groups": [
      {
        "id": "string"
      }
    ],
    "size": 0,
    "ssh-key": {
      "name": "string"
    },
    "ssh-keys": [
      {
        "name": "string"
      }
    ],
    "state": "scaling-up",
    "template": {
      "id": "string"
    },
    "user-data": "string"
  },
  "name": "string",
  "port": 0,
  "protocol": "tcp",
  "state": "creating",
  "strategy": "round-robin",
  "target-port": 0
}
```
</details>


SDK reference for `get-load-balancer-service`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetLoadBalancerService) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_load_balancer_service) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getLoadBalancerService(java.util.UUID,java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-load-balancer-service`

## <span data-label="PUT" class="pill-PUT"></span>update-load-balancer-service

Update a Load Balancer Service

```
PUT /load-balancer/{id}/service/{service-id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |
| `service-id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | no | Load Balancer Service description<br/><br/>Max length: `255`. |
| `healthcheck` | [Load Balancer Service healthcheck](https://community.exoscale.com/reference/api/_schemas/load-balancer-service-healthcheck/index.md) | no | Healthcheck configuration |
| `name` | string | no | Load Balancer Service name<br/><br/>Max length: `255`. |
| `port` | integer | no | Port exposed on the Load Balancer's public IP<br/><br/>Min: `1`. Max: `65535`. |
| `protocol` | string | no | Network traffic protocol<br/><br/>Allowed values: `tcp`, `udp`. |
| `strategy` | string | no | Load balancing strategy<br/><br/>Allowed values: `round-robin`, `maglev-hash`, `source-hash`. |
| `target-port` | integer | no | Port on which the network traffic will be forwarded to on the receiving instance<br/><br/>Min: `1`. Max: `65535`. |

<details>
<summary>Example</summary>

```json
{
  "description": "string",
  "healthcheck": {
    "interval": 0,
    "mode": "tcp",
    "port": 0,
    "retries": 0,
    "timeout": 0,
    "tls-sni": "string",
    "uri": "string"
  },
  "name": "string",
  "port": 0,
  "protocol": "tcp",
  "strategy": "round-robin",
  "target-port": 0
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-load-balancer-service`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateLoadBalancerService) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_load_balancer_service) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateLoadBalancerService(java.util.UUID,java.util.UUID,com.exoscale.sdk.model.UpdateLoadBalancerServiceRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-load-balancer-service`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-load-balancer-service

Delete a Load Balancer Service

```
DELETE /load-balancer/{id}/service/{service-id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |
| `service-id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-load-balancer-service`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteLoadBalancerService) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_load_balancer_service) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteLoadBalancerService(java.util.UUID,java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-load-balancer-service`


---

## Other Operations

## <span data-label="DELETE" class="pill-DELETE"></span>reset-load-balancer-field

Reset a Load Balancer field to its default value

```
DELETE /load-balancer/{id}/{field}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |
| `field` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `reset-load-balancer-field`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ResetLoadBalancerField) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reset_load_balancer_field) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#resetLoadBalancerField(java.util.UUID,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reset-load-balancer-field`

## <span data-label="DELETE" class="pill-DELETE"></span>reset-load-balancer-service-field

Reset a Load Balancer Service field to its default value

```
DELETE /load-balancer/{id}/service/{service-id}/{field}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |
| `service-id` | `path` | Must be a valid UUID. |
| `field` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `reset-load-balancer-service-field`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ResetLoadBalancerServiceField) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reset_load_balancer_service_field) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#resetLoadBalancerServiceField(java.util.UUID,java.util.UUID,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reset-load-balancer-service-field`

## <span data-label="GET" class="pill-GET"></span>list-load-balancers

List Load Balancers

```
GET /load-balancer
```

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `load-balancers` | array of [Load Balancer](https://community.exoscale.com/reference/api/_schemas/load-balancer/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "load-balancers": [
    {
      "addressfamily": "inet4",
      "created-at": "2024-01-01T12:00:00Z",
      "description": "string",
      "id": "string",
      "ip": "string",
      "labels": {},
      "name": "string",
      "services": [
        {
          "description": "string",
          "healthcheck": {
            "interval": null,
            "mode": null,
            "port": null,
            "retries": null,
            "timeout": null,
            "tls-sni": null,
            "uri": null
          },
          "healthcheck-status": [
            null
          ],
          "id": "string",
          "instance-pool": {
            "anti-affinity-groups": null,
            "application-consistent-snapshot-enabled": null,
            "deploy-target": null,
            "description": null,
            "disk-size": null,
            "elastic-ips": null,
            "error-reason": null,
            "id": null,
            "instance-prefix": null,
            "instance-type": null,
            "instances": null,
            "ipv6-enabled": null,
            "labels": null,
            "manager": null,
            "min-available": null,
            "name": null,
            "private-networks": null,
            "public-ip-assignment": null,
            "security-groups": null,
            "size": null,
            "ssh-key": null,
            "ssh-keys": null,
            "state": null,
            "template": null,
            "user-data": null
          },
          "name": "string",
          "port": 0,
          "protocol": "tcp",
          "state": "creating",
          "strategy": "round-robin",
          "target-port": 0
        }
      ],
      "state": "creating"
    }
  ]
}
```
</details>


SDK reference for `list-load-balancers`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListLoadBalancers) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_load_balancers) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listLoadBalancers())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-load-balancers`

## <span data-label="POST" class="pill-POST"></span>add-service-to-load-balancer

Add a Load Balancer Service

```
POST /load-balancer/{id}/service
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `healthcheck` | [Load Balancer Service healthcheck](https://community.exoscale.com/reference/api/_schemas/load-balancer-service-healthcheck/index.md) | **yes** | Healthcheck configuration |
| `instance-pool` | [Instance Pool](https://community.exoscale.com/reference/api/_schemas/instance-pool/index.md) | **yes** | Instance Pool to forward traffic to |
| `name` | string | **yes** | Load Balancer Service name<br/><br/>Min length: `1`. Max length: `255`. |
| `port` | integer | **yes** | Port exposed on the Load Balancer's public IP<br/><br/>Min: `1`. Max: `65535`. |
| `protocol` | string | **yes** | Network traffic protocol<br/><br/>Allowed values: `tcp`, `udp`. |
| `strategy` | string | **yes** | Load balancing strategy<br/><br/>Allowed values: `round-robin`, `maglev-hash`, `source-hash`. |
| `target-port` | integer | **yes** | Port on which the network traffic will be forwarded to on the receiving instance<br/><br/>Min: `1`. Max: `65535`. |
| `description` | string | no | Load Balancer Service description<br/><br/>Max length: `255`. |

<details>
<summary>Example</summary>

```json
{
  "description": "string",
  "healthcheck": {
    "interval": 0,
    "mode": "tcp",
    "port": 0,
    "retries": 0,
    "timeout": 0,
    "tls-sni": "string",
    "uri": "string"
  },
  "instance-pool": {
    "anti-affinity-groups": [
      {
        "id": "string"
      }
    ],
    "application-consistent-snapshot-enabled": true,
    "deploy-target": {
      "id": "string"
    },
    "description": "string",
    "disk-size": 0,
    "elastic-ips": [
      {
        "id": "string"
      }
    ],
    "error-reason": {
      "cause": "string",
      "job-id": "string",
      "type": "string"
    },
    "id": "string",
    "instance-prefix": "string",
    "instance-type": {
      "id": "string"
    },
    "instances": [
      {
        "id": "string"
      }
    ],
    "ipv6-enabled": true,
    "labels": {},
    "manager": {
      "id": "string",
      "type": "sks-nodepool"
    },
    "min-available": 0,
    "name": "string",
    "private-networks": [
      {
        "id": "string"
      }
    ],
    "public-ip-assignment": "inet4",
    "security-groups": [
      {
        "id": "string"
      }
    ],
    "size": 0,
    "ssh-key": {
      "name": "string"
    },
    "ssh-keys": [
      {
        "name": "string"
      }
    ],
    "state": "scaling-up",
    "template": {
      "id": "string"
    },
    "user-data": "string"
  },
  "name": "string",
  "port": 0,
  "protocol": "tcp",
  "strategy": "round-robin",
  "target-port": 0
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `add-service-to-load-balancer`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.AddServiceToLoadBalancer) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.add_service_to_load_balancer) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#addServiceToLoadBalancer(java.util.UUID,com.exoscale.sdk.model.AddServiceToLoadBalancerRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api add-service-to-load-balancer`

---

url: https://community.exoscale.com/reference/api/compute/private-network/

---

# Private Network

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Private Network provides private L2 networking functionality between Compute instances.

[Read more](https://community.exoscale.com/product/networking/private-network/index.md)

## <span data-label="POST" class="pill-POST"></span>create-private-network

Create a Private Network

```
POST /private-network
```

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | Private Network name<br/><br/>Min length: `1`. Max length: `255`. |
| `description` | string | no | Private Network description<br/><br/>Max length: `255`. |
| `end-ip` | string | no | Private Network end IP address<br/><br/>Must be a valid IPv4 address. |
| `labels` | object | no | Resource labels |
| `netmask` | string | no | Private Network netmask<br/><br/>Must be a valid IPv4 address. |
| `options` | [Private Network DHCP Options](https://community.exoscale.com/reference/api/_schemas/private-network-options/index.md) | no | DHCP options |
| `start-ip` | string | no | Private Network start IP address<br/><br/>Must be a valid IPv4 address. |

<details>
<summary>Example</summary>

```json
{
  "description": "string",
  "end-ip": "string",
  "labels": {},
  "name": "string",
  "netmask": "string",
  "options": {
    "dns-servers": [
      "string"
    ],
    "domain-search": [
      "string"
    ],
    "ntp-servers": [
      "string"
    ],
    "routers": [
      "string"
    ]
  },
  "start-ip": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-private-network`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreatePrivateNetwork) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_private_network) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createPrivateNetwork(com.exoscale.sdk.model.CreatePrivateNetworkRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-private-network`

## <span data-label="GET" class="pill-GET"></span>get-private-network

Retrieve Private Network details

```
GET /private-network/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `description` | string | Private Network description<br/><br/>Max length: `255`. |
| `end-ip` | string | Private Network end IP address<br/><br/>Must be a valid IPv4 address. |
| `id` | string | Private Network ID<br/><br/>Must be a valid UUID. |
| `labels` | object | Resource labels |
| `leases` | array of [Private Network leased IP address](https://community.exoscale.com/reference/api/_schemas/private-network-lease/index.md) | Private Network leased IP addresses |
| `name` | string | Private Network name<br/><br/>Min length: `1`. Max length: `255`. |
| `netmask` | string | Private Network netmask<br/><br/>Must be a valid IPv4 address. |
| `options` | [Private Network DHCP Options](https://community.exoscale.com/reference/api/_schemas/private-network-options/index.md) | DHCP options |
| `start-ip` | string | Private Network start IP address<br/><br/>Must be a valid IPv4 address. |
| `vni` | integer | Private Network VXLAN ID<br/><br/>Min: `0`. |

<details>
<summary>Example output</summary>

```json
{
  "description": "string",
  "end-ip": "string",
  "id": "string",
  "labels": {},
  "leases": [
    {
      "instance-id": "string",
      "ip": "string"
    }
  ],
  "name": "string",
  "netmask": "string",
  "options": {
    "dns-servers": [
      "string"
    ],
    "domain-search": [
      "string"
    ],
    "ntp-servers": [
      "string"
    ],
    "routers": [
      "string"
    ]
  },
  "start-ip": "string",
  "vni": 0
}
```
</details>


SDK reference for `get-private-network`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetPrivateNetwork) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_private_network) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getPrivateNetwork(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-private-network`

## <span data-label="PUT" class="pill-PUT"></span>update-private-network

Update a Private Network

```
PUT /private-network/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | no | Private Network description<br/><br/>Max length: `255`. |
| `end-ip` | string | no | Private Network end IP address<br/><br/>Must be a valid IPv4 address. |
| `labels` | object | no | Resource labels |
| `name` | string | no | Private Network name<br/><br/>Min length: `1`. Max length: `255`. |
| `netmask` | string | no | Private Network netmask<br/><br/>Must be a valid IPv4 address. |
| `options` | [Private Network DHCP Options](https://community.exoscale.com/reference/api/_schemas/private-network-options/index.md) | no | DHCP options |
| `start-ip` | string | no | Private Network start IP address<br/><br/>Must be a valid IPv4 address. |

<details>
<summary>Example</summary>

```json
{
  "description": "string",
  "end-ip": "string",
  "labels": {},
  "name": "string",
  "netmask": "string",
  "options": {
    "dns-servers": [
      "string"
    ],
    "domain-search": [
      "string"
    ],
    "ntp-servers": [
      "string"
    ],
    "routers": [
      "string"
    ]
  },
  "start-ip": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-private-network`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdatePrivateNetwork) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_private_network) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updatePrivateNetwork(java.util.UUID,com.exoscale.sdk.model.UpdatePrivateNetworkRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-private-network`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-private-network

Delete a Private Network

```
DELETE /private-network/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-private-network`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeletePrivateNetwork) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_private_network) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deletePrivateNetwork(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-private-network`


---

## Other Operations

## <span data-label="PUT" class="pill-PUT"></span>detach-instance-from-private-network

Detach a Compute instance from a Private Network

```
PUT /private-network/{id}:detach
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `instance` | [Instance](https://community.exoscale.com/reference/api/_schemas/instance/index.md) | **yes** | Compute instance |

<details>
<summary>Example</summary>

```json
{
  "instance": {
    "anti-affinity-groups": [
      {
        "id": "string"
      }
    ],
    "application-consistent-snapshot-enabled": true,
    "created-at": "2024-01-01T12:00:00Z",
    "deploy-target": {
      "id": "string"
    },
    "disk-encrypted": true,
    "disk-size": 0,
    "elastic-ips": [
      {
        "id": "string"
      }
    ],
    "id": "string",
    "instance-type": {
      "authorized": true,
      "cpus": 0,
      "family": "gpu3",
      "gpus": 0,
      "id": "string",
      "memory": 0,
      "size": "large",
      "zones": [
        "ch-dk-2"
      ]
    },
    "ip-forwarding": true,
    "ipv6-address": "string",
    "labels": {},
    "mac-address": "string",
    "manager": {
      "id": "string",
      "type": "sks-nodepool"
    },
    "name": "string",
    "private-networks": [
      {
        "id": "string",
        "mac-address": "string"
      }
    ],
    "public-ip": "string",
    "public-ip-assignment": "inet4",
    "secureboot-enabled": true,
    "security-groups": [
      {
        "id": "string"
      }
    ],
    "snapshots": [
      {
        "id": "string"
      }
    ],
    "ssh-key": {
      "fingerprint": "string",
      "name": "string"
    },
    "ssh-keys": [
      {
        "fingerprint": "string",
        "name": "string"
      }
    ],
    "state": "expunging",
    "template": {
      "application-consistent-snapshot-enabled": true,
      "boot-mode": "legacy",
      "build": "string",
      "checksum": "string",
      "created-at": "2024-01-01T12:00:00Z",
      "default-user": "string",
      "description": "string",
      "family": "string",
      "id": "string",
      "maintainer": "string",
      "name": "string",
      "password-enabled": true,
      "size": 0,
      "ssh-key-enabled": true,
      "url": "string",
      "version": "string",
      "visibility": "private"
    },
    "tpm-enabled": true,
    "user-data": "string",
    "vpc": {
      "id": "string",
      "name": "string",
      "subnets": [
        {
          "id": "string",
          "ipv4": "string",
          "name": "string"
        }
      ]
    }
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `detach-instance-from-private-network`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DetachInstanceFromPrivateNetwork) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.detach_instance_from_private_network) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#detachInstanceFromPrivateNetwork(java.util.UUID,com.exoscale.sdk.model.DetachInstanceFromPrivateNetworkRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api detach-instance-from-private-network`

## <span data-label="PUT" class="pill-PUT"></span>attach-instance-to-private-network

Attach a Compute instance to a Private Network

```
PUT /private-network/{id}:attach
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `instance` | [Instance](#instance) | **yes** | Compute instance |
| `ip` | string | no | Static IP address lease for the corresponding network interface<br/><br/>Must be a valid IPv4 address. |

<details>
<summary>Example</summary>

```json
{
  "instance": {
    "id": "string"
  },
  "ip": "string"
}
```
</details>


### Instance {#instance}

Compute instance

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | Instance ID<br/><br/>Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `attach-instance-to-private-network`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.AttachInstanceToPrivateNetwork) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.attach_instance_to_private_network) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#attachInstanceToPrivateNetwork(java.util.UUID,com.exoscale.sdk.model.AttachInstanceToPrivateNetworkRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api attach-instance-to-private-network`

## <span data-label="DELETE" class="pill-DELETE"></span>reset-private-network-field

Reset Private Network field

```
DELETE /private-network/{id}/{field}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |
| `field` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `reset-private-network-field`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ResetPrivateNetworkField) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reset_private_network_field) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#resetPrivateNetworkField(java.util.UUID,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reset-private-network-field`

## <span data-label="PUT" class="pill-PUT"></span>update-private-network-instance-ip

Update the IP address of an instance attached to a managed private network

```
PUT /private-network/{id}:update-ip
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `instance` | [Instance](#instance) | no |  |
| `ip` | string | no | Static IP address lease for the corresponding network interface<br/><br/>Must be a valid IPv4 address. |

<details>
<summary>Example</summary>

```json
{
  "instance": {
    "id": "string"
  },
  "ip": "string"
}
```
</details>


### Instance {#instance}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | **yes** | Instance ID<br/><br/>Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-private-network-instance-ip`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdatePrivateNetworkInstanceIP) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_private_network_instance_ip) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updatePrivateNetworkInstanceIp(java.util.UUID,com.exoscale.sdk.model.UpdatePrivateNetworkInstanceIpRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-private-network-instance-ip`

## <span data-label="GET" class="pill-GET"></span>list-private-networks

List Private Networks

```
GET /private-network
```

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `private-networks` | array of [Private Network](https://community.exoscale.com/reference/api/_schemas/private-network/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "private-networks": [
    {
      "description": "string",
      "end-ip": "string",
      "id": "string",
      "labels": {},
      "leases": [
        {
          "instance-id": "string",
          "ip": "string"
        }
      ],
      "name": "string",
      "netmask": "string",
      "options": {
        "dns-servers": [
          "string"
        ],
        "domain-search": [
          "string"
        ],
        "ntp-servers": [
          "string"
        ],
        "routers": [
          "string"
        ]
      },
      "start-ip": "string",
      "vni": 0
    }
  ]
}
```
</details>


SDK reference for `list-private-networks`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListPrivateNetworks) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_private_networks) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listPrivateNetworks())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-private-networks`

---

url: https://community.exoscale.com/reference/api/compute/instance-type/

---

# Instance Type

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

An Instance Type is a resource describing the amount of CPU, RAM and GPUs allocated to a Compute instance.

[Read more](https://www.exoscale.com/pricing/)


---

## Other Operations

## <span data-label="GET" class="pill-GET"></span>get-instance-type

Retrieve Instance Type details

```
GET /instance-type/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `authorized` | boolean | Requires authorization or publicly available |
| `cpus` | integer | CPU count<br/><br/>Min: `0`. |
| `family` | string | Instance type family<br/><br/>Allowed values: `gpu3`, `gpua30`, `gpu3080ti`, `gpu2`, `gpu`, `memory`, `gpua5000`, `gpub300`, `gpurtx6000pro`, `storage`, `standard`, `colossus`, `cpu`. |
| `gpus` | integer | GPU count<br/><br/>Min: `0`. |
| `id` | string | Instance type ID<br/><br/>Must be a valid UUID. |
| `memory` | integer | Available memory<br/><br/>Min: `0`. |
| `size` | string | Instance type size<br/><br/>Allowed values: `large`, `huge`, `jumbo`, `medium`, `mega`, `small`, `extra-large`, `titan48c`, `titan`, `micro`, `colossus`, `tiny`. |
| `zones` | array of [Zone Name](https://community.exoscale.com/reference/api/_schemas/zone-name/index.md) | Instance Type available zones |

<details>
<summary>Example output</summary>

```json
{
  "authorized": true,
  "cpus": 0,
  "family": "gpu3",
  "gpus": 0,
  "id": "string",
  "memory": 0,
  "size": "large",
  "zones": [
    "ch-dk-2"
  ]
}
```
</details>


SDK reference for `get-instance-type`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetInstanceType) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_instance_type) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getInstanceType(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-instance-type`

## <span data-label="GET" class="pill-GET"></span>list-instance-types

List Compute instance Types

```
GET /instance-type
```

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `instance-types` | array of [Compute instance type](https://community.exoscale.com/reference/api/_schemas/instance-type/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "instance-types": [
    {
      "authorized": true,
      "cpus": 0,
      "family": "gpu3",
      "gpus": 0,
      "id": "string",
      "memory": 0,
      "size": "large",
      "zones": [
        "ch-dk-2"
      ]
    }
  ]
}
```
</details>


SDK reference for `list-instance-types`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListInstanceTypes) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_instance_types) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listInstanceTypes())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-instance-types`

---

url: https://community.exoscale.com/reference/api/compute/reverse-dns/

---

# Reverse DNS

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Reverse DNS lets you record PTR records for Compute instance public IP addresses or Elastic IPs.

[Read more](https://community.exoscale.com/product/compute/instances/index.md)

## <span data-label="POST" class="pill-POST"></span>update-reverse-dns-elastic-ip

Update/Create the PTR DNS record for an elastic IP

```
POST /reverse-dns/elastic-ip/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `domain-name` | string | no | Min length: `1`. Max length: `253`. |

<details>
<summary>Example</summary>

```json
{
  "domain-name": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-reverse-dns-elastic-ip`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateReverseDNSElasticIP) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_reverse_dns_elastic_ip) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateReverseDnsElasticIp(java.util.UUID,com.exoscale.sdk.model.UpdateReverseDnsElasticIpRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-reverse-dns-elastic-ip`

## <span data-label="GET" class="pill-GET"></span>get-reverse-dns-elastic-ip

Query the PTR DNS records for an elastic IP

```
GET /reverse-dns/elastic-ip/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `domain-name` | string | Min length: `1`. Max length: `253`. |

<details>
<summary>Example output</summary>

```json
{
  "domain-name": "string"
}
```
</details>


SDK reference for `get-reverse-dns-elastic-ip`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetReverseDNSElasticIP) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_reverse_dns_elastic_ip) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getReverseDnsElasticIp(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-reverse-dns-elastic-ip`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-reverse-dns-elastic-ip

Delete the PTR DNS record for an elastic IP

```
DELETE /reverse-dns/elastic-ip/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-reverse-dns-elastic-ip`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteReverseDNSElasticIP) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_reverse_dns_elastic_ip) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteReverseDnsElasticIp(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-reverse-dns-elastic-ip`

## <span data-label="POST" class="pill-POST"></span>update-reverse-dns-instance

Update/Create the PTR DNS record for an instance

```
POST /reverse-dns/instance/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `domain-name` | string | no | Min length: `1`. Max length: `253`. |

<details>
<summary>Example</summary>

```json
{
  "domain-name": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-reverse-dns-instance`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateReverseDNSInstance) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_reverse_dns_instance) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateReverseDnsInstance(java.util.UUID,com.exoscale.sdk.model.UpdateReverseDnsInstanceRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-reverse-dns-instance`

## <span data-label="GET" class="pill-GET"></span>get-reverse-dns-instance

Query the PTR DNS records for an instance

```
GET /reverse-dns/instance/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `domain-name` | string | Min length: `1`. Max length: `253`. |

<details>
<summary>Example output</summary>

```json
{
  "domain-name": "string"
}
```
</details>


SDK reference for `get-reverse-dns-instance`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetReverseDNSInstance) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_reverse_dns_instance) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getReverseDnsInstance(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-reverse-dns-instance`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-reverse-dns-instance

Delete the PTR DNS record for an instance

```
DELETE /reverse-dns/instance/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-reverse-dns-instance`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteReverseDNSInstance) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_reverse_dns_instance) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteReverseDnsInstance(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-reverse-dns-instance`

---

url: https://community.exoscale.com/reference/api/compute/anti-affinity-group/

---

# Anti-Affinity Group

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Anti-affinity groups let you define placement constraints for your Compute instances.

[Read more](https://community.exoscale.com/product/compute/instances/how-to/anti-affinity/index.md)

## <span data-label="POST" class="pill-POST"></span>create-anti-affinity-group

Create an Anti-affinity Group

```
POST /anti-affinity-group
```

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | Anti-affinity Group name<br/><br/>Min length: `1`. Max length: `255`. |
| `description` | string | no | Anti-affinity Group description<br/><br/>Max length: `255`. |

<details>
<summary>Example</summary>

```json
{
  "description": "string",
  "name": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-anti-affinity-group`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateAntiAffinityGroup) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_anti_affinity_group) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createAntiAffinityGroup(com.exoscale.sdk.model.CreateAntiAffinityGroupRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-anti-affinity-group`

## <span data-label="GET" class="pill-GET"></span>get-anti-affinity-group

Retrieve Anti-affinity Group details

```
GET /anti-affinity-group/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `description` | string | Anti-affinity Group description<br/><br/>Max length: `255`. |
| `id` | string | Anti-affinity Group ID<br/><br/>Must be a valid UUID. |
| `instances` | array of [Instance](https://community.exoscale.com/reference/api/_schemas/instance/index.md) | Anti-affinity Group instances |
| `name` | string | Anti-affinity Group name<br/><br/>Min length: `1`. Max length: `255`. |

<details>
<summary>Example output</summary>

```json
{
  "description": "string",
  "id": "string",
  "instances": [
    {
      "anti-affinity-groups": [
        {
          "id": "string"
        }
      ],
      "application-consistent-snapshot-enabled": true,
      "created-at": "2024-01-01T12:00:00Z",
      "deploy-target": {
        "id": "string"
      },
      "disk-encrypted": true,
      "disk-size": 0,
      "elastic-ips": [
        {
          "id": "string"
        }
      ],
      "id": "string",
      "instance-type": {
        "authorized": true,
        "cpus": 0,
        "family": "gpu3",
        "gpus": 0,
        "id": "string",
        "memory": 0,
        "size": "large",
        "zones": [
          "ch-dk-2"
        ]
      },
      "ip-forwarding": true,
      "ipv6-address": "string",
      "labels": {},
      "mac-address": "string",
      "manager": {
        "id": "string",
        "type": "sks-nodepool"
      },
      "name": "string",
      "private-networks": [
        {
          "id": "string",
          "mac-address": "string"
        }
      ],
      "public-ip": "string",
      "public-ip-assignment": "inet4",
      "secureboot-enabled": true,
      "security-groups": [
        {
          "id": "string"
        }
      ],
      "snapshots": [
        {
          "id": "string"
        }
      ],
      "ssh-key": {
        "fingerprint": "string",
        "name": "string"
      },
      "ssh-keys": [
        {
          "fingerprint": "string",
          "name": "string"
        }
      ],
      "state": "expunging",
      "template": {
        "application-consistent-snapshot-enabled": true,
        "boot-mode": "legacy",
        "build": "string",
        "checksum": "string",
        "created-at": "2024-01-01T12:00:00Z",
        "default-user": "string",
        "description": "string",
        "family": "string",
        "id": "string",
        "maintainer": "string",
        "name": "string",
        "password-enabled": true,
        "size": 0,
        "ssh-key-enabled": true,
        "url": "string",
        "version": "string",
        "visibility": "private"
      },
      "tpm-enabled": true,
      "user-data": "string",
      "vpc": {
        "id": "string",
        "name": "string",
        "subnets": [
          {
            "id": null,
            "ipv4": null,
            "name": null
          }
        ]
      }
    }
  ],
  "name": "string"
}
```
</details>


SDK reference for `get-anti-affinity-group`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetAntiAffinityGroup) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_anti_affinity_group) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getAntiAffinityGroup(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-anti-affinity-group`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-anti-affinity-group

Delete an Anti-affinity Group

```
DELETE /anti-affinity-group/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-anti-affinity-group`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteAntiAffinityGroup) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_anti_affinity_group) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteAntiAffinityGroup(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-anti-affinity-group`


---

## Other Operations

## <span data-label="GET" class="pill-GET"></span>list-anti-affinity-groups

List Anti-affinity Groups

```
GET /anti-affinity-group
```

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `anti-affinity-groups` | array of [Anti-affinity Group](https://community.exoscale.com/reference/api/_schemas/anti-affinity-group/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "anti-affinity-groups": [
    {
      "description": "string",
      "id": "string",
      "instances": [
        {
          "anti-affinity-groups": [
            null
          ],
          "application-consistent-snapshot-enabled": true,
          "created-at": "2024-01-01T12:00:00Z",
          "deploy-target": {
            "id": null
          },
          "disk-encrypted": true,
          "disk-size": 0,
          "elastic-ips": [
            null
          ],
          "id": "string",
          "instance-type": {
            "authorized": null,
            "cpus": null,
            "family": null,
            "gpus": null,
            "id": null,
            "memory": null,
            "size": null,
            "zones": null
          },
          "ip-forwarding": true,
          "ipv6-address": "string",
          "labels": {},
          "mac-address": "string",
          "manager": {
            "id": null,
            "type": null
          },
          "name": "string",
          "private-networks": [
            null
          ],
          "public-ip": "string",
          "public-ip-assignment": "inet4",
          "secureboot-enabled": true,
          "security-groups": [
            null
          ],
          "snapshots": [
            null
          ],
          "ssh-key": {
            "fingerprint": null,
            "name": null
          },
          "ssh-keys": [
            null
          ],
          "state": "expunging",
          "template": {
            "application-consistent-snapshot-enabled": null,
            "boot-mode": null,
            "build": null,
            "checksum": null,
            "created-at": null,
            "default-user": null,
            "description": null,
            "family": null,
            "id": null,
            "maintainer": null,
            "name": null,
            "password-enabled": null,
            "size": null,
            "ssh-key-enabled": null,
            "url": null,
            "version": null,
            "visibility": null
          },
          "tpm-enabled": true,
          "user-data": "string",
          "vpc": {
            "id": null,
            "name": null,
            "subnets": null
          }
        }
      ],
      "name": "string"
    }
  ]
}
```
</details>


SDK reference for `list-anti-affinity-groups`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListAntiAffinityGroups) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_anti_affinity_groups) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listAntiAffinityGroups())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-anti-affinity-groups`

---

url: https://community.exoscale.com/reference/api/compute/deploy-target/

---

# Deploy Target

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Deploy Target lets you spin up Compute instances on dedicated hypervisors.

[Read more](https://www.exoscale.com/virtual-private-cloud/)


---

## Other Operations

## <span data-label="GET" class="pill-GET"></span>get-deploy-target

Retrieve Deploy Target details

```
GET /deploy-target/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `description` | string | Deploy Target description<br/><br/>Max length: `255`. |
| `id` | string | Deploy Target ID<br/><br/>Must be a valid UUID. |
| `name` | string | Deploy Target name<br/><br/>Min length: `1`. Max length: `255`. |
| `type` | string | Deploy Target type<br/><br/>Allowed values: `edge`, `dedicated`. |

<details>
<summary>Example output</summary>

```json
{
  "description": "string",
  "id": "string",
  "name": "string",
  "type": "edge"
}
```
</details>


SDK reference for `get-deploy-target`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDeployTarget) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_deploy_target) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDeployTarget(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-deploy-target`

## <span data-label="GET" class="pill-GET"></span>list-deploy-targets

List Deploy Targets

```
GET /deploy-target
```

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `deploy-targets` | array of [Deploy target](https://community.exoscale.com/reference/api/_schemas/deploy-target/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "deploy-targets": [
    {
      "description": "string",
      "id": "string",
      "name": "string",
      "type": "edge"
    }
  ]
}
```
</details>


SDK reference for `list-deploy-targets`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListDeployTargets) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_deploy_targets) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listDeployTargets())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-deploy-targets`

---

url: https://community.exoscale.com/reference/api/networking/

---

# Networking

Networking services for Exoscale resources, including Virtual Private Cloud (VPC).

[Read more](https://community.exoscale.com/product/networking/index.md)

- [VPC](https://community.exoscale.com/reference/api/networking/vpc/index.md) - [BETA] Virtual Private Cloud (VPC) provides isolated virtual network environments for your Exoscale resources.

---

url: https://community.exoscale.com/reference/api/networking/vpc/

---

# VPC

[BETA] Virtual Private Cloud (VPC) provides isolated virtual network environments for your Exoscale resources.

[Read more](https://community.exoscale.com/product/networking/vpc)

- [VPC](https://community.exoscale.com/reference/api/networking/vpc/vpc/index.md) - [BETA] Create and manipulate VPCs
- [VPC Subnets](https://community.exoscale.com/reference/api/networking/vpc/vpc-subnets/index.md) - [BETA] Configure VPC subnets and attach instances to them
- [VPC Routes](https://community.exoscale.com/reference/api/networking/vpc/vpc-routes/index.md) - [BETA] Create and manipulate routing rules

---

url: https://community.exoscale.com/reference/api/networking/vpc/vpc/

---

# VPC

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

[BETA] Create and manipulate VPCs

[Read more](https://community.exoscale.com/product/networking/vpc)

## <span data-label="POST" class="pill-POST"></span>create-vpc

[BETA] Create a VPC

```
POST /vpc
```

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | VPC name<br/><br/>Min length: `1`. Max length: `255`. |
| `description` | string | no | VPC description<br/><br/>Max length: `4096`. |
| `dhcp-options` | [VPC DHCP options](https://community.exoscale.com/reference/api/_schemas/vpc-dhcp-options/index.md) | no | DHCP options |
| `labels` | object | no | Resource labels |

<details>
<summary>Example</summary>

```json
{
  "description": "string",
  "dhcp-options": {
    "dns-servers": [
      "string"
    ],
    "domain-search": [
      "string"
    ],
    "ntp-servers": [
      "string"
    ]
  },
  "labels": {},
  "name": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-vpc`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateVpc) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_vpc) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createVpc(com.exoscale.sdk.model.CreateVpcRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-vpc`

## <span data-label="GET" class="pill-GET"></span>get-vpc

[BETA] Retrieve VPC details

```
GET /vpc/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `created-at` | string | VPC creation date<br/><br/>ISO 8601 date-time. |
| `default` | boolean | Indicates if this is the organization's default VPC |
| `description` | string | VPC description<br/><br/>Max length: `4096`. |
| `dhcp-options` | [VPC DHCP options](https://community.exoscale.com/reference/api/_schemas/vpc-dhcp-options/index.md) | DHCP options |
| `id` | string | VPC ID<br/><br/>Must be a valid UUID. |
| `labels` | object | Resource labels |
| `name` | string | VPC name<br/><br/>Min length: `1`. Max length: `255`. |

<details>
<summary>Example output</summary>

```json
{
  "created-at": "2024-01-01T12:00:00Z",
  "default": true,
  "description": "string",
  "dhcp-options": {
    "dns-servers": [
      "string"
    ],
    "domain-search": [
      "string"
    ],
    "ntp-servers": [
      "string"
    ]
  },
  "id": "string",
  "labels": {},
  "name": "string"
}
```
</details>


SDK reference for `get-vpc`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetVpc) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_vpc) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getVpc(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-vpc`

## <span data-label="PUT" class="pill-PUT"></span>update-vpc

[BETA] Update a VPC

```
PUT /vpc/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | no | VPC description<br/><br/>Max length: `4096`. |
| `dhcp-options` | [VPC DHCP options](https://community.exoscale.com/reference/api/_schemas/vpc-dhcp-options/index.md) | no | DHCP options (only allowed if VPC has no instances attached) |
| `labels` | object | no | Resource labels |
| `name` | string | no | VPC name<br/><br/>Min length: `1`. Max length: `255`. |

<details>
<summary>Example</summary>

```json
{
  "description": "string",
  "dhcp-options": {
    "dns-servers": [
      "string"
    ],
    "domain-search": [
      "string"
    ],
    "ntp-servers": [
      "string"
    ]
  },
  "labels": {},
  "name": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `created-at` | string | VPC creation date<br/><br/>ISO 8601 date-time. |
| `default` | boolean | Indicates if this is the organization's default VPC |
| `description` | string | VPC description<br/><br/>Max length: `4096`. |
| `dhcp-options` | [VPC DHCP options](https://community.exoscale.com/reference/api/_schemas/vpc-dhcp-options/index.md) | DHCP options |
| `id` | string | VPC ID<br/><br/>Must be a valid UUID. |
| `labels` | object | Resource labels |
| `name` | string | VPC name<br/><br/>Min length: `1`. Max length: `255`. |

<details>
<summary>Example output</summary>

```json
{
  "created-at": "2024-01-01T12:00:00Z",
  "default": true,
  "description": "string",
  "dhcp-options": {
    "dns-servers": [
      "string"
    ],
    "domain-search": [
      "string"
    ],
    "ntp-servers": [
      "string"
    ]
  },
  "id": "string",
  "labels": {},
  "name": "string"
}
```
</details>


SDK reference for `update-vpc`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateVpc) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_vpc) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateVpc(java.util.UUID,com.exoscale.sdk.model.UpdateVpcRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-vpc`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-vpc

[BETA] Delete a VPC

```
DELETE /vpc/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `204` - 204


SDK reference for `delete-vpc`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteVpc) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_vpc) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteVpc(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-vpc`


---

## Other Operations

## <span data-label="GET" class="pill-GET"></span>list-vpcs

[BETA] List VPCs

```
GET /vpc
```

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `vpcs` | array of [VPC](https://community.exoscale.com/reference/api/_schemas/list-vpc-entry/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "vpcs": [
    {
      "created-at": "2024-01-01T12:00:00Z",
      "default": true,
      "description": "string",
      "dhcp-options": {
        "dns-servers": [
          "string"
        ],
        "domain-search": [
          "string"
        ],
        "ntp-servers": [
          "string"
        ]
      },
      "id": "string",
      "labels": {},
      "name": "string"
    }
  ]
}
```
</details>


SDK reference for `list-vpcs`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListVpcs) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_vpcs) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listVpcs())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-vpcs`

---

url: https://community.exoscale.com/reference/api/networking/vpc/vpc-subnets/

---

# VPC Subnets

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

[BETA] Configure VPC subnets and attach instances to them

[Read more](https://community.exoscale.com/product/networking/vpc)

## <span data-label="POST" class="pill-POST"></span>create-subnet

[BETA] Create a Subnet

```
POST /vpc/{vpc-id}/subnet
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `vpc-id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `address-space` | string | **yes** | Subnet address space<br/><br/>Allowed values: `private`. |
| `addressfamily` | string | **yes** | Subnet address family<br/><br/>Allowed values: `inet4`. |
| `name` | string | **yes** | Subnet name<br/><br/>Min length: `1`. Max length: `255`. |
| `description` | string | no | Subnet description<br/><br/>Max length: `4096`. |
| `ipv4-block` | string | no | Subnet ipv4 CIDR |
| `labels` | object | no | Resource labels |

<details>
<summary>Example</summary>

```json
{
  "address-space": "private",
  "addressfamily": "inet4",
  "description": "string",
  "ipv4-block": "string",
  "labels": {},
  "name": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-subnet`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateSubnet) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_subnet) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createSubnet(java.util.UUID,com.exoscale.sdk.model.CreateSubnetRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-subnet`

## <span data-label="GET" class="pill-GET"></span>get-subnet

[BETA] Retrieve Subnet details

```
GET /vpc/{vpc-id}/subnet/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `vpc-id` | `path` | Must be a valid UUID. |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `address-space` | string | Subnet address space<br/><br/>Allowed values: `private`. |
| `addressfamily` | string | Subnet address family<br/><br/>Allowed values: `inet4`, `dual`. |
| `created-at` | string | Subnet creation date<br/><br/>ISO 8601 date-time. |
| `description` | string | Subnet description<br/><br/>Max length: `4096`. |
| `id` | string | Subnet ID<br/><br/>Must be a valid UUID. |
| `instances` | array of [Instances](https://community.exoscale.com/reference/api/_schemas/subnet/index.md#instances) | Instances attached to the subnet |
| `ipv4-block` | string | Subnet ipv4 CIDR |
| `labels` | object | Resource labels |
| `name` | string | Subnet name<br/><br/>Min length: `1`. Max length: `255`. |

<details>
<summary>Example output</summary>

```json
{
  "address-space": "private",
  "addressfamily": "inet4",
  "created-at": "2024-01-01T12:00:00Z",
  "description": "string",
  "id": "string",
  "instances": [
    {
      "id": "string",
      "ipv4": "string",
      "name": "string"
    }
  ],
  "ipv4-block": "string",
  "labels": {},
  "name": "string"
}
```
</details>


SDK reference for `get-subnet`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetSubnet) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_subnet) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getSubnet(java.util.UUID,java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-subnet`

## <span data-label="PUT" class="pill-PUT"></span>update-subnet

[BETA] Update a Subnet

```
PUT /vpc/{vpc-id}/subnet/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `vpc-id` | `path` | Must be a valid UUID. |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | no | Subnet description<br/><br/>Max length: `4096`. |
| `labels` | object | no | Resource labels |
| `name` | string | no | Subnet name<br/><br/>Min length: `1`. Max length: `255`. |

<details>
<summary>Example</summary>

```json
{
  "description": "string",
  "labels": {},
  "name": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `address-space` | string | Subnet address space<br/><br/>Allowed values: `private`. |
| `addressfamily` | string | Subnet address family<br/><br/>Allowed values: `inet4`, `dual`. |
| `created-at` | string | Subnet creation date<br/><br/>ISO 8601 date-time. |
| `description` | string | Subnet description<br/><br/>Max length: `4096`. |
| `id` | string | Subnet ID<br/><br/>Must be a valid UUID. |
| `instances` | array of [Instances](https://community.exoscale.com/reference/api/_schemas/subnet/index.md#instances) | Instances attached to the subnet |
| `ipv4-block` | string | Subnet ipv4 CIDR |
| `labels` | object | Resource labels |
| `name` | string | Subnet name<br/><br/>Min length: `1`. Max length: `255`. |

<details>
<summary>Example output</summary>

```json
{
  "address-space": "private",
  "addressfamily": "inet4",
  "created-at": "2024-01-01T12:00:00Z",
  "description": "string",
  "id": "string",
  "instances": [
    {
      "id": "string",
      "ipv4": "string",
      "name": "string"
    }
  ],
  "ipv4-block": "string",
  "labels": {},
  "name": "string"
}
```
</details>


SDK reference for `update-subnet`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateSubnet) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_subnet) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateSubnet(java.util.UUID,java.util.UUID,com.exoscale.sdk.model.UpdateSubnetRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-subnet`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-subnet

[BETA] Delete a Subnet

```
DELETE /vpc/{vpc-id}/subnet/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `vpc-id` | `path` | Must be a valid UUID. |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `204` - 204


SDK reference for `delete-subnet`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteSubnet) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_subnet) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteSubnet(java.util.UUID,java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-subnet`


---

## Other Operations

## <span data-label="PUT" class="pill-PUT"></span>detach-instance-from-subnet

[BETA] Detach a Compute instance from a Subnet

```
PUT /vpc/{vpc-id}/subnet/{subnet-id}/detach
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `vpc-id` | `path` | Must be a valid UUID. |
| `subnet-id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `instance` | [Target Instance](https://community.exoscale.com/reference/api/_schemas/instance-ref/index.md) | **yes** | Compute instance |

<details>
<summary>Example</summary>

```json
{
  "instance": {
    "id": "string"
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `detach-instance-from-subnet`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DetachInstanceFromSubnet) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.detach_instance_from_subnet) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#detachInstanceFromSubnet(java.util.UUID,java.util.UUID,com.exoscale.sdk.model.DetachInstanceFromSubnetRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api detach-instance-from-subnet`

## <span data-label="PUT" class="pill-PUT"></span>attach-instance-to-subnet

[BETA] Attach a Compute instance to a Subnet

```
PUT /vpc/{vpc-id}/subnet/{subnet-id}/attach
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `vpc-id` | `path` | Must be a valid UUID. |
| `subnet-id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `instance` | [Target Instance](https://community.exoscale.com/reference/api/_schemas/instance-ref/index.md) | **yes** | Compute instance |
| `ipv4` | string | no | Instance IPv4<br/><br/>Must be a valid IPv4 address. |

<details>
<summary>Example</summary>

```json
{
  "instance": {
    "id": "string"
  },
  "ipv4": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `attach-instance-to-subnet`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.AttachInstanceToSubnet) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.attach_instance_to_subnet) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#attachInstanceToSubnet(java.util.UUID,java.util.UUID,com.exoscale.sdk.model.AttachInstanceToSubnetRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api attach-instance-to-subnet`

## <span data-label="GET" class="pill-GET"></span>list-subnets

[BETA] List Subnets

```
GET /vpc/{vpc-id}/subnet
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `vpc-id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `subnets` | array of [Subnet](https://community.exoscale.com/reference/api/_schemas/list-subnet-entry/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "subnets": [
    {
      "address-space": "private",
      "addressfamily": "inet4",
      "created-at": "2024-01-01T12:00:00Z",
      "description": "string",
      "id": "string",
      "ipv4-block": "string",
      "labels": {},
      "name": "string"
    }
  ]
}
```
</details>


SDK reference for `list-subnets`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListSubnets) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_subnets) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listSubnets(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-subnets`

---

url: https://community.exoscale.com/reference/api/networking/vpc/vpc-routes/

---

# VPC Routes

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

[BETA] Create and manipulate routing rules

[Read more](https://community.exoscale.com/product/networking/vpc)

## <span data-label="POST" class="pill-POST"></span>create-route

[BETA] Create a route

```
POST /vpc/{vpc-id}/subnet/{subnet-id}/route
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `vpc-id` | `path` | Must be a valid UUID. |
| `subnet-id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `destination` | string | **yes** | Route destination CIDR |
| `target` | string | **yes** | Route target |
| `description` | string | no | Route description<br/><br/>Max length: `4096`. |

<details>
<summary>Example</summary>

```json
{
  "description": "string",
  "destination": "string",
  "target": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `description` | string | Route description<br/><br/>Max length: `4096`. |
| `destination` | string | Route destination CIDR |
| `id` | string | Route ID<br/><br/>Must be a valid UUID. |
| `kind` | string | Route kind<br/><br/>Allowed values: `Subnet`, `Vpc`. |
| `target` | string | Route target |

<details>
<summary>Example output</summary>

```json
{
  "description": "string",
  "destination": "string",
  "id": "string",
  "kind": "Subnet",
  "target": "string"
}
```
</details>


SDK reference for `create-route`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateRoute) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_route) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createRoute(java.util.UUID,java.util.UUID,com.exoscale.sdk.model.CreateRouteRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-route`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-route

[BETA] Delete a route

```
DELETE /vpc/{vpc-id}/subnet/{subnet-id}/route/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `vpc-id` | `path` | Must be a valid UUID. |
| `subnet-id` | `path` | Must be a valid UUID. |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `204` - 204


SDK reference for `delete-route`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteRoute) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_route) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteRoute(java.util.UUID,java.util.UUID,java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-route`


---

## Other Operations

## <span data-label="GET" class="pill-GET"></span>list-routes

[BETA] List Subnet routes

```
GET /vpc/{vpc-id}/subnet/{subnet-id}/route
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `vpc-id` | `path` | Must be a valid UUID. |
| `subnet-id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `routes` | array of [Route](https://community.exoscale.com/reference/api/_schemas/list-route-entry/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "routes": [
    {
      "description": "string",
      "destination": "string",
      "id": "string",
      "kind": "Subnet",
      "target": "string"
    }
  ]
}
```
</details>


SDK reference for `list-routes`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListRoutes) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_routes) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listRoutes(java.util.UUID,java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-routes`

## <span data-label="GET" class="pill-GET"></span>list-vpc-routes

[BETA] List VPC routes

```
GET /vpc/{vpc-id}/route
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `vpc-id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `routes` | array of [Route](https://community.exoscale.com/reference/api/_schemas/list-route-entry/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "routes": [
    {
      "description": "string",
      "destination": "string",
      "id": "string",
      "kind": "Subnet",
      "target": "string"
    }
  ]
}
```
</details>


SDK reference for `list-vpc-routes`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListVpcRoutes) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_vpc_routes) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listVpcRoutes(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-vpc-routes`

---

url: https://community.exoscale.com/reference/api/sks/

---

# SKS

SKS is Exoscale's scalable Kubernetes service which provides managed Kubernetes control planes with integrated support for Exoscale instance pools and network load balancers.

[Read more](https://community.exoscale.com/product/compute/containers/index.md)

- [Cluster](https://community.exoscale.com/reference/api/sks/cluster/index.md) - Clusters are managed Kubernetes control planes.
- [Nodepool](https://community.exoscale.com/reference/api/sks/nodepool/index.md) - Nodepools are groups of compute instances managed by SKS, serving as worker nodes in your Kubernetes cluster.
- [Nodepool Template](https://community.exoscale.com/reference/api/sks/nodepool-template/index.md) - Nodepool templates are Exoscale-managed instance templates for SKS worker nodes.

---

url: https://community.exoscale.com/reference/api/sks/cluster/

---

# Cluster

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Clusters are managed Kubernetes control planes.

[Read more](https://community.exoscale.com/product/compute/containers/index.md)

## <span data-label="POST" class="pill-POST"></span>create-sks-cluster

Create an SKS cluster

```
POST /sks-cluster
```

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `level` | string | **yes** | Cluster service level<br/><br/>Allowed values: `starter`, `pro`. |
| `name` | string | **yes** | Cluster name<br/><br/>Min length: `1`. Max length: `255`. |
| `version` | string | **yes** | Control plane Kubernetes version |
| `addons` | array[string] | no | Cluster addons |
| `allowed-networks` | array[string] | no | EXPERIMENTAL: List of ranges of allowed IPs using CIDR notation. Defaults to `["0.0.0.0/0"]`, allowing access to all IPs. (default: ["0.0.0.0/0"]) |
| `audit` | [Kubernetes Audit parameters](https://community.exoscale.com/reference/api/_schemas/sks-audit-create/index.md) | no | Kubernetes Audit Log Configuration |
| `auto-upgrade` | boolean | no | Enable auto upgrade of the control plane to the latest patch version available |
| `cni` | string | no | Cluster CNI<br/><br/>Allowed values: `calico`, `cilium`. |
| `create-default-security-group` | boolean | no | Creates an ad-hoc security group based on the choice of the selected CNI |
| `description` | string | no | Cluster description<br/><br/>Max length: `255`. |
| `enable-kube-proxy` | boolean | no | Indicates whether to deploy the Kubernetes network proxy. When unspecified, defaults to `true` unless Cilium CNI is selected |
| `feature-gates` | array[string] | no | A list of Kubernetes-only Alpha features to enable for API server component |
| `karpenter-feature-gates` | array[string] | no | A list of Karpenter controller feature gates to enable for the Karpenter controller binary |
| `labels` | object | no | Cluster Labels |
| `networking` | [EXPERIMENTAL: Cluster networking configuration.](https://community.exoscale.com/reference/api/_schemas/networking/index.md) | no | Cluster networking configuration |
| `oidc` | [SKS Cluster OpenID config map](https://community.exoscale.com/reference/api/_schemas/sks-oidc/index.md) | no | Cluster OpenID configmap |

<details>
<summary>Example</summary>

```json
{
  "addons": [
    "exoscale-cloud-controller"
  ],
  "allowed-networks": [
    "string"
  ],
  "audit": {
    "bearer-token": "string",
    "endpoint": "string",
    "initial-backoff": "string"
  },
  "auto-upgrade": true,
  "cni": "calico",
  "create-default-security-group": true,
  "description": "string",
  "enable-kube-proxy": true,
  "feature-gates": [
    "string"
  ],
  "karpenter-feature-gates": [
    "string"
  ],
  "labels": {},
  "level": "starter",
  "name": "string",
  "networking": {
    "cluster-cidr": "string",
    "node-cidr-mask-size-ipv4": 0,
    "node-cidr-mask-size-ipv6": 0,
    "service-cluster-ip-range": "string"
  },
  "oidc": {
    "client-id": "string",
    "groups-claim": "string",
    "groups-prefix": "string",
    "issuer-url": "string",
    "required-claim": {},
    "username-claim": "string",
    "username-prefix": "string"
  },
  "version": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-sks-cluster`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateSKSCluster) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_sks_cluster) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createSksCluster(com.exoscale.sdk.model.CreateSksClusterRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-sks-cluster`

## <span data-label="GET" class="pill-GET"></span>get-sks-cluster

Retrieve SKS cluster details

```
GET /sks-cluster/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `addons` | array[string] | Cluster addons |
| `allowed-networks` | array[string] | EXPERIMENTAL: List of ranges of allowed IPs using CIDR notation. |
| `audit` | [Kubernetes Audit parameters](https://community.exoscale.com/reference/api/_schemas/sks-audit/index.md) | Kubernetes Audit |
| `auto-upgrade` | boolean | Enable auto upgrade of the control plane to the latest patch version available |
| `cni` | string | Cluster CNI<br/><br/>Allowed values: `calico`, `cilium`. |
| `created-at` | string | Cluster creation date<br/><br/>ISO 8601 date-time. |
| `default-security-group-id` | string | Cluster default Security Group ID<br/><br/>Must be a valid UUID. |
| `description` | string | Cluster description<br/><br/>Max length: `255`. |
| `enable-kube-proxy` | boolean | Indicates whether to deploy the Kubernetes network proxy. |
| `enable-operators-ca` | boolean | Indicates whether to add operators certificate authority (CA) as part of trusted CAs for the API server. |
| `endpoint` | string | Cluster endpoint |
| `feature-gates` | array[string] | A list of Kubernetes-only Alpha features to enable for API server component |
| `id` | string | Cluster ID<br/><br/>Must be a valid UUID. |
| `karpenter-feature-gates` | array[string] | A list of Karpenter controller feature gates to enable for the Karpenter controller binary |
| `labels` | object | Cluster labels |
| `level` | string | Cluster level<br/><br/>Allowed values: `starter`, `pro`. |
| `name` | string | Cluster name<br/><br/>Min length: `1`. Max length: `255`. |
| `nodepools` | array of [SKS Nodepool](https://community.exoscale.com/reference/api/_schemas/sks-nodepool/index.md) | Cluster Nodepools |
| `oidc` | [SKS Cluster OpenID config map](https://community.exoscale.com/reference/api/_schemas/sks-oidc/index.md) | Cluster OpenID configmap |
| `state` | string | Cluster state<br/><br/>Allowed values: `rotating-csi-credentials`, `rotating-ccm-credentials`, `creating`, `upgrading`, `deleting`, `running`, `suspending`, `updating`, `error`, `rotating-karpenter-credentials`, `resuming`. |
| `version` | string | Control plane Kubernetes version |

<details>
<summary>Example output</summary>

```json
{
  "addons": [
    "exoscale-cloud-controller"
  ],
  "allowed-networks": [
    "string"
  ],
  "audit": {
    "enabled": true,
    "endpoint": "string",
    "initial-backoff": "string"
  },
  "auto-upgrade": true,
  "cni": "calico",
  "created-at": "2024-01-01T12:00:00Z",
  "default-security-group-id": "string",
  "description": "string",
  "enable-kube-proxy": true,
  "enable-operators-ca": true,
  "endpoint": "string",
  "feature-gates": [
    "string"
  ],
  "id": "string",
  "karpenter-feature-gates": [
    "string"
  ],
  "labels": {},
  "level": "starter",
  "name": "string",
  "nodepools": [
    {
      "addons": [
        "storage-lvm"
      ],
      "anti-affinity-groups": [
        {
          "id": "string"
        }
      ],
      "cpu-manager-config": {
        "cpu-manager-policy": "static",
        "cpu-manager-policy-options": [
          "distribute-cpus-across-numa"
        ],
        "cpu-manager-reconcile-period": "string",
        "kube-reserved": {
          "cpu": "string",
          "ephemeral-storage": "string",
          "memory": "string"
        },
        "system-reserved": {
          "cpu": "string",
          "ephemeral-storage": "string",
          "memory": "string"
        }
      },
      "created-at": "2024-01-01T12:00:00Z",
      "deploy-target": {
        "id": "string"
      },
      "description": "string",
      "disk-size": 0,
      "id": "string",
      "instance-pool": {
        "id": "string"
      },
      "instance-prefix": "string",
      "instance-type": {
        "id": "string"
      },
      "kubelet-image-gc": {
        "high-threshold": 0,
        "low-threshold": 0,
        "min-age": "string"
      },
      "kubelet-max-pods": 0,
      "labels": {},
      "name": "string",
      "nvidia-mig-profiles": {
        "a30.24gb": "1g.6gb",
        "b300.269gb": "1g.34gb",
        "rtxpro6000.96gb": "1g.24gb"
      },
      "private-networks": [
        {
          "id": "string"
        }
      ],
      "public-ip-assignment": "inet4",
      "security-groups": [
        {
          "id": "string"
        }
      ],
      "size": 0,
      "state": "renewing-token",
      "taints": {},
      "template": {
        "id": "string"
      },
      "version": "string"
    }
  ],
  "oidc": {
    "client-id": "string",
    "groups-claim": "string",
    "groups-prefix": "string",
    "issuer-url": "string",
    "required-claim": {},
    "username-claim": "string",
    "username-prefix": "string"
  },
  "state": "rotating-csi-credentials",
  "version": "string"
}
```
</details>


SDK reference for `get-sks-cluster`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetSKSCluster) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_sks_cluster) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getSksCluster(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-sks-cluster`

## <span data-label="PUT" class="pill-PUT"></span>update-sks-cluster

Update an SKS cluster

```
PUT /sks-cluster/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `addons` | array[string] | no | Cluster addons |
| `allowed-networks` | array[string] | no | EXPERIMENTAL: List of ranges of allowed IPs using CIDR notation. Defaults to `["0.0.0.0/0"]`, allowing access to all IPs. (default: ["0.0.0.0/0"]) |
| `audit` | [Kubernetes Audit parameters](https://community.exoscale.com/reference/api/_schemas/sks-audit-update/index.md) | no | Kubernetes Audit Log Configuration |
| `auto-upgrade` | boolean | no | Enable auto upgrade of the control plane to the latest patch version available |
| `description` | string | no | Cluster description<br/><br/>Max length: `255`. |
| `enable-operators-ca` | boolean | no | Add or remove the operators certificate authority (CA) from the list of trusted CAs of the api server. The default value is true |
| `feature-gates` | array[string] | no | A list of Kubernetes-only Alpha features to enable for API server component |
| `karpenter-feature-gates` | array[string] | no | A list of Karpenter controller feature gates to enable for the Karpenter controller binary |
| `labels` | object | no | Cluster labels |
| `name` | string | no | Cluster name<br/><br/>Min length: `1`. Max length: `255`. |
| `oidc` | [SKS Cluster OpenID config map](https://community.exoscale.com/reference/api/_schemas/sks-oidc/index.md) | no | Cluster OpenID configmap |

<details>
<summary>Example</summary>

```json
{
  "addons": [
    "exoscale-cloud-controller"
  ],
  "allowed-networks": [
    "string"
  ],
  "audit": {
    "bearer-token": "string",
    "enabled": true,
    "endpoint": "string",
    "initial-backoff": "string"
  },
  "auto-upgrade": true,
  "description": "string",
  "enable-operators-ca": true,
  "feature-gates": [
    "string"
  ],
  "karpenter-feature-gates": [
    "string"
  ],
  "labels": {},
  "name": "string",
  "oidc": {
    "client-id": "string",
    "groups-claim": "string",
    "groups-prefix": "string",
    "issuer-url": "string",
    "required-claim": {},
    "username-claim": "string",
    "username-prefix": "string"
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-sks-cluster`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateSKSCluster) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_sks_cluster) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateSksCluster(java.util.UUID,com.exoscale.sdk.model.UpdateSksClusterRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-sks-cluster`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-sks-cluster

Delete an SKS cluster

```
DELETE /sks-cluster/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-sks-cluster`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteSKSCluster) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_sks_cluster) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteSksCluster(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-sks-cluster`


---

## Other Operations

## <span data-label="POST" class="pill-POST"></span>generate-sks-cluster-kubeconfig

Generate a new Kubeconfig file for a SKS cluster

```
POST /sks-cluster-kubeconfig/{id}
```

This operation returns a Kubeconfig file encoded in base64.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `groups` | array[string] | **yes** | List of roles. The certificate present in the Kubeconfig will have these roles set in the Org field. |
| `user` | string | **yes** | User name in the generated Kubeconfig. The certificate present in the Kubeconfig will also have this name set for the CN field. |
| `ttl` | integer | no | Validity in seconds of the Kubeconfig user certificate (default: 30 days)<br/><br/>Min: `0`. |

<details>
<summary>Example</summary>

```json
{
  "groups": [
    "string"
  ],
  "ttl": 0,
  "user": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `kubeconfig` | string |  |

<details>
<summary>Example output</summary>

```json
{
  "kubeconfig": "string"
}
```
</details>


SDK reference for `generate-sks-cluster-kubeconfig`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GenerateSKSClusterKubeconfig) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.generate_sks_cluster_kubeconfig) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#generateSksClusterKubeconfig(java.util.UUID,com.exoscale.sdk.model.GenerateSksClusterKubeconfigRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api generate-sks-cluster-kubeconfig`

## <span data-label="PUT" class="pill-PUT"></span>generate-sks-karpenter-exoscale-nodeclass

Generate a Karpenter ExoscaleNodeClass manifest for an SKS cluster, including its default security group and feature flags if present

```
PUT /sks-cluster/{id}/generate-karpenter-exoscale-nodeclass
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `exoscale-nodeclass` | string |  |

<details>
<summary>Example output</summary>

```json
{
  "exoscale-nodeclass": "string"
}
```
</details>


SDK reference for `generate-sks-karpenter-exoscale-nodeclass`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GenerateSKSKarpenterExoscaleNodeclass) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.generate_sks_karpenter_exoscale_nodeclass) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#generateSksKarpenterExoscaleNodeclass(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api generate-sks-karpenter-exoscale-nodeclass`

## <span data-label="PUT" class="pill-PUT"></span>generate-sks-karpenter-nodepool

Generate a Karpenter NodePool manifest with minimal configuration for an SKS cluster

```
PUT /sks-cluster/{id}/generate-karpenter-nodepool
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `nodepool` | string |  |

<details>
<summary>Example output</summary>

```json
{
  "nodepool": "string"
}
```
</details>


SDK reference for `generate-sks-karpenter-nodepool`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GenerateSKSKarpenterNodepool) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.generate_sks_karpenter_nodepool) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#generateSksKarpenterNodepool(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api generate-sks-karpenter-nodepool`

## <span data-label="PUT" class="pill-PUT"></span>rotate-sks-ccm-credentials

Rotate Exoscale CCM credentials

```
PUT /sks-cluster/{id}/rotate-ccm-credentials
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `rotate-sks-ccm-credentials`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RotateSKSCcmCredentials) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.rotate_sks_ccm_credentials) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#rotateSksCcmCredentials(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api rotate-sks-ccm-credentials`

## <span data-label="PUT" class="pill-PUT"></span>rotate-sks-csi-credentials

Rotate Exoscale CSI credentials

```
PUT /sks-cluster/{id}/rotate-csi-credentials
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `rotate-sks-csi-credentials`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RotateSKSCsiCredentials) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.rotate_sks_csi_credentials) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#rotateSksCsiCredentials(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api rotate-sks-csi-credentials`

## <span data-label="PUT" class="pill-PUT"></span>rotate-sks-karpenter-credentials

Rotate Exoscale Karpenter credentials

```
PUT /sks-cluster/{id}/rotate-karpenter-credentials
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `rotate-sks-karpenter-credentials`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RotateSKSKarpenterCredentials) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.rotate_sks_karpenter_credentials) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#rotateSksKarpenterCredentials(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api rotate-sks-karpenter-credentials`

## <span data-label="PUT" class="pill-PUT"></span>rotate-sks-operators-ca

Rotate operators certificate authority

```
PUT /sks-cluster/{id}/rotate-operators-ca
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `rotate-sks-operators-ca`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RotateSKSOperatorsCA) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.rotate_sks_operators_ca) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#rotateSksOperatorsCa(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api rotate-sks-operators-ca`

## <span data-label="GET" class="pill-GET"></span>get-sks-cluster-authority-cert

Get the certificate for a SKS cluster authority

```
GET /sks-cluster/{id}/authority/{authority}/cert
```

This operation returns the certificate for the given SKS cluster authority encoded in base64.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |
| `authority` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `cacert` | string |  |

<details>
<summary>Example output</summary>

```json
{
  "cacert": "string"
}
```
</details>


SDK reference for `get-sks-cluster-authority-cert`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetSKSClusterAuthorityCert) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_sks_cluster_authority_cert) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getSksClusterAuthorityCert(java.util.UUID,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-sks-cluster-authority-cert`

## <span data-label="GET" class="pill-GET"></span>list-sks-cluster-deprecated-resources

Resources that are scheduled to be removed in future kubernetes releases

```
GET /sks-cluster-deprecated-resources/{id}
```

This operation returns the deprecated resources for a given cluster

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`


<details>
<summary>Example output</summary>

```json
[
  {
    "group": "string",
    "removed-release": "string",
    "resource": "string",
    "subresource": "string",
    "version": "string"
  }
]
```
</details>


SDK reference for `list-sks-cluster-deprecated-resources`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListSKSClusterDeprecatedResources) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_sks_cluster_deprecated_resources) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listSksClusterDeprecatedResources(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-sks-cluster-deprecated-resources`

## <span data-label="GET" class="pill-GET"></span>get-sks-cluster-inspection

Get the latest inspection result

```
GET /sks-cluster/{id}/inspection
```

Helps troubleshoot common problems when deploying a kubernetes cluster. Inspections run every couple of minutes.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`


<details>
<summary>Example output</summary>

```json
{}
```
</details>


SDK reference for `get-sks-cluster-inspection`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetSKSClusterInspection) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_sks_cluster_inspection) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getSksClusterInspection(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-sks-cluster-inspection`

## <span data-label="GET" class="pill-GET"></span>list-sks-cluster-versions

List available versions for SKS clusters

```
GET /sks-cluster-version
```

### Query parameters

| Name | In | Required | Description |
| --- | --- | --- | --- |
| `include-deprecated` | `query` | no |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `sks-cluster-versions` | array[string] |  |

<details>
<summary>Example output</summary>

```json
{
  "sks-cluster-versions": [
    "string"
  ]
}
```
</details>


SDK reference for `list-sks-cluster-versions`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListSKSClusterVersions) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_sks_cluster_versions) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listSksClusterVersions(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-sks-cluster-versions`

## <span data-label="GET" class="pill-GET"></span>list-sks-clusters

List SKS clusters

```
GET /sks-cluster
```

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `sks-clusters` | array of [SKS Cluster](https://community.exoscale.com/reference/api/_schemas/sks-cluster/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "sks-clusters": [
    {
      "addons": [
        "exoscale-cloud-controller"
      ],
      "allowed-networks": [
        "string"
      ],
      "audit": {
        "enabled": true,
        "endpoint": "string",
        "initial-backoff": "string"
      },
      "auto-upgrade": true,
      "cni": "calico",
      "created-at": "2024-01-01T12:00:00Z",
      "default-security-group-id": "string",
      "description": "string",
      "enable-kube-proxy": true,
      "enable-operators-ca": true,
      "endpoint": "string",
      "feature-gates": [
        "string"
      ],
      "id": "string",
      "karpenter-feature-gates": [
        "string"
      ],
      "labels": {},
      "level": "starter",
      "name": "string",
      "nodepools": [
        {
          "addons": [
            null
          ],
          "anti-affinity-groups": [
            null
          ],
          "cpu-manager-config": {
            "cpu-manager-policy": null,
            "cpu-manager-policy-options": null,
            "cpu-manager-reconcile-period": null,
            "kube-reserved": null,
            "system-reserved": null
          },
          "created-at": "2024-01-01T12:00:00Z",
          "deploy-target": {
            "id": null
          },
          "description": "string",
          "disk-size": 0,
          "id": "string",
          "instance-pool": {
            "id": null
          },
          "instance-prefix": "string",
          "instance-type": {
            "id": null
          },
          "kubelet-image-gc": {
            "high-threshold": null,
            "low-threshold": null,
            "min-age": null
          },
          "kubelet-max-pods": 0,
          "labels": {},
          "name": "string",
          "nvidia-mig-profiles": {
            "a30.24gb": null,
            "b300.269gb": null,
            "rtxpro6000.96gb": null
          },
          "private-networks": [
            null
          ],
          "public-ip-assignment": "inet4",
          "security-groups": [
            null
          ],
          "size": 0,
          "state": "renewing-token",
          "taints": {},
          "template": {
            "id": null
          },
          "version": "string"
        }
      ],
      "oidc": {
        "client-id": "string",
        "groups-claim": "string",
        "groups-prefix": "string",
        "issuer-url": "string",
        "required-claim": {},
        "username-claim": "string",
        "username-prefix": "string"
      },
      "state": "rotating-csi-credentials",
      "version": "string"
    }
  ]
}
```
</details>


SDK reference for `list-sks-clusters`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListSKSClusters) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_sks_clusters) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listSksClusters())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-sks-clusters`

## <span data-label="PUT" class="pill-PUT"></span>upgrade-sks-cluster

Upgrade an SKS cluster

```
PUT /sks-cluster/{id}/upgrade
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `version` | string | **yes** | Control plane Kubernetes version |

<details>
<summary>Example</summary>

```json
{
  "version": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `upgrade-sks-cluster`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpgradeSKSCluster) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.upgrade_sks_cluster) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#upgradeSksCluster(java.util.UUID,com.exoscale.sdk.model.UpgradeSksClusterRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api upgrade-sks-cluster`

## <span data-label="PUT" class="pill-PUT"></span>upgrade-sks-cluster-service-level

Upgrade a SKS cluster to pro

```
PUT /sks-cluster/{id}/upgrade-service-level
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `upgrade-sks-cluster-service-level`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpgradeSKSClusterServiceLevel) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.upgrade_sks_cluster_service_level) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#upgradeSksClusterServiceLevel(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api upgrade-sks-cluster-service-level`

---

url: https://community.exoscale.com/reference/api/sks/nodepool/

---

# Nodepool

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Nodepools are groups of compute instances managed by SKS, serving as worker nodes in your Kubernetes cluster.

[Read more](https://community.exoscale.com/product/compute/containers/index.md)

## <span data-label="POST" class="pill-POST"></span>create-sks-nodepool

Create a new SKS Nodepool

```
POST /sks-cluster/{id}/nodepool
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `disk-size` | integer | **yes** | Nodepool instances disk size in GiB<br/><br/>Min: `20`. Max: `51200`. |
| `instance-type` | [Instance type reference](https://community.exoscale.com/reference/api/_schemas/instance-type-ref/index.md) | **yes** | Nodepool instances type |
| `name` | string | **yes** | Nodepool name, lowercase only<br/><br/>Min length: `1`. Max length: `255`. |
| `size` | integer | **yes** | Number of instances<br/><br/>Min: `0`. |
| `addons` | array[string] | no | Nodepool addons |
| `anti-affinity-groups` | array of [Anti-affinity group reference](https://community.exoscale.com/reference/api/_schemas/anti-affinity-group-ref/index.md) | no | Nodepool Anti-affinity Groups |
| `cpu-manager-config` | [CPU manager config](https://community.exoscale.com/reference/api/_schemas/cpu-manager-config/index.md) | no | CPU manager config |
| `deploy-target` | [Deploy target reference](https://community.exoscale.com/reference/api/_schemas/deploy-target-ref/index.md) | no | Nodepool Deploy Target |
| `description` | string | no | Nodepool description<br/><br/>Max length: `255`. |
| `instance-prefix` | string | no | Prefix to apply to instances names (default: pool), lowercase only<br/><br/>Min length: `1`. Max length: `30`. |
| `kubelet-image-gc` | [Kubelet image GC options](https://community.exoscale.com/reference/api/_schemas/kubelet-image-gc/index.md) | no | Kubelet image GC options |
| `kubelet-max-pods` | integer | no | Maximum number of pods per node (kubelet setting)<br/><br/>Min: `1`. Max: `65535`. |
| `labels` | object | no | Nodepool labels |
| `nvidia-mig-profiles` | [Nvidia MIG Profiles enabled](https://community.exoscale.com/reference/api/_schemas/nvidia-mig-profiles/index.md) | no | Nvidia MIG Profiles |
| `private-networks` | array of [Private network reference](https://community.exoscale.com/reference/api/_schemas/private-network-ref/index.md) | no | Nodepool Private Networks |
| `public-ip-assignment` | string | no | Configures public IP assignment of the Instances with:  * IPv4 (`inet4`) addressing only (default); * both IPv4 and IPv6 (`dual`) addressing.<br/><br/>Allowed values: `inet4`, `dual`. |
| `security-groups` | array of [Security group reference](https://community.exoscale.com/reference/api/_schemas/security-group-ref/index.md) | no | Nodepool Security Groups |
| `taints` | object | no | Nodepool taints |

<details>
<summary>Example</summary>

```json
{
  "addons": [
    "storage-lvm"
  ],
  "anti-affinity-groups": [
    {
      "id": "string"
    }
  ],
  "cpu-manager-config": {
    "cpu-manager-policy": "static",
    "cpu-manager-policy-options": [
      "distribute-cpus-across-numa"
    ],
    "cpu-manager-reconcile-period": "string",
    "kube-reserved": {
      "cpu": "string",
      "ephemeral-storage": "string",
      "memory": "string"
    },
    "system-reserved": {
      "cpu": "string",
      "ephemeral-storage": "string",
      "memory": "string"
    }
  },
  "deploy-target": {
    "id": "string"
  },
  "description": "string",
  "disk-size": 0,
  "instance-prefix": "string",
  "instance-type": {
    "id": "string"
  },
  "kubelet-image-gc": {
    "high-threshold": 0,
    "low-threshold": 0,
    "min-age": "string"
  },
  "kubelet-max-pods": 0,
  "labels": {},
  "name": "string",
  "nvidia-mig-profiles": {
    "a30.24gb": "1g.6gb",
    "b300.269gb": "1g.34gb",
    "rtxpro6000.96gb": "1g.24gb"
  },
  "private-networks": [
    {
      "id": "string"
    }
  ],
  "public-ip-assignment": "inet4",
  "security-groups": [
    {
      "id": "string"
    }
  ],
  "size": 0,
  "taints": {}
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-sks-nodepool`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateSKSNodepool) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_sks_nodepool) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createSksNodepool(java.util.UUID,com.exoscale.sdk.model.CreateSksNodepoolRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-sks-nodepool`

## <span data-label="GET" class="pill-GET"></span>get-sks-nodepool

Retrieve SKS Nodepool details

```
GET /sks-cluster/{id}/nodepool/{sks-nodepool-id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |
| `sks-nodepool-id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `addons` | array[string] | Nodepool addons |
| `anti-affinity-groups` | array of [Anti-affinity group reference](https://community.exoscale.com/reference/api/_schemas/anti-affinity-group-ref/index.md) | Nodepool Anti-affinity Groups |
| `cpu-manager-config` | [CPU manager config](https://community.exoscale.com/reference/api/_schemas/cpu-manager-config/index.md) | CPU manager config |
| `created-at` | string | Nodepool creation date<br/><br/>ISO 8601 date-time. |
| `deploy-target` | [Deploy target reference](https://community.exoscale.com/reference/api/_schemas/deploy-target-ref/index.md) | Instance Pool Deploy Target |
| `description` | string | Nodepool description<br/><br/>Max length: `255`. |
| `disk-size` | integer | Nodepool instances disk size in GiB<br/><br/>Min: `20`. Max: `51200`. |
| `id` | string | Nodepool ID<br/><br/>Must be a valid UUID. |
| `instance-pool` | [Target Instance Pool](https://community.exoscale.com/reference/api/_schemas/instance-pool-ref/index.md) | Instance Pool managed by the Nodepool |
| `instance-prefix` | string | The instances created by the Nodepool will be prefixed with this value (default: pool)<br/><br/>Min length: `1`. Max length: `30`. |
| `instance-type` | [Instance type reference](https://community.exoscale.com/reference/api/_schemas/instance-type-ref/index.md) | Nodepool Instances type |
| `kubelet-image-gc` | [Kubelet image GC options](https://community.exoscale.com/reference/api/_schemas/kubelet-image-gc/index.md) | Kubelet image GC options |
| `kubelet-max-pods` | integer | Maximum number of pods per node. Set to use a value other than the kubelet default.<br/><br/>Min: `1`. Max: `65535`. |
| `labels` | object | Nodepool labels |
| `name` | string | Nodepool name<br/><br/>Min length: `1`. Max length: `255`. |
| `nvidia-mig-profiles` | [Nvidia MIG Profiles enabled](https://community.exoscale.com/reference/api/_schemas/nvidia-mig-profiles/index.md) | Nvidia MIG Profiles |
| `private-networks` | array of [Private network reference](https://community.exoscale.com/reference/api/_schemas/private-network-ref/index.md) | Nodepool Private Networks |
| `public-ip-assignment` | string | Nodepool public IP assignment of the Instances:  * IPv4 (`inet4`) addressing only; * IPv4 and IPv6 (`dual`) addressing.<br/><br/>Allowed values: `inet4`, `dual`. |
| `security-groups` | array of [Security group reference](https://community.exoscale.com/reference/api/_schemas/security-group-ref/index.md) | Nodepool Security Groups |
| `size` | integer | Number of instances<br/><br/>Min: `0`. |
| `state` | string | Nodepool state<br/><br/>Allowed values: `renewing-token`, `creating`, `deleting`, `running`, `degraded`, `scaling`, `updating`, `error`. |
| `taints` | object | Nodepool taints |
| `template` | [Template reference](https://community.exoscale.com/reference/api/_schemas/template-ref/index.md) | Nodepool Instance template |
| `version` | string | Nodepool version |

<details>
<summary>Example output</summary>

```json
{
  "addons": [
    "storage-lvm"
  ],
  "anti-affinity-groups": [
    {
      "id": "string"
    }
  ],
  "cpu-manager-config": {
    "cpu-manager-policy": "static",
    "cpu-manager-policy-options": [
      "distribute-cpus-across-numa"
    ],
    "cpu-manager-reconcile-period": "string",
    "kube-reserved": {
      "cpu": "string",
      "ephemeral-storage": "string",
      "memory": "string"
    },
    "system-reserved": {
      "cpu": "string",
      "ephemeral-storage": "string",
      "memory": "string"
    }
  },
  "created-at": "2024-01-01T12:00:00Z",
  "deploy-target": {
    "id": "string"
  },
  "description": "string",
  "disk-size": 0,
  "id": "string",
  "instance-pool": {
    "id": "string"
  },
  "instance-prefix": "string",
  "instance-type": {
    "id": "string"
  },
  "kubelet-image-gc": {
    "high-threshold": 0,
    "low-threshold": 0,
    "min-age": "string"
  },
  "kubelet-max-pods": 0,
  "labels": {},
  "name": "string",
  "nvidia-mig-profiles": {
    "a30.24gb": "1g.6gb",
    "b300.269gb": "1g.34gb",
    "rtxpro6000.96gb": "1g.24gb"
  },
  "private-networks": [
    {
      "id": "string"
    }
  ],
  "public-ip-assignment": "inet4",
  "security-groups": [
    {
      "id": "string"
    }
  ],
  "size": 0,
  "state": "renewing-token",
  "taints": {},
  "template": {
    "id": "string"
  },
  "version": "string"
}
```
</details>


SDK reference for `get-sks-nodepool`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetSKSNodepool) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_sks_nodepool) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getSksNodepool(java.util.UUID,java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-sks-nodepool`

## <span data-label="PUT" class="pill-PUT"></span>update-sks-nodepool

Update an SKS Nodepool

```
PUT /sks-cluster/{id}/nodepool/{sks-nodepool-id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |
| `sks-nodepool-id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `anti-affinity-groups` | array of [Anti-affinity group reference](https://community.exoscale.com/reference/api/_schemas/anti-affinity-group-ref/index.md) | no | Nodepool Anti-affinity Groups |
| `cpu-manager-config` | [CPU manager config](https://community.exoscale.com/reference/api/_schemas/cpu-manager-config/index.md) | no | CPU manager config |
| `deploy-target` | [Deploy target reference](https://community.exoscale.com/reference/api/_schemas/deploy-target-ref/index.md) | no | Nodepool Deploy Target |
| `description` | string | no | Nodepool description<br/><br/>Max length: `255`. |
| `disk-size` | integer | no | Nodepool instances disk size in GiB<br/><br/>Min: `20`. Max: `51200`. |
| `instance-prefix` | string | no | Prefix to apply to managed instances names (default: pool), lowercase only<br/><br/>Min length: `1`. Max length: `30`. |
| `instance-type` | [Instance type reference](https://community.exoscale.com/reference/api/_schemas/instance-type-ref/index.md) | no | Nodepool instances type |
| `kubelet-image-gc` | [Kubelet image GC options](https://community.exoscale.com/reference/api/_schemas/kubelet-image-gc/index.md) | no | Kubelet image GC options |
| `kubelet-max-pods` | integer | no | Maximum number of pods per node (kubelet setting)<br/><br/>Min: `1`. Max: `65535`. |
| `labels` | object | no | Nodepool labels |
| `name` | string | no | Nodepool name, lowercase only<br/><br/>Min length: `1`. Max length: `255`. |
| `nvidia-mig-profiles` | [Nvidia MIG Profiles enabled](https://community.exoscale.com/reference/api/_schemas/nvidia-mig-profiles/index.md) | no | Nvidia MIG Profiles |
| `private-networks` | array of [Private network reference](https://community.exoscale.com/reference/api/_schemas/private-network-ref/index.md) | no | Nodepool Private Networks |
| `public-ip-assignment` | string | no | Configures public IP assignment of the Instances with:  * IPv4 (`inet4`) addressing only; * both IPv4 and IPv6 (`dual`) addressing.<br/><br/>Allowed values: `inet4`, `dual`. |
| `security-groups` | array of [Security group reference](https://community.exoscale.com/reference/api/_schemas/security-group-ref/index.md) | no | Nodepool Security Groups |
| `taints` | object | no | Nodepool taints |

<details>
<summary>Example</summary>

```json
{
  "anti-affinity-groups": [
    {
      "id": "string"
    }
  ],
  "cpu-manager-config": {
    "cpu-manager-policy": "static",
    "cpu-manager-policy-options": [
      "distribute-cpus-across-numa"
    ],
    "cpu-manager-reconcile-period": "string",
    "kube-reserved": {
      "cpu": "string",
      "ephemeral-storage": "string",
      "memory": "string"
    },
    "system-reserved": {
      "cpu": "string",
      "ephemeral-storage": "string",
      "memory": "string"
    }
  },
  "deploy-target": {
    "id": "string"
  },
  "description": "string",
  "disk-size": 0,
  "instance-prefix": "string",
  "instance-type": {
    "id": "string"
  },
  "kubelet-image-gc": {
    "high-threshold": 0,
    "low-threshold": 0,
    "min-age": "string"
  },
  "kubelet-max-pods": 0,
  "labels": {},
  "name": "string",
  "nvidia-mig-profiles": {
    "a30.24gb": "1g.6gb",
    "b300.269gb": "1g.34gb",
    "rtxpro6000.96gb": "1g.24gb"
  },
  "private-networks": [
    {
      "id": "string"
    }
  ],
  "public-ip-assignment": "inet4",
  "security-groups": [
    {
      "id": "string"
    }
  ],
  "taints": {}
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-sks-nodepool`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateSKSNodepool) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_sks_nodepool) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateSksNodepool(java.util.UUID,java.util.UUID,com.exoscale.sdk.model.UpdateSksNodepoolRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-sks-nodepool`

## <span data-label="PUT" class="pill-PUT"></span>scale-sks-nodepool

Scale a SKS Nodepool

```
PUT /sks-cluster/{id}/nodepool/{sks-nodepool-id}:scale
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |
| `sks-nodepool-id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `size` | integer | **yes** | Number of instances<br/><br/>Min: `0`. |

<details>
<summary>Example</summary>

```json
{
  "size": 0
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `scale-sks-nodepool`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ScaleSKSNodepool) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.scale_sks_nodepool) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#scaleSksNodepool(java.util.UUID,java.util.UUID,com.exoscale.sdk.model.ScaleSksNodepoolRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api scale-sks-nodepool`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-sks-nodepool

Delete an SKS Nodepool

```
DELETE /sks-cluster/{id}/nodepool/{sks-nodepool-id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |
| `sks-nodepool-id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-sks-nodepool`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteSKSNodepool) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_sks_nodepool) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteSksNodepool(java.util.UUID,java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-sks-nodepool`


---

## Other Operations

## <span data-label="PUT" class="pill-PUT"></span>evict-sks-nodepool-members

Evict Nodepool members

```
PUT /sks-cluster/{id}/nodepool/{sks-nodepool-id}:evict
```

This operation evicts the specified Compute instances member from the Nodepool, shrinking it to `&lt;current nodepool size&gt; - &lt;# evicted members&gt;`.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |
| `sks-nodepool-id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `instances` | array[string] | no |  |

<details>
<summary>Example</summary>

```json
{
  "instances": [
    "string"
  ]
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `evict-sks-nodepool-members`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.EvictSKSNodepoolMembers) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.evict_sks_nodepool_members) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#evictSksNodepoolMembers(java.util.UUID,java.util.UUID,com.exoscale.sdk.model.EvictSksNodepoolMembersRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api evict-sks-nodepool-members`

---

url: https://community.exoscale.com/reference/api/sks/nodepool-template/

---

# Nodepool Template

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Nodepool templates are Exoscale-managed instance templates for SKS worker nodes.

[Read more](https://community.exoscale.com/product/compute/containers/index.md)


---

## Other Operations

## <span data-label="GET" class="pill-GET"></span>get-active-nodepool-template

```
GET /sks-template/{kube-version}/{variant}
```

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

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `kube-version` | `path` |  |
| `variant` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `active-template` | string | Must be a valid UUID. |

<details>
<summary>Example output</summary>

```json
{
  "active-template": "string"
}
```
</details>


SDK reference for `get-active-nodepool-template`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetActiveNodepoolTemplate) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_active_nodepool_template) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getActiveNodepoolTemplate(java.lang.String,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-active-nodepool-template`

---

url: https://community.exoscale.com/reference/api/dbaas/

---

# DBaaS

Databases as a Service (DBaaS) provides scalable and fully-managed database solutions with high availability and performance backed by Exoscale's Compute and Storage services.

[Read more](https://community.exoscale.com/product/dbaas/index.md)

- [DBaaS Postgresql](https://community.exoscale.com/reference/api/dbaas/dbaas-postgresql/index.md) - PostgreSQL, open-source database known for its wide range of features and popularity with developers.
- [DBaaS Mysql](https://community.exoscale.com/reference/api/dbaas/dbaas-mysql/index.md) - MySQL, the popular open-source, object-relational database.
- [DBaaS Grafana](https://community.exoscale.com/reference/api/dbaas/dbaas-grafana/index.md) - Grafana, the open-source software that lets you query and visualize metrics, logs and traces from any storage source.
- [DBaaS Kafka](https://community.exoscale.com/reference/api/dbaas/dbaas-kafka/index.md) - Kafka is a distributed, open-source data platform for optimized real-time processing of streaming data.
- [DBaaS Opensearch](https://community.exoscale.com/reference/api/dbaas/dbaas-opensearch/index.md) - Opensearch, the popular open-source search and analytics database.
- [DBaaS Valkey](https://community.exoscale.com/reference/api/dbaas/dbaas-valkey/index.md) - Valkey, the open-source key-value store with a Redis®-compatible interface.
- [DBaaS Thanos](https://community.exoscale.com/reference/api/dbaas/dbaas-thanos/index.md) - Thanos is a large-scale metrics management system.
- [DBaaS Management](https://community.exoscale.com/reference/api/dbaas/dbaas-management/index.md) - Operational management for DBaaS services: logs, metrics, service types and lifecycle.
- [DBaaS External Endpoints](https://community.exoscale.com/reference/api/dbaas/dbaas-external-endpoints/index.md) - External integrations allow you to connect your Exoscale DBaaS services with third-party monitoring, logging, or analytics tools.

---

url: https://community.exoscale.com/reference/api/dbaas/dbaas-postgresql/

---

# DBaaS Postgresql

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

PostgreSQL, open-source database known for its wide range of features and popularity with developers.

[Read more](https://community.exoscale.com/product/dbaas/service-specific/postgresql/index.md)

## <span data-label="POST" class="pill-POST"></span>create-dbaas-pg-connection-pool

Create a DBaaS PostgreSQL connection pool

```
POST /dbaas-postgres/{service-name}/connection-pool
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `database-name` | string | **yes** | Service database name<br/><br/>Min length: `1`. Max length: `40`. |
| `name` | string | **yes** | Connection pool name<br/><br/>Min length: `1`. Max length: `63`. |
| `mode` | string | no | PGBouncer pool mode<br/><br/>Allowed values: `transaction`, `statement`, `session`. |
| `size` | integer | no | Size of PGBouncer's PostgreSQL side connection pool<br/><br/>Min: `1`. Max: `10000`. |
| `username` | string | no | Pool username<br/><br/>Min length: `1`. Max length: `64`. |

<details>
<summary>Example</summary>

```json
{
  "database-name": "string",
  "mode": "transaction",
  "name": "string",
  "size": 0,
  "username": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dbaas-pg-connection-pool`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASPGConnectionPool) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_pg_connection_pool) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasPgConnectionPool(java.lang.String,com.exoscale.sdk.model.CreateDbaasPgConnectionPoolRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-pg-connection-pool`

## <span data-label="PUT" class="pill-PUT"></span>update-dbaas-pg-connection-pool

Update a DBaaS PostgreSQL connection pool

```
PUT /dbaas-postgres/{service-name}/connection-pool/{connection-pool-name}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `connection-pool-name` | `path` | Min length: `1`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `database-name` | string | no | Service database name<br/><br/>Min length: `1`. Max length: `40`. |
| `mode` | string | no | PGBouncer pool mode<br/><br/>Allowed values: `transaction`, `statement`, `session`. |
| `size` | integer | no | Size of PGBouncer's PostgreSQL side connection pool<br/><br/>Min: `1`. Max: `10000`. |
| `username` | string | no | Pool username<br/><br/>Min length: `1`. Max length: `64`. |

<details>
<summary>Example</summary>

```json
{
  "database-name": "string",
  "mode": "transaction",
  "size": 0,
  "username": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-dbaas-pg-connection-pool`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateDBAASPGConnectionPool) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_dbaas_pg_connection_pool) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateDbaasPgConnectionPool(java.lang.String,java.lang.String,com.exoscale.sdk.model.UpdateDbaasPgConnectionPoolRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-dbaas-pg-connection-pool`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-pg-connection-pool

Delete a DBaaS PostgreSQL connection pool

```
DELETE /dbaas-postgres/{service-name}/connection-pool/{connection-pool-name}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `connection-pool-name` | `path` | Min length: `1`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-pg-connection-pool`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASPGConnectionPool) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_pg_connection_pool) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasPgConnectionPool(java.lang.String,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-pg-connection-pool`

## <span data-label="POST" class="pill-POST"></span>create-dbaas-pg-database

Create a DBaaS Postgres database

```
POST /dbaas-postgres/{service-name}/database
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `database-name` | string | **yes** | Service database name<br/><br/>Min length: `1`. Max length: `40`. |
| `lc-collate` | string | no | Default string sort order (LC_COLLATE) for PostgreSQL database<br/><br/>Max length: `128`. |
| `lc-ctype` | string | no | Default character classification (LC_CTYPE) for PostgreSQL database<br/><br/>Max length: `128`. |

<details>
<summary>Example</summary>

```json
{
  "database-name": "string",
  "lc-collate": "string",
  "lc-ctype": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dbaas-pg-database`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASPGDatabase) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_pg_database) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasPgDatabase(java.lang.String,com.exoscale.sdk.model.CreateDbaasPgDatabaseRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-pg-database`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-pg-database

Delete a DBaaS Postgres database

```
DELETE /dbaas-postgres/{service-name}/database/{database-name}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `database-name` | `path` | Min length: `1`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-pg-database`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASPGDatabase) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_pg_database) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasPgDatabase(java.lang.String,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-pg-database`

## <span data-label="POST" class="pill-POST"></span>create-dbaas-postgres-user

Create a DBaaS Postgres user

```
POST /dbaas-postgres/{service-name}/user
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `username` | string | **yes** | Username<br/><br/>Min length: `1`. Max length: `64`. |
| `allow-replication` | boolean | no |  |

<details>
<summary>Example</summary>

```json
{
  "allow-replication": true,
  "username": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dbaas-postgres-user`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASPostgresUser) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_postgres_user) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasPostgresUser(java.lang.String,com.exoscale.sdk.model.CreateDbaasPostgresUserRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-postgres-user`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-postgres-user

Delete a DBaaS Postgres user

```
DELETE /dbaas-postgres/{service-name}/user/{username}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `username` | `path` | Min length: `1`. Max length: `64`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-postgres-user`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASPostgresUser) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_postgres_user) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasPostgresUser(java.lang.String,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-postgres-user`

## <span data-label="GET" class="pill-GET"></span>reveal-dbaas-postgres-user-password

Reveal the secrets of a DBaaS Postgres user

```
GET /dbaas-postgres/{service-name}/user/{username}/password/reveal
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `username` | `path` | Min length: `1`. Max length: `64`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `password` | string | Postgres password |
| `username` | string | Postgres username |

<details>
<summary>Example output</summary>

```json
{
  "password": "string",
  "username": "string"
}
```
</details>


SDK reference for `reveal-dbaas-postgres-user-password`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RevealDBAASPostgresUserPassword) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reveal_dbaas_postgres_user_password) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#revealDbaasPostgresUserPassword(java.lang.String,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reveal-dbaas-postgres-user-password`

## <span data-label="PUT" class="pill-PUT"></span>reset-dbaas-postgres-user-password

Reset the credentials of a DBaaS Postgres user

```
PUT /dbaas-postgres/{service-name}/user/{username}/password/reset
```

If no password is provided one will be generated automatically.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `username` | `path` | Min length: `1`. Max length: `64`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `password` | string | no | New password<br/><br/>Min length: `8`. Max length: `256`. |

<details>
<summary>Example</summary>

```json
{
  "password": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `reset-dbaas-postgres-user-password`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ResetDBAASPostgresUserPassword) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reset_dbaas_postgres_user_password) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#resetDbaasPostgresUserPassword(java.lang.String,java.lang.String,com.exoscale.sdk.model.ResetDbaasPostgresUserPasswordRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reset-dbaas-postgres-user-password`

## <span data-label="POST" class="pill-POST"></span>create-dbaas-service-pg

Create a DBaaS PostgreSQL service

```
POST /dbaas-postgres/{name}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `plan` | string | **yes** | Subscription plan<br/><br/>Min length: `1`. Max length: `128`. |
| `admin-password` | string | no | Custom password for admin user. Defaults to random string. This must be set only when a new service is being created.<br/><br/>Min length: `8`. Max length: `256`. |
| `admin-username` | string | no | Custom username for admin user. This must be set only when a new service is being created.<br/><br/>Min length: `1`. Max length: `64`. |
| `backup-schedule` | [Backup Schedule](#backup-schedule) | no |  |
| `fork-from-service` | string | no | Service to fork from<br/><br/>Min length: `0`. Max length: `63`. |
| `integrations` | array of [Integrations](#integrations) | no | Service integrations to be enabled when creating the service. |
| `ip-filter` | array[string] | no | Allow incoming connections from CIDR address block, e.g. '10.20.0.0/16' |
| `maintenance` | [Maintenance](#maintenance) | no | Automatic maintenance settings |
| `migration` | [Migration](#migration) | no | Migrate data from existing server |
| `pg-settings` | [postgresql.conf configuration values](https://community.exoscale.com/reference/api/_schemas/json-schema-pg/index.md) | no | PostgreSQL-specific settings |
| `pgaudit-settings` | [System-wide settings for the pgaudit extension.](https://community.exoscale.com/reference/api/_schemas/json-schema-pgaudit/index.md) | no | PGAudit settings |
| `pgbouncer-settings` | [System-wide settings for pgbouncer.](https://community.exoscale.com/reference/api/_schemas/json-schema-pgbouncer/index.md) | no | PGBouncer connection pooling settings |
| `pglookout-settings` | [System-wide settings for pglookout.](https://community.exoscale.com/reference/api/_schemas/json-schema-pglookout/index.md) | no | PGLookout settings |
| `recovery-backup-time` | string | no | ISO time of a backup to recover from for services that support arbitrary times<br/><br/>Min length: `1`. |
| `shared-buffers-percentage` | integer | no | Percentage of total RAM that the database server uses for shared memory buffers. Valid range is 20-60 (float), which corresponds to 20% - 60%. This setting adjusts the shared_buffers configuration value.<br/><br/>Min: `20`. Max: `60`. |
| `synchronous-replication` | string | no | Synchronous replication type. Note that the service plan also needs to support synchronous replication.<br/><br/>Allowed values: `quorum`, `off`. |
| `termination-protection` | boolean | no | Service is protected against termination and powering off |
| `timescaledb-settings` | [System-wide settings for the timescaledb extension](https://community.exoscale.com/reference/api/_schemas/json-schema-timescaledb/index.md) | no | TimescaleDB extension configuration values |
| `variant` | string | no | Variant of the PostgreSQL service, may affect the features that are exposed by default<br/><br/>Allowed values: `timescale`, `aiven`. |
| `version` | string | no | PostgreSQL major version<br/><br/>Allowed values: `14`, `17`, `15`, `18`, `13`, `16`. |
| `work-mem` | integer | no | Sets the maximum amount of memory to be used by a query operation (such as a sort or hash table) before writing to temporary disk files, in MB. Default is 1MB + 0.075% of total RAM (up to 32MB).<br/><br/>Min: `1`. Max: `1024`. |

<details>
<summary>Example</summary>

```json
{
  "admin-password": "string",
  "admin-username": "string",
  "backup-schedule": {
    "backup-hour": 0,
    "backup-minute": 0
  },
  "fork-from-service": "string",
  "integrations": [
    {
      "dest-service": "string",
      "settings": {},
      "source-service": "string",
      "type": "read_replica"
    }
  ],
  "ip-filter": [
    "string"
  ],
  "maintenance": {
    "dow": "saturday",
    "time": "string"
  },
  "migration": {
    "dbname": "string",
    "host": "string",
    "ignore-dbs": "string",
    "method": "dump",
    "password": "string",
    "port": 0,
    "ssl": true,
    "username": "string"
  },
  "pg-settings": {
    "autovacuum": {
      "autovacuum_analyze_scale_factor": 0,
      "autovacuum_analyze_threshold": 0,
      "autovacuum_freeze_max_age": 0,
      "autovacuum_max_workers": 0,
      "autovacuum_naptime": 0,
      "autovacuum_vacuum_cost_delay": 0,
      "autovacuum_vacuum_cost_limit": 0,
      "autovacuum_vacuum_scale_factor": 0,
      "autovacuum_vacuum_threshold": 0,
      "log_autovacuum_min_duration": 0
    },
    "bg-writer": {
      "bgwriter_delay": 0,
      "bgwriter_flush_after": 0,
      "bgwriter_lru_maxpages": 0,
      "bgwriter_lru_multiplier": 0
    },
    "deadlock_timeout": 0,
    "default_toast_compression": "lz4",
    "idle_in_transaction_session_timeout": 0,
    "io_combine_limit": 0,
    "io_max_combine_limit": 0,
    "io_max_concurrency": 0,
    "io_method": "worker",
    "io_workers": 0,
    "jit": true,
    "log_error_verbosity": "TERSE",
    "log_line_prefix": "'pid=%p,user=%u,db=%d,app=%a,client=%h '",
    "log_min_duration_statement": 0,
    "log_temp_files": 0,
    "max_files_per_process": 0,
    "max_locks_per_transaction": 0,
    "max_logical_replication_workers": 0,
    "max_parallel_workers": 0,
    "max_parallel_workers_per_gather": 0,
    "max_pred_locks_per_transaction": 0,
    "max_prepared_transactions": 0,
    "max_replication_slots": 0,
    "max_stack_depth": 0,
    "max_standby_archive_delay": 0,
    "max_standby_streaming_delay": 0,
    "max_sync_workers_per_subscription": 0,
    "max_worker_processes": 0,
    "password_encryption": "md5",
    "pg_partman_bgw.interval": 0,
    "pg_partman_bgw.role": "myrolename",
    "pg_stat_monitor.pgsm_enable_query_plan": true,
    "pg_stat_monitor.pgsm_max_buckets": 0,
    "pg_stat_statements.track": "all",
    "temp_file_limit": 0,
    "timezone": "Europe/Helsinki",
    "track_activity_query_size": 0,
    "track_commit_timestamp": "off",
    "track_functions": "all",
    "track_io_timing": "off",
    "wal": {
      "max_slot_wal_keep_size": 0,
      "max_wal_senders": 0,
      "wal_sender_timeout": 0,
      "wal_writer_delay": 0
    }
  },
  "pgaudit-settings": {
    "feature_enabled": true,
    "log": [
      "all"
    ],
    "log_catalog": true,
    "log_client": true,
    "log_level": "debug1",
    "log_max_string_length": 0,
    "log_nested_statements": true,
    "log_parameter": true,
    "log_parameter_max_size": 0,
    "log_relation": true,
    "log_rows": true,
    "log_statement": true,
    "log_statement_once": true,
    "role": "string"
  },
  "pgbouncer-settings": {
    "autodb_idle_timeout": 0,
    "autodb_max_db_connections": 0,
    "autodb_pool_mode": "transaction",
    "autodb_pool_size": 0,
    "ignore_startup_parameters": [
      "extra_float_digits"
    ],
    "max_prepared_statements": 0,
    "min_pool_size": 0,
    "server_idle_timeout": 0,
    "server_lifetime": 0,
    "server_reset_query_always": true
  },
  "pglookout-settings": {
    "max_failover_replication_time_lag": 0
  },
  "plan": "string",
  "recovery-backup-time": "string",
  "shared-buffers-percentage": 0,
  "synchronous-replication": "quorum",
  "termination-protection": true,
  "timescaledb-settings": {
    "max_background_workers": 0
  },
  "variant": "timescale",
  "version": "14",
  "work-mem": 0
}
```
</details>


### Backup Schedule {#backup-schedule}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `backup-hour` | integer | no | The hour of day (in UTC) when backup for the service is started. New backup is only started if previous backup has already completed.<br/><br/>Min: `0`. Max: `23`. |
| `backup-minute` | integer | no | The minute of an hour when backup for the service is started. New backup is only started if previous backup has already completed.<br/><br/>Min: `0`. Max: `59`. |

### Integrations {#integrations}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `type` | string | **yes** | Integration type<br/><br/>Allowed values: `read_replica`. |
| `dest-service` | string | no | A destination service<br/><br/>Min length: `0`. Max length: `63`. |
| `settings` | object | no | Integration settings |
| `source-service` | string | no | A source service<br/><br/>Min length: `0`. Max length: `63`. |

### Maintenance {#maintenance}

Automatic maintenance settings

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `dow` | string | **yes** | Day of week for installing updates<br/><br/>Allowed values: `saturday`, `tuesday`, `never`, `wednesday`, `sunday`, `friday`, `monday`, `thursday`. |
| `time` | string | **yes** | Time for installing updates, UTC<br/><br/>Min length: `8`. Max length: `8`. |

### Migration {#migration}

Migrate data from existing server

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `host` | string | **yes** | Hostname or IP address of the server where to migrate data from<br/><br/>Min length: `1`. Max length: `255`. |
| `port` | integer | **yes** | Port number of the server where to migrate data from<br/><br/>Min: `1`. Max: `65535`. |
| `dbname` | string | no | Database name for bootstrapping the initial connection<br/><br/>Min length: `1`. Max length: `63`. |
| `ignore-dbs` | string | no | Comma-separated list of databases, which should be ignored during migration (supported by MySQL only at the moment)<br/><br/>Min length: `1`. Max length: `2048`. |
| `method` | string | no | The migration method to be used<br/><br/>Allowed values: `dump`, `replication`. |
| `password` | string | no | Password for authentication with the server where to migrate data from<br/><br/>Min length: `1`. Max length: `255`. |
| `ssl` | boolean | no | The server where to migrate data from is secured with SSL |
| `username` | string | no | User name for authentication with the server where to migrate data from<br/><br/>Min length: `1`. Max length: `255`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dbaas-service-pg`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASServicePG) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_service_pg) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasServicePg(java.lang.String,com.exoscale.sdk.model.CreateDbaasServicePgRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-service-pg`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-service-pg

Get a DBaaS PostgreSQL service

```
GET /dbaas-postgres/{name}
```

Get a DBaaS PostgreSQL service

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `backup-schedule` | [Backup Schedule](https://community.exoscale.com/reference/api/_schemas/dbaas-service-pg/index.md#backup-schedule) | Backup schedule |
| `backups` | array of [List of backups for the service](https://community.exoscale.com/reference/api/_schemas/dbaas-service-backup/index.md) | List of backups for the service |
| `components` | array of [Components](https://community.exoscale.com/reference/api/_schemas/dbaas-service-pg/index.md#components) | Service component information objects |
| `connection-info` | [Connection Info](https://community.exoscale.com/reference/api/_schemas/dbaas-service-pg/index.md#connection-info) | PG connection information properties |
| `connection-pools` | array of [Connection Pools](https://community.exoscale.com/reference/api/_schemas/dbaas-service-pg/index.md#connection-pools) | PostgreSQL PGBouncer connection pools |
| `created-at` | string | Service creation timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `databases` | array of [DBaaS Database Name](https://community.exoscale.com/reference/api/_schemas/dbaas-database-name/index.md) | List of PostgreSQL databases |
| `disk-size` | integer | Disk space for data storage, in bytes<br/><br/>Min: `0`. |
| `integrations` | array of [DBaaS Integration](https://community.exoscale.com/reference/api/_schemas/dbaas-integration/index.md) | Service integrations |
| `ip-filter` | array[string] | Allowed CIDR address blocks for incoming connections |
| `maintenance` | [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-service-maintenance/index.md) | Automatic maintenance settings |
| `max-connections` | integer | Maximum number of connections allowed to an instance<br/><br/>Min: `0`. |
| `name` | string | Service name<br/><br/>Min length: `0`. Max length: `63`. |
| `node-count` | integer | Number of service nodes in the active plan<br/><br/>Min: `0`. |
| `node-cpu-count` | integer | Number of CPUs for each node<br/><br/>Min: `0`. |
| `node-memory` | integer | Memory of each node, in bytes<br/><br/>Min: `0`. |
| `node-states` | array of [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-node-state/index.md) | State of individual service nodes |
| `notifications` | array of [Service notifications](https://community.exoscale.com/reference/api/_schemas/dbaas-service-notification/index.md) | Service notifications |
| `pg-settings` | [postgresql.conf configuration values](https://community.exoscale.com/reference/api/_schemas/json-schema-pg/index.md) | PostgreSQL-specific settings |
| `pgaudit-settings` | [System-wide settings for the pgaudit extension.](https://community.exoscale.com/reference/api/_schemas/json-schema-pgaudit/index.md) | PGAudit settings |
| `pgbouncer-settings` | [System-wide settings for pgbouncer.](https://community.exoscale.com/reference/api/_schemas/json-schema-pgbouncer/index.md) | PGBouncer connection pooling settings |
| `pglookout-settings` | [System-wide settings for pglookout.](https://community.exoscale.com/reference/api/_schemas/json-schema-pglookout/index.md) | PGLookout settings |
| `plan` | string | Subscription plan |
| `prometheus-uri` | [Prometheus URI](https://community.exoscale.com/reference/api/_schemas/dbaas-service-pg/index.md#prometheus-uri) | Prometheus integration URI |
| `shared-buffers-percentage` | integer | Percentage of total RAM that the database server uses for shared memory buffers. Valid range is 20-60 (float), which corresponds to 20% - 60%. This setting adjusts the shared_buffers configuration value.<br/><br/>Min: `20`. Max: `60`. |
| `state` | string | State of the service<br/><br/>Allowed values: `running`, `rebuilding`, `rebalancing`, `poweroff`. |
| `synchronous-replication` | string | Synchronous replication type. Note that the service plan also needs to support synchronous replication.<br/><br/>Allowed values: `quorum`, `off`. |
| `termination-protection` | boolean | Service is protected against termination and powering off |
| `timescaledb-settings` | [System-wide settings for the timescaledb extension](https://community.exoscale.com/reference/api/_schemas/json-schema-timescaledb/index.md) | TimescaleDB extension configuration values |
| `type` | string | Service type code<br/><br/>Min length: `0`. Max length: `64`. |
| `updated-at` | string | Service last update timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `uri` | string | URI for connecting to the service (may be absent) |
| `uri-params` | object | service_uri parameterized into key-value pairs |
| `users` | array of [Users](https://community.exoscale.com/reference/api/_schemas/dbaas-service-pg/index.md#users) | List of service users |
| `version` | string | PostgreSQL version |
| `work-mem` | integer | Sets the maximum amount of memory to be used by a query operation (such as a sort or hash table) before writing to temporary disk files, in MB. Default is 1MB + 0.075% of total RAM (up to 32MB).<br/><br/>Min: `1`. Max: `1024`. |
| `zone` | string | The zone where the service is running |

<details>
<summary>Example output</summary>

```json
{
  "backup-schedule": {
    "backup-hour": 0,
    "backup-minute": 0
  },
  "backups": [
    {
      "backup-name": "string",
      "backup-time": "2024-01-01T12:00:00Z",
      "data-size": 0,
      "tiered-storage-data-size": 0
    }
  ],
  "components": [
    {
      "component": "string",
      "host": "string",
      "port": 0,
      "route": "dynamic",
      "usage": "primary"
    }
  ],
  "connection-info": {
    "params": [
      {}
    ],
    "standby": [
      "string"
    ],
    "syncing": [
      "string"
    ],
    "uri": [
      "string"
    ]
  },
  "connection-pools": [
    {
      "connection-uri": "string",
      "database": "string",
      "mode": "transaction",
      "name": "string",
      "size": 0,
      "username": "string"
    }
  ],
  "created-at": "2024-01-01T12:00:00Z",
  "databases": [
    "string"
  ],
  "disk-size": 0,
  "integrations": [
    {
      "description": "string",
      "dest": "string",
      "id": "string",
      "is-active": true,
      "is-enabled": true,
      "settings": {},
      "source": "string",
      "status": "string",
      "type": "string"
    }
  ],
  "ip-filter": [
    "string"
  ],
  "maintenance": {
    "dow": "saturday",
    "time": "string",
    "updates": [
      {
        "deadline": "2024-01-01T12:00:00Z",
        "description": "string",
        "start-after": "2024-01-01T12:00:00Z",
        "start-at": "2024-01-01T12:00:00Z"
      }
    ]
  },
  "max-connections": 0,
  "name": "string",
  "node-count": 0,
  "node-cpu-count": 0,
  "node-memory": 0,
  "node-states": [
    {
      "name": "string",
      "progress-updates": [
        {
          "completed": true,
          "current": 0,
          "max": 0,
          "min": 0,
          "phase": "stream",
          "unit": "string"
        }
      ],
      "role": "standby",
      "state": "leaving"
    }
  ],
  "notifications": [
    {
      "level": "warning",
      "message": "string",
      "metadata": {},
      "type": "service_powered_off_removal"
    }
  ],
  "pg-settings": {
    "autovacuum": {
      "autovacuum_analyze_scale_factor": 0,
      "autovacuum_analyze_threshold": 0,
      "autovacuum_freeze_max_age": 0,
      "autovacuum_max_workers": 0,
      "autovacuum_naptime": 0,
      "autovacuum_vacuum_cost_delay": 0,
      "autovacuum_vacuum_cost_limit": 0,
      "autovacuum_vacuum_scale_factor": 0,
      "autovacuum_vacuum_threshold": 0,
      "log_autovacuum_min_duration": 0
    },
    "bg-writer": {
      "bgwriter_delay": 0,
      "bgwriter_flush_after": 0,
      "bgwriter_lru_maxpages": 0,
      "bgwriter_lru_multiplier": 0
    },
    "deadlock_timeout": 0,
    "default_toast_compression": "lz4",
    "idle_in_transaction_session_timeout": 0,
    "io_combine_limit": 0,
    "io_max_combine_limit": 0,
    "io_max_concurrency": 0,
    "io_method": "worker",
    "io_workers": 0,
    "jit": true,
    "log_error_verbosity": "TERSE",
    "log_line_prefix": "'pid=%p,user=%u,db=%d,app=%a,client=%h '",
    "log_min_duration_statement": 0,
    "log_temp_files": 0,
    "max_files_per_process": 0,
    "max_locks_per_transaction": 0,
    "max_logical_replication_workers": 0,
    "max_parallel_workers": 0,
    "max_parallel_workers_per_gather": 0,
    "max_pred_locks_per_transaction": 0,
    "max_prepared_transactions": 0,
    "max_replication_slots": 0,
    "max_stack_depth": 0,
    "max_standby_archive_delay": 0,
    "max_standby_streaming_delay": 0,
    "max_sync_workers_per_subscription": 0,
    "max_worker_processes": 0,
    "password_encryption": "md5",
    "pg_partman_bgw.interval": 0,
    "pg_partman_bgw.role": "myrolename",
    "pg_stat_monitor.pgsm_enable_query_plan": true,
    "pg_stat_monitor.pgsm_max_buckets": 0,
    "pg_stat_statements.track": "all",
    "temp_file_limit": 0,
    "timezone": "Europe/Helsinki",
    "track_activity_query_size": 0,
    "track_commit_timestamp": "off",
    "track_functions": "all",
    "track_io_timing": "off",
    "wal": {
      "max_slot_wal_keep_size": 0,
      "max_wal_senders": 0,
      "wal_sender_timeout": 0,
      "wal_writer_delay": 0
    }
  },
  "pgaudit-settings": {
    "feature_enabled": true,
    "log": [
      "all"
    ],
    "log_catalog": true,
    "log_client": true,
    "log_level": "debug1",
    "log_max_string_length": 0,
    "log_nested_statements": true,
    "log_parameter": true,
    "log_parameter_max_size": 0,
    "log_relation": true,
    "log_rows": true,
    "log_statement": true,
    "log_statement_once": true,
    "role": "string"
  },
  "pgbouncer-settings": {
    "autodb_idle_timeout": 0,
    "autodb_max_db_connections": 0,
    "autodb_pool_mode": "transaction",
    "autodb_pool_size": 0,
    "ignore_startup_parameters": [
      "extra_float_digits"
    ],
    "max_prepared_statements": 0,
    "min_pool_size": 0,
    "server_idle_timeout": 0,
    "server_lifetime": 0,
    "server_reset_query_always": true
  },
  "pglookout-settings": {
    "max_failover_replication_time_lag": 0
  },
  "plan": "string",
  "prometheus-uri": {
    "host": "string",
    "port": 0
  },
  "shared-buffers-percentage": 0,
  "state": "running",
  "synchronous-replication": "quorum",
  "termination-protection": true,
  "timescaledb-settings": {
    "max_background_workers": 0
  },
  "type": "string",
  "updated-at": "2024-01-01T12:00:00Z",
  "uri": "string",
  "uri-params": {},
  "users": [
    {
      "allow-replication": true,
      "password": "string",
      "type": "string",
      "username": "string"
    }
  ],
  "version": "string",
  "work-mem": 0,
  "zone": "string"
}
```
</details>


SDK reference for `get-dbaas-service-pg`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASServicePG) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_service_pg) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasServicePg(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-service-pg`

## <span data-label="PUT" class="pill-PUT"></span>update-dbaas-service-pg

Update a DBaaS PostgreSQL service

```
PUT /dbaas-postgres/{name}
```

Update a DBaaS PostgreSQL service

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `backup-schedule` | [Backup Schedule](#backup-schedule) | no |  |
| `ip-filter` | array[string] | no | Allow incoming connections from CIDR address block, e.g. '10.20.0.0/16' |
| `maintenance` | [Maintenance](#maintenance) | no | Automatic maintenance settings |
| `migration` | [Migration](#migration) | no | Migrate data from existing server |
| `pg-settings` | [postgresql.conf configuration values](https://community.exoscale.com/reference/api/_schemas/json-schema-pg/index.md) | no | PostgreSQL-specific settings |
| `pgaudit-settings` | [System-wide settings for the pgaudit extension.](https://community.exoscale.com/reference/api/_schemas/json-schema-pgaudit/index.md) | no | PGAudit settings |
| `pgbouncer-settings` | [System-wide settings for pgbouncer.](https://community.exoscale.com/reference/api/_schemas/json-schema-pgbouncer/index.md) | no | PGBouncer connection pooling settings |
| `pglookout-settings` | [System-wide settings for pglookout.](https://community.exoscale.com/reference/api/_schemas/json-schema-pglookout/index.md) | no | PGLookout settings |
| `plan` | string | no | Subscription plan<br/><br/>Min length: `1`. Max length: `128`. |
| `shared-buffers-percentage` | integer | no | Percentage of total RAM that the database server uses for shared memory buffers. Valid range is 20-60 (float), which corresponds to 20% - 60%. This setting adjusts the shared_buffers configuration value.<br/><br/>Min: `20`. Max: `60`. |
| `synchronous-replication` | string | no | Synchronous replication type. Note that the service plan also needs to support synchronous replication.<br/><br/>Allowed values: `quorum`, `off`. |
| `termination-protection` | boolean | no | Service is protected against termination and powering off |
| `timescaledb-settings` | [System-wide settings for the timescaledb extension](https://community.exoscale.com/reference/api/_schemas/json-schema-timescaledb/index.md) | no | TimescaleDB extension configuration values |
| `variant` | string | no | Variant of the PostgreSQL service, may affect the features that are exposed by default<br/><br/>Allowed values: `timescale`, `aiven`. |
| `version` | string | no | Version |
| `work-mem` | integer | no | Sets the maximum amount of memory to be used by a query operation (such as a sort or hash table) before writing to temporary disk files, in MB. Default is 1MB + 0.075% of total RAM (up to 32MB).<br/><br/>Min: `1`. Max: `1024`. |

<details>
<summary>Example</summary>

```json
{
  "backup-schedule": {
    "backup-hour": 0,
    "backup-minute": 0
  },
  "ip-filter": [
    "string"
  ],
  "maintenance": {
    "dow": "saturday",
    "time": "string"
  },
  "migration": {
    "dbname": "string",
    "host": "string",
    "ignore-dbs": "string",
    "method": "dump",
    "password": "string",
    "port": 0,
    "ssl": true,
    "username": "string"
  },
  "pg-settings": {
    "autovacuum": {
      "autovacuum_analyze_scale_factor": 0,
      "autovacuum_analyze_threshold": 0,
      "autovacuum_freeze_max_age": 0,
      "autovacuum_max_workers": 0,
      "autovacuum_naptime": 0,
      "autovacuum_vacuum_cost_delay": 0,
      "autovacuum_vacuum_cost_limit": 0,
      "autovacuum_vacuum_scale_factor": 0,
      "autovacuum_vacuum_threshold": 0,
      "log_autovacuum_min_duration": 0
    },
    "bg-writer": {
      "bgwriter_delay": 0,
      "bgwriter_flush_after": 0,
      "bgwriter_lru_maxpages": 0,
      "bgwriter_lru_multiplier": 0
    },
    "deadlock_timeout": 0,
    "default_toast_compression": "lz4",
    "idle_in_transaction_session_timeout": 0,
    "io_combine_limit": 0,
    "io_max_combine_limit": 0,
    "io_max_concurrency": 0,
    "io_method": "worker",
    "io_workers": 0,
    "jit": true,
    "log_error_verbosity": "TERSE",
    "log_line_prefix": "'pid=%p,user=%u,db=%d,app=%a,client=%h '",
    "log_min_duration_statement": 0,
    "log_temp_files": 0,
    "max_files_per_process": 0,
    "max_locks_per_transaction": 0,
    "max_logical_replication_workers": 0,
    "max_parallel_workers": 0,
    "max_parallel_workers_per_gather": 0,
    "max_pred_locks_per_transaction": 0,
    "max_prepared_transactions": 0,
    "max_replication_slots": 0,
    "max_stack_depth": 0,
    "max_standby_archive_delay": 0,
    "max_standby_streaming_delay": 0,
    "max_sync_workers_per_subscription": 0,
    "max_worker_processes": 0,
    "password_encryption": "md5",
    "pg_partman_bgw.interval": 0,
    "pg_partman_bgw.role": "myrolename",
    "pg_stat_monitor.pgsm_enable_query_plan": true,
    "pg_stat_monitor.pgsm_max_buckets": 0,
    "pg_stat_statements.track": "all",
    "temp_file_limit": 0,
    "timezone": "Europe/Helsinki",
    "track_activity_query_size": 0,
    "track_commit_timestamp": "off",
    "track_functions": "all",
    "track_io_timing": "off",
    "wal": {
      "max_slot_wal_keep_size": 0,
      "max_wal_senders": 0,
      "wal_sender_timeout": 0,
      "wal_writer_delay": 0
    }
  },
  "pgaudit-settings": {
    "feature_enabled": true,
    "log": [
      "all"
    ],
    "log_catalog": true,
    "log_client": true,
    "log_level": "debug1",
    "log_max_string_length": 0,
    "log_nested_statements": true,
    "log_parameter": true,
    "log_parameter_max_size": 0,
    "log_relation": true,
    "log_rows": true,
    "log_statement": true,
    "log_statement_once": true,
    "role": "string"
  },
  "pgbouncer-settings": {
    "autodb_idle_timeout": 0,
    "autodb_max_db_connections": 0,
    "autodb_pool_mode": "transaction",
    "autodb_pool_size": 0,
    "ignore_startup_parameters": [
      "extra_float_digits"
    ],
    "max_prepared_statements": 0,
    "min_pool_size": 0,
    "server_idle_timeout": 0,
    "server_lifetime": 0,
    "server_reset_query_always": true
  },
  "pglookout-settings": {
    "max_failover_replication_time_lag": 0
  },
  "plan": "string",
  "shared-buffers-percentage": 0,
  "synchronous-replication": "quorum",
  "termination-protection": true,
  "timescaledb-settings": {
    "max_background_workers": 0
  },
  "variant": "timescale",
  "version": "string",
  "work-mem": 0
}
```
</details>


### Backup Schedule {#backup-schedule}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `backup-hour` | integer | no | The hour of day (in UTC) when backup for the service is started. New backup is only started if previous backup has already completed.<br/><br/>Min: `0`. Max: `23`. |
| `backup-minute` | integer | no | The minute of an hour when backup for the service is started. New backup is only started if previous backup has already completed.<br/><br/>Min: `0`. Max: `59`. |

### Maintenance {#maintenance}

Automatic maintenance settings

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `dow` | string | **yes** | Day of week for installing updates<br/><br/>Allowed values: `saturday`, `tuesday`, `never`, `wednesday`, `sunday`, `friday`, `monday`, `thursday`. |
| `time` | string | **yes** | Time for installing updates, UTC<br/><br/>Min length: `8`. Max length: `8`. |

### Migration {#migration}

Migrate data from existing server

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `host` | string | **yes** | Hostname or IP address of the server where to migrate data from<br/><br/>Min length: `1`. Max length: `255`. |
| `port` | integer | **yes** | Port number of the server where to migrate data from<br/><br/>Min: `1`. Max: `65535`. |
| `dbname` | string | no | Database name for bootstrapping the initial connection<br/><br/>Min length: `1`. Max length: `63`. |
| `ignore-dbs` | string | no | Comma-separated list of databases, which should be ignored during migration (supported by MySQL only at the moment)<br/><br/>Min length: `1`. Max length: `2048`. |
| `method` | string | no | The migration method to be used<br/><br/>Allowed values: `dump`, `replication`. |
| `password` | string | no | Password for authentication with the server where to migrate data from<br/><br/>Min length: `1`. Max length: `255`. |
| `ssl` | boolean | no | The server where to migrate data from is secured with SSL |
| `username` | string | no | User name for authentication with the server where to migrate data from<br/><br/>Min length: `1`. Max length: `255`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-dbaas-service-pg`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateDBAASServicePG) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_dbaas_service_pg) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateDbaasServicePg(java.lang.String,com.exoscale.sdk.model.UpdateDbaasServicePgRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-dbaas-service-pg`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-service-pg

Delete a Postgres service

```
DELETE /dbaas-postgres/{name}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-service-pg`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASServicePG) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_service_pg) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasServicePg(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-service-pg`


---

## Other Operations

## <span data-label="PUT" class="pill-PUT"></span>start-dbaas-pg-maintenance

Initiate PostgreSQL maintenance update

```
PUT /dbaas-postgres/{name}/maintenance/start
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `start-dbaas-pg-maintenance`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.StartDBAASPGMaintenance) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.start_dbaas_pg_maintenance) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#startDbaasPgMaintenance(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api start-dbaas-pg-maintenance`

## <span data-label="POST" class="pill-POST"></span>stop-dbaas-pg-migration

Stop a DBaaS PostgreSQL migration

```
POST /dbaas-postgres/{name}/migration/stop
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `stop-dbaas-pg-migration`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.StopDBAASPGMigration) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.stop_dbaas_pg_migration) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#stopDbaasPgMigration(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api stop-dbaas-pg-migration`

## <span data-label="POST" class="pill-POST"></span>create-dbaas-pg-upgrade-check

```
POST /dbaas-postgres/{service}/upgrade-check
```

Check whether you can upgrade Postgres service to a newer version

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `target-version` | string | **yes** | Target version for upgrade<br/><br/>Allowed values: `14`, `17`, `15`, `18`, `13`, `16`. |

<details>
<summary>Example</summary>

```json
{
  "target-version": "14"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `create-time` | string | ISO 8601 date-time. |
| `id` | string | Must be a valid UUID. |
| `result` | string |  |
| `result-codes` | array of [Result Codes](https://community.exoscale.com/reference/api/_schemas/dbaas-task/index.md#result-codes) |  |
| `success` | boolean |  |
| `task-type` | string |  |

<details>
<summary>Example output</summary>

```json
{
  "create-time": "2024-01-01T12:00:00Z",
  "id": "string",
  "result": "string",
  "result-codes": [
    {
      "code": "string",
      "dbname": "string"
    }
  ],
  "success": true,
  "task-type": "string"
}
```
</details>


SDK reference for `create-dbaas-pg-upgrade-check`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASPGUpgradeCheck) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_pg_upgrade_check) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasPgUpgradeCheck(java.lang.String,com.exoscale.sdk.model.CreateDbaasPgUpgradeCheckRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-pg-upgrade-check`

## <span data-label="PUT" class="pill-PUT"></span>update-dbaas-postgres-allow-replication

Update access control for one service user

```
PUT /dbaas-postgres/{service-name}/user/{username}/allow-replication
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `username` | `path` | Min length: `1`. Max length: `64`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `allow-replication` | boolean | no |  |

<details>
<summary>Example</summary>

```json
{
  "allow-replication": true
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `users` | array of [Users](https://community.exoscale.com/reference/api/_schemas/dbaas-postgres-users/index.md#users) |  |

<details>
<summary>Example output</summary>

```json
{
  "users": [
    {
      "allow-replication": true,
      "username": "string"
    }
  ]
}
```
</details>


SDK reference for `update-dbaas-postgres-allow-replication`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateDBAASPostgresAllowReplication) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_dbaas_postgres_allow_replication) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateDbaasPostgresAllowReplication(java.lang.String,java.lang.String,com.exoscale.sdk.model.UpdateDbaasPostgresAllowReplicationRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-dbaas-postgres-allow-replication`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-settings-pg

Get DBaaS PostgreSQL settings

```
GET /dbaas-settings-pg
```

Get DBaaS PostgreSQL settings

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `settings` | [Settings](#settings) |  |

<details>
<summary>Example output</summary>

```json
{
  "settings": {
    "pg": {
      "additionalProperties": true,
      "properties": {},
      "title": "string",
      "type": "string"
    },
    "pgbouncer": {
      "additionalProperties": true,
      "properties": {},
      "title": "string",
      "type": "string"
    },
    "pglookout": {
      "additionalProperties": true,
      "properties": {},
      "title": "string",
      "type": "string"
    },
    "timescaledb": {
      "additionalProperties": true,
      "properties": {},
      "title": "string",
      "type": "string"
    }
  }
}
```
</details>


### Settings {#settings}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `pg` | [PG](#pg) | no | postgresql.conf configuration values |
| `pgbouncer` | [Pgbouncer](#pgbouncer) | no | PGBouncer connection pooling settings |
| `pglookout` | [Pglookout](#pglookout) | no | PGLookout settings |
| `timescaledb` | [Timescaledb](#timescaledb) | no | TimescaleDB extension configuration values |

### PG {#pg}

postgresql.conf configuration values

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `additionalProperties` | boolean | no |  |
| `properties` | object | no |  |
| `title` | string | no |  |
| `type` | string | no |  |

### Pglookout {#pglookout}

PGLookout settings

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `additionalProperties` | boolean | no |  |
| `properties` | object | no |  |
| `title` | string | no |  |
| `type` | string | no |  |

### Pgbouncer {#pgbouncer}

PGBouncer connection pooling settings

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `additionalProperties` | boolean | no |  |
| `properties` | object | no |  |
| `title` | string | no |  |
| `type` | string | no |  |

### Timescaledb {#timescaledb}

TimescaleDB extension configuration values

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `additionalProperties` | boolean | no |  |
| `properties` | object | no |  |
| `title` | string | no |  |
| `type` | string | no |  |

SDK reference for `get-dbaas-settings-pg`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASSettingsPG) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_settings_pg) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasSettingsPg())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-settings-pg`

---

url: https://community.exoscale.com/reference/api/dbaas/dbaas-mysql/

---

# DBaaS Mysql

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

MySQL, the popular open-source, object-relational database.

[Read more](https://community.exoscale.com/product/dbaas/service-specific/mysql/index.md)

## <span data-label="POST" class="pill-POST"></span>create-dbaas-mysql-database

Create a DBaaS MySQL database

```
POST /dbaas-mysql/{service-name}/database
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `database-name` | string | **yes** | Service database name<br/><br/>Min length: `1`. Max length: `40`. |

<details>
<summary>Example</summary>

```json
{
  "database-name": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dbaas-mysql-database`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASMysqlDatabase) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_mysql_database) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasMysqlDatabase(java.lang.String,com.exoscale.sdk.model.CreateDbaasMysqlDatabaseRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-mysql-database`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-mysql-database

Delete a DBaaS MySQL database

```
DELETE /dbaas-mysql/{service-name}/database/{database-name}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `database-name` | `path` | Min length: `1`. Max length: `64`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-mysql-database`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASMysqlDatabase) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_mysql_database) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasMysqlDatabase(java.lang.String,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-mysql-database`

## <span data-label="POST" class="pill-POST"></span>create-dbaas-mysql-user

Create a DBaaS MySQL user

```
POST /dbaas-mysql/{service-name}/user
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `username` | string | **yes** | Username<br/><br/>Min length: `1`. Max length: `64`. |
| `authentication` | string | no | Authentication option<br/><br/>Allowed values: `caching_sha2_password`, `mysql_native_password`. |

<details>
<summary>Example</summary>

```json
{
  "authentication": "caching_sha2_password",
  "username": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dbaas-mysql-user`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASMysqlUser) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_mysql_user) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasMysqlUser(java.lang.String,com.exoscale.sdk.model.CreateDbaasMysqlUserRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-mysql-user`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-mysql-user

Delete a DBaaS MySQL user

```
DELETE /dbaas-mysql/{service-name}/user/{username}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `username` | `path` | Min length: `1`. Max length: `64`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-mysql-user`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASMysqlUser) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_mysql_user) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasMysqlUser(java.lang.String,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-mysql-user`

## <span data-label="GET" class="pill-GET"></span>reveal-dbaas-mysql-user-password

Reveal the secrets of a DBaaS MySQL user

```
GET /dbaas-mysql/{service-name}/user/{username}/password/reveal
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `username` | `path` | Min length: `1`. Max length: `64`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `password` | string | MySQL password |
| `username` | string | MySQL username |

<details>
<summary>Example output</summary>

```json
{
  "password": "string",
  "username": "string"
}
```
</details>


SDK reference for `reveal-dbaas-mysql-user-password`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RevealDBAASMysqlUserPassword) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reveal_dbaas_mysql_user_password) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#revealDbaasMysqlUserPassword(java.lang.String,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reveal-dbaas-mysql-user-password`

## <span data-label="PUT" class="pill-PUT"></span>reset-dbaas-mysql-user-password

Reset the credentials of a DBaaS mysql user

```
PUT /dbaas-mysql/{service-name}/user/{username}/password/reset
```

If no password is provided one will be generated automatically.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `username` | `path` | Min length: `1`. Max length: `64`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `authentication` | string | no | Authentication method<br/><br/>Allowed values: `caching_sha2_password`, `mysql_native_password`. |
| `password` | string | no | New password<br/><br/>Min length: `8`. Max length: `256`. |

<details>
<summary>Example</summary>

```json
{
  "authentication": "caching_sha2_password",
  "password": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `reset-dbaas-mysql-user-password`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ResetDBAASMysqlUserPassword) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reset_dbaas_mysql_user_password) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#resetDbaasMysqlUserPassword(java.lang.String,java.lang.String,com.exoscale.sdk.model.ResetDbaasMysqlUserPasswordRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reset-dbaas-mysql-user-password`

## <span data-label="POST" class="pill-POST"></span>create-dbaas-service-mysql

Create a DBaaS MySQL service

```
POST /dbaas-mysql/{name}
```

Create a DBaaS MySQL service

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `plan` | string | **yes** | Subscription plan<br/><br/>Min length: `1`. Max length: `128`. |
| `admin-password` | string | no | Custom password for admin user. Defaults to random string. This must be set only when a new service is being created.<br/><br/>Min length: `8`. Max length: `256`. |
| `admin-username` | string | no | Custom username for admin user. This must be set only when a new service is being created.<br/><br/>Min length: `1`. Max length: `64`. |
| `backup-schedule` | [Backup Schedule](#backup-schedule) | no |  |
| `binlog-retention-period` | integer | no | The minimum amount of time in seconds to keep binlog entries before deletion. This may be extended for services that require binlog entries for longer than the default for example if using the MySQL Debezium Kafka connector.<br/><br/>Min: `600`. Max: `86400`. |
| `fork-from-service` | string | no | Service to fork from<br/><br/>Min length: `0`. Max length: `63`. |
| `integrations` | array of [Integrations](#integrations) | no | Service integrations to be enabled when creating the service. |
| `ip-filter` | array[string] | no | Allow incoming connections from CIDR address block, e.g. '10.20.0.0/16' |
| `maintenance` | [Maintenance](#maintenance) | no | Automatic maintenance settings |
| `migration` | [Migration](#migration) | no | Migrate data from existing server |
| `mysql-settings` | [mysql.conf configuration values](https://community.exoscale.com/reference/api/_schemas/json-schema-mysql/index.md) | no | MySQL-specific settings |
| `recovery-backup-time` | string | no | ISO time of a backup to recover from for services that support arbitrary times<br/><br/>Min length: `1`. |
| `termination-protection` | boolean | no | Service is protected against termination and powering off |
| `version` | string | no | MySQL major version<br/><br/>Min length: `1`. |

<details>
<summary>Example</summary>

```json
{
  "admin-password": "string",
  "admin-username": "string",
  "backup-schedule": {
    "backup-hour": 0,
    "backup-minute": 0
  },
  "binlog-retention-period": 0,
  "fork-from-service": "string",
  "integrations": [
    {
      "dest-service": "string",
      "settings": {},
      "source-service": "string",
      "type": "read_replica"
    }
  ],
  "ip-filter": [
    "string"
  ],
  "maintenance": {
    "dow": "saturday",
    "time": "string"
  },
  "migration": {
    "dbname": "string",
    "host": "string",
    "ignore-dbs": "string",
    "method": "dump",
    "password": "string",
    "port": 0,
    "ssl": true,
    "username": "string"
  },
  "mysql-settings": {
    "connect_timeout": 0,
    "default_time_zone": "+03:00",
    "group_concat_max_len": 0,
    "information_schema_stats_expiry": 0,
    "innodb_change_buffer_max_size": 0,
    "innodb_flush_neighbors": 0,
    "innodb_ft_min_token_size": 0,
    "innodb_ft_server_stopword_table": "db_name/table_name",
    "innodb_lock_wait_timeout": 0,
    "innodb_log_buffer_size": 0,
    "innodb_online_alter_log_max_size": 0,
    "innodb_print_all_deadlocks": true,
    "innodb_read_io_threads": 0,
    "innodb_rollback_on_timeout": true,
    "innodb_thread_concurrency": 0,
    "innodb_write_io_threads": 0,
    "interactive_timeout": 0,
    "internal_tmp_mem_storage_engine": "TempTable",
    "log_output": "INSIGHTS",
    "long_query_time": 0,
    "max_allowed_packet": 0,
    "max_heap_table_size": 0,
    "net_buffer_length": 0,
    "net_read_timeout": 0,
    "net_write_timeout": 0,
    "slow_query_log": true,
    "sort_buffer_size": 0,
    "sql_mode": "ANSI,TRADITIONAL",
    "sql_require_primary_key": true,
    "tmp_table_size": 0,
    "wait_timeout": 0
  },
  "plan": "string",
  "recovery-backup-time": "string",
  "termination-protection": true,
  "version": "string"
}
```
</details>


### Backup Schedule {#backup-schedule}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `backup-hour` | integer | no | The hour of day (in UTC) when backup for the service is started. New backup is only started if previous backup has already completed.<br/><br/>Min: `0`. Max: `23`. |
| `backup-minute` | integer | no | The minute of an hour when backup for the service is started. New backup is only started if previous backup has already completed.<br/><br/>Min: `0`. Max: `59`. |

### Integrations {#integrations}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `type` | string | **yes** | Integration type<br/><br/>Allowed values: `read_replica`. |
| `dest-service` | string | no | A destination service<br/><br/>Min length: `0`. Max length: `63`. |
| `settings` | object | no | Integration settings |
| `source-service` | string | no | A source service<br/><br/>Min length: `0`. Max length: `63`. |

### Maintenance {#maintenance}

Automatic maintenance settings

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `dow` | string | **yes** | Day of week for installing updates<br/><br/>Allowed values: `saturday`, `tuesday`, `never`, `wednesday`, `sunday`, `friday`, `monday`, `thursday`. |
| `time` | string | **yes** | Time for installing updates, UTC<br/><br/>Min length: `8`. Max length: `8`. |

### Migration {#migration}

Migrate data from existing server

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `host` | string | **yes** | Hostname or IP address of the server where to migrate data from<br/><br/>Min length: `1`. Max length: `255`. |
| `port` | integer | **yes** | Port number of the server where to migrate data from<br/><br/>Min: `1`. Max: `65535`. |
| `dbname` | string | no | Database name for bootstrapping the initial connection<br/><br/>Min length: `1`. Max length: `63`. |
| `ignore-dbs` | string | no | Comma-separated list of databases, which should be ignored during migration (supported by MySQL only at the moment)<br/><br/>Min length: `1`. Max length: `2048`. |
| `method` | string | no | The migration method to be used<br/><br/>Allowed values: `dump`, `replication`. |
| `password` | string | no | Password for authentication with the server where to migrate data from<br/><br/>Min length: `1`. Max length: `255`. |
| `ssl` | boolean | no | The server where to migrate data from is secured with SSL |
| `username` | string | no | User name for authentication with the server where to migrate data from<br/><br/>Min length: `1`. Max length: `255`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dbaas-service-mysql`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASServiceMysql) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_service_mysql) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasServiceMysql(java.lang.String,com.exoscale.sdk.model.CreateDbaasServiceMysqlRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-service-mysql`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-service-mysql

Get a DBaaS MySQL service

```
GET /dbaas-mysql/{name}
```

Get a DBaaS MySQL service

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `backup-schedule` | [Backup Schedule](https://community.exoscale.com/reference/api/_schemas/dbaas-service-mysql/index.md#backup-schedule) | Backup schedule |
| `backups` | array of [List of backups for the service](https://community.exoscale.com/reference/api/_schemas/dbaas-service-backup/index.md) | List of backups for the service |
| `binlog-retention-period` | integer | The minimum amount of time in seconds to keep binlog entries before deletion. This may be extended for services that require binlog entries for longer than the default for example if using the MySQL Debezium Kafka connector.<br/><br/>Min: `0`. |
| `components` | array of [Components](https://community.exoscale.com/reference/api/_schemas/dbaas-service-mysql/index.md#components) | Service component information objects |
| `connection-info` | [Connection Info](https://community.exoscale.com/reference/api/_schemas/dbaas-service-mysql/index.md#connection-info) | MySQL connection information properties |
| `created-at` | string | Service creation timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `databases` | array of [DBaaS Mysql Database Name](https://community.exoscale.com/reference/api/_schemas/dbaas-mysql-database-name/index.md) | List of MySQL databases |
| `disk-size` | integer | Disk space for data storage, in bytes<br/><br/>Min: `0`. |
| `integrations` | array of [DBaaS Integration](https://community.exoscale.com/reference/api/_schemas/dbaas-integration/index.md) | Service integrations |
| `ip-filter` | array[string] | Allowed CIDR address blocks for incoming connections |
| `maintenance` | [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-service-maintenance/index.md) | Automatic maintenance settings |
| `mysql-settings` | [mysql.conf configuration values](https://community.exoscale.com/reference/api/_schemas/json-schema-mysql/index.md) | MySQL-specific settings |
| `name` | string | Service name<br/><br/>Min length: `0`. Max length: `63`. |
| `node-count` | integer | Number of service nodes in the active plan<br/><br/>Min: `0`. |
| `node-cpu-count` | integer | Number of CPUs for each node<br/><br/>Min: `0`. |
| `node-memory` | integer | Memory of each node, in bytes<br/><br/>Min: `0`. |
| `node-states` | array of [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-node-state/index.md) | State of individual service nodes |
| `notifications` | array of [Service notifications](https://community.exoscale.com/reference/api/_schemas/dbaas-service-notification/index.md) | Service notifications |
| `plan` | string | Subscription plan |
| `prometheus-uri` | [Prometheus URI](https://community.exoscale.com/reference/api/_schemas/dbaas-service-mysql/index.md#prometheus-uri) | Prometheus integration URI |
| `state` | string | State of the service<br/><br/>Allowed values: `running`, `rebuilding`, `rebalancing`, `poweroff`. |
| `termination-protection` | boolean | Service is protected against termination and powering off |
| `type` | string | Service type code<br/><br/>Min length: `0`. Max length: `64`. |
| `updated-at` | string | Service last update timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `uri` | string | URI for connecting to the service (may be absent) |
| `uri-params` | object | service_uri parameterized into key-value pairs |
| `users` | array of [Users](https://community.exoscale.com/reference/api/_schemas/dbaas-service-mysql/index.md#users) | List of service users |
| `version` | string | MySQL version |
| `zone` | string | The zone where the service is running |

<details>
<summary>Example output</summary>

```json
{
  "backup-schedule": {
    "backup-hour": 0,
    "backup-minute": 0
  },
  "backups": [
    {
      "backup-name": "string",
      "backup-time": "2024-01-01T12:00:00Z",
      "data-size": 0,
      "tiered-storage-data-size": 0
    }
  ],
  "binlog-retention-period": 0,
  "components": [
    {
      "component": "string",
      "host": "string",
      "port": 0,
      "route": "dynamic",
      "usage": "primary"
    }
  ],
  "connection-info": {
    "params": [
      {}
    ],
    "standby": [
      "string"
    ],
    "uri": [
      "string"
    ]
  },
  "created-at": "2024-01-01T12:00:00Z",
  "databases": [
    "string"
  ],
  "disk-size": 0,
  "integrations": [
    {
      "description": "string",
      "dest": "string",
      "id": "string",
      "is-active": true,
      "is-enabled": true,
      "settings": {},
      "source": "string",
      "status": "string",
      "type": "string"
    }
  ],
  "ip-filter": [
    "string"
  ],
  "maintenance": {
    "dow": "saturday",
    "time": "string",
    "updates": [
      {
        "deadline": "2024-01-01T12:00:00Z",
        "description": "string",
        "start-after": "2024-01-01T12:00:00Z",
        "start-at": "2024-01-01T12:00:00Z"
      }
    ]
  },
  "mysql-settings": {
    "connect_timeout": 0,
    "default_time_zone": "+03:00",
    "group_concat_max_len": 0,
    "information_schema_stats_expiry": 0,
    "innodb_change_buffer_max_size": 0,
    "innodb_flush_neighbors": 0,
    "innodb_ft_min_token_size": 0,
    "innodb_ft_server_stopword_table": "db_name/table_name",
    "innodb_lock_wait_timeout": 0,
    "innodb_log_buffer_size": 0,
    "innodb_online_alter_log_max_size": 0,
    "innodb_print_all_deadlocks": true,
    "innodb_read_io_threads": 0,
    "innodb_rollback_on_timeout": true,
    "innodb_thread_concurrency": 0,
    "innodb_write_io_threads": 0,
    "interactive_timeout": 0,
    "internal_tmp_mem_storage_engine": "TempTable",
    "log_output": "INSIGHTS",
    "long_query_time": 0,
    "max_allowed_packet": 0,
    "max_heap_table_size": 0,
    "net_buffer_length": 0,
    "net_read_timeout": 0,
    "net_write_timeout": 0,
    "slow_query_log": true,
    "sort_buffer_size": 0,
    "sql_mode": "ANSI,TRADITIONAL",
    "sql_require_primary_key": true,
    "tmp_table_size": 0,
    "wait_timeout": 0
  },
  "name": "string",
  "node-count": 0,
  "node-cpu-count": 0,
  "node-memory": 0,
  "node-states": [
    {
      "name": "string",
      "progress-updates": [
        {
          "completed": true,
          "current": 0,
          "max": 0,
          "min": 0,
          "phase": "stream",
          "unit": "string"
        }
      ],
      "role": "standby",
      "state": "leaving"
    }
  ],
  "notifications": [
    {
      "level": "warning",
      "message": "string",
      "metadata": {},
      "type": "service_powered_off_removal"
    }
  ],
  "plan": "string",
  "prometheus-uri": {
    "host": "string",
    "port": 0
  },
  "state": "running",
  "termination-protection": true,
  "type": "string",
  "updated-at": "2024-01-01T12:00:00Z",
  "uri": "string",
  "uri-params": {},
  "users": [
    {
      "authentication": "string",
      "password": "string",
      "type": "string",
      "username": "string"
    }
  ],
  "version": "string",
  "zone": "string"
}
```
</details>


SDK reference for `get-dbaas-service-mysql`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASServiceMysql) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_service_mysql) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasServiceMysql(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-service-mysql`

## <span data-label="PUT" class="pill-PUT"></span>update-dbaas-service-mysql

Update a DBaaS MySQL service

```
PUT /dbaas-mysql/{name}
```

Update a DBaaS MySQL service

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `backup-schedule` | [Backup Schedule](#backup-schedule) | no |  |
| `binlog-retention-period` | integer | no | The minimum amount of time in seconds to keep binlog entries before deletion. This may be extended for services that require binlog entries for longer than the default for example if using the MySQL Debezium Kafka connector.<br/><br/>Min: `600`. Max: `86400`. |
| `ip-filter` | array[string] | no | Allow incoming connections from CIDR address block, e.g. '10.20.0.0/16' |
| `maintenance` | [Maintenance](#maintenance) | no | Automatic maintenance settings |
| `migration` | [Migration](#migration) | no | Migrate data from existing server |
| `mysql-settings` | [mysql.conf configuration values](https://community.exoscale.com/reference/api/_schemas/json-schema-mysql/index.md) | no | MySQL-specific settings |
| `plan` | string | no | Subscription plan<br/><br/>Min length: `1`. Max length: `128`. |
| `termination-protection` | boolean | no | Service is protected against termination and powering off |
| `version` | string | no | MySQL version |

<details>
<summary>Example</summary>

```json
{
  "backup-schedule": {
    "backup-hour": 0,
    "backup-minute": 0
  },
  "binlog-retention-period": 0,
  "ip-filter": [
    "string"
  ],
  "maintenance": {
    "dow": "saturday",
    "time": "string"
  },
  "migration": {
    "dbname": "string",
    "host": "string",
    "ignore-dbs": "string",
    "method": "dump",
    "password": "string",
    "port": 0,
    "ssl": true,
    "username": "string"
  },
  "mysql-settings": {
    "connect_timeout": 0,
    "default_time_zone": "+03:00",
    "group_concat_max_len": 0,
    "information_schema_stats_expiry": 0,
    "innodb_change_buffer_max_size": 0,
    "innodb_flush_neighbors": 0,
    "innodb_ft_min_token_size": 0,
    "innodb_ft_server_stopword_table": "db_name/table_name",
    "innodb_lock_wait_timeout": 0,
    "innodb_log_buffer_size": 0,
    "innodb_online_alter_log_max_size": 0,
    "innodb_print_all_deadlocks": true,
    "innodb_read_io_threads": 0,
    "innodb_rollback_on_timeout": true,
    "innodb_thread_concurrency": 0,
    "innodb_write_io_threads": 0,
    "interactive_timeout": 0,
    "internal_tmp_mem_storage_engine": "TempTable",
    "log_output": "INSIGHTS",
    "long_query_time": 0,
    "max_allowed_packet": 0,
    "max_heap_table_size": 0,
    "net_buffer_length": 0,
    "net_read_timeout": 0,
    "net_write_timeout": 0,
    "slow_query_log": true,
    "sort_buffer_size": 0,
    "sql_mode": "ANSI,TRADITIONAL",
    "sql_require_primary_key": true,
    "tmp_table_size": 0,
    "wait_timeout": 0
  },
  "plan": "string",
  "termination-protection": true,
  "version": "string"
}
```
</details>


### Backup Schedule {#backup-schedule}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `backup-hour` | integer | no | The hour of day (in UTC) when backup for the service is started. New backup is only started if previous backup has already completed.<br/><br/>Min: `0`. Max: `23`. |
| `backup-minute` | integer | no | The minute of an hour when backup for the service is started. New backup is only started if previous backup has already completed.<br/><br/>Min: `0`. Max: `59`. |

### Maintenance {#maintenance}

Automatic maintenance settings

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `dow` | string | **yes** | Day of week for installing updates<br/><br/>Allowed values: `saturday`, `tuesday`, `never`, `wednesday`, `sunday`, `friday`, `monday`, `thursday`. |
| `time` | string | **yes** | Time for installing updates, UTC<br/><br/>Min length: `8`. Max length: `8`. |

### Migration {#migration}

Migrate data from existing server

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `host` | string | **yes** | Hostname or IP address of the server where to migrate data from<br/><br/>Min length: `1`. Max length: `255`. |
| `port` | integer | **yes** | Port number of the server where to migrate data from<br/><br/>Min: `1`. Max: `65535`. |
| `dbname` | string | no | Database name for bootstrapping the initial connection<br/><br/>Min length: `1`. Max length: `63`. |
| `ignore-dbs` | string | no | Comma-separated list of databases, which should be ignored during migration (supported by MySQL only at the moment)<br/><br/>Min length: `1`. Max length: `2048`. |
| `method` | string | no | The migration method to be used<br/><br/>Allowed values: `dump`, `replication`. |
| `password` | string | no | Password for authentication with the server where to migrate data from<br/><br/>Min length: `1`. Max length: `255`. |
| `ssl` | boolean | no | The server where to migrate data from is secured with SSL |
| `username` | string | no | User name for authentication with the server where to migrate data from<br/><br/>Min length: `1`. Max length: `255`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-dbaas-service-mysql`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateDBAASServiceMysql) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_dbaas_service_mysql) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateDbaasServiceMysql(java.lang.String,com.exoscale.sdk.model.UpdateDbaasServiceMysqlRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-dbaas-service-mysql`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-service-mysql

Delete a MySQL service

```
DELETE /dbaas-mysql/{name}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-service-mysql`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASServiceMysql) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_service_mysql) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasServiceMysql(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-service-mysql`


---

## Other Operations

## <span data-label="PUT" class="pill-PUT"></span>start-dbaas-mysql-maintenance

Initiate MySQL maintenance update

```
PUT /dbaas-mysql/{name}/maintenance/start
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `start-dbaas-mysql-maintenance`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.StartDBAASMysqlMaintenance) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.start_dbaas_mysql_maintenance) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#startDbaasMysqlMaintenance(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api start-dbaas-mysql-maintenance`

## <span data-label="POST" class="pill-POST"></span>stop-dbaas-mysql-migration

Stop a DBaaS MySQL migration

```
POST /dbaas-mysql/{name}/migration/stop
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `stop-dbaas-mysql-migration`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.StopDBAASMysqlMigration) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.stop_dbaas_mysql_migration) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#stopDbaasMysqlMigration(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api stop-dbaas-mysql-migration`

## <span data-label="PUT" class="pill-PUT"></span>enable-dbaas-mysql-writes

Temporarily enable writes for MySQL services in read-only mode due to filled up storage

```
PUT /dbaas-mysql/{name}/enable/writes
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `enable-dbaas-mysql-writes`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.EnableDBAASMysqlWrites) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.enable_dbaas_mysql_writes) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#enableDbaasMysqlWrites(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api enable-dbaas-mysql-writes`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-settings-mysql

Get DBaaS MySQL settings

```
GET /dbaas-settings-mysql
```

Get DBaaS MySQL settings

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `settings` | [Settings](#settings) |  |

<details>
<summary>Example output</summary>

```json
{
  "settings": {
    "mysql": {
      "additionalProperties": true,
      "properties": {},
      "title": "string",
      "type": "string"
    }
  }
}
```
</details>


### Settings {#settings}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `mysql` | [Mysql](#mysql) | no | mysql.conf configuration values |

### Mysql {#mysql}

mysql.conf configuration values

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `additionalProperties` | boolean | no |  |
| `properties` | object | no |  |
| `title` | string | no |  |
| `type` | string | no |  |

SDK reference for `get-dbaas-settings-mysql`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASSettingsMysql) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_settings_mysql) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasSettingsMysql())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-settings-mysql`

---

url: https://community.exoscale.com/reference/api/dbaas/dbaas-grafana/

---

# DBaaS Grafana

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Grafana, the open-source software that lets you query and visualize metrics, logs and traces from any storage source.

[Read more](https://community.exoscale.com/product/dbaas/service-specific/grafana/index.md)

## <span data-label="GET" class="pill-GET"></span>reveal-dbaas-grafana-user-password

Reveal the secrets of a DBaaS Grafana user

```
GET /dbaas-grafana/{service-name}/user/{username}/password/reveal
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `username` | `path` | Min length: `1`. Max length: `64`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `password` | string | Grafana password |
| `username` | string | Grafana username |

<details>
<summary>Example output</summary>

```json
{
  "password": "string",
  "username": "string"
}
```
</details>


SDK reference for `reveal-dbaas-grafana-user-password`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RevealDBAASGrafanaUserPassword) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reveal_dbaas_grafana_user_password) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#revealDbaasGrafanaUserPassword(java.lang.String,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reveal-dbaas-grafana-user-password`

## <span data-label="PUT" class="pill-PUT"></span>reset-dbaas-grafana-user-password

Reset the credentials of a DBaaS Grafana user

```
PUT /dbaas-grafana/{service-name}/user/{username}/password/reset
```

If no password is provided one will be generated automatically.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `username` | `path` | Min length: `1`. Max length: `64`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `password` | string | no | New password<br/><br/>Min length: `8`. Max length: `256`. |

<details>
<summary>Example</summary>

```json
{
  "password": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `reset-dbaas-grafana-user-password`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ResetDBAASGrafanaUserPassword) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reset_dbaas_grafana_user_password) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#resetDbaasGrafanaUserPassword(java.lang.String,java.lang.String,com.exoscale.sdk.model.ResetDbaasGrafanaUserPasswordRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reset-dbaas-grafana-user-password`

## <span data-label="POST" class="pill-POST"></span>create-dbaas-service-grafana

```
POST /dbaas-grafana/{name}
```

Create a DBaaS Grafana service

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `plan` | string | **yes** | Subscription plan<br/><br/>Min length: `1`. Max length: `128`. |
| `fork-from-service` | string | no | Service to fork from<br/><br/>Min length: `0`. Max length: `63`. |
| `grafana-settings` | [Grafana settings](https://community.exoscale.com/reference/api/_schemas/json-schema-grafana/index.md) | no | Grafana specific settings |
| `ip-filter` | array[string] | no | Allowed CIDR address blocks for incoming connections |
| `maintenance` | [Maintenance](#maintenance) | no | Automatic maintenance settings |
| `termination-protection` | boolean | no | Service is protected against termination and powering off |

<details>
<summary>Example</summary>

```json
{
  "fork-from-service": "string",
  "grafana-settings": {
    "alerting_enabled": true,
    "alerting_error_or_timeout": "alerting",
    "alerting_max_annotations_to_keep": 0,
    "alerting_nodata_or_nullvalues": "alerting",
    "allow_embedding": true,
    "auth_azuread": {
      "allow_sign_up": true,
      "allowed_domains": [
        "mycompany.com"
      ],
      "allowed_groups": [
        "c0ffee15-c01d-0000-1111-012345abcdef"
      ],
      "auth_url": "https://login.microsoftonline.com/\u003cAZURE_TENANT_ID\u003e/oauth2/v2.0/authorize",
      "client_id": "b1ba0bf54a4c2c0a1c29",
      "client_secret": "bfa6gea4f129076761dcba8ce5e1e406bd83af7b",
      "token_url": "https://login.microsoftonline.com/\u003cAZURE_TENANT_ID\u003e/oauth2/v2.0/token"
    },
    "auth_basic_enabled": true,
    "auth_generic_oauth": {
      "allow_sign_up": true,
      "allowed_domains": [
        "mycompany.com"
      ],
      "allowed_organizations": [
        "myorg"
      ],
      "api_url": "https://yourprovider.com/api",
      "auth_url": "https://yourprovider.com/oauth/authorize",
      "auto_login": true,
      "client_id": "b1ba0bf54a4c2c0a1c29",
      "client_secret": "bfa6gea4f129076761dcba8ce5e1e406bd83af7b",
      "name": "My authentication",
      "scopes": [
        "email"
      ],
      "token_url": "https://yourprovider.com/oauth/token"
    },
    "auth_github": {
      "allow_sign_up": true,
      "allowed_organizations": [
        "aiven"
      ],
      "auto_login": true,
      "client_id": "b1ba0bf54a4c2c0a1c29",
      "client_secret": "bfa6gea4f129076761dcba8ce5e1e406bd83af7b",
      "skip_org_role_sync": true,
      "team_ids": [
        0
      ]
    },
    "auth_gitlab": {
      "allow_sign_up": true,
      "allowed_groups": [
        "aiven/developers"
      ],
      "api_url": "https://gitlab.com/api/v4",
      "auth_url": "https://gitlab.com/oauth/authorize",
      "client_id": "b1ba0bf54a4c2c0a1c29",
      "client_secret": "bfa6gea4f129076761dcba8ce5e1e406bd83af7b",
      "token_url": "https://gitlab.com/oauth/token"
    },
    "auth_google": {
      "allow_sign_up": true,
      "allowed_domains": [
        "example.com"
      ],
      "client_id": "b1ba0bf54a4c2c0a1c29",
      "client_secret": "bfa6gea4f129076761dcba8ce5e1e406bd83af7b"
    },
    "cookie_samesite": "lax",
    "custom_domain": "grafana.example.org",
    "dashboard_previews_enabled": true,
    "dashboards_min_refresh_interval": "5s",
    "dashboards_versions_to_keep": 0,
    "dataproxy_send_user_header": true,
    "dataproxy_timeout": 0,
    "date_formats": {
      "default_timezone": "Europe/Helsinki",
      "full_date": "YYYY MM DD",
      "interval_day": "MM/DD",
      "interval_hour": "MM/DD HH:mm",
      "interval_minute": "HH:mm",
      "interval_month": "YYYY-MM",
      "interval_second": "HH:mm:ss",
      "interval_year": "YYYY"
    },
    "disable_gravatar": true,
    "editors_can_admin": true,
    "google_analytics_ua_id": "UA-123456-4",
    "metrics_enabled": true,
    "oauth_allow_insecure_email_lookup": true,
    "service_log": true,
    "smtp_server": {
      "from_address": "yourgrafanauser@yourdomain.example.com",
      "from_name": "Company Grafana",
      "host": "smtp.example.com",
      "password": "ein0eemeev5eeth3Ahfu",
      "port": 0,
      "skip_verify": true,
      "starttls_policy": "OpportunisticStartTLS",
      "username": "smtpuser"
    },
    "unified_alerting_enabled": true,
    "user_auto_assign_org": true,
    "user_auto_assign_org_role": "Viewer",
    "viewers_can_edit": true,
    "wal": true
  },
  "ip-filter": [
    "string"
  ],
  "maintenance": {
    "dow": "saturday",
    "time": "string"
  },
  "plan": "string",
  "termination-protection": true
}
```
</details>


### Maintenance {#maintenance}

Automatic maintenance settings

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `dow` | string | **yes** | Day of week for installing updates<br/><br/>Allowed values: `saturday`, `tuesday`, `never`, `wednesday`, `sunday`, `friday`, `monday`, `thursday`. |
| `time` | string | **yes** | Time for installing updates, UTC<br/><br/>Min length: `8`. Max length: `8`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dbaas-service-grafana`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASServiceGrafana) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_service_grafana) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasServiceGrafana(java.lang.String,com.exoscale.sdk.model.CreateDbaasServiceGrafanaRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-service-grafana`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-service-grafana

Get a DBaaS Grafana service

```
GET /dbaas-grafana/{name}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `backups` | array of [List of backups for the service](https://community.exoscale.com/reference/api/_schemas/dbaas-service-backup/index.md) | List of backups for the service |
| `components` | array of [Components](https://community.exoscale.com/reference/api/_schemas/dbaas-service-grafana/index.md#components) | Service component information objects |
| `connection-info` | [Connection Info](https://community.exoscale.com/reference/api/_schemas/dbaas-service-grafana/index.md#connection-info) | Grafana connection information properties |
| `created-at` | string | Service creation timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `description` | string | DbaaS service description |
| `disk-size` | integer | Disk space for data storage, in bytes<br/><br/>Min: `0`. |
| `grafana-settings` | [Grafana settings](https://community.exoscale.com/reference/api/_schemas/json-schema-grafana/index.md) | Grafana specific settings |
| `integrations` | array of [DBaaS Integration](https://community.exoscale.com/reference/api/_schemas/dbaas-integration/index.md) | Service integrations |
| `ip-filter` | array[string] | Allowed CIDR address blocks for incoming connections |
| `maintenance` | [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-service-maintenance/index.md) | Automatic maintenance settings |
| `name` | string | Service name<br/><br/>Min length: `0`. Max length: `63`. |
| `node-count` | integer | Number of service nodes in the active plan<br/><br/>Min: `0`. |
| `node-cpu-count` | integer | Number of CPUs for each node<br/><br/>Min: `0`. |
| `node-memory` | integer | Memory of each node, in bytes<br/><br/>Min: `0`. |
| `node-states` | array of [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-node-state/index.md) | State of individual service nodes |
| `notifications` | array of [Service notifications](https://community.exoscale.com/reference/api/_schemas/dbaas-service-notification/index.md) | Service notifications |
| `plan` | string | Subscription plan |
| `prometheus-uri` | [Prometheus URI](https://community.exoscale.com/reference/api/_schemas/dbaas-service-grafana/index.md#prometheus-uri) | Prometheus integration URI |
| `state` | string | State of the service<br/><br/>Allowed values: `running`, `rebuilding`, `rebalancing`, `poweroff`. |
| `termination-protection` | boolean | Service is protected against termination and powering off |
| `type` | string | Service type code<br/><br/>Min length: `0`. Max length: `64`. |
| `updated-at` | string | Service last update timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `uri` | string | URI for connecting to the service (may be absent) |
| `uri-params` | object | service_uri parameterized into key-value pairs |
| `users` | array of [Users](https://community.exoscale.com/reference/api/_schemas/dbaas-service-grafana/index.md#users) | List of service users |
| `version` | string | Grafana version |
| `zone` | string | The zone where the service is running |

<details>
<summary>Example output</summary>

```json
{
  "backups": [
    {
      "backup-name": "string",
      "backup-time": "2024-01-01T12:00:00Z",
      "data-size": 0,
      "tiered-storage-data-size": 0
    }
  ],
  "components": [
    {
      "component": "string",
      "host": "string",
      "port": 0,
      "route": "dynamic",
      "usage": "primary"
    }
  ],
  "connection-info": {
    "password": "string",
    "uri": "string",
    "username": "string"
  },
  "created-at": "2024-01-01T12:00:00Z",
  "description": "string",
  "disk-size": 0,
  "grafana-settings": {
    "alerting_enabled": true,
    "alerting_error_or_timeout": "alerting",
    "alerting_max_annotations_to_keep": 0,
    "alerting_nodata_or_nullvalues": "alerting",
    "allow_embedding": true,
    "auth_azuread": {
      "allow_sign_up": true,
      "allowed_domains": [
        "mycompany.com"
      ],
      "allowed_groups": [
        "c0ffee15-c01d-0000-1111-012345abcdef"
      ],
      "auth_url": "https://login.microsoftonline.com/\u003cAZURE_TENANT_ID\u003e/oauth2/v2.0/authorize",
      "client_id": "b1ba0bf54a4c2c0a1c29",
      "client_secret": "bfa6gea4f129076761dcba8ce5e1e406bd83af7b",
      "token_url": "https://login.microsoftonline.com/\u003cAZURE_TENANT_ID\u003e/oauth2/v2.0/token"
    },
    "auth_basic_enabled": true,
    "auth_generic_oauth": {
      "allow_sign_up": true,
      "allowed_domains": [
        "mycompany.com"
      ],
      "allowed_organizations": [
        "myorg"
      ],
      "api_url": "https://yourprovider.com/api",
      "auth_url": "https://yourprovider.com/oauth/authorize",
      "auto_login": true,
      "client_id": "b1ba0bf54a4c2c0a1c29",
      "client_secret": "bfa6gea4f129076761dcba8ce5e1e406bd83af7b",
      "name": "My authentication",
      "scopes": [
        "email"
      ],
      "token_url": "https://yourprovider.com/oauth/token"
    },
    "auth_github": {
      "allow_sign_up": true,
      "allowed_organizations": [
        "aiven"
      ],
      "auto_login": true,
      "client_id": "b1ba0bf54a4c2c0a1c29",
      "client_secret": "bfa6gea4f129076761dcba8ce5e1e406bd83af7b",
      "skip_org_role_sync": true,
      "team_ids": [
        0
      ]
    },
    "auth_gitlab": {
      "allow_sign_up": true,
      "allowed_groups": [
        "aiven/developers"
      ],
      "api_url": "https://gitlab.com/api/v4",
      "auth_url": "https://gitlab.com/oauth/authorize",
      "client_id": "b1ba0bf54a4c2c0a1c29",
      "client_secret": "bfa6gea4f129076761dcba8ce5e1e406bd83af7b",
      "token_url": "https://gitlab.com/oauth/token"
    },
    "auth_google": {
      "allow_sign_up": true,
      "allowed_domains": [
        "example.com"
      ],
      "client_id": "b1ba0bf54a4c2c0a1c29",
      "client_secret": "bfa6gea4f129076761dcba8ce5e1e406bd83af7b"
    },
    "cookie_samesite": "lax",
    "custom_domain": "grafana.example.org",
    "dashboard_previews_enabled": true,
    "dashboards_min_refresh_interval": "5s",
    "dashboards_versions_to_keep": 0,
    "dataproxy_send_user_header": true,
    "dataproxy_timeout": 0,
    "date_formats": {
      "default_timezone": "Europe/Helsinki",
      "full_date": "YYYY MM DD",
      "interval_day": "MM/DD",
      "interval_hour": "MM/DD HH:mm",
      "interval_minute": "HH:mm",
      "interval_month": "YYYY-MM",
      "interval_second": "HH:mm:ss",
      "interval_year": "YYYY"
    },
    "disable_gravatar": true,
    "editors_can_admin": true,
    "google_analytics_ua_id": "UA-123456-4",
    "metrics_enabled": true,
    "oauth_allow_insecure_email_lookup": true,
    "service_log": true,
    "smtp_server": {
      "from_address": "yourgrafanauser@yourdomain.example.com",
      "from_name": "Company Grafana",
      "host": "smtp.example.com",
      "password": "ein0eemeev5eeth3Ahfu",
      "port": 0,
      "skip_verify": true,
      "starttls_policy": "OpportunisticStartTLS",
      "username": "smtpuser"
    },
    "unified_alerting_enabled": true,
    "user_auto_assign_org": true,
    "user_auto_assign_org_role": "Viewer",
    "viewers_can_edit": true,
    "wal": true
  },
  "integrations": [
    {
      "description": "string",
      "dest": "string",
      "id": "string",
      "is-active": true,
      "is-enabled": true,
      "settings": {},
      "source": "string",
      "status": "string",
      "type": "string"
    }
  ],
  "ip-filter": [
    "string"
  ],
  "maintenance": {
    "dow": "saturday",
    "time": "string",
    "updates": [
      {
        "deadline": "2024-01-01T12:00:00Z",
        "description": "string",
        "start-after": "2024-01-01T12:00:00Z",
        "start-at": "2024-01-01T12:00:00Z"
      }
    ]
  },
  "name": "string",
  "node-count": 0,
  "node-cpu-count": 0,
  "node-memory": 0,
  "node-states": [
    {
      "name": "string",
      "progress-updates": [
        {
          "completed": true,
          "current": 0,
          "max": 0,
          "min": 0,
          "phase": "stream",
          "unit": "string"
        }
      ],
      "role": "standby",
      "state": "leaving"
    }
  ],
  "notifications": [
    {
      "level": "warning",
      "message": "string",
      "metadata": {},
      "type": "service_powered_off_removal"
    }
  ],
  "plan": "string",
  "prometheus-uri": {
    "host": "string",
    "port": 0
  },
  "state": "running",
  "termination-protection": true,
  "type": "string",
  "updated-at": "2024-01-01T12:00:00Z",
  "uri": "string",
  "uri-params": {},
  "users": [
    {
      "password": "string",
      "type": "string",
      "username": "string"
    }
  ],
  "version": "string",
  "zone": "string"
}
```
</details>


SDK reference for `get-dbaas-service-grafana`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASServiceGrafana) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_service_grafana) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasServiceGrafana(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-service-grafana`

## <span data-label="PUT" class="pill-PUT"></span>update-dbaas-service-grafana

Update a DBaaS Grafana service

```
PUT /dbaas-grafana/{name}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `grafana-settings` | [Grafana settings](https://community.exoscale.com/reference/api/_schemas/json-schema-grafana/index.md) | no | Grafana specific settings |
| `ip-filter` | array[string] | no | Allowed CIDR address blocks for incoming connections |
| `maintenance` | [Maintenance](#maintenance) | no | Automatic maintenance settings |
| `plan` | string | no | Subscription plan<br/><br/>Min length: `1`. Max length: `128`. |
| `termination-protection` | boolean | no | Service is protected against termination and powering off |

<details>
<summary>Example</summary>

```json
{
  "grafana-settings": {
    "alerting_enabled": true,
    "alerting_error_or_timeout": "alerting",
    "alerting_max_annotations_to_keep": 0,
    "alerting_nodata_or_nullvalues": "alerting",
    "allow_embedding": true,
    "auth_azuread": {
      "allow_sign_up": true,
      "allowed_domains": [
        "mycompany.com"
      ],
      "allowed_groups": [
        "c0ffee15-c01d-0000-1111-012345abcdef"
      ],
      "auth_url": "https://login.microsoftonline.com/\u003cAZURE_TENANT_ID\u003e/oauth2/v2.0/authorize",
      "client_id": "b1ba0bf54a4c2c0a1c29",
      "client_secret": "bfa6gea4f129076761dcba8ce5e1e406bd83af7b",
      "token_url": "https://login.microsoftonline.com/\u003cAZURE_TENANT_ID\u003e/oauth2/v2.0/token"
    },
    "auth_basic_enabled": true,
    "auth_generic_oauth": {
      "allow_sign_up": true,
      "allowed_domains": [
        "mycompany.com"
      ],
      "allowed_organizations": [
        "myorg"
      ],
      "api_url": "https://yourprovider.com/api",
      "auth_url": "https://yourprovider.com/oauth/authorize",
      "auto_login": true,
      "client_id": "b1ba0bf54a4c2c0a1c29",
      "client_secret": "bfa6gea4f129076761dcba8ce5e1e406bd83af7b",
      "name": "My authentication",
      "scopes": [
        "email"
      ],
      "token_url": "https://yourprovider.com/oauth/token"
    },
    "auth_github": {
      "allow_sign_up": true,
      "allowed_organizations": [
        "aiven"
      ],
      "auto_login": true,
      "client_id": "b1ba0bf54a4c2c0a1c29",
      "client_secret": "bfa6gea4f129076761dcba8ce5e1e406bd83af7b",
      "skip_org_role_sync": true,
      "team_ids": [
        0
      ]
    },
    "auth_gitlab": {
      "allow_sign_up": true,
      "allowed_groups": [
        "aiven/developers"
      ],
      "api_url": "https://gitlab.com/api/v4",
      "auth_url": "https://gitlab.com/oauth/authorize",
      "client_id": "b1ba0bf54a4c2c0a1c29",
      "client_secret": "bfa6gea4f129076761dcba8ce5e1e406bd83af7b",
      "token_url": "https://gitlab.com/oauth/token"
    },
    "auth_google": {
      "allow_sign_up": true,
      "allowed_domains": [
        "example.com"
      ],
      "client_id": "b1ba0bf54a4c2c0a1c29",
      "client_secret": "bfa6gea4f129076761dcba8ce5e1e406bd83af7b"
    },
    "cookie_samesite": "lax",
    "custom_domain": "grafana.example.org",
    "dashboard_previews_enabled": true,
    "dashboards_min_refresh_interval": "5s",
    "dashboards_versions_to_keep": 0,
    "dataproxy_send_user_header": true,
    "dataproxy_timeout": 0,
    "date_formats": {
      "default_timezone": "Europe/Helsinki",
      "full_date": "YYYY MM DD",
      "interval_day": "MM/DD",
      "interval_hour": "MM/DD HH:mm",
      "interval_minute": "HH:mm",
      "interval_month": "YYYY-MM",
      "interval_second": "HH:mm:ss",
      "interval_year": "YYYY"
    },
    "disable_gravatar": true,
    "editors_can_admin": true,
    "google_analytics_ua_id": "UA-123456-4",
    "metrics_enabled": true,
    "oauth_allow_insecure_email_lookup": true,
    "service_log": true,
    "smtp_server": {
      "from_address": "yourgrafanauser@yourdomain.example.com",
      "from_name": "Company Grafana",
      "host": "smtp.example.com",
      "password": "ein0eemeev5eeth3Ahfu",
      "port": 0,
      "skip_verify": true,
      "starttls_policy": "OpportunisticStartTLS",
      "username": "smtpuser"
    },
    "unified_alerting_enabled": true,
    "user_auto_assign_org": true,
    "user_auto_assign_org_role": "Viewer",
    "viewers_can_edit": true,
    "wal": true
  },
  "ip-filter": [
    "string"
  ],
  "maintenance": {
    "dow": "saturday",
    "time": "string"
  },
  "plan": "string",
  "termination-protection": true
}
```
</details>


### Maintenance {#maintenance}

Automatic maintenance settings

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `dow` | string | **yes** | Day of week for installing updates<br/><br/>Allowed values: `saturday`, `tuesday`, `never`, `wednesday`, `sunday`, `friday`, `monday`, `thursday`. |
| `time` | string | **yes** | Time for installing updates, UTC<br/><br/>Min length: `8`. Max length: `8`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-dbaas-service-grafana`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateDBAASServiceGrafana) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_dbaas_service_grafana) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateDbaasServiceGrafana(java.lang.String,com.exoscale.sdk.model.UpdateDbaasServiceGrafanaRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-dbaas-service-grafana`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-service-grafana

Delete a Grafana service

```
DELETE /dbaas-grafana/{name}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-service-grafana`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASServiceGrafana) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_service_grafana) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasServiceGrafana(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-service-grafana`


---

## Other Operations

## <span data-label="PUT" class="pill-PUT"></span>start-dbaas-grafana-maintenance

Initiate Grafana maintenance update

```
PUT /dbaas-grafana/{name}/maintenance/start
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `start-dbaas-grafana-maintenance`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.StartDBAASGrafanaMaintenance) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.start_dbaas_grafana_maintenance) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#startDbaasGrafanaMaintenance(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api start-dbaas-grafana-maintenance`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-settings-grafana

Get DBaaS Grafana settings

```
GET /dbaas-settings-grafana
```

Get DBaaS Grafana settings

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `settings` | [Settings](#settings) |  |

<details>
<summary>Example output</summary>

```json
{
  "settings": {
    "grafana": {
      "additionalProperties": true,
      "properties": {},
      "title": "string",
      "type": "string"
    }
  }
}
```
</details>


### Settings {#settings}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `grafana` | [Grafana](#grafana) | no | Grafana configuration values |

### Grafana {#grafana}

Grafana configuration values

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `additionalProperties` | boolean | no |  |
| `properties` | object | no |  |
| `title` | string | no |  |
| `type` | string | no |  |

SDK reference for `get-dbaas-settings-grafana`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASSettingsGrafana) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_settings_grafana) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasSettingsGrafana())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-settings-grafana`

---

url: https://community.exoscale.com/reference/api/dbaas/dbaas-kafka/

---

# DBaaS Kafka

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Kafka is a distributed, open-source data platform for optimized real-time processing of streaming data.

[Read more](https://community.exoscale.com/product/dbaas/service-specific/kafka/index.md)

## <span data-label="POST" class="pill-POST"></span>create-dbaas-kafka-schema-registry-acl-config

Add a Kafka Schema Registry ACL entry

```
POST /dbaas-kafka/{name}/schema-registry/acl-config
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `permission` | string | **yes** | Kafka Schema Registry permission<br/><br/>Allowed values: `schema_registry_read`, `schema_registry_write`. |
| `resource` | string | **yes** | Kafka Schema Registry name or pattern<br/><br/>Min length: `1`. Max length: `249`. |
| `username` | string | **yes** | Kafka username or username pattern<br/><br/>Min length: `1`. Max length: `64`. |
| `id` | string | no | Kafka ACL ID<br/><br/>Min length: `1`. Max length: `40`. |

<details>
<summary>Example</summary>

```json
{
  "id": "string",
  "permission": "schema_registry_read",
  "resource": "string",
  "username": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dbaas-kafka-schema-registry-acl-config`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASKafkaSchemaRegistryAclConfig) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_kafka_schema_registry_acl_config) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasKafkaSchemaRegistryAclConfig(java.lang.String,com.exoscale.sdk.model.CreateDbaasKafkaSchemaRegistryAclConfigRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-kafka-schema-registry-acl-config`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-kafka-schema-registry-acl-config

Delete a Kafka ACL entry

```
DELETE /dbaas-kafka/{name}/schema-registry/acl-config/{acl-id}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |
| `acl-id` | `path` | Min length: `1`. Max length: `40`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-kafka-schema-registry-acl-config`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASKafkaSchemaRegistryAclConfig) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_kafka_schema_registry_acl_config) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasKafkaSchemaRegistryAclConfig(java.lang.String,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-kafka-schema-registry-acl-config`

## <span data-label="POST" class="pill-POST"></span>create-dbaas-kafka-topic-acl-config

Add a Kafka topic ACL entry

```
POST /dbaas-kafka/{name}/topic/acl-config
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `permission` | string | **yes** | Kafka permission<br/><br/>Allowed values: `admin`, `read`, `readwrite`, `write`. |
| `topic` | string | **yes** | Kafka topic name or pattern<br/><br/>Min length: `1`. Max length: `249`. |
| `username` | string | **yes** | Kafka username or username pattern<br/><br/>Min length: `1`. Max length: `64`. |
| `id` | string | no | Kafka ACL ID<br/><br/>Min length: `1`. Max length: `40`. |

<details>
<summary>Example</summary>

```json
{
  "id": "string",
  "permission": "admin",
  "topic": "string",
  "username": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dbaas-kafka-topic-acl-config`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASKafkaTopicAclConfig) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_kafka_topic_acl_config) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasKafkaTopicAclConfig(java.lang.String,com.exoscale.sdk.model.CreateDbaasKafkaTopicAclConfigRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-kafka-topic-acl-config`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-kafka-topic-acl-config

Delete a Kafka ACL entry

```
DELETE /dbaas-kafka/{name}/topic/acl-config/{acl-id}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |
| `acl-id` | `path` | Min length: `1`. Max length: `40`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-kafka-topic-acl-config`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASKafkaTopicAclConfig) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_kafka_topic_acl_config) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasKafkaTopicAclConfig(java.lang.String,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-kafka-topic-acl-config`

## <span data-label="POST" class="pill-POST"></span>create-dbaas-kafka-user

Create a DBaaS Kafka user

```
POST /dbaas-kafka/{service-name}/user
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `username` | string | **yes** | Username<br/><br/>Min length: `1`. Max length: `64`. |

<details>
<summary>Example</summary>

```json
{
  "username": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dbaas-kafka-user`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASKafkaUser) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_kafka_user) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasKafkaUser(java.lang.String,com.exoscale.sdk.model.CreateDbaasKafkaUserRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-kafka-user`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-kafka-user

Delete a DBaaS kafka user

```
DELETE /dbaas-kafka/{service-name}/user/{username}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `username` | `path` | Min length: `1`. Max length: `64`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-kafka-user`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASKafkaUser) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_kafka_user) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasKafkaUser(java.lang.String,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-kafka-user`

## <span data-label="GET" class="pill-GET"></span>reveal-dbaas-kafka-user-password

Reveal the secrets of a DBaaS Kafka user

```
GET /dbaas-kafka/{service-name}/user/{username}/password/reveal
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `username` | `path` | Min length: `1`. Max length: `64`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `access-cert` | string | Kafka certificate |
| `access-cert-expiry` | string | ISO 8601 date-time. |
| `access-key` | string | Kafka access key |
| `password` | string | Kafka password |
| `username` | string | Kafka username |

<details>
<summary>Example output</summary>

```json
{
  "access-cert": "string",
  "access-cert-expiry": "2024-01-01T12:00:00Z",
  "access-key": "string",
  "password": "string",
  "username": "string"
}
```
</details>


SDK reference for `reveal-dbaas-kafka-user-password`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RevealDBAASKafkaUserPassword) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reveal_dbaas_kafka_user_password) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#revealDbaasKafkaUserPassword(java.lang.String,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reveal-dbaas-kafka-user-password`

## <span data-label="PUT" class="pill-PUT"></span>reset-dbaas-kafka-user-password

Reset the credentials of a DBaaS Kafka user

```
PUT /dbaas-kafka/{service-name}/user/{username}/password/reset
```

If no password is provided one will be generated automatically.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `username` | `path` | Min length: `1`. Max length: `64`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `password` | string | no | New password<br/><br/>Min length: `8`. Max length: `256`. |

<details>
<summary>Example</summary>

```json
{
  "password": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `reset-dbaas-kafka-user-password`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ResetDBAASKafkaUserPassword) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reset_dbaas_kafka_user_password) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#resetDbaasKafkaUserPassword(java.lang.String,java.lang.String,com.exoscale.sdk.model.ResetDbaasKafkaUserPasswordRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reset-dbaas-kafka-user-password`

## <span data-label="POST" class="pill-POST"></span>create-dbaas-service-kafka

Create a DBaaS Kafka service

```
POST /dbaas-kafka/{name}
```

Create a DBaaS Kafka service

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `plan` | string | **yes** | Subscription plan<br/><br/>Min length: `1`. Max length: `128`. |
| `authentication-methods` | [Authentication Methods](#authentication-methods) | no | Kafka authentication methods |
| `ip-filter` | array[string] | no | Allow incoming connections from CIDR address block, e.g. '10.20.0.0/16' |
| `kafka-connect-enabled` | boolean | no | Allow clients to connect to kafka_connect from the public internet for service nodes that are in a project VPC or another type of private network |
| `kafka-connect-settings` | [Kafka Connect configuration values](https://community.exoscale.com/reference/api/_schemas/json-schema-kafka-connect/index.md) | no | Kafka Connect configuration values |
| `kafka-rest-enabled` | boolean | no | Enable Kafka-REST service |
| `kafka-rest-settings` | [Kafka REST configuration](https://community.exoscale.com/reference/api/_schemas/json-schema-kafka-rest/index.md) | no | Kafka REST configuration |
| `kafka-settings` | [Kafka broker configuration values](https://community.exoscale.com/reference/api/_schemas/json-schema-kafka/index.md) | no | Kafka-specific settings |
| `maintenance` | [Maintenance](#maintenance) | no | Automatic maintenance settings |
| `schema-registry-enabled` | boolean | no | Enable Schema-Registry service |
| `schema-registry-settings` | [Schema Registry configuration](https://community.exoscale.com/reference/api/_schemas/json-schema-schema-registry/index.md) | no | Schema Registry configuration |
| `termination-protection` | boolean | no | Service is protected against termination and powering off |
| `version` | string | no | Kafka major version<br/><br/>Min length: `1`. |

<details>
<summary>Example</summary>

```json
{
  "authentication-methods": {
    "certificate": true,
    "sasl": true
  },
  "ip-filter": [
    "string"
  ],
  "kafka-connect-enabled": true,
  "kafka-connect-settings": {
    "connector_client_config_override_policy": "None",
    "consumer_auto_offset_reset": "earliest",
    "consumer_fetch_max_bytes": 0,
    "consumer_isolation_level": "read_uncommitted",
    "consumer_max_partition_fetch_bytes": 0,
    "consumer_max_poll_interval_ms": 0,
    "consumer_max_poll_records": 0,
    "offset_flush_interval_ms": 0,
    "offset_flush_timeout_ms": 0,
    "producer_batch_size": 0,
    "producer_buffer_memory": 0,
    "producer_compression_type": "gzip",
    "producer_linger_ms": 0,
    "producer_max_request_size": 0,
    "scheduled_rebalance_max_delay_ms": 0,
    "session_timeout_ms": 0
  },
  "kafka-rest-enabled": true,
  "kafka-rest-settings": {
    "consumer_enable_auto_commit": true,
    "consumer_request_max_bytes": 0,
    "consumer_request_timeout_ms": 0,
    "name_strategy": "topic_name",
    "name_strategy_validation": true,
    "producer_acks": "all",
    "producer_compression_type": "gzip",
    "producer_linger_ms": 0,
    "producer_max_request_size": 0,
    "simpleconsumer_pool_size_max": 0
  },
  "kafka-settings": {
    "auto_create_topics_enable": true,
    "compression_type": "gzip",
    "connections_max_idle_ms": 0,
    "default_replication_factor": 0,
    "group_initial_rebalance_delay_ms": 0,
    "group_max_session_timeout_ms": 0,
    "group_min_session_timeout_ms": 0,
    "log-cleanup-and-compaction": {
      "log_cleaner_delete_retention_ms": 0,
      "log_cleaner_max_compaction_lag_ms": 0,
      "log_cleaner_min_cleanable_ratio": 0,
      "log_cleaner_min_compaction_lag_ms": 0,
      "log_cleanup_policy": "delete"
    },
    "log_flush_interval_messages": 0,
    "log_flush_interval_ms": 0,
    "log_index_interval_bytes": 0,
    "log_index_size_max_bytes": 0,
    "log_local_retention_bytes": 0,
    "log_local_retention_ms": 0,
    "log_message_downconversion_enable": true,
    "log_message_timestamp_difference_max_ms": 0,
    "log_message_timestamp_type": "CreateTime",
    "log_preallocate": true,
    "log_retention_bytes": 0,
    "log_retention_hours": 0,
    "log_retention_ms": 0,
    "log_roll_jitter_ms": 0,
    "log_roll_ms": 0,
    "log_segment_bytes": 0,
    "log_segment_delete_delay_ms": 0,
    "max_connections_per_ip": 0,
    "max_incremental_fetch_session_cache_slots": 0,
    "message_max_bytes": 0,
    "min_insync_replicas": 0,
    "num_partitions": 0,
    "offsets_retention_minutes": 0,
    "producer_purgatory_purge_interval_requests": 0,
    "replica_fetch_max_bytes": 0,
    "replica_fetch_response_max_bytes": 0,
    "sasl_oauthbearer_expected_audience": "string",
    "sasl_oauthbearer_expected_issuer": "string",
    "sasl_oauthbearer_jwks_endpoint_url": "string",
    "sasl_oauthbearer_sub_claim_name": "string",
    "socket_request_max_bytes": 0,
    "transaction_partition_verification_enable": true,
    "transaction_remove_expired_transaction_cleanup_interval_ms": 0,
    "transaction_state_log_segment_bytes": 0
  },
  "maintenance": {
    "dow": "saturday",
    "time": "string"
  },
  "plan": "string",
  "schema-registry-enabled": true,
  "schema-registry-settings": {
    "leader_eligibility": true,
    "topic_name": "_schemas"
  },
  "termination-protection": true,
  "version": "string"
}
```
</details>


### Authentication Methods {#authentication-methods}

Kafka authentication methods

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `certificate` | boolean | no | Enable certificate/SSL authentication |
| `sasl` | boolean | no | Enable SASL authentication |

### Maintenance {#maintenance}

Automatic maintenance settings

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `dow` | string | **yes** | Day of week for installing updates<br/><br/>Allowed values: `saturday`, `tuesday`, `never`, `wednesday`, `sunday`, `friday`, `monday`, `thursday`. |
| `time` | string | **yes** | Time for installing updates, UTC<br/><br/>Min length: `8`. Max length: `8`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dbaas-service-kafka`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASServiceKafka) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_service_kafka) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasServiceKafka(java.lang.String,com.exoscale.sdk.model.CreateDbaasServiceKafkaRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-service-kafka`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-service-kafka

Get a DBaaS Kafka service

```
GET /dbaas-kafka/{name}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `authentication-methods` | [Authentication Methods](https://community.exoscale.com/reference/api/_schemas/dbaas-service-kafka/index.md#authentication-methods) | Kafka authentication methods |
| `backups` | array of [List of backups for the service](https://community.exoscale.com/reference/api/_schemas/dbaas-service-backup/index.md) | List of backups for the service |
| `components` | array of [Components](https://community.exoscale.com/reference/api/_schemas/dbaas-service-kafka/index.md#components) | Service component information objects |
| `connection-info` | [Connection Info](https://community.exoscale.com/reference/api/_schemas/dbaas-service-kafka/index.md#connection-info) | Kafka connection information properties |
| `created-at` | string | Service creation timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `disk-size` | integer | Disk space for data storage, in bytes<br/><br/>Min: `0`. |
| `integrations` | array of [DBaaS Integration](https://community.exoscale.com/reference/api/_schemas/dbaas-integration/index.md) | Service integrations |
| `ip-filter` | array[string] | Allow incoming connections from CIDR address block, e.g. '10.20.0.0/16' |
| `kafka-connect-enabled` | boolean | Whether Kafka Connect is enabled |
| `kafka-connect-settings` | [Kafka Connect configuration values](https://community.exoscale.com/reference/api/_schemas/json-schema-kafka-connect/index.md) | Kafka Connect configuration values |
| `kafka-rest-enabled` | boolean | Whether Kafka REST is enabled |
| `kafka-rest-settings` | [Kafka REST configuration](https://community.exoscale.com/reference/api/_schemas/json-schema-kafka-rest/index.md) | Kafka REST configuration |
| `kafka-settings` | [Kafka broker configuration values](https://community.exoscale.com/reference/api/_schemas/json-schema-kafka/index.md) | Kafka-specific settings |
| `maintenance` | [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-service-maintenance/index.md) | Automatic maintenance settings |
| `name` | string | Service name<br/><br/>Min length: `0`. Max length: `63`. |
| `node-count` | integer | Number of service nodes in the active plan<br/><br/>Min: `0`. |
| `node-cpu-count` | integer | Number of CPUs for each node<br/><br/>Min: `0`. |
| `node-memory` | integer | Memory of each node, in bytes<br/><br/>Min: `0`. |
| `node-states` | array of [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-node-state/index.md) | State of individual service nodes |
| `notifications` | array of [Service notifications](https://community.exoscale.com/reference/api/_schemas/dbaas-service-notification/index.md) | Service notifications |
| `plan` | string | Subscription plan |
| `prometheus-uri` | [Prometheus URI](https://community.exoscale.com/reference/api/_schemas/dbaas-service-kafka/index.md#prometheus-uri) | Prometheus integration URI |
| `schema-registry-enabled` | boolean | Whether Schema-Registry is enabled |
| `schema-registry-settings` | [Schema Registry configuration](https://community.exoscale.com/reference/api/_schemas/json-schema-schema-registry/index.md) | Schema Registry configuration |
| `state` | string | State of the service<br/><br/>Allowed values: `running`, `rebuilding`, `rebalancing`, `poweroff`. |
| `termination-protection` | boolean | Service is protected against termination and powering off |
| `type` | string | Service type code<br/><br/>Min length: `0`. Max length: `64`. |
| `updated-at` | string | Service last update timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `uri` | string | URI for connecting to the service (may be absent) |
| `uri-params` | object | service_uri parameterized into key-value pairs |
| `users` | array of [Users](https://community.exoscale.com/reference/api/_schemas/dbaas-service-kafka/index.md#users) | List of service users |
| `version` | string | Kafka version |
| `zone` | string | The zone where the service is running |

<details>
<summary>Example output</summary>

```json
{
  "authentication-methods": {
    "certificate": true,
    "sasl": true
  },
  "backups": [
    {
      "backup-name": "string",
      "backup-time": "2024-01-01T12:00:00Z",
      "data-size": 0,
      "tiered-storage-data-size": 0
    }
  ],
  "components": [
    {
      "component": "string",
      "host": "string",
      "kafka-authentication-method": "certificate",
      "port": 0,
      "route": "dynamic",
      "usage": "primary"
    }
  ],
  "connection-info": {
    "access-cert": "string",
    "access-key": "string",
    "connect-uri": "string",
    "nodes": [
      "string"
    ],
    "registry-uri": "string",
    "rest-uri": "string"
  },
  "created-at": "2024-01-01T12:00:00Z",
  "disk-size": 0,
  "integrations": [
    {
      "description": "string",
      "dest": "string",
      "id": "string",
      "is-active": true,
      "is-enabled": true,
      "settings": {},
      "source": "string",
      "status": "string",
      "type": "string"
    }
  ],
  "ip-filter": [
    "string"
  ],
  "kafka-connect-enabled": true,
  "kafka-connect-settings": {
    "connector_client_config_override_policy": "None",
    "consumer_auto_offset_reset": "earliest",
    "consumer_fetch_max_bytes": 0,
    "consumer_isolation_level": "read_uncommitted",
    "consumer_max_partition_fetch_bytes": 0,
    "consumer_max_poll_interval_ms": 0,
    "consumer_max_poll_records": 0,
    "offset_flush_interval_ms": 0,
    "offset_flush_timeout_ms": 0,
    "producer_batch_size": 0,
    "producer_buffer_memory": 0,
    "producer_compression_type": "gzip",
    "producer_linger_ms": 0,
    "producer_max_request_size": 0,
    "scheduled_rebalance_max_delay_ms": 0,
    "session_timeout_ms": 0
  },
  "kafka-rest-enabled": true,
  "kafka-rest-settings": {
    "consumer_enable_auto_commit": true,
    "consumer_request_max_bytes": 0,
    "consumer_request_timeout_ms": 0,
    "name_strategy": "topic_name",
    "name_strategy_validation": true,
    "producer_acks": "all",
    "producer_compression_type": "gzip",
    "producer_linger_ms": 0,
    "producer_max_request_size": 0,
    "simpleconsumer_pool_size_max": 0
  },
  "kafka-settings": {
    "auto_create_topics_enable": true,
    "compression_type": "gzip",
    "connections_max_idle_ms": 0,
    "default_replication_factor": 0,
    "group_initial_rebalance_delay_ms": 0,
    "group_max_session_timeout_ms": 0,
    "group_min_session_timeout_ms": 0,
    "log-cleanup-and-compaction": {
      "log_cleaner_delete_retention_ms": 0,
      "log_cleaner_max_compaction_lag_ms": 0,
      "log_cleaner_min_cleanable_ratio": 0,
      "log_cleaner_min_compaction_lag_ms": 0,
      "log_cleanup_policy": "delete"
    },
    "log_flush_interval_messages": 0,
    "log_flush_interval_ms": 0,
    "log_index_interval_bytes": 0,
    "log_index_size_max_bytes": 0,
    "log_local_retention_bytes": 0,
    "log_local_retention_ms": 0,
    "log_message_downconversion_enable": true,
    "log_message_timestamp_difference_max_ms": 0,
    "log_message_timestamp_type": "CreateTime",
    "log_preallocate": true,
    "log_retention_bytes": 0,
    "log_retention_hours": 0,
    "log_retention_ms": 0,
    "log_roll_jitter_ms": 0,
    "log_roll_ms": 0,
    "log_segment_bytes": 0,
    "log_segment_delete_delay_ms": 0,
    "max_connections_per_ip": 0,
    "max_incremental_fetch_session_cache_slots": 0,
    "message_max_bytes": 0,
    "min_insync_replicas": 0,
    "num_partitions": 0,
    "offsets_retention_minutes": 0,
    "producer_purgatory_purge_interval_requests": 0,
    "replica_fetch_max_bytes": 0,
    "replica_fetch_response_max_bytes": 0,
    "sasl_oauthbearer_expected_audience": "string",
    "sasl_oauthbearer_expected_issuer": "string",
    "sasl_oauthbearer_jwks_endpoint_url": "string",
    "sasl_oauthbearer_sub_claim_name": "string",
    "socket_request_max_bytes": 0,
    "transaction_partition_verification_enable": true,
    "transaction_remove_expired_transaction_cleanup_interval_ms": 0,
    "transaction_state_log_segment_bytes": 0
  },
  "maintenance": {
    "dow": "saturday",
    "time": "string",
    "updates": [
      {
        "deadline": "2024-01-01T12:00:00Z",
        "description": "string",
        "start-after": "2024-01-01T12:00:00Z",
        "start-at": "2024-01-01T12:00:00Z"
      }
    ]
  },
  "name": "string",
  "node-count": 0,
  "node-cpu-count": 0,
  "node-memory": 0,
  "node-states": [
    {
      "name": "string",
      "progress-updates": [
        {
          "completed": true,
          "current": 0,
          "max": 0,
          "min": 0,
          "phase": "stream",
          "unit": "string"
        }
      ],
      "role": "standby",
      "state": "leaving"
    }
  ],
  "notifications": [
    {
      "level": "warning",
      "message": "string",
      "metadata": {},
      "type": "service_powered_off_removal"
    }
  ],
  "plan": "string",
  "prometheus-uri": {
    "host": "string",
    "port": 0
  },
  "schema-registry-enabled": true,
  "schema-registry-settings": {
    "leader_eligibility": true,
    "topic_name": "_schemas"
  },
  "state": "running",
  "termination-protection": true,
  "type": "string",
  "updated-at": "2024-01-01T12:00:00Z",
  "uri": "string",
  "uri-params": {},
  "users": [
    {
      "access-cert": "string",
      "access-cert-expiry": "2024-01-01T12:00:00Z",
      "access-key": "string",
      "password": "string",
      "type": "string",
      "username": "string"
    }
  ],
  "version": "string",
  "zone": "string"
}
```
</details>


SDK reference for `get-dbaas-service-kafka`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASServiceKafka) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_service_kafka) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasServiceKafka(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-service-kafka`

## <span data-label="PUT" class="pill-PUT"></span>update-dbaas-service-kafka

Update a DBaaS Kafka service

```
PUT /dbaas-kafka/{name}
```

Update a DBaaS Kafka service

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `authentication-methods` | [Authentication Methods](#authentication-methods) | no | Kafka authentication methods |
| `ip-filter` | array[string] | no | Allow incoming connections from CIDR address block, e.g. '10.20.0.0/16' |
| `kafka-connect-enabled` | boolean | no | Allow clients to connect to kafka_connect from the public internet for service nodes that are in a project VPC or another type of private network |
| `kafka-connect-settings` | [Kafka Connect configuration values](https://community.exoscale.com/reference/api/_schemas/json-schema-kafka-connect/index.md) | no | Kafka Connect configuration values |
| `kafka-rest-enabled` | boolean | no | Enable Kafka-REST service |
| `kafka-rest-settings` | [Kafka REST configuration](https://community.exoscale.com/reference/api/_schemas/json-schema-kafka-rest/index.md) | no | Kafka REST configuration |
| `kafka-settings` | [Kafka broker configuration values](https://community.exoscale.com/reference/api/_schemas/json-schema-kafka/index.md) | no | Kafka-specific settings |
| `maintenance` | [Maintenance](#maintenance) | no | Automatic maintenance settings |
| `plan` | string | no | Subscription plan<br/><br/>Min length: `1`. Max length: `128`. |
| `schema-registry-enabled` | boolean | no | Enable Schema-Registry service |
| `schema-registry-settings` | [Schema Registry configuration](https://community.exoscale.com/reference/api/_schemas/json-schema-schema-registry/index.md) | no | Schema Registry configuration |
| `termination-protection` | boolean | no | Service is protected against termination and powering off |
| `version` | string | no | Kafka major version<br/><br/>Min length: `1`. |

<details>
<summary>Example</summary>

```json
{
  "authentication-methods": {
    "certificate": true,
    "sasl": true
  },
  "ip-filter": [
    "string"
  ],
  "kafka-connect-enabled": true,
  "kafka-connect-settings": {
    "connector_client_config_override_policy": "None",
    "consumer_auto_offset_reset": "earliest",
    "consumer_fetch_max_bytes": 0,
    "consumer_isolation_level": "read_uncommitted",
    "consumer_max_partition_fetch_bytes": 0,
    "consumer_max_poll_interval_ms": 0,
    "consumer_max_poll_records": 0,
    "offset_flush_interval_ms": 0,
    "offset_flush_timeout_ms": 0,
    "producer_batch_size": 0,
    "producer_buffer_memory": 0,
    "producer_compression_type": "gzip",
    "producer_linger_ms": 0,
    "producer_max_request_size": 0,
    "scheduled_rebalance_max_delay_ms": 0,
    "session_timeout_ms": 0
  },
  "kafka-rest-enabled": true,
  "kafka-rest-settings": {
    "consumer_enable_auto_commit": true,
    "consumer_request_max_bytes": 0,
    "consumer_request_timeout_ms": 0,
    "name_strategy": "topic_name",
    "name_strategy_validation": true,
    "producer_acks": "all",
    "producer_compression_type": "gzip",
    "producer_linger_ms": 0,
    "producer_max_request_size": 0,
    "simpleconsumer_pool_size_max": 0
  },
  "kafka-settings": {
    "auto_create_topics_enable": true,
    "compression_type": "gzip",
    "connections_max_idle_ms": 0,
    "default_replication_factor": 0,
    "group_initial_rebalance_delay_ms": 0,
    "group_max_session_timeout_ms": 0,
    "group_min_session_timeout_ms": 0,
    "log-cleanup-and-compaction": {
      "log_cleaner_delete_retention_ms": 0,
      "log_cleaner_max_compaction_lag_ms": 0,
      "log_cleaner_min_cleanable_ratio": 0,
      "log_cleaner_min_compaction_lag_ms": 0,
      "log_cleanup_policy": "delete"
    },
    "log_flush_interval_messages": 0,
    "log_flush_interval_ms": 0,
    "log_index_interval_bytes": 0,
    "log_index_size_max_bytes": 0,
    "log_local_retention_bytes": 0,
    "log_local_retention_ms": 0,
    "log_message_downconversion_enable": true,
    "log_message_timestamp_difference_max_ms": 0,
    "log_message_timestamp_type": "CreateTime",
    "log_preallocate": true,
    "log_retention_bytes": 0,
    "log_retention_hours": 0,
    "log_retention_ms": 0,
    "log_roll_jitter_ms": 0,
    "log_roll_ms": 0,
    "log_segment_bytes": 0,
    "log_segment_delete_delay_ms": 0,
    "max_connections_per_ip": 0,
    "max_incremental_fetch_session_cache_slots": 0,
    "message_max_bytes": 0,
    "min_insync_replicas": 0,
    "num_partitions": 0,
    "offsets_retention_minutes": 0,
    "producer_purgatory_purge_interval_requests": 0,
    "replica_fetch_max_bytes": 0,
    "replica_fetch_response_max_bytes": 0,
    "sasl_oauthbearer_expected_audience": "string",
    "sasl_oauthbearer_expected_issuer": "string",
    "sasl_oauthbearer_jwks_endpoint_url": "string",
    "sasl_oauthbearer_sub_claim_name": "string",
    "socket_request_max_bytes": 0,
    "transaction_partition_verification_enable": true,
    "transaction_remove_expired_transaction_cleanup_interval_ms": 0,
    "transaction_state_log_segment_bytes": 0
  },
  "maintenance": {
    "dow": "saturday",
    "time": "string"
  },
  "plan": "string",
  "schema-registry-enabled": true,
  "schema-registry-settings": {
    "leader_eligibility": true,
    "topic_name": "_schemas"
  },
  "termination-protection": true,
  "version": "string"
}
```
</details>


### Authentication Methods {#authentication-methods}

Kafka authentication methods

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `certificate` | boolean | no | Enable certificate/SSL authentication |
| `sasl` | boolean | no | Enable SASL authentication |

### Maintenance {#maintenance}

Automatic maintenance settings

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `dow` | string | **yes** | Day of week for installing updates<br/><br/>Allowed values: `saturday`, `tuesday`, `never`, `wednesday`, `sunday`, `friday`, `monday`, `thursday`. |
| `time` | string | **yes** | Time for installing updates, UTC<br/><br/>Min length: `8`. Max length: `8`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-dbaas-service-kafka`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateDBAASServiceKafka) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_dbaas_service_kafka) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateDbaasServiceKafka(java.lang.String,com.exoscale.sdk.model.UpdateDbaasServiceKafkaRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-dbaas-service-kafka`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-service-kafka

Delete a Kafka service

```
DELETE /dbaas-kafka/{name}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-service-kafka`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASServiceKafka) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_service_kafka) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasServiceKafka(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-service-kafka`


---

## Other Operations

## <span data-label="GET" class="pill-GET"></span>get-dbaas-kafka-acl-config

Get DBaaS kafka ACL configuration

```
GET /dbaas-kafka/{name}/acl-config
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `schema-registry-acl` | array of [DBaaS Kafka Schema Registry Acl Entry](https://community.exoscale.com/reference/api/_schemas/dbaas-kafka-schema-registry-acl-entry/index.md) |  |
| `topic-acl` | array of [DBaaS Kafka Topic Acl Entry](https://community.exoscale.com/reference/api/_schemas/dbaas-kafka-topic-acl-entry/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "schema-registry-acl": [
    {
      "id": "string",
      "permission": "schema_registry_read",
      "resource": "string",
      "username": "string"
    }
  ],
  "topic-acl": [
    {
      "id": "string",
      "permission": "admin",
      "topic": "string",
      "username": "string"
    }
  ]
}
```
</details>


SDK reference for `get-dbaas-kafka-acl-config`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASKafkaAclConfig) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_kafka_acl_config) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasKafkaAclConfig(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-kafka-acl-config`

## <span data-label="GET" class="pill-GET"></span>reveal-dbaas-kafka-connect-password

Reveal the secrets for DBaaS Kafka Connect

```
GET /dbaas-kafka/{service-name}/connect/password/reveal
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `password` | string | Kafka Connect password |
| `username` | string | Kafka Connect username |

<details>
<summary>Example output</summary>

```json
{
  "password": "string",
  "username": "string"
}
```
</details>


SDK reference for `reveal-dbaas-kafka-connect-password`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RevealDBAASKafkaConnectPassword) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reveal_dbaas_kafka_connect_password) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#revealDbaasKafkaConnectPassword(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reveal-dbaas-kafka-connect-password`

## <span data-label="PUT" class="pill-PUT"></span>start-dbaas-kafka-maintenance

Initiate Kafka maintenance update

```
PUT /dbaas-kafka/{name}/maintenance/start
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `start-dbaas-kafka-maintenance`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.StartDBAASKafkaMaintenance) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.start_dbaas_kafka_maintenance) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#startDbaasKafkaMaintenance(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api start-dbaas-kafka-maintenance`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-settings-kafka

Get DBaaS Kafka settings

```
GET /dbaas-settings-kafka
```

Get DBaaS Kafka settings

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `settings` | [Settings](#settings) |  |

<details>
<summary>Example output</summary>

```json
{
  "settings": {
    "kafka": {
      "additionalProperties": true,
      "properties": {},
      "title": "string",
      "type": "string"
    },
    "kafka-connect": {
      "additionalProperties": true,
      "properties": {},
      "title": "string",
      "type": "string"
    },
    "kafka-rest": {
      "additionalProperties": true,
      "properties": {},
      "title": "string",
      "type": "string"
    },
    "schema-registry": {
      "additionalProperties": true,
      "properties": {},
      "title": "string",
      "type": "string"
    }
  }
}
```
</details>


### Settings {#settings}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `kafka` | [Kafka](#kafka) | no | Kafka broker configuration values |
| `kafka-connect` | [Kafka Connect](#kafka-connect) | no | Kafka Connect configuration values |
| `kafka-rest` | [Kafka Rest](#kafka-rest) | no | Kafka REST configuration |
| `schema-registry` | [Schema Registry](#schema-registry) | no | Schema Registry configuration |

### Kafka {#kafka}

Kafka broker configuration values

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `additionalProperties` | boolean | no |  |
| `properties` | object | no |  |
| `title` | string | no |  |
| `type` | string | no |  |

### Kafka Connect {#kafka-connect}

Kafka Connect configuration values

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `additionalProperties` | boolean | no |  |
| `properties` | object | no |  |
| `title` | string | no |  |
| `type` | string | no |  |

### Kafka Rest {#kafka-rest}

Kafka REST configuration

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `additionalProperties` | boolean | no |  |
| `properties` | object | no |  |
| `title` | string | no |  |
| `type` | string | no |  |

### Schema Registry {#schema-registry}

Schema Registry configuration

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `additionalProperties` | boolean | no |  |
| `properties` | object | no |  |
| `title` | string | no |  |
| `type` | string | no |  |

SDK reference for `get-dbaas-settings-kafka`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASSettingsKafka) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_settings_kafka) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasSettingsKafka())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-settings-kafka`

---

url: https://community.exoscale.com/reference/api/dbaas/dbaas-opensearch/

---

# DBaaS Opensearch

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Opensearch, the popular open-source search and analytics database.

[Read more](https://community.exoscale.com/product/dbaas/service-specific/opensearch/index.md)

## <span data-label="PUT" class="pill-PUT"></span>update-dbaas-opensearch-acl-config

Create a DBaaS OpenSearch ACL configuration

```
PUT /dbaas-opensearch/{name}/acl-config
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `acl-enabled` | boolean | no | Enable OpenSearch ACLs. When disabled authenticated service users have unrestricted access. |
| `acls` | array of [Acls](https://community.exoscale.com/reference/api/_schemas/dbaas-opensearch-acl-config/index.md#acls) | no | List of OpenSearch ACLs |
| `extended-acl-enabled` | boolean | no | Enable to enforce index rules in a limited fashion for requests that use the _mget, _msearch, and _bulk APIs |

<details>
<summary>Example</summary>

```json
{
  "acl-enabled": true,
  "acls": [
    {
      "rules": [
        {
          "index": "string",
          "permission": "admin"
        }
      ],
      "username": "string"
    }
  ],
  "extended-acl-enabled": true
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-dbaas-opensearch-acl-config`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateDBAASOpensearchAclConfig) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_dbaas_opensearch_acl_config) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateDbaasOpensearchAclConfig(java.lang.String,com.exoscale.sdk.model.UpdateDbaasOpensearchAclConfigRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-dbaas-opensearch-acl-config`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-opensearch-acl-config

Get DBaaS OpenSearch ACL configuration

```
GET /dbaas-opensearch/{name}/acl-config
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `acl-enabled` | boolean | Enable OpenSearch ACLs. When disabled authenticated service users have unrestricted access. |
| `acls` | array of [Acls](https://community.exoscale.com/reference/api/_schemas/dbaas-opensearch-acl-config/index.md#acls) | List of OpenSearch ACLs |
| `extended-acl-enabled` | boolean | Enable to enforce index rules in a limited fashion for requests that use the _mget, _msearch, and _bulk APIs |

<details>
<summary>Example output</summary>

```json
{
  "acl-enabled": true,
  "acls": [
    {
      "rules": [
        {
          "index": "string",
          "permission": "admin"
        }
      ],
      "username": "string"
    }
  ],
  "extended-acl-enabled": true
}
```
</details>


SDK reference for `get-dbaas-opensearch-acl-config`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASOpensearchAclConfig) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_opensearch_acl_config) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasOpensearchAclConfig(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-opensearch-acl-config`

## <span data-label="POST" class="pill-POST"></span>create-dbaas-opensearch-user

Create a DBaaS OpenSearch user

```
POST /dbaas-opensearch/{service-name}/user
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `username` | string | **yes** | Username<br/><br/>Min length: `1`. Max length: `64`. |

<details>
<summary>Example</summary>

```json
{
  "username": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dbaas-opensearch-user`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASOpensearchUser) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_opensearch_user) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasOpensearchUser(java.lang.String,com.exoscale.sdk.model.CreateDbaasOpensearchUserRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-opensearch-user`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-opensearch-user

Delete a DBaaS OpenSearch user

```
DELETE /dbaas-opensearch/{service-name}/user/{username}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `username` | `path` | Min length: `1`. Max length: `64`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-opensearch-user`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASOpensearchUser) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_opensearch_user) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasOpensearchUser(java.lang.String,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-opensearch-user`

## <span data-label="GET" class="pill-GET"></span>reveal-dbaas-opensearch-user-password

Reveal the secrets of a DBaaS OpenSearch user

```
GET /dbaas-opensearch/{service-name}/user/{username}/password/reveal
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `username` | `path` | Min length: `1`. Max length: `64`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `password` | string | Opensearch password |
| `username` | string | Opensearch username |

<details>
<summary>Example output</summary>

```json
{
  "password": "string",
  "username": "string"
}
```
</details>


SDK reference for `reveal-dbaas-opensearch-user-password`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RevealDBAASOpensearchUserPassword) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reveal_dbaas_opensearch_user_password) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#revealDbaasOpensearchUserPassword(java.lang.String,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reveal-dbaas-opensearch-user-password`

## <span data-label="PUT" class="pill-PUT"></span>reset-dbaas-opensearch-user-password

Reset the credentials of a DBaaS OpenSearch user

```
PUT /dbaas-opensearch/{service-name}/user/{username}/password/reset
```

If no password is provided one will be generated automatically.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `username` | `path` | Min length: `1`. Max length: `64`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `password` | string | no | New password<br/><br/>Min length: `8`. Max length: `256`. |

<details>
<summary>Example</summary>

```json
{
  "password": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `reset-dbaas-opensearch-user-password`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ResetDBAASOpensearchUserPassword) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reset_dbaas_opensearch_user_password) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#resetDbaasOpensearchUserPassword(java.lang.String,java.lang.String,com.exoscale.sdk.model.ResetDbaasOpensearchUserPasswordRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reset-dbaas-opensearch-user-password`

## <span data-label="POST" class="pill-POST"></span>create-dbaas-service-opensearch

Create a DBaaS OpenSearch service

```
POST /dbaas-opensearch/{name}
```

Create a DBaaS OpenSearch service

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `plan` | string | **yes** | Subscription plan<br/><br/>Min length: `1`. Max length: `128`. |
| `fork-from-service` | string | no | Service to fork from<br/><br/>Min length: `0`. Max length: `63`. |
| `index-patterns` | array of [Index Patterns](#index-patterns) | no | Allows you to create glob style patterns and set a max number of indexes matching this pattern you want to keep. Creating indexes exceeding this value will cause the oldest one to get deleted. You could for example create a pattern looking like 'logs.?' and then create index logs.1, logs.2 etc, it will delete logs.1 once you create logs.6. Do note 'logs.?' does not apply to logs.10. Note: Setting max_index_count to 0 will do nothing and the pattern gets ignored. |
| `index-template` | [Index Template](#index-template) | no | Template settings for all new indexes |
| `ip-filter` | array[string] | no | Allow incoming connections from CIDR address block, e.g. '10.20.0.0/16' |
| `keep-index-refresh-interval` | boolean | no | Aiven automation resets index.refresh_interval to default value for every index to be sure that indices are always visible to search. If it doesn't fit your case, you can disable this by setting up this flag to true. |
| `maintenance` | [Maintenance](#maintenance) | no | Automatic maintenance settings |
| `max-index-count` | integer | no | Maximum number of indexes to keep before deleting the oldest one<br/><br/>Min: `0`. |
| `opensearch-dashboards` | [Opensearch Dashboards](#opensearch-dashboards) | no | OpenSearch Dashboards settings |
| `opensearch-settings` | [OpenSearch settings](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md) | no | OpenSearch-specific settings |
| `recovery-backup-name` | string | no | Name of a backup to recover from for services that support backup names<br/><br/>Min length: `1`. |
| `termination-protection` | boolean | no | Service is protected against termination and powering off |
| `version` | string | no | OpenSearch major version<br/><br/>Min length: `1`. |

<details>
<summary>Example</summary>

```json
{
  "fork-from-service": "string",
  "index-patterns": [
    {
      "max-index-count": 0,
      "pattern": "string",
      "sorting-algorithm": "alphabetical"
    }
  ],
  "index-template": {
    "mapping-nested-objects-limit": 0,
    "number-of-replicas": 0,
    "number-of-shards": 0
  },
  "ip-filter": [
    "string"
  ],
  "keep-index-refresh-interval": true,
  "maintenance": {
    "dow": "saturday",
    "time": "string"
  },
  "max-index-count": 0,
  "opensearch-dashboards": {
    "enabled": true,
    "max-old-space-size": 0,
    "opensearch-request-timeout": 0
  },
  "opensearch-settings": {
    "action_auto_create_index_enabled": true,
    "action_destructive_requires_name": true,
    "auth_failure_listeners": {
      "internal_authentication_backend_limiting": {
        "allowed_tries": 0,
        "authentication_backend": "internal",
        "block_expiry_seconds": 0,
        "max_blocked_clients": 0,
        "max_tracked_clients": 0,
        "time_window_seconds": 0,
        "type": "username"
      },
      "ip_rate_limiting": {
        "allowed_tries": 0,
        "block_expiry_seconds": 0,
        "max_blocked_clients": 0,
        "max_tracked_clients": 0,
        "time_window_seconds": 0,
        "type": "ip"
      }
    },
    "cluster": {
      "cluster.filecache.remote_data_ratio": 0,
      "cluster.remote_store": {
        "state.global_metadata.upload_timeout": "20s",
        "state.metadata_manifest.upload_timeout": "20s",
        "translog.buffer_interval": "650ms",
        "translog.max_readers": 0
      },
      "cluster.routing.allocation.balance.prefer_primary": true,
      "cluster.search.request.slowlog": {
        "level": "debug",
        "threshold": {
          "debug": "string",
          "info": "string",
          "trace": "string",
          "warn": "string"
        }
      }
    },
    "cluster_max_shards_per_node": 0,
    "cluster_routing_allocation_node_concurrent_recoveries": 0,
    "disk_watermarks": {
      "flood_stage": 0,
      "high": 0,
      "low": 0
    },
    "email-sender": {
      "email_sender_name": "alert-sender",
      "email_sender_password": "very-secure-mail-password",
      "email_sender_username": "jane@example.com"
    },
    "enable_remote_backed_storage": true,
    "enable_searchable_snapshots": true,
    "enable_security_audit": true,
    "enable_snapshot_api": true,
    "http_max_content_length": 0,
    "http_max_header_size": 0,
    "http_max_initial_line_length": 0,
    "indices_fielddata_cache_size": 0,
    "indices_memory_index_buffer_size": 0,
    "indices_memory_max_index_buffer_size": 0,
    "indices_memory_min_index_buffer_size": 0,
    "indices_queries_cache_size": 0,
    "indices_query_bool_max_clause_count": 0,
    "indices_recovery_max_bytes_per_sec": 0,
    "indices_recovery_max_concurrent_file_chunks": 0,
    "ism-history": {
      "ism_enabled": true,
      "ism_history_enabled": true,
      "ism_history_max_age": 0,
      "ism_history_max_docs": 0,
      "ism_history_rollover_check_period": 0,
      "ism_history_rollover_retention_period": 0
    },
    "knn_memory_circuit_breaker_enabled": true,
    "knn_memory_circuit_breaker_limit": 0,
    "ml-commons": {
      "ml_commons_model_access_control_enabled": true,
      "ml_commons_native_memory_threshold": 0,
      "ml_commons_only_run_on_ml_node": true
    },
    "node.search.cache.size": "5gb",
    "override_main_response_version": true,
    "plugins_alerting_filter_by_backend_roles": true,
    "reindex_remote_whitelist": [
      "anotherservice.aivencloud.com:12398"
    ],
    "remote_store": {
      "segment.pressure.bytes_lag.variance_factor": 0,
      "segment.pressure.consecutive_failures.limit": 0,
      "segment.pressure.enabled": true,
      "segment.pressure.time_lag.variance_factor": 0
    },
    "script_max_compilations_rate": "75/5m",
    "search.insights.top_queries": {
      "cpu": {
        "enabled": true,
        "top_n_size": 0,
        "window_size": "string"
      },
      "latency": {
        "enabled": true,
        "top_n_size": 0,
        "window_size": "string"
      },
      "memory": {
        "enabled": true,
        "top_n_size": 0,
        "window_size": "string"
      }
    },
    "search_backpressure": {
      "mode": "monitor_only",
      "node_duress": {
        "cpu_threshold": 0,
        "heap_threshold": 0,
        "num_successive_breaches": 0
      },
      "search_shard_task": {
        "cancellation_burst": 0,
        "cancellation_rate": 0,
        "cancellation_ratio": 0,
        "cpu_time_millis_threshold": 0,
        "elapsed_time_millis_threshold": 0,
        "heap_moving_average_window_size": 0,
        "heap_percent_threshold": 0,
        "heap_variance": 0,
        "total_heap_percent_threshold": 0
      },
      "search_task": {
        "cancellation_burst": 0,
        "cancellation_rate": 0,
        "cancellation_ratio": 0,
        "cpu_time_millis_threshold": 0,
        "elapsed_time_millis_threshold": 0,
        "heap_moving_average_window_size": 0,
        "heap_percent_threshold": 0,
        "heap_variance": 0,
        "total_heap_percent_threshold": 0
      }
    },
    "search_max_buckets": 0,
    "segrep": {
      "pressure.checkpoint.limit": 0,
      "pressure.enabled": true,
      "pressure.replica.stale.limit": 0,
      "pressure.time.limit": "5m"
    },
    "shard_indexing_pressure": {
      "enabled": true,
      "enforced": true,
      "operating_factor": {
        "lower": 0,
        "optimal": 0,
        "upper": 0
      },
      "primary_parameter": {
        "node": {
          "soft_limit": 0
        },
        "shard": {
          "min_limit": 0
        }
      }
    },
    "thread_pool_analyze_queue_size": 0,
    "thread_pool_analyze_size": 0,
    "thread_pool_force_merge_size": 0,
    "thread_pool_get_queue_size": 0,
    "thread_pool_get_size": 0,
    "thread_pool_search_queue_size": 0,
    "thread_pool_search_size": 0,
    "thread_pool_search_throttled_queue_size": 0,
    "thread_pool_search_throttled_size": 0,
    "thread_pool_write_queue_size": 0,
    "thread_pool_write_size": 0
  },
  "plan": "string",
  "recovery-backup-name": "string",
  "termination-protection": true,
  "version": "string"
}
```
</details>


### Index Patterns {#index-patterns}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `max-index-count` | integer | no | Maximum number of indexes to keep<br/><br/>Min: `0`. |
| `pattern` | string | no | fnmatch pattern<br/><br/>Max length: `1024`. |
| `sorting-algorithm` | string | no | Deletion sorting algorithm<br/><br/>Allowed values: `alphabetical`, `creation_date`. |

### Maintenance {#maintenance}

Automatic maintenance settings

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `dow` | string | **yes** | Day of week for installing updates<br/><br/>Allowed values: `saturday`, `tuesday`, `never`, `wednesday`, `sunday`, `friday`, `monday`, `thursday`. |
| `time` | string | **yes** | Time for installing updates, UTC<br/><br/>Min length: `8`. Max length: `8`. |

### Index Template {#index-template}

Template settings for all new indexes

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `mapping-nested-objects-limit` | integer | no | The maximum number of nested JSON objects that a single document can contain across all nested types. This limit helps to prevent out of memory errors when a document contains too many nested objects. Default is 10000.<br/><br/>Min: `0`. Max: `100000`. |
| `number-of-replicas` | integer | no | The number of replicas each primary shard has.<br/><br/>Min: `0`. Max: `29`. |
| `number-of-shards` | integer | no | The number of primary shards that an index should have.<br/><br/>Min: `1`. Max: `1024`. |

### Opensearch Dashboards {#opensearch-dashboards}

OpenSearch Dashboards settings

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `enabled` | boolean | no | Enable or disable OpenSearch Dashboards (default: true) |
| `max-old-space-size` | integer | no | Limits the maximum amount of memory (in MiB) the OpenSearch Dashboards process can use. This sets the max_old_space_size option of the nodejs running the OpenSearch Dashboards. Note: the memory reserved by OpenSearch Dashboards is not available for OpenSearch. (default: 128)<br/><br/>Min: `64`. Max: `1024`. |
| `opensearch-request-timeout` | integer | no | Timeout in milliseconds for requests made by OpenSearch Dashboards towards OpenSearch (default: 30000)<br/><br/>Min: `5000`. Max: `120000`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dbaas-service-opensearch`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASServiceOpensearch) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_service_opensearch) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasServiceOpensearch(java.lang.String,com.exoscale.sdk.model.CreateDbaasServiceOpensearchRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-service-opensearch`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-service-opensearch

Get a DBaaS OpenSearch service

```
GET /dbaas-opensearch/{name}
```

Get a DBaaS OpenSearch service

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `backups` | array of [List of backups for the service](https://community.exoscale.com/reference/api/_schemas/dbaas-service-backup/index.md) | List of backups for the service |
| `components` | array of [Components](https://community.exoscale.com/reference/api/_schemas/dbaas-service-opensearch/index.md#components) | Service component information objects |
| `connection-info` | [Connection Info](https://community.exoscale.com/reference/api/_schemas/dbaas-service-opensearch/index.md#connection-info) | Opensearch connection information properties |
| `created-at` | string | Service creation timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `description` | string | DbaaS service description |
| `disk-size` | integer | Disk space for data storage, in bytes<br/><br/>Min: `0`. |
| `index-patterns` | array of [Index Patterns](https://community.exoscale.com/reference/api/_schemas/dbaas-service-opensearch/index.md#index-patterns) | Allows you to create glob style patterns and set a max number of indexes matching this pattern you want to keep. Creating indexes exceeding this value will cause the oldest one to get deleted. You could for example create a pattern looking like 'logs.?' and then create index logs.1, logs.2 etc, it will delete logs.1 once you create logs.6. Do note 'logs.?' does not apply to logs.10. Note: Setting max_index_count to 0 will do nothing and the pattern gets ignored. |
| `index-template` | [Index Template](https://community.exoscale.com/reference/api/_schemas/dbaas-service-opensearch/index.md#index-template) | Template settings for all new indexes |
| `integrations` | array of [DBaaS Integration](https://community.exoscale.com/reference/api/_schemas/dbaas-integration/index.md) | Service integrations |
| `ip-filter` | array[string] | Allowed CIDR address blocks for incoming connections |
| `keep-index-refresh-interval` | boolean | Aiven automation resets index.refresh_interval to default value for every index to be sure that indices are always visible to search. If it doesn't fit your case, you can disable this by setting up this flag to true. |
| `maintenance` | [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-service-maintenance/index.md) | Automatic maintenance settings |
| `max-index-count` | integer | Maximum number of indexes to keep before deleting the oldest one<br/><br/>Min: `0`. |
| `name` | string | Service name<br/><br/>Min length: `0`. Max length: `63`. |
| `node-count` | integer | Number of service nodes in the active plan<br/><br/>Min: `0`. |
| `node-cpu-count` | integer | Number of CPUs for each node<br/><br/>Min: `0`. |
| `node-memory` | integer | Memory of each node, in bytes<br/><br/>Min: `0`. |
| `node-states` | array of [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-node-state/index.md) | State of individual service nodes |
| `notifications` | array of [Service notifications](https://community.exoscale.com/reference/api/_schemas/dbaas-service-notification/index.md) | Service notifications |
| `opensearch-dashboards` | [Opensearch Dashboards](https://community.exoscale.com/reference/api/_schemas/dbaas-service-opensearch/index.md#opensearch-dashboards) | OpenSearch Dashboards settings |
| `opensearch-settings` | [OpenSearch settings](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md) | OpenSearch-specific settings |
| `plan` | string | Subscription plan |
| `prometheus-uri` | [Prometheus URI](https://community.exoscale.com/reference/api/_schemas/dbaas-service-opensearch/index.md#prometheus-uri) | Prometheus integration URI |
| `state` | string | State of the service<br/><br/>Allowed values: `running`, `rebuilding`, `rebalancing`, `poweroff`. |
| `termination-protection` | boolean | Service is protected against termination and powering off |
| `type` | string | Service type code<br/><br/>Min length: `0`. Max length: `64`. |
| `updated-at` | string | Service last update timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `uri` | string | URI for connecting to the service (may be absent) |
| `uri-params` | object | service_uri parameterized into key-value pairs |
| `users` | array of [Users](https://community.exoscale.com/reference/api/_schemas/dbaas-service-opensearch/index.md#users) | List of service users |
| `version` | string | OpenSearch version |
| `zone` | string | The zone where the service is running |

<details>
<summary>Example output</summary>

```json
{
  "backups": [
    {
      "backup-name": "string",
      "backup-time": "2024-01-01T12:00:00Z",
      "data-size": 0,
      "tiered-storage-data-size": 0
    }
  ],
  "components": [
    {
      "component": "string",
      "host": "string",
      "port": 0,
      "route": "dynamic",
      "usage": "primary"
    }
  ],
  "connection-info": {
    "dashboard-uri": "string",
    "password": "string",
    "uri": [
      "string"
    ],
    "username": "string"
  },
  "created-at": "2024-01-01T12:00:00Z",
  "description": "string",
  "disk-size": 0,
  "index-patterns": [
    {
      "max-index-count": 0,
      "pattern": "string",
      "sorting-algorithm": "alphabetical"
    }
  ],
  "index-template": {
    "mapping-nested-objects-limit": 0,
    "number-of-replicas": 0,
    "number-of-shards": 0
  },
  "integrations": [
    {
      "description": "string",
      "dest": "string",
      "id": "string",
      "is-active": true,
      "is-enabled": true,
      "settings": {},
      "source": "string",
      "status": "string",
      "type": "string"
    }
  ],
  "ip-filter": [
    "string"
  ],
  "keep-index-refresh-interval": true,
  "maintenance": {
    "dow": "saturday",
    "time": "string",
    "updates": [
      {
        "deadline": "2024-01-01T12:00:00Z",
        "description": "string",
        "start-after": "2024-01-01T12:00:00Z",
        "start-at": "2024-01-01T12:00:00Z"
      }
    ]
  },
  "max-index-count": 0,
  "name": "string",
  "node-count": 0,
  "node-cpu-count": 0,
  "node-memory": 0,
  "node-states": [
    {
      "name": "string",
      "progress-updates": [
        {
          "completed": true,
          "current": 0,
          "max": 0,
          "min": 0,
          "phase": "stream",
          "unit": "string"
        }
      ],
      "role": "standby",
      "state": "leaving"
    }
  ],
  "notifications": [
    {
      "level": "warning",
      "message": "string",
      "metadata": {},
      "type": "service_powered_off_removal"
    }
  ],
  "opensearch-dashboards": {
    "enabled": true,
    "max-old-space-size": 0,
    "opensearch-request-timeout": 0
  },
  "opensearch-settings": {
    "action_auto_create_index_enabled": true,
    "action_destructive_requires_name": true,
    "auth_failure_listeners": {
      "internal_authentication_backend_limiting": {
        "allowed_tries": 0,
        "authentication_backend": "internal",
        "block_expiry_seconds": 0,
        "max_blocked_clients": 0,
        "max_tracked_clients": 0,
        "time_window_seconds": 0,
        "type": "username"
      },
      "ip_rate_limiting": {
        "allowed_tries": 0,
        "block_expiry_seconds": 0,
        "max_blocked_clients": 0,
        "max_tracked_clients": 0,
        "time_window_seconds": 0,
        "type": "ip"
      }
    },
    "cluster": {
      "cluster.filecache.remote_data_ratio": 0,
      "cluster.remote_store": {
        "state.global_metadata.upload_timeout": "20s",
        "state.metadata_manifest.upload_timeout": "20s",
        "translog.buffer_interval": "650ms",
        "translog.max_readers": 0
      },
      "cluster.routing.allocation.balance.prefer_primary": true,
      "cluster.search.request.slowlog": {
        "level": "debug",
        "threshold": {
          "debug": "string",
          "info": "string",
          "trace": "string",
          "warn": "string"
        }
      }
    },
    "cluster_max_shards_per_node": 0,
    "cluster_routing_allocation_node_concurrent_recoveries": 0,
    "disk_watermarks": {
      "flood_stage": 0,
      "high": 0,
      "low": 0
    },
    "email-sender": {
      "email_sender_name": "alert-sender",
      "email_sender_password": "very-secure-mail-password",
      "email_sender_username": "jane@example.com"
    },
    "enable_remote_backed_storage": true,
    "enable_searchable_snapshots": true,
    "enable_security_audit": true,
    "enable_snapshot_api": true,
    "http_max_content_length": 0,
    "http_max_header_size": 0,
    "http_max_initial_line_length": 0,
    "indices_fielddata_cache_size": 0,
    "indices_memory_index_buffer_size": 0,
    "indices_memory_max_index_buffer_size": 0,
    "indices_memory_min_index_buffer_size": 0,
    "indices_queries_cache_size": 0,
    "indices_query_bool_max_clause_count": 0,
    "indices_recovery_max_bytes_per_sec": 0,
    "indices_recovery_max_concurrent_file_chunks": 0,
    "ism-history": {
      "ism_enabled": true,
      "ism_history_enabled": true,
      "ism_history_max_age": 0,
      "ism_history_max_docs": 0,
      "ism_history_rollover_check_period": 0,
      "ism_history_rollover_retention_period": 0
    },
    "knn_memory_circuit_breaker_enabled": true,
    "knn_memory_circuit_breaker_limit": 0,
    "ml-commons": {
      "ml_commons_model_access_control_enabled": true,
      "ml_commons_native_memory_threshold": 0,
      "ml_commons_only_run_on_ml_node": true
    },
    "node.search.cache.size": "5gb",
    "override_main_response_version": true,
    "plugins_alerting_filter_by_backend_roles": true,
    "reindex_remote_whitelist": [
      "anotherservice.aivencloud.com:12398"
    ],
    "remote_store": {
      "segment.pressure.bytes_lag.variance_factor": 0,
      "segment.pressure.consecutive_failures.limit": 0,
      "segment.pressure.enabled": true,
      "segment.pressure.time_lag.variance_factor": 0
    },
    "script_max_compilations_rate": "75/5m",
    "search.insights.top_queries": {
      "cpu": {
        "enabled": true,
        "top_n_size": 0,
        "window_size": "string"
      },
      "latency": {
        "enabled": true,
        "top_n_size": 0,
        "window_size": "string"
      },
      "memory": {
        "enabled": true,
        "top_n_size": 0,
        "window_size": "string"
      }
    },
    "search_backpressure": {
      "mode": "monitor_only",
      "node_duress": {
        "cpu_threshold": 0,
        "heap_threshold": 0,
        "num_successive_breaches": 0
      },
      "search_shard_task": {
        "cancellation_burst": 0,
        "cancellation_rate": 0,
        "cancellation_ratio": 0,
        "cpu_time_millis_threshold": 0,
        "elapsed_time_millis_threshold": 0,
        "heap_moving_average_window_size": 0,
        "heap_percent_threshold": 0,
        "heap_variance": 0,
        "total_heap_percent_threshold": 0
      },
      "search_task": {
        "cancellation_burst": 0,
        "cancellation_rate": 0,
        "cancellation_ratio": 0,
        "cpu_time_millis_threshold": 0,
        "elapsed_time_millis_threshold": 0,
        "heap_moving_average_window_size": 0,
        "heap_percent_threshold": 0,
        "heap_variance": 0,
        "total_heap_percent_threshold": 0
      }
    },
    "search_max_buckets": 0,
    "segrep": {
      "pressure.checkpoint.limit": 0,
      "pressure.enabled": true,
      "pressure.replica.stale.limit": 0,
      "pressure.time.limit": "5m"
    },
    "shard_indexing_pressure": {
      "enabled": true,
      "enforced": true,
      "operating_factor": {
        "lower": 0,
        "optimal": 0,
        "upper": 0
      },
      "primary_parameter": {
        "node": {
          "soft_limit": 0
        },
        "shard": {
          "min_limit": 0
        }
      }
    },
    "thread_pool_analyze_queue_size": 0,
    "thread_pool_analyze_size": 0,
    "thread_pool_force_merge_size": 0,
    "thread_pool_get_queue_size": 0,
    "thread_pool_get_size": 0,
    "thread_pool_search_queue_size": 0,
    "thread_pool_search_size": 0,
    "thread_pool_search_throttled_queue_size": 0,
    "thread_pool_search_throttled_size": 0,
    "thread_pool_write_queue_size": 0,
    "thread_pool_write_size": 0
  },
  "plan": "string",
  "prometheus-uri": {
    "host": "string",
    "port": 0
  },
  "state": "running",
  "termination-protection": true,
  "type": "string",
  "updated-at": "2024-01-01T12:00:00Z",
  "uri": "string",
  "uri-params": {},
  "users": [
    {
      "password": "string",
      "type": "string",
      "username": "string"
    }
  ],
  "version": "string",
  "zone": "string"
}
```
</details>


SDK reference for `get-dbaas-service-opensearch`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASServiceOpensearch) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_service_opensearch) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasServiceOpensearch(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-service-opensearch`

## <span data-label="PUT" class="pill-PUT"></span>update-dbaas-service-opensearch

Update a DBaaS OpenSearch service

```
PUT /dbaas-opensearch/{name}
```

Update a DBaaS OpenSearch service

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `index-patterns` | array of [Index Patterns](#index-patterns) | no | Allows you to create glob style patterns and set a max number of indexes matching this pattern you want to keep. Creating indexes exceeding this value will cause the oldest one to get deleted. You could for example create a pattern looking like 'logs.?' and then create index logs.1, logs.2 etc, it will delete logs.1 once you create logs.6. Do note 'logs.?' does not apply to logs.10. Note: Setting max_index_count to 0 will do nothing and the pattern gets ignored. |
| `index-template` | [Index Template](#index-template) | no | Template settings for all new indexes |
| `ip-filter` | array[string] | no | Allow incoming connections from CIDR address block, e.g. '10.20.0.0/16' |
| `keep-index-refresh-interval` | boolean | no | Aiven automation resets index.refresh_interval to default value for every index to be sure that indices are always visible to search. If it doesn't fit your case, you can disable this by setting up this flag to true. |
| `maintenance` | [Maintenance](#maintenance) | no | Automatic maintenance settings |
| `max-index-count` | integer | no | Maximum number of indexes to keep before deleting the oldest one<br/><br/>Min: `0`. |
| `opensearch-dashboards` | [Opensearch Dashboards](#opensearch-dashboards) | no | OpenSearch Dashboards settings |
| `opensearch-settings` | [OpenSearch settings](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md) | no | OpenSearch-specific settings |
| `plan` | string | no | Subscription plan<br/><br/>Min length: `1`. Max length: `128`. |
| `termination-protection` | boolean | no | Service is protected against termination and powering off |
| `version` | string | no | Version |

<details>
<summary>Example</summary>

```json
{
  "index-patterns": [
    {
      "max-index-count": 0,
      "pattern": "string",
      "sorting-algorithm": "alphabetical"
    }
  ],
  "index-template": {
    "mapping-nested-objects-limit": 0,
    "number-of-replicas": 0,
    "number-of-shards": 0
  },
  "ip-filter": [
    "string"
  ],
  "keep-index-refresh-interval": true,
  "maintenance": {
    "dow": "saturday",
    "time": "string"
  },
  "max-index-count": 0,
  "opensearch-dashboards": {
    "enabled": true,
    "max-old-space-size": 0,
    "opensearch-request-timeout": 0
  },
  "opensearch-settings": {
    "action_auto_create_index_enabled": true,
    "action_destructive_requires_name": true,
    "auth_failure_listeners": {
      "internal_authentication_backend_limiting": {
        "allowed_tries": 0,
        "authentication_backend": "internal",
        "block_expiry_seconds": 0,
        "max_blocked_clients": 0,
        "max_tracked_clients": 0,
        "time_window_seconds": 0,
        "type": "username"
      },
      "ip_rate_limiting": {
        "allowed_tries": 0,
        "block_expiry_seconds": 0,
        "max_blocked_clients": 0,
        "max_tracked_clients": 0,
        "time_window_seconds": 0,
        "type": "ip"
      }
    },
    "cluster": {
      "cluster.filecache.remote_data_ratio": 0,
      "cluster.remote_store": {
        "state.global_metadata.upload_timeout": "20s",
        "state.metadata_manifest.upload_timeout": "20s",
        "translog.buffer_interval": "650ms",
        "translog.max_readers": 0
      },
      "cluster.routing.allocation.balance.prefer_primary": true,
      "cluster.search.request.slowlog": {
        "level": "debug",
        "threshold": {
          "debug": "string",
          "info": "string",
          "trace": "string",
          "warn": "string"
        }
      }
    },
    "cluster_max_shards_per_node": 0,
    "cluster_routing_allocation_node_concurrent_recoveries": 0,
    "disk_watermarks": {
      "flood_stage": 0,
      "high": 0,
      "low": 0
    },
    "email-sender": {
      "email_sender_name": "alert-sender",
      "email_sender_password": "very-secure-mail-password",
      "email_sender_username": "jane@example.com"
    },
    "enable_remote_backed_storage": true,
    "enable_searchable_snapshots": true,
    "enable_security_audit": true,
    "enable_snapshot_api": true,
    "http_max_content_length": 0,
    "http_max_header_size": 0,
    "http_max_initial_line_length": 0,
    "indices_fielddata_cache_size": 0,
    "indices_memory_index_buffer_size": 0,
    "indices_memory_max_index_buffer_size": 0,
    "indices_memory_min_index_buffer_size": 0,
    "indices_queries_cache_size": 0,
    "indices_query_bool_max_clause_count": 0,
    "indices_recovery_max_bytes_per_sec": 0,
    "indices_recovery_max_concurrent_file_chunks": 0,
    "ism-history": {
      "ism_enabled": true,
      "ism_history_enabled": true,
      "ism_history_max_age": 0,
      "ism_history_max_docs": 0,
      "ism_history_rollover_check_period": 0,
      "ism_history_rollover_retention_period": 0
    },
    "knn_memory_circuit_breaker_enabled": true,
    "knn_memory_circuit_breaker_limit": 0,
    "ml-commons": {
      "ml_commons_model_access_control_enabled": true,
      "ml_commons_native_memory_threshold": 0,
      "ml_commons_only_run_on_ml_node": true
    },
    "node.search.cache.size": "5gb",
    "override_main_response_version": true,
    "plugins_alerting_filter_by_backend_roles": true,
    "reindex_remote_whitelist": [
      "anotherservice.aivencloud.com:12398"
    ],
    "remote_store": {
      "segment.pressure.bytes_lag.variance_factor": 0,
      "segment.pressure.consecutive_failures.limit": 0,
      "segment.pressure.enabled": true,
      "segment.pressure.time_lag.variance_factor": 0
    },
    "script_max_compilations_rate": "75/5m",
    "search.insights.top_queries": {
      "cpu": {
        "enabled": true,
        "top_n_size": 0,
        "window_size": "string"
      },
      "latency": {
        "enabled": true,
        "top_n_size": 0,
        "window_size": "string"
      },
      "memory": {
        "enabled": true,
        "top_n_size": 0,
        "window_size": "string"
      }
    },
    "search_backpressure": {
      "mode": "monitor_only",
      "node_duress": {
        "cpu_threshold": 0,
        "heap_threshold": 0,
        "num_successive_breaches": 0
      },
      "search_shard_task": {
        "cancellation_burst": 0,
        "cancellation_rate": 0,
        "cancellation_ratio": 0,
        "cpu_time_millis_threshold": 0,
        "elapsed_time_millis_threshold": 0,
        "heap_moving_average_window_size": 0,
        "heap_percent_threshold": 0,
        "heap_variance": 0,
        "total_heap_percent_threshold": 0
      },
      "search_task": {
        "cancellation_burst": 0,
        "cancellation_rate": 0,
        "cancellation_ratio": 0,
        "cpu_time_millis_threshold": 0,
        "elapsed_time_millis_threshold": 0,
        "heap_moving_average_window_size": 0,
        "heap_percent_threshold": 0,
        "heap_variance": 0,
        "total_heap_percent_threshold": 0
      }
    },
    "search_max_buckets": 0,
    "segrep": {
      "pressure.checkpoint.limit": 0,
      "pressure.enabled": true,
      "pressure.replica.stale.limit": 0,
      "pressure.time.limit": "5m"
    },
    "shard_indexing_pressure": {
      "enabled": true,
      "enforced": true,
      "operating_factor": {
        "lower": 0,
        "optimal": 0,
        "upper": 0
      },
      "primary_parameter": {
        "node": {
          "soft_limit": 0
        },
        "shard": {
          "min_limit": 0
        }
      }
    },
    "thread_pool_analyze_queue_size": 0,
    "thread_pool_analyze_size": 0,
    "thread_pool_force_merge_size": 0,
    "thread_pool_get_queue_size": 0,
    "thread_pool_get_size": 0,
    "thread_pool_search_queue_size": 0,
    "thread_pool_search_size": 0,
    "thread_pool_search_throttled_queue_size": 0,
    "thread_pool_search_throttled_size": 0,
    "thread_pool_write_queue_size": 0,
    "thread_pool_write_size": 0
  },
  "plan": "string",
  "termination-protection": true,
  "version": "string"
}
```
</details>


### Index Patterns {#index-patterns}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `max-index-count` | integer | no | Maximum number of indexes to keep<br/><br/>Min: `0`. |
| `pattern` | string | no | fnmatch pattern<br/><br/>Max length: `1024`. |
| `sorting-algorithm` | string | no | Deletion sorting algorithm<br/><br/>Allowed values: `alphabetical`, `creation_date`. |

### Maintenance {#maintenance}

Automatic maintenance settings

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `dow` | string | **yes** | Day of week for installing updates<br/><br/>Allowed values: `saturday`, `tuesday`, `never`, `wednesday`, `sunday`, `friday`, `monday`, `thursday`. |
| `time` | string | **yes** | Time for installing updates, UTC<br/><br/>Min length: `8`. Max length: `8`. |

### Index Template {#index-template}

Template settings for all new indexes

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `mapping-nested-objects-limit` | integer | no | The maximum number of nested JSON objects that a single document can contain across all nested types. This limit helps to prevent out of memory errors when a document contains too many nested objects. Default is 10000.<br/><br/>Min: `0`. Max: `100000`. |
| `number-of-replicas` | integer | no | The number of replicas each primary shard has.<br/><br/>Min: `0`. Max: `29`. |
| `number-of-shards` | integer | no | The number of primary shards that an index should have.<br/><br/>Min: `1`. Max: `1024`. |

### Opensearch Dashboards {#opensearch-dashboards}

OpenSearch Dashboards settings

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `enabled` | boolean | no | Enable or disable OpenSearch Dashboards (default: true) |
| `max-old-space-size` | integer | no | Limits the maximum amount of memory (in MiB) the OpenSearch Dashboards process can use. This sets the max_old_space_size option of the nodejs running the OpenSearch Dashboards. Note: the memory reserved by OpenSearch Dashboards is not available for OpenSearch. (default: 128)<br/><br/>Min: `64`. Max: `1024`. |
| `opensearch-request-timeout` | integer | no | Timeout in milliseconds for requests made by OpenSearch Dashboards towards OpenSearch (default: 30000)<br/><br/>Min: `5000`. Max: `120000`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-dbaas-service-opensearch`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateDBAASServiceOpensearch) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_dbaas_service_opensearch) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateDbaasServiceOpensearch(java.lang.String,com.exoscale.sdk.model.UpdateDbaasServiceOpensearchRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-dbaas-service-opensearch`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-service-opensearch

Delete an OpenSearch service

```
DELETE /dbaas-opensearch/{name}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-service-opensearch`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASServiceOpensearch) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_service_opensearch) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasServiceOpensearch(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-service-opensearch`


---

## Other Operations

## <span data-label="PUT" class="pill-PUT"></span>start-dbaas-opensearch-maintenance

Initiate OpenSearch maintenance update

```
PUT /dbaas-opensearch/{name}/maintenance/start
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `start-dbaas-opensearch-maintenance`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.StartDBAASOpensearchMaintenance) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.start_dbaas_opensearch_maintenance) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#startDbaasOpensearchMaintenance(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api start-dbaas-opensearch-maintenance`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-settings-opensearch

Get DBaaS OpenSearch settings

```
GET /dbaas-settings-opensearch
```

Get DBaaS OpenSearch settings

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `settings` | [Settings](#settings) |  |

<details>
<summary>Example output</summary>

```json
{
  "settings": {
    "opensearch": {
      "additionalProperties": true,
      "properties": {},
      "title": "string",
      "type": "string"
    }
  }
}
```
</details>


### Settings {#settings}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `opensearch` | [Opensearch](#opensearch) | no | OpenSearch configuration values |

### Opensearch {#opensearch}

OpenSearch configuration values

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `additionalProperties` | boolean | no |  |
| `properties` | object | no |  |
| `title` | string | no |  |
| `type` | string | no |  |

SDK reference for `get-dbaas-settings-opensearch`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASSettingsOpensearch) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_settings_opensearch) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasSettingsOpensearch())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-settings-opensearch`

---

url: https://community.exoscale.com/reference/api/dbaas/dbaas-valkey/

---

# DBaaS Valkey

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Valkey, the open-source key-value store with a Redis®-compatible interface.

[Read more](https://community.exoscale.com/product/dbaas/service-specific/valkey/index.md)

## <span data-label="POST" class="pill-POST"></span>create-dbaas-service-valkey

Create a DBaaS Valkey service

```
POST /dbaas-valkey/{name}
```

Create a DBaaS Valkey service

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `plan` | string | **yes** | Subscription plan<br/><br/>Min length: `1`. Max length: `128`. |
| `fork-from-service` | string | no | Service to fork from<br/><br/>Min length: `0`. Max length: `63`. |
| `ip-filter` | array[string] | no | Allow incoming connections from CIDR address block, e.g. '10.20.0.0/16' |
| `maintenance` | [Maintenance](#maintenance) | no | Automatic maintenance settings |
| `migration` | [Migration](#migration) | no | Migrate data from existing server |
| `recovery-backup-name` | string | no | Name of a backup to recover from for services that support backup names<br/><br/>Min length: `1`. |
| `termination-protection` | boolean | no | Service is protected against termination and powering off |
| `valkey-settings` | [Valkey settings](https://community.exoscale.com/reference/api/_schemas/json-schema-valkey/index.md) | no | Valkey.conf settings |
| `version` | string | no | Valkey major version<br/><br/>Min length: `1`. |

<details>
<summary>Example</summary>

```json
{
  "fork-from-service": "string",
  "ip-filter": [
    "string"
  ],
  "maintenance": {
    "dow": "saturday",
    "time": "string"
  },
  "migration": {
    "dbname": "string",
    "host": "string",
    "ignore-dbs": "string",
    "method": "dump",
    "password": "string",
    "port": 0,
    "ssl": true,
    "username": "string"
  },
  "plan": "string",
  "recovery-backup-name": "string",
  "termination-protection": true,
  "valkey-settings": {
    "acl_channels_default": "allchannels",
    "active_expire_effort": 0,
    "frequent_snapshots": true,
    "io_threads": 0,
    "lfu_decay_time": 0,
    "lfu_log_factor": 0,
    "maxmemory_policy": "noeviction",
    "notify_keyspace_events": "",
    "number_of_databases": 0,
    "persistence": "off",
    "pubsub_client_output_buffer_limit": 0,
    "ssl": true,
    "timeout": 0
  },
  "version": "string"
}
```
</details>


### Maintenance {#maintenance}

Automatic maintenance settings

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `dow` | string | **yes** | Day of week for installing updates<br/><br/>Allowed values: `saturday`, `tuesday`, `never`, `wednesday`, `sunday`, `friday`, `monday`, `thursday`. |
| `time` | string | **yes** | Time for installing updates, UTC<br/><br/>Min length: `8`. Max length: `8`. |

### Migration {#migration}

Migrate data from existing server

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `host` | string | **yes** | Hostname or IP address of the server where to migrate data from<br/><br/>Min length: `1`. Max length: `255`. |
| `port` | integer | **yes** | Port number of the server where to migrate data from<br/><br/>Min: `1`. Max: `65535`. |
| `dbname` | string | no | Database name for bootstrapping the initial connection<br/><br/>Min length: `1`. Max length: `63`. |
| `ignore-dbs` | string | no | Comma-separated list of databases, which should be ignored during migration (supported by MySQL only at the moment)<br/><br/>Min length: `1`. Max length: `2048`. |
| `method` | string | no | The migration method to be used<br/><br/>Allowed values: `dump`, `replication`. |
| `password` | string | no | Password for authentication with the server where to migrate data from<br/><br/>Min length: `1`. Max length: `255`. |
| `ssl` | boolean | no | The server where to migrate data from is secured with SSL |
| `username` | string | no | User name for authentication with the server where to migrate data from<br/><br/>Min length: `1`. Max length: `255`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dbaas-service-valkey`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASServiceValkey) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_service_valkey) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasServiceValkey(java.lang.String,com.exoscale.sdk.model.CreateDbaasServiceValkeyRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-service-valkey`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-service-valkey

```
GET /dbaas-valkey/{name}
```

Get a DBaaS Valkey service

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `backups` | array of [List of backups for the service](https://community.exoscale.com/reference/api/_schemas/dbaas-service-backup/index.md) | List of backups for the service |
| `components` | array of [Components](https://community.exoscale.com/reference/api/_schemas/dbaas-service-valkey/index.md#components) | Service component information objects |
| `connection-info` | [Connection Info](https://community.exoscale.com/reference/api/_schemas/dbaas-service-valkey/index.md#connection-info) | Valkey connection information properties |
| `created-at` | string | Service creation timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `disk-size` | integer | Disk space for data storage, in bytes<br/><br/>Min: `0`. |
| `integrations` | array of [DBaaS Integration](https://community.exoscale.com/reference/api/_schemas/dbaas-integration/index.md) | Service integrations |
| `ip-filter` | array[string] | Allowed CIDR address blocks for incoming connections |
| `maintenance` | [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-service-maintenance/index.md) | Automatic maintenance settings |
| `name` | string | Service name<br/><br/>Min length: `0`. Max length: `63`. |
| `node-count` | integer | Number of service nodes in the active plan<br/><br/>Min: `0`. |
| `node-cpu-count` | integer | Number of CPUs for each node<br/><br/>Min: `0`. |
| `node-memory` | integer | Memory of each node, in bytes<br/><br/>Min: `0`. |
| `node-states` | array of [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-node-state/index.md) | State of individual service nodes |
| `notifications` | array of [Service notifications](https://community.exoscale.com/reference/api/_schemas/dbaas-service-notification/index.md) | Service notifications |
| `plan` | string | Subscription plan |
| `prometheus-uri` | [Prometheus URI](https://community.exoscale.com/reference/api/_schemas/dbaas-service-valkey/index.md#prometheus-uri) | Prometheus integration URI |
| `state` | string | State of the service<br/><br/>Allowed values: `running`, `rebuilding`, `rebalancing`, `poweroff`. |
| `termination-protection` | boolean | Service is protected against termination and powering off |
| `type` | string | Service type code<br/><br/>Min length: `0`. Max length: `64`. |
| `updated-at` | string | Service last update timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `uri` | string | URI for connecting to the service (may be absent) |
| `uri-params` | object | service_uri parameterized into key-value pairs |
| `users` | array of [Users](https://community.exoscale.com/reference/api/_schemas/dbaas-service-valkey/index.md#users) | List of service users |
| `valkey-settings` | [Valkey settings](https://community.exoscale.com/reference/api/_schemas/json-schema-valkey/index.md) | Valkey-specific settings |
| `version` | string | Valkey version |
| `zone` | string | The zone where the service is running |

<details>
<summary>Example output</summary>

```json
{
  "backups": [
    {
      "backup-name": "string",
      "backup-time": "2024-01-01T12:00:00Z",
      "data-size": 0,
      "tiered-storage-data-size": 0
    }
  ],
  "components": [
    {
      "component": "string",
      "host": "string",
      "port": 0,
      "route": "dynamic",
      "ssl": true,
      "usage": "primary"
    }
  ],
  "connection-info": {
    "password": "string",
    "slave": [
      "string"
    ],
    "uri": [
      "string"
    ]
  },
  "created-at": "2024-01-01T12:00:00Z",
  "disk-size": 0,
  "integrations": [
    {
      "description": "string",
      "dest": "string",
      "id": "string",
      "is-active": true,
      "is-enabled": true,
      "settings": {},
      "source": "string",
      "status": "string",
      "type": "string"
    }
  ],
  "ip-filter": [
    "string"
  ],
  "maintenance": {
    "dow": "saturday",
    "time": "string",
    "updates": [
      {
        "deadline": "2024-01-01T12:00:00Z",
        "description": "string",
        "start-after": "2024-01-01T12:00:00Z",
        "start-at": "2024-01-01T12:00:00Z"
      }
    ]
  },
  "name": "string",
  "node-count": 0,
  "node-cpu-count": 0,
  "node-memory": 0,
  "node-states": [
    {
      "name": "string",
      "progress-updates": [
        {
          "completed": true,
          "current": 0,
          "max": 0,
          "min": 0,
          "phase": "stream",
          "unit": "string"
        }
      ],
      "role": "standby",
      "state": "leaving"
    }
  ],
  "notifications": [
    {
      "level": "warning",
      "message": "string",
      "metadata": {},
      "type": "service_powered_off_removal"
    }
  ],
  "plan": "string",
  "prometheus-uri": {
    "host": "string",
    "port": 0
  },
  "state": "running",
  "termination-protection": true,
  "type": "string",
  "updated-at": "2024-01-01T12:00:00Z",
  "uri": "string",
  "uri-params": {},
  "users": [
    {
      "access-control": {
        "categories": [
          "string"
        ],
        "channels": [
          "string"
        ],
        "commands": [
          "string"
        ],
        "keys": [
          "string"
        ]
      },
      "password": "string",
      "type": "string",
      "username": "string"
    }
  ],
  "valkey-settings": {
    "acl_channels_default": "allchannels",
    "active_expire_effort": 0,
    "frequent_snapshots": true,
    "io_threads": 0,
    "lfu_decay_time": 0,
    "lfu_log_factor": 0,
    "maxmemory_policy": "noeviction",
    "notify_keyspace_events": "",
    "number_of_databases": 0,
    "persistence": "off",
    "pubsub_client_output_buffer_limit": 0,
    "ssl": true,
    "timeout": 0
  },
  "version": "string",
  "zone": "string"
}
```
</details>


SDK reference for `get-dbaas-service-valkey`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASServiceValkey) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_service_valkey) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasServiceValkey(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-service-valkey`

## <span data-label="PUT" class="pill-PUT"></span>update-dbaas-service-valkey

```
PUT /dbaas-valkey/{name}
```

Update a DBaaS Valkey service

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `ip-filter` | array[string] | no | Allow incoming connections from CIDR address block, e.g. '10.20.0.0/16' |
| `maintenance` | [Maintenance](#maintenance) | no | Automatic maintenance settings |
| `migration` | [Migration](#migration) | no | Migrate data from existing server |
| `plan` | string | no | Subscription plan<br/><br/>Min length: `1`. Max length: `128`. |
| `termination-protection` | boolean | no | Service is protected against termination and powering off |
| `valkey-settings` | [Valkey settings](https://community.exoscale.com/reference/api/_schemas/json-schema-valkey/index.md) | no | Valkey.conf settings |
| `version` | string | no | Valkey major version<br/><br/>Min length: `1`. |

<details>
<summary>Example</summary>

```json
{
  "ip-filter": [
    "string"
  ],
  "maintenance": {
    "dow": "saturday",
    "time": "string"
  },
  "migration": {
    "dbname": "string",
    "host": "string",
    "ignore-dbs": "string",
    "method": "dump",
    "password": "string",
    "port": 0,
    "ssl": true,
    "username": "string"
  },
  "plan": "string",
  "termination-protection": true,
  "valkey-settings": {
    "acl_channels_default": "allchannels",
    "active_expire_effort": 0,
    "frequent_snapshots": true,
    "io_threads": 0,
    "lfu_decay_time": 0,
    "lfu_log_factor": 0,
    "maxmemory_policy": "noeviction",
    "notify_keyspace_events": "",
    "number_of_databases": 0,
    "persistence": "off",
    "pubsub_client_output_buffer_limit": 0,
    "ssl": true,
    "timeout": 0
  },
  "version": "string"
}
```
</details>


### Maintenance {#maintenance}

Automatic maintenance settings

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `dow` | string | **yes** | Day of week for installing updates<br/><br/>Allowed values: `saturday`, `tuesday`, `never`, `wednesday`, `sunday`, `friday`, `monday`, `thursday`. |
| `time` | string | **yes** | Time for installing updates, UTC<br/><br/>Min length: `8`. Max length: `8`. |

### Migration {#migration}

Migrate data from existing server

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `host` | string | **yes** | Hostname or IP address of the server where to migrate data from<br/><br/>Min length: `1`. Max length: `255`. |
| `port` | integer | **yes** | Port number of the server where to migrate data from<br/><br/>Min: `1`. Max: `65535`. |
| `dbname` | string | no | Database name for bootstrapping the initial connection<br/><br/>Min length: `1`. Max length: `63`. |
| `ignore-dbs` | string | no | Comma-separated list of databases, which should be ignored during migration (supported by MySQL only at the moment)<br/><br/>Min length: `1`. Max length: `2048`. |
| `method` | string | no | The migration method to be used<br/><br/>Allowed values: `dump`, `replication`. |
| `password` | string | no | Password for authentication with the server where to migrate data from<br/><br/>Min length: `1`. Max length: `255`. |
| `ssl` | boolean | no | The server where to migrate data from is secured with SSL |
| `username` | string | no | User name for authentication with the server where to migrate data from<br/><br/>Min length: `1`. Max length: `255`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-dbaas-service-valkey`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateDBAASServiceValkey) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_dbaas_service_valkey) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateDbaasServiceValkey(java.lang.String,com.exoscale.sdk.model.UpdateDbaasServiceValkeyRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-dbaas-service-valkey`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-service-valkey

Delete a Valkey service

```
DELETE /dbaas-valkey/{name}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-service-valkey`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASServiceValkey) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_service_valkey) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasServiceValkey(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-service-valkey`

## <span data-label="POST" class="pill-POST"></span>create-dbaas-valkey-user

Create a DBaaS Valkey user

```
POST /dbaas-valkey/{service-name}/user
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `username` | string | **yes** | Username<br/><br/>Min length: `1`. Max length: `64`. |
| `access-control` | [DBaaS Valkey User Access Control](https://community.exoscale.com/reference/api/_schemas/dbaas-valkey-user-access-control/index.md) | no |  |

<details>
<summary>Example</summary>

```json
{
  "access-control": {
    "categories": [
      "string"
    ],
    "channels": [
      "string"
    ],
    "commands": [
      "string"
    ],
    "keys": [
      "string"
    ]
  },
  "username": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dbaas-valkey-user`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASValkeyUser) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_valkey_user) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasValkeyUser(java.lang.String,com.exoscale.sdk.model.CreateDbaasValkeyUserRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-valkey-user`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-valkey-user

Delete a DBaaS Valkey user

```
DELETE /dbaas-valkey/{service-name}/user/{username}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `username` | `path` | Min length: `1`. Max length: `64`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-valkey-user`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASValkeyUser) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_valkey_user) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasValkeyUser(java.lang.String,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-valkey-user`

## <span data-label="GET" class="pill-GET"></span>reveal-dbaas-valkey-user-password

Reveal the secrets of a DBaaS Valkey user

```
GET /dbaas-valkey/{service-name}/user/{username}/password/reveal
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `username` | `path` | Min length: `1`. Max length: `64`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `password` | string | Valkey password |
| `username` | string | Valkey username |

<details>
<summary>Example output</summary>

```json
{
  "password": "string",
  "username": "string"
}
```
</details>


SDK reference for `reveal-dbaas-valkey-user-password`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RevealDBAASValkeyUserPassword) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reveal_dbaas_valkey_user_password) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#revealDbaasValkeyUserPassword(java.lang.String,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reveal-dbaas-valkey-user-password`

## <span data-label="PUT" class="pill-PUT"></span>reset-dbaas-valkey-user-password

Reset the credentials of a DBaaS Valkey user

```
PUT /dbaas-valkey/{service-name}/user/{username}/password/reset
```

If no password is provided one will be generated automatically.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `username` | `path` | Min length: `1`. Max length: `64`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `password` | string | no | New password<br/><br/>Min length: `8`. Max length: `256`. |

<details>
<summary>Example</summary>

```json
{
  "password": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `reset-dbaas-valkey-user-password`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ResetDBAASValkeyUserPassword) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reset_dbaas_valkey_user_password) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#resetDbaasValkeyUserPassword(java.lang.String,java.lang.String,com.exoscale.sdk.model.ResetDbaasValkeyUserPasswordRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reset-dbaas-valkey-user-password`


---

## Other Operations

## <span data-label="GET" class="pill-GET"></span>get-dbaas-settings-valkey

Get DBaaS Valkey settings

```
GET /dbaas-settings-valkey
```

Returns the default settings for Valkey.

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `settings` | [Settings](#settings) |  |

<details>
<summary>Example output</summary>

```json
{
  "settings": {
    "valkey": {
      "additionalProperties": true,
      "properties": {},
      "title": "string",
      "type": "string"
    }
  }
}
```
</details>


### Settings {#settings}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `valkey` | [Valkey](#valkey) | no | Valkey configuration values |

### Valkey {#valkey}

Valkey configuration values

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `additionalProperties` | boolean | no |  |
| `properties` | object | no |  |
| `title` | string | no |  |
| `type` | string | no |  |

SDK reference for `get-dbaas-settings-valkey`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASSettingsValkey) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_settings_valkey) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasSettingsValkey())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-settings-valkey`

## <span data-label="PUT" class="pill-PUT"></span>start-dbaas-valkey-maintenance

Initiate Valkey maintenance update

```
PUT /dbaas-valkey/{name}/maintenance/start
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `start-dbaas-valkey-maintenance`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.StartDBAASValkeyMaintenance) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.start_dbaas_valkey_maintenance) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#startDbaasValkeyMaintenance(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api start-dbaas-valkey-maintenance`

## <span data-label="POST" class="pill-POST"></span>stop-dbaas-valkey-migration

Stop a DBaaS Valkey migration

```
POST /dbaas-valkey/{name}/migration/stop
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `stop-dbaas-valkey-migration`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.StopDBAASValkeyMigration) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.stop_dbaas_valkey_migration) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#stopDbaasValkeyMigration(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api stop-dbaas-valkey-migration`

## <span data-label="PUT" class="pill-PUT"></span>update-dbaas-valkey-user-access-control

Update access control for one DBaaS Valkey service user

```
PUT /dbaas-valkey/{service-name}/user/{username}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `username` | `path` | Min length: `1`. Max length: `64`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `access-control` | [DBaaS Valkey User Access Control](https://community.exoscale.com/reference/api/_schemas/dbaas-valkey-user-access-control/index.md) | no |  |

<details>
<summary>Example</summary>

```json
{
  "access-control": {
    "categories": [
      "string"
    ],
    "channels": [
      "string"
    ],
    "commands": [
      "string"
    ],
    "keys": [
      "string"
    ]
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-dbaas-valkey-user-access-control`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateDBAASValkeyUserAccessControl) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_dbaas_valkey_user_access_control) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateDbaasValkeyUserAccessControl(java.lang.String,java.lang.String,com.exoscale.sdk.model.UpdateDbaasValkeyUserAccessControlRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-dbaas-valkey-user-access-control`

## <span data-label="GET" class="pill-GET"></span>list-dbaas-valkey-users

List DBaaS Valkey users with ACL configuration

```
GET /dbaas-valkey/{service-name}/user
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `users` | array of [DBaaS Valkey User](https://community.exoscale.com/reference/api/_schemas/dbaas-valkey-user/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "users": [
    {
      "access-control": {
        "categories": [
          "string"
        ],
        "channels": [
          "string"
        ],
        "commands": [
          "string"
        ],
        "keys": [
          "string"
        ]
      },
      "type": "string",
      "username": "string"
    }
  ]
}
```
</details>


SDK reference for `list-dbaas-valkey-users`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListDBAASValkeyUsers) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_dbaas_valkey_users) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listDbaasValkeyUsers(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-dbaas-valkey-users`

---

url: https://community.exoscale.com/reference/api/dbaas/dbaas-thanos/

---

# DBaaS Thanos

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Thanos is a large-scale metrics management system.

[Read more](https://community.exoscale.com/product/dbaas/service-specific/thanos/index.md)

## <span data-label="POST" class="pill-POST"></span>create-dbaas-service-thanos

Create a DBaaS Thanos service

```
POST /dbaas-thanos/{name}
```

Create a DBaaS Thanos service

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `plan` | string | **yes** | Subscription plan<br/><br/>Min length: `1`. Max length: `128`. |
| `ip-filter` | array[string] | no | Allowed CIDR address blocks for incoming connections |
| `maintenance` | [Maintenance](#maintenance) | no | Automatic maintenance settings |
| `termination-protection` | boolean | no | Service is protected against termination and powering off |
| `thanos-settings` | [Thanos settings](https://community.exoscale.com/reference/api/_schemas/json-schema-thanos/index.md) | no | Thanos specific settings |

<details>
<summary>Example</summary>

```json
{
  "ip-filter": [
    "string"
  ],
  "maintenance": {
    "dow": "saturday",
    "time": "string"
  },
  "plan": "string",
  "termination-protection": true,
  "thanos-settings": {
    "compactor": {
      "retention.days": 0
    },
    "query": {
      "query.default-evaluation-interval": "1m",
      "query.lookback-delta": "5m",
      "query.metadata.default-time-range": "0s",
      "query.timeout": "2m",
      "store.limits.request-samples": 0,
      "store.limits.request-series": 0
    },
    "query-frontend": {
      "query-range.align-range-with-step": true
    }
  }
}
```
</details>


### Maintenance {#maintenance}

Automatic maintenance settings

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `dow` | string | **yes** | Day of week for installing updates<br/><br/>Allowed values: `saturday`, `tuesday`, `never`, `wednesday`, `sunday`, `friday`, `monday`, `thursday`. |
| `time` | string | **yes** | Time for installing updates, UTC<br/><br/>Min length: `8`. Max length: `8`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dbaas-service-thanos`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASServiceThanos) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_service_thanos) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasServiceThanos(java.lang.String,com.exoscale.sdk.model.CreateDbaasServiceThanosRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-service-thanos`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-service-thanos

```
GET /dbaas-thanos/{name}
```

Get a DBaaS Thanos service

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `backups` | array of [List of backups for the service](https://community.exoscale.com/reference/api/_schemas/dbaas-service-backup/index.md) | List of backups for the service |
| `components` | array of [Components](https://community.exoscale.com/reference/api/_schemas/dbaas-service-thanos/index.md#components) | Service component information objects |
| `connection-info` | [Connection Info](https://community.exoscale.com/reference/api/_schemas/dbaas-service-thanos/index.md#connection-info) | Thanos connection information properties |
| `created-at` | string | Service creation timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `disk-size` | integer | Disk space for data storage, in bytes<br/><br/>Min: `0`. |
| `integrations` | array of [DBaaS Integration](https://community.exoscale.com/reference/api/_schemas/dbaas-integration/index.md) | Service integrations |
| `ip-filter` | array[string] | Allowed CIDR address blocks for incoming connections |
| `maintenance` | [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-service-maintenance/index.md) | Automatic maintenance settings |
| `name` | string | Service name<br/><br/>Min length: `0`. Max length: `63`. |
| `node-count` | integer | Number of service nodes in the active plan<br/><br/>Min: `0`. |
| `node-cpu-count` | integer | Number of CPUs for each node<br/><br/>Min: `0`. |
| `node-memory` | integer | Memory of each node, in bytes<br/><br/>Min: `0`. |
| `node-states` | array of [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-node-state/index.md) | State of individual service nodes |
| `notifications` | array of [Service notifications](https://community.exoscale.com/reference/api/_schemas/dbaas-service-notification/index.md) | Service notifications |
| `plan` | string | Subscription plan |
| `prometheus-uri` | [Prometheus URI](https://community.exoscale.com/reference/api/_schemas/dbaas-service-thanos/index.md#prometheus-uri) | Prometheus integration URI |
| `state` | string | State of the service<br/><br/>Allowed values: `running`, `rebuilding`, `rebalancing`, `poweroff`. |
| `termination-protection` | boolean | Service is protected against termination and powering off |
| `thanos-settings` | [Thanos settings](https://community.exoscale.com/reference/api/_schemas/json-schema-thanos/index.md) | Thanos specific settings |
| `type` | string | Service type code<br/><br/>Min length: `0`. Max length: `64`. |
| `updated-at` | string | Service last update timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `uri` | string | URI for connecting to the service (may be absent) |
| `uri-params` | object | service_uri parameterized into key-value pairs |
| `users` | array of [Users](https://community.exoscale.com/reference/api/_schemas/dbaas-service-thanos/index.md#users) | List of service users |
| `zone` | string | The zone where the service is running |

<details>
<summary>Example output</summary>

```json
{
  "backups": [
    {
      "backup-name": "string",
      "backup-time": "2024-01-01T12:00:00Z",
      "data-size": 0,
      "tiered-storage-data-size": 0
    }
  ],
  "components": [
    {
      "component": "string",
      "host": "string",
      "port": 0,
      "route": "dynamic",
      "ssl": true,
      "usage": "primary"
    }
  ],
  "connection-info": {
    "query-frontend-uri": "string",
    "query-uri": "string",
    "receiver-remote-write-uri": "string",
    "ruler-uri": "string"
  },
  "created-at": "2024-01-01T12:00:00Z",
  "disk-size": 0,
  "integrations": [
    {
      "description": "string",
      "dest": "string",
      "id": "string",
      "is-active": true,
      "is-enabled": true,
      "settings": {},
      "source": "string",
      "status": "string",
      "type": "string"
    }
  ],
  "ip-filter": [
    "string"
  ],
  "maintenance": {
    "dow": "saturday",
    "time": "string",
    "updates": [
      {
        "deadline": "2024-01-01T12:00:00Z",
        "description": "string",
        "start-after": "2024-01-01T12:00:00Z",
        "start-at": "2024-01-01T12:00:00Z"
      }
    ]
  },
  "name": "string",
  "node-count": 0,
  "node-cpu-count": 0,
  "node-memory": 0,
  "node-states": [
    {
      "name": "string",
      "progress-updates": [
        {
          "completed": true,
          "current": 0,
          "max": 0,
          "min": 0,
          "phase": "stream",
          "unit": "string"
        }
      ],
      "role": "standby",
      "state": "leaving"
    }
  ],
  "notifications": [
    {
      "level": "warning",
      "message": "string",
      "metadata": {},
      "type": "service_powered_off_removal"
    }
  ],
  "plan": "string",
  "prometheus-uri": {
    "host": "string",
    "port": 0
  },
  "state": "running",
  "termination-protection": true,
  "thanos-settings": {
    "compactor": {
      "retention.days": 0
    },
    "query": {
      "query.default-evaluation-interval": "1m",
      "query.lookback-delta": "5m",
      "query.metadata.default-time-range": "0s",
      "query.timeout": "2m",
      "store.limits.request-samples": 0,
      "store.limits.request-series": 0
    },
    "query-frontend": {
      "query-range.align-range-with-step": true
    }
  },
  "type": "string",
  "updated-at": "2024-01-01T12:00:00Z",
  "uri": "string",
  "uri-params": {},
  "users": [
    {
      "password": "string",
      "type": "string",
      "username": "string"
    }
  ],
  "zone": "string"
}
```
</details>


SDK reference for `get-dbaas-service-thanos`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASServiceThanos) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_service_thanos) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasServiceThanos(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-service-thanos`

## <span data-label="PUT" class="pill-PUT"></span>update-dbaas-service-thanos

```
PUT /dbaas-thanos/{name}
```

Update a DBaaS Thanos service

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `ip-filter` | array[string] | no | Allowed CIDR address blocks for incoming connections |
| `maintenance` | [Maintenance](#maintenance) | no | Automatic maintenance settings |
| `plan` | string | no | Subscription plan<br/><br/>Min length: `1`. Max length: `128`. |
| `termination-protection` | boolean | no | Service is protected against termination and powering off |
| `thanos-settings` | [Thanos settings](https://community.exoscale.com/reference/api/_schemas/json-schema-thanos/index.md) | no | Thanos specific settings |

<details>
<summary>Example</summary>

```json
{
  "ip-filter": [
    "string"
  ],
  "maintenance": {
    "dow": "saturday",
    "time": "string"
  },
  "plan": "string",
  "termination-protection": true,
  "thanos-settings": {
    "compactor": {
      "retention.days": 0
    },
    "query": {
      "query.default-evaluation-interval": "1m",
      "query.lookback-delta": "5m",
      "query.metadata.default-time-range": "0s",
      "query.timeout": "2m",
      "store.limits.request-samples": 0,
      "store.limits.request-series": 0
    },
    "query-frontend": {
      "query-range.align-range-with-step": true
    }
  }
}
```
</details>


### Maintenance {#maintenance}

Automatic maintenance settings

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `dow` | string | **yes** | Day of week for installing updates<br/><br/>Allowed values: `saturday`, `tuesday`, `never`, `wednesday`, `sunday`, `friday`, `monday`, `thursday`. |
| `time` | string | **yes** | Time for installing updates, UTC<br/><br/>Min length: `8`. Max length: `8`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-dbaas-service-thanos`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateDBAASServiceThanos) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_dbaas_service_thanos) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateDbaasServiceThanos(java.lang.String,com.exoscale.sdk.model.UpdateDbaasServiceThanosRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-dbaas-service-thanos`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-service-thanos

Delete a Thanos service

```
DELETE /dbaas-thanos/{name}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-service-thanos`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASServiceThanos) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_service_thanos) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasServiceThanos(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-service-thanos`


---

## Other Operations

## <span data-label="GET" class="pill-GET"></span>get-dbaas-settings-thanos

Get DBaaS Thanos settings

```
GET /dbaas-settings-thanos
```

Get DBaaS Thanos settings

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `settings` | [Settings](#settings) |  |

<details>
<summary>Example output</summary>

```json
{
  "settings": {
    "thanos": {
      "additionalProperties": true,
      "properties": {},
      "title": "string",
      "type": "string"
    }
  }
}
```
</details>


### Settings {#settings}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `thanos` | [Thanos](#thanos) | no | Thanos configuration values |

### Thanos {#thanos}

Thanos configuration values

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `additionalProperties` | boolean | no |  |
| `properties` | object | no |  |
| `title` | string | no |  |
| `type` | string | no |  |

SDK reference for `get-dbaas-settings-thanos`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASSettingsThanos) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_settings_thanos) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasSettingsThanos())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-settings-thanos`

## <span data-label="PUT" class="pill-PUT"></span>start-dbaas-thanos-maintenance

Initiate Thanos maintenance update

```
PUT /dbaas-thanos/{name}/maintenance/start
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `start-dbaas-thanos-maintenance`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.StartDBAASThanosMaintenance) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.start_dbaas_thanos_maintenance) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#startDbaasThanosMaintenance(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api start-dbaas-thanos-maintenance`

## <span data-label="GET" class="pill-GET"></span>reveal-dbaas-thanos-user-password

Reveal the secrets of a DBaaS Thanos user

```
GET /dbaas-thanos/{service-name}/user/{username}/password/reveal
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `username` | `path` | Min length: `1`. Max length: `64`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `password` | string | Thanos password |
| `username` | string | Thanos username |

<details>
<summary>Example output</summary>

```json
{
  "password": "string",
  "username": "string"
}
```
</details>


SDK reference for `reveal-dbaas-thanos-user-password`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RevealDBAASThanosUserPassword) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reveal_dbaas_thanos_user_password) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#revealDbaasThanosUserPassword(java.lang.String,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reveal-dbaas-thanos-user-password`

---

url: https://community.exoscale.com/reference/api/dbaas/dbaas-management/

---

# DBaaS Management

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Operational management for DBaaS services: logs, metrics, service types and lifecycle.

[Read more](https://community.exoscale.com/product/dbaas/index.md)

## <span data-label="POST" class="pill-POST"></span>create-dbaas-clickhouse-user

Create a DBaaS ClickHouse user

```
POST /dbaas-clickhouse/{service-name}/user
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `username` | string | **yes** | Username<br/><br/>Min length: `1`. Max length: `64`. |
| `password` | string | no | Password<br/><br/>Min length: `8`. Max length: `256`. |
| `roles` | array of [DBaaS Clickhouse User Role Input](https://community.exoscale.com/reference/api/_schemas/dbaas-clickhouse-user-role-input/index.md) | no | ClickHouse roles to grant to the user |

<details>
<summary>Example</summary>

```json
{
  "password": "string",
  "roles": [
    {
      "uuid": "string"
    }
  ],
  "username": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `password` | string | ClickHouse password |
| `username` | string | ClickHouse username |

<details>
<summary>Example output</summary>

```json
{
  "password": "string",
  "username": "string"
}
```
</details>


SDK reference for `create-dbaas-clickhouse-user`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASClickhouseUser) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_clickhouse_user) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasClickhouseUser(java.lang.String,com.exoscale.sdk.model.CreateDbaasClickhouseUserRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-clickhouse-user`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-clickhouse-user

Delete a DBaaS ClickHouse user

```
DELETE /dbaas-clickhouse/{service-name}/user/{user-uuid}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `user-uuid` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-clickhouse-user`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASClickhouseUser) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_clickhouse_user) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasClickhouseUser(java.lang.String,java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-clickhouse-user`

## <span data-label="GET" class="pill-GET"></span>reveal-dbaas-clickhouse-user-password

Reveal the secrets of a DBaaS ClickHouse user

```
GET /dbaas-clickhouse/{service-name}/user/{username}/password/reveal
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `username` | `path` | Min length: `1`. Max length: `64`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `password` | string | ClickHouse password |
| `username` | string | ClickHouse username |

<details>
<summary>Example output</summary>

```json
{
  "password": "string",
  "username": "string"
}
```
</details>


SDK reference for `reveal-dbaas-clickhouse-user-password`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RevealDBAASClickhouseUserPassword) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reveal_dbaas_clickhouse_user_password) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#revealDbaasClickhouseUserPassword(java.lang.String,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reveal-dbaas-clickhouse-user-password`

## <span data-label="PUT" class="pill-PUT"></span>reset-dbaas-clickhouse-user-password

Reset the credentials of a DBaaS ClickHouse user

```
PUT /dbaas-clickhouse/{service-name}/user/{username}/password/reset
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `username` | `path` | Min length: `1`. Max length: `64`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `password` | string | no | New password<br/><br/>Min length: `8`. Max length: `256`. |

<details>
<summary>Example</summary>

```json
{
  "password": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `password` | string | ClickHouse password |
| `username` | string | ClickHouse username |

<details>
<summary>Example output</summary>

```json
{
  "password": "string",
  "username": "string"
}
```
</details>


SDK reference for `reset-dbaas-clickhouse-user-password`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ResetDBAASClickhouseUserPassword) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reset_dbaas_clickhouse_user_password) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#resetDbaasClickhouseUserPassword(java.lang.String,java.lang.String,com.exoscale.sdk.model.ResetDbaasClickhouseUserPasswordRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reset-dbaas-clickhouse-user-password`

## <span data-label="POST" class="pill-POST"></span>create-dbaas-integration

```
POST /dbaas-integration
```

[BETA] Create a new DBaaS integration between two services

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `dest-service` | string | **yes** | A destination service<br/><br/>Min length: `0`. Max length: `63`. |
| `integration-type` | string | **yes** | Integration type<br/><br/>Allowed values: `datasource`, `logs`, `metrics`. |
| `source-service` | string | **yes** | A source service<br/><br/>Min length: `0`. Max length: `63`. |
| `settings` | object | no | Integration settings |

<details>
<summary>Example</summary>

```json
{
  "dest-service": "string",
  "integration-type": "datasource",
  "settings": {},
  "source-service": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dbaas-integration`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASIntegration) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_integration) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasIntegration(com.exoscale.sdk.model.CreateDbaasIntegrationRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-integration`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-integration

```
GET /dbaas-integration/{id}
```

[BETA] Get a DBaaS Integration

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `description` | string | Description of the integration |
| `dest` | string | Destination service name |
| `id` | string | Integration id<br/><br/>Must be a valid UUID. |
| `is-active` | boolean | Whether the integration is active or not |
| `is-enabled` | boolean | Whether the integration is enabled or not |
| `settings` | object | Integration settings |
| `source` | string | Source service name |
| `status` | string | Integration status |
| `type` | string | Integration type |

<details>
<summary>Example output</summary>

```json
{
  "description": "string",
  "dest": "string",
  "id": "string",
  "is-active": true,
  "is-enabled": true,
  "settings": {},
  "source": "string",
  "status": "string",
  "type": "string"
}
```
</details>


SDK reference for `get-dbaas-integration`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASIntegration) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_integration) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasIntegration(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-integration`

## <span data-label="PUT" class="pill-PUT"></span>update-dbaas-integration

```
PUT /dbaas-integration/{id}
```

[BETA] Update an existing DBaaS integration

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `settings` | object | **yes** | Integration settings |

<details>
<summary>Example</summary>

```json
{
  "settings": {}
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-dbaas-integration`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateDBAASIntegration) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_dbaas_integration) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateDbaasIntegration(java.util.UUID,com.exoscale.sdk.model.UpdateDbaasIntegrationRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-dbaas-integration`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-integration

```
DELETE /dbaas-integration/{id}
```

[BETA] Delete a DBaaS Integration

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-integration`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASIntegration) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_integration) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasIntegration(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-integration`

## <span data-label="POST" class="pill-POST"></span>create-dbaas-service-clickhouse

Create a DBaaS ClickHouse service

```
POST /dbaas-clickhouse/{name}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `plan` | string | **yes** | Subscription plan<br/><br/>Min length: `1`. Max length: `128`. |
| `clickhouse-settings` | [ClickHouse settings](https://community.exoscale.com/reference/api/_schemas/json-schema-clickhouse/index.md) | no | ClickHouse-specific settings |
| `fork-from-service` | string | no | Service to fork from<br/><br/>Min length: `0`. Max length: `63`. |
| `ip-filter` | array[string] | no | Allow incoming connections from CIDR address block, e.g. '10.20.0.0/16' |
| `maintenance` | [Maintenance](#maintenance) | no | Automatic maintenance settings |
| `recovery-backup-name` | string | no | Name of a backup to recover from for services that support backup names<br/><br/>Min length: `1`. |
| `termination-protection` | boolean | no | Service is protected against termination and powering off |
| `version` | string | no | ClickHouse major version<br/><br/>Min length: `1`. |

<details>
<summary>Example</summary>

```json
{
  "clickhouse-settings": {
    "server_settings": {
      "vector_similarity_index_cache_size": 0
    },
    "tiered_storage_move_factor": 0
  },
  "fork-from-service": "string",
  "ip-filter": [
    "string"
  ],
  "maintenance": {
    "dow": "saturday",
    "time": "string"
  },
  "plan": "string",
  "recovery-backup-name": "string",
  "termination-protection": true,
  "version": "string"
}
```
</details>


### Maintenance {#maintenance}

Automatic maintenance settings

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `dow` | string | **yes** | Day of week for installing updates<br/><br/>Allowed values: `saturday`, `tuesday`, `never`, `wednesday`, `sunday`, `friday`, `monday`, `thursday`. |
| `time` | string | **yes** | Time for installing updates, UTC<br/><br/>Min length: `8`. Max length: `8`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dbaas-service-clickhouse`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASServiceClickhouse) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_service_clickhouse) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasServiceClickhouse(java.lang.String,com.exoscale.sdk.model.CreateDbaasServiceClickhouseRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-service-clickhouse`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-service-clickhouse

Get a DBaaS ClickHouse service

```
GET /dbaas-clickhouse/{name}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `backups` | array of [List of backups for the service](https://community.exoscale.com/reference/api/_schemas/dbaas-service-backup/index.md) | List of backups for the service |
| `clickhouse-settings` | [ClickHouse settings](https://community.exoscale.com/reference/api/_schemas/json-schema-clickhouse/index.md) | ClickHouse-specific settings |
| `components` | array of [Components](https://community.exoscale.com/reference/api/_schemas/dbaas-service-clickhouse/index.md#components) | Service component information objects |
| `connection-info` | [Connection Info](https://community.exoscale.com/reference/api/_schemas/dbaas-service-clickhouse/index.md#connection-info) | ClickHouse connection information properties |
| `created-at` | string | Service creation timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `disk-size` | integer | Disk space for data storage, in bytes<br/><br/>Min: `0`. |
| `integrations` | array of [DBaaS Integration](https://community.exoscale.com/reference/api/_schemas/dbaas-integration/index.md) | Service integrations |
| `ip-filter` | array[string] | Allowed CIDR address blocks for incoming connections |
| `maintenance` | [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-service-maintenance/index.md) | Automatic maintenance settings |
| `name` | string | Service name<br/><br/>Min length: `0`. Max length: `63`. |
| `node-count` | integer | Number of service nodes in the active plan<br/><br/>Min: `0`. |
| `node-cpu-count` | integer | Number of CPUs for each node<br/><br/>Min: `0`. |
| `node-memory` | integer | Memory of each node, in bytes<br/><br/>Min: `0`. |
| `node-states` | array of [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-node-state/index.md) | State of individual service nodes |
| `notifications` | array of [Service notifications](https://community.exoscale.com/reference/api/_schemas/dbaas-service-notification/index.md) | Service notifications |
| `plan` | string | Subscription plan |
| `prometheus-uri` | [Prometheus URI](https://community.exoscale.com/reference/api/_schemas/dbaas-service-clickhouse/index.md#prometheus-uri) | Prometheus integration URI |
| `state` | string | State of the service<br/><br/>Allowed values: `running`, `rebuilding`, `rebalancing`, `poweroff`. |
| `termination-protection` | boolean | Service is protected against termination and powering off |
| `type` | string | Service type code<br/><br/>Min length: `0`. Max length: `64`. |
| `updated-at` | string | Service last update timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `uri` | string | URI for connecting to the service (may be absent) |
| `uri-params` | object | service_uri parameterized into key-value pairs |
| `users` | array of [DBaaS Clickhouse User](https://community.exoscale.com/reference/api/_schemas/dbaas-clickhouse-user/index.md) | List of ClickHouse users |
| `version` | string | ClickHouse version |
| `zone` | string | The zone where the service is running |

<details>
<summary>Example output</summary>

```json
{
  "backups": [
    {
      "backup-name": "string",
      "backup-time": "2024-01-01T12:00:00Z",
      "data-size": 0,
      "tiered-storage-data-size": 0
    }
  ],
  "clickhouse-settings": {
    "server_settings": {
      "vector_similarity_index_cache_size": 0
    },
    "tiered_storage_move_factor": 0
  },
  "components": [
    {
      "component": "string",
      "host": "string",
      "port": 0,
      "route": "dynamic",
      "ssl": true,
      "usage": "primary"
    }
  ],
  "connection-info": {
    "arrowflight-uri": "string",
    "mysql-uri": "string",
    "uri": [
      "string"
    ]
  },
  "created-at": "2024-01-01T12:00:00Z",
  "disk-size": 0,
  "integrations": [
    {
      "description": "string",
      "dest": "string",
      "id": "string",
      "is-active": true,
      "is-enabled": true,
      "settings": {},
      "source": "string",
      "status": "string",
      "type": "string"
    }
  ],
  "ip-filter": [
    "string"
  ],
  "maintenance": {
    "dow": "saturday",
    "time": "string",
    "updates": [
      {
        "deadline": "2024-01-01T12:00:00Z",
        "description": "string",
        "start-after": "2024-01-01T12:00:00Z",
        "start-at": "2024-01-01T12:00:00Z"
      }
    ]
  },
  "name": "string",
  "node-count": 0,
  "node-cpu-count": 0,
  "node-memory": 0,
  "node-states": [
    {
      "name": "string",
      "progress-updates": [
        {
          "completed": true,
          "current": 0,
          "max": 0,
          "min": 0,
          "phase": "stream",
          "unit": "string"
        }
      ],
      "role": "standby",
      "state": "leaving"
    }
  ],
  "notifications": [
    {
      "level": "warning",
      "message": "string",
      "metadata": {},
      "type": "service_powered_off_removal"
    }
  ],
  "plan": "string",
  "prometheus-uri": {
    "host": "string",
    "port": 0
  },
  "state": "running",
  "termination-protection": true,
  "type": "string",
  "updated-at": "2024-01-01T12:00:00Z",
  "uri": "string",
  "uri-params": {},
  "users": [
    {
      "required": true,
      "username": "string",
      "uuid": "string"
    }
  ],
  "version": "string",
  "zone": "string"
}
```
</details>


SDK reference for `get-dbaas-service-clickhouse`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASServiceClickhouse) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_service_clickhouse) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasServiceClickhouse(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-service-clickhouse`

## <span data-label="PUT" class="pill-PUT"></span>update-dbaas-service-clickhouse

Update a DBaaS ClickHouse service

```
PUT /dbaas-clickhouse/{name}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `clickhouse-settings` | [ClickHouse settings](https://community.exoscale.com/reference/api/_schemas/json-schema-clickhouse/index.md) | no | ClickHouse-specific settings |
| `ip-filter` | array[string] | no | Allow incoming connections from CIDR address block, e.g. '10.20.0.0/16' |
| `maintenance` | [Maintenance](#maintenance) | no | Automatic maintenance settings |
| `plan` | string | no | Subscription plan<br/><br/>Min length: `1`. Max length: `128`. |
| `termination-protection` | boolean | no | Service is protected against termination and powering off |
| `version` | string | no | ClickHouse major version<br/><br/>Min length: `1`. |

<details>
<summary>Example</summary>

```json
{
  "clickhouse-settings": {
    "server_settings": {
      "vector_similarity_index_cache_size": 0
    },
    "tiered_storage_move_factor": 0
  },
  "ip-filter": [
    "string"
  ],
  "maintenance": {
    "dow": "saturday",
    "time": "string"
  },
  "plan": "string",
  "termination-protection": true,
  "version": "string"
}
```
</details>


### Maintenance {#maintenance}

Automatic maintenance settings

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `dow` | string | **yes** | Day of week for installing updates<br/><br/>Allowed values: `saturday`, `tuesday`, `never`, `wednesday`, `sunday`, `friday`, `monday`, `thursday`. |
| `time` | string | **yes** | Time for installing updates, UTC<br/><br/>Min length: `8`. Max length: `8`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-dbaas-service-clickhouse`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateDBAASServiceClickhouse) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_dbaas_service_clickhouse) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateDbaasServiceClickhouse(java.lang.String,com.exoscale.sdk.model.UpdateDbaasServiceClickhouseRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-dbaas-service-clickhouse`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-service-clickhouse

Delete a ClickHouse service

```
DELETE /dbaas-clickhouse/{name}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-service-clickhouse`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASServiceClickhouse) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_service_clickhouse) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasServiceClickhouse(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-service-clickhouse`


---

## Other Operations

## <span data-label="GET" class="pill-GET"></span>get-dbaas-ca-certificate

Get DBaaS CA Certificate

```
GET /dbaas-ca-certificate
```

Returns a CA Certificate required to reach a DBaaS service through a TLS-protected connection.

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `certificate` | string |  |

<details>
<summary>Example output</summary>

```json
{
  "certificate": "string"
}
```
</details>


SDK reference for `get-dbaas-ca-certificate`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASCACertificate) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_ca_certificate) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasCaCertificate())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-ca-certificate`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-clickhouse-acl-config

Get DBaaS ClickHouse ACL configuration

```
GET /dbaas-clickhouse/{service-name}/acl-config
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `users` | array of [DBaaS Clickhouse User Acl Config](https://community.exoscale.com/reference/api/_schemas/dbaas-clickhouse-user-acl-config/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "users": [
    {
      "privileges": [
        {
          "access-type": "string",
          "column": "string",
          "database": "string",
          "grant-option": true,
          "partial-revoke": true,
          "table": "string"
        }
      ],
      "roles": [
        {
          "default": true,
          "name": "string",
          "uuid": "string",
          "with-admin-option": true
        }
      ],
      "username": "string",
      "uuid": "string"
    }
  ]
}
```
</details>


SDK reference for `get-dbaas-clickhouse-acl-config`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASClickhouseAclConfig) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_clickhouse_acl_config) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasClickhouseAclConfig(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-clickhouse-acl-config`

## <span data-label="PUT" class="pill-PUT"></span>start-dbaas-clickhouse-maintenance

Initiate ClickHouse maintenance update

```
PUT /dbaas-clickhouse/{name}/maintenance/start
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `start-dbaas-clickhouse-maintenance`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.StartDBAASClickhouseMaintenance) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.start_dbaas_clickhouse_maintenance) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#startDbaasClickhouseMaintenance(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api start-dbaas-clickhouse-maintenance`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-clickhouse-role

Delete a DBaaS ClickHouse role

```
DELETE /dbaas-clickhouse/{service-name}/role/{role-uuid}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |
| `role-uuid` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-clickhouse-role`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASClickhouseRole) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_clickhouse_role) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasClickhouseRole(java.lang.String,java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-clickhouse-role`

## <span data-label="GET" class="pill-GET"></span>list-dbaas-clickhouse-roles

List DBaaS ClickHouse roles

```
GET /dbaas-clickhouse/{service-name}/role
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `roles` | array of [DBaaS Clickhouse Role](https://community.exoscale.com/reference/api/_schemas/dbaas-clickhouse-role/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "roles": [
    {
      "granted-roles": [
        {
          "is-default": true,
          "name": "string",
          "uuid": "string",
          "with-admin-option": true
        }
      ],
      "name": "string",
      "privileges": [
        {
          "column": "string",
          "database": "string",
          "grant-option": true,
          "is-partial-revoke": true,
          "name": "string",
          "table": "string"
        }
      ],
      "uuid": "string"
    }
  ]
}
```
</details>


SDK reference for `list-dbaas-clickhouse-roles`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListDBAASClickhouseRoles) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_dbaas_clickhouse_roles) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listDbaasClickhouseRoles(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-dbaas-clickhouse-roles`

## <span data-label="GET" class="pill-GET"></span>list-dbaas-clickhouse-users

List DBaaS ClickHouse users

```
GET /dbaas-clickhouse/{service-name}/user
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `users` | array of [DBaaS Clickhouse User](https://community.exoscale.com/reference/api/_schemas/dbaas-clickhouse-user/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "users": [
    {
      "required": true,
      "username": "string",
      "uuid": "string"
    }
  ]
}
```
</details>


SDK reference for `list-dbaas-clickhouse-users`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListDBAASClickhouseUsers) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_dbaas_clickhouse_users) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listDbaasClickhouseUsers(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-dbaas-clickhouse-users`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-external-integration

```
GET /dbaas-external-integration/{integration-id}
```

[BETA] Get a DBaaS external integration

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `integration-id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `description` | string | Description of the integration |
| `dest-endpoint-id` | string | External destination endpoint id |
| `dest-endpoint-name` | string | External destination endpoint name |
| `integration-id` | string | Endpoint integration UUID<br/><br/>Must be a valid UUID. |
| `source-service-name` | string | DBaaS source service name |
| `source-service-type` | string | DBaaS service type<br/><br/>Min length: `0`. Max length: `64`. |
| `status` | string | Integration status |
| `type` | string | Integration Type<br/><br/>Allowed values: `prometheus`, `opensearch`, `rsyslog`, `datadog`, `elasticsearch`. |

<details>
<summary>Example output</summary>

```json
{
  "description": "string",
  "dest-endpoint-id": "string",
  "dest-endpoint-name": "string",
  "integration-id": "string",
  "source-service-name": "string",
  "source-service-type": "string",
  "status": "string",
  "type": "prometheus"
}
```
</details>


SDK reference for `get-dbaas-external-integration`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASExternalIntegration) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_external_integration) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasExternalIntegration(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-external-integration`

## <span data-label="GET" class="pill-GET"></span>list-dbaas-external-integrations

```
GET /dbaas-external-integrations/{service-name}
```

[BETA] List all DBaaS connections between services and external endpoints

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `external-integrations` | array of [Integrations with other services](https://community.exoscale.com/reference/api/_schemas/dbaas-external-integration/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "external-integrations": [
    {
      "description": "string",
      "dest-endpoint-id": "string",
      "dest-endpoint-name": "string",
      "integration-id": "string",
      "source-service-name": "string",
      "source-service-type": "string",
      "status": "string",
      "type": "prometheus"
    }
  ]
}
```
</details>


SDK reference for `list-dbaas-external-integrations`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListDBAASExternalIntegrations) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_dbaas_external_integrations) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listDbaasExternalIntegrations(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-dbaas-external-integrations`

## <span data-label="GET" class="pill-GET"></span>list-dbaas-integration-settings

```
GET /dbaas-integration-settings/{integration-type}/{source-type}/{dest-type}
```

[BETA] Get DBaaS integration settings

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `integration-type` | `path` |  |
| `source-type` | `path` |  |
| `dest-type` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `settings` | [Settings](#settings) | The JSON schema representing the settings for the given integration type, source, and destination service types. |

<details>
<summary>Example output</summary>

```json
{
  "settings": {
    "additionalProperties": true,
    "properties": {},
    "title": "string",
    "type": "string"
  }
}
```
</details>


### Settings {#settings}

The JSON schema representing the settings for the given integration type, source, and destination service types.

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `additionalProperties` | boolean | no |  |
| `properties` | object | no |  |
| `title` | string | no |  |
| `type` | string | no |  |

SDK reference for `list-dbaas-integration-settings`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListDBAASIntegrationSettings) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_dbaas_integration_settings) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listDbaasIntegrationSettings(java.lang.String,java.lang.String,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-dbaas-integration-settings`

## <span data-label="GET" class="pill-GET"></span>list-dbaas-integration-types

```
GET /dbaas-integration-types
```

[BETA] Get DBaaS integration types

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `dbaas-integration-types` | array of [DBaaS Integration Type](https://community.exoscale.com/reference/api/_schemas/dbaas-integration-type/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "dbaas-integration-types": [
    {
      "dest-description": "string",
      "dest-service-types": [
        "string"
      ],
      "settings": {
        "additionalProperties": true,
        "properties": {},
        "title": "string",
        "type": "string"
      },
      "source-description": "string",
      "source-service-types": [
        "string"
      ],
      "type": "string"
    }
  ]
}
```
</details>


SDK reference for `list-dbaas-integration-types`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListDBAASIntegrationTypes) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_dbaas_integration_types) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listDbaasIntegrationTypes())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-dbaas-integration-types`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-migration-status

Get a DBaaS migration status

```
GET /dbaas-migration-status/{name}
```

Get a DBaaS migration status

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` | Min length: `0`. Max length: `63`. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `details` | array of [Details](https://community.exoscale.com/reference/api/_schemas/dbaas-migration-status/index.md#details) | Migration status per database |
| `error` | string | Error message in case that migration has failed |
| `method` | string | Migration method. Empty in case of multiple methods or error |
| `status` | string | Migration status |

<details>
<summary>Example output</summary>

```json
{
  "details": [
    {
      "dbname": "string",
      "error": "string",
      "method": "string",
      "status": "running"
    }
  ],
  "error": "string",
  "method": "string",
  "status": "string"
}
```
</details>


SDK reference for `get-dbaas-migration-status`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASMigrationStatus) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_migration_status) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasMigrationStatus(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-migration-status`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-service

Delete a DBaaS service

```
DELETE /dbaas-service/{name}
```

Delete a DBaaS service

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-service`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASService) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_service) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasService(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-service`

## <span data-label="PUT" class="pill-PUT"></span>detach-dbaas-service-from-endpoint

```
PUT /dbaas-external-endpoint/{source-service-name}/detach
```

[BETA] Detach a DBaaS external integration from a service

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `source-service-name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `integration-id` | string | **yes** | External Integration ID<br/><br/>Must be a valid UUID. |

<details>
<summary>Example</summary>

```json
{
  "integration-id": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `detach-dbaas-service-from-endpoint`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DetachDBAASServiceFromEndpoint) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.detach_dbaas_service_from_endpoint) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#detachDbaasServiceFromEndpoint(java.lang.String,com.exoscale.sdk.model.DetachDbaasServiceFromEndpointRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api detach-dbaas-service-from-endpoint`

## <span data-label="POST" class="pill-POST"></span>get-dbaas-service-logs

Get logs of DBaaS service

```
POST /dbaas-service-logs/{service-name}
```

Get logs of DBaaS service

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` |  |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `limit` | integer | no | How many log entries to receive at most, up to 500 (default: 100)<br/><br/>Min: `1`. Max: `500`. |
| `offset` | string | no | Opaque offset identifier |
| `sort-order` | string | no | Sort order for log messages (default: desc)<br/><br/>Allowed values: `desc`, `asc`. |

<details>
<summary>Example</summary>

```json
{
  "limit": 0,
  "offset": "string",
  "sort-order": "desc"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `first-log-offset` | string |  |
| `logs` | array of [Logs](https://community.exoscale.com/reference/api/_schemas/dbaas-service-logs/index.md#logs) |  |
| `offset` | string |  |

<details>
<summary>Example output</summary>

```json
{
  "first-log-offset": "string",
  "logs": [
    {
      "message": "string",
      "node": "string",
      "time": "string",
      "unit": "string"
    }
  ],
  "offset": "string"
}
```
</details>


SDK reference for `get-dbaas-service-logs`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASServiceLogs) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_service_logs) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasServiceLogs(java.lang.String,com.exoscale.sdk.model.GetDbaasServiceLogsRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-service-logs`

## <span data-label="POST" class="pill-POST"></span>get-dbaas-service-metrics

Get metrics of DBaaS service

```
POST /dbaas-service-metrics/{service-name}
```

Get metrics of DBaaS service

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-name` | `path` |  |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `period` | string | no | Metrics time period (default: hour)<br/><br/>Allowed values: `hour`, `week`, `year`, `month`, `day`. |

<details>
<summary>Example</summary>

```json
{
  "period": "hour"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `metrics` | object |  |

<details>
<summary>Example output</summary>

```json
{
  "metrics": {}
}
```
</details>


SDK reference for `get-dbaas-service-metrics`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASServiceMetrics) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_service_metrics) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasServiceMetrics(java.lang.String,com.exoscale.sdk.model.GetDbaasServiceMetricsRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-service-metrics`

## <span data-label="PUT" class="pill-PUT"></span>attach-dbaas-service-to-endpoint

```
PUT /dbaas-external-endpoint/{source-service-name}/attach
```

[BETA] Create a new DBaaS connection between a DBaaS service and an external service

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `source-service-name` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `dest-endpoint-id` | string | **yes** | External endpoint id<br/><br/>Must be a valid UUID. |
| `type` | string | **yes** | External endpoint type<br/><br/>Allowed values: `prometheus`, `opensearch`, `rsyslog`, `datadog`, `elasticsearch`. |

<details>
<summary>Example</summary>

```json
{
  "dest-endpoint-id": "string",
  "type": "prometheus"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `attach-dbaas-service-to-endpoint`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.AttachDBAASServiceToEndpoint) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.attach_dbaas_service_to_endpoint) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#attachDbaasServiceToEndpoint(java.lang.String,com.exoscale.sdk.model.AttachDbaasServiceToEndpointRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api attach-dbaas-service-to-endpoint`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-service-type

Get a DBaaS service type

```
GET /dbaas-service-type/{service-type-name}
```

Get a DBaaS service type

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service-type-name` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `available-versions` | array[string] | DbaaS service available versions |
| `default-version` | string | DbaaS service default version |
| `description` | string | DbaaS service description |
| `name` | string | DbaaS service name<br/><br/>Min length: `0`. Max length: `64`. |
| `plans` | array of [DBaaS plan](https://community.exoscale.com/reference/api/_schemas/dbaas-plan/index.md) | DbaaS service plans |

<details>
<summary>Example output</summary>

```json
{
  "available-versions": [
    "string"
  ],
  "default-version": "string",
  "description": "string",
  "name": "string",
  "plans": [
    {
      "authorized": true,
      "backup-config": {
        "frequent-interval-minutes": 0,
        "frequent-oldest-age-minutes": 0,
        "infrequent-interval-minutes": 0,
        "infrequent-oldest-age-minutes": 0,
        "interval": 0,
        "max-count": 0,
        "recovery-mode": "string"
      },
      "disk-space": 0,
      "family": "string",
      "max-memory-percent": 0,
      "name": "string",
      "node-count": 0,
      "node-cpu-count": 0,
      "node-memory": 0,
      "zones": [
        "string"
      ]
    }
  ]
}
```
</details>


SDK reference for `get-dbaas-service-type`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASServiceType) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_service_type) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasServiceType(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-service-type`

## <span data-label="GET" class="pill-GET"></span>list-dbaas-service-types

DBaaS Service Types

```
GET /dbaas-service-type
```

List available service types for DBaaS

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `dbaas-service-types` | array of [DBaaS service](https://community.exoscale.com/reference/api/_schemas/dbaas-service-type/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "dbaas-service-types": [
    {
      "available-versions": [
        "string"
      ],
      "default-version": "string",
      "description": "string",
      "name": "string",
      "plans": [
        {
          "authorized": true,
          "backup-config": {
            "frequent-interval-minutes": null,
            "frequent-oldest-age-minutes": null,
            "infrequent-interval-minutes": null,
            "infrequent-oldest-age-minutes": null,
            "interval": null,
            "max-count": null,
            "recovery-mode": null
          },
          "disk-space": 0,
          "family": "string",
          "max-memory-percent": 0,
          "name": "string",
          "node-count": 0,
          "node-cpu-count": 0,
          "node-memory": 0,
          "zones": [
            null
          ]
        }
      ]
    }
  ]
}
```
</details>


SDK reference for `list-dbaas-service-types`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListDBAASServiceTypes) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_dbaas_service_types) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listDbaasServiceTypes())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-dbaas-service-types`

## <span data-label="GET" class="pill-GET"></span>list-dbaas-services

List DBaaS services

```
GET /dbaas-service
```

List DBaaS services

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `dbaas-services` | array of [DBaaS Service Common](https://community.exoscale.com/reference/api/_schemas/dbaas-service-common/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "dbaas-services": [
    {
      "created-at": "2024-01-01T12:00:00Z",
      "disk-size": 0,
      "integrations": [
        {
          "description": "string",
          "dest": "string",
          "id": "string",
          "is-active": true,
          "is-enabled": true,
          "settings": {},
          "source": "string",
          "status": "string",
          "type": "string"
        }
      ],
      "name": "string",
      "node-count": 0,
      "node-cpu-count": 0,
      "node-memory": 0,
      "notifications": [
        {
          "level": "warning",
          "message": "string",
          "metadata": {},
          "type": "service_powered_off_removal"
        }
      ],
      "plan": "string",
      "state": "running",
      "termination-protection": true,
      "type": "string",
      "updated-at": "2024-01-01T12:00:00Z",
      "zone": "string"
    }
  ]
}
```
</details>


SDK reference for `list-dbaas-services`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListDBAASServices) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_dbaas_services) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listDbaasServices())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-dbaas-services`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-settings-clickhouse

[BETA] Get DBaaS ClickHouse settings

```
GET /dbaas-settings-clickhouse
```

null

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `settings` | [Settings](#settings) |  |

<details>
<summary>Example output</summary>

```json
{
  "settings": {
    "clickhouse": {
      "additionalProperties": true,
      "properties": {},
      "title": "string",
      "type": "string"
    }
  }
}
```
</details>


### Settings {#settings}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `clickhouse` | [Clickhouse](#clickhouse) | no | ClickHouse configuration values |

### Clickhouse {#clickhouse}

ClickHouse configuration values

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `additionalProperties` | boolean | no |  |
| `properties` | object | no |  |
| `title` | string | no |  |
| `type` | string | no |  |

SDK reference for `get-dbaas-settings-clickhouse`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASSettingsClickhouse) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_settings_clickhouse) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasSettingsClickhouse())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-settings-clickhouse`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-task

Get a DBaaS task

```
GET /dbaas-task/{service}/{id}
```

Get a DBaaS task

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service` | `path` | Min length: `0`. Max length: `63`. |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `create-time` | string | ISO 8601 date-time. |
| `id` | string | Must be a valid UUID. |
| `result` | string |  |
| `result-codes` | array of [Result Codes](https://community.exoscale.com/reference/api/_schemas/dbaas-task/index.md#result-codes) |  |
| `success` | boolean |  |
| `task-type` | string |  |

<details>
<summary>Example output</summary>

```json
{
  "create-time": "2024-01-01T12:00:00Z",
  "id": "string",
  "result": "string",
  "result-codes": [
    {
      "code": "string",
      "dbname": "string"
    }
  ],
  "success": true,
  "task-type": "string"
}
```
</details>


SDK reference for `get-dbaas-task`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASTask) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_task) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasTask(java.lang.String,java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-task`

## <span data-label="POST" class="pill-POST"></span>create-dbaas-task-migration-check

```
POST /dbaas-task-migration-check/{service}
```

Create a DBaaS task to check migration

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `service` | `path` | Min length: `0`. Max length: `63`. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `source-service-uri` | string | **yes** | Service URI of the source MySQL or PostgreSQL database with admin credentials.<br/><br/>Min length: `1`. Max length: `512`. |
| `ignore-dbs` | string | no | Comma-separated list of databases, which should be ignored during migration (supported by MySQL only at the moment)<br/><br/>Min length: `1`. Max length: `2048`. |
| `method` | string | no | The migration method to be used (currently supported only by MySQL service type)<br/><br/>Allowed values: `dump`, `replication`. |

<details>
<summary>Example</summary>

```json
{
  "ignore-dbs": "string",
  "method": "dump",
  "source-service-uri": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dbaas-task-migration-check`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASTaskMigrationCheck) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_task_migration_check) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasTaskMigrationCheck(java.lang.String,com.exoscale.sdk.model.CreateDbaasTaskMigrationCheckRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-task-migration-check`

---

url: https://community.exoscale.com/reference/api/dbaas/dbaas-external-endpoints/

---

# DBaaS External Endpoints

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

External integrations allow you to connect your Exoscale DBaaS services with third-party monitoring, logging, or analytics tools.

[Read more](https://community.exoscale.com/product/dbaas/how-to/external-integrations/index.md)

## <span data-label="POST" class="pill-POST"></span>create-dbaas-external-endpoint-datadog

```
POST /dbaas-external-endpoint-datadog/{name}
```

[BETA] Create DataDog external integration endpoint

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` |  |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `settings` | [Settings](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-datadog-input-create/index.md#settings) | no |  |

<details>
<summary>Example</summary>

```json
{
  "settings": {
    "datadog-api-key": "string",
    "datadog-tags": [
      {
        "comment": "string",
        "tag": "string"
      }
    ],
    "disable-consumer-stats": true,
    "kafka-consumer-check-instances": 0,
    "kafka-consumer-stats-timeout": 0,
    "max-partition-contexts": 0,
    "site": "us3.datadoghq.com"
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dbaas-external-endpoint-datadog`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASExternalEndpointDatadog) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_external_endpoint_datadog) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasExternalEndpointDatadog(java.lang.String,com.exoscale.sdk.model.CreateDbaasExternalEndpointDatadogRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-external-endpoint-datadog`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-external-endpoint-datadog

```
GET /dbaas-external-endpoint-datadog/{endpoint-id}
```

[BETA] Get DataDog external endpoint settings

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `endpoint-id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | External integration endpoint id<br/><br/>Must be a valid UUID. |
| `name` | string | External integration endpoint name |
| `settings` | [Settings](https://community.exoscale.com/reference/api/_schemas/dbaas-external-endpoint-datadog-output/index.md#settings) | External integration DataDog configuration |
| `type` | string | External integration endpoint type<br/><br/>Allowed values: `prometheus`, `opensearch`, `rsyslog`, `datadog`, `elasticsearch`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "name": "string",
  "settings": {
    "datadog-tags": [
      {
        "comment": "string",
        "tag": "string"
      }
    ],
    "disable-consumer-stats": true,
    "kafka-consumer-check-instances": 0,
    "kafka-consumer-stats-timeout": 0,
    "max-partition-contexts": 0,
    "site": "us3.datadoghq.com"
  },
  "type": "prometheus"
}
```
</details>


SDK reference for `get-dbaas-external-endpoint-datadog`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASExternalEndpointDatadog) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_external_endpoint_datadog) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasExternalEndpointDatadog(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-external-endpoint-datadog`

## <span data-label="PUT" class="pill-PUT"></span>update-dbaas-external-endpoint-datadog

```
PUT /dbaas-external-endpoint-datadog/{endpoint-id}
```

[BETA] Update DataDog external integration endpoint

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `endpoint-id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `settings` | [Settings](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-datadog-input-update/index.md#settings) | no |  |

<details>
<summary>Example</summary>

```json
{
  "settings": {
    "datadog-api-key": "string",
    "datadog-tags": [
      {
        "comment": "string",
        "tag": "string"
      }
    ],
    "disable-consumer-stats": true,
    "kafka-consumer-check-instances": 0,
    "kafka-consumer-stats-timeout": 0,
    "max-partition-contexts": 0,
    "site": "us3.datadoghq.com"
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-dbaas-external-endpoint-datadog`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateDBAASExternalEndpointDatadog) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_dbaas_external_endpoint_datadog) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateDbaasExternalEndpointDatadog(java.util.UUID,com.exoscale.sdk.model.UpdateDbaasExternalEndpointDatadogRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-dbaas-external-endpoint-datadog`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-external-endpoint-datadog

```
DELETE /dbaas-external-endpoint-datadog/{endpoint-id}
```

[BETA] Delete DataDog external integration endpoint

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `endpoint-id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-external-endpoint-datadog`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASExternalEndpointDatadog) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_external_endpoint_datadog) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasExternalEndpointDatadog(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-external-endpoint-datadog`

## <span data-label="POST" class="pill-POST"></span>create-dbaas-external-endpoint-elasticsearch

```
POST /dbaas-external-endpoint-elasticsearch/{name}
```

[BETA] Create ElasticSearch Logs external integration endpoint

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` |  |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `settings` | [Settings](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-elasticsearch-input-create/index.md#settings) | no |  |

<details>
<summary>Example</summary>

```json
{
  "settings": {
    "ca": "string",
    "index-days-max": 0,
    "index-prefix": "string",
    "timeout": 0,
    "url": "string"
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dbaas-external-endpoint-elasticsearch`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASExternalEndpointElasticsearch) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_external_endpoint_elasticsearch) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasExternalEndpointElasticsearch(java.lang.String,com.exoscale.sdk.model.CreateDbaasExternalEndpointElasticsearchRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-external-endpoint-elasticsearch`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-external-endpoint-elasticsearch

```
GET /dbaas-external-endpoint-elasticsearch/{endpoint-id}
```

[BETA] Get ElasticSearch Logs external integration endpoint settings

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `endpoint-id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | External integration endpoint id<br/><br/>Must be a valid UUID. |
| `name` | string | External integration endpoint name |
| `settings` | [DBaaS Endpoint Elasticsearch Optional Fields](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-elasticsearch-optional-fields/index.md) | External integration ElasticSearch logs configuration |
| `type` | string | External integration endpoint type<br/><br/>Allowed values: `prometheus`, `opensearch`, `rsyslog`, `datadog`, `elasticsearch`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "name": "string",
  "settings": {
    "index-days-max": 0,
    "index-prefix": "string",
    "timeout": 0,
    "url": "string"
  },
  "type": "prometheus"
}
```
</details>


SDK reference for `get-dbaas-external-endpoint-elasticsearch`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASExternalEndpointElasticsearch) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_external_endpoint_elasticsearch) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasExternalEndpointElasticsearch(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-external-endpoint-elasticsearch`

## <span data-label="PUT" class="pill-PUT"></span>update-dbaas-external-endpoint-elasticsearch

```
PUT /dbaas-external-endpoint-elasticsearch/{endpoint-id}
```

[BETA] Update ElasticSearch Logs external integration endpoint

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `endpoint-id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `settings` | [Settings](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-elasticsearch-input-update/index.md#settings) | no |  |

<details>
<summary>Example</summary>

```json
{
  "settings": {
    "ca": "string",
    "index-days-max": 0,
    "index-prefix": "string",
    "timeout": 0,
    "url": "string"
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-dbaas-external-endpoint-elasticsearch`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateDBAASExternalEndpointElasticsearch) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_dbaas_external_endpoint_elasticsearch) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateDbaasExternalEndpointElasticsearch(java.util.UUID,com.exoscale.sdk.model.UpdateDbaasExternalEndpointElasticsearchRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-dbaas-external-endpoint-elasticsearch`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-external-endpoint-elasticsearch

```
DELETE /dbaas-external-endpoint-elasticsearch/{endpoint-id}
```

[BETA] Delete ElasticSearch logs external integration endpoint

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `endpoint-id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-external-endpoint-elasticsearch`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASExternalEndpointElasticsearch) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_external_endpoint_elasticsearch) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasExternalEndpointElasticsearch(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-external-endpoint-elasticsearch`

## <span data-label="POST" class="pill-POST"></span>create-dbaas-external-endpoint-opensearch

```
POST /dbaas-external-endpoint-opensearch/{name}
```

[BETA] Create OpenSearch Logs external integration endpoint

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` |  |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `settings` | [Settings](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-opensearch-input-create/index.md#settings) | no |  |

<details>
<summary>Example</summary>

```json
{
  "settings": {
    "ca": "string",
    "index-days-max": 0,
    "index-prefix": "string",
    "timeout": 0,
    "url": "string"
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dbaas-external-endpoint-opensearch`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASExternalEndpointOpensearch) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_external_endpoint_opensearch) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasExternalEndpointOpensearch(java.lang.String,com.exoscale.sdk.model.CreateDbaasExternalEndpointOpensearchRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-external-endpoint-opensearch`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-external-endpoint-opensearch

```
GET /dbaas-external-endpoint-opensearch/{endpoint-id}
```

[BETA] Get OpenSearch Logs external integration endpoint settings

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `endpoint-id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | External integration endpoint id<br/><br/>Must be a valid UUID. |
| `name` | string | External integration endpoint name |
| `settings` | [DBaaS Endpoint Opensearch Optional Fields](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-opensearch-optional-fields/index.md) | External integration OpenSearch logs configuration |
| `type` | string | External integration endpoint type<br/><br/>Allowed values: `prometheus`, `opensearch`, `rsyslog`, `datadog`, `elasticsearch`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "name": "string",
  "settings": {
    "index-days-max": 0,
    "index-prefix": "string",
    "timeout": 0,
    "url": "string"
  },
  "type": "prometheus"
}
```
</details>


SDK reference for `get-dbaas-external-endpoint-opensearch`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASExternalEndpointOpensearch) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_external_endpoint_opensearch) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasExternalEndpointOpensearch(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-external-endpoint-opensearch`

## <span data-label="PUT" class="pill-PUT"></span>update-dbaas-external-endpoint-opensearch

```
PUT /dbaas-external-endpoint-opensearch/{endpoint-id}
```

[BETA] Update OpenSearch Logs external integration endpoint

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `endpoint-id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `settings` | [Settings](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-opensearch-input-update/index.md#settings) | no |  |

<details>
<summary>Example</summary>

```json
{
  "settings": {
    "ca": "string",
    "index-days-max": 0,
    "index-prefix": "string",
    "timeout": 0,
    "url": "string"
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-dbaas-external-endpoint-opensearch`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateDBAASExternalEndpointOpensearch) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_dbaas_external_endpoint_opensearch) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateDbaasExternalEndpointOpensearch(java.util.UUID,com.exoscale.sdk.model.UpdateDbaasExternalEndpointOpensearchRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-dbaas-external-endpoint-opensearch`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-external-endpoint-opensearch

```
DELETE /dbaas-external-endpoint-opensearch/{endpoint-id}
```

[BETA] Delete OpenSearch logs external integration endpoint

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `endpoint-id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-external-endpoint-opensearch`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASExternalEndpointOpensearch) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_external_endpoint_opensearch) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasExternalEndpointOpensearch(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-external-endpoint-opensearch`

## <span data-label="POST" class="pill-POST"></span>create-dbaas-external-endpoint-prometheus

```
POST /dbaas-external-endpoint-prometheus/{name}
```

[BETA] Create Prometheus external integration endpoint

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` |  |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `settings` | [Settings](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-prometheus-payload/index.md#settings) | no |  |

<details>
<summary>Example</summary>

```json
{
  "settings": {
    "basic-auth-password": "string",
    "basic-auth-username": "string"
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dbaas-external-endpoint-prometheus`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASExternalEndpointPrometheus) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_external_endpoint_prometheus) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasExternalEndpointPrometheus(java.lang.String,com.exoscale.sdk.model.CreateDbaasExternalEndpointPrometheusRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-external-endpoint-prometheus`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-external-endpoint-prometheus

```
GET /dbaas-external-endpoint-prometheus/{endpoint-id}
```

[BETA] Get Prometheus external integration endpoint settings

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `endpoint-id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | External integration endpoint id<br/><br/>Must be a valid UUID. |
| `name` | string | External integration endpoint name |
| `settings` | [Settings](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-external-prometheus-output/index.md#settings) | External integration Prometheus configuration |
| `type` | string | External integration endpoint type<br/><br/>Allowed values: `prometheus`, `opensearch`, `rsyslog`, `datadog`, `elasticsearch`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "name": "string",
  "settings": {
    "basic-auth-username": "string"
  },
  "type": "prometheus"
}
```
</details>


SDK reference for `get-dbaas-external-endpoint-prometheus`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASExternalEndpointPrometheus) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_external_endpoint_prometheus) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasExternalEndpointPrometheus(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-external-endpoint-prometheus`

## <span data-label="PUT" class="pill-PUT"></span>update-dbaas-external-endpoint-prometheus

```
PUT /dbaas-external-endpoint-prometheus/{endpoint-id}
```

[BETA] Update Prometheus external integration endpoint

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `endpoint-id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `settings` | [Settings](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-prometheus-payload/index.md#settings) | no |  |

<details>
<summary>Example</summary>

```json
{
  "settings": {
    "basic-auth-password": "string",
    "basic-auth-username": "string"
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-dbaas-external-endpoint-prometheus`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateDBAASExternalEndpointPrometheus) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_dbaas_external_endpoint_prometheus) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateDbaasExternalEndpointPrometheus(java.util.UUID,com.exoscale.sdk.model.UpdateDbaasExternalEndpointPrometheusRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-dbaas-external-endpoint-prometheus`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-external-endpoint-prometheus

```
DELETE /dbaas-external-endpoint-prometheus/{endpoint-id}
```

[BETA] Delete Prometheus external integration endpoint

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `endpoint-id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-external-endpoint-prometheus`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASExternalEndpointPrometheus) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_external_endpoint_prometheus) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasExternalEndpointPrometheus(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-external-endpoint-prometheus`

## <span data-label="POST" class="pill-POST"></span>create-dbaas-external-endpoint-rsyslog

```
POST /dbaas-external-endpoint-rsyslog/{name}
```

[BETA] Create RSyslog external integration endpoint

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `name` | `path` |  |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `settings` | [Settings](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-rsyslog-input-create/index.md#settings) | no |  |

<details>
<summary>Example</summary>

```json
{
  "settings": {
    "ca": "string",
    "cert": "string",
    "format": "custom",
    "key": "string",
    "logline": "string",
    "max-message-size": 0,
    "port": 0,
    "sd": "string",
    "server": "string",
    "tls": true
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dbaas-external-endpoint-rsyslog`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDBAASExternalEndpointRsyslog) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dbaas_external_endpoint_rsyslog) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDbaasExternalEndpointRsyslog(java.lang.String,com.exoscale.sdk.model.CreateDbaasExternalEndpointRsyslogRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dbaas-external-endpoint-rsyslog`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-external-endpoint-rsyslog

```
GET /dbaas-external-endpoint-rsyslog/{endpoint-id}
```

[BETA] Get RSyslog external integration endpoint settings

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `endpoint-id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | External integration endpoint id<br/><br/>Must be a valid UUID. |
| `name` | string | External integration endpoint name |
| `settings` | [DBaaS Endpoint Rsyslog Optional Fields](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-rsyslog-optional-fields/index.md) | External integration RSyslog configuration |
| `type` | string | External integration endpoint type<br/><br/>Allowed values: `prometheus`, `opensearch`, `rsyslog`, `datadog`, `elasticsearch`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "name": "string",
  "settings": {
    "format": "custom",
    "logline": "string",
    "max-message-size": 0,
    "port": 0,
    "sd": "string",
    "server": "string",
    "tls": true
  },
  "type": "prometheus"
}
```
</details>


SDK reference for `get-dbaas-external-endpoint-rsyslog`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASExternalEndpointRsyslog) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_external_endpoint_rsyslog) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasExternalEndpointRsyslog(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-external-endpoint-rsyslog`

## <span data-label="PUT" class="pill-PUT"></span>update-dbaas-external-endpoint-rsyslog

```
PUT /dbaas-external-endpoint-rsyslog/{endpoint-id}
```

[BETA] Update RSyslog external integration endpoint

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `endpoint-id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `settings` | [Settings](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-rsyslog-input-update/index.md#settings) | no |  |

<details>
<summary>Example</summary>

```json
{
  "settings": {
    "ca": "string",
    "cert": "string",
    "format": "custom",
    "key": "string",
    "logline": "string",
    "max-message-size": 0,
    "port": 0,
    "sd": "string",
    "server": "string",
    "tls": true
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-dbaas-external-endpoint-rsyslog`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateDBAASExternalEndpointRsyslog) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_dbaas_external_endpoint_rsyslog) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateDbaasExternalEndpointRsyslog(java.util.UUID,com.exoscale.sdk.model.UpdateDbaasExternalEndpointRsyslogRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-dbaas-external-endpoint-rsyslog`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dbaas-external-endpoint-rsyslog

```
DELETE /dbaas-external-endpoint-rsyslog/{endpoint-id}
```

[BETA] Delete RSyslog external integration endpoint

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `endpoint-id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dbaas-external-endpoint-rsyslog`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDBAASExternalEndpointRsyslog) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dbaas_external_endpoint_rsyslog) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDbaasExternalEndpointRsyslog(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dbaas-external-endpoint-rsyslog`

## <span data-label="POST" class="pill-POST"></span>update-dbaas-external-integration-settings-datadog

```
POST /dbaas-external-integration-settings-datadog/{integration-id}
```

[BETA] Manage Datadog integration settings

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `integration-id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `settings` | [DBaaS Integration Settings Datadog](https://community.exoscale.com/reference/api/_schemas/dbaas-integration-settings-datadog/index.md) | no |  |

<details>
<summary>Example</summary>

```json
{
  "settings": {
    "datadog-dbm-enabled": true,
    "datadog-pgbouncer-enabled": true
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-dbaas-external-integration-settings-datadog`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateDBAASExternalIntegrationSettingsDatadog) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_dbaas_external_integration_settings_datadog) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateDbaasExternalIntegrationSettingsDatadog(java.util.UUID,com.exoscale.sdk.model.UpdateDbaasExternalIntegrationSettingsDatadogRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-dbaas-external-integration-settings-datadog`

## <span data-label="GET" class="pill-GET"></span>get-dbaas-external-integration-settings-datadog

```
GET /dbaas-external-integration-settings-datadog/{integration-id}
```

[BETA] Get Datadog integration settings

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `integration-id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `settings` | [DBaaS Integration Settings Datadog](https://community.exoscale.com/reference/api/_schemas/dbaas-integration-settings-datadog/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "settings": {
    "datadog-dbm-enabled": true,
    "datadog-pgbouncer-enabled": true
  }
}
```
</details>


SDK reference for `get-dbaas-external-integration-settings-datadog`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDBAASExternalIntegrationSettingsDatadog) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dbaas_external_integration_settings_datadog) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDbaasExternalIntegrationSettingsDatadog(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dbaas-external-integration-settings-datadog`


---

## Other Operations

## <span data-label="GET" class="pill-GET"></span>list-dbaas-external-endpoint-types

```
GET /dbaas-external-endpoint-types
```

[BETA] List available external endpoint types and their schemas for DBaaS external integrations

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `endpoint-types` | array of [Endpoint Types](#endpoint-types) |  |

<details>
<summary>Example output</summary>

```json
{
  "endpoint-types": [
    {
      "service-types": [
        "string"
      ],
      "title": "string",
      "type": "prometheus"
    }
  ]
}
```
</details>


### Endpoint Types {#endpoint-types}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `service-types` | array[string] | no |  |
| `title` | string | no |  |
| `type` | string | no | Allowed values: `prometheus`, `opensearch`, `rsyslog`, `datadog`, `elasticsearch`. |

SDK reference for `list-dbaas-external-endpoint-types`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListDBAASExternalEndpointTypes) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_dbaas_external_endpoint_types) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listDbaasExternalEndpointTypes())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-dbaas-external-endpoint-types`

## <span data-label="GET" class="pill-GET"></span>list-dbaas-external-endpoints

```
GET /dbaas-external-endpoints
```

[BETA] List available external endpoints for integrations

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `dbaas-endpoints` | array of [DBaaS External Endpoint](https://community.exoscale.com/reference/api/_schemas/dbaas-external-endpoint/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "dbaas-endpoints": [
    {
      "id": "string",
      "name": "string",
      "type": "prometheus"
    }
  ]
}
```
</details>


SDK reference for `list-dbaas-external-endpoints`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListDBAASExternalEndpoints) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_dbaas_external_endpoints) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listDbaasExternalEndpoints())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-dbaas-external-endpoints`

---

url: https://community.exoscale.com/reference/api/object-storage/

---

# Object Storage

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Exoscale Simple Object Storage (SOS) is an S3-compatible object storage service.

[Read more](https://community.exoscale.com/product/storage/object-storage/index.md)


---

## Other Operations

## <span data-label="GET" class="pill-GET"></span>list-sos-buckets-usage

List SOS Buckets Usage

```
GET /sos-buckets-usage
```

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `sos-buckets-usage` | array of [SOS Bucket usage](https://community.exoscale.com/reference/api/_schemas/sos-bucket-usage/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "sos-buckets-usage": [
    {
      "created-at": "2024-01-01T12:00:00Z",
      "name": "string",
      "size": 0,
      "zone-name": "ch-dk-2"
    }
  ]
}
```
</details>


SDK reference for `list-sos-buckets-usage`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListSOSBucketsUsage) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_sos_buckets_usage) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listSosBucketsUsage())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-sos-buckets-usage`

## <span data-label="GET" class="pill-GET"></span>get-sos-presigned-url

Retrieve Presigned Download URL for SOS object

```
GET /sos/{bucket}/presigned-url
```

Generates Presigned Download URL for SOS object

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `bucket` | `path` |  |

### Query parameters

| Name | In | Required | Description |
| --- | --- | --- | --- |
| `key` | `query` | no |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `url` | string |  |

<details>
<summary>Example output</summary>

```json
{
  "url": "string"
}
```
</details>


SDK reference for `get-sos-presigned-url`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetSOSPresignedURL) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_sos_presigned_url) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getSosPresignedUrl(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-sos-presigned-url`

---

url: https://community.exoscale.com/reference/api/block-storage/

---

# Block Storage

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Exoscale's Block Storage offers persistent externally attached volumes for your Compute instances.

[Read more](https://community.exoscale.com/product/storage/block-storage/index.md)

## <span data-label="POST" class="pill-POST"></span>create-block-storage-snapshot

Create a block storage snapshot

```
POST /block-storage/{id}:create-snapshot
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `labels` | object | no | Resource labels |
| `name` | string | no | Snapshot name<br/><br/>Min length: `1`. Max length: `255`. |

<details>
<summary>Example</summary>

```json
{
  "labels": {},
  "name": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-block-storage-snapshot`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateBlockStorageSnapshot) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_block_storage_snapshot) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createBlockStorageSnapshot(java.util.UUID,com.exoscale.sdk.model.CreateBlockStorageSnapshotRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-block-storage-snapshot`

## <span data-label="GET" class="pill-GET"></span>get-block-storage-snapshot

Retrieve block storage snapshot details

```
GET /block-storage-snapshot/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `block-storage-volume` | [Target block storage volume](https://community.exoscale.com/reference/api/_schemas/block-storage-volume-ref/index.md) | Referenced volume |
| `created-at` | string | Snapshot creation date<br/><br/>ISO 8601 date-time. |
| `id` | string | Snapshot ID<br/><br/>Must be a valid UUID. |
| `labels` | object | Resource labels |
| `name` | string | Snapshot name<br/><br/>Min length: `1`. Max length: `255`. |
| `size` | integer | Snapshot size<br/><br/>Min: `1`. |
| `state` | string | Snapshot state<br/><br/>Allowed values: `partially-destroyed`, `destroying`, `creating`, `created`, `promoting`, `error`, `destroyed`, `allocated`. |
| `volume-size` | integer | Original Volume size<br/><br/>Min: `0`. |

<details>
<summary>Example output</summary>

```json
{
  "block-storage-volume": {
    "id": "string"
  },
  "created-at": "2024-01-01T12:00:00Z",
  "id": "string",
  "labels": {},
  "name": "string",
  "size": 0,
  "state": "partially-destroyed",
  "volume-size": 0
}
```
</details>


SDK reference for `get-block-storage-snapshot`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetBlockStorageSnapshot) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_block_storage_snapshot) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getBlockStorageSnapshot(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-block-storage-snapshot`

## <span data-label="PUT" class="pill-PUT"></span>update-block-storage-snapshot

Update block storage volume snapshot

```
PUT /block-storage-snapshot/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `labels` | object | no | Resource labels |
| `name` | string | no | Snapshot name<br/><br/>Max length: `255`. |

<details>
<summary>Example</summary>

```json
{
  "labels": {},
  "name": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-block-storage-snapshot`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateBlockStorageSnapshot) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_block_storage_snapshot) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateBlockStorageSnapshot(java.util.UUID,com.exoscale.sdk.model.UpdateBlockStorageSnapshotRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-block-storage-snapshot`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-block-storage-snapshot

Delete a block storage snapshot, data will be unrecoverable

```
DELETE /block-storage-snapshot/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-block-storage-snapshot`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteBlockStorageSnapshot) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_block_storage_snapshot) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteBlockStorageSnapshot(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-block-storage-snapshot`

## <span data-label="POST" class="pill-POST"></span>create-block-storage-volume

Create a block storage volume

```
POST /block-storage
```

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `block-storage-snapshot` | [Target block storage snapshot](https://community.exoscale.com/reference/api/_schemas/block-storage-snapshot-ref/index.md) | no | Block storage snapshot |
| `labels` | object | no | Resource labels |
| `name` | string | no | Volume name<br/><br/>Max length: `255`. |
| `size` | integer | no | Volume size in GiB.                             When a snapshot ID is supplied, this defaults to the size of the source volume, but can be set to a larger value.<br/><br/>Min: `1`. |

<details>
<summary>Example</summary>

```json
{
  "block-storage-snapshot": {
    "id": "string"
  },
  "labels": {},
  "name": "string",
  "size": 0
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-block-storage-volume`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateBlockStorageVolume) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_block_storage_volume) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createBlockStorageVolume(com.exoscale.sdk.model.CreateBlockStorageVolumeRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-block-storage-volume`

## <span data-label="GET" class="pill-GET"></span>get-block-storage-volume

Retrieve block storage volume details

```
GET /block-storage/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `block-storage-snapshots` | array of [Target block storage snapshot](https://community.exoscale.com/reference/api/_schemas/block-storage-snapshot-ref/index.md) | Volume snapshots, if any |
| `blocksize` | integer | Volume block size<br/><br/>Min: `0`. |
| `created-at` | string | Volume creation date<br/><br/>ISO 8601 date-time. |
| `encrypted` | boolean | Indicates if the block-storage volume is encrypted |
| `id` | string | Volume ID<br/><br/>Must be a valid UUID. |
| `instance` | [Target Instance](https://community.exoscale.com/reference/api/_schemas/instance-ref/index.md) | Volume attached instance, if any |
| `labels` | object | Resource labels |
| `name` | string | Volume name<br/><br/>Min length: `1`. Max length: `255`. |
| `size` | integer | Volume size<br/><br/>Min: `1`. |
| `state` | string | Volume state<br/><br/>Allowed values: `snapshotting`, `deleted`, `creating`, `detached`, `deleting`, `attaching`, `error`, `attached`, `detaching`. |

<details>
<summary>Example output</summary>

```json
{
  "block-storage-snapshots": [
    {
      "id": "string"
    }
  ],
  "blocksize": 0,
  "created-at": "2024-01-01T12:00:00Z",
  "encrypted": true,
  "id": "string",
  "instance": {
    "id": "string"
  },
  "labels": {},
  "name": "string",
  "size": 0,
  "state": "snapshotting"
}
```
</details>


SDK reference for `get-block-storage-volume`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetBlockStorageVolume) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_block_storage_volume) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getBlockStorageVolume(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-block-storage-volume`

## <span data-label="PUT" class="pill-PUT"></span>resize-block-storage-volume

Resize a block storage volume

```
PUT /block-storage/{id}:resize-volume
```

This operation resizes a Block storage volume. Note: the volume can only grow, cannot be shrunk. Only detached volumes or volumes attached to stopped instances can be resized.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `size` | integer | **yes** | Volume size in GiB<br/><br/>Min: `0`. |

<details>
<summary>Example</summary>

```json
{
  "size": 0
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `block-storage-snapshots` | array of [Target block storage snapshot](https://community.exoscale.com/reference/api/_schemas/block-storage-snapshot-ref/index.md) | Volume snapshots, if any |
| `blocksize` | integer | Volume block size<br/><br/>Min: `0`. |
| `created-at` | string | Volume creation date<br/><br/>ISO 8601 date-time. |
| `encrypted` | boolean | Indicates if the block-storage volume is encrypted |
| `id` | string | Volume ID<br/><br/>Must be a valid UUID. |
| `instance` | [Target Instance](https://community.exoscale.com/reference/api/_schemas/instance-ref/index.md) | Volume attached instance, if any |
| `labels` | object | Resource labels |
| `name` | string | Volume name<br/><br/>Min length: `1`. Max length: `255`. |
| `size` | integer | Volume size<br/><br/>Min: `1`. |
| `state` | string | Volume state<br/><br/>Allowed values: `snapshotting`, `deleted`, `creating`, `detached`, `deleting`, `attaching`, `error`, `attached`, `detaching`. |

<details>
<summary>Example output</summary>

```json
{
  "block-storage-snapshots": [
    {
      "id": "string"
    }
  ],
  "blocksize": 0,
  "created-at": "2024-01-01T12:00:00Z",
  "encrypted": true,
  "id": "string",
  "instance": {
    "id": "string"
  },
  "labels": {},
  "name": "string",
  "size": 0,
  "state": "snapshotting"
}
```
</details>


SDK reference for `resize-block-storage-volume`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ResizeBlockStorageVolume) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.resize_block_storage_volume) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#resizeBlockStorageVolume(java.util.UUID,com.exoscale.sdk.model.ResizeBlockStorageVolumeRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api resize-block-storage-volume`

## <span data-label="PUT" class="pill-PUT"></span>detach-block-storage-volume

Detach block storage volume

```
PUT /block-storage/{id}:detach
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `detach-block-storage-volume`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DetachBlockStorageVolume) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.detach_block_storage_volume) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#detachBlockStorageVolume(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api detach-block-storage-volume`

## <span data-label="PUT" class="pill-PUT"></span>update-block-storage-volume

Update block storage volume

```
PUT /block-storage/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `labels` | object | no | Resource labels |
| `name` | string | no | Volume name<br/><br/>Max length: `255`. |

<details>
<summary>Example</summary>

```json
{
  "labels": {},
  "name": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-block-storage-volume`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateBlockStorageVolume) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_block_storage_volume) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateBlockStorageVolume(java.util.UUID,com.exoscale.sdk.model.UpdateBlockStorageVolumeRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-block-storage-volume`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-block-storage-volume

Delete a block storage volume, data will be unrecoverable

```
DELETE /block-storage/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-block-storage-volume`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteBlockStorageVolume) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_block_storage_volume) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteBlockStorageVolume(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-block-storage-volume`


---

## Other Operations

## <span data-label="GET" class="pill-GET"></span>list-block-storage-snapshots

List block storage snapshots

```
GET /block-storage-snapshot
```

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `block-storage-snapshots` | array of [Block storage snapshot](https://community.exoscale.com/reference/api/_schemas/block-storage-snapshot/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "block-storage-snapshots": [
    {
      "block-storage-volume": {
        "id": "string"
      },
      "created-at": "2024-01-01T12:00:00Z",
      "id": "string",
      "labels": {},
      "name": "string",
      "size": 0,
      "state": "partially-destroyed",
      "volume-size": 0
    }
  ]
}
```
</details>


SDK reference for `list-block-storage-snapshots`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListBlockStorageSnapshots) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_block_storage_snapshots) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listBlockStorageSnapshots())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-block-storage-snapshots`

## <span data-label="PUT" class="pill-PUT"></span>attach-block-storage-volume-to-instance

Attach block storage volume to an instance

```
PUT /block-storage/{id}:attach
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `instance` | [Target Instance](https://community.exoscale.com/reference/api/_schemas/instance-ref/index.md) | **yes** | Instance to attach to, this can only be done if the volume is not currently attached |

<details>
<summary>Example</summary>

```json
{
  "instance": {
    "id": "string"
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `attach-block-storage-volume-to-instance`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.AttachBlockStorageVolumeToInstance) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.attach_block_storage_volume_to_instance) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#attachBlockStorageVolumeToInstance(java.util.UUID,com.exoscale.sdk.model.AttachBlockStorageVolumeToInstanceRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api attach-block-storage-volume-to-instance`

## <span data-label="GET" class="pill-GET"></span>list-block-storage-volumes

List block storage volumes

```
GET /block-storage
```

### Query parameters

| Name | In | Required | Description |
| --- | --- | --- | --- |
| `instance-id` | `query` | no | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `block-storage-volumes` | array of [Block storage volume](https://community.exoscale.com/reference/api/_schemas/block-storage-volume/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "block-storage-volumes": [
    {
      "block-storage-snapshots": [
        {
          "id": "string"
        }
      ],
      "blocksize": 0,
      "created-at": "2024-01-01T12:00:00Z",
      "encrypted": true,
      "id": "string",
      "instance": {
        "id": "string"
      },
      "labels": {},
      "name": "string",
      "size": 0,
      "state": "snapshotting"
    }
  ]
}
```
</details>


SDK reference for `list-block-storage-volumes`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListBlockStorageVolumes) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_block_storage_volumes) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listBlockStorageVolumes(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-block-storage-volumes`

---

url: https://community.exoscale.com/reference/api/dns/

---

# DNS

DNS zone hosting and records management.

[Read more](https://community.exoscale.com/product/networking/dns/index.md)

- [Domain](https://community.exoscale.com/reference/api/dns/domain/index.md) - DNS zone management.
- [Record](https://community.exoscale.com/reference/api/dns/record/index.md) - DNS zone records management.

---

url: https://community.exoscale.com/reference/api/dns/domain/

---

# Domain

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

DNS zone management.

[Read more](https://community.exoscale.com/product/networking/dns/quick-start/index.md)

## <span data-label="POST" class="pill-POST"></span>create-dns-domain

Create DNS domain

```
POST /dns-domain
```

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `unicode-name` | string | no | Domain name |

<details>
<summary>Example</summary>

```json
{
  "unicode-name": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dns-domain`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDNSDomain) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dns_domain) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDnsDomain(com.exoscale.sdk.model.CreateDnsDomainRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dns-domain`

## <span data-label="GET" class="pill-GET"></span>get-dns-domain

Retrieve DNS domain details

```
GET /dns-domain/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `created-at` | string | DNS domain creation date<br/><br/>ISO 8601 date-time. |
| `id` | string | DNS domain ID<br/><br/>Must be a valid UUID. |
| `unicode-name` | string | DNS domain unicode name<br/><br/>Min length: `1`. Max length: `255`. |

<details>
<summary>Example output</summary>

```json
{
  "created-at": "2024-01-01T12:00:00Z",
  "id": "string",
  "unicode-name": "string"
}
```
</details>


SDK reference for `get-dns-domain`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDNSDomain) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dns_domain) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDnsDomain(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dns-domain`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dns-domain

Delete DNS Domain

```
DELETE /dns-domain/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dns-domain`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDNSDomain) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dns_domain) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDnsDomain(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dns-domain`


---

## Other Operations

## <span data-label="GET" class="pill-GET"></span>get-dns-domain-zone-file

Retrieve DNS domain zone file

```
GET /dns-domain/{id}/zone
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `zone-file` | string |  |

<details>
<summary>Example output</summary>

```json
{
  "zone-file": "string"
}
```
</details>


SDK reference for `get-dns-domain-zone-file`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDNSDomainZoneFile) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dns_domain_zone_file) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDnsDomainZoneFile(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dns-domain-zone-file`

## <span data-label="GET" class="pill-GET"></span>list-dns-domains

List DNS domains

```
GET /dns-domain
```

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `dns-domains` | array of [DNS domain](https://community.exoscale.com/reference/api/_schemas/dns-domain/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "dns-domains": [
    {
      "created-at": "2024-01-01T12:00:00Z",
      "id": "string",
      "unicode-name": "string"
    }
  ]
}
```
</details>


SDK reference for `list-dns-domains`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListDNSDomains) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_dns_domains) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listDnsDomains())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-dns-domains`

---

url: https://community.exoscale.com/reference/api/dns/record/

---

# Record

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

DNS zone records management.

[Read more](https://community.exoscale.com/product/networking/dns/overview/index.md)

## <span data-label="POST" class="pill-POST"></span>create-dns-domain-record

Create DNS domain record

```
POST /dns-domain/{domain-id}/record
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `domain-id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `content` | string | **yes** | DNS domain record content |
| `name` | string | **yes** | DNS domain record name |
| `type` | string | **yes** | DNS domain record type<br/><br/>Allowed values: `NS`, `CAA`, `NAPTR`, `POOL`, `A`, `HINFO`, `CNAME`, `SSHFP`, `SRV`, `AAAA`, `MX`, `TXT`, `ALIAS`, `URL`. |
| `priority` | integer | no | DNS domain record priority<br/><br/>Min: `0`. |
| `ttl` | integer | no | DNS domain record TTL<br/><br/>Min: `0`. |

<details>
<summary>Example</summary>

```json
{
  "content": "string",
  "name": "string",
  "priority": 0,
  "ttl": 0,
  "type": "NS"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-dns-domain-record`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDNSDomainRecord) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_dns_domain_record) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDnsDomainRecord(java.util.UUID,com.exoscale.sdk.model.CreateDnsDomainRecordRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-dns-domain-record`

## <span data-label="GET" class="pill-GET"></span>get-dns-domain-record

Retrieve DNS domain record details

```
GET /dns-domain/{domain-id}/record/{record-id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `domain-id` | `path` | Must be a valid UUID. |
| `record-id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `content` | string | DNS domain record content |
| `created-at` | string | DNS domain record creation date<br/><br/>ISO 8601 date-time. |
| `id` | string | DNS domain record ID<br/><br/>Must be a valid UUID. |
| `name` | string | DNS domain record name |
| `priority` | integer | DNS domain record priority<br/><br/>Min: `0`. |
| `system-record` | boolean | DNS domain record system status |
| `ttl` | integer | DNS domain record TTL<br/><br/>Min: `0`. |
| `type` | string | DNS domain record type<br/><br/>Allowed values: `NS`, `CAA`, `NAPTR`, `POOL`, `A`, `HINFO`, `CNAME`, `SOA`, `SSHFP`, `SRV`, `AAAA`, `MX`, `TXT`, `ALIAS`, `URL`, `SPF`. |
| `updated-at` | string | DNS domain record update date<br/><br/>ISO 8601 date-time. |

<details>
<summary>Example output</summary>

```json
{
  "content": "string",
  "created-at": "2024-01-01T12:00:00Z",
  "id": "string",
  "name": "string",
  "priority": 0,
  "system-record": true,
  "ttl": 0,
  "type": "NS",
  "updated-at": "2024-01-01T12:00:00Z"
}
```
</details>


SDK reference for `get-dns-domain-record`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDNSDomainRecord) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_dns_domain_record) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDnsDomainRecord(java.util.UUID,java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-dns-domain-record`

## <span data-label="PUT" class="pill-PUT"></span>update-dns-domain-record

Update DNS domain record

```
PUT /dns-domain/{domain-id}/record/{record-id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `domain-id` | `path` | Must be a valid UUID. |
| `record-id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `content` | string | no | DNS domain record content |
| `name` | string | no | DNS domain record name |
| `priority` | integer | no | DNS domain record priority<br/><br/>Min: `0`. |
| `ttl` | integer | no | DNS domain record TTL<br/><br/>Min: `0`. |

<details>
<summary>Example</summary>

```json
{
  "content": "string",
  "name": "string",
  "priority": 0,
  "ttl": 0
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-dns-domain-record`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateDNSDomainRecord) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_dns_domain_record) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateDnsDomainRecord(java.util.UUID,java.util.UUID,com.exoscale.sdk.model.UpdateDnsDomainRecordRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-dns-domain-record`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-dns-domain-record

Delete DNS domain record

```
DELETE /dns-domain/{domain-id}/record/{record-id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `domain-id` | `path` | Must be a valid UUID. |
| `record-id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-dns-domain-record`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDNSDomainRecord) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_dns_domain_record) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDnsDomainRecord(java.util.UUID,java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-dns-domain-record`


---

## Other Operations

## <span data-label="GET" class="pill-GET"></span>list-dns-domain-records

List DNS domain records

```
GET /dns-domain/{domain-id}/record
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `domain-id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `dns-domain-records` | array of [DNS domain record](https://community.exoscale.com/reference/api/_schemas/dns-domain-record/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "dns-domain-records": [
    {
      "content": "string",
      "created-at": "2024-01-01T12:00:00Z",
      "id": "string",
      "name": "string",
      "priority": 0,
      "system-record": true,
      "ttl": 0,
      "type": "NS",
      "updated-at": "2024-01-01T12:00:00Z"
    }
  ]
}
```
</details>


SDK reference for `list-dns-domain-records`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListDNSDomainRecords) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_dns_domain_records) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listDnsDomainRecords(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-dns-domain-records`

---

url: https://community.exoscale.com/reference/api/iam/

---

# IAM

Identity and Access Management: roles, users, policies and credentials for accessing the Exoscale API.

[Read more](https://community.exoscale.com/product/security/iam/index.md)

- [API Key](https://community.exoscale.com/reference/api/iam/api-key/index.md) - API keys are credentials for programmatic access to Exoscale APIs and services.
- [Role](https://community.exoscale.com/reference/api/iam/role/index.md) - IAM roles lets you define logical sets of policies to grant to users and API keys.
- [User](https://community.exoscale.com/reference/api/iam/user/index.md) - IAM users map to humans empowered with access to Exoscale resources.
- [Organization Policy](https://community.exoscale.com/reference/api/iam/organization-policy/index.md) - The Organization Policy is an IAM policy that applies as a first layer across your entire Exoscale organization.

---

url: https://community.exoscale.com/reference/api/iam/api-key/

---

# API Key

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

API keys are credentials for programmatic access to Exoscale APIs and services.

[Read more](https://community.exoscale.com/product/security/iam/how-to/key-mgmt/index.md)

## <span data-label="POST" class="pill-POST"></span>create-api-key

Create a new API key

```
POST /api-key
```

null

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | IAM API Key Name<br/><br/>Min length: `1`. Max length: `255`. |
| `role-id` | string | **yes** | IAM API Key Role ID<br/><br/>Must be a valid UUID. |

<details>
<summary>Example</summary>

```json
{
  "name": "string",
  "role-id": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `created-at` | string | IAM API Key creation timestamp<br/><br/>ISO 8601 date-time. |
| `key` | string | IAM API Key |
| `name` | string | IAM API Key name |
| `role-id` | string | IAM API Key Role ID<br/><br/>Must be a valid UUID. |
| `secret` | string | IAM API Key Secret |

<details>
<summary>Example output</summary>

```json
{
  "created-at": "2024-01-01T12:00:00Z",
  "key": "string",
  "name": "string",
  "role-id": "string",
  "secret": "string"
}
```
</details>


SDK reference for `create-api-key`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateAPIKey) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_api_key) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createApiKey(com.exoscale.sdk.model.CreateApiKeyRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-api-key`

## <span data-label="GET" class="pill-GET"></span>get-api-key

Get API key

```
GET /api-key/{id}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `created-at` | string | IAM API Key creation timestamp<br/><br/>ISO 8601 date-time. |
| `key` | string | IAM API Key |
| `name` | string | IAM API Key name |
| `role-id` | string | IAM API Key Role ID<br/><br/>Must be a valid UUID. |

<details>
<summary>Example output</summary>

```json
{
  "created-at": "2024-01-01T12:00:00Z",
  "key": "string",
  "name": "string",
  "role-id": "string"
}
```
</details>


SDK reference for `get-api-key`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetAPIKey) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_api_key) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getApiKey(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-api-key`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-api-key

Delete an API key

```
DELETE /api-key/{id}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-api-key`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteAPIKey) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_api_key) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteApiKey(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-api-key`


---

## Other Operations

## <span data-label="GET" class="pill-GET"></span>list-api-keys

List API keys

```
GET /api-key
```

null

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `api-keys` | array of [IAM API Key](https://community.exoscale.com/reference/api/_schemas/iam-api-key/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "api-keys": [
    {
      "created-at": "2024-01-01T12:00:00Z",
      "key": "string",
      "name": "string",
      "role-id": "string"
    }
  ]
}
```
</details>


SDK reference for `list-api-keys`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListAPIKeys) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_api_keys) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listApiKeys())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-api-keys`

---

url: https://community.exoscale.com/reference/api/iam/role/

---

# Role

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

IAM roles lets you define logical sets of policies to grant to users and API keys.

[Read more](https://community.exoscale.com/product/security/iam/how-to/role-mgmt/index.md)

## <span data-label="POST" class="pill-POST"></span>create-iam-role

Create IAM Role

```
POST /iam-role
```

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | IAM Role name<br/><br/>Min length: `1`. Max length: `191`. |
| `assume-role-policy` | [Assume Role Policy](https://community.exoscale.com/reference/api/_schemas/iam-assume-role-policy/index.md) | no | IAM Assume role policy |
| `description` | string | no | IAM Role description<br/><br/>Min length: `1`. Max length: `255`. |
| `editable` | boolean | no | Sets if the IAM Role Policy is editable or not (default: true). This setting cannot be changed after creation |
| `labels` | object | no | IAM Role labels |
| `max-session-ttl` | integer | no | Maximum TTL requester is allowed to ask for when assuming a role<br/><br/>Min: `0`. |
| `permissions` | array[string] | no | IAM Role permissions |
| `policy` | [Policy](https://community.exoscale.com/reference/api/_schemas/iam-policy/index.md) | no | IAM Role policy |

<details>
<summary>Example</summary>

```json
{
  "assume-role-policy": {
    "rules": [
      {
        "action": "allow",
        "expression": "string",
        "resources": [
          "string"
        ]
      }
    ]
  },
  "description": "string",
  "editable": true,
  "labels": {},
  "max-session-ttl": 0,
  "name": "string",
  "permissions": [
    "bypass-governance-retention"
  ],
  "policy": {
    "default-service-strategy": "allow",
    "services": {}
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-iam-role`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateIAMRole) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_iam_role) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createIamRole(com.exoscale.sdk.model.CreateIamRoleRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-iam-role`

## <span data-label="GET" class="pill-GET"></span>get-iam-role

Retrieve IAM Role

```
GET /iam-role/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `assume-role-policy` | [Assume Role Policy](https://community.exoscale.com/reference/api/_schemas/iam-assume-role-policy/index.md) | IAM Assume Role Policy |
| `description` | string | IAM Role description<br/><br/>Min length: `1`. Max length: `255`. |
| `editable` | boolean | IAM Role mutability |
| `id` | string | IAM Role ID<br/><br/>Must be a valid UUID. |
| `labels` | object | IAM Role Labels |
| `max-session-ttl` | integer | Maximum TTL requester is allowed to ask for when assuming a role<br/><br/>Min: `0`. |
| `name` | string | IAM Role name<br/><br/>Min length: `1`. Max length: `255`. |
| `permissions` | array[string] | IAM Role permissions |
| `policy` | [Policy](https://community.exoscale.com/reference/api/_schemas/iam-policy/index.md) | IAM Role Policy |

<details>
<summary>Example output</summary>

```json
{
  "assume-role-policy": {
    "rules": [
      {
        "action": "allow",
        "expression": "string",
        "resources": [
          "string"
        ]
      }
    ]
  },
  "description": "string",
  "editable": true,
  "id": "string",
  "labels": {},
  "max-session-ttl": 0,
  "name": "string",
  "permissions": [
    "bypass-governance-retention"
  ],
  "policy": {
    "default-service-strategy": "allow",
    "services": {}
  }
}
```
</details>


SDK reference for `get-iam-role`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetIAMRole) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_iam_role) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getIamRole(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-iam-role`

## <span data-label="PUT" class="pill-PUT"></span>update-iam-role

Update IAM Role

```
PUT /iam-role/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `assume-role-policy` | [Assume Role Policy](https://community.exoscale.com/reference/api/_schemas/iam-assume-role-policy/index.md) | no | IAM Assume role policy |
| `description` | string | no | IAM Role description<br/><br/>Min length: `1`. Max length: `255`. |
| `labels` | object | no | IAM Role labels |
| `max-session-ttl` | integer | no | Maximum TTL requester is allowed to ask for when assuming a role<br/><br/>Min: `0`. |
| `permissions` | array[string] | no | IAM Role permissions |

<details>
<summary>Example</summary>

```json
{
  "assume-role-policy": {
    "rules": [
      {
        "action": "allow",
        "expression": "string",
        "resources": [
          "string"
        ]
      }
    ]
  },
  "description": "string",
  "labels": {},
  "max-session-ttl": 0,
  "permissions": [
    "bypass-governance-retention"
  ]
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-iam-role`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateIAMRole) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_iam_role) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateIamRole(java.util.UUID,com.exoscale.sdk.model.UpdateIamRoleRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-iam-role`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-iam-role

Delete IAM Role

```
DELETE /iam-role/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-iam-role`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteIAMRole) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_iam_role) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteIamRole(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-iam-role`


---

## Other Operations

## <span data-label="POST" class="pill-POST"></span>assume-iam-role

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

```
POST /iam-role/{id}/assume
```

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

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `ttl` | integer | **yes** | TTL in seconds for the generated access key (cannot exceed the max TTL defined in the targeted assume role)<br/><br/>Min: `0`. |
| `org-id` | string | no | Organization ID target of the assume role action<br/><br/>Must be a valid UUID. |

<details>
<summary>Example</summary>

```json
{
  "org-id": "string",
  "ttl": 0
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `expires-at` | string |  |
| `key` | string |  |
| `name` | string |  |
| `org-id` | string |  |
| `role-id` | string |  |
| `secret` | string |  |

<details>
<summary>Example output</summary>

```json
{
  "expires-at": "string",
  "key": "string",
  "name": "string",
  "org-id": "string",
  "role-id": "string",
  "secret": "string"
}
```
</details>


SDK reference for `assume-iam-role`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.AssumeIAMRole) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.assume_iam_role) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#assumeIamRole(java.util.UUID,com.exoscale.sdk.model.AssumeIamRoleRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api assume-iam-role`

## <span data-label="PUT" class="pill-PUT"></span>update-iam-role-policy

Update IAM Role Policy

```
PUT /iam-role/{id}:policy
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `default-service-strategy` | string | **yes** | IAM default service strategy<br/><br/>Allowed values: `allow`, `deny`. |
| `services` | object | **yes** | IAM services |

<details>
<summary>Example</summary>

```json
{
  "default-service-strategy": "allow",
  "services": {}
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-iam-role-policy`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateIAMRolePolicy) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_iam_role_policy) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateIamRolePolicy(java.util.UUID,com.exoscale.sdk.model.UpdateIamRolePolicyRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-iam-role-policy`

## <span data-label="GET" class="pill-GET"></span>list-iam-roles

List IAM Roles

```
GET /iam-role
```

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `iam-roles` | array of [IAM Role](https://community.exoscale.com/reference/api/_schemas/iam-role/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "iam-roles": [
    {
      "assume-role-policy": {
        "rules": [
          {
            "action": null,
            "expression": null,
            "resources": null
          }
        ]
      },
      "description": "string",
      "editable": true,
      "id": "string",
      "labels": {},
      "max-session-ttl": 0,
      "name": "string",
      "permissions": [
        "bypass-governance-retention"
      ],
      "policy": {
        "default-service-strategy": "allow",
        "services": {}
      }
    }
  ]
}
```
</details>


SDK reference for `list-iam-roles`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListIAMRoles) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_iam_roles) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listIamRoles())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-iam-roles`

## <span data-label="GET" class="pill-GET"></span>list-iam-system-roles

List IAM System Roles

```
GET /iam-system-role
```

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `iam-system-roles` | array of [IAM System Role](https://community.exoscale.com/reference/api/_schemas/iam-system-role/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "iam-system-roles": [
    {
      "assume-role-policy": {
        "rules": [
          {
            "action": null,
            "expression": null,
            "resources": null
          }
        ]
      },
      "description": "string",
      "editable": true,
      "id": "string",
      "labels": {},
      "max-session-ttl": 0,
      "name": "string",
      "permissions": [
        "bypass-governance-retention"
      ],
      "policy": {
        "default-service-strategy": "allow",
        "services": {}
      }
    }
  ]
}
```
</details>


SDK reference for `list-iam-system-roles`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListIAMSystemRoles) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_iam_system_roles) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listIamSystemRoles())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-iam-system-roles`

---

url: https://community.exoscale.com/reference/api/iam/user/

---

# User

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

IAM users map to humans empowered with access to Exoscale resources.

[Read more](https://community.exoscale.com/product/security/iam/how-to/users-keys/index.md)

## <span data-label="POST" class="pill-POST"></span>create-user

Create a User

```
POST /user
```

null

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `email` | string | **yes** | User Email |
| `role` | [IAM Role](https://community.exoscale.com/reference/api/_schemas/iam-role/index.md) | no | IAM Role |

<details>
<summary>Example</summary>

```json
{
  "email": "string",
  "role": {
    "assume-role-policy": {
      "rules": [
        {
          "action": "allow",
          "expression": "string",
          "resources": [
            null
          ]
        }
      ]
    },
    "description": "string",
    "editable": true,
    "id": "string",
    "labels": {},
    "max-session-ttl": 0,
    "name": "string",
    "permissions": [
      "bypass-governance-retention"
    ],
    "policy": {
      "default-service-strategy": "allow",
      "services": {}
    }
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-user`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateUser) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_user) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createUser(com.exoscale.sdk.model.CreateUserRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-user`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-user

Delete User

```
DELETE /user/{id}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-user`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteUser) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_user) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteUser(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-user`


---

## Other Operations

## <span data-label="PUT" class="pill-PUT"></span>update-user-role

Update a User's IAM role

```
PUT /user/{id}
```

null

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `role` | [IAM Role](https://community.exoscale.com/reference/api/_schemas/iam-role/index.md) | no | IAM Role |

<details>
<summary>Example</summary>

```json
{
  "role": {
    "assume-role-policy": {
      "rules": [
        {
          "action": "allow",
          "expression": "string",
          "resources": [
            null
          ]
        }
      ]
    },
    "description": "string",
    "editable": true,
    "id": "string",
    "labels": {},
    "max-session-ttl": 0,
    "name": "string",
    "permissions": [
      "bypass-governance-retention"
    ],
    "policy": {
      "default-service-strategy": "allow",
      "services": {}
    }
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-user-role`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateUserRole) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_user_role) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateUserRole(java.util.UUID,com.exoscale.sdk.model.UpdateUserRoleRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-user-role`

## <span data-label="GET" class="pill-GET"></span>list-users

List Users

```
GET /user
```

null

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `users` | array of [User](https://community.exoscale.com/reference/api/_schemas/user/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "users": [
    {
      "email": "string",
      "id": "string",
      "pending": true,
      "role": {
        "assume-role-policy": {
          "rules": [
            null
          ]
        },
        "description": "string",
        "editable": true,
        "id": "string",
        "labels": {},
        "max-session-ttl": 0,
        "name": "string",
        "permissions": [
          "bypass-governance-retention"
        ],
        "policy": {
          "default-service-strategy": "allow",
          "services": {}
        }
      },
      "sso": true,
      "two-factor-authentication": true
    }
  ]
}
```
</details>


SDK reference for `list-users`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListUsers) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_users) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listUsers())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-users`

---

url: https://community.exoscale.com/reference/api/iam/organization-policy/

---

# Organization Policy

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

The Organization Policy is an IAM policy that applies as a first layer across your entire Exoscale organization.

[Read more](https://community.exoscale.com/product/iam/operation/roles-policies/index.md)

## <span data-label="POST" class="pill-POST"></span>reset-iam-organization-policy

Reset IAM Organization Policy

```
POST /iam-organization-policy:reset
```

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `reset-iam-organization-policy`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ResetIAMOrganizationPolicy) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reset_iam_organization_policy) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#resetIamOrganizationPolicy())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reset-iam-organization-policy`

## <span data-label="GET" class="pill-GET"></span>get-iam-organization-policy

Retrieve IAM Organization Policy

```
GET /iam-organization-policy
```

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `default-service-strategy` | string | IAM default service strategy<br/><br/>Allowed values: `allow`, `deny`. |
| `services` | object | IAM services |

<details>
<summary>Example output</summary>

```json
{
  "default-service-strategy": "allow",
  "services": {}
}
```
</details>


SDK reference for `get-iam-organization-policy`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetIAMOrganizationPolicy) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_iam_organization_policy) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getIamOrganizationPolicy())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-iam-organization-policy`

## <span data-label="PUT" class="pill-PUT"></span>update-iam-organization-policy

Update IAM Organization Policy

```
PUT /iam-organization-policy
```

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `default-service-strategy` | string | **yes** | IAM default service strategy<br/><br/>Allowed values: `allow`, `deny`. |
| `services` | object | **yes** | IAM services |

<details>
<summary>Example</summary>

```json
{
  "default-service-strategy": "allow",
  "services": {}
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-iam-organization-policy`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateIAMOrganizationPolicy) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_iam_organization_policy) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateIamOrganizationPolicy(com.exoscale.sdk.model.UpdateIamOrganizationPolicyRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-iam-organization-policy`

---

url: https://community.exoscale.com/reference/api/ai/

---

# AI

Exoscale AI services provide GPU-powered infrastructure for running machine learning workloads and large language models.

[Read more](https://www.exoscale.com/ai-cloud-infrastructure/)

- [Dedicated Inference](https://community.exoscale.com/reference/api/ai/dedicated-inference/index.md) - Deploy and run AI models on dedicated GPUs.
- [AI API Key](https://community.exoscale.com/reference/api/ai/ai-api-key/index.md) - API keys for accessing inference deployments.

---

url: https://community.exoscale.com/reference/api/ai/dedicated-inference/

---

# Dedicated Inference

Deploy and run AI models on dedicated GPUs.

[Read more](https://www.exoscale.com/ai-cloud-infrastructure/dedicated-inference/)

- [AI Model](https://community.exoscale.com/reference/api/ai/dedicated-inference/ai-model/index.md) - Lifecycle of AI Models.
- [Deployment](https://community.exoscale.com/reference/api/ai/dedicated-inference/deployment/index.md) - Deployments are loaded model instances ready for inference.

---

url: https://community.exoscale.com/reference/api/ai/dedicated-inference/ai-model/

---

# AI Model

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Lifecycle of AI Models.

[Read more](https://www.exoscale.com/ai-cloud-infrastructure/dedicated-inference/)

## <span data-label="POST" class="pill-POST"></span>create-model

Create Model

```
POST /ai/model
```

Model files will be downloaded from Huggingface.

Name must be the exact name of the model on huggingface (ex: openai/gpt-oss-120b or ggml-org/gpt-oss-120b-GGUF).

If the model is under a license then you must provide a Huggingface access token for an account that signed the license agreement

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | Model name<br/><br/>Min length: `1`. |
| `huggingface-token` | string | no | Huggingface Token |

<details>
<summary>Example</summary>

```json
{
  "huggingface-token": "string",
  "name": "string"
}
```
</details>


### Responses

**`200`**: OK

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>

**`403`**: Forbidden

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `create-model`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateModel) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_model) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createModel(com.exoscale.sdk.model.CreateModelRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-model`

## <span data-label="GET" class="pill-GET"></span>get-model

Get Model

```
GET /ai/model/{id}
```

Get Model details

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

**`200`**: OK

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `created-at` | string | Creation time<br/><br/>ISO 8601 date-time. |
| `deprecation-date` | string | null | Model deprecation date<br/><br/>ISO 8601 date-time. |
| `id` | string | Model ID<br/><br/>Must be a valid UUID. |
| `lifecycle-status` | string | null | Model lifecycle state<br/><br/>Allowed values: `preview`, `active`, `deprecated`, `eol`, `null`. |
| `model-size` | integer | Model size in bytes<br/><br/>Min: `0`. |
| `name` | string | Model name<br/><br/>Min length: `1`. |
| `state` | string | Model state<br/><br/>Allowed values: `ready`, `creating`, `downloading`, `error`, `created`. |
| `updated-at` | string | Update time<br/><br/>ISO 8601 date-time. |
| `visibility` | string | Model visibility<br/><br/>Allowed values: `private`, `public`. |

<details>
<summary>Example output</summary>

```json
{
  "created-at": "2024-01-01T12:00:00Z",
  "deprecation-date": "2024-01-01T12:00:00Z",
  "id": "string",
  "lifecycle-status": "preview",
  "model-size": 0,
  "name": "string",
  "state": "ready",
  "updated-at": "2024-01-01T12:00:00Z",
  "visibility": "private"
}
```
</details>

**`404`**: Not Found

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `get-model`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetModel) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_model) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getModel(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-model`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-model

Delete Model

```
DELETE /ai/model/{id}
```

Delete Model

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

**`200`**: OK

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>

**`403`**: Forbidden

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>

**`404`**: Not Found

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>

**`412`**: Precondition Failed

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `deployments` | array[string] | Deployments using models |

<details>
<summary>Example output</summary>

```json
{
  "deployments": [
    "string"
  ]
}
```
</details>


SDK reference for `delete-model`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteModel) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_model) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteModel(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-model`


---

## Other Operations

## <span data-label="GET" class="pill-GET"></span>list-models

List Models

```
GET /ai/model
```

List Models

### Query parameters

| Name | In | Required | Description |
| --- | --- | --- | --- |
| `visibility` | `query` | no |  |

### Responses

Status: `200` - OK

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `models` | array of [AI model](https://community.exoscale.com/reference/api/_schemas/list-models-response-entry/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "models": [
    {
      "created-at": "2024-01-01T12:00:00Z",
      "id": "string",
      "lifecycle-status": "preview",
      "model-size": 0,
      "name": "string",
      "state": "ready",
      "updated-at": "2024-01-01T12:00:00Z",
      "visibility": "private"
    }
  ]
}
```
</details>


SDK reference for `list-models`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListModels) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_models) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listModels(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-models`

---

url: https://community.exoscale.com/reference/api/ai/dedicated-inference/deployment/

---

# Deployment

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Deployments are loaded model instances ready for inference.

[Read more](https://www.exoscale.com/ai-cloud-infrastructure/dedicated-inference/)

## <span data-label="POST" class="pill-POST"></span>scale-deployment

Scale Deployment

```
POST /ai/deployment/{id}/scale
```

Scale Deployment

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `replicas` | integer | **yes** | Number of replicas (>=0)<br/><br/>Min: `0`. |

<details>
<summary>Example</summary>

```json
{
  "replicas": 0
}
```
</details>


### Responses

**`200`**: OK

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>

**`403`**: Forbidden

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>

**`404`**: Not Found

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>

**`409`**: Conflict

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>

**`412`**: Precondition Failed

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `scale-deployment`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ScaleDeployment) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.scale_deployment) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#scaleDeployment(java.util.UUID,com.exoscale.sdk.model.ScaleDeploymentRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api scale-deployment`

## <span data-label="POST" class="pill-POST"></span>create-deployment

Create Deployment

```
POST /ai/deployment
```

Deploy a model on an inference server

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `gpu-count` | integer | **yes** | Number of GPUs (1-8)<br/><br/>Min: `1`. |
| `gpu-type` | string | **yes** | GPU type family (e.g., gpua5000, gpu3080ti) |
| `model` | [Model reference. Provide either id or name.](https://community.exoscale.com/reference/api/_schemas/model-ref/index.md) | **yes** |  |
| `name` | string | **yes** | Deployment name<br/><br/>Min length: `1`. |
| `replicas` | integer | **yes** | Number of replicas (>=1)<br/><br/>Min: `1`. |
| `inference-engine-parameters` | array[string] | no | Optional extra inference engine server CLI args |
| `inference-engine-version` | string | no | Allowed values: `0.12.0`, `0.15.1`, `0.16.0`, `0.17.0`, `0.18.0`, `0.18.1`, `0.19.0`, `0.19.1`, `0.20.0`, `0.20.1`, `0.20.2`, `0.21.0`, `0.22.0`, `0.22.1`, `0.23.0`, `0.24.0`, `0.25.0`, `0.25.1`, `0.26.0`, `0.27.0`, `0.27.1`, `0.28.0`, `0.29.0`, `0.30.0`, `0.31.0`.<br/><br/>Default: `0.31.0`. |
| `product-name` | string | no | Billing identifier for this deployment. Used by the Router for usage counters and Kafka events.<br/><br/>Min length: `1`. |

<details>
<summary>Example</summary>

```json
{
  "gpu-count": 0,
  "gpu-type": "string",
  "inference-engine-parameters": [
    "string"
  ],
  "inference-engine-version": "0.12.0",
  "model": {
    "id": "string",
    "name": "string"
  },
  "name": "string",
  "product-name": "string",
  "replicas": 0
}
```
</details>


### Responses

**`200`**: OK

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>

**`400`**: Bad Request

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>

**`403`**: Forbidden

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>

**`412`**: 412 (probably insufficient GPUs)

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `create-deployment`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateDeployment) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_deployment) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createDeployment(com.exoscale.sdk.model.CreateDeploymentRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-deployment`

## <span data-label="GET" class="pill-GET"></span>get-deployment

Get Deployment

```
GET /ai/deployment/{id}
```

Get Deployment details

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

**`200`**: OK

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `created-at` | string | Creation time<br/><br/>ISO 8601 date-time. |
| `deployment-url` | string | Deployment inference endpoint URL |
| `gpu-count` | integer | Number of GPUs<br/><br/>Min: `1`. |
| `gpu-type` | string | GPU type family<br/><br/>Min length: `1`. |
| `id` | string | Deployment ID<br/><br/>Must be a valid UUID. |
| `inference-engine-parameters` | array[string] | Optional extra inference engine server CLI args |
| `inference-engine-version` | string | Allowed values: `0.12.0`, `0.15.1`, `0.16.0`, `0.17.0`, `0.18.0`, `0.18.1`, `0.19.0`, `0.19.1`, `0.20.0`, `0.20.1`, `0.20.2`, `0.21.0`, `0.22.0`, `0.22.1`, `0.23.0`, `0.24.0`, `0.25.0`, `0.25.1`, `0.26.0`, `0.27.0`, `0.27.1`, `0.28.0`, `0.29.0`, `0.30.0`, `0.31.0`.<br/><br/>Default: `0.31.0`. |
| `model` | [Model reference. Provide either id or name.](https://community.exoscale.com/reference/api/_schemas/model-ref/index.md) |  |
| `name` | string | Deployment name<br/><br/>Min length: `1`. |
| `replicas` | integer | Number of replicas (>=0)<br/><br/>Min: `0`. |
| `service-level` | string | Service level<br/><br/>Min length: `1`. |
| `state` | string | Deployment state<br/><br/>Allowed values: `ready`, `creating`, `preparing`, `error`, `deploying`, `scaling`, `updating`. |
| `state-details` | string | Deployment state details |
| `updated-at` | string | Update time<br/><br/>ISO 8601 date-time. |

<details>
<summary>Example output</summary>

```json
{
  "created-at": "2024-01-01T12:00:00Z",
  "deployment-url": "string",
  "gpu-count": 0,
  "gpu-type": "string",
  "id": "string",
  "inference-engine-parameters": [
    "string"
  ],
  "inference-engine-version": "0.12.0",
  "model": {
    "id": "string",
    "name": "string"
  },
  "name": "string",
  "replicas": 0,
  "service-level": "string",
  "state": "ready",
  "state-details": "string",
  "updated-at": "2024-01-01T12:00:00Z"
}
```
</details>

**`404`**: Not Found

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `get-deployment`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDeployment) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_deployment) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDeployment(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-deployment`

## <span data-label="PATCH" class="pill-PATCH"></span>update-deployment

Update Deployment

```
PATCH /ai/deployment/{id}
```

Update AI deployment

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `inference-engine-parameters` | array[string] | no | Optional extra inference engine server CLI args |
| `inference-engine-version` | string | no | Allowed values: `0.12.0`, `0.15.1`, `0.16.0`, `0.17.0`, `0.18.0`, `0.18.1`, `0.19.0`, `0.19.1`, `0.20.0`, `0.20.1`, `0.20.2`, `0.21.0`, `0.22.0`, `0.22.1`, `0.23.0`, `0.24.0`, `0.25.0`, `0.25.1`, `0.26.0`, `0.27.0`, `0.27.1`, `0.28.0`, `0.29.0`, `0.30.0`, `0.31.0`.<br/><br/>Default: `0.31.0`. |
| `name` | string | no | Deployment name<br/><br/>Min length: `1`. |

<details>
<summary>Example</summary>

```json
{
  "inference-engine-parameters": [
    "string"
  ],
  "inference-engine-version": "0.12.0",
  "name": "string"
}
```
</details>


### Responses

**`200`**: OK

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>

**`400`**: Bad Request

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>

**`403`**: Forbidden

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>

**`404`**: Not Found

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>

**`409`**: Conflict

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `update-deployment`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateDeployment) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_deployment) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateDeployment(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-deployment`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-deployment

Delete Deployment

```
DELETE /ai/deployment/{id}
```

Delete Deployment

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

**`200`**: OK

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>

**`403`**: Forbidden

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>

**`404`**: Not Found

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>

**`409`**: Conflict

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `delete-deployment`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteDeployment) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_deployment) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteDeployment(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-deployment`


---

## Other Operations

## <span data-label="GET" class="pill-GET"></span>list-ai-instance-types

List Instance Types

```
GET /ai/instance-type
```

List available instance types with authorization status based on GPU availability

### Responses

Status: `200` - OK

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `instance-types` | array of [Instance type with authorization status](https://community.exoscale.com/reference/api/_schemas/instance-type-entry/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "instance-types": [
    {
      "authorized": true,
      "family": "string"
    }
  ]
}
```
</details>


SDK reference for `list-ai-instance-types`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListAIInstanceTypes) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_ai_instance_types) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listAiInstanceTypes())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-ai-instance-types`

## <span data-label="GET" class="pill-GET"></span>reveal-deployment-api-key

Reveal Deployment API Key

```
GET /ai/deployment/{id}/api-key
```

Get Deployment API Key

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

**`200`**: OK

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `api-key` | string | Inference endpoint authentication key |

<details>
<summary>Example output</summary>

```json
{
  "api-key": "string"
}
```
</details>

**`404`**: Not Found

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `reveal-deployment-api-key`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RevealDeploymentAPIKey) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.reveal_deployment_api_key) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#revealDeploymentApiKey(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api reveal-deployment-api-key`

## <span data-label="GET" class="pill-GET"></span>get-deployment-logs

Get Deployment Logs

```
GET /ai/deployment/{id}/logs
```

Return logs for the vLLM deployment (deploy/<release-name>--deployment-vllm). Optional ?stream=true to request streaming (may not be supported).

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Query parameters

| Name | In | Required | Description |
| --- | --- | --- | --- |
| `stream` | `query` | no |  |
| `tail` | `query` | no |  |

### Responses

**`200`**: OK

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `logs` | array of [A single log entry](https://community.exoscale.com/reference/api/_schemas/get-deployment-logs-entry/index.md) | List of log entries |

<details>
<summary>Example output</summary>

```json
{
  "logs": [
    {
      "message": "string",
      "node": "string",
      "time": "2024-01-01T12:00:00Z"
    }
  ]
}
```
</details>

**`400`**: Bad Request

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>

**`404`**: Not Found

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>

**`500`**: Internal Server Error

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `get-deployment-logs`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetDeploymentLogs) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_deployment_logs) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getDeploymentLogs(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-deployment-logs`

## <span data-label="GET" class="pill-GET"></span>list-deployments

List Deployments

```
GET /ai/deployment
```

List Deployments

### Responses

**`200`**: OK

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `deployments` | array of [AI deployment](https://community.exoscale.com/reference/api/_schemas/list-deployments-response-entry/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "deployments": [
    {
      "created-at": "2024-01-01T12:00:00Z",
      "deployment-url": "string",
      "gpu-count": 0,
      "gpu-type": "string",
      "id": "string",
      "model": {
        "id": "string",
        "name": "string"
      },
      "name": "string",
      "replicas": 0,
      "service-level": "string",
      "state": "ready",
      "updated-at": "2024-01-01T12:00:00Z"
    }
  ]
}
```
</details>

**`400`**: Bad Request

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `list-deployments`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListDeployments) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_deployments) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listDeployments())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-deployments`

## <span data-label="GET" class="pill-GET"></span>get-inference-engine-help

Get inference-engine Help

```
GET /ai/help/inference-engine-parameters
```

Get list of allowed inference engine parameters with their descriptions and allowed values

### Query parameters

| Name | In | Required | Description |
| --- | --- | --- | --- |
| `version` | `query` | no |  |

### Responses

Status: `200` - OK

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `parameters` | array of [inference-engine parameter definition](https://community.exoscale.com/reference/api/_schemas/inference-engine-parameter-entry/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "parameters": [
    {
      "allowed-values": [
        "string"
      ],
      "default": "string",
      "description": "string",
      "flags": [
        "string"
      ],
      "name": "string",
      "section": "string",
      "type": "string"
    }
  ]
}
```
</details>


SDK reference for `get-inference-engine-help`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetInferenceEngineHelp) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_inference_engine_help) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getInferenceEngineHelp(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-inference-engine-help`

---

url: https://community.exoscale.com/reference/api/ai/ai-api-key/

---

# AI API Key

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

API keys for accessing inference deployments.

[Read more](https://www.exoscale.com/ai-cloud-infrastructure/managed-inference/)

## <span data-label="POST" class="pill-POST"></span>create-ai-api-key

[BETA] Create AI API Key

```
POST /ai/api-key
```

Create a new AI API key

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | Human-readable name for the AI API key<br/><br/>Min length: `1`. Max length: `50`. |
| `all-deployments` | boolean | no | Grant access to all deployments of the organization. Takes precedence over the deployments array, which is ignored when set.<br/><br/>Default: `false`. |
| `all-models` | boolean | no | Grant access to all public models. Takes precedence over the models array, which is ignored when set.<br/><br/>Default: `false`. |
| `deployments` | array of [AI API Key Deployment Ref](https://community.exoscale.com/reference/api/_schemas/ai-api-key-deployment-ref/index.md) | no |  |
| `models` | array[string] | no |  |

<details>
<summary>Example</summary>

```json
{
  "all-deployments": true,
  "all-models": true,
  "deployments": [
    {
      "id": "string"
    }
  ],
  "models": [
    "string"
  ],
  "name": "string"
}
```
</details>


### Responses

**`200`**: OK

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `all-deployments` | boolean | True when the key has access to all deployments of the organization. |
| `all-models` | boolean | True when the key has access to all public models. |
| `created-at` | string | ISO 8601 date-time. |
| `deployments` | array of [AI API Key Deployment Ref](https://community.exoscale.com/reference/api/_schemas/ai-api-key-deployment-ref/index.md) |  |
| `id` | string | Must be a valid UUID. |
| `models` | array[string] |  |
| `name` | string |  |
| `revoked-at` | string | null | Last update timestamp<br/><br/>ISO 8601 date-time. |
| `updated-at` | string | ISO 8601 date-time. |
| `value` | string | Plaintext AI API key value |

<details>
<summary>Example output</summary>

```json
{
  "all-deployments": true,
  "all-models": true,
  "created-at": "2024-01-01T12:00:00Z",
  "deployments": [
    {
      "id": "string"
    }
  ],
  "id": "string",
  "models": [
    "string"
  ],
  "name": "string",
  "revoked-at": "2024-01-01T12:00:00Z",
  "updated-at": "2024-01-01T12:00:00Z",
  "value": "string"
}
```
</details>

**`400`**: Bad Request

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>

**`403`**: Forbidden

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>

**`404`**: Not Found

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `create-ai-api-key`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateAIAPIKey) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_ai_api_key) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createAiApiKey(com.exoscale.sdk.model.CreateAiApiKeyRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-ai-api-key`

## <span data-label="GET" class="pill-GET"></span>get-ai-api-key

[BETA] Get AI API Key

```
GET /ai/api-key/{id}
```

Get AI API key metadata

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

**`200`**: OK

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `all-deployments` | boolean | True when the key has access to all deployments of the organization. |
| `all-models` | boolean | True when the key has access to all public models. |
| `created-at` | string | Creation timestamp<br/><br/>ISO 8601 date-time. |
| `deployments` | array of [AI API Key Deployment Ref](https://community.exoscale.com/reference/api/_schemas/ai-api-key-deployment-ref/index.md) |  |
| `id` | string | AI API key ID<br/><br/>Must be a valid UUID. |
| `models` | array[string] |  |
| `name` | string | Human-readable name for the AI API key |
| `revoked-at` | string | null | Revocation timestamp. Null when the API key is active.<br/><br/>ISO 8601 date-time. |
| `updated-at` | string | Last update timestamp<br/><br/>ISO 8601 date-time. |

<details>
<summary>Example output</summary>

```json
{
  "all-deployments": true,
  "all-models": true,
  "created-at": "2024-01-01T12:00:00Z",
  "deployments": [
    {
      "id": "string"
    }
  ],
  "id": "string",
  "models": [
    "string"
  ],
  "name": "string",
  "revoked-at": "2024-01-01T12:00:00Z",
  "updated-at": "2024-01-01T12:00:00Z"
}
```
</details>

**`403`**: Forbidden

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>

**`404`**: Not Found

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `get-ai-api-key`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetAIAPIKey) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_ai_api_key) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getAiApiKey(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-ai-api-key`

## <span data-label="PUT" class="pill-PUT"></span>update-ai-api-key

[BETA] Update AI API Key access

```
PUT /ai/api-key/{id}
```

Update the models and deployments accessible by an AI API key.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `all-deployments` | boolean | no | Grant or remove access to all deployments of the organization. Takes precedence over the deployments array, which is ignored when set. |
| `all-models` | boolean | no | Grant or remove access to all public models. Takes precedence over the models array, which is ignored when set. |
| `deployments` | array of [AI API Key Deployment Ref](https://community.exoscale.com/reference/api/_schemas/ai-api-key-deployment-ref/index.md) | no |  |
| `models` | array[string] | no |  |

<details>
<summary>Example</summary>

```json
{
  "all-deployments": true,
  "all-models": true,
  "deployments": [
    {
      "id": "string"
    }
  ],
  "models": [
    "string"
  ]
}
```
</details>


### Responses

**`200`**: OK

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `all-deployments` | boolean | True when the key has access to all deployments of the organization. |
| `all-models` | boolean | True when the key has access to all public models. |
| `created-at` | string | ISO 8601 date-time. |
| `deployments` | array of [AI API Key Deployment Ref](https://community.exoscale.com/reference/api/_schemas/ai-api-key-deployment-ref/index.md) |  |
| `id` | string | Must be a valid UUID. |
| `models` | array[string] |  |
| `name` | string |  |
| `updated-at` | string | ISO 8601 date-time. |

<details>
<summary>Example output</summary>

```json
{
  "all-deployments": true,
  "all-models": true,
  "created-at": "2024-01-01T12:00:00Z",
  "deployments": [
    {
      "id": "string"
    }
  ],
  "id": "string",
  "models": [
    "string"
  ],
  "name": "string",
  "updated-at": "2024-01-01T12:00:00Z"
}
```
</details>

**`400`**: Bad Request

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>

**`403`**: Forbidden

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>

**`404`**: Not Found

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `update-ai-api-key`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateAIAPIKey) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_ai_api_key) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateAiApiKey(java.util.UUID,com.exoscale.sdk.model.UpdateAiApiKeyRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-ai-api-key`


---

## Other Operations

## <span data-label="GET" class="pill-GET"></span>list-ai-api-keys

[BETA] List AI API Keys

```
GET /ai/api-key
```

List AI API keys for an organization

### Responses

**`200`**: OK

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `ai-api-keys` | array of [AI API key list entry](https://community.exoscale.com/reference/api/_schemas/list-ai-api-keys-response-entry/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "ai-api-keys": [
    {
      "all-deployments": true,
      "all-models": true,
      "created-at": "2024-01-01T12:00:00Z",
      "deployments": [
        {
          "id": "string"
        }
      ],
      "id": "string",
      "models": [
        "string"
      ],
      "name": "string",
      "revoked-at": "2024-01-01T12:00:00Z",
      "updated-at": "2024-01-01T12:00:00Z"
    }
  ]
}
```
</details>

**`403`**: Forbidden

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `list-ai-api-keys`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListAIAPIKeys) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_ai_api_keys) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listAiApiKeys())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-ai-api-keys`

## <span data-label="POST" class="pill-POST"></span>revoke-ai-api-key

[BETA] Revoke AI API Key

```
POST /ai/api-key/{id}/revoke
```

Revoke an AI API key. Key will be deleted after 30 days of retention

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

**`200`**: OK

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>

**`403`**: Forbidden

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>

**`404`**: Not Found

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>

**`500`**: Internal Server Error

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `revoke-ai-api-key`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RevokeAIAPIKey) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.revoke_ai_api_key) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#revokeAiApiKey(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api revoke-ai-api-key`

## <span data-label="GET" class="pill-GET"></span>get-user-org-consumption-quota

[BETA] Get Organization Consumption Quota

```
GET /ai/quota
```

Get per-org Unit Of Measurement (UOM) consumption quota (UOM/min). Null means unlimited. UOM represents weighted units across different AI workloads (e.g., tokens for LLMs, minutes for TTS, pages for OCR).

### Responses

**`200`**: OK

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `quota-uom-per-minute` | integer | null | Per-org Unit Of Measurement (UOM) consumption quota (UOM/min). Null means unlimited. UOM represents weighted units across different AI workloads (e.g., tokens for LLMs, minutes for TTS, pages for OCR).<br/><br/>Min: `0`. |

<details>
<summary>Example output</summary>

```json
{
  "quota-uom-per-minute": 0
}
```
</details>

**`404`**: Not Found

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `get-user-org-consumption-quota`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetUserOrgConsumptionQuota) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_user_org_consumption_quota) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getUserOrgConsumptionQuota())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-user-org-consumption-quota`

---

url: https://community.exoscale.com/reference/api/_schemas/

---

# Schema Reference

This section contains detailed documentation for complex object schemas used in API requests and responses.

- [AI API Key Deployment Ref](ai-api-key-deployment-ref/)
- [AI API Key Deployments](ai-api-key-deployments/)
- [AI API Key Models](ai-api-key-models/)
- [Anti Affinity Group](anti-affinity-group/)
- [Anti Affinity Group Ref](anti-affinity-group-ref/)
- [Block Storage Snapshot](block-storage-snapshot/)
- [Block Storage Snapshot Ref](block-storage-snapshot-ref/)
- [Block Storage Volume](block-storage-volume/)
- [Block Storage Volume Ref](block-storage-volume-ref/)
- [CPU Manager Config](cpu-manager-config/)
- [Create AI API Key Request](create-ai-api-key-request/)
- [Create AI API Key Response](create-ai-api-key-response/)
- [Create Deployment Request](create-deployment-request/)
- [Create Key Store Request](create-key-store-request/)
- [Create Kms Key Request](create-kms-key-request/)
- [Create Kms Key Response](create-kms-key-response/)
- [Create Model Request](create-model-request/)
- [DBaaS Backup Config](dbaas-backup-config/)
- [DBaaS Clickhouse Acl Config](dbaas-clickhouse-acl-config/)
- [DBaaS Clickhouse Granted Role](dbaas-clickhouse-granted-role/)
- [DBaaS Clickhouse Role](dbaas-clickhouse-role/)
- [DBaaS Clickhouse Role Privilege](dbaas-clickhouse-role-privilege/)
- [DBaaS Clickhouse Roles](dbaas-clickhouse-roles/)
- [DBaaS Clickhouse User](dbaas-clickhouse-user/)
- [DBaaS Clickhouse User Acl Config](dbaas-clickhouse-user-acl-config/)
- [DBaaS Clickhouse User Privilege](dbaas-clickhouse-user-privilege/)
- [DBaaS Clickhouse User Role](dbaas-clickhouse-user-role/)
- [DBaaS Clickhouse User Role Input](dbaas-clickhouse-user-role-input/)
- [DBaaS Clickhouse Users](dbaas-clickhouse-users/)
- [DBaaS Database Name](dbaas-database-name/)
- [DBaaS Datadog Tag](dbaas-datadog-tag/)
- [DBaaS Endpoint Datadog Input Create](dbaas-endpoint-datadog-input-create/)
- [DBaaS Endpoint Datadog Input Update](dbaas-endpoint-datadog-input-update/)
- [DBaaS Endpoint Elasticsearch Input Create](dbaas-endpoint-elasticsearch-input-create/)
- [DBaaS Endpoint Elasticsearch Input Update](dbaas-endpoint-elasticsearch-input-update/)
- [DBaaS Endpoint Elasticsearch Optional Fields](dbaas-endpoint-elasticsearch-optional-fields/)
- [DBaaS Endpoint Elasticsearch Output](dbaas-endpoint-elasticsearch-output/)
- [DBaaS Endpoint External Prometheus Output](dbaas-endpoint-external-prometheus-output/)
- [DBaaS Endpoint Opensearch Input Create](dbaas-endpoint-opensearch-input-create/)
- [DBaaS Endpoint Opensearch Input Update](dbaas-endpoint-opensearch-input-update/)
- [DBaaS Endpoint Opensearch Optional Fields](dbaas-endpoint-opensearch-optional-fields/)
- [DBaaS Endpoint Opensearch Output](dbaas-endpoint-opensearch-output/)
- [DBaaS Endpoint Prometheus Payload](dbaas-endpoint-prometheus-payload/)
- [DBaaS Endpoint Rsyslog Input Create](dbaas-endpoint-rsyslog-input-create/)
- [DBaaS Endpoint Rsyslog Input Update](dbaas-endpoint-rsyslog-input-update/)
- [DBaaS Endpoint Rsyslog Optional Fields](dbaas-endpoint-rsyslog-optional-fields/)
- [DBaaS External Endpoint](dbaas-external-endpoint/)
- [DBaaS External Endpoint Datadog Output](dbaas-external-endpoint-datadog-output/)
- [DBaaS External Endpoint Rsyslog Output](dbaas-external-endpoint-rsyslog-output/)
- [DBaaS External Integration](dbaas-external-integration/)
- [DBaaS Integration](dbaas-integration/)
- [DBaaS Integration Settings Datadog](dbaas-integration-settings-datadog/)
- [DBaaS Integration Type](dbaas-integration-type/)
- [DBaaS Kafka Acl ID](dbaas-kafka-acl-id/)
- [DBaaS Kafka Acls](dbaas-kafka-acls/)
- [DBaaS Kafka Schema Registry Acl Entry](dbaas-kafka-schema-registry-acl-entry/)
- [DBaaS Kafka Topic Acl Entry](dbaas-kafka-topic-acl-entry/)
- [DBaaS Migration Status](dbaas-migration-status/)
- [DBaaS Mysql Database Name](dbaas-mysql-database-name/)
- [DBaaS Mysql User Password](dbaas-mysql-user-password/)
- [DBaaS Node State](dbaas-node-state/)
- [DBaaS Node State Progress Update](dbaas-node-state-progress-update/)
- [DBaaS Opensearch Acl Config](dbaas-opensearch-acl-config/)
- [DBaaS PG Database Name](dbaas-pg-database-name/)
- [DBaaS PG Pool Name](dbaas-pg-pool-name/)
- [DBaaS PG Pool Size](dbaas-pg-pool-size/)
- [DBaaS PG Pool Username](dbaas-pg-pool-username/)
- [DBaaS PG Target Versions](dbaas-pg-target-versions/)
- [DBaaS Plan](dbaas-plan/)
- [DBaaS Postgres Users](dbaas-postgres-users/)
- [DBaaS Service Backup](dbaas-service-backup/)
- [DBaaS Service Clickhouse](dbaas-service-clickhouse/)
- [DBaaS Service Common](dbaas-service-common/)
- [DBaaS Service Grafana](dbaas-service-grafana/)
- [DBaaS Service Kafka](dbaas-service-kafka/)
- [DBaaS Service Logs](dbaas-service-logs/)
- [DBaaS Service Maintenance](dbaas-service-maintenance/)
- [DBaaS Service Mysql](dbaas-service-mysql/)
- [DBaaS Service Name](dbaas-service-name/)
- [DBaaS Service Notification](dbaas-service-notification/)
- [DBaaS Service Opensearch](dbaas-service-opensearch/)
- [DBaaS Service PG](dbaas-service-pg/)
- [DBaaS Service Thanos](dbaas-service-thanos/)
- [DBaaS Service Type](dbaas-service-type/)
- [DBaaS Service Type Name](dbaas-service-type-name/)
- [DBaaS Service Update](dbaas-service-update/)
- [DBaaS Service Valkey](dbaas-service-valkey/)
- [DBaaS Task](dbaas-task/)
- [DBaaS User Clickhouse Secrets](dbaas-user-clickhouse-secrets/)
- [DBaaS User Grafana Secrets](dbaas-user-grafana-secrets/)
- [DBaaS User Kafka Connect Secrets](dbaas-user-kafka-connect-secrets/)
- [DBaaS User Kafka Secrets](dbaas-user-kafka-secrets/)
- [DBaaS User Mysql Secrets](dbaas-user-mysql-secrets/)
- [DBaaS User Opensearch Secrets](dbaas-user-opensearch-secrets/)
- [DBaaS User Password](dbaas-user-password/)
- [DBaaS User Postgres Secrets](dbaas-user-postgres-secrets/)
- [DBaaS User Thanos Secrets](dbaas-user-thanos-secrets/)
- [DBaaS User Username](dbaas-user-username/)
- [DBaaS User Valkey Secrets](dbaas-user-valkey-secrets/)
- [DBaaS Valkey User](dbaas-valkey-user/)
- [DBaaS Valkey User Access Control](dbaas-valkey-user-access-control/)
- [DBaaS Valkey Users](dbaas-valkey-users/)
- [Decrypt Request](decrypt-request/)
- [Decrypt Response](decrypt-response/)
- [Delete Model Conflict Response](delete-model-conflict-response/)
- [Deploy Target](deploy-target/)
- [Deploy Target Ref](deploy-target-ref/)
- [Disable Kms Key Rotation Response](disable-kms-key-rotation-response/)
- [DNS Domain](dns-domain/)
- [DNS Domain Record](dns-domain-record/)
- [Domain Name](domain-name/)
- [Elastic IP](elastic-ip/)
- [Elastic IP Healthcheck](elastic-ip-healthcheck/)
- [Elastic IP Ref](elastic-ip-ref/)
- [Enable Kms Key Rotation Request](enable-kms-key-rotation-request/)
- [Enable Kms Key Rotation Response](enable-kms-key-rotation-response/)
- [Encrypt Request](encrypt-request/)
- [Encrypt Response](encrypt-response/)
- [Enum Component Route](enum-component-route/)
- [Enum Component Usage](enum-component-usage/)
- [Enum Datadog Site](enum-datadog-site/)
- [Enum External Endpoint Types](enum-external-endpoint-types/)
- [Enum Integration Types](enum-integration-types/)
- [Enum Kafka Auth Method](enum-kafka-auth-method/)
- [Enum Migration Method](enum-migration-method/)
- [Enum Migration Status](enum-migration-status/)
- [Enum Mysql Authentication Plugin](enum-mysql-authentication-plugin/)
- [Enum Opensearch Rule Permission](enum-opensearch-rule-permission/)
- [Enum PG Pool Mode](enum-pg-pool-mode/)
- [Enum PG Synchronous Replication](enum-pg-synchronous-replication/)
- [Enum PG Variant](enum-pg-variant/)
- [Enum Rsyslog Format](enum-rsyslog-format/)
- [Enum Service State](enum-service-state/)
- [Enum Sort Order](enum-sort-order/)
- [Error Response](error-response/)
- [Event](event/)
- [Focus Report](focus-report/)
- [Generate Data Key Request](generate-data-key-request/)
- [Generate Data Key Response](generate-data-key-response/)
- [Get AI API Key Response](get-ai-api-key-response/)
- [Get Deployment Logs Entry](get-deployment-logs-entry/)
- [Get Deployment Logs Response](get-deployment-logs-response/)
- [Get Deployment Response](get-deployment-response/)
- [Get Inference Engine Help Response](get-inference-engine-help-response/)
- [Get Key Store Response](get-key-store-response/)
- [Get Kms Key Response](get-kms-key-response/)
- [Get Model Response](get-model-response/)
- [Get Public Key Response](get-public-key-response/)
- [IAM API Key](iam-api-key/)
- [IAM API Key Created](iam-api-key-created/)
- [IAM Assume Role Policy](iam-assume-role-policy/)
- [IAM Policy](iam-policy/)
- [IAM Role](iam-role/)
- [IAM Service Policy](iam-service-policy/)
- [IAM Service Policy Rule](iam-service-policy-rule/)
- [IAM System Role](iam-system-role/)
- [Impact Breakdown](impact-breakdown/)
- [Impact Error Response](impact-error-response/)
- [Impact Resource Tree Node](impact-resource-tree-node/)
- [Impact Value With Unit](impact-value-with-unit/)
- [Inference Engine Parameter Entry](inference-engine-parameter-entry/)
- [Inference Engine Version](inference-engine-version/)
- [Instance](instance/)
- [Instance Password](instance-password/)
- [Instance Pool](instance-pool/)
- [Instance Pool Ref](instance-pool-ref/)
- [Instance Ref](instance-ref/)
- [Instance State](instance-state/)
- [Instance Type](instance-type/)
- [Instance Type Entry](instance-type-entry/)
- [Instance Type Ref](instance-type-ref/)
- [JSON Schema Clickhouse](json-schema-clickhouse/)
- [JSON Schema Grafana](json-schema-grafana/)
- [JSON Schema Kafka](json-schema-kafka/)
- [JSON Schema Kafka Connect](json-schema-kafka-connect/)
- [JSON Schema Kafka Rest](json-schema-kafka-rest/)
- [JSON Schema Mysql](json-schema-mysql/)
- [JSON Schema Opensearch](json-schema-opensearch/)
- [JSON Schema PG](json-schema-pg/)
- [JSON Schema Pgaudit](json-schema-pgaudit/)
- [JSON Schema Pgbouncer](json-schema-pgbouncer/)
- [JSON Schema Pglookout](json-schema-pglookout/)
- [JSON Schema Schema Registry](json-schema-schema-registry/)
- [JSON Schema Thanos](json-schema-thanos/)
- [JSON Schema Timescaledb](json-schema-timescaledb/)
- [JSON Schema Valkey](json-schema-valkey/)
- [Key Material](key-material/)
- [Key Rotation Config](key-rotation-config/)
- [Key Store Health](key-store-health/)
- [Key Store Proxy](key-store-proxy/)
- [Key Store Proxy Auth](key-store-proxy-auth/)
- [Key Store Proxy Auth Response](key-store-proxy-auth-response/)
- [Key Store Proxy Response](key-store-proxy-response/)
- [Kubelet Image GC](kubelet-image-gc/)
- [Labels](labels/)
- [List AI API Keys Response](list-ai-api-keys-response/)
- [List AI API Keys Response Entry](list-ai-api-keys-response-entry/)
- [List AI Instance Types Response](list-ai-instance-types-response/)
- [List Deployments Response](list-deployments-response/)
- [List Deployments Response Entry](list-deployments-response-entry/)
- [List Key Stores Response](list-key-stores-response/)
- [List Key Stores Response Entry](list-key-stores-response-entry/)
- [List Kms Key Rotations Response](list-kms-key-rotations-response/)
- [List Kms Key Rotations Response Entry](list-kms-key-rotations-response-entry/)
- [List Kms Keys Response](list-kms-keys-response/)
- [List Kms Keys Response Entry](list-kms-keys-response-entry/)
- [List Models Response](list-models-response/)
- [List Models Response Entry](list-models-response-entry/)
- [List Route Entry](list-route-entry/)
- [List Subnet Entry](list-subnet-entry/)
- [List Vpc Entry](list-vpc-entry/)
- [Live Balance](live-balance/)
- [Load Balancer](load-balancer/)
- [Load Balancer Server Status](load-balancer-server-status/)
- [Load Balancer Service](load-balancer-service/)
- [Load Balancer Service Healthcheck](load-balancer-service-healthcheck/)
- [Manager](manager/)
- [Model Ref](model-ref/)
- [Networking](networking/)
- [Nvidia Mig Profile A30.24gb](nvidia-mig-profile-a30.24gb/)
- [Nvidia Mig Profile B300.269gb](nvidia-mig-profile-b300.269gb/)
- [Nvidia Mig Profile Rtxpro6000.96gb](nvidia-mig-profile-rtxpro6000.96gb/)
- [Nvidia Mig Profiles](nvidia-mig-profiles/)
- [Operation](operation/)
- [Org Consumption Quota Response](org-consumption-quota-response/)
- [Organization](organization/)
- [Private Network](private-network/)
- [Private Network Lease](private-network-lease/)
- [Private Network Options](private-network-options/)
- [Private Network Ref](private-network-ref/)
- [Public IP Assignment](public-ip-assignment/)
- [Quota](quota/)
- [Rate Limited](rate-limited/)
- [Re Encrypt Request](re-encrypt-request/)
- [Re Encrypt Response](re-encrypt-response/)
- [Replica Failure](replica-failure/)
- [Replica State](replica-state/)
- [Replicate Kms Key Request](replicate-kms-key-request/)
- [Reserved Resources](reserved-resources/)
- [Reveal Deployment API Key Response](reveal-deployment-api-key-response/)
- [Reverse DNS Record](reverse-dns-record/)
- [Revision Stamp](revision-stamp/)
- [Rotate Kms Key Response](rotate-kms-key-response/)
- [Route](route/)
- [Scale Deployment Request](scale-deployment-request/)
- [Schedule Kms Key Deletion Request](schedule-kms-key-deletion-request/)
- [Schedule Kms Key Deletion Response](schedule-kms-key-deletion-response/)
- [Security Group](security-group/)
- [Security Group Ref](security-group-ref/)
- [Security Group Resource](security-group-resource/)
- [Security Group Rule](security-group-rule/)
- [Sign Request](sign-request/)
- [Sign Response](sign-response/)
- [SKS Audit](sks-audit/)
- [SKS Audit Bearer Token](sks-audit-bearer-token/)
- [SKS Audit Create](sks-audit-create/)
- [SKS Audit Endpoint](sks-audit-endpoint/)
- [SKS Audit Initial Backoff](sks-audit-initial-backoff/)
- [SKS Audit Update](sks-audit-update/)
- [SKS Cluster](sks-cluster/)
- [SKS Cluster Allowed Networks](sks-cluster-allowed-networks/)
- [SKS Cluster Deprecated Resource](sks-cluster-deprecated-resource/)
- [SKS Cluster Labels](sks-cluster-labels/)
- [SKS Kubeconfig Request](sks-kubeconfig-request/)
- [SKS Nodepool](sks-nodepool/)
- [SKS Nodepool Labels](sks-nodepool-labels/)
- [SKS Nodepool Taint](sks-nodepool-taint/)
- [SKS Nodepool Taints](sks-nodepool-taints/)
- [SKS Oidc](sks-oidc/)
- [Snapshot](snapshot/)
- [Snapshot Ref](snapshot-ref/)
- [SOS Bucket Usage](sos-bucket-usage/)
- [SSH Key](ssh-key/)
- [SSH Key Ref](ssh-key-ref/)
- [Subnet](subnet/)
- [Success Response](success-response/)
- [Template](template/)
- [Template Ref](template-ref/)
- [Update AI API Key Request](update-ai-api-key-request/)
- [Update AI API Key Response](update-ai-api-key-response/)
- [Update Deployment Request](update-deployment-request/)
- [Update Key Store Proxy](update-key-store-proxy/)
- [Update Key Store Request](update-key-store-request/)
- [User](user/)
- [Verify Request](verify-request/)
- [Verify Response](verify-response/)
- [Vpc](vpc/)
- [Vpc DHCP Options](vpc-dhcp-options/)
- [Xks Key](xks-key/)
- [Xks Proxy Error Detail](xks-proxy-error-detail/)
- [Zone](zone/)
- [Zone Impact](zone-impact/)
- [Zone Name](zone-name/)

---

url: https://community.exoscale.com/reference/api/_schemas/ai-api-key-deployment-ref/

---

# AI API Key Deployment Ref

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | **yes** | Deployment ID<br/><br/>Must be a valid UUID. |

---

url: https://community.exoscale.com/reference/api/_schemas/ai-api-key-deployments/

---

# AI API Key Deployments

Allowlist of deployments. An empty array denies access to all deployments. Grant access to all deployments with all-deployments instead.

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/ai-api-key-models/

---

# AI API Key Models

Allowlist of public model names. An empty array denies access to all public models. Grant access to all public models with all-models instead.

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/anti-affinity-group/

---

# Anti Affinity Group

Anti-affinity Group

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | no | Anti-affinity Group description<br/><br/>Max length: `255`. |
| `id` | string | no | Anti-affinity Group ID<br/><br/>Must be a valid UUID. |
| `instances` | array of [Instance](https://community.exoscale.com/reference/api/_schemas/instance/index.md) | no | Anti-affinity Group instances |
| `name` | string | no | Anti-affinity Group name<br/><br/>Min length: `1`. Max length: `255`. |

---

url: https://community.exoscale.com/reference/api/_schemas/anti-affinity-group-ref/

---

# Anti Affinity Group Ref

Anti-affinity group reference

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | Anti-affinity group ID<br/><br/>Must be a valid UUID. |

---

url: https://community.exoscale.com/reference/api/_schemas/block-storage-snapshot/

---

# Block Storage Snapshot

Block storage snapshot

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `block-storage-volume` | [Target block storage volume](https://community.exoscale.com/reference/api/_schemas/block-storage-volume-ref/index.md) | no | Referenced volume |
| `created-at` | string | no | Snapshot creation date<br/><br/>ISO 8601 date-time. |
| `id` | string | no | Snapshot ID<br/><br/>Must be a valid UUID. |
| `labels` | object | no | Resource labels |
| `name` | string | no | Snapshot name<br/><br/>Min length: `1`. Max length: `255`. |
| `size` | integer | no | Snapshot size<br/><br/>Min: `1`. |
| `state` | string | no | Snapshot state<br/><br/>Allowed values: `partially-destroyed`, `destroying`, `creating`, `created`, `promoting`, `error`, `destroyed`, `allocated`. |
| `volume-size` | integer | no | Original Volume size<br/><br/>Min: `0`. |

---

url: https://community.exoscale.com/reference/api/_schemas/block-storage-snapshot-ref/

---

# Block Storage Snapshot Ref

Target block storage snapshot

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | Block storage snapshot ID<br/><br/>Must be a valid UUID. |

---

url: https://community.exoscale.com/reference/api/_schemas/block-storage-volume/

---

# Block Storage Volume

Block storage volume

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `block-storage-snapshots` | array of [Target block storage snapshot](https://community.exoscale.com/reference/api/_schemas/block-storage-snapshot-ref/index.md) | no | Volume snapshots, if any |
| `blocksize` | integer | no | Volume block size<br/><br/>Min: `0`. |
| `created-at` | string | no | Volume creation date<br/><br/>ISO 8601 date-time. |
| `encrypted` | boolean | no | Indicates if the block-storage volume is encrypted |
| `id` | string | no | Volume ID<br/><br/>Must be a valid UUID. |
| `instance` | [Target Instance](https://community.exoscale.com/reference/api/_schemas/instance-ref/index.md) | no | Volume attached instance, if any |
| `labels` | object | no | Resource labels |
| `name` | string | no | Volume name<br/><br/>Min length: `1`. Max length: `255`. |
| `size` | integer | no | Volume size<br/><br/>Min: `1`. |
| `state` | string | no | Volume state<br/><br/>Allowed values: `snapshotting`, `deleted`, `creating`, `detached`, `deleting`, `attaching`, `error`, `attached`, `detaching`. |

---

url: https://community.exoscale.com/reference/api/_schemas/block-storage-volume-ref/

---

# Block Storage Volume Ref

Target block storage volume

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | Block storage volume ID<br/><br/>Must be a valid UUID. |

---

url: https://community.exoscale.com/reference/api/_schemas/cpu-manager-config/

---

# CPU Manager Config

CPU manager config

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `cpu-manager-policy` | string | no | CPU management policy used by the kubelet. The "static" policy grants exclusive CPUs to Guaranteed pods requesting integer CPU limits. When set to "static", a CPU reservation must be provided via kube-reserved or system-reserved<br/><br/>Allowed values: `static`, `none`. |
| `cpu-manager-policy-options` | array[string] | no | CPU manager policy options used by the kubelet. They refine the behavior of the "static" cpu-manager-policy and are only valid when the policy is "static" |
| `cpu-manager-reconcile-period` | string | no | CPU manager reconcile period used by the kubelet, as a duration string (for example "10s"). |
| `kube-reserved` | [Resources reserved for kube or system components.](https://community.exoscale.com/reference/api/_schemas/reserved-resources/index.md) | no | Resources reserved for node components |
| `system-reserved` | [Resources reserved for kube or system components.](https://community.exoscale.com/reference/api/_schemas/reserved-resources/index.md) | no | Resources reserved for system components |

---

url: https://community.exoscale.com/reference/api/_schemas/create-ai-api-key-request/

---

# Create AI API Key Request

Request to create a new AI API key.

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | Human-readable name for the AI API key<br/><br/>Min length: `1`. Max length: `50`. |
| `all-deployments` | boolean | no | Grant access to all deployments of the organization. Takes precedence over the deployments array, which is ignored when set.<br/><br/>Default: `false`. |
| `all-models` | boolean | no | Grant access to all public models. Takes precedence over the models array, which is ignored when set.<br/><br/>Default: `false`. |
| `deployments` | array of [AI API Key Deployment Ref](https://community.exoscale.com/reference/api/_schemas/ai-api-key-deployment-ref/index.md) | no |  |
| `models` | array[string] | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/create-ai-api-key-response/

---

# Create AI API Key Response

Create AI API key response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `all-deployments` | boolean | **yes** | True when the key has access to all deployments of the organization. |
| `all-models` | boolean | **yes** | True when the key has access to all public models. |
| `created-at` | string | **yes** | ISO 8601 date-time. |
| `deployments` | array of [AI API Key Deployment Ref](https://community.exoscale.com/reference/api/_schemas/ai-api-key-deployment-ref/index.md) | **yes** |  |
| `id` | string | **yes** | Must be a valid UUID. |
| `models` | array[string] | **yes** |  |
| `name` | string | **yes** |  |
| `updated-at` | string | **yes** | ISO 8601 date-time. |
| `value` | string | **yes** | Plaintext AI API key value |
| `revoked-at` | string | null | no | Last update timestamp<br/><br/>ISO 8601 date-time. |

---

url: https://community.exoscale.com/reference/api/_schemas/create-deployment-request/

---

# Create Deployment Request

Deploy an AI model onto a set of GPUs

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `gpu-count` | integer | **yes** | Number of GPUs (1-8)<br/><br/>Min: `1`. |
| `gpu-type` | string | **yes** | GPU type family (e.g., gpua5000, gpu3080ti) |
| `model` | [Model reference. Provide either id or name.](https://community.exoscale.com/reference/api/_schemas/model-ref/index.md) | **yes** |  |
| `name` | string | **yes** | Deployment name<br/><br/>Min length: `1`. |
| `replicas` | integer | **yes** | Number of replicas (>=1)<br/><br/>Min: `1`. |
| `inference-engine-parameters` | array[string] | no | Optional extra inference engine server CLI args |
| `inference-engine-version` | string | no | Allowed values: `0.12.0`, `0.15.1`, `0.16.0`, `0.17.0`, `0.18.0`, `0.18.1`, `0.19.0`, `0.19.1`, `0.20.0`, `0.20.1`, `0.20.2`, `0.21.0`, `0.22.0`, `0.22.1`, `0.23.0`, `0.24.0`, `0.25.0`, `0.25.1`, `0.26.0`, `0.27.0`, `0.27.1`, `0.28.0`, `0.29.0`, `0.30.0`, `0.31.0`.<br/><br/>Default: `0.31.0`. |
| `product-name` | string | no | Billing identifier for this deployment. Used by the Router for usage counters and Kafka events.<br/><br/>Min length: `1`. |

---

url: https://community.exoscale.com/reference/api/_schemas/create-key-store-request/

---

# Create Key Store Request

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | A human-readable display name uniquely identifying the key store within the organization.<br/><br/>Min length: `1`. Max length: `256`. |
| `proxy` | [Key Store Proxy](https://community.exoscale.com/reference/api/_schemas/key-store-proxy/index.md) | **yes** |  |
| `description` | string | no | An optional detailed description providing additional context about the key store's intended use case.<br/><br/>Max length: `1024`. |
| `type` | string | no | The key store type. Only external key stores are supported for this API version.<br/><br/>Allowed values: `external-key-store`.<br/><br/>Default: `external-key-store`. |

---

url: https://community.exoscale.com/reference/api/_schemas/create-kms-key-request/

---

# Create Kms Key Request

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | A human-readable display name uniquely identifying the KMS key within the tenant space. |
| `description` | string | no | An optional detailed description providing additional context about the key's intended use case. |
| `key-spec` | string | no | The cryptographic key specification defining the key's algorithm and, for asymmetric keys, its curve or modulus size.<br/><br/>Allowed values: `AES_256`, `ECC_NIST_P256`, `ECC_NIST_P384`, `ECC_NIST_P521`, `ECC_EDWARDS25519`, `RSA_3072`, `RSA_4096`, `ML_DSA_65`, `ML_DSA_87`.<br/><br/>Default: `AES_256`. |
| `multi-zone` | boolean | no | True if this is a multi-zone key.<br/><br/>Default: `false`. |
| `source` | string | no | Indicates the source of the key material, either generated and held within Exoscale KMS, or backed by an external key store.<br/><br/>Allowed values: `exoscale-kms`, `external-key-store`.<br/><br/>Default: `exoscale-kms`. |
| `usage` | string | no | Allowed values: `encrypt-decrypt`, `sign-verify`.<br/><br/>Default: `encrypt-decrypt`. |
| `xks` | [Xks Key](https://community.exoscale.com/reference/api/_schemas/xks-key/index.md) | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/create-kms-key-response/

---

# Create Kms Key Response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `created-at` | string | **yes** | The UTC timestamp showing when the KMS key was originally provisioned.<br/><br/>ISO 8601 date-time. |
| `id` | string | **yes** | The globally unique identifier (UUID) assigned to the newly created KMS key.<br/><br/>Must be a valid UUID. |
| `key-spec` | string | **yes** | The cryptographic key specification used to generate the key, defining its algorithm and, for asymmetric keys, its curve or modulus size. |
| `multi-zone` | boolean | **yes** | True if this is a multi-zone key. |
| `name` | string | **yes** | The display name assigned to the KMS key. |
| `origin-zone` | string | **yes** | The creation zone of the KMS key. |
| `revision` | [Revision Stamp](https://community.exoscale.com/reference/api/_schemas/revision-stamp/index.md) | **yes** |  |
| `source` | string | **yes** | Indicates the source of the key material, either generated and held within Exoscale KMS, or backed by an external key store.<br/><br/>Allowed values: `exoscale-kms`, `external-key-store`. |
| `status` | string | **yes** | Allowed values: `enabled`, `disabled`, `pending-deletion`. |
| `status-since` | string | **yes** | The timestamp indicating exactly when the current key status was last transitioned.<br/><br/>ISO 8601 date-time. |
| `usage` | string | **yes** | The cryptographic operation constraints allowed on this key. |
| `description` | string | no | An optional detailed description providing additional context about the key's intended use case. |
| `rotation` | [Key Rotation Config](https://community.exoscale.com/reference/api/_schemas/key-rotation-config/index.md) | no |  |
| `xks` | [Xks Key](https://community.exoscale.com/reference/api/_schemas/xks-key/index.md) | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/create-model-request/

---

# Create Model Request

AI model

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | Model name<br/><br/>Min length: `1`. |
| `huggingface-token` | string | no | Huggingface Token |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-backup-config/

---

# DBaaS Backup Config

DBaaS plan backup config

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `frequent-interval-minutes` | integer | no | Interval of taking a frequent backup in service types supporting different backup schedules<br/><br/>Min: `0`. |
| `frequent-oldest-age-minutes` | integer | no | Maximum age of the oldest frequent backup in service types supporting different backup schedules<br/><br/>Min: `0`. |
| `infrequent-interval-minutes` | integer | no | Interval of taking a frequent backup in service types supporting different backup schedules<br/><br/>Min: `0`. |
| `infrequent-oldest-age-minutes` | integer | no | Maximum age of the oldest infrequent backup in service types supporting different backup schedules<br/><br/>Min: `0`. |
| `interval` | integer | no | The interval, in hours, at which backups are generated.                                             For some services, like PostgreSQL, this is the interval                                             at which full snapshots are taken and continuous incremental                                             backup stream is maintained in addition to that.<br/><br/>Min: `0`. |
| `max-count` | integer | no | Maximum number of backups to keep. Zero when no backups are created.<br/><br/>Min: `0`. |
| `recovery-mode` | string | no | Mechanism how backups can be restored. 'regular'                                             means a backup is restored as is so that the system                                             is restored to the state it was when the backup was generated.                                             'pitr' means point-in-time-recovery, which allows restoring the system to any state since the first available full snapshot. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-clickhouse-acl-config/

---

# DBaaS Clickhouse Acl Config

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `users` | array of [DBaaS Clickhouse User Acl Config](https://community.exoscale.com/reference/api/_schemas/dbaas-clickhouse-user-acl-config/index.md) | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-clickhouse-granted-role/

---

# DBaaS Clickhouse Granted Role

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | Granted role name |
| `is-default` | boolean | no |  |
| `uuid` | string | no |  |
| `with-admin-option` | boolean | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-clickhouse-role/

---

# DBaaS Clickhouse Role

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | Role name<br/><br/>Min length: `1`. Max length: `64`. |
| `granted-roles` | array of [DBaaS Clickhouse Granted Role](https://community.exoscale.com/reference/api/_schemas/dbaas-clickhouse-granted-role/index.md) | no |  |
| `privileges` | array of [DBaaS Clickhouse Role Privilege](https://community.exoscale.com/reference/api/_schemas/dbaas-clickhouse-role-privilege/index.md) | no |  |
| `uuid` | string | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-clickhouse-role-privilege/

---

# DBaaS Clickhouse Role Privilege

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | Access type<br/><br/>Min length: `1`. Max length: `64`. |
| `column` | string | no | Column |
| `database` | string | no | Database |
| `grant-option` | boolean | no |  |
| `is-partial-revoke` | boolean | no |  |
| `table` | string | no | Table |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-clickhouse-roles/

---

# DBaaS Clickhouse Roles

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `roles` | array of [DBaaS Clickhouse Role](https://community.exoscale.com/reference/api/_schemas/dbaas-clickhouse-role/index.md) | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-clickhouse-user/

---

# DBaaS Clickhouse User

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `username` | string | **yes** | Username<br/><br/>Min length: `1`. Max length: `64`. |
| `required` | boolean | no |  |
| `uuid` | string | no | Must be a valid UUID. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-clickhouse-user-acl-config/

---

# DBaaS Clickhouse User Acl Config

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `username` | string | **yes** | Username<br/><br/>Min length: `1`. Max length: `64`. |
| `privileges` | array of [DBaaS Clickhouse User Privilege](https://community.exoscale.com/reference/api/_schemas/dbaas-clickhouse-user-privilege/index.md) | no |  |
| `roles` | array of [DBaaS Clickhouse User Role](https://community.exoscale.com/reference/api/_schemas/dbaas-clickhouse-user-role/index.md) | no |  |
| `uuid` | string | no | Must be a valid UUID. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-clickhouse-user-privilege/

---

# DBaaS Clickhouse User Privilege

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `access-type` | string | no |  |
| `column` | string | no |  |
| `database` | string | no |  |
| `grant-option` | boolean | no |  |
| `partial-revoke` | boolean | no |  |
| `table` | string | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-clickhouse-user-role/

---

# DBaaS Clickhouse User Role

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `default` | boolean | no |  |
| `name` | string | no |  |
| `uuid` | string | no | Must be a valid UUID. |
| `with-admin-option` | boolean | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-clickhouse-user-role-input/

---

# DBaaS Clickhouse User Role Input

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `uuid` | string | **yes** | Role UUID<br/><br/>Must be a valid UUID. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-clickhouse-users/

---

# DBaaS Clickhouse Users

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `users` | array of [DBaaS Clickhouse User](https://community.exoscale.com/reference/api/_schemas/dbaas-clickhouse-user/index.md) | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-database-name/

---

# DBaaS Database Name

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-datadog-tag/

---

# DBaaS Datadog Tag

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `tag` | string | **yes** | Tag value<br/><br/>Min length: `1`. Max length: `200`. |
| `comment` | string | no | Optional tag explanation<br/><br/>Max length: `1024`. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-datadog-input-create/

---

# DBaaS Endpoint Datadog Input Create

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `settings` | [Settings](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-datadog-input-create/index.md#settings) | no |  |

### Settings {#settings}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `datadog-api-key` | string | **yes** | Datadog API key<br/><br/>Min length: `1`. Max length: `256`. |
| `site` | string | **yes** | Datadog intake site. Defaults to datadoghq.com<br/><br/>Allowed values: `us3.datadoghq.com`, `ddog-gov.com`, `datadoghq.eu`, `us5.datadoghq.com`, `ap1.datadoghq.com`, `datadoghq.com`. |
| `datadog-tags` | array of [DBaaS Datadog Tag](https://community.exoscale.com/reference/api/_schemas/dbaas-datadog-tag/index.md) | no | Custom tags provided by user |
| `disable-consumer-stats` | boolean | no | Disable kafka consumer group metrics. Applies only when attached to kafka services. |
| `kafka-consumer-check-instances` | integer | no | Number of separate instances to fetch kafka consumer statistics with. Applies only when attached to kafka services.<br/><br/>Min: `1`. Max: `100`. |
| `kafka-consumer-stats-timeout` | integer | no | Number of seconds that datadog will wait to get consumer statistics from brokers. Applies only when attached to kafka services.<br/><br/>Min: `2`. Max: `300`. |
| `max-partition-contexts` | integer | no | Maximum number of partition contexts to send. Applies only when attached to kafka services.<br/><br/>Min: `200`. Max: `200000`. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-datadog-input-update/

---

# DBaaS Endpoint Datadog Input Update

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `settings` | [Settings](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-datadog-input-update/index.md#settings) | no |  |

### Settings {#settings}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `datadog-api-key` | string | **yes** | Datadog API key<br/><br/>Min length: `1`. Max length: `256`. |
| `datadog-tags` | array of [DBaaS Datadog Tag](https://community.exoscale.com/reference/api/_schemas/dbaas-datadog-tag/index.md) | no | Custom tags provided by user |
| `disable-consumer-stats` | boolean | no | Disable kafka consumer group metrics. Applies only when attached to kafka services. |
| `kafka-consumer-check-instances` | integer | no | Number of separate instances to fetch kafka consumer statistics with. Applies only when attached to kafka services.<br/><br/>Min: `1`. Max: `100`. |
| `kafka-consumer-stats-timeout` | integer | no | Number of seconds that datadog will wait to get consumer statistics from brokers. Applies only when attached to kafka services.<br/><br/>Min: `2`. Max: `300`. |
| `max-partition-contexts` | integer | no | Maximum number of partition contexts to send. Applies only when attached to kafka services.<br/><br/>Min: `200`. Max: `200000`. |
| `site` | string | no | Datadog intake site. Defaults to datadoghq.com<br/><br/>Allowed values: `us3.datadoghq.com`, `ddog-gov.com`, `datadoghq.eu`, `us5.datadoghq.com`, `ap1.datadoghq.com`, `datadoghq.com`. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-elasticsearch-input-create/

---

# DBaaS Endpoint Elasticsearch Input Create

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `settings` | [Settings](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-elasticsearch-input-create/index.md#settings) | no |  |

### Settings {#settings}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `index-prefix` | string | **yes** | Elasticsearch index prefix<br/><br/>Min length: `1`. Max length: `1000`. |
| `url` | string | **yes** | Elasticsearch connection URL<br/><br/>Min length: `12`. Max length: `2048`. |
| `ca` | string | no | PEM encoded CA certificate<br/><br/>Max length: `16384`. |
| `index-days-max` | integer | no | Maximum number of days of logs to keep<br/><br/>Min: `1`. Max: `10000`. |
| `timeout` | integer | no | Elasticsearch request timeout limit<br/><br/>Min: `10`. Max: `120`. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-elasticsearch-input-update/

---

# DBaaS Endpoint Elasticsearch Input Update

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `settings` | [Settings](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-elasticsearch-input-update/index.md#settings) | no |  |

### Settings {#settings}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `ca` | string | no | PEM encoded CA certificate<br/><br/>Max length: `16384`. |
| `index-days-max` | integer | no | Maximum number of days of logs to keep<br/><br/>Min: `1`. Max: `10000`. |
| `index-prefix` | string | no | Elasticsearch index prefix<br/><br/>Min length: `1`. Max length: `1000`. |
| `timeout` | integer | no | Elasticsearch request timeout limit<br/><br/>Min: `10`. Max: `120`. |
| `url` | string | no | Elasticsearch connection URL<br/><br/>Min length: `12`. Max length: `2048`. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-elasticsearch-optional-fields/

---

# DBaaS Endpoint Elasticsearch Optional Fields

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `index-days-max` | integer | no | Maximum number of days of logs to keep<br/><br/>Min: `1`. Max: `10000`. |
| `index-prefix` | string | no | Elasticsearch index prefix<br/><br/>Min length: `1`. Max length: `1000`. |
| `timeout` | integer | no | Elasticsearch request timeout limit<br/><br/>Min: `10`. Max: `120`. |
| `url` | string | no | Elasticsearch connection URL<br/><br/>Min length: `12`. Max length: `2048`. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-elasticsearch-output/

---

# DBaaS Endpoint Elasticsearch Output

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | External integration endpoint id<br/><br/>Must be a valid UUID. |
| `name` | string | no | External integration endpoint name |
| `settings` | [DBaaS Endpoint Elasticsearch Optional Fields](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-elasticsearch-optional-fields/index.md) | no | External integration ElasticSearch logs configuration |
| `type` | string | no | External integration endpoint type<br/><br/>Allowed values: `prometheus`, `opensearch`, `rsyslog`, `datadog`, `elasticsearch`. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-external-prometheus-output/

---

# DBaaS Endpoint External Prometheus Output

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | External integration endpoint id<br/><br/>Must be a valid UUID. |
| `name` | string | no | External integration endpoint name |
| `settings` | [Settings](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-external-prometheus-output/index.md#settings) | no | External integration Prometheus configuration |
| `type` | string | no | External integration endpoint type<br/><br/>Allowed values: `prometheus`, `opensearch`, `rsyslog`, `datadog`, `elasticsearch`. |

### Settings {#settings}

External integration Prometheus configuration

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `basic-auth-username` | string | no | Prometheus basic authentication username<br/><br/>Min length: `5`. Max length: `32`. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-opensearch-input-create/

---

# DBaaS Endpoint Opensearch Input Create

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `settings` | [Settings](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-opensearch-input-create/index.md#settings) | no |  |

### Settings {#settings}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `index-prefix` | string | **yes** | OpenSearch index prefix<br/><br/>Min length: `1`. Max length: `1000`. |
| `url` | string | **yes** | OpenSearch connection URL<br/><br/>Min length: `12`. Max length: `2048`. |
| `ca` | string | no | PEM encoded CA certificate<br/><br/>Max length: `16384`. |
| `index-days-max` | integer | no | Maximum number of days of logs to keep<br/><br/>Min: `1`. Max: `10000`. |
| `timeout` | integer | no | OpenSearch request timeout limit<br/><br/>Min: `10`. Max: `120`. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-opensearch-input-update/

---

# DBaaS Endpoint Opensearch Input Update

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `settings` | [Settings](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-opensearch-input-update/index.md#settings) | no |  |

### Settings {#settings}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `ca` | string | no | PEM encoded CA certificate<br/><br/>Max length: `16384`. |
| `index-days-max` | integer | no | Maximum number of days of logs to keep<br/><br/>Min: `1`. Max: `10000`. |
| `index-prefix` | string | no | OpenSearch index prefix<br/><br/>Min length: `1`. Max length: `1000`. |
| `timeout` | integer | no | OpenSearch request timeout limit<br/><br/>Min: `10`. Max: `120`. |
| `url` | string | no | OpenSearch connection URL<br/><br/>Min length: `12`. Max length: `2048`. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-opensearch-optional-fields/

---

# DBaaS Endpoint Opensearch Optional Fields

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `index-days-max` | integer | no | Maximum number of days of logs to keep<br/><br/>Min: `1`. Max: `10000`. |
| `index-prefix` | string | no | OpenSearch index prefix<br/><br/>Min length: `1`. Max length: `1000`. |
| `timeout` | integer | no | OpenSearch request timeout limit<br/><br/>Min: `10`. Max: `120`. |
| `url` | string | no | OpenSearch connection URL<br/><br/>Min length: `12`. Max length: `2048`. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-opensearch-output/

---

# DBaaS Endpoint Opensearch Output

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | External integration endpoint id<br/><br/>Must be a valid UUID. |
| `name` | string | no | External integration endpoint name |
| `settings` | [DBaaS Endpoint Opensearch Optional Fields](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-opensearch-optional-fields/index.md) | no | External integration OpenSearch logs configuration |
| `type` | string | no | External integration endpoint type<br/><br/>Allowed values: `prometheus`, `opensearch`, `rsyslog`, `datadog`, `elasticsearch`. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-prometheus-payload/

---

# DBaaS Endpoint Prometheus Payload

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `settings` | [Settings](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-prometheus-payload/index.md#settings) | no |  |

### Settings {#settings}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `basic-auth-password` | string | no | Prometheus basic authentication password<br/><br/>Min length: `8`. Max length: `64`. |
| `basic-auth-username` | string | no | Prometheus basic authentication username<br/><br/>Min length: `5`. Max length: `32`. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-rsyslog-input-create/

---

# DBaaS Endpoint Rsyslog Input Create

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `settings` | [Settings](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-rsyslog-input-create/index.md#settings) | no |  |

### Settings {#settings}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `format` | string | **yes** | Message format<br/><br/>Allowed values: `custom`, `rfc3164`, `rfc5424`. |
| `port` | integer | **yes** | Rsyslog server port<br/><br/>Min: `1`. Max: `65535`. |
| `server` | string | **yes** | Rsyslog server IP address or hostname<br/><br/>Min length: `4`. Max length: `255`. |
| `tls` | boolean | **yes** | Require TLS |
| `ca` | string | no | PEM encoded CA certificate<br/><br/>Max length: `16384`. |
| `cert` | string | no | PEM encoded client certificate<br/><br/>Max length: `16384`. |
| `key` | string | no | PEM encoded client key<br/><br/>Max length: `16384`. |
| `logline` | string | no | Custom syslog message format<br/><br/>Min length: `1`. Max length: `512`. |
| `max-message-size` | integer | no | Rsyslog max message size<br/><br/>Min: `2048`. Max: `2.147483647e+09`. |
| `sd` | string | no | Structured data block for log message<br/><br/>Max length: `1024`. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-rsyslog-input-update/

---

# DBaaS Endpoint Rsyslog Input Update

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `settings` | [Settings](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-rsyslog-input-update/index.md#settings) | no |  |

### Settings {#settings}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `ca` | string | no | PEM encoded CA certificate<br/><br/>Max length: `16384`. |
| `cert` | string | no | PEM encoded client certificate<br/><br/>Max length: `16384`. |
| `format` | string | no | Message format<br/><br/>Allowed values: `custom`, `rfc3164`, `rfc5424`. |
| `key` | string | no | PEM encoded client key<br/><br/>Max length: `16384`. |
| `logline` | string | no | Custom syslog message format<br/><br/>Min length: `1`. Max length: `512`. |
| `max-message-size` | integer | no | Rsyslog max message size<br/><br/>Min: `2048`. Max: `2.147483647e+09`. |
| `port` | integer | no | Rsyslog server port<br/><br/>Min: `1`. Max: `65535`. |
| `sd` | string | no | Structured data block for log message<br/><br/>Max length: `1024`. |
| `server` | string | no | Rsyslog server IP address or hostname<br/><br/>Min length: `4`. Max length: `255`. |
| `tls` | boolean | no | Require TLS |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-rsyslog-optional-fields/

---

# DBaaS Endpoint Rsyslog Optional Fields

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `format` | string | no | Message format<br/><br/>Allowed values: `custom`, `rfc3164`, `rfc5424`. |
| `logline` | string | no | Custom syslog message format<br/><br/>Min length: `1`. Max length: `512`. |
| `max-message-size` | integer | no | Rsyslog max message size<br/><br/>Min: `2048`. Max: `2.147483647e+09`. |
| `port` | integer | no | Rsyslog server port<br/><br/>Min: `1`. Max: `65535`. |
| `sd` | string | no | Structured data block for log message<br/><br/>Max length: `1024`. |
| `server` | string | no | Rsyslog server IP address or hostname<br/><br/>Min length: `4`. Max length: `255`. |
| `tls` | boolean | no | Require TLS |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-external-endpoint/

---

# DBaaS External Endpoint

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | External integration endpoint id<br/><br/>Must be a valid UUID. |
| `name` | string | no | External integration endpoint name |
| `type` | string | no | External integration endpoint type<br/><br/>Allowed values: `prometheus`, `opensearch`, `rsyslog`, `datadog`, `elasticsearch`. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-external-endpoint-datadog-output/

---

# DBaaS External Endpoint Datadog Output

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | External integration endpoint id<br/><br/>Must be a valid UUID. |
| `name` | string | no | External integration endpoint name |
| `settings` | [Settings](https://community.exoscale.com/reference/api/_schemas/dbaas-external-endpoint-datadog-output/index.md#settings) | no | External integration DataDog configuration |
| `type` | string | no | External integration endpoint type<br/><br/>Allowed values: `prometheus`, `opensearch`, `rsyslog`, `datadog`, `elasticsearch`. |

### Settings {#settings}

External integration DataDog configuration

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `datadog-tags` | array of [DBaaS Datadog Tag](https://community.exoscale.com/reference/api/_schemas/dbaas-datadog-tag/index.md) | no | Custom tags provided by user |
| `disable-consumer-stats` | boolean | no | Disable kafka consumer group metrics. Applies only when attached to kafka services. |
| `kafka-consumer-check-instances` | integer | no | Number of separate instances to fetch kafka consumer statistics with. Applies only when attached to kafka services.<br/><br/>Min: `1`. Max: `100`. |
| `kafka-consumer-stats-timeout` | integer | no | Number of seconds that datadog will wait to get consumer statistics from brokers. Applies only when attached to kafka services.<br/><br/>Min: `2`. Max: `300`. |
| `max-partition-contexts` | integer | no | Maximum number of partition contexts to send. Applies only when attached to kafka services.<br/><br/>Min: `200`. Max: `200000`. |
| `site` | string | no | Datadog intake site. Defaults to datadoghq.com<br/><br/>Allowed values: `us3.datadoghq.com`, `ddog-gov.com`, `datadoghq.eu`, `us5.datadoghq.com`, `ap1.datadoghq.com`, `datadoghq.com`. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-external-endpoint-rsyslog-output/

---

# DBaaS External Endpoint Rsyslog Output

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | External integration endpoint id<br/><br/>Must be a valid UUID. |
| `name` | string | no | External integration endpoint name |
| `settings` | [DBaaS Endpoint Rsyslog Optional Fields](https://community.exoscale.com/reference/api/_schemas/dbaas-endpoint-rsyslog-optional-fields/index.md) | no | External integration RSyslog configuration |
| `type` | string | no | External integration endpoint type<br/><br/>Allowed values: `prometheus`, `opensearch`, `rsyslog`, `datadog`, `elasticsearch`. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-external-integration/

---

# DBaaS External Integration

Integrations with other services

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | **yes** | Description of the integration |
| `source-service-name` | string | **yes** | DBaaS source service name |
| `source-service-type` | string | **yes** | DBaaS service type<br/><br/>Min length: `0`. Max length: `64`. |
| `type` | string | **yes** | Integration Type<br/><br/>Allowed values: `prometheus`, `opensearch`, `rsyslog`, `datadog`, `elasticsearch`. |
| `dest-endpoint-id` | string | no | External destination endpoint id |
| `dest-endpoint-name` | string | no | External destination endpoint name |
| `integration-id` | string | no | Endpoint integration UUID<br/><br/>Must be a valid UUID. |
| `status` | string | no | Integration status |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-integration/

---

# DBaaS Integration

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | no | Description of the integration |
| `dest` | string | no | Destination service name |
| `id` | string | no | Integration id<br/><br/>Must be a valid UUID. |
| `is-active` | boolean | no | Whether the integration is active or not |
| `is-enabled` | boolean | no | Whether the integration is enabled or not |
| `settings` | object | no | Integration settings |
| `source` | string | no | Source service name |
| `status` | string | no | Integration status |
| `type` | string | no | Integration type |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-integration-settings-datadog/

---

# DBaaS Integration Settings Datadog

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `datadog-dbm-enabled` | boolean | no | Database monitoring: view query metrics, explain plans, and execution details. Correlate queries with host metrics. |
| `datadog-pgbouncer-enabled` | boolean | no | Integrate PgBouncer with Datadog to track connection pool metrics and monitor application traffic. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-integration-type/

---

# DBaaS Integration Type

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `dest-description` | string | no | The description of the destination service types. |
| `dest-service-types` | array[string] | no | A list of the destination service types the integration supports. |
| `settings` | [Settings](https://community.exoscale.com/reference/api/_schemas/dbaas-integration-type/index.md#settings) | no | A JSON schema of additional settings of the integration. |
| `source-description` | string | no | The description of the source service types. |
| `source-service-types` | array[string] | no | A list of the source service types the integration supports. |
| `type` | string | no | The type of the integration. |

### Settings {#settings}

A JSON schema of additional settings of the integration.

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `additionalProperties` | boolean | no |  |
| `properties` | object | no |  |
| `title` | string | no |  |
| `type` | string | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-kafka-acl-id/

---

# DBaaS Kafka Acl ID

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-kafka-acls/

---

# DBaaS Kafka Acls

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `schema-registry-acl` | array of [DBaaS Kafka Schema Registry Acl Entry](https://community.exoscale.com/reference/api/_schemas/dbaas-kafka-schema-registry-acl-entry/index.md) | no |  |
| `topic-acl` | array of [DBaaS Kafka Topic Acl Entry](https://community.exoscale.com/reference/api/_schemas/dbaas-kafka-topic-acl-entry/index.md) | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-kafka-schema-registry-acl-entry/

---

# DBaaS Kafka Schema Registry Acl Entry

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `permission` | string | **yes** | Kafka Schema Registry permission<br/><br/>Allowed values: `schema_registry_read`, `schema_registry_write`. |
| `resource` | string | **yes** | Kafka Schema Registry name or pattern<br/><br/>Min length: `1`. Max length: `249`. |
| `username` | string | **yes** | Kafka username or username pattern<br/><br/>Min length: `1`. Max length: `64`. |
| `id` | string | no | Kafka ACL ID<br/><br/>Min length: `1`. Max length: `40`. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-kafka-topic-acl-entry/

---

# DBaaS Kafka Topic Acl Entry

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `permission` | string | **yes** | Kafka permission<br/><br/>Allowed values: `admin`, `read`, `readwrite`, `write`. |
| `topic` | string | **yes** | Kafka topic name or pattern<br/><br/>Min length: `1`. Max length: `249`. |
| `username` | string | **yes** | Kafka username or username pattern<br/><br/>Min length: `1`. Max length: `64`. |
| `id` | string | no | Kafka ACL ID<br/><br/>Min length: `1`. Max length: `40`. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-migration-status/

---

# DBaaS Migration Status

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `details` | array of [Details](https://community.exoscale.com/reference/api/_schemas/dbaas-migration-status/index.md#details) | no | Migration status per database |
| `error` | string | no | Error message in case that migration has failed |
| `method` | string | no | Migration method. Empty in case of multiple methods or error |
| `status` | string | no | Migration status |

### Details {#details}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `dbname` | string | no | Migrated db name |
| `error` | string | no | Error message in case that migration has failed |
| `method` | string | no | Migration method |
| `status` | string | no | Migration status<br/><br/>Allowed values: `running`, `syncing`, `failed`, `done`. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-mysql-database-name/

---

# DBaaS Mysql Database Name

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-mysql-user-password/

---

# DBaaS Mysql User Password

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-node-state/

---

# DBaaS Node State

Automatic maintenance settings

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | Name of the service node |
| `state` | string | **yes** | Current state of the service node<br/><br/>Allowed values: `leaving`, `running`, `syncing_data`, `setting_up_vm`, `unknown`. |
| `progress-updates` | array of [Extra information regarding the progress for current state](https://community.exoscale.com/reference/api/_schemas/dbaas-node-state-progress-update/index.md) | no | Extra information regarding the progress for current state |
| `role` | string | no | Role of this node. Only returned for a subset of service types<br/><br/>Allowed values: `standby`, `master`, `read-replica`. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-node-state-progress-update/

---

# DBaaS Node State Progress Update

Extra information regarding the progress for current state

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `completed` | boolean | **yes** | Indicates whether this phase has been completed or not |
| `phase` | string | **yes** | Key identifying this phase<br/><br/>Allowed values: `stream`, `basebackup`, `prepare`, `finalize`. |
| `current` | integer | no | Current progress for this phase. May be missing or null.<br/><br/>Min: `0`. |
| `max` | integer | no | Maximum progress value for this phase. May be missing or null. May change.<br/><br/>Min: `0`. |
| `min` | integer | no | Minimum progress value for this phase. May be missing or null.<br/><br/>Min: `0`. |
| `unit` | string | no | Unit for current/min/max values. New units may be added.                         If null should be treated as generic unit |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-opensearch-acl-config/

---

# DBaaS Opensearch Acl Config

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `acl-enabled` | boolean | no | Enable OpenSearch ACLs. When disabled authenticated service users have unrestricted access. |
| `acls` | array of [Acls](https://community.exoscale.com/reference/api/_schemas/dbaas-opensearch-acl-config/index.md#acls) | no | List of OpenSearch ACLs |
| `extended-acl-enabled` | boolean | no | Enable to enforce index rules in a limited fashion for requests that use the _mget, _msearch, and _bulk APIs |

### Acls {#acls}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `rules` | array of [Rules](https://community.exoscale.com/reference/api/_schemas/dbaas-opensearch-acl-config/index.md#rules) | no |  |
| `username` | string | no | Min length: `1`. Max length: `64`. |

### Rules {#rules}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `index` | string | **yes** | OpenSearch index pattern<br/><br/>Max length: `249`. |
| `permission` | string | no | OpenSearch permission<br/><br/>Allowed values: `admin`, `read`, `deny`, `readwrite`, `write`. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-pg-database-name/

---

# DBaaS PG Database Name

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-pg-pool-name/

---

# DBaaS PG Pool Name

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-pg-pool-size/

---

# DBaaS PG Pool Size

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-pg-pool-username/

---

# DBaaS PG Pool Username

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-pg-target-versions/

---

# DBaaS PG Target Versions

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-plan/

---

# DBaaS Plan

DBaaS plan

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `authorized` | boolean | no | Requires authorization or publicly available |
| `backup-config` | [DBaaS plan backup config](https://community.exoscale.com/reference/api/_schemas/dbaas-backup-config/index.md) | no | DBaaS plan backup config |
| `disk-space` | integer | no | DBaaS plan disk space |
| `family` | string | no | Instance family subset which the service can use |
| `max-memory-percent` | integer | no | DBaaS plan max memory allocated percentage<br/><br/>Min: `0`. |
| `name` | string | no | DBaaS plan name |
| `node-count` | integer | no | DBaaS plan node count<br/><br/>Min: `0`. |
| `node-cpu-count` | integer | no | DBaaS plan CPU count per node<br/><br/>Min: `0`. |
| `node-memory` | integer | no | DBaaS plan memory count per node<br/><br/>Min: `0`. |
| `zones` | array[string] | no | Zones where the plan is available |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-postgres-users/

---

# DBaaS Postgres Users

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `users` | array of [Users](https://community.exoscale.com/reference/api/_schemas/dbaas-postgres-users/index.md#users) | no |  |

### Users {#users}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `username` | string | **yes** | Username<br/><br/>Min length: `1`. Max length: `64`. |
| `allow-replication` | boolean | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-service-backup/

---

# DBaaS Service Backup

List of backups for the service

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `backup-name` | string | **yes** | Internal name of this backup |
| `backup-time` | string | **yes** | Backup timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `data-size` | integer | **yes** | Backup's original size before compression, in bytes<br/><br/>Min: `0`. |
| `tiered-storage-data-size` | integer | no | Amount of tiered storage data in bytes referenced by this backup<br/><br/>Min: `0`. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-service-clickhouse/

---

# DBaaS Service Clickhouse

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | Service name<br/><br/>Min length: `0`. Max length: `63`. |
| `plan` | string | **yes** | Subscription plan |
| `prometheus-uri` | [Prometheus URI](https://community.exoscale.com/reference/api/_schemas/dbaas-service-clickhouse/index.md#prometheus-uri) | **yes** | Prometheus integration URI |
| `type` | string | **yes** | Service type code<br/><br/>Min length: `0`. Max length: `64`. |
| `backups` | array of [List of backups for the service](https://community.exoscale.com/reference/api/_schemas/dbaas-service-backup/index.md) | no | List of backups for the service |
| `clickhouse-settings` | [ClickHouse settings](https://community.exoscale.com/reference/api/_schemas/json-schema-clickhouse/index.md) | no | ClickHouse-specific settings |
| `components` | array of [Components](https://community.exoscale.com/reference/api/_schemas/dbaas-service-clickhouse/index.md#components) | no | Service component information objects |
| `connection-info` | [Connection Info](https://community.exoscale.com/reference/api/_schemas/dbaas-service-clickhouse/index.md#connection-info) | no | ClickHouse connection information properties |
| `created-at` | string | no | Service creation timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `disk-size` | integer | no | Disk space for data storage, in bytes<br/><br/>Min: `0`. |
| `integrations` | array of [DBaaS Integration](https://community.exoscale.com/reference/api/_schemas/dbaas-integration/index.md) | no | Service integrations |
| `ip-filter` | array[string] | no | Allowed CIDR address blocks for incoming connections |
| `maintenance` | [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-service-maintenance/index.md) | no | Automatic maintenance settings |
| `node-count` | integer | no | Number of service nodes in the active plan<br/><br/>Min: `0`. |
| `node-cpu-count` | integer | no | Number of CPUs for each node<br/><br/>Min: `0`. |
| `node-memory` | integer | no | Memory of each node, in bytes<br/><br/>Min: `0`. |
| `node-states` | array of [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-node-state/index.md) | no | State of individual service nodes |
| `notifications` | array of [Service notifications](https://community.exoscale.com/reference/api/_schemas/dbaas-service-notification/index.md) | no | Service notifications |
| `state` | string | no | State of the service<br/><br/>Allowed values: `running`, `rebuilding`, `rebalancing`, `poweroff`. |
| `termination-protection` | boolean | no | Service is protected against termination and powering off |
| `updated-at` | string | no | Service last update timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `uri` | string | no | URI for connecting to the service (may be absent) |
| `uri-params` | object | no | service_uri parameterized into key-value pairs |
| `users` | array of [DBaaS Clickhouse User](https://community.exoscale.com/reference/api/_schemas/dbaas-clickhouse-user/index.md) | no | List of ClickHouse users |
| `version` | string | no | ClickHouse version |
| `zone` | string | no | The zone where the service is running |

### Connection Info {#connection-info}

ClickHouse connection information properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `arrowflight-uri` | string | no |  |
| `mysql-uri` | string | no |  |
| `uri` | array[string] | no |  |

### Prometheus URI {#prometheus-uri}

Prometheus integration URI

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `host` | string | no |  |
| `port` | integer | no | Min: `0`. Max: `65535`. |

### Components {#components}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `component` | string | **yes** | Service component name |
| `host` | string | **yes** | DNS name for connecting to the service component |
| `port` | integer | **yes** | Port number for connecting to the service component<br/><br/>Min: `0`. Max: `65535`. |
| `route` | string | **yes** | Network access route<br/><br/>Allowed values: `dynamic`, `private`, `public`, `privatelink`. |
| `usage` | string | **yes** | DNS usage name<br/><br/>Allowed values: `primary`, `replica`. |
| `ssl` | boolean | no | Whether the endpoint is encrypted or accepts plaintext.              By default endpoints are always encrypted and              this property is only included for service components that may disable encryption. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-service-common/

---

# DBaaS Service Common

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | Service name<br/><br/>Min length: `0`. Max length: `63`. |
| `plan` | string | **yes** | Subscription plan |
| `type` | string | **yes** | Service type code<br/><br/>Min length: `0`. Max length: `64`. |
| `created-at` | string | no | Service creation timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `disk-size` | integer | no | Disk space for data storage, in bytes<br/><br/>Min: `0`. |
| `integrations` | array of [DBaaS Integration](https://community.exoscale.com/reference/api/_schemas/dbaas-integration/index.md) | no | Service integrations |
| `node-count` | integer | no | Number of service nodes in the active plan<br/><br/>Min: `0`. |
| `node-cpu-count` | integer | no | Number of CPUs for each node<br/><br/>Min: `0`. |
| `node-memory` | integer | no | Memory of each node, in bytes<br/><br/>Min: `0`. |
| `notifications` | array of [Service notifications](https://community.exoscale.com/reference/api/_schemas/dbaas-service-notification/index.md) | no | Service notifications |
| `state` | string | no | State of the service<br/><br/>Allowed values: `running`, `rebuilding`, `rebalancing`, `poweroff`. |
| `termination-protection` | boolean | no | Service is protected against termination and powering off |
| `updated-at` | string | no | Service last update timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `zone` | string | no | The zone where the service is running |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-service-grafana/

---

# DBaaS Service Grafana

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | Service name<br/><br/>Min length: `0`. Max length: `63`. |
| `plan` | string | **yes** | Subscription plan |
| `prometheus-uri` | [Prometheus URI](https://community.exoscale.com/reference/api/_schemas/dbaas-service-grafana/index.md#prometheus-uri) | **yes** | Prometheus integration URI |
| `type` | string | **yes** | Service type code<br/><br/>Min length: `0`. Max length: `64`. |
| `backups` | array of [List of backups for the service](https://community.exoscale.com/reference/api/_schemas/dbaas-service-backup/index.md) | no | List of backups for the service |
| `components` | array of [Components](https://community.exoscale.com/reference/api/_schemas/dbaas-service-grafana/index.md#components) | no | Service component information objects |
| `connection-info` | [Connection Info](https://community.exoscale.com/reference/api/_schemas/dbaas-service-grafana/index.md#connection-info) | no | Grafana connection information properties |
| `created-at` | string | no | Service creation timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `description` | string | no | DbaaS service description |
| `disk-size` | integer | no | Disk space for data storage, in bytes<br/><br/>Min: `0`. |
| `grafana-settings` | [Grafana settings](https://community.exoscale.com/reference/api/_schemas/json-schema-grafana/index.md) | no | Grafana specific settings |
| `integrations` | array of [DBaaS Integration](https://community.exoscale.com/reference/api/_schemas/dbaas-integration/index.md) | no | Service integrations |
| `ip-filter` | array[string] | no | Allowed CIDR address blocks for incoming connections |
| `maintenance` | [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-service-maintenance/index.md) | no | Automatic maintenance settings |
| `node-count` | integer | no | Number of service nodes in the active plan<br/><br/>Min: `0`. |
| `node-cpu-count` | integer | no | Number of CPUs for each node<br/><br/>Min: `0`. |
| `node-memory` | integer | no | Memory of each node, in bytes<br/><br/>Min: `0`. |
| `node-states` | array of [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-node-state/index.md) | no | State of individual service nodes |
| `notifications` | array of [Service notifications](https://community.exoscale.com/reference/api/_schemas/dbaas-service-notification/index.md) | no | Service notifications |
| `state` | string | no | State of the service<br/><br/>Allowed values: `running`, `rebuilding`, `rebalancing`, `poweroff`. |
| `termination-protection` | boolean | no | Service is protected against termination and powering off |
| `updated-at` | string | no | Service last update timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `uri` | string | no | URI for connecting to the service (may be absent) |
| `uri-params` | object | no | service_uri parameterized into key-value pairs |
| `users` | array of [Users](https://community.exoscale.com/reference/api/_schemas/dbaas-service-grafana/index.md#users) | no | List of service users |
| `version` | string | no | Grafana version |
| `zone` | string | no | The zone where the service is running |

### Connection Info {#connection-info}

Grafana connection information properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `password` | string | no |  |
| `uri` | string | no |  |
| `username` | string | no |  |

### Prometheus URI {#prometheus-uri}

Prometheus integration URI

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `host` | string | no |  |
| `port` | integer | no | Min: `0`. Max: `65535`. |

### Components {#components}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `component` | string | **yes** | Service component name |
| `host` | string | **yes** | DNS name for connecting to the service component |
| `port` | integer | **yes** | Port number for connecting to the service component<br/><br/>Min: `0`. Max: `65535`. |
| `route` | string | **yes** | Network access route<br/><br/>Allowed values: `dynamic`, `private`, `public`, `privatelink`. |
| `usage` | string | **yes** | DNS usage name<br/><br/>Allowed values: `primary`, `replica`. |

### Users {#users}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `password` | string | no |  |
| `type` | string | no |  |
| `username` | string | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-service-kafka/

---

# DBaaS Service Kafka

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | Service name<br/><br/>Min length: `0`. Max length: `63`. |
| `plan` | string | **yes** | Subscription plan |
| `prometheus-uri` | [Prometheus URI](https://community.exoscale.com/reference/api/_schemas/dbaas-service-kafka/index.md#prometheus-uri) | **yes** | Prometheus integration URI |
| `type` | string | **yes** | Service type code<br/><br/>Min length: `0`. Max length: `64`. |
| `authentication-methods` | [Authentication Methods](https://community.exoscale.com/reference/api/_schemas/dbaas-service-kafka/index.md#authentication-methods) | no | Kafka authentication methods |
| `backups` | array of [List of backups for the service](https://community.exoscale.com/reference/api/_schemas/dbaas-service-backup/index.md) | no | List of backups for the service |
| `components` | array of [Components](https://community.exoscale.com/reference/api/_schemas/dbaas-service-kafka/index.md#components) | no | Service component information objects |
| `connection-info` | [Connection Info](https://community.exoscale.com/reference/api/_schemas/dbaas-service-kafka/index.md#connection-info) | no | Kafka connection information properties |
| `created-at` | string | no | Service creation timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `disk-size` | integer | no | Disk space for data storage, in bytes<br/><br/>Min: `0`. |
| `integrations` | array of [DBaaS Integration](https://community.exoscale.com/reference/api/_schemas/dbaas-integration/index.md) | no | Service integrations |
| `ip-filter` | array[string] | no | Allow incoming connections from CIDR address block, e.g. '10.20.0.0/16' |
| `kafka-connect-enabled` | boolean | no | Whether Kafka Connect is enabled |
| `kafka-connect-settings` | [Kafka Connect configuration values](https://community.exoscale.com/reference/api/_schemas/json-schema-kafka-connect/index.md) | no | Kafka Connect configuration values |
| `kafka-rest-enabled` | boolean | no | Whether Kafka REST is enabled |
| `kafka-rest-settings` | [Kafka REST configuration](https://community.exoscale.com/reference/api/_schemas/json-schema-kafka-rest/index.md) | no | Kafka REST configuration |
| `kafka-settings` | [Kafka broker configuration values](https://community.exoscale.com/reference/api/_schemas/json-schema-kafka/index.md) | no | Kafka-specific settings |
| `maintenance` | [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-service-maintenance/index.md) | no | Automatic maintenance settings |
| `node-count` | integer | no | Number of service nodes in the active plan<br/><br/>Min: `0`. |
| `node-cpu-count` | integer | no | Number of CPUs for each node<br/><br/>Min: `0`. |
| `node-memory` | integer | no | Memory of each node, in bytes<br/><br/>Min: `0`. |
| `node-states` | array of [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-node-state/index.md) | no | State of individual service nodes |
| `notifications` | array of [Service notifications](https://community.exoscale.com/reference/api/_schemas/dbaas-service-notification/index.md) | no | Service notifications |
| `schema-registry-enabled` | boolean | no | Whether Schema-Registry is enabled |
| `schema-registry-settings` | [Schema Registry configuration](https://community.exoscale.com/reference/api/_schemas/json-schema-schema-registry/index.md) | no | Schema Registry configuration |
| `state` | string | no | State of the service<br/><br/>Allowed values: `running`, `rebuilding`, `rebalancing`, `poweroff`. |
| `termination-protection` | boolean | no | Service is protected against termination and powering off |
| `updated-at` | string | no | Service last update timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `uri` | string | no | URI for connecting to the service (may be absent) |
| `uri-params` | object | no | service_uri parameterized into key-value pairs |
| `users` | array of [Users](https://community.exoscale.com/reference/api/_schemas/dbaas-service-kafka/index.md#users) | no | List of service users |
| `version` | string | no | Kafka version |
| `zone` | string | no | The zone where the service is running |

### Authentication Methods {#authentication-methods}

Kafka authentication methods

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `certificate` | boolean | no | Whether certificate/SSL authentication is enabled |
| `sasl` | boolean | no | Whether SASL authentication is enabled |

### Connection Info {#connection-info}

Kafka connection information properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `access-cert` | string | no |  |
| `access-key` | string | no |  |
| `connect-uri` | string | no |  |
| `nodes` | array[string] | no |  |
| `registry-uri` | string | no |  |
| `rest-uri` | string | no |  |

### Prometheus URI {#prometheus-uri}

Prometheus integration URI

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `host` | string | no |  |
| `port` | integer | no | Min: `0`. Max: `65535`. |

### Components {#components}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `component` | string | **yes** | Service component name |
| `host` | string | **yes** | DNS name for connecting to the service component |
| `port` | integer | **yes** | Port number for connecting to the service component<br/><br/>Min: `0`. Max: `65535`. |
| `route` | string | **yes** | Network access route<br/><br/>Allowed values: `dynamic`, `private`, `public`, `privatelink`. |
| `usage` | string | **yes** | DNS usage name<br/><br/>Allowed values: `primary`, `replica`. |
| `kafka-authentication-method` | string | no | Kafka authentication method. This is a value specific to the 'kafka' service component<br/><br/>Allowed values: `certificate`, `sasl`. |

### Users {#users}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `access-cert` | string | no |  |
| `access-cert-expiry` | string | no | ISO 8601 date-time. |
| `access-key` | string | no |  |
| `password` | string | no |  |
| `type` | string | no |  |
| `username` | string | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-service-logs/

---

# DBaaS Service Logs

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `first-log-offset` | string | no |  |
| `logs` | array of [Logs](https://community.exoscale.com/reference/api/_schemas/dbaas-service-logs/index.md#logs) | no |  |
| `offset` | string | no |  |

### Logs {#logs}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `message` | string | no |  |
| `node` | string | no |  |
| `time` | string | no |  |
| `unit` | string | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-service-maintenance/

---

# DBaaS Service Maintenance

Automatic maintenance settings

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `dow` | string | **yes** | Day of week for installing updates<br/><br/>Allowed values: `saturday`, `tuesday`, `never`, `wednesday`, `sunday`, `friday`, `monday`, `thursday`. |
| `time` | string | **yes** | Time for installing updates, UTC<br/><br/>Min length: `8`. Max length: `8`. |
| `updates` | array of [Update waiting to be installed](https://community.exoscale.com/reference/api/_schemas/dbaas-service-update/index.md) | **yes** | List of updates waiting to be installed |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-service-mysql/

---

# DBaaS Service Mysql

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | Service name<br/><br/>Min length: `0`. Max length: `63`. |
| `plan` | string | **yes** | Subscription plan |
| `prometheus-uri` | [Prometheus URI](https://community.exoscale.com/reference/api/_schemas/dbaas-service-mysql/index.md#prometheus-uri) | **yes** | Prometheus integration URI |
| `type` | string | **yes** | Service type code<br/><br/>Min length: `0`. Max length: `64`. |
| `backup-schedule` | [Backup Schedule](https://community.exoscale.com/reference/api/_schemas/dbaas-service-mysql/index.md#backup-schedule) | no | Backup schedule |
| `backups` | array of [List of backups for the service](https://community.exoscale.com/reference/api/_schemas/dbaas-service-backup/index.md) | no | List of backups for the service |
| `binlog-retention-period` | integer | no | The minimum amount of time in seconds to keep binlog entries before deletion. This may be extended for services that require binlog entries for longer than the default for example if using the MySQL Debezium Kafka connector.<br/><br/>Min: `0`. |
| `components` | array of [Components](https://community.exoscale.com/reference/api/_schemas/dbaas-service-mysql/index.md#components) | no | Service component information objects |
| `connection-info` | [Connection Info](https://community.exoscale.com/reference/api/_schemas/dbaas-service-mysql/index.md#connection-info) | no | MySQL connection information properties |
| `created-at` | string | no | Service creation timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `databases` | array of [DBaaS Mysql Database Name](https://community.exoscale.com/reference/api/_schemas/dbaas-mysql-database-name/index.md) | no | List of MySQL databases |
| `disk-size` | integer | no | Disk space for data storage, in bytes<br/><br/>Min: `0`. |
| `integrations` | array of [DBaaS Integration](https://community.exoscale.com/reference/api/_schemas/dbaas-integration/index.md) | no | Service integrations |
| `ip-filter` | array[string] | no | Allowed CIDR address blocks for incoming connections |
| `maintenance` | [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-service-maintenance/index.md) | no | Automatic maintenance settings |
| `mysql-settings` | [mysql.conf configuration values](https://community.exoscale.com/reference/api/_schemas/json-schema-mysql/index.md) | no | MySQL-specific settings |
| `node-count` | integer | no | Number of service nodes in the active plan<br/><br/>Min: `0`. |
| `node-cpu-count` | integer | no | Number of CPUs for each node<br/><br/>Min: `0`. |
| `node-memory` | integer | no | Memory of each node, in bytes<br/><br/>Min: `0`. |
| `node-states` | array of [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-node-state/index.md) | no | State of individual service nodes |
| `notifications` | array of [Service notifications](https://community.exoscale.com/reference/api/_schemas/dbaas-service-notification/index.md) | no | Service notifications |
| `state` | string | no | State of the service<br/><br/>Allowed values: `running`, `rebuilding`, `rebalancing`, `poweroff`. |
| `termination-protection` | boolean | no | Service is protected against termination and powering off |
| `updated-at` | string | no | Service last update timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `uri` | string | no | URI for connecting to the service (may be absent) |
| `uri-params` | object | no | service_uri parameterized into key-value pairs |
| `users` | array of [Users](https://community.exoscale.com/reference/api/_schemas/dbaas-service-mysql/index.md#users) | no | List of service users |
| `version` | string | no | MySQL version |
| `zone` | string | no | The zone where the service is running |

### Connection Info {#connection-info}

MySQL connection information properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `params` | array of [Params](https://community.exoscale.com/reference/api/_schemas/dbaas-service-mysql/index.md#params) | no |  |
| `standby` | array[string] | no |  |
| `uri` | array[string] | no |  |

### Backup Schedule {#backup-schedule}

Backup schedule

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `backup-hour` | integer | no | The hour of day (in UTC) when backup for the service is started. New backup is only started if previous backup has already completed.<br/><br/>Min: `0`. Max: `23`. |
| `backup-minute` | integer | no | The minute of an hour when backup for the service is started. New backup is only started if previous backup has already completed.<br/><br/>Min: `0`. Max: `59`. |

### Prometheus URI {#prometheus-uri}

Prometheus integration URI

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `host` | string | no |  |
| `port` | integer | no | Min: `0`. Max: `65535`. |

### Components {#components}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `component` | string | **yes** | Service component name |
| `host` | string | **yes** | DNS name for connecting to the service component |
| `port` | integer | **yes** | Port number for connecting to the service component<br/><br/>Min: `0`. Max: `65535`. |
| `route` | string | **yes** | Network access route<br/><br/>Allowed values: `dynamic`, `private`, `public`, `privatelink`. |
| `usage` | string | **yes** | DNS usage name<br/><br/>Allowed values: `primary`, `replica`. |

### Users {#users}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `authentication` | string | no |  |
| `password` | string | no |  |
| `type` | string | no |  |
| `username` | string | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-service-name/

---

# DBaaS Service Name

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-service-notification/

---

# DBaaS Service Notification

Service notifications

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `level` | string | **yes** | Notification level<br/><br/>Allowed values: `warning`, `notice`. |
| `message` | string | **yes** | Human notification message<br/><br/>Min length: `1`. Max length: `1024`. |
| `metadata` | object | **yes** | Notification type |
| `type` | string | **yes** | Notification type<br/><br/>Allowed values: `service_powered_off_removal`, `service_end_of_life`. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-service-opensearch/

---

# DBaaS Service Opensearch

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | Service name<br/><br/>Min length: `0`. Max length: `63`. |
| `plan` | string | **yes** | Subscription plan |
| `prometheus-uri` | [Prometheus URI](https://community.exoscale.com/reference/api/_schemas/dbaas-service-opensearch/index.md#prometheus-uri) | **yes** | Prometheus integration URI |
| `type` | string | **yes** | Service type code<br/><br/>Min length: `0`. Max length: `64`. |
| `backups` | array of [List of backups for the service](https://community.exoscale.com/reference/api/_schemas/dbaas-service-backup/index.md) | no | List of backups for the service |
| `components` | array of [Components](https://community.exoscale.com/reference/api/_schemas/dbaas-service-opensearch/index.md#components) | no | Service component information objects |
| `connection-info` | [Connection Info](https://community.exoscale.com/reference/api/_schemas/dbaas-service-opensearch/index.md#connection-info) | no | Opensearch connection information properties |
| `created-at` | string | no | Service creation timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `description` | string | no | DbaaS service description |
| `disk-size` | integer | no | Disk space for data storage, in bytes<br/><br/>Min: `0`. |
| `index-patterns` | array of [Index Patterns](https://community.exoscale.com/reference/api/_schemas/dbaas-service-opensearch/index.md#index-patterns) | no | Allows you to create glob style patterns and set a max number of indexes matching this pattern you want to keep. Creating indexes exceeding this value will cause the oldest one to get deleted. You could for example create a pattern looking like 'logs.?' and then create index logs.1, logs.2 etc, it will delete logs.1 once you create logs.6. Do note 'logs.?' does not apply to logs.10. Note: Setting max_index_count to 0 will do nothing and the pattern gets ignored. |
| `index-template` | [Index Template](https://community.exoscale.com/reference/api/_schemas/dbaas-service-opensearch/index.md#index-template) | no | Template settings for all new indexes |
| `integrations` | array of [DBaaS Integration](https://community.exoscale.com/reference/api/_schemas/dbaas-integration/index.md) | no | Service integrations |
| `ip-filter` | array[string] | no | Allowed CIDR address blocks for incoming connections |
| `keep-index-refresh-interval` | boolean | no | Aiven automation resets index.refresh_interval to default value for every index to be sure that indices are always visible to search. If it doesn't fit your case, you can disable this by setting up this flag to true. |
| `maintenance` | [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-service-maintenance/index.md) | no | Automatic maintenance settings |
| `max-index-count` | integer | no | Maximum number of indexes to keep before deleting the oldest one<br/><br/>Min: `0`. |
| `node-count` | integer | no | Number of service nodes in the active plan<br/><br/>Min: `0`. |
| `node-cpu-count` | integer | no | Number of CPUs for each node<br/><br/>Min: `0`. |
| `node-memory` | integer | no | Memory of each node, in bytes<br/><br/>Min: `0`. |
| `node-states` | array of [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-node-state/index.md) | no | State of individual service nodes |
| `notifications` | array of [Service notifications](https://community.exoscale.com/reference/api/_schemas/dbaas-service-notification/index.md) | no | Service notifications |
| `opensearch-dashboards` | [Opensearch Dashboards](https://community.exoscale.com/reference/api/_schemas/dbaas-service-opensearch/index.md#opensearch-dashboards) | no | OpenSearch Dashboards settings |
| `opensearch-settings` | [OpenSearch settings](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md) | no | OpenSearch-specific settings |
| `state` | string | no | State of the service<br/><br/>Allowed values: `running`, `rebuilding`, `rebalancing`, `poweroff`. |
| `termination-protection` | boolean | no | Service is protected against termination and powering off |
| `updated-at` | string | no | Service last update timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `uri` | string | no | URI for connecting to the service (may be absent) |
| `uri-params` | object | no | service_uri parameterized into key-value pairs |
| `users` | array of [Users](https://community.exoscale.com/reference/api/_schemas/dbaas-service-opensearch/index.md#users) | no | List of service users |
| `version` | string | no | OpenSearch version |
| `zone` | string | no | The zone where the service is running |

### Connection Info {#connection-info}

Opensearch connection information properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `dashboard-uri` | string | no |  |
| `password` | string | no |  |
| `uri` | array[string] | no |  |
| `username` | string | no |  |

### Prometheus URI {#prometheus-uri}

Prometheus integration URI

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `host` | string | no |  |
| `port` | integer | no | Min: `0`. Max: `65535`. |

### Components {#components}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `component` | string | **yes** | Service component name |
| `host` | string | **yes** | DNS name for connecting to the service component |
| `port` | integer | **yes** | Port number for connecting to the service component<br/><br/>Min: `0`. Max: `65535`. |
| `route` | string | **yes** | Network access route<br/><br/>Allowed values: `dynamic`, `private`, `public`, `privatelink`. |
| `usage` | string | **yes** | DNS usage name<br/><br/>Allowed values: `primary`, `replica`. |

### Index Patterns {#index-patterns}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `max-index-count` | integer | no | Maximum number of indexes to keep<br/><br/>Min: `0`. |
| `pattern` | string | no | fnmatch pattern<br/><br/>Max length: `1024`. |
| `sorting-algorithm` | string | no | Deletion sorting algorithm<br/><br/>Allowed values: `alphabetical`, `creation_date`. |

### Index Template {#index-template}

Template settings for all new indexes

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `mapping-nested-objects-limit` | integer | no | The maximum number of nested JSON objects that a single document can contain across all nested types. This limit helps to prevent out of memory errors when a document contains too many nested objects. Default is 10000.<br/><br/>Min: `0`. Max: `100000`. |
| `number-of-replicas` | integer | no | The number of replicas each primary shard has.<br/><br/>Min: `0`. Max: `29`. |
| `number-of-shards` | integer | no | The number of primary shards that an index should have.<br/><br/>Min: `1`. Max: `1024`. |

### Opensearch Dashboards {#opensearch-dashboards}

OpenSearch Dashboards settings

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `enabled` | boolean | no | Enable or disable OpenSearch Dashboards (default: true) |
| `max-old-space-size` | integer | no | Limits the maximum amount of memory (in MiB) the OpenSearch Dashboards process can use. This sets the max_old_space_size option of the nodejs running the OpenSearch Dashboards. Note: the memory reserved by OpenSearch Dashboards is not available for OpenSearch. (default: 128)<br/><br/>Min: `64`. Max: `1024`. |
| `opensearch-request-timeout` | integer | no | Timeout in milliseconds for requests made by OpenSearch Dashboards towards OpenSearch (default: 30000)<br/><br/>Min: `5000`. Max: `120000`. |

### Users {#users}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `password` | string | no |  |
| `type` | string | no |  |
| `username` | string | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-service-pg/

---

# DBaaS Service PG

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | Service name<br/><br/>Min length: `0`. Max length: `63`. |
| `plan` | string | **yes** | Subscription plan |
| `prometheus-uri` | [Prometheus URI](https://community.exoscale.com/reference/api/_schemas/dbaas-service-pg/index.md#prometheus-uri) | **yes** | Prometheus integration URI |
| `type` | string | **yes** | Service type code<br/><br/>Min length: `0`. Max length: `64`. |
| `backup-schedule` | [Backup Schedule](https://community.exoscale.com/reference/api/_schemas/dbaas-service-pg/index.md#backup-schedule) | no | Backup schedule |
| `backups` | array of [List of backups for the service](https://community.exoscale.com/reference/api/_schemas/dbaas-service-backup/index.md) | no | List of backups for the service |
| `components` | array of [Components](https://community.exoscale.com/reference/api/_schemas/dbaas-service-pg/index.md#components) | no | Service component information objects |
| `connection-info` | [Connection Info](https://community.exoscale.com/reference/api/_schemas/dbaas-service-pg/index.md#connection-info) | no | PG connection information properties |
| `connection-pools` | array of [Connection Pools](https://community.exoscale.com/reference/api/_schemas/dbaas-service-pg/index.md#connection-pools) | no | PostgreSQL PGBouncer connection pools |
| `created-at` | string | no | Service creation timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `databases` | array of [DBaaS Database Name](https://community.exoscale.com/reference/api/_schemas/dbaas-database-name/index.md) | no | List of PostgreSQL databases |
| `disk-size` | integer | no | Disk space for data storage, in bytes<br/><br/>Min: `0`. |
| `integrations` | array of [DBaaS Integration](https://community.exoscale.com/reference/api/_schemas/dbaas-integration/index.md) | no | Service integrations |
| `ip-filter` | array[string] | no | Allowed CIDR address blocks for incoming connections |
| `maintenance` | [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-service-maintenance/index.md) | no | Automatic maintenance settings |
| `max-connections` | integer | no | Maximum number of connections allowed to an instance<br/><br/>Min: `0`. |
| `node-count` | integer | no | Number of service nodes in the active plan<br/><br/>Min: `0`. |
| `node-cpu-count` | integer | no | Number of CPUs for each node<br/><br/>Min: `0`. |
| `node-memory` | integer | no | Memory of each node, in bytes<br/><br/>Min: `0`. |
| `node-states` | array of [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-node-state/index.md) | no | State of individual service nodes |
| `notifications` | array of [Service notifications](https://community.exoscale.com/reference/api/_schemas/dbaas-service-notification/index.md) | no | Service notifications |
| `pg-settings` | [postgresql.conf configuration values](https://community.exoscale.com/reference/api/_schemas/json-schema-pg/index.md) | no | PostgreSQL-specific settings |
| `pgaudit-settings` | [System-wide settings for the pgaudit extension.](https://community.exoscale.com/reference/api/_schemas/json-schema-pgaudit/index.md) | no | PGAudit settings |
| `pgbouncer-settings` | [System-wide settings for pgbouncer.](https://community.exoscale.com/reference/api/_schemas/json-schema-pgbouncer/index.md) | no | PGBouncer connection pooling settings |
| `pglookout-settings` | [System-wide settings for pglookout.](https://community.exoscale.com/reference/api/_schemas/json-schema-pglookout/index.md) | no | PGLookout settings |
| `shared-buffers-percentage` | integer | no | Percentage of total RAM that the database server uses for shared memory buffers. Valid range is 20-60 (float), which corresponds to 20% - 60%. This setting adjusts the shared_buffers configuration value.<br/><br/>Min: `20`. Max: `60`. |
| `state` | string | no | State of the service<br/><br/>Allowed values: `running`, `rebuilding`, `rebalancing`, `poweroff`. |
| `synchronous-replication` | string | no | Synchronous replication type. Note that the service plan also needs to support synchronous replication.<br/><br/>Allowed values: `quorum`, `off`. |
| `termination-protection` | boolean | no | Service is protected against termination and powering off |
| `timescaledb-settings` | [System-wide settings for the timescaledb extension](https://community.exoscale.com/reference/api/_schemas/json-schema-timescaledb/index.md) | no | TimescaleDB extension configuration values |
| `updated-at` | string | no | Service last update timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `uri` | string | no | URI for connecting to the service (may be absent) |
| `uri-params` | object | no | service_uri parameterized into key-value pairs |
| `users` | array of [Users](https://community.exoscale.com/reference/api/_schemas/dbaas-service-pg/index.md#users) | no | List of service users |
| `version` | string | no | PostgreSQL version |
| `work-mem` | integer | no | Sets the maximum amount of memory to be used by a query operation (such as a sort or hash table) before writing to temporary disk files, in MB. Default is 1MB + 0.075% of total RAM (up to 32MB).<br/><br/>Min: `1`. Max: `1024`. |
| `zone` | string | no | The zone where the service is running |

### Connection Info {#connection-info}

PG connection information properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `params` | array of [Params](https://community.exoscale.com/reference/api/_schemas/dbaas-service-pg/index.md#params) | no |  |
| `standby` | array[string] | no |  |
| `syncing` | array[string] | no |  |
| `uri` | array[string] | no |  |

### Backup Schedule {#backup-schedule}

Backup schedule

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `backup-hour` | integer | no | The hour of day (in UTC) when backup for the service is started. New backup is only started if previous backup has already completed.<br/><br/>Min: `0`. Max: `23`. |
| `backup-minute` | integer | no | The minute of an hour when backup for the service is started. New backup is only started if previous backup has already completed.<br/><br/>Min: `0`. Max: `59`. |

### Prometheus URI {#prometheus-uri}

Prometheus integration URI

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `host` | string | no |  |
| `port` | integer | no | Min: `0`. Max: `65535`. |

### Connection Pools {#connection-pools}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `connection-uri` | string | **yes** | Connection URI for the DB pool |
| `database` | string | **yes** | Service database name<br/><br/>Min length: `1`. Max length: `40`. |
| `mode` | string | **yes** | PGBouncer pool mode<br/><br/>Allowed values: `transaction`, `statement`, `session`. |
| `name` | string | **yes** | Connection pool name<br/><br/>Min length: `1`. Max length: `63`. |
| `size` | integer | **yes** | Size of PGBouncer's PostgreSQL side connection pool<br/><br/>Min: `1`. Max: `10000`. |
| `username` | string | **yes** | Pool username<br/><br/>Min length: `1`. Max length: `64`. |

### Components {#components}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `component` | string | **yes** | Service component name |
| `host` | string | **yes** | DNS name for connecting to the service component |
| `port` | integer | **yes** | Port number for connecting to the service component<br/><br/>Min: `0`. Max: `65535`. |
| `route` | string | **yes** | Network access route<br/><br/>Allowed values: `dynamic`, `private`, `public`, `privatelink`. |
| `usage` | string | **yes** | DNS usage name<br/><br/>Allowed values: `primary`, `replica`. |

### Users {#users}

List of service users

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `type` | string | **yes** | Account type |
| `username` | string | **yes** | Account username |
| `allow-replication` | boolean | no |  |
| `password` | string | no | Account password. A missing field indicates a user overridden password. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-service-thanos/

---

# DBaaS Service Thanos

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | Service name<br/><br/>Min length: `0`. Max length: `63`. |
| `plan` | string | **yes** | Subscription plan |
| `prometheus-uri` | [Prometheus URI](https://community.exoscale.com/reference/api/_schemas/dbaas-service-thanos/index.md#prometheus-uri) | **yes** | Prometheus integration URI |
| `type` | string | **yes** | Service type code<br/><br/>Min length: `0`. Max length: `64`. |
| `backups` | array of [List of backups for the service](https://community.exoscale.com/reference/api/_schemas/dbaas-service-backup/index.md) | no | List of backups for the service |
| `components` | array of [Components](https://community.exoscale.com/reference/api/_schemas/dbaas-service-thanos/index.md#components) | no | Service component information objects |
| `connection-info` | [Connection Info](https://community.exoscale.com/reference/api/_schemas/dbaas-service-thanos/index.md#connection-info) | no | Thanos connection information properties |
| `created-at` | string | no | Service creation timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `disk-size` | integer | no | Disk space for data storage, in bytes<br/><br/>Min: `0`. |
| `integrations` | array of [DBaaS Integration](https://community.exoscale.com/reference/api/_schemas/dbaas-integration/index.md) | no | Service integrations |
| `ip-filter` | array[string] | no | Allowed CIDR address blocks for incoming connections |
| `maintenance` | [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-service-maintenance/index.md) | no | Automatic maintenance settings |
| `node-count` | integer | no | Number of service nodes in the active plan<br/><br/>Min: `0`. |
| `node-cpu-count` | integer | no | Number of CPUs for each node<br/><br/>Min: `0`. |
| `node-memory` | integer | no | Memory of each node, in bytes<br/><br/>Min: `0`. |
| `node-states` | array of [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-node-state/index.md) | no | State of individual service nodes |
| `notifications` | array of [Service notifications](https://community.exoscale.com/reference/api/_schemas/dbaas-service-notification/index.md) | no | Service notifications |
| `state` | string | no | State of the service<br/><br/>Allowed values: `running`, `rebuilding`, `rebalancing`, `poweroff`. |
| `termination-protection` | boolean | no | Service is protected against termination and powering off |
| `thanos-settings` | [Thanos settings](https://community.exoscale.com/reference/api/_schemas/json-schema-thanos/index.md) | no | Thanos specific settings |
| `updated-at` | string | no | Service last update timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `uri` | string | no | URI for connecting to the service (may be absent) |
| `uri-params` | object | no | service_uri parameterized into key-value pairs |
| `users` | array of [Users](https://community.exoscale.com/reference/api/_schemas/dbaas-service-thanos/index.md#users) | no | List of service users |
| `zone` | string | no | The zone where the service is running |

### Connection Info {#connection-info}

Thanos connection information properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `query-frontend-uri` | string | no |  |
| `query-uri` | string | no |  |
| `receiver-remote-write-uri` | string | no |  |
| `ruler-uri` | string | no |  |

### Prometheus URI {#prometheus-uri}

Prometheus integration URI

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `host` | string | no |  |
| `port` | integer | no | Min: `0`. Max: `65535`. |

### Components {#components}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `component` | string | **yes** | Service component name |
| `host` | string | **yes** | DNS name for connecting to the service component |
| `port` | integer | **yes** | Port number for connecting to the service component<br/><br/>Min: `0`. Max: `65535`. |
| `route` | string | **yes** | Network access route<br/><br/>Allowed values: `dynamic`, `private`, `public`, `privatelink`. |
| `usage` | string | **yes** | DNS usage name<br/><br/>Allowed values: `primary`, `replica`. |
| `ssl` | boolean | no | Whether the endpoint is encrypted or accepts plaintext.              By default endpoints are always encrypted and              this property is only included for service components that may disable encryption. |

### Users {#users}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `password` | string | no |  |
| `type` | string | no |  |
| `username` | string | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-service-type/

---

# DBaaS Service Type

DBaaS service

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `available-versions` | array[string] | no | DbaaS service available versions |
| `default-version` | string | no | DbaaS service default version |
| `description` | string | no | DbaaS service description |
| `name` | string | no | DbaaS service name<br/><br/>Min length: `0`. Max length: `64`. |
| `plans` | array of [DBaaS plan](https://community.exoscale.com/reference/api/_schemas/dbaas-plan/index.md) | no | DbaaS service plans |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-service-type-name/

---

# DBaaS Service Type Name

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-service-update/

---

# DBaaS Service Update

Update waiting to be installed

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `deadline` | string | no | Deadline for installing the update<br/><br/>ISO 8601 date-time. |
| `description` | string | no | Description of the update |
| `start-after` | string | no | The earliest time the update will be automatically applied<br/><br/>ISO 8601 date-time. |
| `start-at` | string | no | The time when the update will be automatically applied<br/><br/>ISO 8601 date-time. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-service-valkey/

---

# DBaaS Service Valkey

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | Service name<br/><br/>Min length: `0`. Max length: `63`. |
| `plan` | string | **yes** | Subscription plan |
| `prometheus-uri` | [Prometheus URI](https://community.exoscale.com/reference/api/_schemas/dbaas-service-valkey/index.md#prometheus-uri) | **yes** | Prometheus integration URI |
| `type` | string | **yes** | Service type code<br/><br/>Min length: `0`. Max length: `64`. |
| `backups` | array of [List of backups for the service](https://community.exoscale.com/reference/api/_schemas/dbaas-service-backup/index.md) | no | List of backups for the service |
| `components` | array of [Components](https://community.exoscale.com/reference/api/_schemas/dbaas-service-valkey/index.md#components) | no | Service component information objects |
| `connection-info` | [Connection Info](https://community.exoscale.com/reference/api/_schemas/dbaas-service-valkey/index.md#connection-info) | no | Valkey connection information properties |
| `created-at` | string | no | Service creation timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `disk-size` | integer | no | Disk space for data storage, in bytes<br/><br/>Min: `0`. |
| `integrations` | array of [DBaaS Integration](https://community.exoscale.com/reference/api/_schemas/dbaas-integration/index.md) | no | Service integrations |
| `ip-filter` | array[string] | no | Allowed CIDR address blocks for incoming connections |
| `maintenance` | [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-service-maintenance/index.md) | no | Automatic maintenance settings |
| `node-count` | integer | no | Number of service nodes in the active plan<br/><br/>Min: `0`. |
| `node-cpu-count` | integer | no | Number of CPUs for each node<br/><br/>Min: `0`. |
| `node-memory` | integer | no | Memory of each node, in bytes<br/><br/>Min: `0`. |
| `node-states` | array of [Automatic maintenance settings](https://community.exoscale.com/reference/api/_schemas/dbaas-node-state/index.md) | no | State of individual service nodes |
| `notifications` | array of [Service notifications](https://community.exoscale.com/reference/api/_schemas/dbaas-service-notification/index.md) | no | Service notifications |
| `state` | string | no | State of the service<br/><br/>Allowed values: `running`, `rebuilding`, `rebalancing`, `poweroff`. |
| `termination-protection` | boolean | no | Service is protected against termination and powering off |
| `updated-at` | string | no | Service last update timestamp (ISO 8601)<br/><br/>ISO 8601 date-time. |
| `uri` | string | no | URI for connecting to the service (may be absent) |
| `uri-params` | object | no | service_uri parameterized into key-value pairs |
| `users` | array of [Users](https://community.exoscale.com/reference/api/_schemas/dbaas-service-valkey/index.md#users) | no | List of service users |
| `valkey-settings` | [Valkey settings](https://community.exoscale.com/reference/api/_schemas/json-schema-valkey/index.md) | no | Valkey-specific settings |
| `version` | string | no | Valkey version |
| `zone` | string | no | The zone where the service is running |

### Connection Info {#connection-info}

Valkey connection information properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `password` | string | no |  |
| `slave` | array[string] | no |  |
| `uri` | array[string] | no |  |

### Prometheus URI {#prometheus-uri}

Prometheus integration URI

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `host` | string | no |  |
| `port` | integer | no | Min: `0`. Max: `65535`. |

### Components {#components}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `component` | string | **yes** | Service component name |
| `host` | string | **yes** | DNS name for connecting to the service component |
| `port` | integer | **yes** | Port number for connecting to the service component<br/><br/>Min: `0`. Max: `65535`. |
| `route` | string | **yes** | Network access route<br/><br/>Allowed values: `dynamic`, `private`, `public`, `privatelink`. |
| `usage` | string | **yes** | DNS usage name<br/><br/>Allowed values: `primary`, `replica`. |
| `ssl` | boolean | no | Whether the endpoint is encrypted or accepts plaintext.              By default endpoints are always encrypted and              this property is only included for service components that may disable encryption. |

### Users {#users}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `access-control` | [Access Control](https://community.exoscale.com/reference/api/_schemas/dbaas-service-valkey/index.md#access-control) | no |  |
| `password` | string | no |  |
| `type` | string | no |  |
| `username` | string | no |  |

### Access Control {#access-control}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `categories` | array[string] | no |  |
| `channels` | array[string] | no |  |
| `commands` | array[string] | no |  |
| `keys` | array[string] | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-task/

---

# DBaaS Task

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `create-time` | string | no | ISO 8601 date-time. |
| `id` | string | no | Must be a valid UUID. |
| `result` | string | no |  |
| `result-codes` | array of [Result Codes](https://community.exoscale.com/reference/api/_schemas/dbaas-task/index.md#result-codes) | no |  |
| `success` | boolean | no |  |
| `task-type` | string | no |  |

### Result Codes {#result-codes}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `code` | string | no |  |
| `dbname` | string | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-user-clickhouse-secrets/

---

# DBaaS User Clickhouse Secrets

ClickHouse User secrets

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `password` | string | no | ClickHouse password |
| `username` | string | no | ClickHouse username |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-user-grafana-secrets/

---

# DBaaS User Grafana Secrets

Grafana User secrets

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `password` | string | no | Grafana password |
| `username` | string | no | Grafana username |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-user-kafka-connect-secrets/

---

# DBaaS User Kafka Connect Secrets

Kafka Connect secrets

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `password` | string | no | Kafka Connect password |
| `username` | string | no | Kafka Connect username |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-user-kafka-secrets/

---

# DBaaS User Kafka Secrets

Kafka User secrets

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `access-cert` | string | no | Kafka certificate |
| `access-cert-expiry` | string | no | ISO 8601 date-time. |
| `access-key` | string | no | Kafka access key |
| `password` | string | no | Kafka password |
| `username` | string | no | Kafka username |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-user-mysql-secrets/

---

# DBaaS User Mysql Secrets

MySQL User secrets

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `password` | string | no | MySQL password |
| `username` | string | no | MySQL username |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-user-opensearch-secrets/

---

# DBaaS User Opensearch Secrets

Opensearch User secrets

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `password` | string | no | Opensearch password |
| `username` | string | no | Opensearch username |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-user-password/

---

# DBaaS User Password

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-user-postgres-secrets/

---

# DBaaS User Postgres Secrets

Postgres User secrets

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `password` | string | no | Postgres password |
| `username` | string | no | Postgres username |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-user-thanos-secrets/

---

# DBaaS User Thanos Secrets

Thanos User secrets

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `password` | string | no | Thanos password |
| `username` | string | no | Thanos username |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-user-username/

---

# DBaaS User Username

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-user-valkey-secrets/

---

# DBaaS User Valkey Secrets

Valkey User secrets

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `password` | string | no | Valkey password |
| `username` | string | no | Valkey username |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-valkey-user/

---

# DBaaS Valkey User

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `username` | string | **yes** | Username<br/><br/>Min length: `1`. Max length: `64`. |
| `access-control` | [DBaaS Valkey User Access Control](https://community.exoscale.com/reference/api/_schemas/dbaas-valkey-user-access-control/index.md) | no |  |
| `type` | string | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-valkey-user-access-control/

---

# DBaaS Valkey User Access Control

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `categories` | array[string] | no | Use +@<category> to allow and -@<category> to disallow. Separate entries with a single space. Example: +@all -@dangerous. |
| `channels` | array[string] | no | Patterns use standard glob syntax and must be separated by a single space. Example: ~* &events. |
| `commands` | array[string] | no | Use +<command> to allow and -<command> to disallow. You can also use @<category>. Separate entries with a single space. Example: +@all -flushall. |
| `keys` | array[string] | no | Patterns use standard glob syntax and must be separated by a single space. Example: cache:* session:*. |

---

url: https://community.exoscale.com/reference/api/_schemas/dbaas-valkey-users/

---

# DBaaS Valkey Users

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `users` | array of [DBaaS Valkey User](https://community.exoscale.com/reference/api/_schemas/dbaas-valkey-user/index.md) | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/decrypt-request/

---

# Decrypt Request

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `ciphertext` | string | **yes** | The Base64-encoded ciphertext payload to be decrypted.<br/><br/>Base64-encoded string. |
| `encryption-algorithm` | string | no | The encryption algorithm this key must use. Validated against the key's actual cryptographic profile. Required for asymmetric keys. Symmetric keys use AES_256 when it is omitted.<br/><br/>Allowed values: `AES_256`, `RSAES_OAEP_SHA_256`. |
| `encryption-context` | string | no | The exact Base64-encoded Additional Authenticated Data (AAD) used during encryption to verify data integrity.<br/><br/>Base64-encoded string. |

---

url: https://community.exoscale.com/reference/api/_schemas/decrypt-response/

---

# Decrypt Response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `encryption-algorithm` | string | **yes** | The encryption algorithm that was used to decrypt this ciphertext.<br/><br/>Allowed values: `AES_256`, `RSAES_OAEP_SHA_256`. |
| `plaintext` | string | **yes** | The recovered Base64-encoded original plaintext payload.<br/><br/>Base64-encoded string. |

---

url: https://community.exoscale.com/reference/api/_schemas/delete-model-conflict-response/

---

# Delete Model Conflict Response

Model is in use: deletion forbidden

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `deployments` | array[string] | no | Deployments using models |

---

url: https://community.exoscale.com/reference/api/_schemas/deploy-target/

---

# Deploy Target

Deploy target

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | **yes** | Deploy Target ID<br/><br/>Must be a valid UUID. |
| `description` | string | no | Deploy Target description<br/><br/>Max length: `255`. |
| `name` | string | no | Deploy Target name<br/><br/>Min length: `1`. Max length: `255`. |
| `type` | string | no | Deploy Target type<br/><br/>Allowed values: `edge`, `dedicated`. |

---

url: https://community.exoscale.com/reference/api/_schemas/deploy-target-ref/

---

# Deploy Target Ref

Deploy target reference

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | Deploy target ID<br/><br/>Must be a valid UUID. |

---

url: https://community.exoscale.com/reference/api/_schemas/disable-kms-key-rotation-response/

---

# Disable Kms Key Rotation Response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `rotation` | [Key Rotation Config](https://community.exoscale.com/reference/api/_schemas/key-rotation-config/index.md) | **yes** |  |

---

url: https://community.exoscale.com/reference/api/_schemas/dns-domain/

---

# DNS Domain

DNS domain

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `created-at` | string | no | DNS domain creation date<br/><br/>ISO 8601 date-time. |
| `id` | string | no | DNS domain ID<br/><br/>Must be a valid UUID. |
| `unicode-name` | string | no | DNS domain unicode name<br/><br/>Min length: `1`. Max length: `255`. |

---

url: https://community.exoscale.com/reference/api/_schemas/dns-domain-record/

---

# DNS Domain Record

DNS domain record

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `content` | string | no | DNS domain record content |
| `created-at` | string | no | DNS domain record creation date<br/><br/>ISO 8601 date-time. |
| `id` | string | no | DNS domain record ID<br/><br/>Must be a valid UUID. |
| `name` | string | no | DNS domain record name |
| `priority` | integer | no | DNS domain record priority<br/><br/>Min: `0`. |
| `system-record` | boolean | no | DNS domain record system status |
| `ttl` | integer | no | DNS domain record TTL<br/><br/>Min: `0`. |
| `type` | string | no | DNS domain record type<br/><br/>Allowed values: `NS`, `CAA`, `NAPTR`, `POOL`, `A`, `HINFO`, `CNAME`, `SOA`, `SSHFP`, `SRV`, `AAAA`, `MX`, `TXT`, `ALIAS`, `URL`, `SPF`. |
| `updated-at` | string | no | DNS domain record update date<br/><br/>ISO 8601 date-time. |

---

url: https://community.exoscale.com/reference/api/_schemas/domain-name/

---

# Domain Name

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/elastic-ip/

---

# Elastic IP

Elastic IP

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `addressfamily` | string | no | Elastic IP address family<br/><br/>Allowed values: `inet4`, `inet6`. |
| `cidr` | string | no | Elastic IP cidr |
| `description` | string | no | Elastic IP description<br/><br/>Max length: `255`. |
| `healthcheck` | [Elastic IP address healthcheck](https://community.exoscale.com/reference/api/_schemas/elastic-ip-healthcheck/index.md) | no | Elastic IP healthcheck |
| `id` | string | no | Elastic IP ID<br/><br/>Must be a valid UUID. |
| `ip` | string | no | Elastic IP address |
| `labels` | object | no | Resource labels |

---

url: https://community.exoscale.com/reference/api/_schemas/elastic-ip-healthcheck/

---

# Elastic IP Healthcheck

Elastic IP address healthcheck

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `mode` | string | **yes** | Health check mode<br/><br/>Allowed values: `tcp`, `http`, `https`. |
| `port` | integer | **yes** | Health check port<br/><br/>Min: `1`. Max: `65535`. |
| `interval` | integer | no | Interval between the checks in seconds (default: 10)<br/><br/>Min: `5`. Max: `300`. |
| `strikes-fail` | integer | no | Number of attempts before considering the target unhealthy (default: 3)<br/><br/>Min: `1`. Max: `20`. |
| `strikes-ok` | integer | no | Number of attempts before considering the target healthy (default: 2)<br/><br/>Min: `1`. Max: `20`. |
| `timeout` | integer | no | Health check timeout value in seconds (default: 2)<br/><br/>Min: `2`. Max: `60`. |
| `tls-skip-verify` | boolean | no | Skip TLS verification |
| `tls-sni` | string | no | An optional domain or subdomain to check TLS against<br/><br/>Min length: `1`. Max length: `255`. |
| `uri` | string | no | An endpoint to use for the health check, for example '/status'<br/><br/>Min length: `1`. Max length: `255`. |

---

url: https://community.exoscale.com/reference/api/_schemas/elastic-ip-ref/

---

# Elastic IP Ref

Elastic IP reference

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | Elastic IP ID<br/><br/>Must be a valid UUID. |

---

url: https://community.exoscale.com/reference/api/_schemas/enable-kms-key-rotation-request/

---

# Enable Kms Key Rotation Request

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `rotation-period` | integer | no | The number of days between each automatic key rotation.<br/><br/>Min: `90`. Max: `2560`. Default: `365`. |

---

url: https://community.exoscale.com/reference/api/_schemas/enable-kms-key-rotation-response/

---

# Enable Kms Key Rotation Response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `rotation` | [Key Rotation Config](https://community.exoscale.com/reference/api/_schemas/key-rotation-config/index.md) | **yes** |  |

---

url: https://community.exoscale.com/reference/api/_schemas/encrypt-request/

---

# Encrypt Request

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `plaintext` | string | **yes** | The Base64-encoded plaintext data you wish to encrypt.<br/><br/>Base64-encoded string. |
| `encryption-algorithm` | string | no | The encryption algorithm this key must use. Validated against the key's actual cryptographic profile. Required for asymmetric keys. Symmetric keys use AES_256 when it is omitted.<br/><br/>Allowed values: `AES_256`, `RSAES_OAEP_SHA_256`. |
| `encryption-context` | string | no | Base64-encoded bytes to be used as the Additional Authenticated Data (AAD) for encryption integrity.<br/><br/>Base64-encoded string. |

---

url: https://community.exoscale.com/reference/api/_schemas/encrypt-response/

---

# Encrypt Response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `ciphertext` | string | **yes** | The resulting Base64-encoded ciphertext after encryption.<br/><br/>Base64-encoded string. |
| `encryption-algorithm` | string | **yes** | The encryption algorithm that was used to encrypt this plaintext.<br/><br/>Allowed values: `AES_256`, `RSAES_OAEP_SHA_256`. |

---

url: https://community.exoscale.com/reference/api/_schemas/enum-component-route/

---

# Enum Component Route

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/enum-component-usage/

---

# Enum Component Usage

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/enum-datadog-site/

---

# Enum Datadog Site

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/enum-external-endpoint-types/

---

# Enum External Endpoint Types

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/enum-integration-types/

---

# Enum Integration Types

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/enum-kafka-auth-method/

---

# Enum Kafka Auth Method

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/enum-migration-method/

---

# Enum Migration Method

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/enum-migration-status/

---

# Enum Migration Status

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/enum-mysql-authentication-plugin/

---

# Enum Mysql Authentication Plugin

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/enum-opensearch-rule-permission/

---

# Enum Opensearch Rule Permission

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/enum-pg-pool-mode/

---

# Enum PG Pool Mode

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/enum-pg-synchronous-replication/

---

# Enum PG Synchronous Replication

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/enum-pg-variant/

---

# Enum PG Variant

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/enum-rsyslog-format/

---

# Enum Rsyslog Format

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/enum-service-state/

---

# Enum Service State

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/enum-sort-order/

---

# Enum Sort Order

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/error-response/

---

# Error Response

RFC 9457 Problem Details error response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `detail` | string | **yes** | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | **yes** | Min: `100`. Max: `599`. |
| `title` | string | **yes** | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | **yes** | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/event/

---

# Event

A notable Mutation Event which happened on the infrastructure

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `body-params` | object | no | Body parameters (free form map) |
| `elapsed-ms` | integer | no | Operation processing time<br/><br/>Min: `0`. |
| `get-params` | object | no | Query string parameters (free form map) |
| `handler` | string | no | Operation handler name |
| `iam-api-key` | [IAM API Key](https://community.exoscale.com/reference/api/_schemas/iam-api-key/index.md) | no | Details about the IAM API Key |
| `iam-role` | [IAM Role](https://community.exoscale.com/reference/api/_schemas/iam-role/index.md) | no | Details about the IAM Role |
| `iam-user` | [User](https://community.exoscale.com/reference/api/_schemas/user/index.md) | no | Details about the IAM User |
| `message` | string | no | Operation message |
| `path-params` | object | no | URI path parameters (free form map) |
| `request-id` | string | no | Operation unique identifier |
| `source-ip` | string | no | Client IP address |
| `status` | integer | no | Operation HTTP status<br/><br/>Min: `0`. |
| `timestamp` | string | no | Time at which the event happened, millisecond resolution<br/><br/>ISO 8601 date-time. |
| `uri` | string | no | Operation request URI |
| `zone` | string | no | Operation targeted zone |

---

url: https://community.exoscale.com/reference/api/_schemas/focus-report/

---

# Focus Report

Focus report download URL

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `expires_in` | integer | no | URL expiration in seconds<br/><br/>Min: `0`. |
| `presigned_url` | string | no | Focus report presigned URL |

---

url: https://community.exoscale.com/reference/api/_schemas/generate-data-key-request/

---

# Generate Data Key Request

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `bytes-count` | integer | no | Min: `1`. Max: `1024`. |
| `encryption-context` | string | no | Base64-encoded Additional Authenticated Data binding key generation parameters securely to operational scope.<br/><br/>Base64-encoded string. |
| `key-spec` | string | no | Allowed values: `AES-256`. |

---

url: https://community.exoscale.com/reference/api/_schemas/generate-data-key-response/

---

# Generate Data Key Response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `ciphertext` | string | **yes** | The identical symmetric data key, returned safely wrapped/encrypted using the designated root parent KMS key.<br/><br/>Base64-encoded string. |
| `plaintext` | string | **yes** | The Base64-encoded raw symmetric data key payload. Expose only securely during active application setups.<br/><br/>Base64-encoded string. |

---

url: https://community.exoscale.com/reference/api/_schemas/get-ai-api-key-response/

---

# Get AI API Key Response

Get AI API key response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `all-deployments` | boolean | **yes** | True when the key has access to all deployments of the organization. |
| `all-models` | boolean | **yes** | True when the key has access to all public models. |
| `created-at` | string | **yes** | Creation timestamp<br/><br/>ISO 8601 date-time. |
| `deployments` | array of [AI API Key Deployment Ref](https://community.exoscale.com/reference/api/_schemas/ai-api-key-deployment-ref/index.md) | **yes** |  |
| `id` | string | **yes** | AI API key ID<br/><br/>Must be a valid UUID. |
| `models` | array[string] | **yes** |  |
| `name` | string | **yes** | Human-readable name for the AI API key |
| `revoked-at` | string | null | **yes** | Revocation timestamp. Null when the API key is active.<br/><br/>ISO 8601 date-time. |
| `updated-at` | string | **yes** | Last update timestamp<br/><br/>ISO 8601 date-time. |

---

url: https://community.exoscale.com/reference/api/_schemas/get-deployment-logs-entry/

---

# Get Deployment Logs Entry

A single log entry

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `message` | string | **yes** | Log message content |
| `node` | string | **yes** | Node identifier |
| `time` | string | **yes** | Timestamp of the log entry<br/><br/>ISO 8601 date-time. |

---

url: https://community.exoscale.com/reference/api/_schemas/get-deployment-logs-response/

---

# Get Deployment Logs Response

Deployment logs

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `logs` | array of [A single log entry](https://community.exoscale.com/reference/api/_schemas/get-deployment-logs-entry/index.md) | **yes** | List of log entries |

---

url: https://community.exoscale.com/reference/api/_schemas/get-deployment-response/

---

# Get Deployment Response

AI deployment

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `deployment-url` | string | **yes** | Deployment inference endpoint URL |
| `model` | [Model reference. Provide either id or name.](https://community.exoscale.com/reference/api/_schemas/model-ref/index.md) | **yes** |  |
| `name` | string | **yes** | Deployment name<br/><br/>Min length: `1`. |
| `state` | string | **yes** | Deployment state<br/><br/>Allowed values: `ready`, `creating`, `preparing`, `error`, `deploying`, `scaling`, `updating`. |
| `created-at` | string | no | Creation time<br/><br/>ISO 8601 date-time. |
| `gpu-count` | integer | no | Number of GPUs<br/><br/>Min: `1`. |
| `gpu-type` | string | no | GPU type family<br/><br/>Min length: `1`. |
| `id` | string | no | Deployment ID<br/><br/>Must be a valid UUID. |
| `inference-engine-parameters` | array[string] | no | Optional extra inference engine server CLI args |
| `inference-engine-version` | string | no | Allowed values: `0.12.0`, `0.15.1`, `0.16.0`, `0.17.0`, `0.18.0`, `0.18.1`, `0.19.0`, `0.19.1`, `0.20.0`, `0.20.1`, `0.20.2`, `0.21.0`, `0.22.0`, `0.22.1`, `0.23.0`, `0.24.0`, `0.25.0`, `0.25.1`, `0.26.0`, `0.27.0`, `0.27.1`, `0.28.0`, `0.29.0`, `0.30.0`, `0.31.0`.<br/><br/>Default: `0.31.0`. |
| `replicas` | integer | no | Number of replicas (>=0)<br/><br/>Min: `0`. |
| `service-level` | string | no | Service level<br/><br/>Min length: `1`. |
| `state-details` | string | no | Deployment state details |
| `updated-at` | string | no | Update time<br/><br/>ISO 8601 date-time. |

---

url: https://community.exoscale.com/reference/api/_schemas/get-inference-engine-help-response/

---

# Get Inference Engine Help Response

List of allowed inference-engine parameters

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `parameters` | array of [inference-engine parameter definition](https://community.exoscale.com/reference/api/_schemas/inference-engine-parameter-entry/index.md) | **yes** |  |

---

url: https://community.exoscale.com/reference/api/_schemas/get-key-store-response/

---

# Get Key Store Response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `created-at` | string | no | The creation timestamp.<br/><br/>ISO 8601 date-time. |
| `description` | string | no | An optional detailed description providing additional context about the key store's intended use case. |
| `health` | [Key Store Health](https://community.exoscale.com/reference/api/_schemas/key-store-health/index.md) | no |  |
| `id` | string | no | The globally unique identifier assigned to the key store.<br/><br/>Must be a valid UUID. |
| `name` | string | no | The display name assigned to the key store. |
| `proxy` | [Key Store Proxy Response](https://community.exoscale.com/reference/api/_schemas/key-store-proxy-response/index.md) | no |  |
| `status` | string | no | The current connection status of the key store.<br/><br/>Allowed values: `connected`, `disconnected`. |
| `status-since` | string | no | The timestamp indicating when the current key store status last transitioned.<br/><br/>ISO 8601 date-time. |
| `type` | string | no | The key store type.<br/><br/>Allowed values: `external-key-store`. |

---

url: https://community.exoscale.com/reference/api/_schemas/get-kms-key-response/

---

# Get Kms Key Response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `created-at` | string | **yes** | The UTC timestamp showing when the KMS key was originally provisioned.<br/><br/>ISO 8601 date-time. |
| `id` | string | **yes** | The globally unique identifier (UUID) of the retrieved KMS key.<br/><br/>Must be a valid UUID. |
| `key-spec` | string | **yes** | The cryptographic key specification used to generate the key, defining its algorithm and, for asymmetric keys, its curve or modulus size. |
| `material` | [Key Material](https://community.exoscale.com/reference/api/_schemas/key-material/index.md) | **yes** |  |
| `multi-zone` | boolean | **yes** | True if this is a multi-zone key. |
| `name` | string | **yes** | The display name of the KMS key. |
| `origin-zone` | string | **yes** | The creation zone of the KMS key. |
| `revision` | [Revision Stamp](https://community.exoscale.com/reference/api/_schemas/revision-stamp/index.md) | **yes** |  |
| `rotation` | [Key Rotation Config](https://community.exoscale.com/reference/api/_schemas/key-rotation-config/index.md) | **yes** |  |
| `source` | string | **yes** | Indicates the source of the key material, either generated and held within Exoscale KMS, or backed by an external key store.<br/><br/>Allowed values: `exoscale-kms`, `external-key-store`. |
| `status` | string | **yes** | Allowed values: `enabled`, `disabled`, `pending-deletion`. |
| `status-since` | string | **yes** | The timestamp indicating exactly when the current key status was last transitioned.<br/><br/>ISO 8601 date-time. |
| `usage` | string | **yes** | The cryptographic operation constraints allowed on this key. |
| `delete-at` | string | no | ISO 8601 date-time. |
| `description` | string | no | An optional detailed description providing additional context about the key's intended use case. |
| `replicas` | array[string] | no | A list of availability zones where this specific key has active replica mirrors. |
| `replicas-status` | array of [Replica State](https://community.exoscale.com/reference/api/_schemas/replica-state/index.md) | no | Detailed synchronization metrics for each regional replica mirror. |
| `xks` | [Xks Key](https://community.exoscale.com/reference/api/_schemas/xks-key/index.md) | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/get-model-response/

---

# Get Model Response

AI model

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `created-at` | string | **yes** | Creation time<br/><br/>ISO 8601 date-time. |
| `id` | string | **yes** | Model ID<br/><br/>Must be a valid UUID. |
| `model-size` | integer | **yes** | Model size in bytes<br/><br/>Min: `0`. |
| `name` | string | **yes** | Model name<br/><br/>Min length: `1`. |
| `state` | string | **yes** | Model state<br/><br/>Allowed values: `ready`, `creating`, `downloading`, `error`, `created`. |
| `updated-at` | string | **yes** | Update time<br/><br/>ISO 8601 date-time. |
| `deprecation-date` | string | null | no | Model deprecation date<br/><br/>ISO 8601 date-time. |
| `lifecycle-status` | string | null | no | Model lifecycle state<br/><br/>Allowed values: `preview`, `active`, `deprecated`, `eol`, `null`. |
| `visibility` | string | no | Model visibility<br/><br/>Allowed values: `private`, `public`. |

---

url: https://community.exoscale.com/reference/api/_schemas/get-public-key-response/

---

# Get Public Key Response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `key-id` | string | no | The UUID of the KMS key the public key material belongs to.<br/><br/>Must be a valid UUID. |
| `key-spec` | string | no | The cryptographic key specification of the key pair, defining its algorithm and curve. |
| `public-key` | string | no | The Base64-encoded X.509 SubjectPublicKeyInfo (SPKI) DER encoding of the key's public key.<br/><br/>Base64-encoded string. |
| `usage` | string | no | The usage of the key pair, either `encrypt-decrypt` or `sign-verify`. |

---

url: https://community.exoscale.com/reference/api/_schemas/iam-api-key/

---

# IAM API Key

IAM API Key

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `created-at` | string | no | IAM API Key creation timestamp<br/><br/>ISO 8601 date-time. |
| `key` | string | no | IAM API Key |
| `name` | string | no | IAM API Key name |
| `role-id` | string | no | IAM API Key Role ID<br/><br/>Must be a valid UUID. |

---

url: https://community.exoscale.com/reference/api/_schemas/iam-api-key-created/

---

# IAM API Key Created

IAM API Key

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `created-at` | string | no | IAM API Key creation timestamp<br/><br/>ISO 8601 date-time. |
| `key` | string | no | IAM API Key |
| `name` | string | no | IAM API Key name |
| `role-id` | string | no | IAM API Key Role ID<br/><br/>Must be a valid UUID. |
| `secret` | string | no | IAM API Key Secret |

---

url: https://community.exoscale.com/reference/api/_schemas/iam-assume-role-policy/

---

# IAM Assume Role Policy

Assume Role Policy

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `rules` | array of [IAM Service Policy Rule](https://community.exoscale.com/reference/api/_schemas/iam-service-policy-rule/index.md) | no | IAM Assume Role Policy rules |

---

url: https://community.exoscale.com/reference/api/_schemas/iam-policy/

---

# IAM Policy

Policy

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `default-service-strategy` | string | **yes** | IAM default service strategy<br/><br/>Allowed values: `allow`, `deny`. |
| `services` | object | **yes** | IAM services |

---

url: https://community.exoscale.com/reference/api/_schemas/iam-role/

---

# IAM Role

IAM Role

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `assume-role-policy` | [Assume Role Policy](https://community.exoscale.com/reference/api/_schemas/iam-assume-role-policy/index.md) | no | IAM Assume Role Policy |
| `description` | string | no | IAM Role description<br/><br/>Min length: `1`. Max length: `255`. |
| `editable` | boolean | no | IAM Role mutability |
| `id` | string | no | IAM Role ID<br/><br/>Must be a valid UUID. |
| `labels` | object | no | IAM Role Labels |
| `max-session-ttl` | integer | no | Maximum TTL requester is allowed to ask for when assuming a role<br/><br/>Min: `0`. |
| `name` | string | no | IAM Role name<br/><br/>Min length: `1`. Max length: `255`. |
| `permissions` | array[string] | no | IAM Role permissions |
| `policy` | [Policy](https://community.exoscale.com/reference/api/_schemas/iam-policy/index.md) | no | IAM Role Policy |

---

url: https://community.exoscale.com/reference/api/_schemas/iam-service-policy/

---

# IAM Service Policy

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `rules` | array of [IAM Service Policy Rule](https://community.exoscale.com/reference/api/_schemas/iam-service-policy-rule/index.md) | no |  |
| `type` | string | no | Allowed values: `rules`, `allow`, `deny`. |

---

url: https://community.exoscale.com/reference/api/_schemas/iam-service-policy-rule/

---

# IAM Service Policy Rule

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `action` | string | no | Allowed values: `allow`, `deny`. |
| `expression` | string | no |  |
| `resources` | array[string] | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/iam-system-role/

---

# IAM System Role

IAM System Role

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `assume-role-policy` | [Assume Role Policy](https://community.exoscale.com/reference/api/_schemas/iam-assume-role-policy/index.md) | no | IAM Assume System Role Policy |
| `description` | string | no | IAM System Role description<br/><br/>Min length: `1`. Max length: `255`. |
| `editable` | boolean | no | IAM System Role mutability |
| `id` | string | no | IAM System Role ID<br/><br/>Must be a valid UUID. |
| `labels` | object | no | IAM System Role Labels |
| `max-session-ttl` | integer | no | Maximum TTL requester is allowed to ask for when assuming a system role<br/><br/>Min: `0`. |
| `name` | string | no | IAM System Role name<br/><br/>Min length: `1`. Max length: `255`. |
| `permissions` | array[string] | no | IAM System Role permissions |
| `policy` | [Policy](https://community.exoscale.com/reference/api/_schemas/iam-policy/index.md) | no | IAM System Role Policy |

---

url: https://community.exoscale.com/reference/api/_schemas/impact-breakdown/

---

# Impact Breakdown

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `impact` | object | **yes** |  |
| `zones` | object | **yes** |  |

---

url: https://community.exoscale.com/reference/api/_schemas/impact-error-response/

---

# Impact Error Response

Error response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `detail` | string | **yes** |  |
| `status` | integer | **yes** | Min: `100`. Max: `599`. |
| `title` | string | **yes** |  |

---

url: https://community.exoscale.com/reference/api/_schemas/impact-resource-tree-node/

---

# Impact Resource Tree Node

Hierarchical breakdown of impact for a given level in the catalog tree

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `impact` | object | **yes** |  |
| `resources` | object | **yes** |  |
| `usage` | [Impact Value With Unit](https://community.exoscale.com/reference/api/_schemas/impact-value-with-unit/index.md) | **yes** |  |

---

url: https://community.exoscale.com/reference/api/_schemas/impact-value-with-unit/

---

# Impact Value With Unit

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `unit` | string | **yes** |  |
| `value` | number | **yes** | Format: `double`. |

---

url: https://community.exoscale.com/reference/api/_schemas/inference-engine-parameter-entry/

---

# Inference Engine Parameter Entry

inference-engine parameter definition

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `allowed-values` | array[string] | no | Allowed values |
| `default` | string | no | Default value if nothing is specified |
| `description` | string | no | Parameter description |
| `flags` | array[string] | no | Flag name |
| `name` | string | no | Parameter name |
| `section` | string | no | Section |
| `type` | string | no | Parameter type |

---

url: https://community.exoscale.com/reference/api/_schemas/inference-engine-version/

---

# Inference Engine Version

Inference engine version

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/instance/

---

# Instance

Instance

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `anti-affinity-groups` | array of [Anti-affinity group reference](https://community.exoscale.com/reference/api/_schemas/anti-affinity-group-ref/index.md) | no | Instance Anti-affinity Groups |
| `application-consistent-snapshot-enabled` | boolean | no | Indicates if the instance will take application-consistent snapshots |
| `created-at` | string | no | Instance creation date<br/><br/>ISO 8601 date-time. |
| `deploy-target` | [Deploy target reference](https://community.exoscale.com/reference/api/_schemas/deploy-target-ref/index.md) | no | Instance Deploy Target |
| `disk-encrypted` | boolean | no | Indicates if the root volume of the instance is encrypted |
| `disk-size` | integer | no | Instance disk size in GiB<br/><br/>Min: `10`. Max: `51200`. |
| `elastic-ips` | array of [Elastic IP reference](https://community.exoscale.com/reference/api/_schemas/elastic-ip-ref/index.md) | no | Instance Elastic IPs |
| `id` | string | no | Instance ID<br/><br/>Must be a valid UUID. |
| `instance-type` | [Compute instance type](https://community.exoscale.com/reference/api/_schemas/instance-type/index.md) | no | Instance Type |
| `ip-forwarding` | boolean | no | VPC ip forwarding |
| `ipv6-address` | string | no | Instance IPv6 address |
| `labels` | object | no | Resource labels |
| `mac-address` | string | no | Instance MAC address |
| `manager` | [Resource manager](https://community.exoscale.com/reference/api/_schemas/manager/index.md) | no | Instance manager |
| `name` | string | no | Instance name<br/><br/>Min length: `1`. Max length: `255`. |
| `private-networks` | array of [Private Networks](https://community.exoscale.com/reference/api/_schemas/instance/index.md#private-networks) | no | Instance Private Networks |
| `public-ip` | string | no | Instance public IPv4 address<br/><br/>Must be a valid IPv4 address. |
| `public-ip-assignment` | string | no | Instance public IP assignment<br/><br/>Allowed values: `inet4`, `dual`, `none`. |
| `secureboot-enabled` | boolean | no | Indicates if the instance has secure boot enabled |
| `security-groups` | array of [Security group reference](https://community.exoscale.com/reference/api/_schemas/security-group-ref/index.md) | no | Instance Security Groups |
| `snapshots` | array of [Snapshot reference](https://community.exoscale.com/reference/api/_schemas/snapshot-ref/index.md) | no | Instance Snapshots |
| `ssh-key` | [SSH key](https://community.exoscale.com/reference/api/_schemas/ssh-key/index.md) | no | Instance SSH Key |
| `ssh-keys` | array of [SSH key](https://community.exoscale.com/reference/api/_schemas/ssh-key/index.md) | no | Instance SSH Keys |
| `state` | string | no | Instance state<br/><br/>Allowed values: `expunging`, `starting`, `destroying`, `running`, `stopping`, `stopped`, `migrating`, `error`, `destroyed`. |
| `template` | [Instance template](https://community.exoscale.com/reference/api/_schemas/template/index.md) | no | Instance Template |
| `tpm-enabled` | boolean | no | Indicates if the instance has tpm enabled |
| `user-data` | string | no | Instance Cloud-init user-data (base64 encoded)<br/><br/>Min length: `1`. |
| `vpc` | [Vpc](https://community.exoscale.com/reference/api/_schemas/instance/index.md#vpc) | no | VPC |

### Private Networks {#private-networks}

Private Network

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | Private Network ID<br/><br/>Must be a valid UUID. |
| `mac-address` | string | no | Private Network MAC address |

### Vpc {#vpc}

VPC

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | VPC ID<br/><br/>Must be a valid UUID. |
| `name` | string | no | VPC name |
| `subnets` | array of [Subnets](https://community.exoscale.com/reference/api/_schemas/instance/index.md#subnets) | no | Instances attached to the subnet |

### Subnets {#subnets}

VPC subnet

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | VPC subnet ID<br/><br/>Must be a valid UUID. |
| `ipv4` | string | no | Instance Subnet ipv4 address<br/><br/>Must be a valid IPv4 address. |
| `name` | string | no | VPC subnet name |

---

url: https://community.exoscale.com/reference/api/_schemas/instance-password/

---

# Instance Password

Instance password

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `password` | string | no | Password |

---

url: https://community.exoscale.com/reference/api/_schemas/instance-pool/

---

# Instance Pool

Instance Pool

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `anti-affinity-groups` | array of [Anti-affinity group reference](https://community.exoscale.com/reference/api/_schemas/anti-affinity-group-ref/index.md) | no | Instance Pool Anti-affinity Groups |
| `application-consistent-snapshot-enabled` | boolean | no | Enable application consistent snapshots |
| `deploy-target` | [Deploy target reference](https://community.exoscale.com/reference/api/_schemas/deploy-target-ref/index.md) | no | Instance Pool Deploy Target |
| `description` | string | no | Instance Pool description<br/><br/>Min length: `1`. Max length: `255`. |
| `disk-size` | integer | no | Instances disk size in GiB<br/><br/>Min: `10`. Max: `51200`. |
| `elastic-ips` | array of [Elastic IP reference](https://community.exoscale.com/reference/api/_schemas/elastic-ip-ref/index.md) | no | Instances Elastic IPs |
| `error-reason` | [Error Reason](https://community.exoscale.com/reference/api/_schemas/instance-pool/index.md#error-reason) | no | Instance Pool Error Reason |
| `id` | string | no | Instance Pool ID<br/><br/>Must be a valid UUID. |
| `instance-prefix` | string | no | The instances created by the Instance Pool will be prefixed with this value (default: pool)<br/><br/>Min length: `1`. Max length: `30`. |
| `instance-type` | [Instance type reference](https://community.exoscale.com/reference/api/_schemas/instance-type-ref/index.md) | no | Instances type |
| `instances` | array of [Target Instance](https://community.exoscale.com/reference/api/_schemas/instance-ref/index.md) | no | Instances |
| `ipv6-enabled` | boolean | no | Enable IPv6 for instances |
| `labels` | object | no | Instance Pool Labels |
| `manager` | [Resource manager](https://community.exoscale.com/reference/api/_schemas/manager/index.md) | no | Instance Pool manager |
| `min-available` | integer | no | Minimum number of running instances<br/><br/>Min: `0`. |
| `name` | string | no | Instance Pool name<br/><br/>Min length: `1`. Max length: `255`. |
| `private-networks` | array of [Private network reference](https://community.exoscale.com/reference/api/_schemas/private-network-ref/index.md) | no | Instance Pool Private Networks |
| `public-ip-assignment` | string | no | Instance Pool public IP assignment<br/><br/>Allowed values: `inet4`, `dual`, `none`. |
| `security-groups` | array of [Security group reference](https://community.exoscale.com/reference/api/_schemas/security-group-ref/index.md) | no | Instance Pool Security Groups |
| `size` | integer | no | Number of instances<br/><br/>Min: `0`. |
| `ssh-key` | [SSH key reference](https://community.exoscale.com/reference/api/_schemas/ssh-key-ref/index.md) | no | Instances SSH key |
| `ssh-keys` | array of [SSH key reference](https://community.exoscale.com/reference/api/_schemas/ssh-key-ref/index.md) | no | Instances SSH keys |
| `state` | string | no | Instance Pool state<br/><br/>Allowed values: `scaling-up`, `scaling-down`, `destroying`, `creating`, `suspended`, `running`, `updating`, `error`. |
| `template` | [Template reference](https://community.exoscale.com/reference/api/_schemas/template-ref/index.md) | no | Instances template |
| `user-data` | string | no | Instances Cloud-init user-data<br/><br/>Min length: `1`. |

### Error Reason {#error-reason}

Instance Pool Error Reason

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `cause` | string | no | Error cause |
| `job-id` | string | no | Job ID at the origin of error |
| `type` | string | no | Error type |

---

url: https://community.exoscale.com/reference/api/_schemas/instance-pool-ref/

---

# Instance Pool Ref

Target Instance Pool

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | Instance Pool ID<br/><br/>Must be a valid UUID. |

---

url: https://community.exoscale.com/reference/api/_schemas/instance-ref/

---

# Instance Ref

Target Instance

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | Instance ID<br/><br/>Must be a valid UUID. |

---

url: https://community.exoscale.com/reference/api/_schemas/instance-state/

---

# Instance State

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/instance-type/

---

# Instance Type

Compute instance type

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `authorized` | boolean | no | Requires authorization or publicly available |
| `cpus` | integer | no | CPU count<br/><br/>Min: `0`. |
| `family` | string | no | Instance type family<br/><br/>Allowed values: `gpu3`, `gpua30`, `gpu3080ti`, `gpu2`, `gpu`, `memory`, `gpua5000`, `gpub300`, `gpurtx6000pro`, `storage`, `standard`, `colossus`, `cpu`. |
| `gpus` | integer | no | GPU count<br/><br/>Min: `0`. |
| `id` | string | no | Instance type ID<br/><br/>Must be a valid UUID. |
| `memory` | integer | no | Available memory<br/><br/>Min: `0`. |
| `size` | string | no | Instance type size<br/><br/>Allowed values: `large`, `huge`, `jumbo`, `medium`, `mega`, `small`, `extra-large`, `titan48c`, `titan`, `micro`, `colossus`, `tiny`. |
| `zones` | array of [Zone Name](https://community.exoscale.com/reference/api/_schemas/zone-name/index.md) | no | Instance Type available zones |

---

url: https://community.exoscale.com/reference/api/_schemas/instance-type-entry/

---

# Instance Type Entry

Instance type with authorization status

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `authorized` | boolean | **yes** | Whether this instance type is authorized based on server availability |
| `family` | string | **yes** | GPU family name |

---

url: https://community.exoscale.com/reference/api/_schemas/instance-type-ref/

---

# Instance Type Ref

Instance type reference

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | Instance type ID<br/><br/>Must be a valid UUID. |

---

url: https://community.exoscale.com/reference/api/_schemas/json-schema-clickhouse/

---

# JSON Schema Clickhouse

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `server_settings` | [Server Settings](https://community.exoscale.com/reference/api/_schemas/json-schema-clickhouse/index.md#server-settings) | no | ClickHouse server settings, which can be found in the `system.server_settings` table. |
| `tiered_storage_move_factor` | number | no | The percentage of free disk space required on local storage before data is moved to object storage. A value of 0.2 means data is moved when local storage has less than 20% free space.<br/><br/>Min: `0`. Max: `1`. Default: `0.2`. |

### Server Settings {#server-settings}

ClickHouse server settings, which can be found in the `system.server_settings` table.

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `vector_similarity_index_cache_size` | number | no | Fraction of total server memory allocated to the vector similarity index cache. 0 disables the cache. Default is 0.07 (7% of server memory). Only effective on ClickHouse 25.8+.<br/><br/>Min: `0`. Max: `0.5`. Default: `0.07`. |

---

url: https://community.exoscale.com/reference/api/_schemas/json-schema-grafana/

---

# JSON Schema Grafana

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `alerting_enabled` | boolean | no |  |
| `alerting_error_or_timeout` | string | no | Allowed values: `alerting`, `keep_state`. |
| `alerting_max_annotations_to_keep` | integer | no | Min: `0`. Max: `1e+06`. |
| `alerting_nodata_or_nullvalues` | string | no | Allowed values: `alerting`, `no_data`, `keep_state`, `ok`. |
| `allow_embedding` | boolean | no |  |
| `auth_azuread` | [Auth Azuread](https://community.exoscale.com/reference/api/_schemas/json-schema-grafana/index.md#auth-azuread) | no |  |
| `auth_basic_enabled` | boolean | no |  |
| `auth_generic_oauth` | [Auth Generic Oauth](https://community.exoscale.com/reference/api/_schemas/json-schema-grafana/index.md#auth-generic-oauth) | no |  |
| `auth_github` | [Auth Github](https://community.exoscale.com/reference/api/_schemas/json-schema-grafana/index.md#auth-github) | no |  |
| `auth_gitlab` | [Auth Gitlab](https://community.exoscale.com/reference/api/_schemas/json-schema-grafana/index.md#auth-gitlab) | no |  |
| `auth_google` | [Auth Google](https://community.exoscale.com/reference/api/_schemas/json-schema-grafana/index.md#auth-google) | no |  |
| `cookie_samesite` | string | no | Allowed values: `lax`, `strict`, `none`. |
| `custom_domain` | string | no | Serve the web frontend using a custom CNAME pointing to the Aiven DNS name<br/><br/>Max length: `255`. |
| `dashboard_previews_enabled` | boolean | no | This feature is new in Grafana 9 and is quite resource intensive. It may cause low-end plans to work more slowly while the dashboard previews are rendering. |
| `dashboards_min_refresh_interval` | string | no | Signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s, 1h<br/><br/>Max length: `16`. |
| `dashboards_versions_to_keep` | integer | no | Min: `1`. Max: `100`. |
| `dataproxy_send_user_header` | boolean | no |  |
| `dataproxy_timeout` | integer | no | Min: `15`. Max: `90`. |
| `date_formats` | [Date Formats](https://community.exoscale.com/reference/api/_schemas/json-schema-grafana/index.md#date-formats) | no |  |
| `disable_gravatar` | boolean | no |  |
| `editors_can_admin` | boolean | no |  |
| `google_analytics_ua_id` | string | no | Max length: `64`. |
| `metrics_enabled` | boolean | no |  |
| `oauth_allow_insecure_email_lookup` | boolean | no |  |
| `service_log` | boolean | no | Store logs for the service so that they are available in the HTTP API and console. |
| `smtp_server` | [SMTP Server](https://community.exoscale.com/reference/api/_schemas/json-schema-grafana/index.md#smtp-server) | no |  |
| `unified_alerting_enabled` | boolean | no |  |
| `user_auto_assign_org` | boolean | no |  |
| `user_auto_assign_org_role` | string | no | Allowed values: `Viewer`, `Admin`, `Editor`. |
| `viewers_can_edit` | boolean | no |  |
| `wal` | boolean | no | Setting to enable/disable Write-Ahead Logging. The default value is false (disabled). |

### Auth Azuread {#auth-azuread}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `auth_url` | string | **yes** | Max length: `2048`. |
| `client_id` | string | **yes** | Max length: `1024`. |
| `client_secret` | string | **yes** | Max length: `1024`. |
| `token_url` | string | **yes** | Max length: `2048`. |
| `allow_sign_up` | boolean | no |  |
| `allowed_domains` | array[string] | no |  |
| `allowed_groups` | array[string] | no |  |

### Auth Github {#auth-github}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `client_id` | string | **yes** | Max length: `1024`. |
| `client_secret` | string | **yes** | Max length: `1024`. |
| `allow_sign_up` | boolean | no |  |
| `allowed_organizations` | array[string] | no |  |
| `auto_login` | boolean | no |  |
| `skip_org_role_sync` | boolean | no |  |
| `team_ids` | array[integer] | no |  |

### SMTP Server {#smtp-server}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `from_address` | string | **yes** | Max length: `319`. |
| `host` | string | **yes** | Max length: `255`. |
| `port` | integer | **yes** | Min: `1`. Max: `65535`. |
| `from_name` | string | no | Max length: `128`. |
| `password` | string | no | Max length: `255`. |
| `skip_verify` | boolean | no |  |
| `starttls_policy` | string | no | Allowed values: `OpportunisticStartTLS`, `MandatoryStartTLS`, `NoStartTLS`. |
| `username` | string | no | Max length: `255`. |

### Auth Gitlab {#auth-gitlab}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `allowed_groups` | array[string] | **yes** |  |
| `client_id` | string | **yes** | Max length: `1024`. |
| `client_secret` | string | **yes** | Max length: `1024`. |
| `allow_sign_up` | boolean | no |  |
| `api_url` | string | no | Max length: `2048`. |
| `auth_url` | string | no | Max length: `2048`. |
| `token_url` | string | no | Max length: `2048`. |

### Date Formats {#date-formats}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `default_timezone` | string | no | Max length: `64`. |
| `full_date` | string | no | Max length: `128`. |
| `interval_day` | string | no | Max length: `128`. |
| `interval_hour` | string | no | Max length: `128`. |
| `interval_minute` | string | no | Max length: `128`. |
| `interval_month` | string | no | Max length: `128`. |
| `interval_second` | string | no | Max length: `128`. |
| `interval_year` | string | no | Max length: `128`. |

### Auth Google {#auth-google}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `allowed_domains` | array[string] | **yes** |  |
| `client_id` | string | **yes** | Max length: `1024`. |
| `client_secret` | string | **yes** | Max length: `1024`. |
| `allow_sign_up` | boolean | no |  |

### Auth Generic Oauth {#auth-generic-oauth}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `api_url` | string | **yes** | Max length: `2048`. |
| `auth_url` | string | **yes** | Max length: `2048`. |
| `client_id` | string | **yes** | Max length: `1024`. |
| `client_secret` | string | **yes** | Max length: `1024`. |
| `token_url` | string | **yes** | Max length: `2048`. |
| `allow_sign_up` | boolean | no |  |
| `allowed_domains` | array[string] | no |  |
| `allowed_organizations` | array[string] | no |  |
| `auto_login` | boolean | no |  |
| `name` | string | no | Max length: `128`. |
| `scopes` | array[string] | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/json-schema-kafka/

---

# JSON Schema Kafka

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `auto_create_topics_enable` | boolean | no | Enable auto creation of topics |
| `compression_type` | string | no | Specify the final compression type for a given topic. This configuration accepts the standard compression codecs ('gzip', 'snappy', 'lz4', 'zstd'). It additionally accepts 'uncompressed' which is equivalent to no compression; and 'producer' which means retain the original compression codec set by the producer.<br/><br/>Allowed values: `gzip`, `snappy`, `lz4`, `zstd`, `uncompressed`, `producer`. |
| `connections_max_idle_ms` | integer | no | Idle connections timeout: the server socket processor threads close the connections that idle for longer than this.<br/><br/>Min: `1000`. Max: `3.6e+06`. |
| `default_replication_factor` | integer | no | Replication factor for autocreated topics<br/><br/>Min: `1`. Max: `10`. |
| `group_initial_rebalance_delay_ms` | integer | no | The amount of time, in milliseconds, the group coordinator will wait for more consumers to join a new group before performing the first rebalance. A longer delay means potentially fewer rebalances, but increases the time until processing begins. The default value for this is 3 seconds. During development and testing it might be desirable to set this to 0 in order to not delay test execution time.<br/><br/>Min: `0`. Max: `300000`. |
| `group_max_session_timeout_ms` | integer | no | The maximum allowed session timeout for registered consumers. Longer timeouts give consumers more time to process messages in between heartbeats at the cost of a longer time to detect failures.<br/><br/>Min: `0`. Max: `1.8e+06`. |
| `group_min_session_timeout_ms` | integer | no | The minimum allowed session timeout for registered consumers. Longer timeouts give consumers more time to process messages in between heartbeats at the cost of a longer time to detect failures.<br/><br/>Min: `0`. Max: `60000`. |
| `log-cleanup-and-compaction` | [Log Cleanup And Compaction](https://community.exoscale.com/reference/api/_schemas/json-schema-kafka/index.md#log-cleanup-and-compaction) | no |  |
| `log_flush_interval_messages` | integer | no | The number of messages accumulated on a log partition before messages are flushed to disk<br/><br/>Min: `1`. Max: `9.223372036854776e+18`. |
| `log_flush_interval_ms` | integer | no | The maximum time in ms that a message in any topic is kept in memory before flushed to disk. If not set, the value in log.flush.scheduler.interval.ms is used<br/><br/>Min: `0`. Max: `9.223372036854776e+18`. |
| `log_index_interval_bytes` | integer | no | The interval with which Kafka adds an entry to the offset index<br/><br/>Min: `0`. Max: `1.048576e+08`. |
| `log_index_size_max_bytes` | integer | no | The maximum size in bytes of the offset index<br/><br/>Min: `1.048576e+06`. Max: `1.048576e+08`. |
| `log_local_retention_bytes` | integer | no | The maximum size of local log segments that can grow for a partition before it gets eligible for deletion. If set to -2, the value of log.retention.bytes is used. The effective value should always be less than or equal to log.retention.bytes value.<br/><br/>Min: `-2`. Max: `9.223372036854776e+18`. |
| `log_local_retention_ms` | integer | no | The number of milliseconds to keep the local log segments before it gets eligible for deletion. If set to -2, the value of log.retention.ms is used. The effective value should always be less than or equal to log.retention.ms value.<br/><br/>Min: `-2`. Max: `9.223372036854776e+18`. |
| `log_message_downconversion_enable` | boolean | no | This configuration controls whether down-conversion of message formats is enabled to satisfy consume requests. |
| `log_message_timestamp_difference_max_ms` | integer | no | The maximum difference allowed between the timestamp when a broker receives a message and the timestamp specified in the message<br/><br/>Min: `0`. Max: `9.223372036854776e+18`. |
| `log_message_timestamp_type` | string | no | Define whether the timestamp in the message is message create time or log append time.<br/><br/>Allowed values: `CreateTime`, `LogAppendTime`. |
| `log_preallocate` | boolean | no | Should pre allocate file when create new segment? |
| `log_retention_bytes` | integer | no | The maximum size of the log before deleting messages<br/><br/>Min: `-1`. Max: `9.223372036854776e+18`. |
| `log_retention_hours` | integer | no | The number of hours to keep a log file before deleting it<br/><br/>Min: `-1`. Max: `2.147483647e+09`. |
| `log_retention_ms` | integer | no | The number of milliseconds to keep a log file before deleting it (in milliseconds), If not set, the value in log.retention.minutes is used. If set to -1, no time limit is applied.<br/><br/>Min: `-1`. Max: `9.223372036854776e+18`. |
| `log_roll_jitter_ms` | integer | no | The maximum jitter to subtract from logRollTimeMillis (in milliseconds). If not set, the value in log.roll.jitter.hours is used<br/><br/>Min: `0`. Max: `9.223372036854776e+18`. |
| `log_roll_ms` | integer | no | The maximum time before a new log segment is rolled out (in milliseconds).<br/><br/>Min: `1`. Max: `9.223372036854776e+18`. |
| `log_segment_bytes` | integer | no | The maximum size of a single log file<br/><br/>Min: `1.048576e+07`. Max: `1.073741824e+09`. |
| `log_segment_delete_delay_ms` | integer | no | The amount of time to wait before deleting a file from the filesystem<br/><br/>Min: `0`. Max: `3.6e+06`. |
| `max_connections_per_ip` | integer | no | The maximum number of connections allowed from each ip address (defaults to 2147483647).<br/><br/>Min: `256`. Max: `2.147483647e+09`. |
| `max_incremental_fetch_session_cache_slots` | integer | no | The maximum number of incremental fetch sessions that the broker will maintain.<br/><br/>Min: `1000`. Max: `10000`. |
| `message_max_bytes` | integer | no | The maximum size of message that the server can receive.<br/><br/>Min: `0`. Max: `1.000012e+08`. |
| `min_insync_replicas` | integer | no | When a producer sets acks to 'all' (or '-1'), min.insync.replicas specifies the minimum number of replicas that must acknowledge a write for the write to be considered successful.<br/><br/>Min: `1`. Max: `7`. |
| `num_partitions` | integer | no | Number of partitions for autocreated topics<br/><br/>Min: `1`. Max: `1000`. |
| `offsets_retention_minutes` | integer | no | Log retention window in minutes for offsets topic<br/><br/>Min: `1`. Max: `2.147483647e+09`. |
| `producer_purgatory_purge_interval_requests` | integer | no | The purge interval (in number of requests) of the producer request purgatory(defaults to 1000).<br/><br/>Min: `10`. Max: `10000`. |
| `replica_fetch_max_bytes` | integer | no | The number of bytes of messages to attempt to fetch for each partition (defaults to 1048576). This is not an absolute maximum, if the first record batch in the first non-empty partition of the fetch is larger than this value, the record batch will still be returned to ensure that progress can be made.<br/><br/>Min: `1.048576e+06`. Max: `1.048576e+08`. |
| `replica_fetch_response_max_bytes` | integer | no | Maximum bytes expected for the entire fetch response (defaults to 10485760). Records are fetched in batches, and if the first record batch in the first non-empty partition of the fetch is larger than this value, the record batch will still be returned to ensure that progress can be made. As such, this is not an absolute maximum.<br/><br/>Min: `1.048576e+07`. Max: `1.048576e+09`. |
| `sasl_oauthbearer_expected_audience` | string | no | The (optional) comma-delimited setting for the broker to use to verify that the JWT was issued for one of the expected audiences.<br/><br/>Max length: `128`. |
| `sasl_oauthbearer_expected_issuer` | string | no | Optional setting for the broker to use to verify that the JWT was created by the expected issuer.<br/><br/>Max length: `128`. |
| `sasl_oauthbearer_jwks_endpoint_url` | string | no | OIDC JWKS endpoint URL. By setting this the SASL SSL OAuth2/OIDC authentication is enabled. See also other options for SASL OAuth2/OIDC.<br/><br/>Max length: `2048`. |
| `sasl_oauthbearer_sub_claim_name` | string | no | Name of the scope from which to extract the subject claim from the JWT. Defaults to sub.<br/><br/>Max length: `128`. |
| `socket_request_max_bytes` | integer | no | The maximum number of bytes in a socket request (defaults to 104857600).<br/><br/>Min: `1.048576e+07`. Max: `2.097152e+08`. |
| `transaction_partition_verification_enable` | boolean | no | Enable verification that checks that the partition has been added to the transaction before writing transactional records to the partition |
| `transaction_remove_expired_transaction_cleanup_interval_ms` | integer | no | The interval at which to remove transactions that have expired due to transactional.id.expiration.ms passing (defaults to 3600000 (1 hour)).<br/><br/>Min: `600000`. Max: `3.6e+06`. |
| `transaction_state_log_segment_bytes` | integer | no | The transaction topic segment bytes should be kept relatively small in order to facilitate faster log compaction and cache loads (defaults to 104857600 (100 mebibytes)).<br/><br/>Min: `1.048576e+06`. Max: `2.147483647e+09`. |

### Log Cleanup And Compaction {#log-cleanup-and-compaction}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `log_cleaner_delete_retention_ms` | integer | no | How long are delete records retained?<br/><br/>Min: `0`. Max: `3.1556926e+11`. |
| `log_cleaner_max_compaction_lag_ms` | integer | no | The maximum amount of time message will remain uncompacted. Only applicable for logs that are being compacted<br/><br/>Min: `30000`. Max: `9.223372036854776e+18`. |
| `log_cleaner_min_cleanable_ratio` | number | no | Controls log compactor frequency. Larger value means more frequent compactions but also more space wasted for logs. Consider setting log.cleaner.max.compaction.lag.ms to enforce compactions sooner, instead of setting a very high value for this option.<br/><br/>Min: `0.2`. Max: `0.9`. |
| `log_cleaner_min_compaction_lag_ms` | integer | no | The minimum time a message will remain uncompacted in the log. Only applicable for logs that are being compacted.<br/><br/>Min: `0`. Max: `9.223372036854776e+18`. |
| `log_cleanup_policy` | string | no | The default cleanup policy for segments beyond the retention window<br/><br/>Allowed values: `delete`, `compact`, `compact,delete`. |

---

url: https://community.exoscale.com/reference/api/_schemas/json-schema-kafka-connect/

---

# JSON Schema Kafka Connect

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `connector_client_config_override_policy` | string | no | Defines what client configurations can be overridden by the connector. Default is None<br/><br/>Allowed values: `None`, `All`. |
| `consumer_auto_offset_reset` | string | no | What to do when there is no initial offset in Kafka or if the current offset does not exist any more on the server. Default is earliest<br/><br/>Allowed values: `earliest`, `latest`. |
| `consumer_fetch_max_bytes` | integer | no | Records are fetched in batches by the consumer, and if the first record batch in the first non-empty partition of the fetch is larger than this value, the record batch will still be returned to ensure that the consumer can make progress. As such, this is not a absolute maximum.<br/><br/>Min: `1.048576e+06`. Max: `1.048576e+08`. |
| `consumer_isolation_level` | string | no | Transaction read isolation level. read_uncommitted is the default, but read_committed can be used if consume-exactly-once behavior is desired.<br/><br/>Allowed values: `read_uncommitted`, `read_committed`. |
| `consumer_max_partition_fetch_bytes` | integer | no | Records are fetched in batches by the consumer.If the first record batch in the first non-empty partition of the fetch is larger than this limit, the batch will still be returned to ensure that the consumer can make progress.<br/><br/>Min: `1.048576e+06`. Max: `1.048576e+08`. |
| `consumer_max_poll_interval_ms` | integer | no | The maximum delay in milliseconds between invocations of poll() when using consumer group management (defaults to 300000).<br/><br/>Min: `1`. Max: `2.147483647e+09`. |
| `consumer_max_poll_records` | integer | no | The maximum number of records returned in a single call to poll() (defaults to 500).<br/><br/>Min: `1`. Max: `10000`. |
| `offset_flush_interval_ms` | integer | no | The interval at which to try committing offsets for tasks (defaults to 60000).<br/><br/>Min: `1`. Max: `1e+08`. |
| `offset_flush_timeout_ms` | integer | no | Maximum number of milliseconds to wait for records to flush and partition offset data to be committed to offset storage before cancelling the process and restoring the offset data to be committed in a future attempt (defaults to 5000).<br/><br/>Min: `1`. Max: `2.147483647e+09`. |
| `producer_batch_size` | integer | no | This setting gives the upper bound of the batch size to be sent. If there are fewer than this many bytes accumulated for this partition, the producer will 'linger' for the linger.ms time waiting for more records to show up. A batch size of zero will disable batching entirely (defaults to 16384).<br/><br/>Min: `0`. Max: `5.24288e+06`. |
| `producer_buffer_memory` | integer | no | The total bytes of memory the producer can use to buffer records waiting to be sent to the broker (defaults to 33554432).<br/><br/>Min: `5.24288e+06`. Max: `1.34217728e+08`. |
| `producer_compression_type` | string | no | Specify the default compression type for producers. This configuration accepts the standard compression codecs ('gzip', 'snappy', 'lz4', 'zstd'). It additionally accepts 'none' which is the default and equivalent to no compression.<br/><br/>Allowed values: `gzip`, `snappy`, `lz4`, `zstd`, `none`. |
| `producer_linger_ms` | integer | no | This setting gives the upper bound on the delay for batching: once there is batch.size worth of records for a partition it will be sent immediately regardless of this setting, however if there are fewer than this many bytes accumulated for this partition the producer will 'linger' for the specified time waiting for more records to show up. Defaults to 0.<br/><br/>Min: `0`. Max: `5000`. |
| `producer_max_request_size` | integer | no | This setting will limit the number of record batches the producer will send in a single request to avoid sending huge requests.<br/><br/>Min: `131072`. Max: `6.7108864e+07`. |
| `scheduled_rebalance_max_delay_ms` | integer | no | The maximum delay that is scheduled in order to wait for the return of one or more departed workers before rebalancing and reassigning their connectors and tasks to the group. During this period the connectors and tasks of the departed workers remain unassigned. Defaults to 5 minutes.<br/><br/>Min: `0`. Max: `600000`. |
| `session_timeout_ms` | integer | no | The timeout in milliseconds used to detect failures when using Kafka’s group management facilities (defaults to 10000).<br/><br/>Min: `1`. Max: `2.147483647e+09`. |

---

url: https://community.exoscale.com/reference/api/_schemas/json-schema-kafka-rest/

---

# JSON Schema Kafka Rest

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `consumer_enable_auto_commit` | boolean | no | If true the consumer's offset will be periodically committed to Kafka in the background<br/><br/>Default: `true`. |
| `consumer_request_max_bytes` | integer | no | Maximum number of bytes in unencoded message keys and values by a single request<br/><br/>Min: `0`. Max: `6.7108864e+08`. Default: `67108864`. |
| `consumer_request_timeout_ms` | integer | no | The maximum total time to wait for messages for a request if the maximum number of messages has not yet been reached<br/><br/>Allowed values: `1000`, `15000`, `30000`.<br/><br/>Default: `1000`. |
| `name_strategy` | string | no | Name strategy to use when selecting subject for storing schemas<br/><br/>Allowed values: `topic_name`, `record_name`, `topic_record_name`.<br/><br/>Default: `topic_name`. |
| `name_strategy_validation` | boolean | no | If true, validate that given schema is registered under expected subject name by the used name strategy when producing messages.<br/><br/>Default: `true`. |
| `producer_acks` | string | no | The number of acknowledgments the producer requires the leader to have received before considering a request complete. If set to 'all' or '-1', the leader will wait for the full set of in-sync replicas to acknowledge the record.<br/><br/>Allowed values: `all`, `-1`, `0`, `1`.<br/><br/>Default: `1`. |
| `producer_compression_type` | string | no | Specify the default compression type for producers. This configuration accepts the standard compression codecs ('gzip', 'snappy', 'lz4', 'zstd'). It additionally accepts 'none' which is the default and equivalent to no compression.<br/><br/>Allowed values: `gzip`, `snappy`, `lz4`, `zstd`, `none`. |
| `producer_linger_ms` | integer | no | Wait for up to the given delay to allow batching records together<br/><br/>Min: `0`. Max: `5000`. Default: `0`. |
| `producer_max_request_size` | integer | no | The maximum size of a request in bytes. Note that Kafka broker can also cap the record batch size.<br/><br/>Min: `0`. Max: `2.147483647e+09`. Default: `1048576`. |
| `simpleconsumer_pool_size_max` | integer | no | Maximum number of SimpleConsumers that can be instantiated per broker<br/><br/>Min: `10`. Max: `250`. Default: `25`. |

---

url: https://community.exoscale.com/reference/api/_schemas/json-schema-mysql/

---

# JSON Schema Mysql

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `connect_timeout` | integer | no | The number of seconds that the mysqld server waits for a connect packet before responding with Bad handshake<br/><br/>Min: `2`. Max: `3600`. |
| `default_time_zone` | string | no | Default server time zone as an offset from UTC (from -12:00 to +12:00), a time zone name, or 'SYSTEM' to use the MySQL server default.<br/><br/>Min length: `2`. Max length: `100`. |
| `group_concat_max_len` | integer | no | The maximum permitted result length in bytes for the GROUP_CONCAT() function.<br/><br/>Min: `4`. Max: `1.8446744073709552e+19`. |
| `information_schema_stats_expiry` | integer | no | The time, in seconds, before cached statistics expire<br/><br/>Min: `900`. Max: `3.1536e+07`. |
| `innodb_change_buffer_max_size` | integer | no | Maximum size for the InnoDB change buffer, as a percentage of the total size of the buffer pool. Default is 25<br/><br/>Min: `0`. Max: `50`. |
| `innodb_flush_neighbors` | integer | no | Specifies whether flushing a page from the InnoDB buffer pool also flushes other dirty pages in the same extent (default is 1): 0 - dirty pages in the same extent are not flushed, 1 - flush contiguous dirty pages in the same extent, 2 - flush dirty pages in the same extent<br/><br/>Min: `0`. Max: `2`. |
| `innodb_ft_min_token_size` | integer | no | Minimum length of words that are stored in an InnoDB FULLTEXT index. Changing this parameter will lead to a restart of the MySQL service.<br/><br/>Min: `0`. Max: `16`. |
| `innodb_ft_server_stopword_table` | string | no | This option is used to specify your own InnoDB FULLTEXT index stopword list for all InnoDB tables.<br/><br/>Max length: `1024`. |
| `innodb_lock_wait_timeout` | integer | no | The length of time in seconds an InnoDB transaction waits for a row lock before giving up. Default is 120.<br/><br/>Min: `1`. Max: `3600`. |
| `innodb_log_buffer_size` | integer | no | The size in bytes of the buffer that InnoDB uses to write to the log files on disk.<br/><br/>Min: `1.048576e+06`. Max: `4.294967295e+09`. |
| `innodb_online_alter_log_max_size` | integer | no | The upper limit in bytes on the size of the temporary log files used during online DDL operations for InnoDB tables.<br/><br/>Min: `65536`. Max: `1.099511627776e+12`. |
| `innodb_print_all_deadlocks` | boolean | no | When enabled, information about all deadlocks in InnoDB user transactions is recorded in the error log. Disabled by default. |
| `innodb_read_io_threads` | integer | no | The number of I/O threads for read operations in InnoDB. Default is 4. Changing this parameter will lead to a restart of the MySQL service.<br/><br/>Min: `1`. Max: `64`. |
| `innodb_rollback_on_timeout` | boolean | no | When enabled a transaction timeout causes InnoDB to abort and roll back the entire transaction. Changing this parameter will lead to a restart of the MySQL service. |
| `innodb_thread_concurrency` | integer | no | Defines the maximum number of threads permitted inside of InnoDB. Default is 0 (infinite concurrency - no limit)<br/><br/>Min: `0`. Max: `1000`. |
| `innodb_write_io_threads` | integer | no | The number of I/O threads for write operations in InnoDB. Default is 4. Changing this parameter will lead to a restart of the MySQL service.<br/><br/>Min: `1`. Max: `64`. |
| `interactive_timeout` | integer | no | The number of seconds the server waits for activity on an interactive connection before closing it.<br/><br/>Min: `30`. Max: `604800`. |
| `internal_tmp_mem_storage_engine` | string | no | The storage engine for in-memory internal temporary tables.<br/><br/>Allowed values: `TempTable`, `MEMORY`. |
| `log_output` | string | no | The slow log output destination when slow_query_log is ON. To enable MySQL AI Insights, choose INSIGHTS. To use MySQL AI Insights and the mysql.slow_log table at the same time, choose INSIGHTS,TABLE. To only use the mysql.slow_log table, choose TABLE. To silence slow logs, choose NONE.<br/><br/>Allowed values: `INSIGHTS`, `INSIGHTS,TABLE`, `NONE`, `TABLE`. |
| `long_query_time` | number | no | The slow_query_logs work as SQL statements that take more than long_query_time seconds to execute. Default is 10s<br/><br/>Min: `0`. Max: `3600`. |
| `max_allowed_packet` | integer | no | Size of the largest message in bytes that can be received by the server. Default is 67108864 (64M)<br/><br/>Min: `102400`. Max: `1.073741824e+09`. |
| `max_heap_table_size` | integer | no | Limits the size of internal in-memory tables. Also set tmp_table_size. Default is 16777216 (16M)<br/><br/>Min: `1.048576e+06`. Max: `1.073741824e+09`. |
| `net_buffer_length` | integer | no | Start sizes of connection buffer and result buffer. Default is 16384 (16K). Changing this parameter will lead to a restart of the MySQL service.<br/><br/>Min: `1024`. Max: `1.048576e+06`. |
| `net_read_timeout` | integer | no | The number of seconds to wait for more data from a connection before aborting the read.<br/><br/>Min: `1`. Max: `3600`. |
| `net_write_timeout` | integer | no | The number of seconds to wait for a block to be written to a connection before aborting the write.<br/><br/>Min: `1`. Max: `3600`. |
| `slow_query_log` | boolean | no | Slow query log enables capturing of slow queries. Setting slow_query_log to false also truncates the mysql.slow_log table. Default is off |
| `sort_buffer_size` | integer | no | Sort buffer size in bytes for ORDER BY optimization. Default is 262144 (256K)<br/><br/>Min: `32768`. Max: `1.073741824e+09`. |
| `sql_mode` | string | no | Global SQL mode. Set to empty to use MySQL server defaults. When creating a new service and not setting this field Aiven default SQL mode (strict, SQL standard compliant) will be assigned.<br/><br/>Max length: `1024`. |
| `sql_require_primary_key` | boolean | no | Require primary key to be defined for new tables or old tables modified with ALTER TABLE and fail if missing. It is recommended to always have primary keys because various functionality may break if any large table is missing them. |
| `tmp_table_size` | integer | no | Limits the size of internal in-memory tables. Also set max_heap_table_size. Default is 16777216 (16M)<br/><br/>Min: `1.048576e+06`. Max: `1.073741824e+09`. |
| `wait_timeout` | integer | no | The number of seconds the server waits for activity on a noninteractive connection before closing it.<br/><br/>Min: `1`. Max: `2.147483e+06`. |

---

url: https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/

---

# JSON Schema Opensearch

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `action_auto_create_index_enabled` | boolean | no | Explicitly allow or block automatic creation of indices. Defaults to true |
| `action_destructive_requires_name` | boolean | no |  |
| `auth_failure_listeners` | [Auth Failure Listeners](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#auth-failure-listeners) | no |  |
| `cluster` | [Cluster](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#cluster) | no |  |
| `cluster_max_shards_per_node` | integer | no | Controls the number of shards allowed in the cluster per data node<br/><br/>Min: `100`. Max: `10000`. |
| `cluster_routing_allocation_node_concurrent_recoveries` | integer | no | How many concurrent incoming/outgoing shard recoveries (normally replicas) are allowed to happen on a node. Defaults to 2.<br/><br/>Min: `2`. Max: `16`. |
| `disk_watermarks` | [Disk Watermarks](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#disk-watermarks) | no |  |
| `email-sender` | [Email Sender](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#email-sender) | no |  |
| `enable_remote_backed_storage` | boolean | no |  |
| `enable_searchable_snapshots` | boolean | no |  |
| `enable_security_audit` | boolean | no | Default: `false`. |
| `enable_snapshot_api` | boolean | no | Enable/Disable snapshot API for custom repositories, this requires security management to be enabled |
| `http_max_content_length` | integer | no | Maximum content length for HTTP requests to the OpenSearch HTTP API, in bytes.<br/><br/>Min: `1`. Max: `2.147483647e+09`. |
| `http_max_header_size` | integer | no | The max size of allowed headers, in bytes<br/><br/>Min: `1024`. Max: `262144`. |
| `http_max_initial_line_length` | integer | no | The max length of an HTTP URL, in bytes<br/><br/>Min: `1024`. Max: `65536`. |
| `indices_fielddata_cache_size` | integer | no | Relative amount. Maximum amount of heap memory used for field data cache. This is an expert setting; decreasing the value too much will increase overhead of loading field data; too much memory used for field data cache will decrease amount of heap available for other operations.<br/><br/>Min: `3`. Max: `100`. Default: `null`. |
| `indices_memory_index_buffer_size` | integer | no | Percentage value. Default is 10%. Total amount of heap used for indexing buffer, before writing segments to disk. This is an expert setting. Too low value will slow down indexing; too high value will increase indexing performance but causes performance issues for query performance.<br/><br/>Min: `3`. Max: `40`. |
| `indices_memory_max_index_buffer_size` | integer | no | Absolute value. Default is unbound. Doesn't work without indices.memory.index_buffer_size. Maximum amount of heap used for query cache, an absolute indices.memory.index_buffer_size maximum hard limit.<br/><br/>Min: `3`. Max: `2048`. |
| `indices_memory_min_index_buffer_size` | integer | no | Absolute value. Default is 48mb. Doesn't work without indices.memory.index_buffer_size. Minimum amount of heap used for query cache, an absolute indices.memory.index_buffer_size minimal hard limit.<br/><br/>Min: `3`. Max: `2048`. |
| `indices_queries_cache_size` | integer | no | Percentage value. Default is 10%. Maximum amount of heap used for query cache. This is an expert setting. Too low value will decrease query performance and increase performance for other operations; too high value will cause issues with other OpenSearch functionality.<br/><br/>Min: `3`. Max: `40`. |
| `indices_query_bool_max_clause_count` | integer | no | Maximum number of clauses Lucene BooleanQuery can have. The default value (1024) is relatively high, and increasing it may cause performance issues. Investigate other approaches first before increasing this value.<br/><br/>Min: `64`. Max: `4096`. |
| `indices_recovery_max_bytes_per_sec` | integer | no | Limits total inbound and outbound recovery traffic for each node. Applies to both peer recoveries as well as snapshot recoveries (i.e., restores from a snapshot). Defaults to 40mb<br/><br/>Min: `40`. Max: `400`. |
| `indices_recovery_max_concurrent_file_chunks` | integer | no | Number of file chunks sent in parallel for each recovery. Defaults to 2.<br/><br/>Min: `2`. Max: `5`. |
| `ism-history` | [Ism History](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#ism-history) | no |  |
| `knn_memory_circuit_breaker_enabled` | boolean | no | Enable or disable KNN memory circuit breaker. Defaults to true. |
| `knn_memory_circuit_breaker_limit` | integer | no | Maximum amount of memory that can be used for KNN index. Defaults to 50% of the JVM heap size.<br/><br/>Min: `3`. Max: `100`. |
| `ml-commons` | [Ml Commons](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#ml-commons) | no |  |
| `node.search.cache.size` | string | no | Defines a limit of how much total remote data can be referenced as a ratio of the size of the disk reserved for the file cache. This is designed to be a safeguard to prevent oversubscribing a cluster. Defaults to 5gb. Requires restarting all OpenSearch nodes. |
| `override_main_response_version` | boolean | no | Compatibility mode sets OpenSearch to report its version as 7.10 so clients continue to work. Default is false |
| `plugins_alerting_filter_by_backend_roles` | boolean | no | Enable or disable filtering of alerting by backend roles. Requires Security plugin. Defaults to false |
| `reindex_remote_whitelist` | array[string] | no | Whitelisted addresses for reindexing. Changing this value will cause all OpenSearch instances to restart. |
| `remote_store` | [Remote Store](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#remote-store) | no |  |
| `script_max_compilations_rate` | string | no | Script compilation circuit breaker limits the number of inline script compilations within a period of time. Default is use-context<br/><br/>Max length: `1024`. |
| `search.insights.top_queries` | [Search.insights.top Queries](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#search.insights.top-queries) | no |  |
| `search_backpressure` | [Search Backpressure](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#search-backpressure) | no |  |
| `search_max_buckets` | integer | no | Maximum number of aggregation buckets allowed in a single response. OpenSearch default value is used when this is not defined.<br/><br/>Min: `1`. Max: `1e+06`. |
| `segrep` | [Segrep](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#segrep) | no |  |
| `shard_indexing_pressure` | [Shard Indexing Pressure](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#shard-indexing-pressure) | no |  |
| `thread_pool_analyze_queue_size` | integer | no | Size for the thread pool queue. See documentation for exact details.<br/><br/>Min: `10`. Max: `2000`. |
| `thread_pool_analyze_size` | integer | no | Size for the thread pool. See documentation for exact details. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value.<br/><br/>Min: `1`. Max: `128`. |
| `thread_pool_force_merge_size` | integer | no | Size for the thread pool. See documentation for exact details. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value.<br/><br/>Min: `1`. Max: `128`. |
| `thread_pool_get_queue_size` | integer | no | Size for the thread pool queue. See documentation for exact details.<br/><br/>Min: `10`. Max: `2000`. |
| `thread_pool_get_size` | integer | no | Size for the thread pool. See documentation for exact details. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value.<br/><br/>Min: `1`. Max: `128`. |
| `thread_pool_search_queue_size` | integer | no | Size for the thread pool queue. See documentation for exact details.<br/><br/>Min: `10`. Max: `2000`. |
| `thread_pool_search_size` | integer | no | Size for the thread pool. See documentation for exact details. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value.<br/><br/>Min: `1`. Max: `128`. |
| `thread_pool_search_throttled_queue_size` | integer | no | Size for the thread pool queue. See documentation for exact details.<br/><br/>Min: `10`. Max: `2000`. |
| `thread_pool_search_throttled_size` | integer | no | Size for the thread pool. See documentation for exact details. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value.<br/><br/>Min: `1`. Max: `128`. |
| `thread_pool_write_queue_size` | integer | no | Size for the thread pool queue. See documentation for exact details.<br/><br/>Min: `10`. Max: `2000`. |
| `thread_pool_write_size` | integer | no | Size for the thread pool. See documentation for exact details. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value.<br/><br/>Min: `1`. Max: `128`. |

### Search.insights.top Queries {#search.insights.top-queries}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `cpu` | [CPU](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#cpu) | no |  |
| `latency` | [Latency](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#latency) | no |  |
| `memory` | [Memory](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#memory) | no |  |

### CPU {#cpu}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `enabled` | boolean | no | Enable or disable top N query monitoring by the metric<br/><br/>Default: `false`. |
| `top_n_size` | integer | no | Min: `1`. |
| `window_size` | string | no | Configure the window size of the top N queries. The value should be a time value with unit, e.g. 1m, 5s, 1h. |

### Latency {#latency}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `enabled` | boolean | no | Enable or disable top N query monitoring by the metric<br/><br/>Default: `false`. |
| `top_n_size` | integer | no | Min: `1`. |
| `window_size` | string | no | Configure the window size of the top N queries. The value should be a time value with unit, e.g. 1m, 5s, 1h. |

### Memory {#memory}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `enabled` | boolean | no | Enable or disable top N query monitoring by the metric<br/><br/>Default: `false`. |
| `top_n_size` | integer | no | Min: `1`. |
| `window_size` | string | no | Configure the window size of the top N queries. The value should be a time value with unit, e.g. 1m, 5s, 1h. |

### Remote Store {#remote-store}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `segment.pressure.bytes_lag.variance_factor` | number | no | The variance factor that is used together with the moving average to calculate the dynamic bytes lag threshold for activating remote segment backpressure. Defaults to 10.<br/><br/>Min: `1`. |
| `segment.pressure.consecutive_failures.limit` | integer | no | The minimum consecutive failure count for activating remote segment backpressure. Defaults to 5.<br/><br/>Min: `1`. Max: `2.147483647e+09`. |
| `segment.pressure.enabled` | boolean | no | Enables remote segment backpressure. Default is `true` |
| `segment.pressure.time_lag.variance_factor` | number | no | The variance factor that is used together with the moving average to calculate the dynamic time lag threshold for activating remote segment backpressure. Defaults to 10.<br/><br/>Min: `1`. |

### Search Backpressure {#search-backpressure}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `mode` | string | no | The search backpressure mode. Valid values are monitor_only, enforced, or disabled. Default is monitor_only<br/><br/>Allowed values: `monitor_only`, `enforced`, `disabled`. |
| `node_duress` | [Node Duress](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#node-duress) | no |  |
| `search_shard_task` | [Search Shard Task](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#search-shard-task) | no |  |
| `search_task` | [Search Task](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#search-task) | no |  |

### Node Duress {#node-duress}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `cpu_threshold` | number | no | The CPU usage threshold (as a percentage) required for a node to be considered to be under duress. Default is 0.9<br/><br/>Min: `0`. Max: `1`. |
| `heap_threshold` | number | no | The heap usage threshold (as a percentage) required for a node to be considered to be under duress. Default is 0.7<br/><br/>Min: `0`. Max: `1`. |
| `num_successive_breaches` | integer | no | The number of successive limit breaches after which the node is considered to be under duress. Default is 3<br/><br/>Min: `1`. |

### Search Shard Task {#search-shard-task}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `cancellation_burst` | number | no | The maximum number of search tasks to cancel in a single iteration of the observer thread. Default is 10.0<br/><br/>Min: `1`. |
| `cancellation_rate` | number | no | The maximum number of tasks to cancel per millisecond of elapsed time. Default is 0.003<br/><br/>Min: `0`. |
| `cancellation_ratio` | number | no | The maximum number of tasks to cancel, as a percentage of successful task completions. Default is 0.1<br/><br/>Min: `0`. Max: `1`. |
| `cpu_time_millis_threshold` | integer | no | The CPU usage threshold (in milliseconds) required for a single search shard task before it is considered for cancellation. Default is 15000<br/><br/>Min: `0`. |
| `elapsed_time_millis_threshold` | integer | no | The elapsed time threshold (in milliseconds) required for a single search shard task before it is considered for cancellation. Default is 30000<br/><br/>Min: `0`. |
| `heap_moving_average_window_size` | integer | no | The number of previously completed search shard tasks to consider when calculating the rolling average of heap usage. Default is 100<br/><br/>Min: `0`. |
| `heap_percent_threshold` | number | no | The heap usage threshold (as a percentage) required for a single search shard task before it is considered for cancellation. Default is 0.5<br/><br/>Min: `0`. Max: `1`. |
| `heap_variance` | number | no | The minimum variance required for a single search shard task’s heap usage compared to the rolling average of previously completed tasks before it is considered for cancellation. Default is 2.0<br/><br/>Min: `0`. |
| `total_heap_percent_threshold` | number | no | The heap usage threshold (as a percentage) required for the sum of heap usages of all search shard tasks before cancellation is applied. Default is 0.5<br/><br/>Min: `0`. Max: `1`. |

### Search Task {#search-task}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `cancellation_burst` | number | no | The maximum number of search tasks to cancel in a single iteration of the observer thread. Default is 5.0<br/><br/>Min: `1`. |
| `cancellation_rate` | number | no | The maximum number of search tasks to cancel per millisecond of elapsed time. Default is 0.003<br/><br/>Min: `0`. |
| `cancellation_ratio` | number | no | The maximum number of search tasks to cancel, as a percentage of successful search task completions. Default is 0.1<br/><br/>Min: `0`. Max: `1`. |
| `cpu_time_millis_threshold` | integer | no | The CPU usage threshold (in milliseconds) required for an individual parent task before it is considered for cancellation. Default is 30000<br/><br/>Min: `0`. |
| `elapsed_time_millis_threshold` | integer | no | The elapsed time threshold (in milliseconds) required for an individual parent task before it is considered for cancellation. Default is 45000<br/><br/>Min: `0`. |
| `heap_moving_average_window_size` | integer | no | The window size used to calculate the rolling average of the heap usage for the completed parent tasks. Default is 10<br/><br/>Min: `0`. |
| `heap_percent_threshold` | number | no | The heap usage threshold (as a percentage) required for an individual parent task before it is considered for cancellation. Default is 0.2<br/><br/>Min: `0`. Max: `1`. |
| `heap_variance` | number | no | The heap usage variance required for an individual parent task before it is considered for cancellation. A task is considered for cancellation when taskHeapUsage is greater than or equal to heapUsageMovingAverage * variance. Default is 2.0<br/><br/>Min: `0`. |
| `total_heap_percent_threshold` | number | no | The heap usage threshold (as a percentage) required for the sum of heap usages of all search tasks before cancellation is applied. Default is 0.5<br/><br/>Min: `0`. Max: `1`. |

### Shard Indexing Pressure {#shard-indexing-pressure}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `enabled` | boolean | no | Enable or disable shard indexing backpressure. Default is false |
| `enforced` | boolean | no | Run shard indexing backpressure in shadow mode or enforced mode. In shadow mode (value set as false), shard indexing backpressure tracks all granular-level metrics, but it doesn’t actually reject any indexing requests. In enforced mode (value set as true), shard indexing backpressure rejects any requests to the cluster that might cause a dip in its performance. Default is false |
| `operating_factor` | [Operating Factor](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#operating-factor) | no |  |
| `primary_parameter` | [Primary Parameter](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#primary-parameter) | no |  |

### Primary Parameter {#primary-parameter}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `node` | [Node](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#node) | no |  |
| `shard` | [Shard](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#shard) | no |  |

### Shard {#shard}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `min_limit` | number | no | Specify the minimum assigned quota for a new shard in any role (coordinator, primary, or replica). Shard indexing backpressure increases or decreases this allocated quota based on the inflow of traffic for the shard. Default is 0.001<br/><br/>Min: `0`. |

### Node {#node}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `soft_limit` | number | no | Define the percentage of the node-level memory threshold that acts as a soft indicator for strain on a node. Default is 0.7<br/><br/>Min: `0`. |

### Operating Factor {#operating-factor}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `lower` | number | no | Specify the lower occupancy limit of the allocated quota of memory for the shard. If the total memory usage of a shard is below this limit, shard indexing backpressure decreases the current allocated memory for that shard. Default is 0.75<br/><br/>Min: `0`. |
| `optimal` | number | no | Specify the optimal occupancy of the allocated quota of memory for the shard. If the total memory usage of a shard is at this level, shard indexing backpressure doesn’t change the current allocated memory for that shard. Default is 0.85<br/><br/>Min: `0`. |
| `upper` | number | no | Specify the upper occupancy limit of the allocated quota of memory for the shard. If the total memory usage of a shard is above this limit, shard indexing backpressure increases the current allocated memory for that shard. Default is 0.95<br/><br/>Min: `0`. |

### Cluster {#cluster}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `cluster.filecache.remote_data_ratio` | number | no | Defines a limit of how much total remote data can be referenced as a ratio of the size of the disk reserved for the file cache. This is designed to be a safeguard to prevent oversubscribing a cluster. Defaults to 0.<br/><br/>Min: `0`. Max: `100`. |
| `cluster.remote_store` | [Cluster.remote Store](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#cluster.remote-store) | no |  |
| `cluster.routing.allocation.balance.prefer_primary` | boolean | no | When set to true, OpenSearch attempts to evenly distribute the primary shards between the cluster nodes. Enabling this setting does not always guarantee an equal number of primary shards on each node, especially in the event of a failover. Changing this setting to false after it was set to true does not invoke redistribution of primary shards. Default is false. |
| `cluster.search.request.slowlog` | [Cluster.search.request.slowlog](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#cluster.search.request.slowlog) | no |  |

### Cluster.remote Store {#cluster.remote-store}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `state.global_metadata.upload_timeout` | string | no | The amount of time to wait for the cluster state upload to complete. Defaults to 20s. |
| `state.metadata_manifest.upload_timeout` | string | no | The amount of time to wait for the manifest file upload to complete. The manifest file contains the details of each of the files uploaded for a single cluster state, both index metadata files and global metadata files. Defaults to 20s. |
| `translog.buffer_interval` | string | no | The default value of the translog buffer interval used when performing periodic translog updates. This setting is only effective when the index setting `index.remote_store.translog.buffer_interval` is not present. Defaults to 650ms. |
| `translog.max_readers` | integer | no | Sets the maximum number of open translog files for remote-backed indexes. This limits the total number of translog files per shard. After reaching this limit, the remote store flushes the translog files. Default is 1000. The minimum required is 100.<br/><br/>Min: `100`. Max: `2.147483647e+09`. |

### Cluster.search.request.slowlog {#cluster.search.request.slowlog}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `level` | string | no | Allowed values: `debug`, `info`, `trace`, `warn`.<br/><br/>Default: `trace`. |
| `threshold` | [Threshold](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#threshold) | no |  |

### Threshold {#threshold}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `debug` | string | no |  |
| `info` | string | no |  |
| `trace` | string | no |  |
| `warn` | string | no |  |

### Segrep {#segrep}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `pressure.checkpoint.limit` | integer | no | The maximum number of indexing checkpoints that a replica shard can fall behind when copying from primary. Once `segrep.pressure.checkpoint.limit` is breached along with `segrep.pressure.time.limit`, the segment replication backpressure mechanism is initiated. Default is 4 checkpoints.<br/><br/>Min: `0`. Default: `4`. |
| `pressure.enabled` | boolean | no | Enables the segment replication backpressure mechanism. Default is false.<br/><br/>Default: `false`. |
| `pressure.replica.stale.limit` | number | no | The maximum number of stale replica shards that can exist in a replication group. Once `segrep.pressure.replica.stale.limit` is breached, the segment replication backpressure mechanism is initiated. Default is .5, which is 50% of a replication group.<br/><br/>Min: `0`. Max: `1`. Default: `0.5`. |
| `pressure.time.limit` | string | no | The maximum amount of time that a replica shard can take to copy from the primary shard. Once segrep.pressure.time.limit is breached along with segrep.pressure.checkpoint.limit, the segment replication backpressure mechanism is initiated. Default is 5 minutes.<br/><br/>Default: `5m`. |

### Email Sender {#email-sender}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `email_sender_name` | string | **yes** | This should be identical to the Sender name defined in Opensearch dashboards<br/><br/>Max length: `40`. |
| `email_sender_password` | string | **yes** | Sender password for Opensearch alerts to authenticate with SMTP server<br/><br/>Max length: `1024`. |
| `email_sender_username` | string | **yes** | Max length: `320`. |

### Disk Watermarks {#disk-watermarks}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `flood_stage` | integer | **yes** | The flood stage watermark for disk usage. |
| `high` | integer | **yes** | The high watermark for disk usage. |
| `low` | integer | **yes** | The low watermark for disk usage. |

### Auth Failure Listeners {#auth-failure-listeners}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `internal_authentication_backend_limiting` | [Internal Authentication Backend Limiting](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#internal-authentication-backend-limiting) | no |  |
| `ip_rate_limiting` | [IP Rate Limiting](https://community.exoscale.com/reference/api/_schemas/json-schema-opensearch/index.md#ip-rate-limiting) | no |  |

### Internal Authentication Backend Limiting {#internal-authentication-backend-limiting}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `allowed_tries` | integer | no | The number of login attempts allowed before login is blocked<br/><br/>Min: `0`. Max: `2.147483647e+09`. |
| `authentication_backend` | string | no | The internal backend. Enter `internal`<br/><br/>Allowed values: `internal`.<br/><br/>Max length: `1024`. |
| `block_expiry_seconds` | integer | no | The duration of time that login remains blocked after a failed login<br/><br/>Min: `0`. Max: `2.147483647e+09`. |
| `max_blocked_clients` | integer | no | The maximum number of blocked IP addresses<br/><br/>Min: `0`. Max: `2.147483647e+09`. |
| `max_tracked_clients` | integer | no | The maximum number of tracked IP addresses that have failed login<br/><br/>Min: `0`. Max: `2.147483647e+09`. |
| `time_window_seconds` | integer | no | The window of time in which the value for `allowed_tries` is enforced<br/><br/>Min: `0`. Max: `2.147483647e+09`. |
| `type` | string | no | The type of rate limiting<br/><br/>Allowed values: `username`.<br/><br/>Max length: `1024`. |

### IP Rate Limiting {#ip-rate-limiting}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `allowed_tries` | integer | no | The number of login attempts allowed before login is blocked<br/><br/>Min: `1`. Max: `2.147483647e+09`. |
| `block_expiry_seconds` | integer | no | The duration of time that login remains blocked after a failed login<br/><br/>Min: `1`. Max: `36000`. |
| `max_blocked_clients` | integer | no | The maximum number of blocked IP addresses<br/><br/>Min: `0`. Max: `2.147483647e+09`. |
| `max_tracked_clients` | integer | no | The maximum number of tracked IP addresses that have failed login<br/><br/>Min: `0`. Max: `2.147483647e+09`. |
| `time_window_seconds` | integer | no | The window of time in which the value for `allowed_tries` is enforced<br/><br/>Min: `1`. Max: `36000`. |
| `type` | string | no | The type of rate limiting<br/><br/>Allowed values: `ip`.<br/><br/>Max length: `1024`. |

### Ism History {#ism-history}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `ism_enabled` | boolean | **yes** | Default: `true`. |
| `ism_history_enabled` | boolean | no | Default: `true`. |
| `ism_history_max_age` | integer | no | Min: `1`. Max: `2.147483647e+09`. Default: `24`. |
| `ism_history_max_docs` | integer | no | Min: `1`. Max: `9.223372036854776e+18`. Default: `2500000`. |
| `ism_history_rollover_check_period` | integer | no | Min: `1`. Max: `2.147483647e+09`. Default: `8`. |
| `ism_history_rollover_retention_period` | integer | no | Min: `1`. Max: `2.147483647e+09`. Default: `30`. |

### Ml Commons {#ml-commons}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `ml_commons_model_access_control_enabled` | boolean | no | Enable or disable model access control for ML Commons. When enabled, access to ML models is controlled by security permissions. Defaults to false. |
| `ml_commons_native_memory_threshold` | integer | no | Native memory threshold percentage for ML Commons. Controls the maximum percentage of native memory that can be used by ML Commons operations. Defaults to 90%.<br/><br/>Min: `1`. Max: `100`. |
| `ml_commons_only_run_on_ml_node` | boolean | no | Enable or disable running ML Commons tasks only on ML nodes. When enabled, ML tasks will only execute on nodes designated as ML nodes. Defaults to true. |

---

url: https://community.exoscale.com/reference/api/_schemas/json-schema-pg/

---

# JSON Schema PG

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `autovacuum` | [Autovacuum](https://community.exoscale.com/reference/api/_schemas/json-schema-pg/index.md#autovacuum) | no |  |
| `bg-writer` | [BG Writer](https://community.exoscale.com/reference/api/_schemas/json-schema-pg/index.md#bg-writer) | no |  |
| `deadlock_timeout` | integer | no | This is the amount of time, in milliseconds, to wait on a lock before checking to see if there is a deadlock condition. The default is `1000` (upstream default).<br/><br/>Min: `500`. Max: `1.8e+06`. |
| `default_toast_compression` | string | no | Specifies the default TOAST compression method for values of compressible columns. The default is `lz4`. Only available for PostgreSQL 14+.<br/><br/>Allowed values: `lz4`, `pglz`. |
| `idle_in_transaction_session_timeout` | integer | no | Time out sessions with open transactions after this number of milliseconds<br/><br/>Min: `0`. Max: `6.048e+08`. |
| `io_combine_limit` | integer | no | EXPERIMENTAL: Controls the largest I/O size in operations that combine I/O in 8kB units. Version 17 and up only.<br/><br/>Min: `1`. Max: `32`. Default: `16`. |
| `io_max_combine_limit` | integer | no | EXPERIMENTAL: Controls the largest I/O size in operations that combine I/O in 8kB units, and silently limits the user-settable parameter io_combine_limit. Version 18 and up only. Changing this parameter causes a service restart.<br/><br/>Min: `1`. Max: `128`. Default: `16`. |
| `io_max_concurrency` | integer | no | EXPERIMENTAL: Controls the maximum number of I/O operations that one process can execute simultaneously. Version 18 and up only. Changing this parameter causes a service restart.<br/><br/>Min: `-1`. Max: `1024`. Default: `-1`. |
| `io_method` | string | no | EXPERIMENTAL: Controls the maximum number of I/O operations that one process can execute simultaneously. Version 18 and up only. Changing this parameter causes a service restart.<br/><br/>Allowed values: `worker`, `sync`, `io_uring`.<br/><br/>Default: `worker`. |
| `io_workers` | integer | no | EXPERIMENTAL: Number of IO worker processes, for io_method=worker. Version 18 and up only. Changing this parameter causes a service restart.<br/><br/>Min: `1`. Max: `32`. Default: `3`. |
| `jit` | boolean | no | Controls system-wide use of Just-in-Time Compilation (JIT). |
| `log_error_verbosity` | string | no | Controls the amount of detail written in the server log for each message that is logged.<br/><br/>Allowed values: `TERSE`, `DEFAULT`, `VERBOSE`. |
| `log_line_prefix` | string | no | Choose from one of the available log formats.<br/><br/>Allowed values: `pid=%p,user=%u,db=%d,app=%a,client=%h `, `pid=%p,user=%u,db=%d,app=%a,client=%h,txid=%x,qid=%Q `, `%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h `, `%m [%p] %q[user=%u,db=%d,app=%a] `. |
| `log_min_duration_statement` | integer | no | Log statements that take more than this number of milliseconds to run, -1 disables<br/><br/>Min: `-1`. Max: `8.64e+07`. |
| `log_temp_files` | integer | no | Log statements for each temporary file created larger than this number of kilobytes, -1 disables<br/><br/>Min: `-1`. Max: `2.147483647e+09`. |
| `max_files_per_process` | integer | no | PostgreSQL maximum number of files that can be open per process. The default is `1000` (upstream default). Changing this parameter causes a service restart.<br/><br/>Min: `1000`. Max: `4096`. |
| `max_locks_per_transaction` | integer | no | PostgreSQL maximum locks per transaction. Changing this parameter causes a service restart.<br/><br/>Min: `64`. Max: `6400`. |
| `max_logical_replication_workers` | integer | no | PostgreSQL maximum logical replication workers (taken from the pool of max_parallel_workers). The default is `4` (upstream default). Changing this parameter causes a service restart.<br/><br/>Min: `4`. Max: `256`. |
| `max_parallel_workers` | integer | no | Sets the maximum number of workers that the system can support for parallel queries. The default is `8` (upstream default).<br/><br/>Min: `0`. Max: `96`. |
| `max_parallel_workers_per_gather` | integer | no | Sets the maximum number of workers that can be started by a single Gather or Gather Merge node. The default is `2` (upstream default).<br/><br/>Min: `0`. Max: `96`. |
| `max_pred_locks_per_transaction` | integer | no | PostgreSQL maximum predicate locks per transaction. The default is `64` (upstream default). Changing this parameter causes a service restart.<br/><br/>Min: `64`. Max: `5120`. |
| `max_prepared_transactions` | integer | no | PostgreSQL maximum prepared transactions. The default is `0`. Changing this parameter causes a service restart.<br/><br/>Min: `0`. Max: `10000`. |
| `max_replication_slots` | integer | no | PostgreSQL maximum replication slots. The default is `20`. Changing this parameter causes a service restart.<br/><br/>Min: `8`. Max: `256`. |
| `max_stack_depth` | integer | no | Maximum depth of the stack in bytes. The default is `2097152` (upstream default).<br/><br/>Min: `2.097152e+06`. Max: `6.291456e+06`. |
| `max_standby_archive_delay` | integer | no | Max standby archive delay in milliseconds. The default is `30000` (upstream default).<br/><br/>Min: `1`. Max: `4.32e+07`. |
| `max_standby_streaming_delay` | integer | no | Max standby streaming delay in milliseconds. The default is `30000` (upstream default).<br/><br/>Min: `1`. Max: `4.32e+07`. |
| `max_sync_workers_per_subscription` | integer | no | Maximum number of synchronization workers per subscription. The default is `2`.<br/><br/>Min: `2`. Max: `8`. |
| `max_worker_processes` | integer | no | Sets the maximum number of background processes that the system can support. The default is `8`. Changing this parameter causes a service restart.<br/><br/>Min: `8`. Max: `288`. |
| `password_encryption` | string | no | Chooses the algorithm for encrypting passwords.<br/><br/>Allowed values: `md5`, `scram-sha-256`. |
| `pg_partman_bgw.interval` | integer | no | Sets the time interval in seconds to run pg_partman's scheduled tasks. The default is `3600`.<br/><br/>Min: `3600`. Max: `604800`. |
| `pg_partman_bgw.role` | string | no | Controls which role to use for pg_partman's scheduled background tasks.<br/><br/>Max length: `64`. |
| `pg_stat_monitor.pgsm_enable_query_plan` | boolean | no | Enables or disables query plan monitoring. Changing this parameter causes a service restart. Only available for PostgreSQL 13+. |
| `pg_stat_monitor.pgsm_max_buckets` | integer | no | Sets the maximum number of buckets. Changing this parameter causes a service restart. Only available for PostgreSQL 13+.<br/><br/>Min: `1`. Max: `10`. |
| `pg_stat_statements.track` | string | no | Controls which statements are counted. Specify top to track top-level statements (those issued directly by clients), all to also track nested statements (such as statements invoked within functions), or none to disable statement statistics collection. The default is `top`.<br/><br/>Allowed values: `all`, `top`, `none`. |
| `temp_file_limit` | integer | no | PostgreSQL temporary file limit in KiB, -1 for unlimited<br/><br/>Min: `-1`. Max: `2.147483647e+09`. |
| `timezone` | string | no | PostgreSQL service timezone<br/><br/>Max length: `64`. |
| `track_activity_query_size` | integer | no | Specifies the number of bytes reserved to track the currently executing command for each active session. Changing this parameter causes a service restart.<br/><br/>Min: `1024`. Max: `10240`. |
| `track_commit_timestamp` | string | no | Record commit time of transactions. Changing this parameter causes a service restart.<br/><br/>Allowed values: `off`, `on`. |
| `track_functions` | string | no | Enables tracking of function call counts and time used.<br/><br/>Allowed values: `all`, `pl`, `none`. |
| `track_io_timing` | string | no | Enables timing of database I/O calls. The default is `off`. When on, it will repeatedly query the operating system for the current time, which may cause significant overhead on some platforms.<br/><br/>Allowed values: `off`, `on`. |
| `wal` | [Wal](https://community.exoscale.com/reference/api/_schemas/json-schema-pg/index.md#wal) | no |  |

### Wal {#wal}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `max_slot_wal_keep_size` | integer | no | PostgreSQL maximum WAL size (MB) reserved for replication slots. If `-1` is specified, replication slots may retain an unlimited amount of WAL files. The default is `-1` (upstream default). wal_keep_size minimum WAL size setting takes precedence over this.<br/><br/>Min: `-1`. Max: `2.147483647e+09`. |
| `max_wal_senders` | integer | no | PostgreSQL maximum WAL senders. The default is `20`. Changing this parameter causes a service restart.<br/><br/>Min: `20`. Max: `256`. |
| `wal_sender_timeout` | integer | no | Terminate replication connections that are inactive for longer than this amount of time, in milliseconds.<br/><br/>Min: `0`. Max: `1.08e+07`. |
| `wal_writer_delay` | integer | no | WAL flush interval in milliseconds. The default is `200`. Setting this parameter to a lower value may negatively impact performance.<br/><br/>Min: `10`. Max: `200`. |

### Autovacuum {#autovacuum}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `autovacuum_analyze_scale_factor` | number | no | Specifies a fraction of the table size to add to autovacuum_analyze_threshold when deciding whether to trigger an ANALYZE (e.g. `0.2` for 20% of the table size). The default is `0.2`.<br/><br/>Min: `0`. Max: `1`. |
| `autovacuum_analyze_threshold` | integer | no | Specifies the minimum number of inserted, updated or deleted tuples needed to trigger an ANALYZE in any one table. The default is `50`.<br/><br/>Min: `0`. Max: `2.147483647e+09`. |
| `autovacuum_freeze_max_age` | integer | no | Specifies the maximum age (in transactions) that a table's pg_class.relfrozenxid field can attain before a VACUUM operation is forced to prevent transaction ID wraparound within the table. The system launches autovacuum processes to prevent wraparound even when autovacuum is otherwise disabled. Changing this parameter causes a service restart.<br/><br/>Min: `2e+08`. Max: `1.5e+09`. |
| `autovacuum_max_workers` | integer | no | Specifies the maximum number of autovacuum processes (other than the autovacuum launcher) that may be running at any one time. The default is `3`. Changing this parameter causes a service restart.<br/><br/>Min: `1`. Max: `20`. |
| `autovacuum_naptime` | integer | no | Specifies the minimum delay between autovacuum runs on any given database. The delay is measured in seconds. The default is `60`.<br/><br/>Min: `1`. Max: `86400`. |
| `autovacuum_vacuum_cost_delay` | integer | no | Specifies the cost delay value that will be used in automatic VACUUM operations. If `-1` is specified, the regular vacuum_cost_delay value will be used. The default is `2` (upstream default).<br/><br/>Min: `-1`. Max: `100`. |
| `autovacuum_vacuum_cost_limit` | integer | no | Specifies the cost limit value that will be used in automatic VACUUM operations. If `-1` is specified, the regular vacuum_cost_limit value will be used. The default is `-1` (upstream default).<br/><br/>Min: `-1`. Max: `10000`. |
| `autovacuum_vacuum_scale_factor` | number | no | Specifies a fraction of the table size to add to autovacuum_vacuum_threshold when deciding whether to trigger a VACUUM (e.g. `0.2` for 20% of the table size). The default is `0.2`.<br/><br/>Min: `0`. Max: `1`. |
| `autovacuum_vacuum_threshold` | integer | no | Specifies the minimum number of updated or deleted tuples needed to trigger a VACUUM in any one table. The default is `50`.<br/><br/>Min: `0`. Max: `2.147483647e+09`. |
| `log_autovacuum_min_duration` | integer | no | Causes each action executed by autovacuum to be logged if it ran for at least the specified number of milliseconds. Setting this to zero logs all autovacuum actions. Minus-one disables logging autovacuum actions. The default is `1000`.<br/><br/>Min: `-1`. Max: `2.147483647e+09`. |

### BG Writer {#bg-writer}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `bgwriter_delay` | integer | no | Specifies the delay between activity rounds for the background writer in milliseconds. The default is `200`.<br/><br/>Min: `10`. Max: `10000`. |
| `bgwriter_flush_after` | integer | no | Whenever more than bgwriter_flush_after bytes have been written by the background writer, attempt to force the OS to issue these writes to the underlying storage. Specified in kilobytes. Setting of 0 disables forced writeback. The default is `512`.<br/><br/>Min: `0`. Max: `2048`. |
| `bgwriter_lru_maxpages` | integer | no | In each round, no more than this many buffers will be written by the background writer. Setting this to zero disables background writing. The default is `100`.<br/><br/>Min: `0`. Max: `1.073741823e+09`. |
| `bgwriter_lru_multiplier` | number | no | The average recent need for new buffers is multiplied by bgwriter_lru_multiplier to arrive at an estimate of the number that will be needed during the next round, (up to bgwriter_lru_maxpages). 1.0 represents a “just in time” policy of writing exactly the number of buffers predicted to be needed. Larger values provide some cushion against spikes in demand, while smaller values intentionally leave writes to be done by server processes. The default is `2.0`.<br/><br/>Min: `0`. Max: `10`. |

---

url: https://community.exoscale.com/reference/api/_schemas/json-schema-pgaudit/

---

# JSON Schema Pgaudit

System-wide settings for the pgaudit extension.

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `feature_enabled` | boolean | no | Enable pgaudit extension. When enabled, pgaudit extension will be automatically installed.Otherwise, extension will be uninstalled but auditing configurations will be preserved.<br/><br/>Default: `false`. |
| `log` | array[string] | no | Specifies which classes of statements will be logged by session audit logging. |
| `log_catalog` | boolean | no | Specifies that session logging should be enabled in the case where all relations in a statement are in pg_catalog.<br/><br/>Default: `true`. |
| `log_client` | boolean | no | Specifies whether log messages will be visible to a client process such as psql.<br/><br/>Default: `false`. |
| `log_level` | string | no | Specifies the log level that will be used for log entries.<br/><br/>Allowed values: `debug1`, `debug2`, `debug3`, `debug4`, `debug5`, `info`, `notice`, `warning`, `log`.<br/><br/>Default: `log`. |
| `log_max_string_length` | integer | no | Crop parameters representation and whole statements if they exceed this threshold. A (default) value of -1 disable the truncation.<br/><br/>Min: `-1`. Max: `102400`. Default: `-1`. |
| `log_nested_statements` | boolean | no | This GUC allows to turn off logging nested statements, that is, statements that are executed as part of another ExecutorRun.<br/><br/>Default: `true`. |
| `log_parameter` | boolean | no | Specifies that audit logging should include the parameters that were passed with the statement.<br/><br/>Default: `false`. |
| `log_parameter_max_size` | integer | no | Specifies that parameter values longer than this setting (in bytes) should not be logged, but replaced with <long param suppressed>.<br/><br/>Default: `0`. |
| `log_relation` | boolean | no | Specifies whether session audit logging should create a separate log entry for each relation (TABLE, VIEW, etc.) referenced in a SELECT or DML statement.<br/><br/>Default: `false`. |
| `log_rows` | boolean | no | Default: `false`. |
| `log_statement` | boolean | no | Specifies whether logging will include the statement text and parameters (if enabled).<br/><br/>Default: `true`. |
| `log_statement_once` | boolean | no | Specifies whether logging will include the statement text and parameters with the first log entry for a statement/substatement combination or with every entry.<br/><br/>Default: `false`. |
| `role` | string | no | Specifies the master role to use for object audit logging.<br/><br/>Max length: `64`. |

---

url: https://community.exoscale.com/reference/api/_schemas/json-schema-pgbouncer/

---

# JSON Schema Pgbouncer

System-wide settings for pgbouncer.

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `autodb_idle_timeout` | integer | no | Min: `0`. Max: `86400`. Default: `3600`. |
| `autodb_max_db_connections` | integer | no | Min: `0`. Max: `2.147483647e+09`. |
| `autodb_pool_mode` | string | no | Allowed values: `transaction`, `session`, `statement`.<br/><br/>Default: `transaction`. |
| `autodb_pool_size` | integer | no | Min: `0`. Max: `10000`. Default: `0`. |
| `ignore_startup_parameters` | array[string] | no |  |
| `max_prepared_statements` | integer | no | Min: `0`. Max: `3000`. Default: `100`. |
| `min_pool_size` | integer | no | Min: `0`. Max: `10000`. Default: `0`. |
| `server_idle_timeout` | integer | no | Min: `0`. Max: `86400`. Default: `600`. |
| `server_lifetime` | integer | no | Min: `60`. Max: `86400`. Default: `3600`. |
| `server_reset_query_always` | boolean | no | Default: `false`. |

---

url: https://community.exoscale.com/reference/api/_schemas/json-schema-pglookout/

---

# JSON Schema Pglookout

System-wide settings for pglookout.

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `max_failover_replication_time_lag` | integer | no | Number of seconds of master unavailability before triggering database failover to standby<br/><br/>Min: `10`. Max: `9.223372036854776e+18`. Default: `60`. |

---

url: https://community.exoscale.com/reference/api/_schemas/json-schema-schema-registry/

---

# JSON Schema Schema Registry

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `leader_eligibility` | boolean | no | If true, Karapace / Schema Registry on the service nodes can participate in leader election. It might be needed to disable this when the schemas topic is replicated to a secondary cluster and Karapace / Schema Registry there must not participate in leader election. Defaults to `true`. |
| `topic_name` | string | no | The durable single partition topic that acts as the durable log for the data. This topic must be compacted to avoid losing data due to retention policy. Please note that changing this configuration in an existing Schema Registry / Karapace setup leads to previous schemas being inaccessible, data encoded with them potentially unreadable and schema ID sequence put out of order. It's only possible to do the switch while Schema Registry / Karapace is disabled. Defaults to `_schemas`.<br/><br/>Min length: `1`. Max length: `249`. |

---

url: https://community.exoscale.com/reference/api/_schemas/json-schema-thanos/

---

# JSON Schema Thanos

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `compactor` | [Compactor](https://community.exoscale.com/reference/api/_schemas/json-schema-thanos/index.md#compactor) | no | Configuration options for Thanos Compactor. |
| `query` | [Query](https://community.exoscale.com/reference/api/_schemas/json-schema-thanos/index.md#query) | no | Configuration options for Thanos Query. |
| `query-frontend` | [Query Frontend](https://community.exoscale.com/reference/api/_schemas/json-schema-thanos/index.md#query-frontend) | no | Configuration options for Thanos Query Frontend. |

### Compactor {#compactor}

Configuration options for Thanos Compactor.

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `retention.days` | integer | no | Retention time for data in days for each resolution (5m, 1h, raw)<br/><br/>Min: `0`. |

### Query {#query}

Configuration options for Thanos Query.

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `query.default-evaluation-interval` | string | no | Set the default evaluation interval for subqueries.<br/><br/>Default: `1m`. Max length: `20`. |
| `query.lookback-delta` | string | no | The maximum lookback duration for retrieving metrics during expression evaluations in PromQL. PromQL always evaluates the query for a certain timestamp, and it looks back for the given amount of time to get the latest sample. If it exceeds the maximum lookback delta, it assumes the series is stale and returns none (a gap). The lookback delta should be set to at least 2 times the slowest scrape interval. If unset, it will use the promql default of 5m.<br/><br/>Default: `5m`. Max length: `20`. |
| `query.metadata.default-time-range` | string | no | The default metadata time range duration for retrieving labels through Labels and Series API when the range parameters are not specified. The zero value means the range covers the time since the beginning.<br/><br/>Default: `0s`. Max length: `20`. |
| `query.timeout` | string | no | Maximum time to process a query by the query node.<br/><br/>Default: `2m`. Max length: `20`. |
| `store.limits.request-samples` | integer | no | The maximum samples allowed for a single Series request. The Series call fails if this limit is exceeded. Set to 0 for no limit. NOTE: For efficiency, the limit is internally implemented as 'chunks limit' considering each chunk contains a maximum of 120 samples. The default value is 100 * store.limits.request-series.<br/><br/>Min: `0`. Max: `1e+08`. Default: `0`. |
| `store.limits.request-series` | integer | no | The maximum series allowed for a single Series request. The Series call fails if this limit is exceeded. Set to 0 for no limit. The default value is 1000 * cpu_count.<br/><br/>Min: `0`. Max: `1e+08`. Default: `0`. |

### Query Frontend {#query-frontend}

Configuration options for Thanos Query Frontend.

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `query-range.align-range-with-step` | boolean | no | Whether to align the query range boundaries with the step. If enabled, the query range boundaries will be aligned to the step, providing more accurate results for queries with high-resolution data.<br/><br/>Default: `true`. |

---

url: https://community.exoscale.com/reference/api/_schemas/json-schema-timescaledb/

---

# JSON Schema Timescaledb

System-wide settings for the timescaledb extension

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `max_background_workers` | integer | no | The number of background workers for timescaledb operations. You should configure this setting to the sum of your number of databases and the total number of concurrent background workers you want running at any given point in time. Changing this parameter causes a service restart.<br/><br/>Min: `1`. Max: `4096`. Default: `16`. |

---

url: https://community.exoscale.com/reference/api/_schemas/json-schema-valkey/

---

# JSON Schema Valkey

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `acl_channels_default` | string | no | Determines default pub/sub channels' ACL for new users if ACL is not supplied. When this option is not defined, all_channels is assumed to keep backward compatibility. This option doesn't affect Valkey configuration acl-pubsub-default.<br/><br/>Allowed values: `allchannels`, `resetchannels`. |
| `active_expire_effort` | integer | no | Valkey reclaims expired keys both when accessed and in the background. The background process scans for expired keys to free memory. Increasing the active-expire-effort setting (default 1, max 10) uses more CPU to reclaim expired keys faster, reducing memory usage but potentially increasing latency.<br/><br/>Min: `1`. Max: `10`. Default: `1`. |
| `frequent_snapshots` | boolean | no | When enabled, Valkey will create frequent local RDB snapshots. When disabled, Valkey will only take RDB snapshots when a backup is created, based on the backup schedule. This setting is ignored when `valkey_persistence` is set to `off`.<br/><br/>Default: `true`. |
| `io_threads` | integer | no | Set Valkey IO thread count. Changing this will cause a restart of the Valkey service.<br/><br/>Min: `1`. Max: `32`. |
| `lfu_decay_time` | integer | no | Min: `1`. Max: `120`. Default: `1`. |
| `lfu_log_factor` | integer | no | Min: `0`. Max: `100`. Default: `10`. |
| `maxmemory_policy` | string | no | Allowed values: `noeviction`, `allkeys-lru`, `volatile-lru`, `allkeys-random`, `volatile-random`, `volatile-ttl`, `volatile-lfu`, `allkeys-lfu`.<br/><br/>Default: `noeviction`. |
| `notify_keyspace_events` | string | no | Default: ``. Max length: `32`. |
| `number_of_databases` | integer | no | Set number of Valkey databases. Changing this will cause a restart of the Valkey service.<br/><br/>Min: `1`. Max: `128`. |
| `persistence` | string | no | When persistence is 'rdb', Valkey does RDB dumps each 10 minutes if any key is changed. Also RDB dumps are done according to backup schedule for backup purposes. When persistence is 'off', no RDB dumps and backups are done, so data can be lost at any moment if service is restarted for any reason, or if service is powered off. Also service can't be forked.<br/><br/>Allowed values: `off`, `rdb`. |
| `pubsub_client_output_buffer_limit` | integer | no | Set output buffer limit for pub / sub clients in MB. The value is the hard limit, the soft limit is 1/4 of the hard limit. When setting the limit, be mindful of the available memory in the selected service plan.<br/><br/>Min: `32`. Max: `512`. |
| `ssl` | boolean | no | Default: `true`. |
| `timeout` | integer | no | Min: `0`. Max: `3.1536e+07`. Default: `300`. |

---

url: https://community.exoscale.com/reference/api/_schemas/key-material/

---

# Key Material

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `automatic` | boolean | **yes** | Flag stating whether an automation run handled this historic mutation or if manual actor keys initiated it. |
| `created-at` | string | **yes** | The UTC date-time indicating when this particular generation of physical cryptographic material was seeded.<br/><br/>ISO 8601 date-time. |
| `version` | integer | **yes** | The incremental index tracing internal key rotation cycles for the key material. |

---

url: https://community.exoscale.com/reference/api/_schemas/key-rotation-config/

---

# Key Rotation Config

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `automatic` | boolean | **yes** | When set to true, dictates that the system automatically rotates material periodically. |
| `manual-count` | integer | **yes** | Total running tally of manual key rotation tasks executed by users over this key resource's lifecycle. |
| `next-at` | string | **yes** | Scheduled deadline calculation pinpointing the next automated rotational iteration target date.<br/><br/>ISO 8601 date-time. |
| `rotation-period` | integer | **yes** | The set frequency period (measured in days) for triggers monitoring auto-rotation loops. |

---

url: https://community.exoscale.com/reference/api/_schemas/key-store-health/

---

# Key Store Health

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `checked-at` | string | no | Timestamp of the latest completed health check.<br/><br/>ISO 8601 date-time. |
| `error-detail` | string | no | Normalized error detail for unhealthy observations. |
| `metadata-json` | string | no | Base64-encoded raw successful AWS GetHealthStatus JSON metadata.<br/><br/>Base64-encoded string. |
| `status` | string | no | Latest normalized XKS proxy health status.<br/><br/>Allowed values: `healthy`, `unhealthy`, `unknown`. |
| `status-reason` | string | no | Normalized reason for the latest status. |

---

url: https://community.exoscale.com/reference/api/_schemas/key-store-proxy/

---

# Key Store Proxy

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `auth` | [Key Store Proxy Auth](https://community.exoscale.com/reference/api/_schemas/key-store-proxy-auth/index.md) | **yes** |  |
| `endpoint` | string | **yes** | Public URL used to route communication to the customer-managed XKS proxy.<br/><br/>Format: `uri`. |

---

url: https://community.exoscale.com/reference/api/_schemas/key-store-proxy-auth/

---

# Key Store Proxy Auth

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `key` | string | **yes** | Access key used to sign requests sent to the XKS proxy. |
| `secret` | string | **yes** | Secret key used to sign requests sent to the XKS proxy. This value is never returned by the API. |

---

url: https://community.exoscale.com/reference/api/_schemas/key-store-proxy-auth-response/

---

# Key Store Proxy Auth Response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `key` | string | no | Access key used to sign requests sent to the XKS proxy. |

---

url: https://community.exoscale.com/reference/api/_schemas/key-store-proxy-response/

---

# Key Store Proxy Response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `auth` | [Key Store Proxy Auth Response](https://community.exoscale.com/reference/api/_schemas/key-store-proxy-auth-response/index.md) | no |  |
| `endpoint` | string | no | Public URL used to route communication to the customer-managed XKS proxy.<br/><br/>Format: `uri`. |

---

url: https://community.exoscale.com/reference/api/_schemas/kubelet-image-gc/

---

# Kubelet Image GC

Kubelet image GC options

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `high-threshold` | integer | no | Min: `0`. |
| `low-threshold` | integer | no | Min: `0`. |
| `min-age` | string | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/labels/

---

# Labels

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/list-ai-api-keys-response/

---

# List AI API Keys Response

List of AI API keys

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `ai-api-keys` | array of [AI API key list entry](https://community.exoscale.com/reference/api/_schemas/list-ai-api-keys-response-entry/index.md) | **yes** |  |

---

url: https://community.exoscale.com/reference/api/_schemas/list-ai-api-keys-response-entry/

---

# List AI API Keys Response Entry

AI API key list entry

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `all-deployments` | boolean | **yes** | True when the key has access to all deployments of the organization. |
| `all-models` | boolean | **yes** | True when the key has access to all public models. |
| `created-at` | string | **yes** | ISO 8601 date-time. |
| `deployments` | array of [AI API Key Deployment Ref](https://community.exoscale.com/reference/api/_schemas/ai-api-key-deployment-ref/index.md) | **yes** |  |
| `id` | string | **yes** | Must be a valid UUID. |
| `models` | array[string] | **yes** |  |
| `name` | string | **yes** |  |
| `revoked-at` | string | null | **yes** | Revocation timestamp. Null when the API key is active.<br/><br/>ISO 8601 date-time. |
| `updated-at` | string | **yes** | ISO 8601 date-time. |

---

url: https://community.exoscale.com/reference/api/_schemas/list-ai-instance-types-response/

---

# List AI Instance Types Response

List of available instance types with authorization status

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `instance-types` | array of [Instance type with authorization status](https://community.exoscale.com/reference/api/_schemas/instance-type-entry/index.md) | **yes** |  |

---

url: https://community.exoscale.com/reference/api/_schemas/list-deployments-response/

---

# List Deployments Response

AI deployment list

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `deployments` | array of [AI deployment](https://community.exoscale.com/reference/api/_schemas/list-deployments-response-entry/index.md) | **yes** |  |

---

url: https://community.exoscale.com/reference/api/_schemas/list-deployments-response-entry/

---

# List Deployments Response Entry

AI deployment

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `deployment-url` | string | **yes** | Deployment inference endpoint URL |
| `model` | [Model reference. Provide either id or name.](https://community.exoscale.com/reference/api/_schemas/model-ref/index.md) | **yes** |  |
| `name` | string | **yes** | Deployment name<br/><br/>Min length: `1`. |
| `state` | string | **yes** | Deployment state<br/><br/>Allowed values: `ready`, `creating`, `preparing`, `error`, `deploying`, `scaling`, `updating`. |
| `created-at` | string | no | Creation time<br/><br/>ISO 8601 date-time. |
| `gpu-count` | integer | no | Number of GPUs<br/><br/>Min: `1`. |
| `gpu-type` | string | no | GPU type family<br/><br/>Min length: `1`. |
| `id` | string | no | Deployment ID<br/><br/>Must be a valid UUID. |
| `replicas` | integer | no | Number of replicas (>=0)<br/><br/>Min: `0`. |
| `service-level` | string | no | Service level<br/><br/>Min length: `1`. |
| `updated-at` | string | no | Update time<br/><br/>ISO 8601 date-time. |

---

url: https://community.exoscale.com/reference/api/_schemas/list-key-stores-response/

---

# List Key Stores Response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `key-stores` | array of [List Key Stores Response Entry](https://community.exoscale.com/reference/api/_schemas/list-key-stores-response-entry/index.md) | no | The key stores configured for the organization. |

---

url: https://community.exoscale.com/reference/api/_schemas/list-key-stores-response-entry/

---

# List Key Stores Response Entry

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `created-at` | string | no | The creation timestamp.<br/><br/>ISO 8601 date-time. |
| `description` | string | no | An optional detailed description providing additional context about the key store's intended use case. |
| `id` | string | no | The globally unique identifier assigned to the key store.<br/><br/>Must be a valid UUID. |
| `name` | string | no | The display name assigned to the key store. |
| `proxy` | [Key Store Proxy Response](https://community.exoscale.com/reference/api/_schemas/key-store-proxy-response/index.md) | no |  |
| `status` | string | no | The current connection status of the key store.<br/><br/>Allowed values: `connected`, `disconnected`. |
| `status-since` | string | no | The timestamp indicating when the current key store status last transitioned.<br/><br/>ISO 8601 date-time. |
| `type` | string | no | The key store type.<br/><br/>Allowed values: `external-key-store`. |

---

url: https://community.exoscale.com/reference/api/_schemas/list-kms-key-rotations-response/

---

# List Kms Key Rotations Response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `rotations` | array of [List Kms Key Rotations Response Entry](https://community.exoscale.com/reference/api/_schemas/list-kms-key-rotations-response-entry/index.md) | **yes** | A chronologically ordered collection tracking historical rotation lifecycle occurrences for this resource. |

---

url: https://community.exoscale.com/reference/api/_schemas/list-kms-key-rotations-response-entry/

---

# List Kms Key Rotations Response Entry

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `automatic` | boolean | **yes** | Flag stating whether an automation run handled this historic mutation or if manual actor keys initiated it. |
| `rotated-at` | string | **yes** | The UTC timestamp tracking precisely when this historical adjustment pass finished processing.<br/><br/>ISO 8601 date-time. |
| `version` | integer | **yes** | The absolute increment index referencing this specific historical structural material setup. |

---

url: https://community.exoscale.com/reference/api/_schemas/list-kms-keys-response/

---

# List Kms Keys Response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `kms-keys` | array of [List Kms Keys Response Entry](https://community.exoscale.com/reference/api/_schemas/list-kms-keys-response-entry/index.md) | **yes** | An array containing metadata entries for all available keys for your organization in the requested zone. |

---

url: https://community.exoscale.com/reference/api/_schemas/list-kms-keys-response-entry/

---

# List Kms Keys Response Entry

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `created-at` | string | **yes** | The UTC timestamp showing when the KMS key was originally provisioned.<br/><br/>ISO 8601 date-time. |
| `id` | string | **yes** | The globally unique identifier (UUID) tracking this key entity.<br/><br/>Must be a valid UUID. |
| `key-spec` | string | **yes** | The cryptographic key specification used to generate the key, defining its algorithm and, for asymmetric keys, its curve or modulus size. |
| `material` | [Key Material](https://community.exoscale.com/reference/api/_schemas/key-material/index.md) | **yes** |  |
| `multi-zone` | boolean | **yes** | True if this is a multi-zone key. |
| `name` | string | **yes** | The display name of the KMS key. |
| `origin-zone` | string | **yes** | The creation zone of the KMS key. |
| `revision` | [Revision Stamp](https://community.exoscale.com/reference/api/_schemas/revision-stamp/index.md) | **yes** |  |
| `rotation` | [Key Rotation Config](https://community.exoscale.com/reference/api/_schemas/key-rotation-config/index.md) | **yes** |  |
| `source` | string | **yes** | Indicates the source of the key material, either generated and held within Exoscale KMS, or backed by an external key store.<br/><br/>Allowed values: `exoscale-kms`, `external-key-store`. |
| `status` | string | **yes** | Allowed values: `enabled`, `disabled`, `pending-deletion`. |
| `status-since` | string | **yes** | The precise time when the key entered its current configuration phase.<br/><br/>ISO 8601 date-time. |
| `usage` | string | **yes** | The cryptographic operation constraints allowed on this key. |
| `delete-at` | string | no | ISO 8601 date-time. |
| `description` | string | no | An optional detailed description providing additional context about the key's intended use case. |
| `replicas` | array[string] | no | Array tracking target zones currently maintaining copies of this item. |
| `xks` | [Xks Key](https://community.exoscale.com/reference/api/_schemas/xks-key/index.md) | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/list-models-response/

---

# List Models Response

AI model list

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `models` | array of [AI model](https://community.exoscale.com/reference/api/_schemas/list-models-response-entry/index.md) | **yes** |  |

---

url: https://community.exoscale.com/reference/api/_schemas/list-models-response-entry/

---

# List Models Response Entry

AI model

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `created-at` | string | **yes** | Creation time<br/><br/>ISO 8601 date-time. |
| `id` | string | **yes** | Model ID<br/><br/>Must be a valid UUID. |
| `model-size` | integer | **yes** | Model size in bytes<br/><br/>Min: `0`. |
| `name` | string | **yes** | Model name<br/><br/>Min length: `1`. |
| `state` | string | **yes** | Model state<br/><br/>Allowed values: `ready`, `creating`, `downloading`, `error`, `created`. |
| `updated-at` | string | **yes** | Update time<br/><br/>ISO 8601 date-time. |
| `lifecycle-status` | string | null | no | Model lifecycle state<br/><br/>Allowed values: `preview`, `active`, `deprecated`, `eol`, `null`. |
| `visibility` | string | no | Model visibility<br/><br/>Allowed values: `private`, `public`. |

---

url: https://community.exoscale.com/reference/api/_schemas/list-route-entry/

---

# List Route Entry

Route

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | no | Route description<br/><br/>Max length: `4096`. |
| `destination` | string | no | Route destination CIDR |
| `id` | string | no | Route ID<br/><br/>Must be a valid UUID. |
| `kind` | string | no | Route kind<br/><br/>Allowed values: `Subnet`, `Vpc`. |
| `target` | string | no | Route target |

---

url: https://community.exoscale.com/reference/api/_schemas/list-subnet-entry/

---

# List Subnet Entry

Subnet

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `address-space` | string | no | Subnet address space<br/><br/>Allowed values: `private`. |
| `addressfamily` | string | no | Subnet address family<br/><br/>Allowed values: `inet4`, `dual`. |
| `created-at` | string | no | Subnet creation date<br/><br/>ISO 8601 date-time. |
| `description` | string | no | Subnet description<br/><br/>Max length: `4096`. |
| `id` | string | no | Subnet ID<br/><br/>Must be a valid UUID. |
| `ipv4-block` | string | no | Subnet ipv4 CIDR |
| `labels` | object | no | Resource labels |
| `name` | string | no | Subnet name<br/><br/>Min length: `1`. Max length: `255`. |

---

url: https://community.exoscale.com/reference/api/_schemas/list-vpc-entry/

---

# List Vpc Entry

VPC

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `created-at` | string | no | VPC creation date<br/><br/>ISO 8601 date-time. |
| `default` | boolean | no | Indicates if this is the organization's default VPC |
| `description` | string | no | VPC description<br/><br/>Max length: `4096`. |
| `dhcp-options` | [VPC DHCP options](https://community.exoscale.com/reference/api/_schemas/vpc-dhcp-options/index.md) | no | DHCP options |
| `id` | string | no | VPC ID<br/><br/>Must be a valid UUID. |
| `labels` | object | no | Resource labels |
| `name` | string | no | VPC name<br/><br/>Min length: `1`. Max length: `255`. |

---

url: https://community.exoscale.com/reference/api/_schemas/live-balance/

---

# Live Balance

Live balance

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `balance` | number | no | Organization live balance |
| `currency` | string | no | Organization currency |

---

url: https://community.exoscale.com/reference/api/_schemas/load-balancer/

---

# Load Balancer

Load Balancer

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `addressfamily` | string | no | Load Balancer address family<br/><br/>Allowed values: `inet4`, `inet6`. |
| `created-at` | string | no | Load Balancer creation date<br/><br/>ISO 8601 date-time. |
| `description` | string | no | Load Balancer description<br/><br/>Max length: `255`. |
| `id` | string | no | Load Balancer ID<br/><br/>Must be a valid UUID. |
| `ip` | string | no | Load Balancer public IP<br/><br/>Format: `ip`. |
| `labels` | object | no | Load Balancer Labels |
| `name` | string | no | Load Balancer name<br/><br/>Min length: `1`. Max length: `255`. |
| `services` | array of [Load Balancer Service](https://community.exoscale.com/reference/api/_schemas/load-balancer-service/index.md) | no | Load Balancer Services |
| `state` | string | no | Load Balancer state<br/><br/>Allowed values: `creating`, `migrated`, `deleting`, `running`, `migrating`, `error`. |

---

url: https://community.exoscale.com/reference/api/_schemas/load-balancer-server-status/

---

# Load Balancer Server Status

Load Balancer Service status

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `public-ip` | string | no | Backend server public IP<br/><br/>Format: `ip`. |
| `status` | string | no | Status of the instance's healthcheck<br/><br/>Allowed values: `failure`, `success`. |

---

url: https://community.exoscale.com/reference/api/_schemas/load-balancer-service/

---

# Load Balancer Service

Load Balancer Service

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | no | Load Balancer Service description<br/><br/>Max length: `255`. |
| `healthcheck` | [Load Balancer Service healthcheck](https://community.exoscale.com/reference/api/_schemas/load-balancer-service-healthcheck/index.md) | no | Healthcheck configuration |
| `healthcheck-status` | array of [Load Balancer Service status](https://community.exoscale.com/reference/api/_schemas/load-balancer-server-status/index.md) | no | Healthcheck status per backend server |
| `id` | string | no | Load Balancer Service ID<br/><br/>Must be a valid UUID. |
| `instance-pool` | [Instance Pool](https://community.exoscale.com/reference/api/_schemas/instance-pool/index.md) | no | Instance Pool to forward network traffic to |
| `name` | string | no | Load Balancer Service name<br/><br/>Min length: `1`. Max length: `255`. |
| `port` | integer | no | Port exposed on the Load Balancer's public IP<br/><br/>Min: `0`. |
| `protocol` | string | no | Network traffic protocol<br/><br/>Allowed values: `tcp`, `udp`. |
| `state` | string | no | Load Balancer Service state<br/><br/>Allowed values: `creating`, `deleting`, `running`, `updating`, `error`. |
| `strategy` | string | no | Load balancing strategy<br/><br/>Allowed values: `round-robin`, `maglev-hash`, `source-hash`. |
| `target-port` | integer | no | Port on which the network traffic will be forwarded to on the receiving instance<br/><br/>Min: `0`. |

---

url: https://community.exoscale.com/reference/api/_schemas/load-balancer-service-healthcheck/

---

# Load Balancer Service Healthcheck

Load Balancer Service healthcheck

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `interval` | integer | no | Healthcheck interval (default: 10). Must be greater than or equal to Timeout<br/><br/>Min: `5`. Max: `300`. |
| `mode` | string | no | Healthcheck mode<br/><br/>Allowed values: `tcp`, `http`, `https`. |
| `port` | integer | no | Healthcheck port<br/><br/>Min: `1`. Max: `65535`. |
| `retries` | integer | no | Number of retries before considering a Service failed<br/><br/>Min: `1`. Max: `20`. |
| `timeout` | integer | no | Healthcheck timeout value (default: 2). Must be lower than or equal to Interval<br/><br/>Min: `2`. Max: `60`. |
| `tls-sni` | string | no | SNI domain for HTTPS healthchecks<br/><br/>Min length: `1`. Max length: `255`. |
| `uri` | string | no | An endpoint to use for the HTTP healthcheck, e.g. '/status'<br/><br/>Min length: `1`. Max length: `255`. |

---

url: https://community.exoscale.com/reference/api/_schemas/manager/

---

# Manager

Resource manager

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | Manager ID<br/><br/>Must be a valid UUID. |
| `type` | string | no | Manager type<br/><br/>Allowed values: `sks-nodepool`, `instance-pool`. |

---

url: https://community.exoscale.com/reference/api/_schemas/model-ref/

---

# Model Ref

Model reference. Provide either id or name.

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | Associated model ID<br/><br/>Must be a valid UUID. |
| `name` | string | no | Associated model name<br/><br/>Min length: `1`. |

---

url: https://community.exoscale.com/reference/api/_schemas/networking/

---

# Networking

EXPERIMENTAL: Cluster networking configuration.

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `cluster-cidr` | string | no | CIDR Range for Pods in cluster. This must not overlap with any IP ranges assigned to pods. Max of two, comma-separated, dual-stack CIDRs is allowed.               If not specified, defaults to 192.168.0.0/16. |
| `node-cidr-mask-size-ipv4` | integer | no | Mask size for node cidr in cluster. It must be larger than, and at most 16 bits longer than, the Pod CIDR subnet mask. Defaults to 24<br/><br/>Min: `0`. |
| `node-cidr-mask-size-ipv6` | integer | no | Mask size for node cidr in cluster. It must be larger than, and at most 16 bits longer than, the Pod CIDR subnet mask. Defaults to 64<br/><br/>Min: `0`. |
| `service-cluster-ip-range` | string | no | CIDR range for service cluster IPs. This must not overlap with any IP ranges assigned to nodes or pods. Max of two, comma-separated, dual-stack CIDRs is allowed. The IPv6 range must be no larger than a /108 (upstream Kubernetes apiserver limit).               If not specified, defaults to 10.96.0.0/12. |

---

url: https://community.exoscale.com/reference/api/_schemas/nvidia-mig-profile-a30.24gb/

---

# Nvidia Mig Profile A30.24gb

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/nvidia-mig-profile-b300.269gb/

---

# Nvidia Mig Profile B300.269gb

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/nvidia-mig-profile-rtxpro6000.96gb/

---

# Nvidia Mig Profile Rtxpro6000.96gb

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/nvidia-mig-profiles/

---

# Nvidia Mig Profiles

Nvidia MIG Profiles enabled

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `a30.24gb` | string | no | Nvidia A30 MIG Profile<br/><br/>Allowed values: `1g.6gb`, `1g.6gb+me`, `2g.12gb`, `2g.12gb+me`, `4g.24gb`. |
| `b300.269gb` | string | no | Nvidia B300 MIG Profile<br/><br/>Allowed values: `1g.34gb`, `1g.34gb+me`, `1g.67gb`, `2g.67gb`, `3g.135gb`, `4g.135gb`, `7g.269gb`. |
| `rtxpro6000.96gb` | string | no | Nvidia RTXPRO6000 MIG Profile<br/><br/>Allowed values: `1g.24gb`, `1g.24gb+me`, `1g.24gb+gfx`, `1g.24gb+me.all`, `1g.24gb-me`, `2g.48gb`, `2g.48gb+gfx`, `2g.48gb+me.all`, `2g.48gb-me`, `4g.96gb`, `4g.96gb+gfx`. |

---

url: https://community.exoscale.com/reference/api/_schemas/operation/

---

# Operation

Operation

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | no | Operation message |
| `reason` | string | no | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | no | Related resource reference |
| `state` | string | no | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

### Reference {#reference}

Related resource reference

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `command` | string | no | Command name |
| `id` | string | no | Reference ID<br/><br/>Must be a valid UUID. |
| `link` | string | no | Link to the referenced resource |

---

url: https://community.exoscale.com/reference/api/_schemas/org-consumption-quota-response/

---

# Org Consumption Quota Response

Per-org Unit Of Measurement (UOM) consumption quota response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `quota-uom-per-minute` | integer | null | no | Per-org Unit Of Measurement (UOM) consumption quota (UOM/min). Null means unlimited. UOM represents weighted units across different AI workloads (e.g., tokens for LLMs, minutes for TTS, pages for OCR).<br/><br/>Min: `0`. |

---

url: https://community.exoscale.com/reference/api/_schemas/organization/

---

# Organization

Organization

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `address` | string | no | Organization address |
| `balance` | number | no | Organization balance. DEPRECATED: use the dedicated `live-balance` endpoint |
| `city` | string | no | Organization city |
| `country` | string | no | Organization country |
| `currency` | string | no | Organization currency |
| `id` | string | no | Organization ID<br/><br/>Must be a valid UUID. |
| `name` | string | no | Organization name |
| `postcode` | string | no | Organization postcode |

---

url: https://community.exoscale.com/reference/api/_schemas/private-network/

---

# Private Network

Private Network

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | no | Private Network description<br/><br/>Max length: `255`. |
| `end-ip` | string | no | Private Network end IP address<br/><br/>Must be a valid IPv4 address. |
| `id` | string | no | Private Network ID<br/><br/>Must be a valid UUID. |
| `labels` | object | no | Resource labels |
| `leases` | array of [Private Network leased IP address](https://community.exoscale.com/reference/api/_schemas/private-network-lease/index.md) | no | Private Network leased IP addresses |
| `name` | string | no | Private Network name<br/><br/>Min length: `1`. Max length: `255`. |
| `netmask` | string | no | Private Network netmask<br/><br/>Must be a valid IPv4 address. |
| `options` | [Private Network DHCP Options](https://community.exoscale.com/reference/api/_schemas/private-network-options/index.md) | no | DHCP options |
| `start-ip` | string | no | Private Network start IP address<br/><br/>Must be a valid IPv4 address. |
| `vni` | integer | no | Private Network VXLAN ID<br/><br/>Min: `0`. |

---

url: https://community.exoscale.com/reference/api/_schemas/private-network-lease/

---

# Private Network Lease

Private Network leased IP address

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `instance-id` | string | no | Attached instance ID<br/><br/>Must be a valid UUID. |
| `ip` | string | no | Private Network IP address<br/><br/>Must be a valid IPv4 address. |

---

url: https://community.exoscale.com/reference/api/_schemas/private-network-options/

---

# Private Network Options

Private Network DHCP Options

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `dns-servers` | array[string] | no | DNS Servers |
| `domain-search` | array[string] | no | Domain search list, limited to 255 octets |
| `ntp-servers` | array[string] | no | NTP Servers |
| `routers` | array[string] | no | Routers |

---

url: https://community.exoscale.com/reference/api/_schemas/private-network-ref/

---

# Private Network Ref

Private network reference

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | Private network ID<br/><br/>Must be a valid UUID. |

---

url: https://community.exoscale.com/reference/api/_schemas/public-ip-assignment/

---

# Public IP Assignment

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/quota/

---

# Quota

Organization Quota

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `limit` | integer | no | Resource Limit. -1 for Unlimited |
| `resource` | string | no | Resource Name |
| `usage` | integer | no | Resource Usage |

---

url: https://community.exoscale.com/reference/api/_schemas/rate-limited/

---

# Rate Limited

Rate Limit

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `error` | string | no | The error message |
| `retry_after` | number | no | The time in seconds to wait before the next request |

---

url: https://community.exoscale.com/reference/api/_schemas/re-encrypt-request/

---

# Re Encrypt Request

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `destination` | [Destination](https://community.exoscale.com/reference/api/_schemas/re-encrypt-request/index.md#destination) | **yes** |  |
| `source` | [Source](https://community.exoscale.com/reference/api/_schemas/re-encrypt-request/index.md#source) | **yes** |  |

### Source {#source}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `ciphertext` | string | **yes** | The Base64-encoded encrypted payload package ready to undergo source-side key decryption.<br/><br/>Base64-encoded string. |
| `key` | string | **yes** | The ID of the source key currently protecting the data payload.<br/><br/>Must be a valid UUID. |
| `encryption-algorithm` | string | no | The encryption algorithm the source key must use. Validated against the key's actual cryptographic profile. Required for asymmetric keys. Symmetric keys use AES_256 when it is omitted.<br/><br/>Allowed values: `AES_256`, `RSAES_OAEP_SHA_256`. |
| `encryption-context` | string | no | Optional Base64-encoded encryption context originally appended to the AAD to confirm package validation rules.<br/><br/>Base64-encoded string. |

### Destination {#destination}

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `key` | string | **yes** | The ID of the target key chosen to encapsulate the newly shifted data translation.<br/><br/>Must be a valid UUID. |
| `encryption-algorithm` | string | no | The encryption algorithm the destination key must use. Validated against the key's actual cryptographic profile. Required for asymmetric keys. Symmetric keys use AES_256 when it is omitted.<br/><br/>Allowed values: `AES_256`, `RSAES_OAEP_SHA_256`. |
| `encryption-context` | string | no | Optional new Base64-encoded encryption context to apply under the target destination envelope.<br/><br/>Base64-encoded string. |

---

url: https://community.exoscale.com/reference/api/_schemas/re-encrypt-response/

---

# Re Encrypt Response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `ciphertext` | string | **yes** | The new Base64-encoded ciphertext block safely wrapped by the chosen destination key parameters.<br/><br/>Base64-encoded string. |
| `destination-encryption-algorithm` | string | **yes** | The encryption algorithm that was used to encrypt the destination ciphertext.<br/><br/>Allowed values: `AES_256`, `RSAES_OAEP_SHA_256`. |
| `source-encryption-algorithm` | string | **yes** | The encryption algorithm that was used to decrypt the source ciphertext.<br/><br/>Allowed values: `AES_256`, `RSAES_OAEP_SHA_256`. |

---

url: https://community.exoscale.com/reference/api/_schemas/replica-failure/

---

# Replica Failure

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `attempted-watermark` | integer | **yes** | The target sync sequence watermark that triggered the replication failure. |
| `error` | string | **yes** | A descriptive message containing error logs or system details regarding the sync failure. |
| `failed-at` | string | **yes** | The UTC timestamp showing exactly when the replication sync window failed.<br/><br/>ISO 8601 date-time. |

---

url: https://community.exoscale.com/reference/api/_schemas/replica-state/

---

# Replica State

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `last-applied-watermark` | integer | **yes** | The latest logical sequence number or state watermark successfully synced to this regional replica. |
| `zone` | string | **yes** | The destination target zone tracking this specific replica instance. |
| `last-failure` | [Replica Failure](https://community.exoscale.com/reference/api/_schemas/replica-failure/index.md) | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/replicate-kms-key-request/

---

# Replicate Kms Key Request

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `zone` | string | **yes** | The targeted cloud zone where the KMS key should be replicated. |

---

url: https://community.exoscale.com/reference/api/_schemas/reserved-resources/

---

# Reserved Resources

Resources reserved for kube or system components.

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `cpu` | string | **yes** | CPU reservation, e.g., "200m" |
| `ephemeral-storage` | string | no | Ephemeral storage reservation, e.g., "1Gi" |
| `memory` | string | no | Memory reservation, e.g., "512Mi" |

---

url: https://community.exoscale.com/reference/api/_schemas/reveal-deployment-api-key-response/

---

# Reveal Deployment API Key Response

AI deployment inference endpoint authentication key

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `api-key` | string | **yes** | Inference endpoint authentication key |

---

url: https://community.exoscale.com/reference/api/_schemas/reverse-dns-record/

---

# Reverse DNS Record

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `domain-name` | string | no | Min length: `1`. Max length: `253`. |

---

url: https://community.exoscale.com/reference/api/_schemas/revision-stamp/

---

# Revision Stamp

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `at` | string | **yes** | The timestamp recording exactly when this specific revision iteration occurred.<br/><br/>ISO 8601 date-time. |
| `seq` | integer | **yes** | Monotonically increasing sequencing value utilized for optimistic concurrency control locks.<br/><br/>Min: `0`. |

---

url: https://community.exoscale.com/reference/api/_schemas/rotate-kms-key-response/

---

# Rotate Kms Key Response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `rotation` | [Key Rotation Config](https://community.exoscale.com/reference/api/_schemas/key-rotation-config/index.md) | **yes** |  |

---

url: https://community.exoscale.com/reference/api/_schemas/route/

---

# Route

Route

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | no | Route description<br/><br/>Max length: `4096`. |
| `destination` | string | no | Route destination CIDR |
| `id` | string | no | Route ID<br/><br/>Must be a valid UUID. |
| `kind` | string | no | Route kind<br/><br/>Allowed values: `Subnet`, `Vpc`. |
| `target` | string | no | Route target |

---

url: https://community.exoscale.com/reference/api/_schemas/scale-deployment-request/

---

# Scale Deployment Request

Scale AI deployment

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `replicas` | integer | **yes** | Number of replicas (>=0)<br/><br/>Min: `0`. |

---

url: https://community.exoscale.com/reference/api/_schemas/schedule-kms-key-deletion-request/

---

# Schedule Kms Key Deletion Request

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `delay-days` | integer | no | Number of days to wait until deletion is final.<br/><br/>Min: `7`. Max: `30`. Default: `30`. |

---

url: https://community.exoscale.com/reference/api/_schemas/schedule-kms-key-deletion-response/

---

# Schedule Kms Key Deletion Response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `delete-at` | string | no | Timestamp of the key deletion<br/><br/>ISO 8601 date-time. |

---

url: https://community.exoscale.com/reference/api/_schemas/security-group/

---

# Security Group

Security Group

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | no | Security Group description<br/><br/>Max length: `255`. |
| `external-sources` | array[string] | no | Security Group external sources |
| `id` | string | no | Security Group ID<br/><br/>Must be a valid UUID. |
| `name` | string | no | Security Group name<br/><br/>Min length: `1`. Max length: `255`. |
| `rules` | array of [Security Group rule](https://community.exoscale.com/reference/api/_schemas/security-group-rule/index.md) | no | Security Group rules |

---

url: https://community.exoscale.com/reference/api/_schemas/security-group-ref/

---

# Security Group Ref

Security group reference

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | Security group ID<br/><br/>Must be a valid UUID. |

---

url: https://community.exoscale.com/reference/api/_schemas/security-group-resource/

---

# Security Group Resource

Security Group

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | Security Group ID<br/><br/>Must be a valid UUID. |
| `name` | string | no | Security Group name<br/><br/>Min length: `1`. Max length: `255`. |
| `visibility` | string | no | Whether this points to a public security group. This is only valid when in the context of                    a rule addition which uses a public security group as a source or destination.<br/><br/>Allowed values: `private`, `public`. |

---

url: https://community.exoscale.com/reference/api/_schemas/security-group-rule/

---

# Security Group Rule

Security Group rule

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | no | Security Group rule description<br/><br/>Max length: `255`. |
| `end-port` | integer | no | End port of the range<br/><br/>Min: `1`. Max: `65535`. |
| `flow-direction` | string | no | Network flow direction to match<br/><br/>Allowed values: `ingress`, `egress`. |
| `icmp` | [ICMP](https://community.exoscale.com/reference/api/_schemas/security-group-rule/index.md#icmp) | no | ICMP details |
| `id` | string | no | Security Group rule ID<br/><br/>Must be a valid UUID. |
| `network` | string | no | CIDR-formatted network allowed |
| `protocol` | string | no | Network protocol<br/><br/>Allowed values: `tcp`, `esp`, `all`, `icmp`, `udp`, `gre`, `ah`, `ipip`, `icmpv6`. |
| `security-group` | [Security Group](https://community.exoscale.com/reference/api/_schemas/security-group-resource/index.md) | no | Security Group allowed |
| `start-port` | integer | no | Start port of the range<br/><br/>Min: `1`. Max: `65535`. |

### ICMP {#icmp}

ICMP details

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `code` | integer | no | Min: `-1`. Max: `254`. |
| `type` | integer | no | Min: `-1`. Max: `254`. |

---

url: https://community.exoscale.com/reference/api/_schemas/sign-request/

---

# Sign Request

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `message` | string | **yes** | The Base64-encoded message to sign (1-4096 decoded bytes). Its meaning depends on `message-type`, either the raw plaintext message or an already-hashed digest.<br/><br/>Base64-encoded string. Min length: `1`. Max length: `5464`. |
| `signing-algorithm` | string | **yes** | The signing algorithm to use. Must match the family implied by the key's `key-spec`.<br/><br/>Allowed values: `RSASSA_PSS_SHA_256`, `RSASSA_PSS_SHA_384`, `RSASSA_PSS_SHA_512`, `ECDSA_SHA_256`, `ECDSA_SHA_384`, `ECDSA_SHA_512`, `EDDSA_ED25519`, `ED25519_PH_SHA_512`, `ML_DSA_SHAKE_256`. |
| `message-type` | string | no | How `message` should be interpreted.<br/><br/>Allowed values: `raw`, `digest`.<br/><br/>Default: `raw`. |

---

url: https://community.exoscale.com/reference/api/_schemas/sign-response/

---

# Sign Response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `key-spec` | string | **yes** | The cryptographic key specification used to produce the signature. |
| `signature` | string | **yes** | The resulting Base64-encoded signature.<br/><br/>Base64-encoded string. |
| `signing-algorithm` | string | **yes** | The signing algorithm used to produce the signature, echoing the request's `signing-algorithm`. |

---

url: https://community.exoscale.com/reference/api/_schemas/sks-audit/

---

# SKS Audit

Kubernetes Audit parameters

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `enabled` | boolean | no | Enabled |
| `endpoint` | string | no | Target Webserver URL<br/><br/>Min length: `1`. Max length: `2000`. |
| `initial-backoff` | string | no | Initial Backoff (default '10s')<br/><br/>Min length: `1`. Max length: `10`. |

---

url: https://community.exoscale.com/reference/api/_schemas/sks-audit-bearer-token/

---

# SKS Audit Bearer Token

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/sks-audit-create/

---

# SKS Audit Create

Kubernetes Audit parameters

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `bearer-token` | string | **yes** | Bearer token<br/><br/>Min length: `1`. Max length: `2000`. |
| `endpoint` | string | **yes** | Target Webserver URL<br/><br/>Min length: `1`. Max length: `2000`. |
| `initial-backoff` | string | no | Initial backoff (default '10s')<br/><br/>Min length: `1`. Max length: `10`. |

---

url: https://community.exoscale.com/reference/api/_schemas/sks-audit-endpoint/

---

# SKS Audit Endpoint

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/sks-audit-initial-backoff/

---

# SKS Audit Initial Backoff

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/sks-audit-update/

---

# SKS Audit Update

Kubernetes Audit parameters

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `bearer-token` | string | no | Bearer token<br/><br/>Min length: `1`. Max length: `2000`. |
| `enabled` | boolean | no | Enable or Disable Kubernetes Audit |
| `endpoint` | string | no | Target Webserver URL<br/><br/>Min length: `1`. Max length: `2000`. |
| `initial-backoff` | string | no | Initial backoff (default '10s')<br/><br/>Min length: `1`. Max length: `10`. |

---

url: https://community.exoscale.com/reference/api/_schemas/sks-cluster/

---

# SKS Cluster

SKS Cluster

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `addons` | array[string] | no | Cluster addons |
| `allowed-networks` | array[string] | no | EXPERIMENTAL: List of ranges of allowed IPs using CIDR notation. |
| `audit` | [Kubernetes Audit parameters](https://community.exoscale.com/reference/api/_schemas/sks-audit/index.md) | no | Kubernetes Audit |
| `auto-upgrade` | boolean | no | Enable auto upgrade of the control plane to the latest patch version available |
| `cni` | string | no | Cluster CNI<br/><br/>Allowed values: `calico`, `cilium`. |
| `created-at` | string | no | Cluster creation date<br/><br/>ISO 8601 date-time. |
| `default-security-group-id` | string | no | Cluster default Security Group ID<br/><br/>Must be a valid UUID. |
| `description` | string | no | Cluster description<br/><br/>Max length: `255`. |
| `enable-kube-proxy` | boolean | no | Indicates whether to deploy the Kubernetes network proxy. |
| `enable-operators-ca` | boolean | no | Indicates whether to add operators certificate authority (CA) as part of trusted CAs for the API server. |
| `endpoint` | string | no | Cluster endpoint |
| `feature-gates` | array[string] | no | A list of Kubernetes-only Alpha features to enable for API server component |
| `id` | string | no | Cluster ID<br/><br/>Must be a valid UUID. |
| `karpenter-feature-gates` | array[string] | no | A list of Karpenter controller feature gates to enable for the Karpenter controller binary |
| `labels` | object | no | Cluster labels |
| `level` | string | no | Cluster level<br/><br/>Allowed values: `starter`, `pro`. |
| `name` | string | no | Cluster name<br/><br/>Min length: `1`. Max length: `255`. |
| `nodepools` | array of [SKS Nodepool](https://community.exoscale.com/reference/api/_schemas/sks-nodepool/index.md) | no | Cluster Nodepools |
| `oidc` | [SKS Cluster OpenID config map](https://community.exoscale.com/reference/api/_schemas/sks-oidc/index.md) | no | Cluster OpenID configmap |
| `state` | string | no | Cluster state<br/><br/>Allowed values: `rotating-csi-credentials`, `rotating-ccm-credentials`, `creating`, `upgrading`, `deleting`, `running`, `suspending`, `updating`, `error`, `rotating-karpenter-credentials`, `resuming`. |
| `version` | string | no | Control plane Kubernetes version |

---

url: https://community.exoscale.com/reference/api/_schemas/sks-cluster-allowed-networks/

---

# SKS Cluster Allowed Networks

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/sks-cluster-deprecated-resource/

---

# SKS Cluster Deprecated Resource

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `group` | string | no |  |
| `removed-release` | string | no |  |
| `resource` | string | no |  |
| `subresource` | string | no |  |
| `version` | string | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/sks-cluster-labels/

---

# SKS Cluster Labels

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/sks-kubeconfig-request/

---

# SKS Kubeconfig Request

Kubeconfig request for a SKS cluster

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `groups` | array[string] | **yes** | List of roles. The certificate present in the Kubeconfig will have these roles set in the Org field. |
| `user` | string | **yes** | User name in the generated Kubeconfig. The certificate present in the Kubeconfig will also have this name set for the CN field. |
| `ttl` | integer | no | Validity in seconds of the Kubeconfig user certificate (default: 30 days)<br/><br/>Min: `0`. |

---

url: https://community.exoscale.com/reference/api/_schemas/sks-nodepool/

---

# SKS Nodepool

SKS Nodepool

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `addons` | array[string] | no | Nodepool addons |
| `anti-affinity-groups` | array of [Anti-affinity group reference](https://community.exoscale.com/reference/api/_schemas/anti-affinity-group-ref/index.md) | no | Nodepool Anti-affinity Groups |
| `cpu-manager-config` | [CPU manager config](https://community.exoscale.com/reference/api/_schemas/cpu-manager-config/index.md) | no | CPU manager config |
| `created-at` | string | no | Nodepool creation date<br/><br/>ISO 8601 date-time. |
| `deploy-target` | [Deploy target reference](https://community.exoscale.com/reference/api/_schemas/deploy-target-ref/index.md) | no | Instance Pool Deploy Target |
| `description` | string | no | Nodepool description<br/><br/>Max length: `255`. |
| `disk-size` | integer | no | Nodepool instances disk size in GiB<br/><br/>Min: `20`. Max: `51200`. |
| `id` | string | no | Nodepool ID<br/><br/>Must be a valid UUID. |
| `instance-pool` | [Target Instance Pool](https://community.exoscale.com/reference/api/_schemas/instance-pool-ref/index.md) | no | Instance Pool managed by the Nodepool |
| `instance-prefix` | string | no | The instances created by the Nodepool will be prefixed with this value (default: pool)<br/><br/>Min length: `1`. Max length: `30`. |
| `instance-type` | [Instance type reference](https://community.exoscale.com/reference/api/_schemas/instance-type-ref/index.md) | no | Nodepool Instances type |
| `kubelet-image-gc` | [Kubelet image GC options](https://community.exoscale.com/reference/api/_schemas/kubelet-image-gc/index.md) | no | Kubelet image GC options |
| `kubelet-max-pods` | integer | no | Maximum number of pods per node. Set to use a value other than the kubelet default.<br/><br/>Min: `1`. Max: `65535`. |
| `labels` | object | no | Nodepool labels |
| `name` | string | no | Nodepool name<br/><br/>Min length: `1`. Max length: `255`. |
| `nvidia-mig-profiles` | [Nvidia MIG Profiles enabled](https://community.exoscale.com/reference/api/_schemas/nvidia-mig-profiles/index.md) | no | Nvidia MIG Profiles |
| `private-networks` | array of [Private network reference](https://community.exoscale.com/reference/api/_schemas/private-network-ref/index.md) | no | Nodepool Private Networks |
| `public-ip-assignment` | string | no | Nodepool public IP assignment of the Instances:  * IPv4 (`inet4`) addressing only; * IPv4 and IPv6 (`dual`) addressing.<br/><br/>Allowed values: `inet4`, `dual`. |
| `security-groups` | array of [Security group reference](https://community.exoscale.com/reference/api/_schemas/security-group-ref/index.md) | no | Nodepool Security Groups |
| `size` | integer | no | Number of instances<br/><br/>Min: `0`. |
| `state` | string | no | Nodepool state<br/><br/>Allowed values: `renewing-token`, `creating`, `deleting`, `running`, `degraded`, `scaling`, `updating`, `error`. |
| `taints` | object | no | Nodepool taints |
| `template` | [Template reference](https://community.exoscale.com/reference/api/_schemas/template-ref/index.md) | no | Nodepool Instance template |
| `version` | string | no | Nodepool version |

---

url: https://community.exoscale.com/reference/api/_schemas/sks-nodepool-labels/

---

# SKS Nodepool Labels

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/sks-nodepool-taint/

---

# SKS Nodepool Taint

Nodepool taint

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `effect` | string | **yes** | Nodepool taint effect<br/><br/>Allowed values: `NoExecute`, `NoSchedule`, `PreferNoSchedule`. |
| `value` | string | **yes** | Nodepool taint value<br/><br/>Min length: `1`. Max length: `255`. |

---

url: https://community.exoscale.com/reference/api/_schemas/sks-nodepool-taints/

---

# SKS Nodepool Taints

## Properties

---

url: https://community.exoscale.com/reference/api/_schemas/sks-oidc/

---

# SKS Oidc

SKS Cluster OpenID config map

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `client-id` | string | **yes** | OpenID client ID<br/><br/>Min length: `1`. Max length: `255`. |
| `issuer-url` | string | **yes** | OpenID provider URL<br/><br/>Min length: `1`. Max length: `255`. |
| `groups-claim` | string | no | JWT claim to use as the user's group<br/><br/>Min length: `1`. Max length: `255`. |
| `groups-prefix` | string | no | Prefix prepended to group claims<br/><br/>Min length: `1`. Max length: `255`. |
| `required-claim` | object | no | A key value map that describes a required claim in the ID Token |
| `username-claim` | string | no | JWT claim to use as the user name<br/><br/>Min length: `1`. Max length: `255`. |
| `username-prefix` | string | no | Prefix prepended to username claims<br/><br/>Min length: `1`. Max length: `255`. |

---

url: https://community.exoscale.com/reference/api/_schemas/snapshot/

---

# Snapshot

Snapshot

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `application-consistent` | boolean | no | Indicates whether the snapshot was taken using an application-consistent method |
| `created-at` | string | no | Snapshot creation date<br/><br/>ISO 8601 date-time. |
| `export` | [Export](https://community.exoscale.com/reference/api/_schemas/snapshot/index.md#export) | no | Exported snapshot information |
| `id` | string | no | Snapshot ID<br/><br/>Must be a valid UUID. |
| `instance` | [Instance](https://community.exoscale.com/reference/api/_schemas/instance/index.md) | no | Compute Instance snapshotted |
| `name` | string | no | Snapshot name<br/><br/>Min length: `1`. Max length: `255`. |
| `size` | integer | no | Snapshot size in GiB<br/><br/>Min: `10`. Max: `51200`. |
| `state` | string | no | Snapshot state<br/><br/>Allowed values: `snapshotting`, `deleted`, `exporting`, `ready`, `deleting`, `error`, `exported`. |

### Export {#export}

Exported snapshot information

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `md5sum` | string | no | Exported snapshot disk file MD5 checksum |
| `presigned-url` | string | no | Exported snapshot disk file pre-signed URL |

---

url: https://community.exoscale.com/reference/api/_schemas/snapshot-ref/

---

# Snapshot Ref

Snapshot reference

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | Snapshot ID<br/><br/>Must be a valid UUID. |

---

url: https://community.exoscale.com/reference/api/_schemas/sos-bucket-usage/

---

# SOS Bucket Usage

SOS Bucket usage

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `created-at` | string | no | SOS Bucket creation date<br/><br/>ISO 8601 date-time. |
| `name` | string | no | SOS Bucket name |
| `size` | integer | no | SOS Bucket size in B<br/><br/>Min: `0`. |
| `zone-name` | string | no | SOS Bucket zone<br/><br/>Allowed values: `ch-dk-2`, `de-muc-1`, `ch-gva-2`, `at-vie-1`, `de-fra-1`, `bg-sof-1`, `at-vie-2`, `es-mad-1`, `hr-zag-1`. |

---

url: https://community.exoscale.com/reference/api/_schemas/ssh-key/

---

# SSH Key

SSH key

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `fingerprint` | string | no | SSH key fingerprint |
| `name` | string | no | SSH key name<br/><br/>Min length: `1`. Max length: `255`. |

---

url: https://community.exoscale.com/reference/api/_schemas/ssh-key-ref/

---

# SSH Key Ref

SSH key reference

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | no | SSH key name<br/><br/>Min length: `1`. Max length: `255`. |

---

url: https://community.exoscale.com/reference/api/_schemas/subnet/

---

# Subnet

Subnet

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `address-space` | string | no | Subnet address space<br/><br/>Allowed values: `private`. |
| `addressfamily` | string | no | Subnet address family<br/><br/>Allowed values: `inet4`, `dual`. |
| `created-at` | string | no | Subnet creation date<br/><br/>ISO 8601 date-time. |
| `description` | string | no | Subnet description<br/><br/>Max length: `4096`. |
| `id` | string | no | Subnet ID<br/><br/>Must be a valid UUID. |
| `instances` | array of [Instances](https://community.exoscale.com/reference/api/_schemas/subnet/index.md#instances) | no | Instances attached to the subnet |
| `ipv4-block` | string | no | Subnet ipv4 CIDR |
| `labels` | object | no | Resource labels |
| `name` | string | no | Subnet name<br/><br/>Min length: `1`. Max length: `255`. |

### Instances {#instances}

Subnet attachments

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | Instance uuid<br/><br/>Must be a valid UUID. |
| `ipv4` | string | no | Instance Ipv4 address<br/><br/>Must be a valid IPv4 address. |
| `name` | string | no | Instance name |

---

url: https://community.exoscale.com/reference/api/_schemas/success-response/

---

# Success Response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `status` | string | **yes** | Allowed values: `success`, `target-registered`, `already-applied`.<br/><br/>Default: `success`. |

---

url: https://community.exoscale.com/reference/api/_schemas/template/

---

# Template

Instance template

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `application-consistent-snapshot-enabled` | boolean | no | Template with Qemu Guest Agent installed for application consistent snapshot |
| `boot-mode` | string | no | Boot mode (default: legacy)<br/><br/>Allowed values: `legacy`, `uefi`. |
| `build` | string | no | Template build |
| `checksum` | string | no | Template MD5 checksum |
| `created-at` | string | no | Template creation date<br/><br/>ISO 8601 date-time. |
| `default-user` | string | no | Template default user<br/><br/>Min length: `1`. Max length: `255`. |
| `description` | string | no | Template description<br/><br/>Max length: `255`. |
| `family` | string | no | Template family |
| `id` | string | no | Template ID<br/><br/>Must be a valid UUID. |
| `maintainer` | string | no | Template maintainer |
| `name` | string | no | Template name<br/><br/>Min length: `1`. Max length: `255`. |
| `password-enabled` | boolean | no | Enable password-based login |
| `size` | integer | no | Template size<br/><br/>Min: `0`. |
| `ssh-key-enabled` | boolean | no | Enable SSH key-based login |
| `url` | string | no | Template source URL |
| `version` | string | no | Template version |
| `visibility` | string | no | Template visibility<br/><br/>Allowed values: `private`, `public`. |

---

url: https://community.exoscale.com/reference/api/_schemas/template-ref/

---

# Template Ref

Template reference

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | Template ID<br/><br/>Must be a valid UUID. |

---

url: https://community.exoscale.com/reference/api/_schemas/update-ai-api-key-request/

---

# Update AI API Key Request

Update the models and/or deployments accessible by an AI API key. Omitted properties are left unchanged.

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `all-deployments` | boolean | no | Grant or remove access to all deployments of the organization. Takes precedence over the deployments array, which is ignored when set. |
| `all-models` | boolean | no | Grant or remove access to all public models. Takes precedence over the models array, which is ignored when set. |
| `deployments` | array of [AI API Key Deployment Ref](https://community.exoscale.com/reference/api/_schemas/ai-api-key-deployment-ref/index.md) | no |  |
| `models` | array[string] | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/update-ai-api-key-response/

---

# Update AI API Key Response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `all-deployments` | boolean | **yes** | True when the key has access to all deployments of the organization. |
| `all-models` | boolean | **yes** | True when the key has access to all public models. |
| `created-at` | string | **yes** | ISO 8601 date-time. |
| `deployments` | array of [AI API Key Deployment Ref](https://community.exoscale.com/reference/api/_schemas/ai-api-key-deployment-ref/index.md) | **yes** |  |
| `id` | string | **yes** | Must be a valid UUID. |
| `models` | array[string] | **yes** |  |
| `name` | string | **yes** |  |
| `updated-at` | string | **yes** | ISO 8601 date-time. |

---

url: https://community.exoscale.com/reference/api/_schemas/update-deployment-request/

---

# Update Deployment Request

Update AI deployment

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `inference-engine-parameters` | array[string] | no | Optional extra inference engine server CLI args |
| `inference-engine-version` | string | no | Allowed values: `0.12.0`, `0.15.1`, `0.16.0`, `0.17.0`, `0.18.0`, `0.18.1`, `0.19.0`, `0.19.1`, `0.20.0`, `0.20.1`, `0.20.2`, `0.21.0`, `0.22.0`, `0.22.1`, `0.23.0`, `0.24.0`, `0.25.0`, `0.25.1`, `0.26.0`, `0.27.0`, `0.27.1`, `0.28.0`, `0.29.0`, `0.30.0`, `0.31.0`.<br/><br/>Default: `0.31.0`. |
| `name` | string | no | Deployment name<br/><br/>Min length: `1`. |

---

url: https://community.exoscale.com/reference/api/_schemas/update-key-store-proxy/

---

# Update Key Store Proxy

New customer-managed XKS proxy settings.

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `auth` | [Key Store Proxy Auth](https://community.exoscale.com/reference/api/_schemas/key-store-proxy-auth/index.md) | no |  |
| `endpoint` | string | no | New public URL used to route communication to the customer-managed XKS proxy.<br/><br/>Format: `uri`. |

---

url: https://community.exoscale.com/reference/api/_schemas/update-key-store-request/

---

# Update Key Store Request

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | no | A new detailed description providing additional context about the key store's intended use case.<br/><br/>Max length: `1024`. |
| `proxy` | [New customer-managed XKS proxy settings.](https://community.exoscale.com/reference/api/_schemas/update-key-store-proxy/index.md) | no |  |

---

url: https://community.exoscale.com/reference/api/_schemas/user/

---

# User

User

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `email` | string | **yes** | User Email |
| `role` | [IAM Role](https://community.exoscale.com/reference/api/_schemas/iam-role/index.md) | **yes** | IAM Role |
| `id` | string | no | User ID<br/><br/>Must be a valid UUID. |
| `pending` | boolean | no | True if the user has not yet created an Exoscale account |
| `sso` | boolean | no | SSO enabled |
| `two-factor-authentication` | boolean | no | Two Factor Authentication enabled |

---

url: https://community.exoscale.com/reference/api/_schemas/verify-request/

---

# Verify Request

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `message` | string | **yes** | The Base64-encoded message to verify (1-4096 decoded bytes), with the same semantics as `sign`'s `message` field.<br/><br/>Base64-encoded string. Min length: `1`. Max length: `5464`. |
| `signature` | string | **yes** | The Base64-encoded signature to verify against `message` (1-6144 decoded bytes).<br/><br/>Base64-encoded string. Min length: `1`. Max length: `8192`. |
| `signing-algorithm` | string | **yes** | The signing algorithm `signature` was produced with. Must match the family implied by the key's `key-spec`, with the same semantics as `sign`'s `signing-algorithm` field.<br/><br/>Allowed values: `RSASSA_PSS_SHA_256`, `RSASSA_PSS_SHA_384`, `RSASSA_PSS_SHA_512`, `ECDSA_SHA_256`, `ECDSA_SHA_384`, `ECDSA_SHA_512`, `EDDSA_ED25519`, `ED25519_PH_SHA_512`, `ML_DSA_SHAKE_256`. |
| `message-type` | string | no | How `message` should be interpreted, with the same semantics as `sign`'s `message-type` field.<br/><br/>Allowed values: `raw`, `digest`.<br/><br/>Default: `raw`. |

---

url: https://community.exoscale.com/reference/api/_schemas/verify-response/

---

# Verify Response

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `key-id` | string | **yes** | The UUID of the KMS key used to verify the signature.<br/><br/>Must be a valid UUID. |
| `key-spec` | string | **yes** | The cryptographic key specification used to verify the signature. |
| `signature-valid` | boolean | **yes** | Whether `signature` is a valid signature over `message` produced by this KMS key. |

---

url: https://community.exoscale.com/reference/api/_schemas/vpc/

---

# Vpc

VPC

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `created-at` | string | no | VPC creation date<br/><br/>ISO 8601 date-time. |
| `default` | boolean | no | Indicates if this is the organization's default VPC |
| `description` | string | no | VPC description<br/><br/>Max length: `4096`. |
| `dhcp-options` | [VPC DHCP options](https://community.exoscale.com/reference/api/_schemas/vpc-dhcp-options/index.md) | no | DHCP options |
| `id` | string | no | VPC ID<br/><br/>Must be a valid UUID. |
| `labels` | object | no | Resource labels |
| `name` | string | no | VPC name<br/><br/>Min length: `1`. Max length: `255`. |

---

url: https://community.exoscale.com/reference/api/_schemas/vpc-dhcp-options/

---

# Vpc DHCP Options

VPC DHCP options

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `dns-servers` | array[string] | no | DNS Servers |
| `domain-search` | array[string] | no | Domain search list, limited to 255 octets post RFC3397 compression |
| `ntp-servers` | array[string] | no | NTP Servers |

---

url: https://community.exoscale.com/reference/api/_schemas/xks-key/

---

# Xks Key

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `external-key-id` | string | **yes** | The identifier of the key as known to the external key store, used to reference the key material outside of Exoscale.<br/><br/>Min length: `1`. Max length: `128`. |
| `xks-id` | string | **yes** | The Exoscale-generated id of the external key store resource that this key is associated with.<br/><br/>Must be a valid UUID. |

---

url: https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/

---

# Xks Proxy Error Detail

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `error-name` | string | **yes** | XKS proxy `errorName` from a valid proxy error envelope. |
| `error-message` | string | no | Optional bounded XKS proxy `errorMessage`. |

---

url: https://community.exoscale.com/reference/api/_schemas/zone/

---

# Zone

Zone

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `api-endpoint` | string | no | Zone API endpoint |
| `name` | string | no | Zone short name<br/><br/>Allowed values: `ch-dk-2`, `de-muc-1`, `ch-gva-2`, `at-vie-1`, `de-fra-1`, `bg-sof-1`, `at-vie-2`, `es-mad-1`, `hr-zag-1`. |
| `sos-endpoint` | string | no | Zone SOS endpoint |

---

url: https://community.exoscale.com/reference/api/_schemas/zone-impact/

---

# Zone Impact

Hierarchical breakdown of impact in a given zone

## Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `impact` | object | **yes** |  |
| `resources` | object | **yes** |  |

---

url: https://community.exoscale.com/reference/api/_schemas/zone-name/

---

# Zone Name

## Properties

---

url: https://community.exoscale.com/reference/api/audit-trail/

---

# Audit Trail

The Exoscale audit-trail provides a mechanism to query past events performing mutations on resources which happened on an organization.

[Read more](https://community.exoscale.com/platform/audit-trail/index.md)

- [Event](https://community.exoscale.com/reference/api/audit-trail/event/index.md) - Events form the basis of the Exoscale audit-trail, a mechanism to query past events performing mutations on resources which happened on an organization.

---

url: https://community.exoscale.com/reference/api/audit-trail/event/

---

# Event

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Events form the basis of the Exoscale audit-trail, a mechanism to query past events performing mutations on resources which happened on an organization.

[Read more](https://community.exoscale.com/platform/audit-trail/index.md)


---

## Other Operations

## <span data-label="GET" class="pill-GET"></span>list-events

List Events

```
GET /event
```

Retrieve Mutation Events for a given date range. Defaults to retrieving Events for the past 24 hours.
         Both a `from` and `to` arguments can be specified to filter Events over a specific period.
         Events will be the most descriptive possible but not all fields are mandatory

### Query parameters

| Name | In | Required | Description |
| --- | --- | --- | --- |
| `from` | `query` | no | ISO 8601 date-time. |
| `to` | `query` | no | ISO 8601 date-time. |

### Responses

Status: `200` - 200

Content-Type: `application/json`


<details>
<summary>Example output</summary>

```json
[
  {
    "body-params": {},
    "elapsed-ms": 0,
    "get-params": {},
    "handler": "string",
    "iam-api-key": {
      "created-at": "2024-01-01T12:00:00Z",
      "key": "string",
      "name": "string",
      "role-id": "string"
    },
    "iam-role": {
      "assume-role-policy": {
        "rules": [
          {
            "action": null,
            "expression": null,
            "resources": null
          }
        ]
      },
      "description": "string",
      "editable": true,
      "id": "string",
      "labels": {},
      "max-session-ttl": 0,
      "name": "string",
      "permissions": [
        "bypass-governance-retention"
      ],
      "policy": {
        "default-service-strategy": "allow",
        "services": {}
      }
    },
    "iam-user": {
      "email": "string",
      "id": "string",
      "pending": true,
      "role": {
        "assume-role-policy": {
          "rules": [
            null
          ]
        },
        "description": "string",
        "editable": true,
        "id": "string",
        "labels": {},
        "max-session-ttl": 0,
        "name": "string",
        "permissions": [
          "bypass-governance-retention"
        ],
        "policy": {
          "default-service-strategy": "allow",
          "services": {}
        }
      },
      "sso": true,
      "two-factor-authentication": true
    },
    "message": "string",
    "path-params": {},
    "request-id": "string",
    "source-ip": "string",
    "status": 0,
    "timestamp": "2024-01-01T12:00:00Z",
    "uri": "string",
    "zone": "string"
  }
]
```
</details>


SDK reference for `list-events`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListEvents) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_events) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listEvents(java.lang.String,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-events`

---

url: https://community.exoscale.com/reference/api/kms/

---

# KMS

Exoscale Key Management Service is a managed security service that lets you create, control and manage the lifecycle of cryptographic keys.

[Read more](https://community.exoscale.com/product/security/kms/index.md)

- [KMS Key](https://community.exoscale.com/reference/api/kms/kms-key/index.md) - Operations for KMS Key lifecycle management.
- [External Key Store](https://community.exoscale.com/reference/api/kms/external-key-store/index.md) - [BETA] Operations for KMS External Key Store management.
- [Cryptographic Operations](https://community.exoscale.com/reference/api/kms/cryptographic-operations/index.md) - A suite of cryptographic primitives offered by the Exoscale KMS.

---

url: https://community.exoscale.com/reference/api/kms/kms-key/

---

# KMS Key

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Operations for KMS Key lifecycle management.

[Read more](https://community.exoscale.com/product/security/kms/overview/index.md)

## <span data-label="POST" class="pill-POST"></span>enable-kms-key

Enable KMS Key

```
POST /kms-key/{id}/enable
```

Enables a KMS Key by setting its state to "enabled". It restores the ability to fully use the KMS key for cryptographic operations and key lifecycle operations.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

**`200`**: Key enabled

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `status` | string | Allowed values: `success`, `target-registered`, `already-applied`.<br/><br/>Default: `success`. |

<details>
<summary>Example output</summary>

```json
{
  "status": "success"
}
```
</details>

**`400`**: Errors

Key Not Found: The request was rejected because the specified KMS Key could not be found.

Key is Pending Deletion: The request was rejected because it was performed on a key that is pending deletion.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `enable-kms-key`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.EnableKmsKey) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.enable_kms_key) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#enableKmsKey(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api enable-kms-key`

## <span data-label="POST" class="pill-POST"></span>disable-kms-key

Disable KMS Key

```
POST /kms-key/{id}/disable
```

Disables a KMS Key by setting its state to "disabled". This prevents the use of the KMS key for cryptographic and key lifecycle operations.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

**`200`**: Key disabled

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `status` | string | Allowed values: `success`, `target-registered`, `already-applied`.<br/><br/>Default: `success`. |

<details>
<summary>Example output</summary>

```json
{
  "status": "success"
}
```
</details>

**`400`**: Errors

Key Not Found: The request was rejected because the specified KMS Key could not be found.

Key is Pending Deletion: The request was rejected because it was performed on a key that is pending deletion.

Not on Default: The request was rejected because the operation is not allowed on the default key.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `disable-kms-key`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DisableKmsKey) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.disable_kms_key) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#disableKmsKey(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api disable-kms-key`

## <span data-label="POST" class="pill-POST"></span>create-kms-key

Create KMS Key

```
POST /kms-key
```

Create a customer-managed unique KMS Key in your organization. A KMS Key is a logical representation of a cryptographic key material. It also includes metadata such as a UUID, a name and its state.

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | A human-readable display name uniquely identifying the KMS key within the tenant space. |
| `description` | string | no | An optional detailed description providing additional context about the key's intended use case. |
| `key-spec` | string | no | The cryptographic key specification defining the key's algorithm and, for asymmetric keys, its curve or modulus size.<br/><br/>Allowed values: `AES_256`, `ECC_NIST_P256`, `ECC_NIST_P384`, `ECC_NIST_P521`, `ECC_EDWARDS25519`, `RSA_3072`, `RSA_4096`, `ML_DSA_65`, `ML_DSA_87`.<br/><br/>Default: `AES_256`. |
| `multi-zone` | boolean | no | True if this is a multi-zone key.<br/><br/>Default: `false`. |
| `source` | string | no | Indicates the source of the key material, either generated and held within Exoscale KMS, or backed by an external key store.<br/><br/>Allowed values: `exoscale-kms`, `external-key-store`.<br/><br/>Default: `exoscale-kms`. |
| `usage` | string | no | Allowed values: `encrypt-decrypt`, `sign-verify`.<br/><br/>Default: `encrypt-decrypt`. |
| `xks` | [Xks Key](https://community.exoscale.com/reference/api/_schemas/xks-key/index.md) | no |  |

<details>
<summary>Example</summary>

```json
{
  "description": "string",
  "key-spec": "AES_256",
  "multi-zone": true,
  "name": "string",
  "source": "exoscale-kms",
  "usage": "encrypt-decrypt",
  "xks": {
    "external-key-id": "string",
    "xks-id": "string"
  }
}
```
</details>


### Responses

**`200`**: Created new KMS key

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `created-at` | string | The UTC timestamp showing when the KMS key was originally provisioned.<br/><br/>ISO 8601 date-time. |
| `description` | string | An optional detailed description providing additional context about the key's intended use case. |
| `id` | string | The globally unique identifier (UUID) assigned to the newly created KMS key.<br/><br/>Must be a valid UUID. |
| `key-spec` | string | The cryptographic key specification used to generate the key, defining its algorithm and, for asymmetric keys, its curve or modulus size. |
| `multi-zone` | boolean | True if this is a multi-zone key. |
| `name` | string | The display name assigned to the KMS key. |
| `origin-zone` | string | The creation zone of the KMS key. |
| `revision` | [Revision Stamp](https://community.exoscale.com/reference/api/_schemas/revision-stamp/index.md) |  |
| `rotation` | [Key Rotation Config](https://community.exoscale.com/reference/api/_schemas/key-rotation-config/index.md) |  |
| `source` | string | Indicates the source of the key material, either generated and held within Exoscale KMS, or backed by an external key store.<br/><br/>Allowed values: `exoscale-kms`, `external-key-store`. |
| `status` | string | Allowed values: `enabled`, `disabled`, `pending-deletion`. |
| `status-since` | string | The timestamp indicating exactly when the current key status was last transitioned.<br/><br/>ISO 8601 date-time. |
| `usage` | string | The cryptographic operation constraints allowed on this key. |
| `xks` | [Xks Key](https://community.exoscale.com/reference/api/_schemas/xks-key/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "created-at": "2024-01-01T12:00:00Z",
  "description": "string",
  "id": "string",
  "key-spec": "string",
  "multi-zone": true,
  "name": "string",
  "origin-zone": "string",
  "revision": {
    "at": "2024-01-01T12:00:00Z",
    "seq": 0
  },
  "rotation": {
    "automatic": true,
    "manual-count": 0,
    "next-at": "2024-01-01T12:00:00Z",
    "rotation-period": 0
  },
  "source": "exoscale-kms",
  "status": "enabled",
  "status-since": "2024-01-01T12:00:00Z",
  "usage": "string",
  "xks": {
    "external-key-id": "string",
    "xks-id": "string"
  }
}
```
</details>

**`400`**: Errors

Name Conflict: The request was rejected because a key with the same name already exists in the target zone.

Bad Request: The request was rejected because of an invalid request body or path parameter.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `create-kms-key`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateKmsKey) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_kms_key) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createKmsKey(com.exoscale.sdk.model.CreateKmsKeyRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-kms-key`

## <span data-label="GET" class="pill-GET"></span>get-kms-key

Get KMS Key

```
GET /kms-key/{id}
```

Retrieve KMS Key details.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

**`200`**: KMS Key Details

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `created-at` | string | The UTC timestamp showing when the KMS key was originally provisioned.<br/><br/>ISO 8601 date-time. |
| `delete-at` | string | ISO 8601 date-time. |
| `description` | string | An optional detailed description providing additional context about the key's intended use case. |
| `id` | string | The globally unique identifier (UUID) of the retrieved KMS key.<br/><br/>Must be a valid UUID. |
| `key-spec` | string | The cryptographic key specification used to generate the key, defining its algorithm and, for asymmetric keys, its curve or modulus size. |
| `material` | [Key Material](https://community.exoscale.com/reference/api/_schemas/key-material/index.md) |  |
| `multi-zone` | boolean | True if this is a multi-zone key. |
| `name` | string | The display name of the KMS key. |
| `origin-zone` | string | The creation zone of the KMS key. |
| `replicas` | array[string] | A list of availability zones where this specific key has active replica mirrors. |
| `replicas-status` | array of [Replica State](https://community.exoscale.com/reference/api/_schemas/replica-state/index.md) | Detailed synchronization metrics for each regional replica mirror. |
| `revision` | [Revision Stamp](https://community.exoscale.com/reference/api/_schemas/revision-stamp/index.md) |  |
| `rotation` | [Key Rotation Config](https://community.exoscale.com/reference/api/_schemas/key-rotation-config/index.md) |  |
| `source` | string | Indicates the source of the key material, either generated and held within Exoscale KMS, or backed by an external key store.<br/><br/>Allowed values: `exoscale-kms`, `external-key-store`. |
| `status` | string | Allowed values: `enabled`, `disabled`, `pending-deletion`. |
| `status-since` | string | The timestamp indicating exactly when the current key status was last transitioned.<br/><br/>ISO 8601 date-time. |
| `usage` | string | The cryptographic operation constraints allowed on this key. |
| `xks` | [Xks Key](https://community.exoscale.com/reference/api/_schemas/xks-key/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "created-at": "2024-01-01T12:00:00Z",
  "delete-at": "2024-01-01T12:00:00Z",
  "description": "string",
  "id": "string",
  "key-spec": "string",
  "material": {
    "automatic": true,
    "created-at": "2024-01-01T12:00:00Z",
    "version": 0
  },
  "multi-zone": true,
  "name": "string",
  "origin-zone": "string",
  "replicas": [
    "string"
  ],
  "replicas-status": [
    {
      "last-applied-watermark": 0,
      "last-failure": {
        "attempted-watermark": 0,
        "error": "string",
        "failed-at": "2024-01-01T12:00:00Z"
      },
      "zone": "string"
    }
  ],
  "revision": {
    "at": "2024-01-01T12:00:00Z",
    "seq": 0
  },
  "rotation": {
    "automatic": true,
    "manual-count": 0,
    "next-at": "2024-01-01T12:00:00Z",
    "rotation-period": 0
  },
  "source": "exoscale-kms",
  "status": "enabled",
  "status-since": "2024-01-01T12:00:00Z",
  "usage": "string",
  "xks": {
    "external-key-id": "string",
    "xks-id": "string"
  }
}
```
</details>

**`400`**: Errors

Key Not Found: The request was rejected because the specified KMS Key could not be found.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `get-kms-key`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetKmsKey) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_kms_key) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getKmsKey(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-kms-key`

## <span data-label="POST" class="pill-POST"></span>disable-kms-key-rotation

Disable Key Rotation

```
POST /kms-key/{id}/disable-key-rotation
```

Disable the periodic rotation of a KMS Key.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

**`200`**: Key rotation disabled

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `rotation` | [Key Rotation Config](https://community.exoscale.com/reference/api/_schemas/key-rotation-config/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "rotation": {
    "automatic": true,
    "manual-count": 0,
    "next-at": "2024-01-01T12:00:00Z",
    "rotation-period": 0
  }
}
```
</details>

**`400`**: Errors

Key Not Found: The request was rejected because the specified KMS Key could not be found.

Not on Default: The request was rejected because the operation is not allowed on the default key.

Not on Replica: The request was rejected because the operation is not allowed on a replica.

Key is Pending Deletion: The request was rejected because it was performed on a key that is pending deletion.

Key is Disabled: The request was rejected because the specified KMS key is disabled.

Invalid Usage: The request was rejected because the operation is only allowed on symmetric keys with usage "encrypt-decrypt".

Conflict: The request was rejected because the automatic rotation is already enabled for this KMS Key.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `disable-kms-key-rotation`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DisableKmsKeyRotation) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.disable_kms_key_rotation) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#disableKmsKeyRotation(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api disable-kms-key-rotation`

## <span data-label="POST" class="pill-POST"></span>enable-kms-key-rotation

Enable Key Rotation

```
POST /kms-key/{id}/enable-key-rotation
```

Enable the periodic rotation of a KMS Key.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `rotation-period` | integer | no | The number of days between each automatic key rotation.<br/><br/>Min: `90`. Max: `2560`. Default: `365`. |

<details>
<summary>Example</summary>

```json
{
  "rotation-period": 0
}
```
</details>


### Responses

**`200`**: Periodic key rotation enabled

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `rotation` | [Key Rotation Config](https://community.exoscale.com/reference/api/_schemas/key-rotation-config/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "rotation": {
    "automatic": true,
    "manual-count": 0,
    "next-at": "2024-01-01T12:00:00Z",
    "rotation-period": 0
  }
}
```
</details>

**`400`**: Errors

Key Not Found: The request was rejected because the specified KMS Key could not be found.

Not on Default: The request was rejected because the operation is not allowed on the default key.

Not on Replica: The request was rejected because the operation is not allowed on a replica.

Key is Pending Deletion: The request was rejected because it was performed on a key that is pending deletion.

Key is Disabled: The request was rejected because the specified KMS key is disabled.

Invalid Usage: The request was rejected because the operation is only allowed on symmetric keys with usage "encrypt-decrypt".

Conflict: The request was rejected because the automatic rotation is already enabled for this KMS Key.

Bad Request: The request was rejected because of an invalid request body or path parameter.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `enable-kms-key-rotation`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.EnableKmsKeyRotation) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.enable_kms_key_rotation) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#enableKmsKeyRotation(java.util.UUID,com.exoscale.sdk.model.EnableKmsKeyRotationRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api enable-kms-key-rotation`


---

## Other Operations

## <span data-label="POST" class="pill-POST"></span>cancel-kms-key-deletion

Cancel KMS Key Deletion

```
POST /kms-key/{id}/cancel-deletion
```

Cancels the scheduled deletion of a KMS Key.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

**`200`**: Key deletion cancelled

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `status` | string | Allowed values: `success`, `target-registered`, `already-applied`.<br/><br/>Default: `success`. |

<details>
<summary>Example output</summary>

```json
{
  "status": "success"
}
```
</details>

**`400`**: Errors

Key Not Found: The request was rejected because the specified KMS Key could not be found.

Not on Replica: The request was rejected because the operation is not allowed on a replica.

Not Pending Deletion: The request was rejected because the key is not pending deletion.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `cancel-kms-key-deletion`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CancelKmsKeyDeletion) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.cancel_kms_key_deletion) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#cancelKmsKeyDeletion(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api cancel-kms-key-deletion`

## <span data-label="GET" class="pill-GET"></span>list-kms-key-rotations

List KMS Key Rotations

```
GET /kms-key/{id}/list-key-rotations
```

List all the key material versions of a KMS Key.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

**`200`**: The list of all historical rotations for the requested KMS key.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `rotations` | array of [List Kms Key Rotations Response Entry](https://community.exoscale.com/reference/api/_schemas/list-kms-key-rotations-response-entry/index.md) | A chronologically ordered collection tracking historical rotation lifecycle occurrences for this resource. |

<details>
<summary>Example output</summary>

```json
{
  "rotations": [
    {
      "automatic": true,
      "rotated-at": "2024-01-01T12:00:00Z",
      "version": 0
    }
  ]
}
```
</details>

**`400`**: Errors

Key Not Found: The request was rejected because the specified KMS Key could not be found.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `list-kms-key-rotations`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListKmsKeyRotations) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_kms_key_rotations) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listKmsKeyRotations(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-kms-key-rotations`

## <span data-label="GET" class="pill-GET"></span>list-kms-keys

List KMS Keys

```
GET /kms-key
```

Lists all KMS Keys in your organization in a given zone.

### Responses

**`200`**: A list of all KMS keys in the target zone

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `kms-keys` | array of [List Kms Keys Response Entry](https://community.exoscale.com/reference/api/_schemas/list-kms-keys-response-entry/index.md) | An array containing metadata entries for all available keys for your organization in the requested zone. |

<details>
<summary>Example output</summary>

```json
{
  "kms-keys": [
    {
      "created-at": "2024-01-01T12:00:00Z",
      "delete-at": "2024-01-01T12:00:00Z",
      "description": "string",
      "id": "string",
      "key-spec": "string",
      "material": {
        "automatic": true,
        "created-at": "2024-01-01T12:00:00Z",
        "version": 0
      },
      "multi-zone": true,
      "name": "string",
      "origin-zone": "string",
      "replicas": [
        "string"
      ],
      "revision": {
        "at": "2024-01-01T12:00:00Z",
        "seq": 0
      },
      "rotation": {
        "automatic": true,
        "manual-count": 0,
        "next-at": "2024-01-01T12:00:00Z",
        "rotation-period": 0
      },
      "source": "exoscale-kms",
      "status": "enabled",
      "status-since": "2024-01-01T12:00:00Z",
      "usage": "string",
      "xks": {
        "external-key-id": "string",
        "xks-id": "string"
      }
    }
  ]
}
```
</details>

**`400`**: Errors

Bad Request: The request was rejected because of an invalid request body or path parameter.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `list-kms-keys`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListKmsKeys) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_kms_keys) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listKmsKeys())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-kms-keys`

## <span data-label="POST" class="pill-POST"></span>replicate-kms-key

Replicate KMS Key

```
POST /kms-key/{id}/replicate
```

Replicate a KMS key to a target zone.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `zone` | string | **yes** | The targeted cloud zone where the KMS key should be replicated. |

<details>
<summary>Example</summary>

```json
{
  "zone": "string"
}
```
</details>


### Responses

**`200`**: Key replication target registered

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `status` | string | Allowed values: `success`, `target-registered`, `already-applied`.<br/><br/>Default: `success`. |

<details>
<summary>Example output</summary>

```json
{
  "status": "success"
}
```
</details>

**`400`**: Errors

Key Not Found: The request was rejected because the specified KMS Key could not be found.

Key is Pending Deletion: The request was rejected because it was performed on a key that is pending deletion.

Not on Default: The request was rejected because the operation is not allowed on the default key.

Not Multizone: The request was rejected because the KMS key is not a multi-zone key.

Conflict: The request was rejected because the key is already replicated in the target zone.

Invalid Argument: The request was rejected because the target zone is invalid.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `replicate-kms-key`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ReplicateKmsKey) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.replicate_kms_key) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#replicateKmsKey(java.util.UUID,com.exoscale.sdk.model.ReplicateKmsKeyRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api replicate-kms-key`

## <span data-label="POST" class="pill-POST"></span>rotate-kms-key

Rotate Key

```
POST /kms-key/{id}/rotate
```

Performs an immediate rotation of the key material for a symmetric key.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

**`200`**: Key rotated

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `rotation` | [Key Rotation Config](https://community.exoscale.com/reference/api/_schemas/key-rotation-config/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "rotation": {
    "automatic": true,
    "manual-count": 0,
    "next-at": "2024-01-01T12:00:00Z",
    "rotation-period": 0
  }
}
```
</details>

**`400`**: Errors

Key Not Found: The request was rejected because the specified KMS Key could not be found.

Key is Pending Deletion: The request was rejected because it was performed on a key that is pending deletion.

Not on a Replica: The request was rejected because the operation is not allowed on a replica.

Invalid Usage: The request was rejected because the operation is only allowed on symmetric keys with usage "encrypt-decrypt".

Key is Disabled: The request was rejected because the specified KMS key is disabled.

Manual Rotation Limit: The request was rejected because you reached your limit of 10 manual rotations per key for this KMS key.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `rotate-kms-key`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RotateKmsKey) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.rotate_kms_key) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#rotateKmsKey(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api rotate-kms-key`

## <span data-label="POST" class="pill-POST"></span>schedule-kms-key-deletion

Schedule KMS Key Deletion

```
POST /kms-key/{id}/schedule-deletion
```

Schedules a KMS key for deletion after a delay. You can specify a delay of 7-30 days.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `delay-days` | integer | no | Number of days to wait until deletion is final.<br/><br/>Min: `7`. Max: `30`. Default: `30`. |

<details>
<summary>Example</summary>

```json
{
  "delay-days": 0
}
```
</details>


### Responses

**`200`**: Key deletion scheduled

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `delete-at` | string | Timestamp of the key deletion<br/><br/>ISO 8601 date-time. |

<details>
<summary>Example output</summary>

```json
{
  "delete-at": "2024-01-01T12:00:00Z"
}
```
</details>

**`400`**: Errors

Key Not Found: The request was rejected because the specified KMS Key could not be found.

Not on Default: The request was rejected because the operation is not allowed on the default key.

Not on Replica: The request was rejected because the operation is not allowed on a replica.

Bad Request: The request was rejected because of an invalid request body or path parameter.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `schedule-kms-key-deletion`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ScheduleKmsKeyDeletion) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.schedule_kms_key_deletion) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#scheduleKmsKeyDeletion(java.util.UUID,com.exoscale.sdk.model.ScheduleKmsKeyDeletionRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api schedule-kms-key-deletion`

---

url: https://community.exoscale.com/reference/api/kms/external-key-store/

---

# External Key Store

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

[BETA] Operations for KMS External Key Store management.

## <span data-label="POST" class="pill-POST"></span>update-key-store

[BETA] Update Key Store

```
POST /key-store/{id}/update
```

Updates an External Key Store with a new description, endpoint, or credentials.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | no | A new detailed description providing additional context about the key store's intended use case.<br/><br/>Max length: `1024`. |
| `proxy` | [New customer-managed XKS proxy settings.](https://community.exoscale.com/reference/api/_schemas/update-key-store-proxy/index.md) | no |  |

<details>
<summary>Example</summary>

```json
{
  "description": "string",
  "proxy": {
    "auth": {
      "key": "string",
      "secret": "string"
    },
    "endpoint": "string"
  }
}
```
</details>


### Responses

**`200`**: Updated the External Key Store

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `created-at` | string | The creation timestamp.<br/><br/>ISO 8601 date-time. |
| `description` | string | An optional detailed description providing additional context about the key store's intended use case. |
| `health` | [Key Store Health](https://community.exoscale.com/reference/api/_schemas/key-store-health/index.md) |  |
| `id` | string | The globally unique identifier assigned to the key store.<br/><br/>Must be a valid UUID. |
| `name` | string | The display name assigned to the key store. |
| `proxy` | [Key Store Proxy Response](https://community.exoscale.com/reference/api/_schemas/key-store-proxy-response/index.md) |  |
| `status` | string | The current connection status of the key store.<br/><br/>Allowed values: `connected`, `disconnected`. |
| `status-since` | string | The timestamp indicating when the current key store status last transitioned.<br/><br/>ISO 8601 date-time. |
| `type` | string | The key store type.<br/><br/>Allowed values: `external-key-store`. |

<details>
<summary>Example output</summary>

```json
{
  "created-at": "2024-01-01T12:00:00Z",
  "description": "string",
  "health": {
    "checked-at": "2024-01-01T12:00:00Z",
    "error-detail": "string",
    "metadata-json": "string",
    "status": "healthy",
    "status-reason": "string"
  },
  "id": "string",
  "name": "string",
  "proxy": {
    "auth": {
      "key": "string"
    },
    "endpoint": "string"
  },
  "status": "connected",
  "status-since": "2024-01-01T12:00:00Z",
  "type": "external-key-store"
}
```
</details>

**`400`**: Errors

Not Found: The request was rejected because no key store with the given id exists in the organization.

Bad Request: The request was rejected because of an invalid path parameter.

Conflict: The request was rejected because the key store was concurrently modified. Retry with the latest state.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `update-key-store`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateKeyStore) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_key_store) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateKeyStore(java.util.UUID,com.exoscale.sdk.model.UpdateKeyStoreRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api update-key-store`

## <span data-label="POST" class="pill-POST"></span>create-key-store

[BETA] Create Key Store

```
POST /key-store
```

Create an External Key Store after validating the configured customer-managed XKS proxy.

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | **yes** | A human-readable display name uniquely identifying the key store within the organization.<br/><br/>Min length: `1`. Max length: `256`. |
| `proxy` | [Key Store Proxy](https://community.exoscale.com/reference/api/_schemas/key-store-proxy/index.md) | **yes** |  |
| `description` | string | no | An optional detailed description providing additional context about the key store's intended use case.<br/><br/>Max length: `1024`. |
| `type` | string | no | The key store type. Only external key stores are supported for this API version.<br/><br/>Allowed values: `external-key-store`.<br/><br/>Default: `external-key-store`. |

<details>
<summary>Example</summary>

```json
{
  "description": "string",
  "name": "string",
  "proxy": {
    "auth": {
      "key": "string",
      "secret": "string"
    },
    "endpoint": "string"
  },
  "type": "external-key-store"
}
```
</details>


### Responses

**`200`**: Created new External Key Store

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `created-at` | string | The creation timestamp.<br/><br/>ISO 8601 date-time. |
| `description` | string | An optional detailed description providing additional context about the key store's intended use case. |
| `id` | string | The globally unique identifier assigned to the key store.<br/><br/>Must be a valid UUID. |
| `name` | string | The display name assigned to the key store. |
| `proxy` | [Key Store Proxy Response](https://community.exoscale.com/reference/api/_schemas/key-store-proxy-response/index.md) |  |
| `status` | string | The current connection status of the key store.<br/><br/>Allowed values: `connected`, `disconnected`. |
| `status-since` | string | The timestamp indicating when the current key store status last transitioned.<br/><br/>ISO 8601 date-time. |
| `type` | string | The key store type.<br/><br/>Allowed values: `external-key-store`. |

<details>
<summary>Example output</summary>

```json
{
  "created-at": "2024-01-01T12:00:00Z",
  "description": "string",
  "id": "string",
  "name": "string",
  "proxy": {
    "auth": {
      "key": "string"
    },
    "endpoint": "string"
  },
  "status": "connected",
  "status-since": "2024-01-01T12:00:00Z",
  "type": "external-key-store"
}
```
</details>

**`400`**: Errors

Name Conflict: The request was rejected because a key store with the same name already exists in the organization.

Key Store Proxy Unhealthy: The request was rejected because the customer-managed XKS proxy failed its health check.

Bad Request: The request was rejected because of an invalid request body, path parameter, proxy endpoint, or proxy credentials.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `create-key-store`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateKeyStore) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_key_store) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createKeyStore(com.exoscale.sdk.model.CreateKeyStoreRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api create-key-store`

## <span data-label="GET" class="pill-GET"></span>get-key-store

[BETA] Get Key Store

```
GET /key-store/{id}
```

Fetch an External Key Store including its latest XKS health observation when available.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

**`200`**: External Key Store

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `created-at` | string | The creation timestamp.<br/><br/>ISO 8601 date-time. |
| `description` | string | An optional detailed description providing additional context about the key store's intended use case. |
| `health` | [Key Store Health](https://community.exoscale.com/reference/api/_schemas/key-store-health/index.md) |  |
| `id` | string | The globally unique identifier assigned to the key store.<br/><br/>Must be a valid UUID. |
| `name` | string | The display name assigned to the key store. |
| `proxy` | [Key Store Proxy Response](https://community.exoscale.com/reference/api/_schemas/key-store-proxy-response/index.md) |  |
| `status` | string | The current connection status of the key store.<br/><br/>Allowed values: `connected`, `disconnected`. |
| `status-since` | string | The timestamp indicating when the current key store status last transitioned.<br/><br/>ISO 8601 date-time. |
| `type` | string | The key store type.<br/><br/>Allowed values: `external-key-store`. |

<details>
<summary>Example output</summary>

```json
{
  "created-at": "2024-01-01T12:00:00Z",
  "description": "string",
  "health": {
    "checked-at": "2024-01-01T12:00:00Z",
    "error-detail": "string",
    "metadata-json": "string",
    "status": "healthy",
    "status-reason": "string"
  },
  "id": "string",
  "name": "string",
  "proxy": {
    "auth": {
      "key": "string"
    },
    "endpoint": "string"
  },
  "status": "connected",
  "status-since": "2024-01-01T12:00:00Z",
  "type": "external-key-store"
}
```
</details>

**`400`**: Errors

Not Found: The request was rejected because no key store with the given id exists in the organization.

Bad Request: The request was rejected because of an invalid path parameter.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `get-key-store`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetKeyStore) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_key_store) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getKeyStore(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-key-store`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-key-store

[BETA] Delete Key Store

```
DELETE /key-store/{id}
```

Deletes an External Key Store when no KMS keys reference it.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

**`200`**: Deleted the External Key Store

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `status` | string | Allowed values: `success`, `target-registered`, `already-applied`.<br/><br/>Default: `success`. |

<details>
<summary>Example output</summary>

```json
{
  "status": "success"
}
```
</details>

**`400`**: Errors

Not Found: The request was rejected because no key store with the given id exists in the organization.

Key Store Is Referenced: The request was rejected because one or more KMS keys reference the key store.

Bad Request: The request was rejected because of an invalid path parameter.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `delete-key-store`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteKeyStore) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_key_store) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteKeyStore(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api delete-key-store`


---

## Other Operations

## <span data-label="POST" class="pill-POST"></span>connect-key-store

[BETA] Connect Key Store

```
POST /key-store/{id}/connect
```

Connects an External Key Store once its customer-managed XKS proxy passes a health check, then resumes periodic proxy health checks and lets keys backed by this store be used for cryptographic operations.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

**`200`**: Connected the External Key Store

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `status` | string | Allowed values: `success`, `target-registered`, `already-applied`.<br/><br/>Default: `success`. |

<details>
<summary>Example output</summary>

```json
{
  "status": "success"
}
```
</details>

**`400`**: Errors

Not Found: The request was rejected because no key store with the given id exists in the organization.

Key Store Proxy Unhealthy: The request was rejected because the customer-managed XKS proxy failed its health check.

Bad Request: The request was rejected because of an invalid path parameter.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `connect-key-store`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ConnectKeyStore) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.connect_key_store) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#connectKeyStore(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api connect-key-store`

## <span data-label="POST" class="pill-POST"></span>disconnect-key-store

[BETA] Disconnect Key Store

```
POST /key-store/{id}/disconnect
```

Disconnects an External Key Store and suspends periodic proxy health checks; keys backed by this store remain intact but cannot be used for cryptographic operations until it is reconnected.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

**`200`**: Disconnected the External Key Store

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `status` | string | Allowed values: `success`, `target-registered`, `already-applied`.<br/><br/>Default: `success`. |

<details>
<summary>Example output</summary>

```json
{
  "status": "success"
}
```
</details>

**`400`**: Errors

Not Found: The request was rejected because no key store with the given id exists in the organization.

Bad Request: The request was rejected because of an invalid path parameter.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `disconnect-key-store`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DisconnectKeyStore) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.disconnect_key_store) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#disconnectKeyStore(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api disconnect-key-store`

## <span data-label="GET" class="pill-GET"></span>list-key-stores

[BETA] List Key Stores

```
GET /key-store
```

Lists all key stores configured for an organization.

### Responses

**`200`**: A list of all key stores configured for the organization

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `key-stores` | array of [List Key Stores Response Entry](https://community.exoscale.com/reference/api/_schemas/list-key-stores-response-entry/index.md) | The key stores configured for the organization. |

<details>
<summary>Example output</summary>

```json
{
  "key-stores": [
    {
      "created-at": "2024-01-01T12:00:00Z",
      "description": "string",
      "id": "string",
      "name": "string",
      "proxy": {
        "auth": {
          "key": "string"
        },
        "endpoint": "string"
      },
      "status": "connected",
      "status-since": "2024-01-01T12:00:00Z",
      "type": "external-key-store"
    }
  ]
}
```
</details>

**`400`**: Errors

Bad Request: The request was rejected because of an invalid path parameter.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `list-key-stores`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListKeyStores) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_key_stores) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listKeyStores())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-key-stores`

---

url: https://community.exoscale.com/reference/api/kms/cryptographic-operations/

---

# Cryptographic Operations

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

A suite of cryptographic primitives offered by the Exoscale KMS.

[Read more](https://community.exoscale.com/product/security/kms/overview/index.md)


---

## Other Operations

## <span data-label="POST" class="pill-POST"></span>decrypt

Decrypt

```
POST /kms-key/{id}/decrypt
```

Decrypts a ciphertext.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `ciphertext` | string | **yes** | The Base64-encoded ciphertext payload to be decrypted.<br/><br/>Base64-encoded string. |
| `encryption-algorithm` | string | no | The encryption algorithm this key must use. Validated against the key's actual cryptographic profile. Required for asymmetric keys. Symmetric keys use AES_256 when it is omitted.<br/><br/>Allowed values: `AES_256`, `RSAES_OAEP_SHA_256`. |
| `encryption-context` | string | no | The exact Base64-encoded Additional Authenticated Data (AAD) used during encryption to verify data integrity.<br/><br/>Base64-encoded string. |

<details>
<summary>Example</summary>

```json
{
  "ciphertext": "string",
  "encryption-algorithm": "AES_256",
  "encryption-context": "string"
}
```
</details>


### Responses

**`200`**: Base64 encoded plaintext.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `encryption-algorithm` | string | The encryption algorithm that was used to decrypt this ciphertext.<br/><br/>Allowed values: `AES_256`, `RSAES_OAEP_SHA_256`. |
| `plaintext` | string | The recovered Base64-encoded original plaintext payload.<br/><br/>Base64-encoded string. |

<details>
<summary>Example output</summary>

```json
{
  "encryption-algorithm": "AES_256",
  "plaintext": "string"
}
```
</details>

**`400`**: Errors

Key Not Found: The request was rejected because the specified KMS Key could not be found.

Key is Disabled: The request was rejected because the specified KMS key is disabled.

Invalid Usage: The request was rejected because the operation is not allowed for this key's usage.

Invalid Algorithm: The request was rejected because the specified encryption algorithm does not match the key's cryptographic profile.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `decrypt`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.Decrypt) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.decrypt) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#decrypt(java.util.UUID,com.exoscale.sdk.model.DecryptRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api decrypt`

## <span data-label="POST" class="pill-POST"></span>encrypt

Encrypt

```
POST /kms-key/{id}/encrypt
```

Encrypts a plaintext.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `plaintext` | string | **yes** | The Base64-encoded plaintext data you wish to encrypt.<br/><br/>Base64-encoded string. |
| `encryption-algorithm` | string | no | The encryption algorithm this key must use. Validated against the key's actual cryptographic profile. Required for asymmetric keys. Symmetric keys use AES_256 when it is omitted.<br/><br/>Allowed values: `AES_256`, `RSAES_OAEP_SHA_256`. |
| `encryption-context` | string | no | Base64-encoded bytes to be used as the Additional Authenticated Data (AAD) for encryption integrity.<br/><br/>Base64-encoded string. |

<details>
<summary>Example</summary>

```json
{
  "encryption-algorithm": "AES_256",
  "encryption-context": "string",
  "plaintext": "string"
}
```
</details>


### Responses

**`200`**: Base64 encoded ciphertext

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `ciphertext` | string | The resulting Base64-encoded ciphertext after encryption.<br/><br/>Base64-encoded string. |
| `encryption-algorithm` | string | The encryption algorithm that was used to encrypt this plaintext.<br/><br/>Allowed values: `AES_256`, `RSAES_OAEP_SHA_256`. |

<details>
<summary>Example output</summary>

```json
{
  "ciphertext": "string",
  "encryption-algorithm": "AES_256"
}
```
</details>

**`400`**: Errors

Key Not Found: The request was rejected because the specified KMS Key could not be found.

Key is Disabled: The request was rejected because the specified KMS key is disabled.

Invalid Usage: The request was rejected because the operation is not allowed for this key's usage.

Invalid Algorithm: The request was rejected because the specified encryption algorithm does not match the key's cryptographic profile.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `encrypt`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.Encrypt) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.encrypt) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#encrypt(java.util.UUID,com.exoscale.sdk.model.EncryptRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api encrypt`

## <span data-label="POST" class="pill-POST"></span>generate-data-key

Generate Data Encryption Key

```
POST /kms-key/{id}/generate-data-key
```

Generate a Data Encryption Key from a given KMS Key.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `bytes-count` | integer | no | Min: `1`. Max: `1024`. |
| `encryption-context` | string | no | Base64-encoded Additional Authenticated Data binding key generation parameters securely to operational scope.<br/><br/>Base64-encoded string. |
| `key-spec` | string | no | Allowed values: `AES-256`. |

<details>
<summary>Example</summary>

```json
{
  "bytes-count": 0,
  "encryption-context": "string",
  "key-spec": "AES-256"
}
```
</details>


### Responses

**`200`**: Data Encryption Key in the clear and in its base64 encoded encrypted format.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `ciphertext` | string | The identical symmetric data key, returned safely wrapped/encrypted using the designated root parent KMS key.<br/><br/>Base64-encoded string. |
| `plaintext` | string | The Base64-encoded raw symmetric data key payload. Expose only securely during active application setups.<br/><br/>Base64-encoded string. |

<details>
<summary>Example output</summary>

```json
{
  "ciphertext": "string",
  "plaintext": "string"
}
```
</details>

**`400`**: Errors

Key Not Found: The request was rejected because the specified KMS Key could not be found.

Key is Disabled: The request was rejected because the specified KMS key is disabled.

Invalid Usage: The request was rejected because the operation is only allowed on symmetric keys with usage "encrypt-decrypt".

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `generate-data-key`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GenerateDataKey) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.generate_data_key) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#generateDataKey(java.util.UUID,com.exoscale.sdk.model.GenerateDataKeyRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api generate-data-key`

## <span data-label="GET" class="pill-GET"></span>get-public-key

Get Public Key

```
GET /kms-key/{id}/get-public-key
```

Retrieve the public key material of an asymmetric KMS key.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

**`200`**: Public Key Details

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `key-id` | string | The UUID of the KMS key the public key material belongs to.<br/><br/>Must be a valid UUID. |
| `key-spec` | string | The cryptographic key specification of the key pair, defining its algorithm and curve. |
| `public-key` | string | The Base64-encoded X.509 SubjectPublicKeyInfo (SPKI) DER encoding of the key's public key.<br/><br/>Base64-encoded string. |
| `usage` | string | The usage of the key pair, either `encrypt-decrypt` or `sign-verify`. |

<details>
<summary>Example output</summary>

```json
{
  "key-id": "string",
  "key-spec": "string",
  "public-key": "string",
  "usage": "string"
}
```
</details>

**`400`**: Errors

Key Not Found: The request was rejected because the specified KMS Key could not be found.

Key is Disabled: The request was rejected because the specified KMS Key is disabled (or pending deletion).

Invalid Usage: The request was rejected because the specified KMS Key does not have public key material (its key-spec is symmetric).

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `get-public-key`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetPublicKey) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_public_key) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getPublicKey(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-public-key`

## <span data-label="POST" class="pill-POST"></span>re-encrypt

Re-encrypt

```
POST /kms-key/{id}/re-encrypt
```

Decrypts an existing ciphertext using its original key material and re-encrypts the underlying plaintext using a specified KMS key or the latest key material of the same KMS Key. Source and destination keys must belong to the same key family.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `destination` | [Destination](https://community.exoscale.com/reference/api/_schemas/re-encrypt-request/index.md#destination) | **yes** |  |
| `source` | [Source](https://community.exoscale.com/reference/api/_schemas/re-encrypt-request/index.md#source) | **yes** |  |

<details>
<summary>Example</summary>

```json
{
  "destination": {
    "encryption-algorithm": "AES_256",
    "encryption-context": "string",
    "key": "string"
  },
  "source": {
    "ciphertext": "string",
    "encryption-algorithm": "AES_256",
    "encryption-context": "string",
    "key": "string"
  }
}
```
</details>


### Responses

**`200`**: Base64 encoded ciphertext

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `ciphertext` | string | The new Base64-encoded ciphertext block safely wrapped by the chosen destination key parameters.<br/><br/>Base64-encoded string. |
| `destination-encryption-algorithm` | string | The encryption algorithm that was used to encrypt the destination ciphertext.<br/><br/>Allowed values: `AES_256`, `RSAES_OAEP_SHA_256`. |
| `source-encryption-algorithm` | string | The encryption algorithm that was used to decrypt the source ciphertext.<br/><br/>Allowed values: `AES_256`, `RSAES_OAEP_SHA_256`. |

<details>
<summary>Example output</summary>

```json
{
  "ciphertext": "string",
  "destination-encryption-algorithm": "AES_256",
  "source-encryption-algorithm": "AES_256"
}
```
</details>

**`400`**: Errors

Key Not Found: The request was rejected because the specified KMS Key could not be found.

Key is Disabled: The request was rejected because the specified KMS key is disabled.

Not on Default: The request was rejected because the operation is not allowed on the default key.

Invalid Usage: The request was rejected because the operation is not allowed for this key's usage.

Invalid Algorithm: The request was rejected because the specified encryption algorithm does not match the key's cryptographic profile.

Key Family Mismatch: The request was rejected because the source and destination keys do not belong to the same key family.

Bad Request: The request was rejected because of an invalid request body or path parameter.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `re-encrypt`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ReEncrypt) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.re_encrypt) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#reEncrypt(java.util.UUID,com.exoscale.sdk.model.ReEncryptRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api re-encrypt`

## <span data-label="POST" class="pill-POST"></span>sign

Sign

```
POST /kms-key/{id}/sign
```

Signs a message or digest using a KMS key with usage `sign-verify`.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `message` | string | **yes** | The Base64-encoded message to sign (1-4096 decoded bytes). Its meaning depends on `message-type`, either the raw plaintext message or an already-hashed digest.<br/><br/>Base64-encoded string. Min length: `1`. Max length: `5464`. |
| `signing-algorithm` | string | **yes** | The signing algorithm to use. Must match the family implied by the key's `key-spec`.<br/><br/>Allowed values: `RSASSA_PSS_SHA_256`, `RSASSA_PSS_SHA_384`, `RSASSA_PSS_SHA_512`, `ECDSA_SHA_256`, `ECDSA_SHA_384`, `ECDSA_SHA_512`, `EDDSA_ED25519`, `ED25519_PH_SHA_512`, `ML_DSA_SHAKE_256`. |
| `message-type` | string | no | How `message` should be interpreted.<br/><br/>Allowed values: `raw`, `digest`.<br/><br/>Default: `raw`. |

<details>
<summary>Example</summary>

```json
{
  "message": "string",
  "message-type": "raw",
  "signing-algorithm": "RSASSA_PSS_SHA_256"
}
```
</details>


### Responses

**`200`**: The message was successfully signed

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `key-spec` | string | The cryptographic key specification used to produce the signature. |
| `signature` | string | The resulting Base64-encoded signature.<br/><br/>Base64-encoded string. |
| `signing-algorithm` | string | The signing algorithm used to produce the signature, echoing the request's `signing-algorithm`. |

<details>
<summary>Example output</summary>

```json
{
  "key-spec": "string",
  "signature": "string",
  "signing-algorithm": "string"
}
```
</details>

**`400`**: Errors

Key Not Found: The request was rejected because the specified KMS Key could not be found.

Key is Disabled: The request was rejected because the specified KMS Key is disabled (or pending deletion).

Invalid Usage: The request was rejected because the operation is only allowed on keys with usage "sign-verify".

Invalid Argument: The request was rejected because `message-type`, `message`, or `signing-algorithm` is invalid.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `sign`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.Sign) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.sign) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#sign(java.util.UUID,com.exoscale.sdk.model.SignRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api sign`

## <span data-label="POST" class="pill-POST"></span>verify

Verify

```
POST /kms-key/{id}/verify
```

Verifies a signature against the public key of a KMS key with usage `sign-verify`.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `message` | string | **yes** | The Base64-encoded message to verify (1-4096 decoded bytes), with the same semantics as `sign`'s `message` field.<br/><br/>Base64-encoded string. Min length: `1`. Max length: `5464`. |
| `signature` | string | **yes** | The Base64-encoded signature to verify against `message` (1-6144 decoded bytes).<br/><br/>Base64-encoded string. Min length: `1`. Max length: `8192`. |
| `signing-algorithm` | string | **yes** | The signing algorithm `signature` was produced with. Must match the family implied by the key's `key-spec`, with the same semantics as `sign`'s `signing-algorithm` field.<br/><br/>Allowed values: `RSASSA_PSS_SHA_256`, `RSASSA_PSS_SHA_384`, `RSASSA_PSS_SHA_512`, `ECDSA_SHA_256`, `ECDSA_SHA_384`, `ECDSA_SHA_512`, `EDDSA_ED25519`, `ED25519_PH_SHA_512`, `ML_DSA_SHAKE_256`. |
| `message-type` | string | no | How `message` should be interpreted, with the same semantics as `sign`'s `message-type` field.<br/><br/>Allowed values: `raw`, `digest`.<br/><br/>Default: `raw`. |

<details>
<summary>Example</summary>

```json
{
  "message": "string",
  "message-type": "raw",
  "signature": "string",
  "signing-algorithm": "RSASSA_PSS_SHA_256"
}
```
</details>


### Responses

**`200`**: The signature is valid.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `key-id` | string | The UUID of the KMS key used to verify the signature.<br/><br/>Must be a valid UUID. |
| `key-spec` | string | The cryptographic key specification used to verify the signature. |
| `signature-valid` | boolean | Whether `signature` is a valid signature over `message` produced by this KMS key. |

<details>
<summary>Example output</summary>

```json
{
  "key-id": "string",
  "key-spec": "string",
  "signature-valid": true
}
```
</details>

**`400`**: Errors

Key Not Found: The request was rejected because the specified KMS Key could not be found.

Key is Disabled: The request was rejected because the specified KMS Key is disabled (or pending deletion).

Invalid Usage: The request was rejected because the operation is only allowed on keys with usage "sign-verify".

Invalid Argument: The request was rejected because `message-type`, `message`, or `signing-algorithm` is invalid.

Invalid Signature: The request was rejected because `signature` is not a valid signature for `message` under this key.

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string | A highly contextual, readable explanation breaking down explicitly what triggered this error scenario. |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string | A brief summary defining the class of failure, optimal for quick user interface groupings. |
| `type` | string | An absolute or relative URI reference pointing to human-readable documentation concerning the specific problem type encountered.<br/><br/>Must be a valid URI reference. |
| `xks-proxy-error` | [Xks Proxy Error Detail](https://community.exoscale.com/reference/api/_schemas/xks-proxy-error-detail/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string",
  "type": "string",
  "xks-proxy-error": {
    "error-message": "string",
    "error-name": "string"
  }
}
```
</details>


SDK reference for `verify`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.Verify) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.verify) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#verify(java.util.UUID,com.exoscale.sdk.model.VerifyRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api verify`

---

url: https://community.exoscale.com/reference/api/general/

---

# General

- [Organization](https://community.exoscale.com/reference/api/general/organization/index.md) - 5 API operations
- [Quotas](https://community.exoscale.com/reference/api/general/quotas/index.md) - 2 API operations
- [Operation](https://community.exoscale.com/reference/api/general/operation/index.md) - Operations describe the current state of an asynchronous operation.
- [Zone](https://community.exoscale.com/reference/api/general/zone/index.md) - A Zone represents an independent datacenter in which Exoscale infrastructure is deployed into.
- [Environmental Impact](https://community.exoscale.com/reference/api/general/environmental-impact/index.md) - View the impact of your past usage, and estimate the impact of future usage.

---

url: https://community.exoscale.com/reference/api/general/operation/

---

# Operation

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Operations describe the current state of an asynchronous operation.

[Read more](https://community.exoscale.com/)


---

## Other Operations

## <span data-label="GET" class="pill-GET"></span>get-operation

Retrieve Operation details

```
GET /operation/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](https://community.exoscale.com/reference/api/_schemas/operation/index.md#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `get-operation`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetOperation) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_operation) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getOperation(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-operation`

---

url: https://community.exoscale.com/reference/api/general/zone/

---

# Zone

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

A Zone represents an independent datacenter in which Exoscale infrastructure is deployed into.

[Read more](https://www.exoscale.com/datacenters/)


---

## Other Operations

## <span data-label="GET" class="pill-GET"></span>list-zones

List Zones

```
GET /zone
```

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `zones` | array of [Zone](https://community.exoscale.com/reference/api/_schemas/zone/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "zones": [
    {
      "api-endpoint": "string",
      "name": "ch-dk-2",
      "sos-endpoint": "string"
    }
  ]
}
```
</details>


SDK reference for `list-zones`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListZones) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_zones) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listZones())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-zones`

---

url: https://community.exoscale.com/reference/api/general/environmental-impact/

---

# Environmental Impact

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

View the impact of your past usage, and estimate the impact of future usage.

[Read more](https://community.exoscale.com/platform/environmental-impact/index.md)


---

## Other Operations

## <span data-label="POST" class="pill-POST"></span>get-impact-estimate

[BETA] Get an estimate of the impact of using products

```
POST /environmental-impact/estimate
```

[BETA] Returns an estimate of the impact of a unit of usage of one or more products, e.g. the impact of using a standard medium instance for one hour in ch-gva-2

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `sku` | string | **yes** | Product SKU, e.g. compute:ch-gva-2:instance:standard:medium; can also include wildcards, e.g. compute:\*:instance:standard:\* for all standard instances in all zones |
| `metadata` | object | no | Product-specific configuration details |

<details>
<summary>Example</summary>

```json
{
  "metadata": {},
  "sku": "string"
}
```
</details>


### Responses

**`200`**: Impact estimate

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `impact` | object | Map of SKUs to their different impact indicators |

<details>
<summary>Example output</summary>

```json
{
  "impact": {}
}
```
</details>

**`400`**: Invalid request (e.g. product does not exist)

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string |  |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string"
}
```
</details>

**`500`**: Internal server error

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string |  |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string"
}
```
</details>


SDK reference for `get-impact-estimate`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetImpactEstimate) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_impact_estimate) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getImpactEstimate(com.exoscale.sdk.model.GetImpactEstimateRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-impact-estimate`

## <span data-label="GET" class="pill-GET"></span>get-impact-report

[BETA] Get an environmental impact report

```
GET /environmental-impact/report
```

[BETA] Returns a breakdown of the impact of your organization's usage over the given period

### Query parameters

| Name | In | Required | Description |
| --- | --- | --- | --- |
| `from` | `query` | no |  |
| `to` | `query` | no |  |

### Responses

**`200`**: Environmental impact report

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `impact` | object |  |
| `zones` | object |  |

<details>
<summary>Example output</summary>

```json
{
  "impact": {},
  "zones": {}
}
```
</details>

**`400`**: Invalid request (e.g. to date before from date)

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string |  |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string"
}
```
</details>

**`500`**: Internal server error

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `detail` | string |  |
| `status` | integer | Min: `100`. Max: `599`. |
| `title` | string |  |

<details>
<summary>Example output</summary>

```json
{
  "detail": "string",
  "status": 0,
  "title": "string"
}
```
</details>


SDK reference for `get-impact-report`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetImpactReport) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_impact_report) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getImpactReport(java.lang.String,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-impact-report`

---

url: https://community.exoscale.com/reference/api/general/organization/

---

# Organization

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>


---

## Other Operations

## <span data-label="GET" class="pill-GET"></span>get-env-impact

[REMOVED] use get-impact-report endpoint

```
GET /env-impact/{period}
```

[REMOVED] This endpoint is no longer available: it always returns 410 Gone with a message. Use get-impact-report endpoint instead.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `period` | `path` |  |

### Responses

Status: `410` - 410

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `message` | string | Explains that the endpoint was removed |

<details>
<summary>Example output</summary>

```json
{
  "message": "string"
}
```
</details>


SDK reference for `get-env-impact`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetEnvImpact) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_env_impact) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getEnvImpact(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-env-impact`

## <span data-label="GET" class="pill-GET"></span>get-focus-report

[BETA] Retrieve organization focus report download URL

```
GET /focus-report/{period}
```

[BETA] Returns a presigned URL for the organization's focus report for the period

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `period` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `expires_in` | integer | URL expiration in seconds<br/><br/>Min: `0`. |
| `presigned_url` | string | Focus report presigned URL |

<details>
<summary>Example output</summary>

```json
{
  "expires_in": 0,
  "presigned_url": "string"
}
```
</details>


SDK reference for `get-focus-report`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetFocusReport) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_focus_report) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getFocusReport(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-focus-report`

## <span data-label="GET" class="pill-GET"></span>get-live-balance

[BETA] Retrieve the live-balance

```
GET /live-balance
```

[BETA] Returns the live-balance of the current organization.

### Responses

**`200`**: 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `balance` | number | Organization live balance |
| `currency` | string | Organization currency |

<details>
<summary>Example output</summary>

```json
{
  "balance": 0,
  "currency": "string"
}
```
</details>

**`429`**: 429

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `error` | string | The error message |
| `retry_after` | number | The time in seconds to wait before the next request |

<details>
<summary>Example output</summary>

```json
{
  "error": "string",
  "retry_after": 0
}
```
</details>


SDK reference for `get-live-balance`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetLiveBalance) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_live_balance) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getLiveBalance())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-live-balance`

## <span data-label="GET" class="pill-GET"></span>get-organization

Retrieve an organization

```
GET /organization
```

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `address` | string | Organization address |
| `balance` | number | Organization balance. DEPRECATED: use the dedicated `live-balance` endpoint |
| `city` | string | Organization city |
| `country` | string | Organization country |
| `currency` | string | Organization currency |
| `id` | string | Organization ID<br/><br/>Must be a valid UUID. |
| `name` | string | Organization name |
| `postcode` | string | Organization postcode |

<details>
<summary>Example output</summary>

```json
{
  "address": "string",
  "balance": 0,
  "city": "string",
  "country": "string",
  "currency": "string",
  "id": "string",
  "name": "string",
  "postcode": "string"
}
```
</details>


SDK reference for `get-organization`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetOrganization) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_organization) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getOrganization())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-organization`

## <span data-label="GET" class="pill-GET"></span>get-usage-report

Retrieve organization usage reports

```
GET /usage-report
```

Returns aggregated usage reports for an organization

### Query parameters

| Name | In | Required | Description |
| --- | --- | --- | --- |
| `period` | `query` | no |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `usage` | array of [Usage](#usage) |  |

<details>
<summary>Example output</summary>

```json
{
  "usage": [
    {
      "description": "string",
      "from": "string",
      "product": "string",
      "quantity": "string",
      "to": "string",
      "unit": "string",
      "variable": "string"
    }
  ]
}
```
</details>


### Usage {#usage}

Usage

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | no | Description |
| `from` | string | no | Period Start Date |
| `product` | string | no | Product |
| `quantity` | string | no | Quantity |
| `to` | string | no | Period End Date |
| `unit` | string | no | Unit |
| `variable` | string | no | Variable |

SDK reference for `get-usage-report`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetUsageReport) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_usage_report) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getUsageReport(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-usage-report`

---

url: https://community.exoscale.com/reference/api/general/quotas/

---

# Quotas

<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>


---

## Other Operations

## <span data-label="GET" class="pill-GET"></span>get-quota

Retrieve Resource Quota

```
GET /quota/{entity}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `entity` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `limit` | integer | Resource Limit. -1 for Unlimited |
| `resource` | string | Resource Name |
| `usage` | integer | Resource Usage |

<details>
<summary>Example output</summary>

```json
{
  "limit": 0,
  "resource": "string",
  "usage": 0
}
```
</details>


SDK reference for `get-quota`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetQuota) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_quota) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getQuota(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api get-quota`

## <span data-label="GET" class="pill-GET"></span>list-quotas

List Organization Quotas

```
GET /quota
```

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `quotas` | array of [Organization Quota](https://community.exoscale.com/reference/api/_schemas/quota/index.md) |  |

<details>
<summary>Example output</summary>

```json
{
  "quotas": [
    {
      "limit": 0,
      "resource": "string",
      "usage": 0
    }
  ]
}
```
</details>


SDK reference for `list-quotas`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListQuotas) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_quotas) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listQuotas())

[CLI](https://community.exoscale.com/tools/command-line-interface/index.md): `exo api list-quotas`
