---
type: api
title: Update Elasticsearch tiers
description: Updates the size and/or zone count of one or more Elasticsearch topology elements (tiers) within a Deployment.
url: https://www.elastic.co/elastic/docs-builder/docs/4641/api/doc/cloud-enterprise/v4/operation/operation-update-deployment-es-resource-tier
resource: https://www.elastic.co/elastic/docs-builder/docs/4641/api/doc/cloud-enterprise/v4/operation/operation-update-deployment-es-resource-tier
products:
  - Elastic Cloud Enterprise
---

# Update Elasticsearch tiers

Authentication: required

## Paths

- `PATCH` `/deployments/{deployment_id}/elasticsearch/{ref_id}/tiers`

#### Path parameters

- `deployment_id` (string) — required
  Identifier for the Deployment
- `ref_id` (string) — required
  User-specified RefId for the Resource (or '_main' if there is only one)

## Description

Updates the size and/or zone count of one or more Elasticsearch topology elements (tiers) within a Deployment.

## Request body

A map of tier IDs to their desired configuration

`application/json`

- `hot_content` (object) — optional
  Desired configuration for an individual Elasticsearch tier
  - `memory_size` (integer · format: int32) — optional
    The desired memory size in MB for this tier.
  - `zone_count` (integer · format: int32) — optional
    The number of availability zones for this tier. If omitted, the current zone count is preserved.
- `warm` (object) — optional
  Desired configuration for an individual Elasticsearch tier
  - `memory_size` (integer · format: int32) — optional
    The desired memory size in MB for this tier.
  - `zone_count` (integer · format: int32) — optional
    The number of availability zones for this tier. If omitted, the current zone count is preserved.
- `cold` (object) — optional
  Desired configuration for an individual Elasticsearch tier
  - `memory_size` (integer · format: int32) — optional
    The desired memory size in MB for this tier.
  - `zone_count` (integer · format: int32) — optional
    The number of availability zones for this tier. If omitted, the current zone count is preserved.
- `frozen` (object) — optional
  Desired configuration for an individual Elasticsearch tier
  - `memory_size` (integer · format: int32) — optional
    The desired memory size in MB for this tier.
  - `zone_count` (integer · format: int32) — optional
    The number of availability zones for this tier. If omitted, the current zone count is preserved.
- `master` (object) — optional
  Desired configuration for an individual Elasticsearch tier
  - `memory_size` (integer · format: int32) — optional
    The desired memory size in MB for this tier.
  - `zone_count` (integer · format: int32) — optional
    The number of availability zones for this tier. If omitted, the current zone count is preserved.
- `coordinating` (object) — optional
  Desired configuration for an individual Elasticsearch tier
  - `memory_size` (integer · format: int32) — optional
    The desired memory size in MB for this tier.
  - `zone_count` (integer · format: int32) — optional
    The number of availability zones for this tier. If omitted, the current zone count is preserved.
- `ml` (object) — optional
  Desired configuration for an individual Elasticsearch tier
  - `memory_size` (integer · format: int32) — optional
    The desired memory size in MB for this tier.
  - `zone_count` (integer · format: int32) — optional
    The number of availability zones for this tier. If omitted, the current zone count is preserved.

## Responses

#### `202`

The tier configuration was updated and a plan change was initiated.

`application/json`

- `id` (string)
  The id of the deployment
- `name` (string)
  The name of the deployment
- `alias` (string)
  A user-defined alias to use in place of ResourceIds for user-friendly resource URLs
- `resources` (object[])
  List of resources that are part of the deployment after the update operation.
  - `ref_id` (string)
    A locally-unique friendly alias for this Elasticsearch cluster
  - `elasticsearch_cluster_ref_id` (string)
    The Elasticsearch cluster that this resource depends on.
  - `id` (string)
    A system-unique id for the created resource
  - `kind` (string)
    The kind of resource
  - `region` (string)
    Identifier of the region in which this resource runs.
  - `cloud_id` (string)
    An encoded string that provides other Elastic services with the necessary information to connect to this Elasticsearch and Kibana
  - `credentials` (object)
    The username and password for the new Elasticsearch cluster, which is returned from the Elasticsearch cluster `create` command.
    - `username` (string)
      The username of the newly created cluster
    - `password` (string)
      The password of the newly created cluster
  - `secret_token` (string)
    Secret token for using a created resource. Only provided on initial create and absent otherwise.
  - `warnings` (object[])
    List of warnings generated from validating resource updates
    - `code` (string)
      A structured code representing the error type that occurred
    - `message` (string)
      A human readable message describing the warning that occurred
- `shutdown_resources` (object)
  Details about orphaned resources.
  - `elasticsearch` (object[])
    List of orphaned Elasticsearch resources
    - `id` (string)
      The id of the orphaned resource
    - `dependents` (object[])
      List of orphaned dependent resources
      - `id` (string)
        The id of the orphaned resource
      - `kind` (string)
        The kind of resource
  - `kibana` (string[])
    List of orphaned Kibana resource ids
  - `apm` (string[])
    List of orphaned APM resource ids
  - `appsearch` (string[])
    List of orphaned AppSearch resource ids
  - `enterprise_search` (string[])
    List of orphaned Enterprise Search resource ids
  - `integrations_server` (string[])
    List of orphaned Integrations Server resource ids
- `diagnostics` (object)
  Describes the diagnostics for a given Deployment-modifying payload
  - `creates` (object)
    Holds diagnostics for resources that will be created
    - `elasticsearch` (object[])
      Diagnostics for Elasticsearch clusters
      - `ref_id` (string)
        A locally-unique user-specified id
      - `display_name` (string)
        The human readable name for the cluster (defaults to the generated cluster id if not specified)
      - `backend_plan` (object)
        The backend plan as JSON
    - `kibana` (object[])
      Diagnostics for Kibanas
      - `ref_id` (string)
        A locally-unique user-specified id
      - `display_name` (string)
        The human readable name (defaults to the generated cluster id if not specified)
      - `elasticsearch_cluster_ref_id` (string)
        The user-specified id of the Elasticsearch Cluster that this will link to
      - `backend_plan` (object)
        The backend plan as JSON
    - `apm` (object[])
      Diagnostics for APMs
      - `ref_id` (string)
        A locally-unique user-specified id
      - `display_name` (string)
        The human readable name (defaults to the generated cluster id if not specified)
      - `elasticsearch_cluster_ref_id` (string)
        The user-specified id of the Elasticsearch Cluster that this will link to
      - `backend_plan` (object)
        The backend plan as JSON
    - `integrations_server` (object[])
      Diagnostics for Integrations Server
      - `ref_id` (string)
        A locally-unique user-specified id
      - `display_name` (string)
        The human readable name (defaults to the generated cluster id if not specified)
      - `elasticsearch_cluster_ref_id` (string)
        The user-specified id of the Elasticsearch Cluster that this will link to
      - `backend_plan` (object)
        The backend plan as JSON
    - `appsearch` (object[])
      Diagnostics for AppSearches
      - `ref_id` (string)
        A locally-unique user-specified id
      - `display_name` (string)
        The human readable name (defaults to the generated cluster id if not specified)
      - `elasticsearch_cluster_ref_id` (string)
        The user-specified id of the Elasticsearch Cluster that this will link to
      - `backend_plan` (object)
        The backend plan as JSON
    - `enterprise_search` (object[])
      Diagnostics for Enterprise Search resources
      - `ref_id` (string)
        A locally-unique user-specified id
      - `display_name` (string)
        The human readable name (defaults to the generated cluster id if not specified)
      - `elasticsearch_cluster_ref_id` (string)
        The user-specified id of the Elasticsearch Cluster that this will link to
      - `backend_plan` (object)
        The backend plan as JSON
  - `updates` (object)
    Holds diagnostics for existing resources that might be updated
    - `elasticsearch` (object[])
      Diagnostics for Elasticsearch clusters
      - `ref_id` (string)
        A locally-unique user-specified id
      - `display_name` (string)
        The human readable name for the cluster (defaults to the generated cluster id if not specified)
      - `backend_plan` (object)
        The backend plan as JSON
    - `kibana` (object[])
      Diagnostics for Kibanas
      - `ref_id` (string)
        A locally-unique user-specified id
      - `display_name` (string)
        The human readable name (defaults to the generated cluster id if not specified)
      - `elasticsearch_cluster_ref_id` (string)
        The user-specified id of the Elasticsearch Cluster that this will link to
      - `backend_plan` (object)
        The backend plan as JSON
    - `apm` (object[])
      Diagnostics for APMs
      - `ref_id` (string)
        A locally-unique user-specified id
      - `display_name` (string)
        The human readable name (defaults to the generated cluster id if not specified)
      - `elasticsearch_cluster_ref_id` (string)
        The user-specified id of the Elasticsearch Cluster that this will link to
      - `backend_plan` (object)
        The backend plan as JSON
    - `integrations_server` (object[])
      Diagnostics for Integrations Server
      - `ref_id` (string)
        A locally-unique user-specified id
      - `display_name` (string)
        The human readable name (defaults to the generated cluster id if not specified)
      - `elasticsearch_cluster_ref_id` (string)
        The user-specified id of the Elasticsearch Cluster that this will link to
      - `backend_plan` (object)
        The backend plan as JSON
    - `appsearch` (object[])
      Diagnostics for AppSearches
      - `ref_id` (string)
        A locally-unique user-specified id
      - `display_name` (string)
        The human readable name (defaults to the generated cluster id if not specified)
      - `elasticsearch_cluster_ref_id` (string)
        The user-specified id of the Elasticsearch Cluster that this will link to
      - `backend_plan` (object)
        The backend plan as JSON
    - `enterprise_search` (object[])
      Diagnostics for Enterprise Search resources
      - `ref_id` (string)
        A locally-unique user-specified id
      - `display_name` (string)
        The human readable name (defaults to the generated cluster id if not specified)
      - `elasticsearch_cluster_ref_id` (string)
        The user-specified id of the Elasticsearch Cluster that this will link to
      - `backend_plan` (object)
        The backend plan as JSON
- `settings` (object)
  Additional configuration about the current deployment object.
  - `traffic_filter_settings` (object)
    The configuration settings for the traffic filter.
    - `rulesets` (string[])
      IDs of the traffic filter rulesets
  - `observability` (object)
    The observability settings for a deployment
    - `logging` (object)
      The logging settings for a deployment
      - `destination` (object)
        The destination to send logs and metrics to
        - `deployment_id` (string)
          The deployment to send logs and/or metrics to. Contains either the deployment's ID or 'self'.
        - `ref_id` (string)
          RefId of the Elasticsearch cluster to send logs and/or metrics to. If not specified, refId is resolved automatically as long as the destination deployment contains a single Elasticsearch resource.
    - `metrics` (object)
      The metrics settings for a deployment
      - `destination` (object)
        The destination to send logs and metrics to
        - `deployment_id` (string)
          The deployment to send logs and/or metrics to. Contains either the deployment's ID or 'self'.
        - `ref_id` (string)
          RefId of the Elasticsearch cluster to send logs and/or metrics to. If not specified, refId is resolved automatically as long as the destination deployment contains a single Elasticsearch resource.
      - `force_legacy_monitoring` (boolean)
        Set to true to force the deployment to use legacy monitoring instead of Metricbeat-based monitoring. Only available for versions lower than 9.0.
  - `autoscaling_enabled` (boolean)
    If autoscaling is enabled for this deployment.
  - `auto_ops` (object)
    AutoOps settings for this deployment.
    - `status` (enum)
      See AutoOps integration status for this deployment.
      Values: `connected`, `not_connected`, `excluded`
  - `byok` (object)
    Information required to create a Bring Your Own Key (BYOK) deployment.
    - `key_resource_path` (string)
      Key path (i.e arn:aws:kms:us-east-1:1234567890:key/12345678-0000-0000-0000-000000000000).
  - `solution_type` (string)
    An optional string that declares the deployment's expected application. Example supported values are: elasticsearch, observability, security.
#### `404`

* The Deployment specified by {deployment_id} cannot be found. (code: `deployments.deployment_not_found`)
* The Resource specified by {ref_id} cannot be found. (code: `deployments.deployment_resource_not_found`)
* One or more tier IDs in the request body are not valid for this deployment. (code: `deployments.tier_not_found`)

`application/json`

- `errors` (object[])
  A list of errors that occurred in the failing request
  - `code` (string)
    A structured code representing the error type that occurred
  - `message` (string)
    A human readable message describing the error that occurred
  - `fields` (string[])
    If the error can be tied to a specific field or fields in the user request, this lists those fields
##### Response headers

- `x-cloud-error-codes` (enum)
  The error codes associated with the response

#### `500`

We have failed you. (code: `deployments.metadata_internal_error`)

`application/json`

- `errors` (object[])
  A list of errors that occurred in the failing request
  - `code` (string)
    A structured code representing the error type that occurred
  - `message` (string)
    A human readable message describing the error that occurred
  - `fields` (string[])
    If the error can be tied to a specific field or fields in the user request, this lists those fields
##### Response headers

- `x-cloud-error-codes` (enum)
  The error codes associated with the response

## Code examples

#### curl

```curl
curl -X PATCH "${API_URL}/deployments/${DEPLOYMENT_ID}/elasticsearch/${REF_ID}/tiers" \
  -u "${USERNAME}:${PASSWORD}" \
  -H "Content-Type: application/json" \
  -d '{}'
```

## Response examples

#### 202

`application/json`

Generated from the API spec. Values are representative. Unions use the first variant; deeply nested or large bodies may omit fields.

```json
{
  "id": "string",
  "name": "string",
  "alias": "string",
  "resources": [
    {
      "ref_id": "string",
      "elasticsearch_cluster_ref_id": "string",
      "id": "string",
      "kind": "string",
      "region": "string",
      "cloud_id": "string",
      "credentials": {
        "username": "string",
        "password": "string"
      },
      "secret_token": "string",
      "warnings": [
        {
          "code": "string",
          "message": "string"
        }
      ]
    }
  ],
  "shutdown_resources": {
    "elasticsearch": [
      {
        "id": "string",
        "dependents": [
          {
            "id": "string",
            "kind": "string"
          }
        ]
      }
    ],
    "kibana": [
      "string"
    ],
    "apm": [
      "string"
    ],
    "appsearch": [
      "string"
    ],
    "enterprise_search": [
      "string"
    ],
    "integrations_server": [
      "string"
    ]
  },
  "diagnostics": {
    "creates": {
      "elasticsearch": [
        {
          "ref_id": "string",
          "display_name": "string",
          "backend_plan": {}
        }
      ],
      "kibana": [
        {
          "ref_id": "string",
          "display_name": "string",
          "elasticsearch_cluster_ref_id": "string",
          "backend_plan": {}
        }
      ],
      "apm": [
        {
          "ref_id": "string",
          "display_name": "string",
          "elasticsearch_cluster_ref_id": "string",
          "backend_plan": {}
        }
      ],
      "integrations_server": [
        {
          "ref_id": "string",
          "display_name": "string",
          "elasticsearch_cluster_ref_id": "string",
          "backend_plan": {}
        }
      ],
      "appsearch": [
        {
          "ref_id": "string",
          "display_name": "string",
          "elasticsearch_cluster_ref_id": "string",
          "backend_plan": {}
        }
      ],
      "enterprise_search": [
        {
          "ref_id": "string",
          "display_name": "string",
          "elasticsearch_cluster_ref_id": "string",
          "backend_plan": {}
        }
      ]
    },
    "updates": {
      "elasticsearch": [
        {
          "ref_id": "string",
          "display_name": "string",
          "backend_plan": {}
        }
      ],
      "kibana": [
        {
          "ref_id": "string",
          "display_name": "string",
          "elasticsearch_cluster_ref_id": "string",
          "backend_plan": {}
        }
      ],
      "apm": [
        {
          "ref_id": "string",
          "display_name": "string",
          "elasticsearch_cluster_ref_id": "string",
          "backend_plan": {}
        }
      ],
      "integrations_server": [
        {
          "ref_id": "string",
          "display_name": "string",
          "elasticsearch_cluster_ref_id": "string",
          "backend_plan": {}
        }
      ],
      "appsearch": [
        {
          "ref_id": "string",
          "display_name": "string",
          "elasticsearch_cluster_ref_id": "string",
          "backend_plan": {}
        }
      ],
      "enterprise_search": [
        {
          "ref_id": "string",
          "display_name": "string",
          "elasticsearch_cluster_ref_id": "string",
          "backend_plan": {}
        }
      ]
    }
  },
  "settings": {
    "traffic_filter_settings": {
      "rulesets": [
        "string"
      ]
    },
    "observability": {
      "logging": {
        "destination": {
          "deployment_id": "string",
          "ref_id": "string"
        }
      },
      "metrics": {
        "destination": {
          "deployment_id": "string",
          "ref_id": "string"
        },
        "force_legacy_monitoring": false
      }
    },
    "autoscaling_enabled": false,
    "auto_ops": {
      "status": "connected"
    },
    "byok": {
      "key_resource_path": "string"
    },
    "solution_type": "string"
  }
}
```

#### 404

`application/json`

Generated from the API spec. Values are representative. Unions use the first variant; deeply nested or large bodies may omit fields.

```json
{
  "errors": [
    {
      "code": "string",
      "message": "string",
      "fields": [
        "string"
      ]
    }
  ]
}
```

#### 500

`application/json`

Generated from the API spec. Values are representative. Unions use the first variant; deeply nested or large bodies may omit fields.

```json
{
  "errors": [
    {
      "code": "string",
      "message": "string",
      "fields": [
        "string"
      ]
    }
  ]
}
```

