# Public Cloud › Network › Load Balancer › Pools API

> Part of the OVHcloud developer hub. Index of every page and section: https://developers.eu.ovhcloud.com/llms.txt
> The Public Cloud product's sections: https://developers.eu.ovhcloud.com/reference/public-cloud/llms.txt
> Everything in one file: https://developers.eu.ovhcloud.com/llms-full.txt

> 10 operations of the OVHcloud API. Calls carry `authorization: Bearer $OVH_TOKEN`; the EU host is shown, Canada and the United States answer on api.ca.ovhcloud.com and api.us.ovhcloud.com.

Page: https://developers.eu.ovhcloud.com/reference/public-cloud/network/load-balancer/pools/

OpenAPI v1: https://api.eu.ovhcloud.com/1.0/__schemas/developer-hub-navigation/public-cloud/network/load-balancer/pools.json?format=openapi3
OpenAPI v2: https://api.eu.ovhcloud.com/v2/__schemas/developer-hub-navigation/public-cloud/network/load-balancer/pools.json?format=openapi3

## Operations

- `GET /publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool` — List pools
- `GET /publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}` — Get a pool
- `POST /publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool` — Create a pool
- `DELETE /publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}` — Delete a pool
- `PUT /publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}` — Update a pool
- `GET /publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member` — List pool members
- `GET /publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member/{memberId}` — Get a pool member
- `POST /publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member` — Create a pool member
- `DELETE /publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member/{memberId}` — Delete a pool member
- `PUT /publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member/{memberId}` — Update a pool member

## List pools

`GET /v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/network/load-balancer/pools/#getLoadBalancerPools

**Status:** Stable production version  
**IAM actions:** `publicCloudProject:apiovh:loadbalancer/pool/get`

Returns the pools of the load balancer.

### Filters
The optional `name`, `protocol` and `algorithm` query parameters narrow the list. Each one can be repeated (for example `?protocol=HTTP&protocol=TCP`): repeated values of the same parameter are combined with OR, and different parameters are combined with AND. An unknown `protocol` or `algorithm` value is rejected with a `400 InvalidParameter`. The `resourceStatus` is computed from the live state of each resource, so it is not a filter: a `status` query parameter is rejected with a `400 InvalidParameter`.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `X-Pagination-Cursor` | header | string |  | Pagination cursor |
| `X-Pagination-Size` | header | integer |  | Pagination size |
| `algorithm` | query | publicCloud.loadbalancer.PoolAlgorithmEnum[] |  | Filter by pool load balancing algorithm. Repeatable. |
| `loadbalancerId` | path | string (uuid) | yes | Loadbalancer ID |
| `name` | query | string[] |  | Filter by pool name (case-insensitive substring match). Repeatable. |
| `projectId` | path | string | yes | Project ID |
| `protocol` | query | publicCloud.loadbalancer.PoolProtocolEnum[] |  | Filter by pool protocol. Repeatable. |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | publicCloud.loadbalancer.Pool[] | successful operation |
| 400 | object | Error 400 response |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `checksum` | string | read-only | Computed hash representing the current target specification value |
| `createdAt` | string (date-time) | read-only | Creation date of the pool |
| `currentState` | publicCloud.loadbalancer.PoolCurrentState | read-only | Current state of the pool |
| `currentState.algorithm` | publicCloud.loadbalancer.PoolAlgorithmEnum | read-only | Load balancing algorithm — one of `LEAST_CONNECTIONS`, `ROUND_ROBIN`, `SOURCE_IP` |
| `currentState.description` | string | read-only | Pool description |
| `currentState.healthMonitor` | publicCloud.loadbalancer.HealthMonitorCurrentState | read-only | Health monitor associated with this pool |
| `currentState.healthMonitor.delay` | integer | read-only | Time in seconds between sending health check probes to members |
| `currentState.healthMonitor.domainName` | string | read-only | Domain name injected into the HTTP Host header |
| `currentState.healthMonitor.expectedCodes` | string | read-only | Expected HTTP status codes for HTTP/HTTPS health checks |
| `currentState.healthMonitor.httpMethod` | string | read-only | HTTP method used for HTTP/HTTPS health checks |
| `currentState.healthMonitor.httpVersion` | string | read-only | HTTP version for HTTP/HTTPS health checks |
| `currentState.healthMonitor.id` | string (uuid) | read-only | Unique identifier of the health monitor |
| `currentState.healthMonitor.maxRetries` | integer | read-only | Number of consecutive health check failures before marking a member as INACTIVE |
| `currentState.healthMonitor.maxRetriesDown` | integer | read-only | Number of consecutive health check failures before marking a member as ERROR |
| `currentState.healthMonitor.name` | string | read-only | Human-readable name for the health monitor |
| `currentState.healthMonitor.operatingStatus` | string | read-only | Operating status of the health monitor |
| `currentState.healthMonitor.provisioningStatus` | string | read-only | Provisioning status of the health monitor |
| `currentState.healthMonitor.timeout` | integer | read-only | Maximum time in seconds to wait for a health check reply |
| `currentState.healthMonitor.type` | publicCloud.loadbalancer.HealthMonitorTypeEnum | read-only | Type of health check probe — one of `HTTP`, `HTTPS`, `PING`, `SCTP`, `TCP`, `TLS_HELLO`, `UDP_CONNECT` |
| `currentState.healthMonitor.urlPath` | string | read-only | URI path for HTTP/HTTPS health checks |
| `currentState.name` | string | read-only | Pool name |
| `currentState.operatingStatus` | publicCloud.loadbalancer.LoadbalancerOperatingStatusEnum | read-only | Whether the pool is currently able to serve traffic, as observed on the platform. It turns degraded when only some of its members pass their health checks. — one of `DEGRADED`, `DRAINING`, `ERROR`, `NO_MONITOR`, `OFFLINE`, `ONLINE` |
| `currentState.persistence` | publicCloud.loadbalancer.SessionPersistence | read-only | Session persistence configuration |
| `currentState.persistence.cookieName` | string |  | Name of the cookie for HTTP_COOKIE or APP_COOKIE persistence types |
| `currentState.persistence.type` | publicCloud.loadbalancer.SessionPersistenceTypeEnum | yes | Type of session persistence — one of `APP_COOKIE`, `HTTP_COOKIE`, `SOURCE_IP` |
| `currentState.protocol` | publicCloud.loadbalancer.PoolProtocolEnum | read-only | Protocol of the pool — one of `HTTP`, `HTTPS`, `PROXY`, `PROXYV2`, `SCTP`, `TCP`, `UDP` |
| `currentState.provisioningStatus` | publicCloud.loadbalancer.LoadbalancerProvisioningStatusEnum | read-only | Provisioning status in OpenStack — one of `ACTIVE`, `DELETED`, `ERROR`, `PENDING_CREATE`, `PENDING_DELETE`, `PENDING_UPDATE` |
| `currentTasks` | common.CurrentTask[] | read-only | Ongoing asynchronous tasks related to the pool |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier of the pool |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Pool readiness in the system — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | publicCloud.loadbalancer.PoolTargetSpec | read-only | Last target specification of the pool |
| `targetSpec.algorithm` | publicCloud.loadbalancer.PoolAlgorithmEnum | yes | Load balancing algorithm — one of `LEAST_CONNECTIONS`, `ROUND_ROBIN`, `SOURCE_IP` |
| `targetSpec.description` | string |  | Pool description |
| `targetSpec.healthMonitor` | publicCloud.loadbalancer.HealthMonitorTargetSpec |  | Health monitor configuration for this pool |
| `targetSpec.healthMonitor.delay` | integer | yes | Time in seconds between sending health check probes to members |
| `targetSpec.healthMonitor.domainName` | string |  | Domain name injected into the HTTP Host header for HTTP/HTTPS health checks |
| `targetSpec.healthMonitor.expectedCodes` | string |  | Expected HTTP status codes for HTTP/HTTPS health checks, for example 200, 200-202, 200-202,401 |
| `targetSpec.healthMonitor.httpMethod` | publicCloud.loadbalancer.HealthMonitorHttpMethodEnum |  | HTTP method used for HTTP/HTTPS health checks — one of `CONNECT`, `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, `PUT`, `TRACE` |
| `targetSpec.healthMonitor.httpVersion` | string |  | HTTP version for HTTP/HTTPS health checks (1.0 or 1.1) |
| `targetSpec.healthMonitor.maxRetries` | integer | yes | Number of consecutive health check failures before marking a member as INACTIVE. From 1 to 10. |
| `targetSpec.healthMonitor.maxRetriesDown` | integer |  | Number of consecutive health check failures before marking a member as ERROR. From 1 to 10. |
| `targetSpec.healthMonitor.name` | string |  | Human-readable name for the health monitor |
| `targetSpec.healthMonitor.timeout` | integer | yes | Maximum time in seconds to wait for a health check reply (must be less than or equal to delay) |
| `targetSpec.healthMonitor.type` | publicCloud.loadbalancer.HealthMonitorTypeEnum | yes | Type of health check probe. Immutable after creation. — one of `HTTP`, `HTTPS`, `PING`, `SCTP`, `TCP`, `TLS_HELLO`, `UDP_CONNECT` |
| `targetSpec.healthMonitor.urlPath` | string |  | URI path for HTTP/HTTPS health checks (must start with /) |
| `targetSpec.name` | string |  | Pool name |
| `targetSpec.persistence` | publicCloud.loadbalancer.SessionPersistence |  | Session persistence configuration |
| `targetSpec.persistence.cookieName` | string |  | Name of the cookie for HTTP_COOKIE or APP_COOKIE persistence types |
| `targetSpec.persistence.type` | publicCloud.loadbalancer.SessionPersistenceTypeEnum | yes | Type of session persistence — one of `APP_COOKIE`, `HTTP_COOKIE`, `SOURCE_IP` |
| `targetSpec.protocol` | publicCloud.loadbalancer.PoolProtocolEnum | yes | Protocol of the pool — one of `HTTP`, `HTTPS`, `PROXY`, `PROXYV2`, `SCTP`, `TCP`, `UDP` |
| `updatedAt` | string (date-time) | read-only | Last update date of the pool |

```json
[
  {
    "checksum": "string",
    "createdAt": "2024-01-01T12:00:00Z",
    "currentState": {
      "algorithm": "LEAST_CONNECTIONS",
      "description": "string",
      "healthMonitor": {
        "delay": 0,
        "domainName": "string",
        "expectedCodes": "string",
        "httpMethod": "string",
        "httpVersion": "string",
        "id": "00000000-0000-0000-0000-000000000000",
        "maxRetries": 0,
        "maxRetriesDown": 0,
        "name": "string",
        "operatingStatus": "string",
        "provisioningStatus": "string",
        "timeout": 0,
        "type": "HTTP",
        "urlPath": "string"
      },
      "name": "string",
      "operatingStatus": "DEGRADED",
      "persistence": {
        "cookieName": "string",
        "type": "APP_COOKIE"
      },
      "protocol": "HTTP",
      "provisioningStatus": "ACTIVE"
    },
    "currentTasks": [
      {
        "errors": [
          {
            "message": "string"
          }
        ],
        "id": "00000000-0000-0000-0000-000000000000",
        "link": "string",
        "status": "ERROR",
        "type": "string"
      }
    ],
    "id": "00000000-0000-0000-0000-000000000000",
    "resourceStatus": "CREATING",
    "targetSpec": {
      "algorithm": "LEAST_CONNECTIONS",
      "description": "string",
      "healthMonitor": {
        "delay": 0,
        "domainName": "string",
        "expectedCodes": "string",
        "httpMethod": "CONNECT",
        "httpVersion": "string",
        "maxRetries": 0,
        "maxRetriesDown": 0,
        "name": "string",
        "timeout": 0,
  …
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool");

print_r($result);
?>
```

## Get a pool

`GET /v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/network/load-balancer/pools/#getLoadBalancerPool

**Status:** Stable production version  
**IAM actions:** `publicCloudProject:apiovh:loadbalancer/pool/get`

Returns the pool, including its load-balancing algorithm and health monitor.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `loadbalancerId` | path | string (uuid) | yes | Loadbalancer ID |
| `poolId` | path | string (uuid) | yes | Pool ID |
| `projectId` | path | string | yes | Project ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | publicCloud.loadbalancer.Pool | successful operation |
| 404 | object | Error 404 response |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `checksum` | string | read-only | Computed hash representing the current target specification value |
| `createdAt` | string (date-time) | read-only | Creation date of the pool |
| `currentState` | publicCloud.loadbalancer.PoolCurrentState | read-only | Current state of the pool |
| `currentState.algorithm` | publicCloud.loadbalancer.PoolAlgorithmEnum | read-only | Load balancing algorithm — one of `LEAST_CONNECTIONS`, `ROUND_ROBIN`, `SOURCE_IP` |
| `currentState.description` | string | read-only | Pool description |
| `currentState.healthMonitor` | publicCloud.loadbalancer.HealthMonitorCurrentState | read-only | Health monitor associated with this pool |
| `currentState.healthMonitor.delay` | integer | read-only | Time in seconds between sending health check probes to members |
| `currentState.healthMonitor.domainName` | string | read-only | Domain name injected into the HTTP Host header |
| `currentState.healthMonitor.expectedCodes` | string | read-only | Expected HTTP status codes for HTTP/HTTPS health checks |
| `currentState.healthMonitor.httpMethod` | string | read-only | HTTP method used for HTTP/HTTPS health checks |
| `currentState.healthMonitor.httpVersion` | string | read-only | HTTP version for HTTP/HTTPS health checks |
| `currentState.healthMonitor.id` | string (uuid) | read-only | Unique identifier of the health monitor |
| `currentState.healthMonitor.maxRetries` | integer | read-only | Number of consecutive health check failures before marking a member as INACTIVE |
| `currentState.healthMonitor.maxRetriesDown` | integer | read-only | Number of consecutive health check failures before marking a member as ERROR |
| `currentState.healthMonitor.name` | string | read-only | Human-readable name for the health monitor |
| `currentState.healthMonitor.operatingStatus` | string | read-only | Operating status of the health monitor |
| `currentState.healthMonitor.provisioningStatus` | string | read-only | Provisioning status of the health monitor |
| `currentState.healthMonitor.timeout` | integer | read-only | Maximum time in seconds to wait for a health check reply |
| `currentState.healthMonitor.type` | publicCloud.loadbalancer.HealthMonitorTypeEnum | read-only | Type of health check probe — one of `HTTP`, `HTTPS`, `PING`, `SCTP`, `TCP`, `TLS_HELLO`, `UDP_CONNECT` |
| `currentState.healthMonitor.urlPath` | string | read-only | URI path for HTTP/HTTPS health checks |
| `currentState.name` | string | read-only | Pool name |
| `currentState.operatingStatus` | publicCloud.loadbalancer.LoadbalancerOperatingStatusEnum | read-only | Whether the pool is currently able to serve traffic, as observed on the platform. It turns degraded when only some of its members pass their health checks. — one of `DEGRADED`, `DRAINING`, `ERROR`, `NO_MONITOR`, `OFFLINE`, `ONLINE` |
| `currentState.persistence` | publicCloud.loadbalancer.SessionPersistence | read-only | Session persistence configuration |
| `currentState.persistence.cookieName` | string |  | Name of the cookie for HTTP_COOKIE or APP_COOKIE persistence types |
| `currentState.persistence.type` | publicCloud.loadbalancer.SessionPersistenceTypeEnum | yes | Type of session persistence — one of `APP_COOKIE`, `HTTP_COOKIE`, `SOURCE_IP` |
| `currentState.protocol` | publicCloud.loadbalancer.PoolProtocolEnum | read-only | Protocol of the pool — one of `HTTP`, `HTTPS`, `PROXY`, `PROXYV2`, `SCTP`, `TCP`, `UDP` |
| `currentState.provisioningStatus` | publicCloud.loadbalancer.LoadbalancerProvisioningStatusEnum | read-only | Provisioning status in OpenStack — one of `ACTIVE`, `DELETED`, `ERROR`, `PENDING_CREATE`, `PENDING_DELETE`, `PENDING_UPDATE` |
| `currentTasks` | common.CurrentTask[] | read-only | Ongoing asynchronous tasks related to the pool |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier of the pool |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Pool readiness in the system — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | publicCloud.loadbalancer.PoolTargetSpec | read-only | Last target specification of the pool |
| `targetSpec.algorithm` | publicCloud.loadbalancer.PoolAlgorithmEnum | yes | Load balancing algorithm — one of `LEAST_CONNECTIONS`, `ROUND_ROBIN`, `SOURCE_IP` |
| `targetSpec.description` | string |  | Pool description |
| `targetSpec.healthMonitor` | publicCloud.loadbalancer.HealthMonitorTargetSpec |  | Health monitor configuration for this pool |
| `targetSpec.healthMonitor.delay` | integer | yes | Time in seconds between sending health check probes to members |
| `targetSpec.healthMonitor.domainName` | string |  | Domain name injected into the HTTP Host header for HTTP/HTTPS health checks |
| `targetSpec.healthMonitor.expectedCodes` | string |  | Expected HTTP status codes for HTTP/HTTPS health checks, for example 200, 200-202, 200-202,401 |
| `targetSpec.healthMonitor.httpMethod` | publicCloud.loadbalancer.HealthMonitorHttpMethodEnum |  | HTTP method used for HTTP/HTTPS health checks — one of `CONNECT`, `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, `PUT`, `TRACE` |
| `targetSpec.healthMonitor.httpVersion` | string |  | HTTP version for HTTP/HTTPS health checks (1.0 or 1.1) |
| `targetSpec.healthMonitor.maxRetries` | integer | yes | Number of consecutive health check failures before marking a member as INACTIVE. From 1 to 10. |
| `targetSpec.healthMonitor.maxRetriesDown` | integer |  | Number of consecutive health check failures before marking a member as ERROR. From 1 to 10. |
| `targetSpec.healthMonitor.name` | string |  | Human-readable name for the health monitor |
| `targetSpec.healthMonitor.timeout` | integer | yes | Maximum time in seconds to wait for a health check reply (must be less than or equal to delay) |
| `targetSpec.healthMonitor.type` | publicCloud.loadbalancer.HealthMonitorTypeEnum | yes | Type of health check probe. Immutable after creation. — one of `HTTP`, `HTTPS`, `PING`, `SCTP`, `TCP`, `TLS_HELLO`, `UDP_CONNECT` |
| `targetSpec.healthMonitor.urlPath` | string |  | URI path for HTTP/HTTPS health checks (must start with /) |
| `targetSpec.name` | string |  | Pool name |
| `targetSpec.persistence` | publicCloud.loadbalancer.SessionPersistence |  | Session persistence configuration |
| `targetSpec.persistence.cookieName` | string |  | Name of the cookie for HTTP_COOKIE or APP_COOKIE persistence types |
| `targetSpec.persistence.type` | publicCloud.loadbalancer.SessionPersistenceTypeEnum | yes | Type of session persistence — one of `APP_COOKIE`, `HTTP_COOKIE`, `SOURCE_IP` |
| `targetSpec.protocol` | publicCloud.loadbalancer.PoolProtocolEnum | yes | Protocol of the pool — one of `HTTP`, `HTTPS`, `PROXY`, `PROXYV2`, `SCTP`, `TCP`, `UDP` |
| `updatedAt` | string (date-time) | read-only | Last update date of the pool |

```json
{
  "checksum": "string",
  "createdAt": "2024-01-01T12:00:00Z",
  "currentState": {
    "algorithm": "LEAST_CONNECTIONS",
    "description": "string",
    "healthMonitor": {
      "delay": 0,
      "domainName": "string",
      "expectedCodes": "string",
      "httpMethod": "string",
      "httpVersion": "string",
      "id": "00000000-0000-0000-0000-000000000000",
      "maxRetries": 0,
      "maxRetriesDown": 0,
      "name": "string",
      "operatingStatus": "string",
      "provisioningStatus": "string",
      "timeout": 0,
      "type": "HTTP",
      "urlPath": "string"
    },
    "name": "string",
    "operatingStatus": "DEGRADED",
    "persistence": {
      "cookieName": "string",
      "type": "APP_COOKIE"
    },
    "protocol": "HTTP",
    "provisioningStatus": "ACTIVE"
  },
  "currentTasks": [
    {
      "errors": [
        {
          "message": "string"
        }
      ],
      "id": "00000000-0000-0000-0000-000000000000",
      "link": "string",
      "status": "ERROR",
      "type": "string"
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000",
  "resourceStatus": "CREATING",
  "targetSpec": {
    "algorithm": "LEAST_CONNECTIONS",
    "description": "string",
    "healthMonitor": {
      "delay": 0,
      "domainName": "string",
      "expectedCodes": "string",
      "httpMethod": "CONNECT",
      "httpVersion": "string",
      "maxRetries": 0,
      "maxRetriesDown": 0,
      "name": "string",
      "timeout": 0,
      "type": "HTTP",
      "urlPath": "string"
    },
    "name": "string",
    "persistence": {
      "cookieName": "string",
  …
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}");

print_r($result);
?>
```

## Create a pool

`POST /v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/network/load-balancer/pools/#createLoadBalancerPool

**Status:** Stable production version  
**IAM actions:** `publicCloudProject:apiovh:loadbalancer/pool/create`

Creates a pool with a load-balancing algorithm and protocol, optionally with a health monitor and session persistence.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `loadbalancerId` | path | string (uuid) | yes | Loadbalancer ID |
| `projectId` | path | string | yes | Project ID |

### Request body (required)

Type: `publicCloud.loadbalancer.PoolCreation`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `targetSpec` | publicCloud.loadbalancer.PoolTargetSpec | yes | Desired target specification for the pool to create |
| `targetSpec.algorithm` | publicCloud.loadbalancer.PoolAlgorithmEnum | yes | Load balancing algorithm — one of `LEAST_CONNECTIONS`, `ROUND_ROBIN`, `SOURCE_IP` |
| `targetSpec.description` | string |  | Pool description |
| `targetSpec.healthMonitor` | publicCloud.loadbalancer.HealthMonitorTargetSpec |  | Health monitor configuration for this pool |
| `targetSpec.healthMonitor.delay` | integer | yes | Time in seconds between sending health check probes to members |
| `targetSpec.healthMonitor.domainName` | string |  | Domain name injected into the HTTP Host header for HTTP/HTTPS health checks |
| `targetSpec.healthMonitor.expectedCodes` | string |  | Expected HTTP status codes for HTTP/HTTPS health checks, for example 200, 200-202, 200-202,401 |
| `targetSpec.healthMonitor.httpMethod` | publicCloud.loadbalancer.HealthMonitorHttpMethodEnum |  | HTTP method used for HTTP/HTTPS health checks — one of `CONNECT`, `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, `PUT`, `TRACE` |
| `targetSpec.healthMonitor.httpVersion` | string |  | HTTP version for HTTP/HTTPS health checks (1.0 or 1.1) |
| `targetSpec.healthMonitor.maxRetries` | integer | yes | Number of consecutive health check failures before marking a member as INACTIVE. From 1 to 10. |
| `targetSpec.healthMonitor.maxRetriesDown` | integer |  | Number of consecutive health check failures before marking a member as ERROR. From 1 to 10. |
| `targetSpec.healthMonitor.name` | string |  | Human-readable name for the health monitor |
| `targetSpec.healthMonitor.timeout` | integer | yes | Maximum time in seconds to wait for a health check reply (must be less than or equal to delay) |
| `targetSpec.healthMonitor.type` | publicCloud.loadbalancer.HealthMonitorTypeEnum | yes | Type of health check probe. Immutable after creation. — one of `HTTP`, `HTTPS`, `PING`, `SCTP`, `TCP`, `TLS_HELLO`, `UDP_CONNECT` |
| `targetSpec.healthMonitor.urlPath` | string |  | URI path for HTTP/HTTPS health checks (must start with /) |
| `targetSpec.name` | string |  | Pool name |
| `targetSpec.persistence` | publicCloud.loadbalancer.SessionPersistence |  | Session persistence configuration |
| `targetSpec.persistence.cookieName` | string |  | Name of the cookie for HTTP_COOKIE or APP_COOKIE persistence types |
| `targetSpec.persistence.type` | publicCloud.loadbalancer.SessionPersistenceTypeEnum | yes | Type of session persistence — one of `APP_COOKIE`, `HTTP_COOKIE`, `SOURCE_IP` |
| `targetSpec.protocol` | publicCloud.loadbalancer.PoolProtocolEnum | yes | Protocol of the pool — one of `HTTP`, `HTTPS`, `PROXY`, `PROXYV2`, `SCTP`, `TCP`, `UDP` |

```json
{
  "targetSpec": {
    "algorithm": "LEAST_CONNECTIONS",
    "description": "string",
    "healthMonitor": {
      "delay": 0,
      "domainName": "string",
      "expectedCodes": "string",
      "httpMethod": "CONNECT",
      "httpVersion": "string",
      "maxRetries": 0,
      "maxRetriesDown": 0,
      "name": "string",
      "timeout": 0,
      "type": "HTTP",
      "urlPath": "string"
    },
    "name": "string",
    "persistence": {
      "cookieName": "string",
      "type": "APP_COOKIE"
    },
    "protocol": "HTTP"
  }
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | publicCloud.loadbalancer.Pool | successful operation |
| 400 | object | Error 400 response |
| 409 | object | Error 409 response |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `checksum` | string | read-only | Computed hash representing the current target specification value |
| `createdAt` | string (date-time) | read-only | Creation date of the pool |
| `currentState` | publicCloud.loadbalancer.PoolCurrentState | read-only | Current state of the pool |
| `currentState.algorithm` | publicCloud.loadbalancer.PoolAlgorithmEnum | read-only | Load balancing algorithm — one of `LEAST_CONNECTIONS`, `ROUND_ROBIN`, `SOURCE_IP` |
| `currentState.description` | string | read-only | Pool description |
| `currentState.healthMonitor` | publicCloud.loadbalancer.HealthMonitorCurrentState | read-only | Health monitor associated with this pool |
| `currentState.healthMonitor.delay` | integer | read-only | Time in seconds between sending health check probes to members |
| `currentState.healthMonitor.domainName` | string | read-only | Domain name injected into the HTTP Host header |
| `currentState.healthMonitor.expectedCodes` | string | read-only | Expected HTTP status codes for HTTP/HTTPS health checks |
| `currentState.healthMonitor.httpMethod` | string | read-only | HTTP method used for HTTP/HTTPS health checks |
| `currentState.healthMonitor.httpVersion` | string | read-only | HTTP version for HTTP/HTTPS health checks |
| `currentState.healthMonitor.id` | string (uuid) | read-only | Unique identifier of the health monitor |
| `currentState.healthMonitor.maxRetries` | integer | read-only | Number of consecutive health check failures before marking a member as INACTIVE |
| `currentState.healthMonitor.maxRetriesDown` | integer | read-only | Number of consecutive health check failures before marking a member as ERROR |
| `currentState.healthMonitor.name` | string | read-only | Human-readable name for the health monitor |
| `currentState.healthMonitor.operatingStatus` | string | read-only | Operating status of the health monitor |
| `currentState.healthMonitor.provisioningStatus` | string | read-only | Provisioning status of the health monitor |
| `currentState.healthMonitor.timeout` | integer | read-only | Maximum time in seconds to wait for a health check reply |
| `currentState.healthMonitor.type` | publicCloud.loadbalancer.HealthMonitorTypeEnum | read-only | Type of health check probe — one of `HTTP`, `HTTPS`, `PING`, `SCTP`, `TCP`, `TLS_HELLO`, `UDP_CONNECT` |
| `currentState.healthMonitor.urlPath` | string | read-only | URI path for HTTP/HTTPS health checks |
| `currentState.name` | string | read-only | Pool name |
| `currentState.operatingStatus` | publicCloud.loadbalancer.LoadbalancerOperatingStatusEnum | read-only | Whether the pool is currently able to serve traffic, as observed on the platform. It turns degraded when only some of its members pass their health checks. — one of `DEGRADED`, `DRAINING`, `ERROR`, `NO_MONITOR`, `OFFLINE`, `ONLINE` |
| `currentState.persistence` | publicCloud.loadbalancer.SessionPersistence | read-only | Session persistence configuration |
| `currentState.persistence.cookieName` | string |  | Name of the cookie for HTTP_COOKIE or APP_COOKIE persistence types |
| `currentState.persistence.type` | publicCloud.loadbalancer.SessionPersistenceTypeEnum | yes | Type of session persistence — one of `APP_COOKIE`, `HTTP_COOKIE`, `SOURCE_IP` |
| `currentState.protocol` | publicCloud.loadbalancer.PoolProtocolEnum | read-only | Protocol of the pool — one of `HTTP`, `HTTPS`, `PROXY`, `PROXYV2`, `SCTP`, `TCP`, `UDP` |
| `currentState.provisioningStatus` | publicCloud.loadbalancer.LoadbalancerProvisioningStatusEnum | read-only | Provisioning status in OpenStack — one of `ACTIVE`, `DELETED`, `ERROR`, `PENDING_CREATE`, `PENDING_DELETE`, `PENDING_UPDATE` |
| `currentTasks` | common.CurrentTask[] | read-only | Ongoing asynchronous tasks related to the pool |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier of the pool |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Pool readiness in the system — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | publicCloud.loadbalancer.PoolTargetSpec | read-only | Last target specification of the pool |
| `targetSpec.algorithm` | publicCloud.loadbalancer.PoolAlgorithmEnum | yes | Load balancing algorithm — one of `LEAST_CONNECTIONS`, `ROUND_ROBIN`, `SOURCE_IP` |
| `targetSpec.description` | string |  | Pool description |
| `targetSpec.healthMonitor` | publicCloud.loadbalancer.HealthMonitorTargetSpec |  | Health monitor configuration for this pool |
| `targetSpec.healthMonitor.delay` | integer | yes | Time in seconds between sending health check probes to members |
| `targetSpec.healthMonitor.domainName` | string |  | Domain name injected into the HTTP Host header for HTTP/HTTPS health checks |
| `targetSpec.healthMonitor.expectedCodes` | string |  | Expected HTTP status codes for HTTP/HTTPS health checks, for example 200, 200-202, 200-202,401 |
| `targetSpec.healthMonitor.httpMethod` | publicCloud.loadbalancer.HealthMonitorHttpMethodEnum |  | HTTP method used for HTTP/HTTPS health checks — one of `CONNECT`, `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, `PUT`, `TRACE` |
| `targetSpec.healthMonitor.httpVersion` | string |  | HTTP version for HTTP/HTTPS health checks (1.0 or 1.1) |
| `targetSpec.healthMonitor.maxRetries` | integer | yes | Number of consecutive health check failures before marking a member as INACTIVE. From 1 to 10. |
| `targetSpec.healthMonitor.maxRetriesDown` | integer |  | Number of consecutive health check failures before marking a member as ERROR. From 1 to 10. |
| `targetSpec.healthMonitor.name` | string |  | Human-readable name for the health monitor |
| `targetSpec.healthMonitor.timeout` | integer | yes | Maximum time in seconds to wait for a health check reply (must be less than or equal to delay) |
| `targetSpec.healthMonitor.type` | publicCloud.loadbalancer.HealthMonitorTypeEnum | yes | Type of health check probe. Immutable after creation. — one of `HTTP`, `HTTPS`, `PING`, `SCTP`, `TCP`, `TLS_HELLO`, `UDP_CONNECT` |
| `targetSpec.healthMonitor.urlPath` | string |  | URI path for HTTP/HTTPS health checks (must start with /) |
| `targetSpec.name` | string |  | Pool name |
| `targetSpec.persistence` | publicCloud.loadbalancer.SessionPersistence |  | Session persistence configuration |
| `targetSpec.persistence.cookieName` | string |  | Name of the cookie for HTTP_COOKIE or APP_COOKIE persistence types |
| `targetSpec.persistence.type` | publicCloud.loadbalancer.SessionPersistenceTypeEnum | yes | Type of session persistence — one of `APP_COOKIE`, `HTTP_COOKIE`, `SOURCE_IP` |
| `targetSpec.protocol` | publicCloud.loadbalancer.PoolProtocolEnum | yes | Protocol of the pool — one of `HTTP`, `HTTPS`, `PROXY`, `PROXYV2`, `SCTP`, `TCP`, `UDP` |
| `updatedAt` | string (date-time) | read-only | Last update date of the pool |

```json
{
  "checksum": "string",
  "createdAt": "2024-01-01T12:00:00Z",
  "currentState": {
    "algorithm": "LEAST_CONNECTIONS",
    "description": "string",
    "healthMonitor": {
      "delay": 0,
      "domainName": "string",
      "expectedCodes": "string",
      "httpMethod": "string",
      "httpVersion": "string",
      "id": "00000000-0000-0000-0000-000000000000",
      "maxRetries": 0,
      "maxRetriesDown": 0,
      "name": "string",
      "operatingStatus": "string",
      "provisioningStatus": "string",
      "timeout": 0,
      "type": "HTTP",
      "urlPath": "string"
    },
    "name": "string",
    "operatingStatus": "DEGRADED",
    "persistence": {
      "cookieName": "string",
      "type": "APP_COOKIE"
    },
    "protocol": "HTTP",
    "provisioningStatus": "ACTIVE"
  },
  "currentTasks": [
    {
      "errors": [
        {
          "message": "string"
        }
      ],
      "id": "00000000-0000-0000-0000-000000000000",
      "link": "string",
      "status": "ERROR",
      "type": "string"
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000",
  "resourceStatus": "CREATING",
  "targetSpec": {
    "algorithm": "LEAST_CONNECTIONS",
    "description": "string",
    "healthMonitor": {
      "delay": 0,
      "domainName": "string",
      "expectedCodes": "string",
      "httpMethod": "CONNECT",
      "httpVersion": "string",
      "maxRetries": 0,
      "maxRetriesDown": 0,
      "name": "string",
      "timeout": 0,
      "type": "HTTP",
      "urlPath": "string"
    },
    "name": "string",
    "persistence": {
      "cookieName": "string",
  …
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: publicCloud.loadbalancer.PoolCreation
result = client.post("/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool",
	targetSpec = None, # Desired target specification for the pool to create (type: publicCloud.loadbalancer.PoolTargetSpec)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: publicCloud.loadbalancer.PoolCreation
$result = $ovh->post("/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool", array(
	targetSpec => null, // Desired target specification for the pool to create (type: publicCloud.loadbalancer.PoolTargetSpec)
));

print_r($result);
?>
```

## Delete a pool

`DELETE /v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/network/load-balancer/pools/#deleteLoadBalancerPool

**Status:** Stable production version  
**IAM actions:** `publicCloudProject:apiovh:loadbalancer/pool/delete`

Deletes the pool.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `loadbalancerId` | path | string (uuid) | yes | Loadbalancer ID |
| `poolId` | path | string (uuid) | yes | Pool ID |
| `projectId` | path | string | yes | Project ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | publicCloud.loadbalancer.Pool | successful operation |
| 404 | object | Error 404 response |
| 409 | object | Error 409 response |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `checksum` | string | read-only | Computed hash representing the current target specification value |
| `createdAt` | string (date-time) | read-only | Creation date of the pool |
| `currentState` | publicCloud.loadbalancer.PoolCurrentState | read-only | Current state of the pool |
| `currentState.algorithm` | publicCloud.loadbalancer.PoolAlgorithmEnum | read-only | Load balancing algorithm — one of `LEAST_CONNECTIONS`, `ROUND_ROBIN`, `SOURCE_IP` |
| `currentState.description` | string | read-only | Pool description |
| `currentState.healthMonitor` | publicCloud.loadbalancer.HealthMonitorCurrentState | read-only | Health monitor associated with this pool |
| `currentState.healthMonitor.delay` | integer | read-only | Time in seconds between sending health check probes to members |
| `currentState.healthMonitor.domainName` | string | read-only | Domain name injected into the HTTP Host header |
| `currentState.healthMonitor.expectedCodes` | string | read-only | Expected HTTP status codes for HTTP/HTTPS health checks |
| `currentState.healthMonitor.httpMethod` | string | read-only | HTTP method used for HTTP/HTTPS health checks |
| `currentState.healthMonitor.httpVersion` | string | read-only | HTTP version for HTTP/HTTPS health checks |
| `currentState.healthMonitor.id` | string (uuid) | read-only | Unique identifier of the health monitor |
| `currentState.healthMonitor.maxRetries` | integer | read-only | Number of consecutive health check failures before marking a member as INACTIVE |
| `currentState.healthMonitor.maxRetriesDown` | integer | read-only | Number of consecutive health check failures before marking a member as ERROR |
| `currentState.healthMonitor.name` | string | read-only | Human-readable name for the health monitor |
| `currentState.healthMonitor.operatingStatus` | string | read-only | Operating status of the health monitor |
| `currentState.healthMonitor.provisioningStatus` | string | read-only | Provisioning status of the health monitor |
| `currentState.healthMonitor.timeout` | integer | read-only | Maximum time in seconds to wait for a health check reply |
| `currentState.healthMonitor.type` | publicCloud.loadbalancer.HealthMonitorTypeEnum | read-only | Type of health check probe — one of `HTTP`, `HTTPS`, `PING`, `SCTP`, `TCP`, `TLS_HELLO`, `UDP_CONNECT` |
| `currentState.healthMonitor.urlPath` | string | read-only | URI path for HTTP/HTTPS health checks |
| `currentState.name` | string | read-only | Pool name |
| `currentState.operatingStatus` | publicCloud.loadbalancer.LoadbalancerOperatingStatusEnum | read-only | Whether the pool is currently able to serve traffic, as observed on the platform. It turns degraded when only some of its members pass their health checks. — one of `DEGRADED`, `DRAINING`, `ERROR`, `NO_MONITOR`, `OFFLINE`, `ONLINE` |
| `currentState.persistence` | publicCloud.loadbalancer.SessionPersistence | read-only | Session persistence configuration |
| `currentState.persistence.cookieName` | string |  | Name of the cookie for HTTP_COOKIE or APP_COOKIE persistence types |
| `currentState.persistence.type` | publicCloud.loadbalancer.SessionPersistenceTypeEnum | yes | Type of session persistence — one of `APP_COOKIE`, `HTTP_COOKIE`, `SOURCE_IP` |
| `currentState.protocol` | publicCloud.loadbalancer.PoolProtocolEnum | read-only | Protocol of the pool — one of `HTTP`, `HTTPS`, `PROXY`, `PROXYV2`, `SCTP`, `TCP`, `UDP` |
| `currentState.provisioningStatus` | publicCloud.loadbalancer.LoadbalancerProvisioningStatusEnum | read-only | Provisioning status in OpenStack — one of `ACTIVE`, `DELETED`, `ERROR`, `PENDING_CREATE`, `PENDING_DELETE`, `PENDING_UPDATE` |
| `currentTasks` | common.CurrentTask[] | read-only | Ongoing asynchronous tasks related to the pool |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier of the pool |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Pool readiness in the system — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | publicCloud.loadbalancer.PoolTargetSpec | read-only | Last target specification of the pool |
| `targetSpec.algorithm` | publicCloud.loadbalancer.PoolAlgorithmEnum | yes | Load balancing algorithm — one of `LEAST_CONNECTIONS`, `ROUND_ROBIN`, `SOURCE_IP` |
| `targetSpec.description` | string |  | Pool description |
| `targetSpec.healthMonitor` | publicCloud.loadbalancer.HealthMonitorTargetSpec |  | Health monitor configuration for this pool |
| `targetSpec.healthMonitor.delay` | integer | yes | Time in seconds between sending health check probes to members |
| `targetSpec.healthMonitor.domainName` | string |  | Domain name injected into the HTTP Host header for HTTP/HTTPS health checks |
| `targetSpec.healthMonitor.expectedCodes` | string |  | Expected HTTP status codes for HTTP/HTTPS health checks, for example 200, 200-202, 200-202,401 |
| `targetSpec.healthMonitor.httpMethod` | publicCloud.loadbalancer.HealthMonitorHttpMethodEnum |  | HTTP method used for HTTP/HTTPS health checks — one of `CONNECT`, `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, `PUT`, `TRACE` |
| `targetSpec.healthMonitor.httpVersion` | string |  | HTTP version for HTTP/HTTPS health checks (1.0 or 1.1) |
| `targetSpec.healthMonitor.maxRetries` | integer | yes | Number of consecutive health check failures before marking a member as INACTIVE. From 1 to 10. |
| `targetSpec.healthMonitor.maxRetriesDown` | integer |  | Number of consecutive health check failures before marking a member as ERROR. From 1 to 10. |
| `targetSpec.healthMonitor.name` | string |  | Human-readable name for the health monitor |
| `targetSpec.healthMonitor.timeout` | integer | yes | Maximum time in seconds to wait for a health check reply (must be less than or equal to delay) |
| `targetSpec.healthMonitor.type` | publicCloud.loadbalancer.HealthMonitorTypeEnum | yes | Type of health check probe. Immutable after creation. — one of `HTTP`, `HTTPS`, `PING`, `SCTP`, `TCP`, `TLS_HELLO`, `UDP_CONNECT` |
| `targetSpec.healthMonitor.urlPath` | string |  | URI path for HTTP/HTTPS health checks (must start with /) |
| `targetSpec.name` | string |  | Pool name |
| `targetSpec.persistence` | publicCloud.loadbalancer.SessionPersistence |  | Session persistence configuration |
| `targetSpec.persistence.cookieName` | string |  | Name of the cookie for HTTP_COOKIE or APP_COOKIE persistence types |
| `targetSpec.persistence.type` | publicCloud.loadbalancer.SessionPersistenceTypeEnum | yes | Type of session persistence — one of `APP_COOKIE`, `HTTP_COOKIE`, `SOURCE_IP` |
| `targetSpec.protocol` | publicCloud.loadbalancer.PoolProtocolEnum | yes | Protocol of the pool — one of `HTTP`, `HTTPS`, `PROXY`, `PROXYV2`, `SCTP`, `TCP`, `UDP` |
| `updatedAt` | string (date-time) | read-only | Last update date of the pool |

```json
{
  "checksum": "string",
  "createdAt": "2024-01-01T12:00:00Z",
  "currentState": {
    "algorithm": "LEAST_CONNECTIONS",
    "description": "string",
    "healthMonitor": {
      "delay": 0,
      "domainName": "string",
      "expectedCodes": "string",
      "httpMethod": "string",
      "httpVersion": "string",
      "id": "00000000-0000-0000-0000-000000000000",
      "maxRetries": 0,
      "maxRetriesDown": 0,
      "name": "string",
      "operatingStatus": "string",
      "provisioningStatus": "string",
      "timeout": 0,
      "type": "HTTP",
      "urlPath": "string"
    },
    "name": "string",
    "operatingStatus": "DEGRADED",
    "persistence": {
      "cookieName": "string",
      "type": "APP_COOKIE"
    },
    "protocol": "HTTP",
    "provisioningStatus": "ACTIVE"
  },
  "currentTasks": [
    {
      "errors": [
        {
          "message": "string"
        }
      ],
      "id": "00000000-0000-0000-0000-000000000000",
      "link": "string",
      "status": "ERROR",
      "type": "string"
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000",
  "resourceStatus": "CREATING",
  "targetSpec": {
    "algorithm": "LEAST_CONNECTIONS",
    "description": "string",
    "healthMonitor": {
      "delay": 0,
      "domainName": "string",
      "expectedCodes": "string",
      "httpMethod": "CONNECT",
      "httpVersion": "string",
      "maxRetries": 0,
      "maxRetriesDown": 0,
      "name": "string",
      "timeout": 0,
      "type": "HTTP",
      "urlPath": "string"
    },
    "name": "string",
    "persistence": {
      "cookieName": "string",
  …
```

### Example

```bash
curl -X DELETE \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.delete("/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->delete("/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}");

print_r($result);
?>
```

## Update a pool

`PUT /v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/network/load-balancer/pools/#editLoadBalancerPool

**Status:** Stable production version  
**IAM actions:** `publicCloudProject:apiovh:loadbalancer/pool/edit`

Replaces the pool's target specification as a whole. The body carries the complete desired state of every field `publicCloud.loadbalancer.PoolUpdateTargetSpec` exposes — `algorithm`, `description`, `healthMonitor`, `name` and `persistence` — so read the pool first and restate every value you want to keep: a field left out of `targetSpec` is cleared, not carried over from the stored specification. Leaving `healthMonitor` out deletes the pool's health monitor, and leaving `persistence` out disables session persistence.

The create-only field `protocol` cannot be changed once the pool exists. It is deliberately absent from the update model, and sending it is rejected with a 400.

`algorithm` is required. When a `healthMonitor` is sent, it is itself a complete specification: `type`, `delay`, `timeout` and `maxRetries` are all required — mirroring the create route — and every optional monitor field left out is cleared. The monitor `type` is immutable once the monitor exists, so restate the current type.

The optional `checksum` guards against a lost update: when supplied it must match the pool's current checksum or the request is rejected with a 409 checksum mismatch. Omitting it skips the check and forces the write (last-write-wins).

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `loadbalancerId` | path | string (uuid) | yes | Loadbalancer ID |
| `poolId` | path | string (uuid) | yes | Pool ID |
| `projectId` | path | string | yes | Project ID |

### Request body (required)

Type: `publicCloud.loadbalancer.PoolUpdate`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `checksum` | string |  | Optional concurrency-control checksum. When supplied, it must match the resource's current checksum or the request is rejected with a 409 checksum-mismatch conflict. When omitted or empty, the concurrency check is skipped and the write is forced (last-write-wins). |
| `targetSpec` | publicCloud.loadbalancer.PoolUpdateTargetSpec | yes | Desired target specification for the pool |
| `targetSpec.algorithm` | publicCloud.loadbalancer.PoolAlgorithmEnum | yes | Load balancing algorithm — one of `LEAST_CONNECTIONS`, `ROUND_ROBIN`, `SOURCE_IP` |
| `targetSpec.description` | string |  | Pool description |
| `targetSpec.healthMonitor` | publicCloud.loadbalancer.HealthMonitorUpdateTargetSpec |  | Health monitor configuration for this pool. Clearing it deletes the pool's health monitor. |
| `targetSpec.healthMonitor.delay` | integer | yes | Time in seconds between sending health check probes to members |
| `targetSpec.healthMonitor.domainName` | string |  | Domain name injected into the HTTP Host header for HTTP/HTTPS health checks |
| `targetSpec.healthMonitor.expectedCodes` | string |  | Expected HTTP status codes for HTTP/HTTPS health checks, for example 200, 200-202, 200-202,401 |
| `targetSpec.healthMonitor.httpMethod` | publicCloud.loadbalancer.HealthMonitorHttpMethodEnum |  | HTTP method used for HTTP/HTTPS health checks — one of `CONNECT`, `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, `PUT`, `TRACE` |
| `targetSpec.healthMonitor.httpVersion` | string |  | HTTP version for HTTP/HTTPS health checks (1.0 or 1.1) |
| `targetSpec.healthMonitor.maxRetries` | integer | yes | Number of consecutive health check failures before marking a member as INACTIVE. From 1 to 10. |
| `targetSpec.healthMonitor.maxRetriesDown` | integer |  | Number of consecutive health check failures before marking a member as ERROR. From 1 to 10. |
| `targetSpec.healthMonitor.name` | string |  | Human-readable name for the health monitor |
| `targetSpec.healthMonitor.timeout` | integer | yes | Maximum time in seconds to wait for a health check reply (must be less than or equal to delay) |
| `targetSpec.healthMonitor.type` | publicCloud.loadbalancer.HealthMonitorTypeEnum | yes | Type of health check probe. It is required whenever a health monitor is sent, both when adding one to a pool that has none and when modifying an existing one. The type is immutable once the monitor exists. — one of `HTTP`, `HTTPS`, `PING`, `SCTP`, `TCP`, `TLS_HELLO`, `UDP_CONNECT` |
| `targetSpec.healthMonitor.urlPath` | string |  | URI path for HTTP/HTTPS health checks (must start with /) |
| `targetSpec.name` | string |  | Pool name |
| `targetSpec.persistence` | publicCloud.loadbalancer.SessionPersistence |  | Session persistence configuration. Clearing it disables session persistence. |
| `targetSpec.persistence.cookieName` | string |  | Name of the cookie for HTTP_COOKIE or APP_COOKIE persistence types |
| `targetSpec.persistence.type` | publicCloud.loadbalancer.SessionPersistenceTypeEnum | yes | Type of session persistence — one of `APP_COOKIE`, `HTTP_COOKIE`, `SOURCE_IP` |

```json
{
  "checksum": "string",
  "targetSpec": {
    "algorithm": "LEAST_CONNECTIONS",
    "description": "string",
    "healthMonitor": {
      "delay": 0,
      "domainName": "string",
      "expectedCodes": "string",
      "httpMethod": "CONNECT",
      "httpVersion": "string",
      "maxRetries": 0,
      "maxRetriesDown": 0,
      "name": "string",
      "timeout": 0,
      "type": "HTTP",
      "urlPath": "string"
    },
    "name": "string",
    "persistence": {
      "cookieName": "string",
      "type": "APP_COOKIE"
    }
  }
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | publicCloud.loadbalancer.Pool | successful operation |
| 400 | object | Error 400 response |
| 404 | object | Error 404 response |
| 409 | object | Error 409 response |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `checksum` | string | read-only | Computed hash representing the current target specification value |
| `createdAt` | string (date-time) | read-only | Creation date of the pool |
| `currentState` | publicCloud.loadbalancer.PoolCurrentState | read-only | Current state of the pool |
| `currentState.algorithm` | publicCloud.loadbalancer.PoolAlgorithmEnum | read-only | Load balancing algorithm — one of `LEAST_CONNECTIONS`, `ROUND_ROBIN`, `SOURCE_IP` |
| `currentState.description` | string | read-only | Pool description |
| `currentState.healthMonitor` | publicCloud.loadbalancer.HealthMonitorCurrentState | read-only | Health monitor associated with this pool |
| `currentState.healthMonitor.delay` | integer | read-only | Time in seconds between sending health check probes to members |
| `currentState.healthMonitor.domainName` | string | read-only | Domain name injected into the HTTP Host header |
| `currentState.healthMonitor.expectedCodes` | string | read-only | Expected HTTP status codes for HTTP/HTTPS health checks |
| `currentState.healthMonitor.httpMethod` | string | read-only | HTTP method used for HTTP/HTTPS health checks |
| `currentState.healthMonitor.httpVersion` | string | read-only | HTTP version for HTTP/HTTPS health checks |
| `currentState.healthMonitor.id` | string (uuid) | read-only | Unique identifier of the health monitor |
| `currentState.healthMonitor.maxRetries` | integer | read-only | Number of consecutive health check failures before marking a member as INACTIVE |
| `currentState.healthMonitor.maxRetriesDown` | integer | read-only | Number of consecutive health check failures before marking a member as ERROR |
| `currentState.healthMonitor.name` | string | read-only | Human-readable name for the health monitor |
| `currentState.healthMonitor.operatingStatus` | string | read-only | Operating status of the health monitor |
| `currentState.healthMonitor.provisioningStatus` | string | read-only | Provisioning status of the health monitor |
| `currentState.healthMonitor.timeout` | integer | read-only | Maximum time in seconds to wait for a health check reply |
| `currentState.healthMonitor.type` | publicCloud.loadbalancer.HealthMonitorTypeEnum | read-only | Type of health check probe — one of `HTTP`, `HTTPS`, `PING`, `SCTP`, `TCP`, `TLS_HELLO`, `UDP_CONNECT` |
| `currentState.healthMonitor.urlPath` | string | read-only | URI path for HTTP/HTTPS health checks |
| `currentState.name` | string | read-only | Pool name |
| `currentState.operatingStatus` | publicCloud.loadbalancer.LoadbalancerOperatingStatusEnum | read-only | Whether the pool is currently able to serve traffic, as observed on the platform. It turns degraded when only some of its members pass their health checks. — one of `DEGRADED`, `DRAINING`, `ERROR`, `NO_MONITOR`, `OFFLINE`, `ONLINE` |
| `currentState.persistence` | publicCloud.loadbalancer.SessionPersistence | read-only | Session persistence configuration |
| `currentState.persistence.cookieName` | string |  | Name of the cookie for HTTP_COOKIE or APP_COOKIE persistence types |
| `currentState.persistence.type` | publicCloud.loadbalancer.SessionPersistenceTypeEnum | yes | Type of session persistence — one of `APP_COOKIE`, `HTTP_COOKIE`, `SOURCE_IP` |
| `currentState.protocol` | publicCloud.loadbalancer.PoolProtocolEnum | read-only | Protocol of the pool — one of `HTTP`, `HTTPS`, `PROXY`, `PROXYV2`, `SCTP`, `TCP`, `UDP` |
| `currentState.provisioningStatus` | publicCloud.loadbalancer.LoadbalancerProvisioningStatusEnum | read-only | Provisioning status in OpenStack — one of `ACTIVE`, `DELETED`, `ERROR`, `PENDING_CREATE`, `PENDING_DELETE`, `PENDING_UPDATE` |
| `currentTasks` | common.CurrentTask[] | read-only | Ongoing asynchronous tasks related to the pool |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier of the pool |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Pool readiness in the system — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | publicCloud.loadbalancer.PoolTargetSpec | read-only | Last target specification of the pool |
| `targetSpec.algorithm` | publicCloud.loadbalancer.PoolAlgorithmEnum | yes | Load balancing algorithm — one of `LEAST_CONNECTIONS`, `ROUND_ROBIN`, `SOURCE_IP` |
| `targetSpec.description` | string |  | Pool description |
| `targetSpec.healthMonitor` | publicCloud.loadbalancer.HealthMonitorTargetSpec |  | Health monitor configuration for this pool |
| `targetSpec.healthMonitor.delay` | integer | yes | Time in seconds between sending health check probes to members |
| `targetSpec.healthMonitor.domainName` | string |  | Domain name injected into the HTTP Host header for HTTP/HTTPS health checks |
| `targetSpec.healthMonitor.expectedCodes` | string |  | Expected HTTP status codes for HTTP/HTTPS health checks, for example 200, 200-202, 200-202,401 |
| `targetSpec.healthMonitor.httpMethod` | publicCloud.loadbalancer.HealthMonitorHttpMethodEnum |  | HTTP method used for HTTP/HTTPS health checks — one of `CONNECT`, `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, `PUT`, `TRACE` |
| `targetSpec.healthMonitor.httpVersion` | string |  | HTTP version for HTTP/HTTPS health checks (1.0 or 1.1) |
| `targetSpec.healthMonitor.maxRetries` | integer | yes | Number of consecutive health check failures before marking a member as INACTIVE. From 1 to 10. |
| `targetSpec.healthMonitor.maxRetriesDown` | integer |  | Number of consecutive health check failures before marking a member as ERROR. From 1 to 10. |
| `targetSpec.healthMonitor.name` | string |  | Human-readable name for the health monitor |
| `targetSpec.healthMonitor.timeout` | integer | yes | Maximum time in seconds to wait for a health check reply (must be less than or equal to delay) |
| `targetSpec.healthMonitor.type` | publicCloud.loadbalancer.HealthMonitorTypeEnum | yes | Type of health check probe. Immutable after creation. — one of `HTTP`, `HTTPS`, `PING`, `SCTP`, `TCP`, `TLS_HELLO`, `UDP_CONNECT` |
| `targetSpec.healthMonitor.urlPath` | string |  | URI path for HTTP/HTTPS health checks (must start with /) |
| `targetSpec.name` | string |  | Pool name |
| `targetSpec.persistence` | publicCloud.loadbalancer.SessionPersistence |  | Session persistence configuration |
| `targetSpec.persistence.cookieName` | string |  | Name of the cookie for HTTP_COOKIE or APP_COOKIE persistence types |
| `targetSpec.persistence.type` | publicCloud.loadbalancer.SessionPersistenceTypeEnum | yes | Type of session persistence — one of `APP_COOKIE`, `HTTP_COOKIE`, `SOURCE_IP` |
| `targetSpec.protocol` | publicCloud.loadbalancer.PoolProtocolEnum | yes | Protocol of the pool — one of `HTTP`, `HTTPS`, `PROXY`, `PROXYV2`, `SCTP`, `TCP`, `UDP` |
| `updatedAt` | string (date-time) | read-only | Last update date of the pool |

```json
{
  "checksum": "string",
  "createdAt": "2024-01-01T12:00:00Z",
  "currentState": {
    "algorithm": "LEAST_CONNECTIONS",
    "description": "string",
    "healthMonitor": {
      "delay": 0,
      "domainName": "string",
      "expectedCodes": "string",
      "httpMethod": "string",
      "httpVersion": "string",
      "id": "00000000-0000-0000-0000-000000000000",
      "maxRetries": 0,
      "maxRetriesDown": 0,
      "name": "string",
      "operatingStatus": "string",
      "provisioningStatus": "string",
      "timeout": 0,
      "type": "HTTP",
      "urlPath": "string"
    },
    "name": "string",
    "operatingStatus": "DEGRADED",
    "persistence": {
      "cookieName": "string",
      "type": "APP_COOKIE"
    },
    "protocol": "HTTP",
    "provisioningStatus": "ACTIVE"
  },
  "currentTasks": [
    {
      "errors": [
        {
          "message": "string"
        }
      ],
      "id": "00000000-0000-0000-0000-000000000000",
      "link": "string",
      "status": "ERROR",
      "type": "string"
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000",
  "resourceStatus": "CREATING",
  "targetSpec": {
    "algorithm": "LEAST_CONNECTIONS",
    "description": "string",
    "healthMonitor": {
      "delay": 0,
      "domainName": "string",
      "expectedCodes": "string",
      "httpMethod": "CONNECT",
      "httpVersion": "string",
      "maxRetries": 0,
      "maxRetriesDown": 0,
      "name": "string",
      "timeout": 0,
      "type": "HTTP",
      "urlPath": "string"
    },
    "name": "string",
    "persistence": {
      "cookieName": "string",
  …
```

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: publicCloud.loadbalancer.PoolUpdate
result = client.put("/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}",
	checksum = None, # Optional concurrency-control checksum. When supplied, it must match the resource's current checksum or the request is rejected with a 409 checksum-mismatch conflict. When omitted or empty, the concurrency check is skipped and the write is forced (last-write-wins). (type: string, nullable)
	targetSpec = None, # Desired target specification for the pool (type: publicCloud.loadbalancer.PoolUpdateTargetSpec)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: publicCloud.loadbalancer.PoolUpdate
$result = $ovh->put("/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}", array(
	checksum => null, // Optional concurrency-control checksum. When supplied, it must match the resource's current checksum or the request is rejected with a 409 checksum-mismatch conflict. When omitted or empty, the concurrency check is skipped and the write is forced (last-write-wins). (type: string, nullable)
	targetSpec => null, // Desired target specification for the pool (type: publicCloud.loadbalancer.PoolUpdateTargetSpec)
));

print_r($result);
?>
```

## List pool members

`GET /v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/network/load-balancer/pools/#getLoadBalancerPoolMembers

**Status:** Stable production version  
**IAM actions:** `publicCloudProject:apiovh:loadbalancer/pool/member/get`

Returns the members of the pool.

### Filters
The optional `name` and `address` query parameters narrow the list. Each one can be repeated (for example `?name=web&name=api`): repeated values of the same parameter are combined with OR, and different parameters are combined with AND. An invalid `address` is rejected with a `400 InvalidParameter`. The `resourceStatus` is computed from the live state of each resource, so it is not a filter: a `status` query parameter is rejected with a `400 InvalidParameter`.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `X-Pagination-Cursor` | header | string |  | Pagination cursor |
| `X-Pagination-Size` | header | integer |  | Pagination size |
| `address` | query | ip[] |  | Filter by member IP address (exact match). Repeatable. |
| `loadbalancerId` | path | string (uuid) | yes | Loadbalancer ID |
| `name` | query | string[] |  | Filter by member name (case-insensitive substring match). Repeatable. |
| `poolId` | path | string (uuid) | yes | Pool ID |
| `projectId` | path | string | yes | Project ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | publicCloud.loadbalancer.Member[] | successful operation |
| 400 | object | Error 400 response |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `checksum` | string | read-only | Computed hash representing the current target specification value |
| `createdAt` | string (date-time) | read-only | Creation date of the member |
| `currentState` | publicCloud.loadbalancer.MemberCurrentState | read-only | Current state of the member |
| `currentState.address` | ip | read-only | IP address of the member backend server |
| `currentState.backup` | boolean | read-only | Whether this is a backup member |
| `currentState.monitor` | publicCloud.loadbalancer.MemberMonitor | read-only | Alternate address and port for health monitoring. When omitted, the member address and protocol port will be used for health monitoring. |
| `currentState.monitor.address` | ip |  | Alternate IP address for health monitoring |
| `currentState.monitor.port` | integer |  | Alternate port for health monitoring |
| `currentState.name` | string | read-only | Member name. Null when the member has no name, because none was given at creation or the last update left it out. |
| `currentState.operatingStatus` | publicCloud.loadbalancer.LoadbalancerOperatingStatusEnum | read-only | Whether this member is currently receiving traffic, as observed on the platform. A member that fails its health check stops being sent requests. — one of `DEGRADED`, `DRAINING`, `ERROR`, `NO_MONITOR`, `OFFLINE`, `ONLINE` |
| `currentState.protocolPort` | integer | read-only | Port the member backend server listens on |
| `currentState.provisioningStatus` | publicCloud.loadbalancer.LoadbalancerProvisioningStatusEnum | read-only | Provisioning status in OpenStack — one of `ACTIVE`, `DELETED`, `ERROR`, `PENDING_CREATE`, `PENDING_DELETE`, `PENDING_UPDATE` |
| `currentState.subnet` | publicCloud.loadbalancer.LoadbalancerSubnetRef | read-only | Subnet reference for the member |
| `currentState.subnet.id` | string (uuid) | yes | Identifier of the subnet |
| `currentState.weight` | integer | read-only | Weight for load balancing |
| `currentTasks` | common.CurrentTask[] | read-only | Ongoing asynchronous tasks related to the member |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier of the member |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Member readiness in the system — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | publicCloud.loadbalancer.MemberTargetSpec | read-only | Last target specification of the member |
| `targetSpec.address` | ip | yes | IP address of the member backend server |
| `targetSpec.backup` | boolean |  | Whether this is a backup member |
| `targetSpec.monitor` | publicCloud.loadbalancer.MemberMonitor |  | Alternate address and port for health monitoring. When omitted, the member address and protocol port will be used for health monitoring. |
| `targetSpec.monitor.address` | ip |  | Alternate IP address for health monitoring |
| `targetSpec.monitor.port` | integer |  | Alternate port for health monitoring |
| `targetSpec.name` | string |  | Member name |
| `targetSpec.protocolPort` | integer | yes | Port the member backend server listens on |
| `targetSpec.subnet` | publicCloud.loadbalancer.LoadbalancerSubnetRef |  | Subnet reference for the member |
| `targetSpec.subnet.id` | string (uuid) | yes | Identifier of the subnet |
| `targetSpec.weight` | integer |  | Weight for load balancing. From 1 to 256. |
| `updatedAt` | string (date-time) | read-only | Last update date of the member |

```json
[
  {
    "checksum": "string",
    "createdAt": "2024-01-01T12:00:00Z",
    "currentState": {
      "address": "192.0.2.0",
      "backup": true,
      "monitor": {
        "address": "192.0.2.0",
        "port": 0
      },
      "name": "string",
      "operatingStatus": "DEGRADED",
      "protocolPort": 0,
      "provisioningStatus": "ACTIVE",
      "subnet": {
        "id": "00000000-0000-0000-0000-000000000000"
      },
      "weight": 0
    },
    "currentTasks": [
      {
        "errors": [
          {
            "message": "string"
          }
        ],
        "id": "00000000-0000-0000-0000-000000000000",
        "link": "string",
        "status": "ERROR",
        "type": "string"
      }
    ],
    "id": "00000000-0000-0000-0000-000000000000",
    "resourceStatus": "CREATING",
    "targetSpec": {
      "address": "192.0.2.0",
      "backup": true,
      "monitor": {
        "address": "192.0.2.0",
        "port": 0
      },
      "name": "string",
      "protocolPort": 0,
      "subnet": {
        "id": "00000000-0000-0000-0000-000000000000"
      },
      "weight": 0
    },
    "updatedAt": "2024-01-01T12:00:00Z"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member");

print_r($result);
?>
```

## Get a pool member

`GET /v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member/{memberId}`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/network/load-balancer/pools/#getLoadBalancerPoolMember

**Status:** Stable production version  
**IAM actions:** `publicCloudProject:apiovh:loadbalancer/pool/member/get`

Returns the pool member, including its address, port and weight.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `loadbalancerId` | path | string (uuid) | yes | Loadbalancer ID |
| `memberId` | path | string (uuid) | yes | Member ID |
| `poolId` | path | string (uuid) | yes | Pool ID |
| `projectId` | path | string | yes | Project ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | publicCloud.loadbalancer.Member | successful operation |
| 404 | object | Error 404 response |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `checksum` | string | read-only | Computed hash representing the current target specification value |
| `createdAt` | string (date-time) | read-only | Creation date of the member |
| `currentState` | publicCloud.loadbalancer.MemberCurrentState | read-only | Current state of the member |
| `currentState.address` | ip | read-only | IP address of the member backend server |
| `currentState.backup` | boolean | read-only | Whether this is a backup member |
| `currentState.monitor` | publicCloud.loadbalancer.MemberMonitor | read-only | Alternate address and port for health monitoring. When omitted, the member address and protocol port will be used for health monitoring. |
| `currentState.monitor.address` | ip |  | Alternate IP address for health monitoring |
| `currentState.monitor.port` | integer |  | Alternate port for health monitoring |
| `currentState.name` | string | read-only | Member name. Null when the member has no name, because none was given at creation or the last update left it out. |
| `currentState.operatingStatus` | publicCloud.loadbalancer.LoadbalancerOperatingStatusEnum | read-only | Whether this member is currently receiving traffic, as observed on the platform. A member that fails its health check stops being sent requests. — one of `DEGRADED`, `DRAINING`, `ERROR`, `NO_MONITOR`, `OFFLINE`, `ONLINE` |
| `currentState.protocolPort` | integer | read-only | Port the member backend server listens on |
| `currentState.provisioningStatus` | publicCloud.loadbalancer.LoadbalancerProvisioningStatusEnum | read-only | Provisioning status in OpenStack — one of `ACTIVE`, `DELETED`, `ERROR`, `PENDING_CREATE`, `PENDING_DELETE`, `PENDING_UPDATE` |
| `currentState.subnet` | publicCloud.loadbalancer.LoadbalancerSubnetRef | read-only | Subnet reference for the member |
| `currentState.subnet.id` | string (uuid) | yes | Identifier of the subnet |
| `currentState.weight` | integer | read-only | Weight for load balancing |
| `currentTasks` | common.CurrentTask[] | read-only | Ongoing asynchronous tasks related to the member |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier of the member |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Member readiness in the system — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | publicCloud.loadbalancer.MemberTargetSpec | read-only | Last target specification of the member |
| `targetSpec.address` | ip | yes | IP address of the member backend server |
| `targetSpec.backup` | boolean |  | Whether this is a backup member |
| `targetSpec.monitor` | publicCloud.loadbalancer.MemberMonitor |  | Alternate address and port for health monitoring. When omitted, the member address and protocol port will be used for health monitoring. |
| `targetSpec.monitor.address` | ip |  | Alternate IP address for health monitoring |
| `targetSpec.monitor.port` | integer |  | Alternate port for health monitoring |
| `targetSpec.name` | string |  | Member name |
| `targetSpec.protocolPort` | integer | yes | Port the member backend server listens on |
| `targetSpec.subnet` | publicCloud.loadbalancer.LoadbalancerSubnetRef |  | Subnet reference for the member |
| `targetSpec.subnet.id` | string (uuid) | yes | Identifier of the subnet |
| `targetSpec.weight` | integer |  | Weight for load balancing. From 1 to 256. |
| `updatedAt` | string (date-time) | read-only | Last update date of the member |

```json
{
  "checksum": "string",
  "createdAt": "2024-01-01T12:00:00Z",
  "currentState": {
    "address": "192.0.2.0",
    "backup": true,
    "monitor": {
      "address": "192.0.2.0",
      "port": 0
    },
    "name": "string",
    "operatingStatus": "DEGRADED",
    "protocolPort": 0,
    "provisioningStatus": "ACTIVE",
    "subnet": {
      "id": "00000000-0000-0000-0000-000000000000"
    },
    "weight": 0
  },
  "currentTasks": [
    {
      "errors": [
        {
          "message": "string"
        }
      ],
      "id": "00000000-0000-0000-0000-000000000000",
      "link": "string",
      "status": "ERROR",
      "type": "string"
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000",
  "resourceStatus": "CREATING",
  "targetSpec": {
    "address": "192.0.2.0",
    "backup": true,
    "monitor": {
      "address": "192.0.2.0",
      "port": 0
    },
    "name": "string",
    "protocolPort": 0,
    "subnet": {
      "id": "00000000-0000-0000-0000-000000000000"
    },
    "weight": 0
  },
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member/{memberId}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member/{memberId}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member/{memberId}");

print_r($result);
?>
```

## Create a pool member

`POST /v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/network/load-balancer/pools/#createLoadBalancerPoolMember

**Status:** Stable production version  
**IAM actions:** `publicCloudProject:apiovh:loadbalancer/pool/member/create`

Adds a backend server to the pool at a given address and port, with an optional weight and health-check override.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `loadbalancerId` | path | string (uuid) | yes | Loadbalancer ID |
| `poolId` | path | string (uuid) | yes | Pool ID |
| `projectId` | path | string | yes | Project ID |

### Request body (required)

Type: `publicCloud.loadbalancer.MemberCreation`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `targetSpec` | publicCloud.loadbalancer.MemberTargetSpec | yes | Desired target specification for the member to create |
| `targetSpec.address` | ip | yes | IP address of the member backend server |
| `targetSpec.backup` | boolean |  | Whether this is a backup member |
| `targetSpec.monitor` | publicCloud.loadbalancer.MemberMonitor |  | Alternate address and port for health monitoring. When omitted, the member address and protocol port will be used for health monitoring. |
| `targetSpec.monitor.address` | ip |  | Alternate IP address for health monitoring |
| `targetSpec.monitor.port` | integer |  | Alternate port for health monitoring |
| `targetSpec.name` | string |  | Member name |
| `targetSpec.protocolPort` | integer | yes | Port the member backend server listens on |
| `targetSpec.subnet` | publicCloud.loadbalancer.LoadbalancerSubnetRef |  | Subnet reference for the member |
| `targetSpec.subnet.id` | string (uuid) | yes | Identifier of the subnet |
| `targetSpec.weight` | integer |  | Weight for load balancing. From 1 to 256. |

```json
{
  "targetSpec": {
    "address": "192.0.2.0",
    "backup": true,
    "monitor": {
      "address": "192.0.2.0",
      "port": 0
    },
    "name": "string",
    "protocolPort": 0,
    "subnet": {
      "id": "00000000-0000-0000-0000-000000000000"
    },
    "weight": 0
  }
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | publicCloud.loadbalancer.Member | successful operation |
| 400 | object | Error 400 response |
| 404 | object | Error 404 response |
| 409 | object | Error 409 response |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `checksum` | string | read-only | Computed hash representing the current target specification value |
| `createdAt` | string (date-time) | read-only | Creation date of the member |
| `currentState` | publicCloud.loadbalancer.MemberCurrentState | read-only | Current state of the member |
| `currentState.address` | ip | read-only | IP address of the member backend server |
| `currentState.backup` | boolean | read-only | Whether this is a backup member |
| `currentState.monitor` | publicCloud.loadbalancer.MemberMonitor | read-only | Alternate address and port for health monitoring. When omitted, the member address and protocol port will be used for health monitoring. |
| `currentState.monitor.address` | ip |  | Alternate IP address for health monitoring |
| `currentState.monitor.port` | integer |  | Alternate port for health monitoring |
| `currentState.name` | string | read-only | Member name. Null when the member has no name, because none was given at creation or the last update left it out. |
| `currentState.operatingStatus` | publicCloud.loadbalancer.LoadbalancerOperatingStatusEnum | read-only | Whether this member is currently receiving traffic, as observed on the platform. A member that fails its health check stops being sent requests. — one of `DEGRADED`, `DRAINING`, `ERROR`, `NO_MONITOR`, `OFFLINE`, `ONLINE` |
| `currentState.protocolPort` | integer | read-only | Port the member backend server listens on |
| `currentState.provisioningStatus` | publicCloud.loadbalancer.LoadbalancerProvisioningStatusEnum | read-only | Provisioning status in OpenStack — one of `ACTIVE`, `DELETED`, `ERROR`, `PENDING_CREATE`, `PENDING_DELETE`, `PENDING_UPDATE` |
| `currentState.subnet` | publicCloud.loadbalancer.LoadbalancerSubnetRef | read-only | Subnet reference for the member |
| `currentState.subnet.id` | string (uuid) | yes | Identifier of the subnet |
| `currentState.weight` | integer | read-only | Weight for load balancing |
| `currentTasks` | common.CurrentTask[] | read-only | Ongoing asynchronous tasks related to the member |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier of the member |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Member readiness in the system — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | publicCloud.loadbalancer.MemberTargetSpec | read-only | Last target specification of the member |
| `targetSpec.address` | ip | yes | IP address of the member backend server |
| `targetSpec.backup` | boolean |  | Whether this is a backup member |
| `targetSpec.monitor` | publicCloud.loadbalancer.MemberMonitor |  | Alternate address and port for health monitoring. When omitted, the member address and protocol port will be used for health monitoring. |
| `targetSpec.monitor.address` | ip |  | Alternate IP address for health monitoring |
| `targetSpec.monitor.port` | integer |  | Alternate port for health monitoring |
| `targetSpec.name` | string |  | Member name |
| `targetSpec.protocolPort` | integer | yes | Port the member backend server listens on |
| `targetSpec.subnet` | publicCloud.loadbalancer.LoadbalancerSubnetRef |  | Subnet reference for the member |
| `targetSpec.subnet.id` | string (uuid) | yes | Identifier of the subnet |
| `targetSpec.weight` | integer |  | Weight for load balancing. From 1 to 256. |
| `updatedAt` | string (date-time) | read-only | Last update date of the member |

```json
{
  "checksum": "string",
  "createdAt": "2024-01-01T12:00:00Z",
  "currentState": {
    "address": "192.0.2.0",
    "backup": true,
    "monitor": {
      "address": "192.0.2.0",
      "port": 0
    },
    "name": "string",
    "operatingStatus": "DEGRADED",
    "protocolPort": 0,
    "provisioningStatus": "ACTIVE",
    "subnet": {
      "id": "00000000-0000-0000-0000-000000000000"
    },
    "weight": 0
  },
  "currentTasks": [
    {
      "errors": [
        {
          "message": "string"
        }
      ],
      "id": "00000000-0000-0000-0000-000000000000",
      "link": "string",
      "status": "ERROR",
      "type": "string"
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000",
  "resourceStatus": "CREATING",
  "targetSpec": {
    "address": "192.0.2.0",
    "backup": true,
    "monitor": {
      "address": "192.0.2.0",
      "port": 0
    },
    "name": "string",
    "protocolPort": 0,
    "subnet": {
      "id": "00000000-0000-0000-0000-000000000000"
    },
    "weight": 0
  },
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: publicCloud.loadbalancer.MemberCreation
result = client.post("/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member",
	targetSpec = None, # Desired target specification for the member to create (type: publicCloud.loadbalancer.MemberTargetSpec)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: publicCloud.loadbalancer.MemberCreation
$result = $ovh->post("/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member", array(
	targetSpec => null, // Desired target specification for the member to create (type: publicCloud.loadbalancer.MemberTargetSpec)
));

print_r($result);
?>
```

## Delete a pool member

`DELETE /v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member/{memberId}`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/network/load-balancer/pools/#deleteLoadBalancerPoolMember

**Status:** Stable production version  
**IAM actions:** `publicCloudProject:apiovh:loadbalancer/pool/member/delete`

Deletes the pool member.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `loadbalancerId` | path | string (uuid) | yes | Loadbalancer ID |
| `memberId` | path | string (uuid) | yes | Member ID |
| `poolId` | path | string (uuid) | yes | Pool ID |
| `projectId` | path | string | yes | Project ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | publicCloud.loadbalancer.Member | successful operation |
| 404 | object | Error 404 response |
| 409 | object | Error 409 response |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `checksum` | string | read-only | Computed hash representing the current target specification value |
| `createdAt` | string (date-time) | read-only | Creation date of the member |
| `currentState` | publicCloud.loadbalancer.MemberCurrentState | read-only | Current state of the member |
| `currentState.address` | ip | read-only | IP address of the member backend server |
| `currentState.backup` | boolean | read-only | Whether this is a backup member |
| `currentState.monitor` | publicCloud.loadbalancer.MemberMonitor | read-only | Alternate address and port for health monitoring. When omitted, the member address and protocol port will be used for health monitoring. |
| `currentState.monitor.address` | ip |  | Alternate IP address for health monitoring |
| `currentState.monitor.port` | integer |  | Alternate port for health monitoring |
| `currentState.name` | string | read-only | Member name. Null when the member has no name, because none was given at creation or the last update left it out. |
| `currentState.operatingStatus` | publicCloud.loadbalancer.LoadbalancerOperatingStatusEnum | read-only | Whether this member is currently receiving traffic, as observed on the platform. A member that fails its health check stops being sent requests. — one of `DEGRADED`, `DRAINING`, `ERROR`, `NO_MONITOR`, `OFFLINE`, `ONLINE` |
| `currentState.protocolPort` | integer | read-only | Port the member backend server listens on |
| `currentState.provisioningStatus` | publicCloud.loadbalancer.LoadbalancerProvisioningStatusEnum | read-only | Provisioning status in OpenStack — one of `ACTIVE`, `DELETED`, `ERROR`, `PENDING_CREATE`, `PENDING_DELETE`, `PENDING_UPDATE` |
| `currentState.subnet` | publicCloud.loadbalancer.LoadbalancerSubnetRef | read-only | Subnet reference for the member |
| `currentState.subnet.id` | string (uuid) | yes | Identifier of the subnet |
| `currentState.weight` | integer | read-only | Weight for load balancing |
| `currentTasks` | common.CurrentTask[] | read-only | Ongoing asynchronous tasks related to the member |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier of the member |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Member readiness in the system — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | publicCloud.loadbalancer.MemberTargetSpec | read-only | Last target specification of the member |
| `targetSpec.address` | ip | yes | IP address of the member backend server |
| `targetSpec.backup` | boolean |  | Whether this is a backup member |
| `targetSpec.monitor` | publicCloud.loadbalancer.MemberMonitor |  | Alternate address and port for health monitoring. When omitted, the member address and protocol port will be used for health monitoring. |
| `targetSpec.monitor.address` | ip |  | Alternate IP address for health monitoring |
| `targetSpec.monitor.port` | integer |  | Alternate port for health monitoring |
| `targetSpec.name` | string |  | Member name |
| `targetSpec.protocolPort` | integer | yes | Port the member backend server listens on |
| `targetSpec.subnet` | publicCloud.loadbalancer.LoadbalancerSubnetRef |  | Subnet reference for the member |
| `targetSpec.subnet.id` | string (uuid) | yes | Identifier of the subnet |
| `targetSpec.weight` | integer |  | Weight for load balancing. From 1 to 256. |
| `updatedAt` | string (date-time) | read-only | Last update date of the member |

```json
{
  "checksum": "string",
  "createdAt": "2024-01-01T12:00:00Z",
  "currentState": {
    "address": "192.0.2.0",
    "backup": true,
    "monitor": {
      "address": "192.0.2.0",
      "port": 0
    },
    "name": "string",
    "operatingStatus": "DEGRADED",
    "protocolPort": 0,
    "provisioningStatus": "ACTIVE",
    "subnet": {
      "id": "00000000-0000-0000-0000-000000000000"
    },
    "weight": 0
  },
  "currentTasks": [
    {
      "errors": [
        {
          "message": "string"
        }
      ],
      "id": "00000000-0000-0000-0000-000000000000",
      "link": "string",
      "status": "ERROR",
      "type": "string"
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000",
  "resourceStatus": "CREATING",
  "targetSpec": {
    "address": "192.0.2.0",
    "backup": true,
    "monitor": {
      "address": "192.0.2.0",
      "port": 0
    },
    "name": "string",
    "protocolPort": 0,
    "subnet": {
      "id": "00000000-0000-0000-0000-000000000000"
    },
    "weight": 0
  },
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X DELETE \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member/{memberId}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.delete("/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member/{memberId}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->delete("/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member/{memberId}");

print_r($result);
?>
```

## Update a pool member

`PUT /v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member/{memberId}`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/network/load-balancer/pools/#editLoadBalancerPoolMember

**Status:** Stable production version  
**IAM actions:** `publicCloudProject:apiovh:loadbalancer/pool/member/edit`

Replaces the member's target specification as a whole. The body carries the complete desired state of every field `publicCloud.loadbalancer.MemberUpdateTargetSpec` exposes — `backup`, `monitor`, `name` and `weight` — so read the member first and restate every value you want to keep: a field left out of `targetSpec` is cleared, not carried over from the stored specification.

`monitor` is replaced as a whole, and so are the fields inside it. Leaving `monitor` out clears the health-monitoring override, and health monitoring falls back to the member's own address and protocol port. Sending a `monitor` that omits `address` or `port` clears just that one, and the member's own value is used for it.

The create-only fields `address`, `protocolPort` and `subnet` cannot be changed once the member exists. They are deliberately absent from the update model, and sending one is rejected with a 400.

The optional `checksum` guards against a lost update: when supplied it must match the member's current checksum or the request is rejected with a 409 checksum mismatch. Omitting it skips the check and forces the write (last-write-wins).

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `loadbalancerId` | path | string (uuid) | yes | Loadbalancer ID |
| `memberId` | path | string (uuid) | yes | Member ID |
| `poolId` | path | string (uuid) | yes | Pool ID |
| `projectId` | path | string | yes | Project ID |

### Request body (required)

Type: `publicCloud.loadbalancer.MemberUpdate`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `checksum` | string |  | Optional concurrency-control checksum. When supplied, it must match the resource's current checksum or the request is rejected with a 409 checksum-mismatch conflict. When omitted or empty, the concurrency check is skipped and the write is forced (last-write-wins). |
| `targetSpec` | publicCloud.loadbalancer.MemberUpdateTargetSpec | yes | Desired target specification for the member |
| `targetSpec.backup` | boolean |  | Whether this is a backup member |
| `targetSpec.monitor` | publicCloud.loadbalancer.MemberMonitor |  | Alternate address and port for health monitoring. When omitted, the member address and protocol port will be used for health monitoring. |
| `targetSpec.monitor.address` | ip |  | Alternate IP address for health monitoring |
| `targetSpec.monitor.port` | integer |  | Alternate port for health monitoring |
| `targetSpec.name` | string |  | Member name |
| `targetSpec.weight` | integer |  | Weight for load balancing. From 1 to 256. |

```json
{
  "checksum": "string",
  "targetSpec": {
    "backup": true,
    "monitor": {
      "address": "192.0.2.0",
      "port": 0
    },
    "name": "string",
    "weight": 0
  }
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | publicCloud.loadbalancer.Member | successful operation |
| 400 | object | Error 400 response |
| 404 | object | Error 404 response |
| 409 | object | Error 409 response |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `checksum` | string | read-only | Computed hash representing the current target specification value |
| `createdAt` | string (date-time) | read-only | Creation date of the member |
| `currentState` | publicCloud.loadbalancer.MemberCurrentState | read-only | Current state of the member |
| `currentState.address` | ip | read-only | IP address of the member backend server |
| `currentState.backup` | boolean | read-only | Whether this is a backup member |
| `currentState.monitor` | publicCloud.loadbalancer.MemberMonitor | read-only | Alternate address and port for health monitoring. When omitted, the member address and protocol port will be used for health monitoring. |
| `currentState.monitor.address` | ip |  | Alternate IP address for health monitoring |
| `currentState.monitor.port` | integer |  | Alternate port for health monitoring |
| `currentState.name` | string | read-only | Member name. Null when the member has no name, because none was given at creation or the last update left it out. |
| `currentState.operatingStatus` | publicCloud.loadbalancer.LoadbalancerOperatingStatusEnum | read-only | Whether this member is currently receiving traffic, as observed on the platform. A member that fails its health check stops being sent requests. — one of `DEGRADED`, `DRAINING`, `ERROR`, `NO_MONITOR`, `OFFLINE`, `ONLINE` |
| `currentState.protocolPort` | integer | read-only | Port the member backend server listens on |
| `currentState.provisioningStatus` | publicCloud.loadbalancer.LoadbalancerProvisioningStatusEnum | read-only | Provisioning status in OpenStack — one of `ACTIVE`, `DELETED`, `ERROR`, `PENDING_CREATE`, `PENDING_DELETE`, `PENDING_UPDATE` |
| `currentState.subnet` | publicCloud.loadbalancer.LoadbalancerSubnetRef | read-only | Subnet reference for the member |
| `currentState.subnet.id` | string (uuid) | yes | Identifier of the subnet |
| `currentState.weight` | integer | read-only | Weight for load balancing |
| `currentTasks` | common.CurrentTask[] | read-only | Ongoing asynchronous tasks related to the member |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier of the member |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Member readiness in the system — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | publicCloud.loadbalancer.MemberTargetSpec | read-only | Last target specification of the member |
| `targetSpec.address` | ip | yes | IP address of the member backend server |
| `targetSpec.backup` | boolean |  | Whether this is a backup member |
| `targetSpec.monitor` | publicCloud.loadbalancer.MemberMonitor |  | Alternate address and port for health monitoring. When omitted, the member address and protocol port will be used for health monitoring. |
| `targetSpec.monitor.address` | ip |  | Alternate IP address for health monitoring |
| `targetSpec.monitor.port` | integer |  | Alternate port for health monitoring |
| `targetSpec.name` | string |  | Member name |
| `targetSpec.protocolPort` | integer | yes | Port the member backend server listens on |
| `targetSpec.subnet` | publicCloud.loadbalancer.LoadbalancerSubnetRef |  | Subnet reference for the member |
| `targetSpec.subnet.id` | string (uuid) | yes | Identifier of the subnet |
| `targetSpec.weight` | integer |  | Weight for load balancing. From 1 to 256. |
| `updatedAt` | string (date-time) | read-only | Last update date of the member |

```json
{
  "checksum": "string",
  "createdAt": "2024-01-01T12:00:00Z",
  "currentState": {
    "address": "192.0.2.0",
    "backup": true,
    "monitor": {
      "address": "192.0.2.0",
      "port": 0
    },
    "name": "string",
    "operatingStatus": "DEGRADED",
    "protocolPort": 0,
    "provisioningStatus": "ACTIVE",
    "subnet": {
      "id": "00000000-0000-0000-0000-000000000000"
    },
    "weight": 0
  },
  "currentTasks": [
    {
      "errors": [
        {
          "message": "string"
        }
      ],
      "id": "00000000-0000-0000-0000-000000000000",
      "link": "string",
      "status": "ERROR",
      "type": "string"
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000",
  "resourceStatus": "CREATING",
  "targetSpec": {
    "address": "192.0.2.0",
    "backup": true,
    "monitor": {
      "address": "192.0.2.0",
      "port": 0
    },
    "name": "string",
    "protocolPort": 0,
    "subnet": {
      "id": "00000000-0000-0000-0000-000000000000"
    },
    "weight": 0
  },
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member/{memberId}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: publicCloud.loadbalancer.MemberUpdate
result = client.put("/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member/{memberId}",
	checksum = None, # Optional concurrency-control checksum. When supplied, it must match the resource's current checksum or the request is rejected with a 409 checksum-mismatch conflict. When omitted or empty, the concurrency check is skipped and the write is forced (last-write-wins). (type: string, nullable)
	targetSpec = None, # Desired target specification for the member (type: publicCloud.loadbalancer.MemberUpdateTargetSpec)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: publicCloud.loadbalancer.MemberUpdate
$result = $ovh->put("/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member/{memberId}", array(
	checksum => null, // Optional concurrency-control checksum. When supplied, it must match the resource's current checksum or the request is rejected with a 409 checksum-mismatch conflict. When omitted or empty, the concurrency check is skipped and the write is forced (last-write-wins). (type: string, nullable)
	targetSpec => null, // Desired target specification for the member (type: publicCloud.loadbalancer.MemberUpdateTargetSpec)
));

print_r($result);
?>
```
