[Yandex Cloud documentation](../../../index.md) > [Yandex API Gateway](../../index.md) > [Concepts](../index.md) > [Trigger](index.md) > Trigger for Object Storage

# Trigger for Object Storage that sends messages to WebSocket connections

A [trigger](index.md) for Object Storage sends messages to [WebSocket connections](../extensions/websocket.md) when a specific event occurs with an Object Storage [object](../../../storage/concepts/object.md). The trigger must be in the same cloud as the bucket whose events it is subscribed to.

A trigger for Object Storage requires a [service account](../../../iam/concepts/users/service-accounts.md) to send messages to WebSocket connections.

For more information about creating a trigger for Object Storage, see [Creating a trigger for Object Storage that sends messages to WebSocket connections](../../operations/trigger/os-trigger-create.md).

## Events for setting up a trigger {#event}

Events with bucket objects that can be tracked using a trigger:
- [Creating an object](../../../storage/operations/objects/upload.md).
- [Editing an object ACL](../../../storage/operations/objects/edit-acl.md).
- [Deleting an object](../../../storage/operations/objects/delete.md).

### Filtering events by object {#filter}

Events are filtered using prefixes and suffixes for an object [key](../../../storage/concepts/object.md#key).
* The prefix is a part at the beginning of the object key.
* The suffix is a part at the end of the object key.

Prefixes and suffixes can be of any length. When using a prefix and suffix at the same time, filtering is based on the logical `AND`: for the trigger to fire, the object key must match both the prefix and suffix.

## Event batching {#batching}

The grouping settings allow sending several events to WebSocket connections in one go. They set a top limit on event group size and on event group accumulation time. For example, if the event group size is 3, WebSocket connections can receive groups containing from 1 to 3 events.

## Roles required for the proper operation of a trigger for Object Storage {#roles}

- To create a trigger, you need a permission for the service account under which the trigger runs the operation. This permission comes with the [iam.serviceAccounts.user](../../../iam/security/index.md#iam-serviceAccounts-user) and [editor](../../../iam/roles-reference.md#editor) roles or higher.
- For the trigger to fire, the service account needs the `api-gateway.websocketBroadcaster` role for the folder containing the API gateway.

Read more about [access management](../../security/index.md).

## Object Storage trigger message format {#format}

After the trigger fires, it will send the following message to WebSocket connections:

```json
{
  "messages": [
    {
      "event_metadata": {
        "event_id": "bb1dd06d-a82c-49b4-af98-d8e0********",
        "event_type": "yandex.cloud.events.storage.ObjectDelete",
        "created_at": "2019-12-19T14:17:47.847365Z",
        "tracing_context": {
          "trace_id": "dd52ace7********",
          "span_id": "",
          "parent_span_id": ""
        },
        "cloud_id": "b1gvlrnlei4l********",
        "folder_id": "b1g88tflru0e********"
      },
      "details": {
        "bucket_id": "s3-for-trigger",
        "object_id": "dev/0_15a775_972dbde4_orig12.jpg"
      }
    }
  ]
}
```

## Useful links {#see-also}

* [Trigger for Object Storage that runs a Serverless Containers container](../../../serverless-containers/concepts/trigger/os-trigger.md)
* [Trigger for Object Storage that runs a Cloud Functions function](../../../functions/concepts/trigger/os-trigger.md)