# Update Traffic Filter Ruleset — Elastic Cloud

> Update an existing traffic filter ruleset in Elastic Cloud. The underlying API replaces the whole ruleset, so this action first reads the current ruleset and merges your changes over it — supply only the fields you want to change. The…

- Key: `elastic_cloud-update-traffic-filter`
- 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-traffic-filter
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/elastic_cloud/actions/update-traffic-filter/update-traffic-filter.mjs

## Description

Update an existing traffic filter ruleset in Elastic Cloud. The underlying API replaces the whole ruleset, so this action first reads the current ruleset and merges your changes over it — supply only the fields you want to change. The ruleset's `type` and `region` are immutable after creation and are carried over automatically. Run **List Traffic Filter Rulesets** first to find the ruleset ID. [See the documentation](https://www.elastic.co/docs/api/doc/cloud/operation/operation-update-traffic-filter-ruleset)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `rulesetId` | `string` | Yes | The ID of the traffic filter ruleset (e.g. tf-ruleset-001). Run the List Traffic Filter Rulesets action first to obtain valid ruleset IDs. |
| `name` | `string` | No | Updated human-readable name for the ruleset. |
| `description` | `string` | No | Updated description of the ruleset. |
| `includeByDefault` | `boolean` | No | Whether to apply this ruleset to all new deployments by default. |
| `rules` | `string` | No | Optional JSON array of rule objects that replaces every rule currently in the ruleset — include the existing rules you want to keep. Omit this prop to leave the current rules untouched. Example: [{"source":"1.2.3.4/32"}] |

## 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-traffic-filter",
  arguments: {
    rulesetId: "Ruleset ID",
    name: "Name",
  },
})
```

**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-traffic-filter",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    elastic_cloud: { authProvisionId: "apn_xxxxxxx" },
    rulesetId: "Ruleset ID",
    name: "Name",
  },
})

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-traffic-filter",
    "configured_props": {
      "elastic_cloud": { "authProvisionId": "apn_xxxxxxx" },
      "rulesetId": "Ruleset ID",
      "name": "Name"
    }
  }'
```

---

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