# Update Deployment — Elastic Cloud

> Update an existing Elastic Cloud deployment, including resizing cluster capacity. Cluster resize is performed here by supplying updated resources sizing (no separate resize action exists). Run List Deployments first to find the deployment…

- Key: `elastic_cloud-update-deployment`
- Type: Action (Write)
- Version: 0.0.2
- App: Elastic Cloud (`elastic_cloud`) — https://pipedream.com/apps/elastic-cloud.md
- This page (HTML): https://pipedream.com/apps/elastic-cloud/actions/update-deployment
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/elastic_cloud/actions/update-deployment/update-deployment.mjs

## Description

Update an existing Elastic Cloud deployment, including resizing cluster capacity. Cluster resize is performed here by supplying updated `resources` sizing (no separate resize action exists). Run **List Deployments** first to find the deployment ID. [See the documentation](https://www.elastic.co/docs/api/doc/cloud/operation/operation-update-deployment)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `deploymentId` | `string` | Yes | The ID of the deployment (e.g. abc123def456). Run the List Deployments action first to obtain valid deployment IDs. |
| `resources` | `string` | No | JSON object describing the updated resource topology; used for general updates and for cluster resizing. Example (resize to 4096 MB memory across 2 zones): {"elasticsearch":[{"region":"gcp-us-central1","plan":{"cluster_topology":[{"size":{"value":4096,"resource":"memory"},"zone_count":2}]}}]}. Note: region and version live inside each resource sub-object, not at the top level of the update body. |
| `name` | `string` | No | Optional new human-readable name for the deployment. |
| `pruneOrphans` | `boolean` | No | Whether to shut down deployment resources that are not referenced in this update request. Resources are tracked by their ref_id. Set to true only when the resources you supply are the complete, authoritative definition of the deployment — anything omitted (e.g. an existing Kibana or APM resource) is shut down, though it can be restored from its latest snapshot afterwards. Defaults to false, which leaves omitted resources intact and is the safe choice for partial updates. |
| `metadata` | `string` | No | JSON object of deployment metadata. Example: {"tags":[{"key":"env","value":"prod"}]} |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "elastic_cloud",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "elastic_cloud-update-deployment",
  arguments: {
    deploymentId: "Deployment ID",
    resources: "Resources",
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "elastic_cloud-update-deployment",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    elastic_cloud: { authProvisionId: "apn_xxxxxxx" },
    deploymentId: "Deployment ID",
    resources: "Resources",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "elastic_cloud-update-deployment",
    "configured_props": {
      "elastic_cloud": { "authProvisionId": "apn_xxxxxxx" },
      "deploymentId": "Deployment ID",
      "resources": "Resources"
    }
  }'
```

---

- App: https://pipedream.com/apps/elastic-cloud.md · All apps: https://pipedream.com/apps
