priv/docs/account_load_balancer_pools.md

# Account Load Balancer Pools

## Create Pool

**POST** `/accounts/{account_id}/load_balancers/pools`

Create a new pool.

### Responses

#### 200 Create Pool response.

> Data is at `body["result"]`

```json
{
  "check_regions": [
    "*string*"
  ],
  "created_on": "*string*",
  "description": "*string*",
  "disabled_at": "*string*",
  "enabled": "*boolean*",
  "id": "*string*",
  "latitude": "*number*",
  "load_shedding": {
    "default_percent": "*number*",
    "default_policy": "*string*",
    "session_percent": "*number*",
    "session_policy": "*string*"
  },
  "longitude": "*number*",
  "minimum_origins": "*integer*",
  "modified_on": "*string*",
  "monitor": "*string*",
  "monitor_group": "*string*",
  "name": "*string*",
  "networks": [
    "*string*"
  ],
  "notification_email": "*string*",
  "notification_filter": {
    "origin": {
      "disable": "*boolean*",
      "healthy": "*boolean*"
    },
    "pool": {
      "disable": "*boolean*",
      "healthy": "*boolean*"
    }
  },
  "origin_steering": {
    "policy": "*string*"
  },
  "origins": [
    {
      "address": null,
      "disabled_at": null,
      "enabled": null,
      "header": null,
      "name": null,
      "port": null,
      "virtual_network_id": null,
      "weight": null
    }
  ]
}
```

#### 4XX Create Pool response failure.

```json
{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Patch Pools

**PATCH** `/accounts/{account_id}/load_balancers/pools`

Apply changes to a number of existing pools, overwriting the supplied properties. Pools are ordered by ascending `name`. Returns the list of affected pools. Supports the standard pagination query parameters, either `limit`/`offset` or `per_page`/`page`.

### Responses

#### 200 Patch Pools response.

> Data is at `body["result"]`

```json
[
  {
    "check_regions": [
      "*string*"
    ],
    "created_on": "*string*",
    "description": "*string*",
    "disabled_at": "*string*",
    "enabled": "*boolean*",
    "id": "*string*",
    "latitude": "*number*",
    "load_shedding": {
      "default_percent": "*number*",
      "default_policy": "*string*",
      "session_percent": "*number*",
      "session_policy": "*string*"
    },
    "longitude": "*number*",
    "minimum_origins": "*integer*",
    "modified_on": "*string*",
    "monitor": "*string*",
    "monitor_group": "*string*",
    "name": "*string*",
    "networks": [
      "*string*"
    ],
    "notification_email": "*string*",
    "notification_filter": {
      "origin": null,
      "pool": null
    },
    "origin_steering": {
      "policy": "*string*"
    },
    "origins": [
      null
    ]
  }
]
```

#### 4XX Patch Pools response failure.

```json
{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "result": {},
  "result_info": {
    "count": "*number*",
    "page": "*number*",
    "per_page": "*number*",
    "total_count": "*number*",
    "total_pages": "*number*"
  },
  "success": "*boolean*"
}
```



## List Pools

**GET** `/accounts/{account_id}/load_balancers/pools`

List configured pools.

### Responses

#### 200 List Pools response.

> Data is at `body["result"]`

```json
[
  {
    "check_regions": [
      "*string*"
    ],
    "created_on": "*string*",
    "description": "*string*",
    "disabled_at": "*string*",
    "enabled": "*boolean*",
    "id": "*string*",
    "latitude": "*number*",
    "load_shedding": {
      "default_percent": "*number*",
      "default_policy": "*string*",
      "session_percent": "*number*",
      "session_policy": "*string*"
    },
    "longitude": "*number*",
    "minimum_origins": "*integer*",
    "modified_on": "*string*",
    "monitor": "*string*",
    "monitor_group": "*string*",
    "name": "*string*",
    "networks": [
      "*string*"
    ],
    "notification_email": "*string*",
    "notification_filter": {
      "origin": null,
      "pool": null
    },
    "origin_steering": {
      "policy": "*string*"
    },
    "origins": [
      null
    ]
  }
]
```

#### 4XX List Pools response failure.

```json
{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "result": {},
  "result_info": {
    "count": "*number*",
    "page": "*number*",
    "per_page": "*number*",
    "total_count": "*number*",
    "total_pages": "*number*"
  },
  "success": "*boolean*"
}
```



## Update Pool

**PUT** `/accounts/{account_id}/load_balancers/pools/{pool_id}`

Modify a configured pool.

### Responses

#### 200 Update Pool response.

> Data is at `body["result"]`

```json
{
  "check_regions": [
    "*string*"
  ],
  "created_on": "*string*",
  "description": "*string*",
  "disabled_at": "*string*",
  "enabled": "*boolean*",
  "id": "*string*",
  "latitude": "*number*",
  "load_shedding": {
    "default_percent": "*number*",
    "default_policy": "*string*",
    "session_percent": "*number*",
    "session_policy": "*string*"
  },
  "longitude": "*number*",
  "minimum_origins": "*integer*",
  "modified_on": "*string*",
  "monitor": "*string*",
  "monitor_group": "*string*",
  "name": "*string*",
  "networks": [
    "*string*"
  ],
  "notification_email": "*string*",
  "notification_filter": {
    "origin": {
      "disable": "*boolean*",
      "healthy": "*boolean*"
    },
    "pool": {
      "disable": "*boolean*",
      "healthy": "*boolean*"
    }
  },
  "origin_steering": {
    "policy": "*string*"
  },
  "origins": [
    {
      "address": null,
      "disabled_at": null,
      "enabled": null,
      "header": null,
      "name": null,
      "port": null,
      "virtual_network_id": null,
      "weight": null
    }
  ]
}
```

#### 4XX Update Pool response failure.

```json
{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Patch Pool

**PATCH** `/accounts/{account_id}/load_balancers/pools/{pool_id}`

Apply changes to an existing pool, overwriting the supplied properties.

### Responses

#### 200 Patch Pool response.

> Data is at `body["result"]`

```json
{
  "check_regions": [
    "*string*"
  ],
  "created_on": "*string*",
  "description": "*string*",
  "disabled_at": "*string*",
  "enabled": "*boolean*",
  "id": "*string*",
  "latitude": "*number*",
  "load_shedding": {
    "default_percent": "*number*",
    "default_policy": "*string*",
    "session_percent": "*number*",
    "session_policy": "*string*"
  },
  "longitude": "*number*",
  "minimum_origins": "*integer*",
  "modified_on": "*string*",
  "monitor": "*string*",
  "monitor_group": "*string*",
  "name": "*string*",
  "networks": [
    "*string*"
  ],
  "notification_email": "*string*",
  "notification_filter": {
    "origin": {
      "disable": "*boolean*",
      "healthy": "*boolean*"
    },
    "pool": {
      "disable": "*boolean*",
      "healthy": "*boolean*"
    }
  },
  "origin_steering": {
    "policy": "*string*"
  },
  "origins": [
    {
      "address": null,
      "disabled_at": null,
      "enabled": null,
      "header": null,
      "name": null,
      "port": null,
      "virtual_network_id": null,
      "weight": null
    }
  ]
}
```

#### 4XX Patch Pool response failure.

```json
{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Pool Details

**GET** `/accounts/{account_id}/load_balancers/pools/{pool_id}`

Fetch a single configured pool.

### Responses

#### 200 Pool Details response.

> Data is at `body["result"]`

```json
{
  "check_regions": [
    "*string*"
  ],
  "created_on": "*string*",
  "description": "*string*",
  "disabled_at": "*string*",
  "enabled": "*boolean*",
  "id": "*string*",
  "latitude": "*number*",
  "load_shedding": {
    "default_percent": "*number*",
    "default_policy": "*string*",
    "session_percent": "*number*",
    "session_policy": "*string*"
  },
  "longitude": "*number*",
  "minimum_origins": "*integer*",
  "modified_on": "*string*",
  "monitor": "*string*",
  "monitor_group": "*string*",
  "name": "*string*",
  "networks": [
    "*string*"
  ],
  "notification_email": "*string*",
  "notification_filter": {
    "origin": {
      "disable": "*boolean*",
      "healthy": "*boolean*"
    },
    "pool": {
      "disable": "*boolean*",
      "healthy": "*boolean*"
    }
  },
  "origin_steering": {
    "policy": "*string*"
  },
  "origins": [
    {
      "address": null,
      "disabled_at": null,
      "enabled": null,
      "header": null,
      "name": null,
      "port": null,
      "virtual_network_id": null,
      "weight": null
    }
  ]
}
```

#### 4XX Pool Details response failure.

```json
{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Delete Pool

**DELETE** `/accounts/{account_id}/load_balancers/pools/{pool_id}`

Delete a configured pool.

### Responses

#### 200 Delete Pool response.

> Data is at `body["result"]`

```json
{
  "id": "*string*"
}
```

#### 4XX Delete Pool response failure.

```json
{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Pool Health Details

**GET** `/accounts/{account_id}/load_balancers/pools/{pool_id}/health`

Fetch the latest pool health status for a single pool.

### Responses

#### 200 Pool Health Details response.

> Data is at `body["result"]`

```json
{
  "pool_id": "*string*",
  "pop_health": {
    "healthy": "*boolean*",
    "origins": [
      {
        "ip": {
          "failure_reason": null,
          "healthy": null,
          "response_code": null,
          "rtt": null
        }
      }
    ]
  }
}
```

#### 4XX Pool Health Details response failure.

```json
{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Preview Pool

**POST** `/accounts/{account_id}/load_balancers/pools/{pool_id}/preview`

Preview pool health using provided monitor details. The returned preview_id can be used in the preview endpoint to retrieve the results.

### Responses

#### 200 Preview Pool response.

> Data is at `body["result"]`

```json
{
  "pools": {},
  "preview_id": "*string*"
}
```

#### 4XX Preview Pool response failure.

```json
{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## List Pool References

**GET** `/accounts/{account_id}/load_balancers/pools/{pool_id}/references`

Get the list of resources that reference the provided pool.

### Responses

#### 200 List Pool References response.

> Data is at `body["result"]`

```json
[
  {
    "reference_type": "*string*",
    "resource_id": "*string*",
    "resource_name": "*string*",
    "resource_type": "*string*"
  }
]
```

#### 4XX List Pool References response failure.

```json
{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```