> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ankra.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Upcloud Zone Pool

> Extend an UpCloud cluster's zone pool. Zones can only be added; the cluster must run network_mode 'wireguard_mesh' and the grown pool must keep at least 3 zones with at least 3 control planes. Every new zone gets its own router, private network and NAT gateway; day-2 growth then spreads across the pool. Answers 404 while the organisation's network_overlay feature flag is off.



## OpenAPI

````yaml https://platform.ankra.app/openapi.json put /api/v1/clusters/upcloud/{cluster_id}/zones
openapi: 3.1.0
info:
  title: FastAPI
  version: 0.1.0
servers:
  - url: https://platform.ankra.app
security: []
paths:
  /api/v1/clusters/upcloud/{cluster_id}/zones:
    put:
      tags:
        - UpCloud Cluster API
      summary: Update Upcloud Zone Pool
      description: >-
        Extend an UpCloud cluster's zone pool. Zones can only be added; the
        cluster must run network_mode 'wireguard_mesh' and the grown pool must
        keep at least 3 zones with at least 3 control planes. Every new zone
        gets its own router, private network and NAT gateway; day-2 growth then
        spreads across the pool. Answers 404 while the organisation's
        network_overlay feature flag is off.
      operationId: update_upcloud_zone_pool_api_v1_clusters_upcloud__cluster_id__zones_put
      parameters:
        - in: path
          name: cluster_id
          required: true
          schema:
            format: uuid
            title: Cluster Id
            type: string
        - in: query
          name: wait
          required: false
          schema:
            default: false
            title: Wait
            type: boolean
        - in: header
          name: authorization
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Authorization
        - in: header
          name: x-ankra-organisation-id
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: X-Ankra-Organisation-Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateUpcloudZonePoolRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateUpcloudZonePoolResult'
          description: Successful Response
        '401':
          description: Unauthorized
        '404':
          description: Not found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractDetailError'
          description: Conflicting or unsafe lifecycle state
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
components:
  schemas:
    UpdateUpcloudZonePoolRequest:
      properties:
        zones:
          description: >-
            The desired zone pool, primary zone first. Every current zone must
            still be listed; new zones are appended in the given order.
          items:
            type: string
          title: Zones
          type: array
      required:
        - zones
      title: UpdateUpcloudZonePoolRequest
      type: object
    UpdateUpcloudZonePoolResult:
      properties:
        added_zones:
          items:
            type: string
          title: Added Zones
          type: array
        zones:
          items:
            type: string
          title: Zones
          type: array
      required:
        - zones
        - added_zones
      title: UpdateUpcloudZonePoolResult
      type: object
    ContractDetailError:
      example:
        detail: Cluster not found
      properties:
        detail:
          oneOf:
            - type: string
            - additionalProperties: true
              properties: {}
              type: object
      required:
        - detail
      type: object
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          title: Detail
          type: array
      title: HTTPValidationError
      type: object
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          title: Location
          type: array
        msg:
          title: Message
          type: string
        type:
          title: Error Type
          type: string
      required:
        - loc
        - msg
        - type
      title: ValidationError
      type: object

````