---
title: "Upsert Sink"
method: PUT
path: "/api/v1/stream/{stream_id}/sink/{sink_id}"
tags: ["Sink"]
---

# Upsert Sink

`PUT /api/v1/stream/{stream_id}/sink/{sink_id}`

Create or update a sink.

## Path parameters

- `stream_id` string, required — The Stream's ID or UID.
- `sink_id` string, required — The StreamSink's ID or UID.

## Request body

- union
  - object
    - `uid` string, nullable — An optional unique identifier for the sink.
    - `status` 'enabled' | 'disabled'
    - `batchSize` integer — How many events will be batched in a request to the Sink.
    - `maxWaitSecs` integer — How long to wait before a batch of events is sent, if the `batchSize` is not reached. For example, with a `batchSize` of 100 and `maxWaitSecs` of 10, we will send a request after 10 seconds or 100 events, whichever comes first. Note that we will never send an empty batch of events to the Sink.
    - `eventTypes` string[] — A list of event types that filter which events are dispatched to the Sink. An empty list (or null) will not filter out any events.
    - `metadata` object
    - `type` 'poller', required
  - object
    - `uid` string, nullable — An optional unique identifier for the sink.
    - `status` 'enabled' | 'disabled'
    - `batchSize` integer — How many events will be batched in a request to the Sink.
    - `maxWaitSecs` integer — How long to wait before a batch of events is sent, if the `batchSize` is not reached. For example, with a `batchSize` of 100 and `maxWaitSecs` of 10, we will send a request after 10 seconds or 100 events, whichever comes first. Note that we will never send an empty batch of events to the Sink.
    - `eventTypes` string[] — A list of event types that filter which events are dispatched to the Sink. An empty list (or null) will not filter out any events.
    - `metadata` object
    - `type` 'azureBlobStorage', required
    - `config` AzureBlobStorageConfig, required
      - `container` string, required
      - `account` string, required
      - `accessKey` string, required
  - object
    - `uid` string, nullable — An optional unique identifier for the sink.
    - `status` 'enabled' | 'disabled'
    - `batchSize` integer — How many events will be batched in a request to the Sink.
    - `maxWaitSecs` integer — How long to wait before a batch of events is sent, if the `batchSize` is not reached. For example, with a `batchSize` of 100 and `maxWaitSecs` of 10, we will send a request after 10 seconds or 100 events, whichever comes first. Note that we will never send an empty batch of events to the Sink.
    - `eventTypes` string[] — A list of event types that filter which events are dispatched to the Sink. An empty list (or null) will not filter out any events.
    - `metadata` object
    - `type` 'otelTracing', required
    - `config` SinkOtelV1Config, required
      - `url` string, uri, required
      - `headers` object
  - object
    - `uid` string, nullable — An optional unique identifier for the sink.
    - `status` 'enabled' | 'disabled'
    - `batchSize` integer — How many events will be batched in a request to the Sink.
    - `maxWaitSecs` integer — How long to wait before a batch of events is sent, if the `batchSize` is not reached. For example, with a `batchSize` of 100 and `maxWaitSecs` of 10, we will send a request after 10 seconds or 100 events, whichever comes first. Note that we will never send an empty batch of events to the Sink.
    - `eventTypes` string[] — A list of event types that filter which events are dispatched to the Sink. An empty list (or null) will not filter out any events.
    - `metadata` object
    - `type` 'http', required
    - `config` SinkHttpConfig, required
      - `url` string, uri, required
      - `headers` object
      - `key` string, nullable
  - object
    - `uid` string, nullable — An optional unique identifier for the sink.
    - `status` 'enabled' | 'disabled'
    - `batchSize` integer — How many events will be batched in a request to the Sink.
    - `maxWaitSecs` integer — How long to wait before a batch of events is sent, if the `batchSize` is not reached. For example, with a `batchSize` of 100 and `maxWaitSecs` of 10, we will send a request after 10 seconds or 100 events, whichever comes first. Note that we will never send an empty batch of events to the Sink.
    - `eventTypes` string[] — A list of event types that filter which events are dispatched to the Sink. An empty list (or null) will not filter out any events.
    - `metadata` object
    - `type` 'amazonS3', required
    - `config` S3Config, required
      - `bucket` string, required
      - `accessKeyId` string, required
      - `secretAccessKey` string, required
      - `region` string, required
      - `endpointUrl` string, uri, nullable
  - object
    - `uid` string, nullable — An optional unique identifier for the sink.
    - `status` 'enabled' | 'disabled'
    - `batchSize` integer — How many events will be batched in a request to the Sink.
    - `maxWaitSecs` integer — How long to wait before a batch of events is sent, if the `batchSize` is not reached. For example, with a `batchSize` of 100 and `maxWaitSecs` of 10, we will send a request after 10 seconds or 100 events, whichever comes first. Note that we will never send an empty batch of events to the Sink.
    - `eventTypes` string[] — A list of event types that filter which events are dispatched to the Sink. An empty list (or null) will not filter out any events.
    - `metadata` object
    - `type` 'googleCloudStorage', required
    - `config` GoogleCloudStorageConfig, required — Configuration for a Google Cloud Storage sink. Write stream events into the named bucket using the supplied Google Cloud credentials.
      - `bucket` string, required
      - `credentials` string, required — Google Cloud Credentials JSON Object as a string.
  - object
    - `uid` string, nullable — An optional unique identifier for the sink.
    - `status` 'enabled' | 'disabled'
    - `batchSize` integer — How many events will be batched in a request to the Sink.
    - `maxWaitSecs` integer — How long to wait before a batch of events is sent, if the `batchSize` is not reached. For example, with a `batchSize` of 100 and `maxWaitSecs` of 10, we will send a request after 10 seconds or 100 events, whichever comes first. Note that we will never send an empty batch of events to the Sink.
    - `eventTypes` string[] — A list of event types that filter which events are dispatched to the Sink. An empty list (or null) will not filter out any events.
    - `metadata` object
    - `type` 'googleCloudPubSub', required
    - `config` GoogleCloudPubSubConfig, required
      - `projectId` string, required
      - `topicId` string, required
      - `credentials` string, required — Google Cloud Credentials JSON Object as a string.
  - object
    - `uid` string, nullable — An optional unique identifier for the sink.
    - `status` 'enabled' | 'disabled'
    - `batchSize` integer — How many events will be batched in a request to the Sink.
    - `maxWaitSecs` integer — How long to wait before a batch of events is sent, if the `batchSize` is not reached. For example, with a `batchSize` of 100 and `maxWaitSecs` of 10, we will send a request after 10 seconds or 100 events, whichever comes first. Note that we will never send an empty batch of events to the Sink.
    - `eventTypes` string[] — A list of event types that filter which events are dispatched to the Sink. An empty list (or null) will not filter out any events.
    - `metadata` object
    - `type` 'sqs', required
    - `config` SqsConfig, required — Configuration for an SQS sink.
      - `queueUrl` string, uri, required
      - `region` string, required
      - `accessKeyId` string, required
      - `secretAccessKey` string, required
      - `endpointUrl` string, uri, nullable
  - object
    - `uid` string, nullable — An optional unique identifier for the sink.
    - `status` 'enabled' | 'disabled'
    - `batchSize` integer — How many events will be batched in a request to the Sink.
    - `maxWaitSecs` integer — How long to wait before a batch of events is sent, if the `batchSize` is not reached. For example, with a `batchSize` of 100 and `maxWaitSecs` of 10, we will send a request after 10 seconds or 100 events, whichever comes first. Note that we will never send an empty batch of events to the Sink.
    - `eventTypes` string[] — A list of event types that filter which events are dispatched to the Sink. An empty list (or null) will not filter out any events.
    - `metadata` object
    - `type` 'sns', required
    - `config` SnsConfig, required — Configuration for a SNS sink.
      - `topicArn` string, required
      - `region` string, required
      - `accessKeyId` string, required
      - `secretAccessKey` string, required
      - `endpointUrl` string, uri, nullable
  - object
    - `uid` string, nullable — An optional unique identifier for the sink.
    - `status` 'enabled' | 'disabled'
    - `batchSize` integer — How many events will be batched in a request to the Sink.
    - `maxWaitSecs` integer — How long to wait before a batch of events is sent, if the `batchSize` is not reached. For example, with a `batchSize` of 100 and `maxWaitSecs` of 10, we will send a request after 10 seconds or 100 events, whichever comes first. Note that we will never send an empty batch of events to the Sink.
    - `eventTypes` string[] — A list of event types that filter which events are dispatched to the Sink. An empty list (or null) will not filter out any events.
    - `metadata` object
    - `type` 'bigQuery', required
    - `config` BigQueryConfig, required — Configuration for a Google Cloud BigQuery sink.
      - `projectId` string, required
      - `datasetId` string, required
      - `tableId` string, required
      - `credentials` string, required — Google Cloud Credentials JSON Object as a string.
  - object
    - `uid` string, nullable — An optional unique identifier for the sink.
    - `status` 'enabled' | 'disabled'
    - `batchSize` integer — How many events will be batched in a request to the Sink.
    - `maxWaitSecs` integer — How long to wait before a batch of events is sent, if the `batchSize` is not reached. For example, with a `batchSize` of 100 and `maxWaitSecs` of 10, we will send a request after 10 seconds or 100 events, whichever comes first. Note that we will never send an empty batch of events to the Sink.
    - `eventTypes` string[] — A list of event types that filter which events are dispatched to the Sink. An empty list (or null) will not filter out any events.
    - `metadata` object
    - `type` 'clickhouse', required
    - `config` ClickhouseConfig, required
      - `url` string, uri, required — The HTTP URL of the ClickHouse server (e.g. `https://my_clickhouse:8443`).
      - `username` string, required — Username to access Clickhouse
      - `password` string, required — Password to access Clickhouse
      - `database` string — The Clickhouse database to connect to
      - `tableName` string, required — The Clickhouse table to write to
  - object
    - `uid` string, nullable — An optional unique identifier for the sink.
    - `status` 'enabled' | 'disabled'
    - `batchSize` integer — How many events will be batched in a request to the Sink.
    - `maxWaitSecs` integer — How long to wait before a batch of events is sent, if the `batchSize` is not reached. For example, with a `batchSize` of 100 and `maxWaitSecs` of 10, we will send a request after 10 seconds or 100 events, whichever comes first. Note that we will never send an empty batch of events to the Sink.
    - `eventTypes` string[] — A list of event types that filter which events are dispatched to the Sink. An empty list (or null) will not filter out any events.
    - `metadata` object
    - `type` 'eventBridge', required
    - `config` EventBridgeConfig, required
      - `eventBusName` string, required — The name or ARN of the event bus to receive the event
      - `detailType` string — Free-form string, with a maximum of 128 characters
      - `accessKeyId` string, required
      - `secretAccessKey` string, required
      - `region` string, required
  - object
    - `uid` string, nullable — An optional unique identifier for the sink.
    - `status` 'enabled' | 'disabled'
    - `batchSize` integer — How many events will be batched in a request to the Sink.
    - `maxWaitSecs` integer — How long to wait before a batch of events is sent, if the `batchSize` is not reached. For example, with a `batchSize` of 100 and `maxWaitSecs` of 10, we will send a request after 10 seconds or 100 events, whichever comes first. Note that we will never send an empty batch of events to the Sink.
    - `eventTypes` string[] — A list of event types that filter which events are dispatched to the Sink. An empty list (or null) will not filter out any events.
    - `metadata` object
    - `type` 'snowflake', required
    - `config` SnowflakeConfig, required — Configuration parameters for defining a Snowflake sink.
      - `privateKey` string, required — PEM-encoded private key used for signing token-based requests to the Snowflake API. Beginning/end delimiters are not required.
      - `accountIdentifier` string, required — Snowflake account identifier, which includes both the organization and account IDs separated by a hyphen.
      - `userId` string, required — The Snowflake user id.
      - `dbName` string — Database name. Only required if not using transformations.
      - `schemaName` string — Schema name. Only required if not using transformations.
      - `tableName` string — Table name. Only required if not using transformations.
  - object
    - `uid` string, nullable — An optional unique identifier for the sink.
    - `status` 'enabled' | 'disabled'
    - `batchSize` integer — How many events will be batched in a request to the Sink.
    - `maxWaitSecs` integer — How long to wait before a batch of events is sent, if the `batchSize` is not reached. For example, with a `batchSize` of 100 and `maxWaitSecs` of 10, we will send a request after 10 seconds or 100 events, whichever comes first. Note that we will never send an empty batch of events to the Sink.
    - `eventTypes` string[] — A list of event types that filter which events are dispatched to the Sink. An empty list (or null) will not filter out any events.
    - `metadata` object
    - `type` 'rabbitMq', required
    - `config` RabbitMqConfig, required — Configuration for a RabbitMq sink.
      - `uri` string, required
      - `routingKey` string, required
  - object
    - `uid` string, nullable — An optional unique identifier for the sink.
    - `status` 'enabled' | 'disabled'
    - `batchSize` integer — How many events will be batched in a request to the Sink.
    - `maxWaitSecs` integer — How long to wait before a batch of events is sent, if the `batchSize` is not reached. For example, with a `batchSize` of 100 and `maxWaitSecs` of 10, we will send a request after 10 seconds or 100 events, whichever comes first. Note that we will never send an empty batch of events to the Sink.
    - `eventTypes` string[] — A list of event types that filter which events are dispatched to the Sink. An empty list (or null) will not filter out any events.
    - `metadata` object
    - `type` 'redshift', required
    - `config` RedshiftConfig, required — Configuration parameters for defining a Redshift sink. For provisioned clusters, set `cluster_identifier` and `db_user`. For Redshift Serverless, set `workgroup_name`.
      - `accessKeyId` string, required
      - `secretAccessKey` string, required
      - `region` string, required
      - `clusterIdentifier` string, nullable — Required for provisioned clusters.
      - `dbUser` string, nullable — Required for provisioned clusters.
      - `workgroupName` string, nullable — Required for Redshift Serverless.
      - `dbName` string — Database name. Only required if not using transformations.
      - `schemaName` string, nullable — Schema name. Only used if not using transformations.
      - `tableName` string — Table name. Only required if not using transformations.

## Response `200`

- union
  - object
    - `id` string, required — The sink's ID.
    - `uid` string, nullable — The sink's UID.
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `currentIterator` string, required
    - `failureReason` string, nullable
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `batchSize` integer, required
    - `maxWaitSecs` integer, required
    - `eventTypes` string[]
    - `nextRetryAt` string, date-time, nullable
    - `metadata` object, required
    - `type` 'poller', required
  - object
    - `id` string, required — The sink's ID.
    - `uid` string, nullable — The sink's UID.
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `currentIterator` string, required
    - `failureReason` string, nullable
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `batchSize` integer, required
    - `maxWaitSecs` integer, required
    - `eventTypes` string[]
    - `nextRetryAt` string, date-time, nullable
    - `metadata` object, required
    - `type` 'azureBlobStorage', required
    - `config` AzureBlobStorageConfig, required
      - `container` string, required
      - `account` string, required
      - `accessKey` string, required
  - object
    - `id` string, required — The sink's ID.
    - `uid` string, nullable — The sink's UID.
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `currentIterator` string, required
    - `failureReason` string, nullable
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `batchSize` integer, required
    - `maxWaitSecs` integer, required
    - `eventTypes` string[]
    - `nextRetryAt` string, date-time, nullable
    - `metadata` object, required
    - `type` 'otelTracing', required
    - `config` SinkOtelV1Config, required
      - `url` string, uri, required
      - `headers` object
  - object
    - `id` string, required — The sink's ID.
    - `uid` string, nullable — The sink's UID.
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `currentIterator` string, required
    - `failureReason` string, nullable
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `batchSize` integer, required
    - `maxWaitSecs` integer, required
    - `eventTypes` string[]
    - `nextRetryAt` string, date-time, nullable
    - `metadata` object, required
    - `type` 'http', required
    - `config` SinkHttpConfig, required
      - `url` string, uri, required
      - `headers` object
      - `key` string, nullable
  - object
    - `id` string, required — The sink's ID.
    - `uid` string, nullable — The sink's UID.
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `currentIterator` string, required
    - `failureReason` string, nullable
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `batchSize` integer, required
    - `maxWaitSecs` integer, required
    - `eventTypes` string[]
    - `nextRetryAt` string, date-time, nullable
    - `metadata` object, required
    - `type` 'amazonS3', required
    - `config` S3Config, required
      - `bucket` string, required
      - `accessKeyId` string, required
      - `secretAccessKey` string, required
      - `region` string, required
      - `endpointUrl` string, uri, nullable
  - object
    - `id` string, required — The sink's ID.
    - `uid` string, nullable — The sink's UID.
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `currentIterator` string, required
    - `failureReason` string, nullable
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `batchSize` integer, required
    - `maxWaitSecs` integer, required
    - `eventTypes` string[]
    - `nextRetryAt` string, date-time, nullable
    - `metadata` object, required
    - `type` 'googleCloudStorage', required
    - `config` GoogleCloudStorageConfig, required — Configuration for a Google Cloud Storage sink. Write stream events into the named bucket using the supplied Google Cloud credentials.
      - `bucket` string, required
      - `credentials` string, required — Google Cloud Credentials JSON Object as a string.
  - object
    - `id` string, required — The sink's ID.
    - `uid` string, nullable — The sink's UID.
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `currentIterator` string, required
    - `failureReason` string, nullable
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `batchSize` integer, required
    - `maxWaitSecs` integer, required
    - `eventTypes` string[]
    - `nextRetryAt` string, date-time, nullable
    - `metadata` object, required
    - `type` 'googleCloudPubSub', required
    - `config` GoogleCloudPubSubConfig, required
      - `projectId` string, required
      - `topicId` string, required
      - `credentials` string, required — Google Cloud Credentials JSON Object as a string.
  - object
    - `id` string, required — The sink's ID.
    - `uid` string, nullable — The sink's UID.
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `currentIterator` string, required
    - `failureReason` string, nullable
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `batchSize` integer, required
    - `maxWaitSecs` integer, required
    - `eventTypes` string[]
    - `nextRetryAt` string, date-time, nullable
    - `metadata` object, required
    - `type` 'sqs', required
    - `config` SqsConfig, required — Configuration for an SQS sink.
      - `queueUrl` string, uri, required
      - `region` string, required
      - `accessKeyId` string, required
      - `secretAccessKey` string, required
      - `endpointUrl` string, uri, nullable
  - object
    - `id` string, required — The sink's ID.
    - `uid` string, nullable — The sink's UID.
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `currentIterator` string, required
    - `failureReason` string, nullable
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `batchSize` integer, required
    - `maxWaitSecs` integer, required
    - `eventTypes` string[]
    - `nextRetryAt` string, date-time, nullable
    - `metadata` object, required
    - `type` 'sns', required
    - `config` SnsConfig, required — Configuration for a SNS sink.
      - `topicArn` string, required
      - `region` string, required
      - `accessKeyId` string, required
      - `secretAccessKey` string, required
      - `endpointUrl` string, uri, nullable
  - object
    - `id` string, required — The sink's ID.
    - `uid` string, nullable — The sink's UID.
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `currentIterator` string, required
    - `failureReason` string, nullable
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `batchSize` integer, required
    - `maxWaitSecs` integer, required
    - `eventTypes` string[]
    - `nextRetryAt` string, date-time, nullable
    - `metadata` object, required
    - `type` 'bigQuery', required
    - `config` BigQueryConfig, required — Configuration for a Google Cloud BigQuery sink.
      - `projectId` string, required
      - `datasetId` string, required
      - `tableId` string, required
      - `credentials` string, required — Google Cloud Credentials JSON Object as a string.
  - object
    - `id` string, required — The sink's ID.
    - `uid` string, nullable — The sink's UID.
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `currentIterator` string, required
    - `failureReason` string, nullable
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `batchSize` integer, required
    - `maxWaitSecs` integer, required
    - `eventTypes` string[]
    - `nextRetryAt` string, date-time, nullable
    - `metadata` object, required
    - `type` 'clickhouse', required
    - `config` ClickhouseConfig, required
      - `url` string, uri, required — The HTTP URL of the ClickHouse server (e.g. `https://my_clickhouse:8443`).
      - `username` string, required — Username to access Clickhouse
      - `password` string, required — Password to access Clickhouse
      - `database` string — The Clickhouse database to connect to
      - `tableName` string, required — The Clickhouse table to write to
  - object
    - `id` string, required — The sink's ID.
    - `uid` string, nullable — The sink's UID.
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `currentIterator` string, required
    - `failureReason` string, nullable
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `batchSize` integer, required
    - `maxWaitSecs` integer, required
    - `eventTypes` string[]
    - `nextRetryAt` string, date-time, nullable
    - `metadata` object, required
    - `type` 'eventBridge', required
    - `config` EventBridgeConfig, required
      - `eventBusName` string, required — The name or ARN of the event bus to receive the event
      - `detailType` string — Free-form string, with a maximum of 128 characters
      - `accessKeyId` string, required
      - `secretAccessKey` string, required
      - `region` string, required
  - object
    - `id` string, required — The sink's ID.
    - `uid` string, nullable — The sink's UID.
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `currentIterator` string, required
    - `failureReason` string, nullable
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `batchSize` integer, required
    - `maxWaitSecs` integer, required
    - `eventTypes` string[]
    - `nextRetryAt` string, date-time, nullable
    - `metadata` object, required
    - `type` 'snowflake', required
    - `config` SnowflakeConfig, required — Configuration parameters for defining a Snowflake sink.
      - `privateKey` string, required — PEM-encoded private key used for signing token-based requests to the Snowflake API. Beginning/end delimiters are not required.
      - `accountIdentifier` string, required — Snowflake account identifier, which includes both the organization and account IDs separated by a hyphen.
      - `userId` string, required — The Snowflake user id.
      - `dbName` string — Database name. Only required if not using transformations.
      - `schemaName` string — Schema name. Only required if not using transformations.
      - `tableName` string — Table name. Only required if not using transformations.
  - object
    - `id` string, required — The sink's ID.
    - `uid` string, nullable — The sink's UID.
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `currentIterator` string, required
    - `failureReason` string, nullable
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `batchSize` integer, required
    - `maxWaitSecs` integer, required
    - `eventTypes` string[]
    - `nextRetryAt` string, date-time, nullable
    - `metadata` object, required
    - `type` 'rabbitMq', required
    - `config` RabbitMqConfig, required — Configuration for a RabbitMq sink.
      - `uri` string, required
      - `routingKey` string, required
  - object
    - `id` string, required — The sink's ID.
    - `uid` string, nullable — The sink's UID.
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `currentIterator` string, required
    - `failureReason` string, nullable
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `batchSize` integer, required
    - `maxWaitSecs` integer, required
    - `eventTypes` string[]
    - `nextRetryAt` string, date-time, nullable
    - `metadata` object, required
    - `type` 'redshift', required
    - `config` RedshiftConfig, required — Configuration parameters for defining a Redshift sink. For provisioned clusters, set `cluster_identifier` and `db_user`. For Redshift Serverless, set `workgroup_name`.
      - `accessKeyId` string, required
      - `secretAccessKey` string, required
      - `region` string, required
      - `clusterIdentifier` string, nullable — Required for provisioned clusters.
      - `dbUser` string, nullable — Required for provisioned clusters.
      - `workgroupName` string, nullable — Required for Redshift Serverless.
      - `dbName` string — Database name. Only required if not using transformations.
      - `schemaName` string, nullable — Schema name. Only used if not using transformations.
      - `tableName` string — Table name. Only required if not using transformations.

## Other responses

- `201`
- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `409` — Conflict
- `422` — Validation Error
- `429` — Too Many Requests

---

[API](https://skmtc.net/svix/apis/svix-api.md) · [All operations](https://skmtc.net/svix/apis/svix-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/svix/svix-api/versions/16dbcc056c48/schema)
