> ## Documentation Index
> Fetch the complete documentation index at: https://docs.open-metadata.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Update an Alert

> Update an alert (event subscription) with JSON Patch or by sending the full definition again through the OpenMetadata REST API or Python SDK.

# Update an Alert

Update an alert in one of two ways:

* Send the full definition with `PUT /v1/events/subscriptions`. OpenMetadata matches on `name`, so a request with an existing name replaces the alert's configuration. This is the simplest option for managing alerts as code.
* Patch individual fields with JSON Patch.

## Update with JSON Patch

* By ID: `PATCH /v1/events/subscriptions/{id}`
* By name: `PATCH /v1/events/subscriptions/name/{name}`

Send a JSON Patch document and set the `Content-Type` header to `application/json-patch+json`.

<ParamField path="id" type="string" required>
  UUID of the alert.
</ParamField>

<RequestExample dropdown>
  ```bash PATCH /v1/events/subscriptions/{id} theme={null}
  # Disable an alert
  curl -X PATCH "https://your-company.open-metadata.org/api/v1/events/subscriptions/$ALERT_ID" \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json-patch+json" \
    -d '[{ "op": "replace", "path": "/enabled", "value": false }]'
  ```

  ```python PUT /v1/events/subscriptions theme={null}
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
  from metadata.generated.schema.entity.services.connections.metadata.openMetadataConnection import (
      OpenMetadataConnection,
  )
  from metadata.generated.schema.security.client.openMetadataJWTClientConfig import (
      OpenMetadataJWTClientConfig,
  )
  from metadata.generated.schema.events.api.createEventSubscription import (
      CreateEventSubscription,
  )
  from metadata.generated.schema.events.eventSubscription import (
      AlertType,
      Destination,
      SubscriptionCategory,
      SubscriptionType,
  )

  server_config = OpenMetadataConnection(
      hostPort="https://your-company.open-metadata.org/api",
      authProvider="openmetadata",
      securityConfig=OpenMetadataJWTClientConfig(jwtToken="<YOUR-JWT-TOKEN>"),
  )
  metadata = OpenMetadata(server_config)

  # Send the full definition again with the same name to update the alert
  request = CreateEventSubscription(
      name="dq-failed-tests-to-webhook",
      alertType=AlertType.Observability,
      resources=["testCase"],
      input={
          "filters": [
              {
                  "name": "filterByFqn",
                  "effect": "include",
                  "prefixCondition": "AND",
                  "arguments": [{"name": "fqnList", "input": ["svc.db.schema.orders"]}],
              }
          ],
          "actions": [
              {
                  "name": "GetTestCaseStatusUpdates",
                  "effect": "include",
                  "prefixCondition": "AND",
                  "arguments": [{"name": "testResultList", "input": ["Failed"]}],
              }
          ],
      },
      destinations=[
          Destination(
              category=SubscriptionCategory.External,
              type=SubscriptionType.Webhook,
              config={"endpoint": "https://hooks.example.com/openmetadata"},
          )
      ],
      enabled=False,
  )
  metadata.create_or_update(data=request)
  ```
</RequestExample>

## Notes

Keep these points in mind when you update an alert.

* **Delivery restart**: after an update, OpenMetadata restarts the alert's delivery process so the change takes effect for new events.
* **Changing filters or triggers**: to change `input` (filters and triggers) or `destinations`, send the full definition with `PUT`. This is more reliable than patching the nested `input` field, because OpenMetadata rebuilds the expanded conditions from the full request.
* **One source**: an alert always has exactly one `resources` value, whether you update it by sending the full definition or by patching.
* **Existing events**: an update doesn't replay past events.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.