---
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/4371/api/doc/cloud/operation/operation-update-deployment-es-resource-tier
resource: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/cloud/operation/operation-update-deployment-es-resource-tier
products:
  - Elastic Cloud Hosted
---

# Update Elasticsearch tiers

- Server: `https://api.elastic-cloud.com/api/v1`

## Paths

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

#### Path Parameters

- `deployment_id` (string)
  Identifier for the Deployment
- `ref_id` (string)
  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

`application/json`

A map of tier IDs to their desired configuration

- `hot_content` ({} TierConfig) — optional
  Desired configuration for an individual Elasticsearch tier
  - `memory_size` (integer) — optional
    The desired memory size in MB for this tier.
  - `zone_count` (integer) — optional
    The number of availability zones for this tier. If omitted, the current zone count is preserved.
- `warm` ({} TierConfig) — optional
  Desired configuration for an individual Elasticsearch tier
  - `memory_size` (integer) — optional
    The desired memory size in MB for this tier.
  - `zone_count` (integer) — optional
    The number of availability zones for this tier. If omitted, the current zone count is preserved.
- `cold` ({} TierConfig) — optional
  Desired configuration for an individual Elasticsearch tier
  - `memory_size` (integer) — optional
    The desired memory size in MB for this tier.
  - `zone_count` (integer) — optional
    The number of availability zones for this tier. If omitted, the current zone count is preserved.
- `frozen` ({} TierConfig) — optional
  Desired configuration for an individual Elasticsearch tier
  - `memory_size` (integer) — optional
    The desired memory size in MB for this tier.
  - `zone_count` (integer) — optional
    The number of availability zones for this tier. If omitted, the current zone count is preserved.
- `master` ({} TierConfig) — optional
  Desired configuration for an individual Elasticsearch tier
  - `memory_size` (integer) — optional
    The desired memory size in MB for this tier.
  - `zone_count` (integer) — optional
    The number of availability zones for this tier. If omitted, the current zone count is preserved.
- `coordinating` ({} TierConfig) — optional
  Desired configuration for an individual Elasticsearch tier
  - `memory_size` (integer) — optional
    The desired memory size in MB for this tier.
  - `zone_count` (integer) — optional
    The number of availability zones for this tier. If omitted, the current zone count is preserved.
- `ml` ({} TierConfig) — optional
  Desired configuration for an individual Elasticsearch tier
  - `memory_size` (integer) — optional
    The desired memory size in MB for this tier.
  - `zone_count` (integer) — 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` ([] DeploymentResource)
  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` ({} ClusterCredentials)
    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` ([] ReplyWarning)
    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` ({} Orphaned)
  Details about orphaned resources.
  - `elasticsearch` ([] OrphanedElasticsearch)
    List of orphaned Elasticsearch resources
    - `id` (string)
      The id of the orphaned resource
    - `dependents` ([] ElasticsearchDependant)
      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` ({} DeploymentDiagnostics)
  Describes the diagnostics for a given Deployment-modifying payload
  - `creates` ({} Creates)
    Holds diagnostics for resources that will be created
    - `elasticsearch` ([] Elasticsearch)
      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` ([] Kibana)
      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` ([] Apm)
      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` ([] IntegrationsServer)
      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` ([] AppSearch)
      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` ([] EnterpriseSearch)
      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` ({} Updates)
    Holds diagnostics for existing resources that might be updated
    - `elasticsearch` ([] Elasticsearch)
      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` ([] Kibana)
      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` ([] Apm)
      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` ([] IntegrationsServer)
      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` ([] AppSearch)
      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` ([] EnterpriseSearch)
      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` ({} DeploymentSettings)
  Additional configuration about the current deployment object.
  - `traffic_filter_settings` ({} TrafficFilterSettings)
    The configuration settings for the traffic filter.
    - `rulesets` ([] string)
      IDs of the traffic filter rulesets
  - `observability` ({} DeploymentObservabilitySettings)
    The observability settings for a deployment
    - `logging` ({} DeploymentLoggingSettings)
      The logging settings for a deployment
      - `destination` ({} ObservabilityAbsoluteDeployment)
        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` ({} DeploymentMetricsSettings)
      The metrics settings for a deployment
      - `destination` ({} ObservabilityAbsoluteDeployment)
        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.
  - `autoscaling_enabled` (boolean)
    If autoscaling is enabled for this deployment.
  - `auto_ops` ({} AutoOpsSettings)
    AutoOps settings for this deployment.
    - `status` (enum)
      See AutoOps integration status for this deployment.
      Values: `connected`, `not_connected`, `excluded`
  - `byok` ({} ByokSettings)
    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` ([] BasicFailedReplyElement)
  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` ([] BasicFailedReplyElement)
  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

#### Console

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

#### curl

```curl
curl -X PATCH "https://api.elastic-cloud.com/api/v1/deployments/{deployment_id}/elasticsearch/{ref_id}/tiers"
```

