# 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/documentation/compute/instance-pools/)

## <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](/reference/api/_schemas/instance-type-ref/) | **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](/reference/api/_schemas/template-ref/) | **yes** | Instances template |
| `anti-affinity-groups` | array of [Anti-affinity group reference](/reference/api/_schemas/anti-affinity-group-ref/) | no | Instance Pool Anti-affinity Groups |
| `application-consistent-snapshot-enabled` | boolean | no | Enable application consistent snapshots |
| `deploy-target` | [Deploy target reference](/reference/api/_schemas/deploy-target-ref/) | 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](/reference/api/_schemas/elastic-ip-ref/) | 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](/reference/api/_schemas/private-network-ref/) | 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](/reference/api/_schemas/security-group-ref/) | no | Instance Pool Security Groups |
| `ssh-key` | [SSH key reference](/reference/api/_schemas/ssh-key-ref/) | no | Instances SSH key |
| `ssh-keys` | array of [SSH key reference](/reference/api/_schemas/ssh-key-ref/) | 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](/reference/api/_schemas/operation/#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/): `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](/reference/api/_schemas/anti-affinity-group-ref/) | Instance Pool Anti-affinity Groups |
| `application-consistent-snapshot-enabled` | boolean | Enable application consistent snapshots |
| `deploy-target` | [Deploy target reference](/reference/api/_schemas/deploy-target-ref/) | 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](/reference/api/_schemas/elastic-ip-ref/) | Instances Elastic IPs |
| `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](/reference/api/_schemas/instance-type-ref/) | Instances type |
| `instances` | array of [Target Instance](/reference/api/_schemas/instance-ref/) | Instances |
| `ipv6-enabled` | boolean | Enable IPv6 for instances |
| `labels` | object | Instance Pool Labels |
| `manager` | [Resource manager](/reference/api/_schemas/manager/) | 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](/reference/api/_schemas/private-network-ref/) | 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](/reference/api/_schemas/security-group-ref/) | Instance Pool Security Groups |
| `size` | integer | Number of instances<br/><br/>Min: `0`. |
| `ssh-key` | [SSH key reference](/reference/api/_schemas/ssh-key-ref/) | Instances SSH key |
| `ssh-keys` | array of [SSH key reference](/reference/api/_schemas/ssh-key-ref/) | Instances SSH keys |
| `state` | string | Instance Pool state<br/><br/>Allowed values: `scaling-up`, `scaling-down`, `destroying`, `creating`, `suspended`, `running`, `updating`. |
| `template` | [Template reference](/reference/api/_schemas/template-ref/) | 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"
    }
  ],
  "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/): `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](/reference/api/_schemas/operation/#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/): `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](/reference/api/_schemas/anti-affinity-group-ref/) | no | Instance Pool Anti-affinity Groups |
| `application-consistent-snapshot-enabled` | boolean | no | Enable application consistent snapshots |
| `deploy-target` | [Deploy target reference](/reference/api/_schemas/deploy-target-ref/) | 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](/reference/api/_schemas/elastic-ip-ref/) | no | Instances Elastic IPs |
| `instance-prefix` | string | no | Prefix to apply to Instances names (default: pool) |
| `instance-type` | [Instance type reference](/reference/api/_schemas/instance-type-ref/) | 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](/reference/api/_schemas/private-network-ref/) | 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](/reference/api/_schemas/security-group-ref/) | no | Instance Pool Security Groups |
| `ssh-key` | [SSH key reference](/reference/api/_schemas/ssh-key-ref/) | no | Instances SSH key |
| `ssh-keys` | array of [SSH key reference](/reference/api/_schemas/ssh-key-ref/) | no | Instances SSH keys |
| `template` | [Template reference](/reference/api/_schemas/template-ref/) | 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](/reference/api/_schemas/operation/#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/): `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](/reference/api/_schemas/operation/#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/): `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](/reference/api/_schemas/operation/#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/): `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](/reference/api/_schemas/operation/#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/): `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](/reference/api/_schemas/instance-pool/) |  |

<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"
        }
      ],
      "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/): `exo api list-instance-pools`


