One API call per operation: how Elastic Cloud Hosted makes fleet-scale deployment management practical

Elastic Cloud Hosted adds five targeted APIs for upgrade, tier scaling, user settings, tags and snapshot repository linking, each replacing a multi-step deployment plan edit with a single focused call.

Implement powerful and modern search experiences with Elastic Cloud Hosted. Sign up to get instant access.

Five new Elastic Cloud Hosted APIs replace a painful pattern: fetching a full deployment plan, editing topology elements by hand, and resubmitting the whole thing just to change one tier or bump a version. Upgrade, scale, configure, tag and share snapshot repositories, each with a single targeted API call. The same validators apply, and every operation is available in the Elastic Cloud Console too. If you run more than a handful of deployments, this is the fleet operations surface you've been waiting for.

Here's what's new.

How to upgrade an Elastic Cloud Hosted deployment via API

Upgrade API: POST /deployments/{id}/upgrade

Upgrading an Elastic Stack version across all resources in a deployment used to require you to construct and submit a full deployment plan update. Now, you can upgrade every resource in a deployment (Elasticsearch, Kibana, and all other components) to a target Elastic Stack version with one API call.

This pays off most when you operate many deployments and want to roll a new Elastic Stack version across your fleet quickly.

How to resize Elasticsearch tiers in Elastic Cloud Hosted

Scale API: GET / PATCH /deployments/{id}/elasticsearch/{ref_id}/tiers

The tiers API lets you resize any Elasticsearch tier (hot, warm, cold, frozen, master, coordinating or ML) with a single PATCH request scoped only to the tiers you want to change.Send a body keyed by tier ID. Anything you don't mention stays exactly as it was, so you can change one tier in isolation without touching the others.

A few things to know:

  • Valid tier IDs are hot_content, warm, cold, frozen, master, coordinating, and ml. Invalid keys are rejected with the list of tiers you can use.
  • memory_size and zone_count are each optional per tier. Include only the one you want to change; the other stays untouched.
  • Dedicated master handling is automatic. Include master with memory_size and zone_count greater than zero, and the endpoint flips the hot_content tier out of the master-eligible role so your new dedicated masters take over. Include master with memory_size set to zero, and the hot_content tier resumes acting as master-eligible. No separate flag to manage.
  • Same validation as the full plan API. The modified plan runs through the existing validators, so size-vs-instance-configuration mismatches, zone-count limits, and topology rules are enforced consistently.

For teams automating tier-level scaling based on ingest load, rebalancing zones before a maintenance window, or promoting a deployment to dedicated masters as it grows, this collapses what used to be a multistep plan edit into a single targeted request.

How to update elasticsearch.yml settings in Elastic Cloud Hosted

User Settings API: GET and PUT /deployments/{id}/{resource_kind}/{ref_id}/user_settings

User-defined settings on a running deployment (elasticsearch.yml-style overrides, Kibana settings, APM config) now have their own endpoints. Read or update them directly with a focused JSON request, scoped to a single resource.

The endpoints cover Elasticsearch, Kibana, Elastic APM, App Search, Enterprise Search, and Integrations Server. Same endpoint shape across all of them; only the {resource_kind} path segment changes.

Read the current settings for a resource:

Update them with a JSON body containing only the keys you want set:

A few things to know:

  • JSON in, JSON out. A JSON contract that's easy to template, diff, and check into source control.
  • Existing YAML is auto-migrated. Any tier-level user settings you currently have in YAML are converted to JSON the first time you PUT, so existing deployments work without a manual rewrite or a one-time migration step.
  • Allowlist and denylist rules still apply. Settings the platform doesn't permit are rejected with the same validation the full plan API runs.
  • Asynchronous. The action is acknowledged immediately and applied in the background, consistent with the other targeted endpoints in this release.
  • Non-breaking. The full PUT /deployments/{id} endpoint continues to work; this is an additive surface, not a replacement.

For teams that tune settings as part of a release, sweep a configuration change across a fleet, or want to manage cluster overrides as code, this is a single targeted PUT per deployment.

How to manage deployment tags in Elastic Cloud Hosted

Tags API: GET and PUT /deployments/{id}/tags

Deployment tags attach metadata (environment, owner, cost center, application) to deployments for filtering, reporting, and policy. The Tags API gives you a GET for the current tags and a PUT to replace them, both in one targeted call.

PUT replaces all tags on the deployment. Validation enforces up to 64 tags per deployment, keys up to 32 characters, and values up to 128 characters, with explicit 400 errors on violations. Authorization follows the same model as the deployment update endpoint.

Snapshot repository APIs: Full CRUD at /deployments/{id}/elasticsearch/{ref_id}/snapshot/repository, plus a new Elastic Cloud console workflow

A common operational pattern in ECH is needing one deployment to access snapshots from another: migration validation, populating a staging environment, or selectively restoring one tenant's indices across a fleet. Snapshot repository linking lets you do this without copying full snapshot data into a new deployment.

The capability creates a link between a source deployment's managed snapshot repository and a target deployment. The target can browse the source's snapshots and restore only what it actually needs; nothing is copied at link time. Cross-bucket credentials and the repository are wired up for you, given your user has an admin role over both deployments.

This works specifically and only for Elastic Cloud managed snapshot repositories, whose credentials are managed by Elastic Cloud.

You can manage these links in two ways: from the Elastic Cloud console UI for ad hoc, point-and-click work, or via the API for automation and infrastructure-as-code workflows.

For one-off restore drills, staging refreshes, or anytime you'd rather not script it, the Elastic Cloud console now provides a guided flow to link a source deployment's snapshot repository into a target deployment. Open the target deployment, go to the snapshot repository management screen, pick the source deployment from the list of deployments you have access to, and confirm. The console handles credentials and registration behind the scenes. No JSON, no keystore wrangling.

Once the link is in place, the same screen lists all linked deployments:

Removing a link is equally direct: Pick the linked repository, and unlink it. The source deployment is unaffected; only the read-only link from the target is torn down.

Manage repositories linking via the API

The snapshot repository linking operations (create, list, delete) are also available as API endpoints for automation and infrastructure-as-code workflows.

The endpoint is idempotent. A retry after a partial failure picks up where the previous attempt left off, so you don't end up with half-configured links. The work runs asynchronously: You get an immediate acknowledgment, and the Elastic Cloud control plane handles the rest (fetching the source repository configuration, injecting credentials into the target cluster's keystore, and registering the read-only repository in Elasticsearch). The linking proceeds, provided the caller has the right permissions on both deployments.

List linked snapshot repositories

Each entry in the response includes a repository_name field with the actual name of the repository as registered in Elasticsearch (for example, _clone_abcd1234). You don't need to derive it from internal ID conventions; take the name straight from the response, and use it anywhere you'd reference a repository in the Elasticsearch snapshot and restore APIs.

DELETE takes the repository_name directly (the same value returned from GET above). That keeps the API symmetric and avoids looking up the source deployment by ID when you're tearing a link down.

A typical lifecycle:

This is particularly useful for multi-environment workflows where a staging deployment reads from production snapshots, tenants-per-cluster setups that need selective restores, or multitenanted restore processes that require a specific index restore.

Choosing instance configurations per tier in Elastic Cloud Hosted

Instance configuration customization: Elastic Cloud console UI

Elastic Cloud Hosted now lets you pick an instance configuration per data tier (hot, warm, cold, frozen) directly from the Elastic Cloud Console.

Match deployment hardware to a specific workload by picking an instance configuration per data tier (hot, warm, cold, frozen):

  1. Navigate to your deployment's overview page, and click Edit on the hardware profile.
  2. In the hardware profile flyout, select the instance configuration that best fits each data tier's workload.
  3. Review the changes, and click Update. A confirmation dialog shows exactly what will change before you apply.

Whether you need more storage density on your warm tier, higher compute on hot for search-intensive workloads, or want to move to a newer machine type in your region, you can now make that change from the console instead of crafting API requests. If your selection aligns with an existing hardware profile, that profile is automatically applied. Otherwise, the deployment is labeled custom, and any combination supported by your region is allowed.

The API continues to support instance configuration changes for both data tiers and stateless resources (Kibana, machine learning [ML] nodes, master nodes) for automation use cases.

Full documentation for instance configuration customization is available in the Elastic Docs.

Elastic Cloud Hosted API reference: upgrade, scale, configure, tag, snapshot

These endpoints, plus the new Elastic Cloud console workflows, give ECH a verb-shaped surface for fleet operations: upgrade, scale, set, tag, share, customize. One call per operation, the same validators as the full deployment plan, available from API and Terraform. That's what makes fleet-scale automation practical.

APIEndpointWhat it does
UpgradePOST /deployments/{id}/upgradeUpgrades all resources to a target Elastic Stack version
TiersPATCH /deployments/{id}/elasticsearch/{ref_id}/tiersResizes one or more tiers without touching others
User settingsPUT /deployments/{id}/{resource_kind}/{ref_id}/user_settingsReads/updates elasticsearch.yml and Kibana settings
TagsPUT /deployments/{id}/tagsReads/replaces deployment tags
Snapshot repositoryPOST/GET/DELETE /deployments/{id}/elasticsearch/{ref_id}/snapshot/repositoryLinks, lists, and removes snapshot repository links

Get started:

Perguntas frequentes

How do I upgrade an Elastic Cloud Hosted deployment to a new Elastic Stack version?

Use POST /deployments/{id}/upgrade with a target_version field in the request body. This upgrades all resources in the deployment (Elasticsearch, Kibana and other components) in a single API call, without constructing a full deployment plan.

Can I resize one Elasticsearch tier without changing others in Elastic Cloud Hosted?

Yes. The PATCH /deployments/{id}/elasticsearch/{ref_id}/tiers endpoint accepts a body keyed by tier ID. Only the tiers you include are modified; all other tiers remain unchanged. Valid tier IDs are hot_content, warm, cold, frozen, master, coordinating, and ml.

How do I update elasticsearch.yml settings on a running Elastic Cloud Hosted deployment?

Use PUT /deployments/{id}/elasticsearch/{ref_id}/user_settings with a JSON body containing only the keys you want to set. Existing settings not included in the body are preserved. Any YAML settings currently on the deployment are automatically migrated to JSON on the first PUT.

How do I restore indices from one Elastic Cloud Hosted deployment into another?

Use the snapshot repository linking API: POST /deployments/{target_id}/elasticsearch/{ref_id}/snapshot/repository with the source deployment ID. This creates a read-only link to the source deployment's managed snapshot repository. The target can then browse and selectively restore snapshots without copying snapshot data at link time.

What are the limits on deployment tags in Elastic Cloud Hosted?

Each deployment supports up to 64 tags. Tag keys can be up to 32 characters and values up to 128 characters. The Tags API (GET and PUT /deployments/{id}/tags) returns an explicit 400 error if any limit is exceeded.

Do the new Elastic Cloud Hosted targeted APIs bypass deployment plan validation?

No. All five new endpoints run through the same validators as the full PUT /deployments/{id} deployment plan API. Size-to-instance-configuration mismatches, zone-count limits, and topology rules are enforced consistently regardless of which endpoint you use.

Can I manage Elastic Cloud Hosted deployments with Terraform using these new APIs?

Yes. The Elastic Cloud Terraform provider wraps these APIs for declarative deployment management, including upgrade, tier scaling, user settings, tags and snapshot repository linking. The targeted endpoints are additive; existing Terraform configurations using the full deployment plan endpoint continue to work.

Quão útil foi este conteúdo?

Não útil

Um pouco útil

Muito útil

Conteúdo relacionado

Pronto para criar buscas de última geração?

Uma pesquisa suficientemente avançada não se consegue apenas com o esforço de uma só pessoa. O Elasticsearch é impulsionado por cientistas de dados, especialistas em operações de aprendizado de máquina, engenheiros e muitos outros que são tão apaixonados por buscas quanto você. Vamos nos conectar e trabalhar juntos para construir a experiência de busca mágica que lhe trará os resultados desejados.

Experimente você mesmo(a)