diff --git a/api/api.yaml b/api/api.yaml index 9ab7ed3..76d62a2 100644 --- a/api/api.yaml +++ b/api/api.yaml @@ -3018,33 +3018,37 @@ paths: description: The type of the destination. For `slack`, set `metadata.url` to a Slack incoming webhook URL. The warehouse and message-queue types (`clickhouse`, - `snowflake`, `bigquery`, `redshift`, `sqs`, `sns`, - `eventbridge`, `pubsub`, `rabbitmq`) are configured via the `metadata` + `snowflake`, `bigquery`, `redshift`, `sqs`, + `pubsub`, `rabbitmq`, `azureservicebus`, `kafka`) are configured via the `metadata` and `secrets` fields documented below. example: webhook - enum: [webhook, kinesis, s3, slack, clickhouse, snowflake, bigquery, redshift, sqs, sns, eventbridge, pubsub, rabbitmq] + enum: [webhook, kinesis, s3, slack, clickhouse, snowflake, bigquery, redshift, sqs, pubsub, rabbitmq, azureservicebus, kafka] secrets: type: object description: Secrets for the destination. properties: awsKeyId: type: string - description: The AWS access key ID for the Kinesis or S3 destination. + description: The AWS access key ID for the `kinesis`, `s3`, and `sqs` + destinations. Required for `sqs`. example: AKIAIOSFODNN7EXAMPLE x-go-type-skip-optional-pointer: true awsSecretKey: type: string - description: The AWS secret access key for the Kinesis or S3 destination. + description: The AWS secret access key for the `kinesis`, `s3`, and `sqs` + destinations. Required for `sqs`. example: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY x-go-type-skip-optional-pointer: true awsSessionToken: type: string - description: The AWS session token for the Kinesis or S3 destination. + description: The optional AWS session token for the `kinesis`, `s3`, and + `sqs` destinations. example: AQoEXAMPLEH4aoAH0gNCAPy... x-go-type-skip-optional-pointer: true password: type: string - description: The password for the `clickhouse` destination. + description: The password for the `clickhouse`, `rabbitmq`, and `kafka` + destinations. Required for `rabbitmq` and `kafka`. example: my-clickhouse-password x-go-type-skip-optional-pointer: true privateKey: @@ -3055,19 +3059,17 @@ paths: credentials: type: string description: The service-account credentials JSON for the `bigquery`, - `gcs`, and `pubsub` destinations. + `gcs`, and `pubsub` destinations. Required for `pubsub`. example: '{"type":"service_account", ...}' x-go-type-skip-optional-pointer: true accessKeyId: type: string - description: The AWS access key ID for the `redshift`, `sqs`, `sns`, - and `eventbridge` destinations. + description: The AWS access key ID for the `redshift` destination. example: AKIAIOSFODNN7EXAMPLE x-go-type-skip-optional-pointer: true secretAccessKey: type: string - description: The AWS secret access key for the `redshift`, `sqs`, `sns`, - and `eventbridge` destinations. + description: The AWS secret access key for the `redshift` destination. example: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY x-go-type-skip-optional-pointer: true accessKey: @@ -3075,10 +3077,17 @@ paths: description: The account access key for the `azureblob` destination. example: my-azure-access-key x-go-type-skip-optional-pointer: true - uri: + username: + type: string + description: The username for the `rabbitmq` and `kafka` destinations. + Required for both. + example: ampersand + x-go-type-skip-optional-pointer: true + connectionString: type: string - description: The connection URI (embeds credentials) for the `rabbitmq` destination. - example: amqp://user:pass@rabbit.example.com:5672 + description: The connection string for the `azureservicebus` destination. + Required for `azureservicebus`. + example: Endpoint=sb://my-namespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=... x-go-type-skip-optional-pointer: true metadata: type: object @@ -3102,12 +3111,14 @@ paths: x-go-type-skip-optional-pointer: true endpointUrl: type: string - description: The endpoint URL for the Kinesis stream. + description: The endpoint URL for the `kinesis` stream, or the optional + custom endpoint URL for the `sqs` destination. example: https://kinesis.us-east-1.amazonaws.com x-go-type-skip-optional-pointer: true partitionKeyTemplate: type: string - description: The template for the partition key to use when sending events to Kinesis (a JMESPath template) + description: The template for the partition key (a JMESPath template). + Used by `kinesis`, and optionally by `kafka`. example: "data.user_id" x-go-type-skip-optional-pointer: true bucket: @@ -3163,6 +3174,7 @@ paths: projectId: type: string description: The Google Cloud project ID (`bigquery`, `pubsub`). + Required for `pubsub`. example: my-gcp-project x-go-type-skip-optional-pointer: true datasetId: @@ -3203,32 +3215,57 @@ paths: queueUrl: type: string description: The SQS queue URL for the `sqs` destination. + Required for `sqs`. example: https://sqs.us-east-1.amazonaws.com/123456789012/my-queue x-go-type-skip-optional-pointer: true - topicArn: + topicId: type: string - description: The SNS topic ARN for the `sns` destination. - example: arn:aws:sns:us-east-1:123456789012:my-topic + description: The Pub/Sub topic ID for the `pubsub` destination. + Required for `pubsub`. + example: ampersand-events x-go-type-skip-optional-pointer: true - eventBusName: + serverUrl: type: string - description: The EventBridge event bus name for the `eventbridge` destination. - example: default + description: The AMQP server URL for the `rabbitmq` destination. + Required for `rabbitmq`. + example: amqp://rabbit.example.com:5672 x-go-type-skip-optional-pointer: true - detailType: + exchange: type: string - description: The EventBridge detail-type for published events (`eventbridge`). - example: ampersand.record + description: The exchange to publish to for the `rabbitmq` destination. + Required for `rabbitmq`. + example: ampersand.events x-go-type-skip-optional-pointer: true - topicId: + tls: + type: boolean + description: Whether to connect over TLS. Optional for the `rabbitmq` + and `kafka` destinations. + example: true + x-go-type-skip-optional-pointer: true + name: type: string - description: The Pub/Sub topic ID for the `pubsub` destination. + description: The queue or topic name for the `azureservicebus` destination. + Required for `azureservicebus`. example: ampersand-events x-go-type-skip-optional-pointer: true - routingKey: + brokers: type: string - description: The routing key for the `rabbitmq` destination. - example: ampersand.events + description: The comma-separated list of Kafka broker addresses for the + `kafka` destination. Required for `kafka`. + example: broker1.example.com:9092,broker2.example.com:9092 + x-go-type-skip-optional-pointer: true + topic: + type: string + description: The Kafka topic to publish to for the `kafka` destination. + Required for `kafka`. + example: ampersand-events + x-go-type-skip-optional-pointer: true + saslMechanism: + type: string + description: The SASL mechanism used to authenticate to Kafka for the + `kafka` destination. Required for `kafka`. + enum: [plain, scram-sha-256, scram-sha-512] + example: scram-sha-256 x-go-type-skip-optional-pointer: true batchSize: type: integer @@ -3410,11 +3447,14 @@ paths: - metadata.account - metadata.container - metadata.queueUrl - - metadata.topicArn - - metadata.eventBusName - - metadata.detailType - metadata.topicId - - metadata.routingKey + - metadata.serverUrl + - metadata.exchange + - metadata.tls + - metadata.name + - metadata.brokers + - metadata.topic + - metadata.saslMechanism - metadata.batchSize - metadata.maxWaitSecs - secrets.awsKeyId @@ -3426,7 +3466,8 @@ paths: - secrets.accessKeyId - secrets.secretAccessKey - secrets.accessKey - - secrets.uri + - secrets.username + - secrets.connectionString example: ["name", "metadata.url", "metadata.region", "metadata.streamName"] destination: @@ -3455,11 +3496,13 @@ paths: example: my-kinesis-stream endpointUrl: type: string - description: The endpoint URL for the Kinesis stream. + description: The endpoint URL for the `kinesis` stream, or the optional + custom endpoint URL for the `sqs` destination. example: https://kinesis.us-east-1.amazonaws.com partitionKeyTemplate: type: string - description: The template for the partition key to use when sending events to Kinesis (a JMESPath template) + description: The template for the partition key (a JMESPath template). + Used by `kinesis`, and optionally by `kafka`. example: "data.user_id" bucket: type: string @@ -3504,6 +3547,7 @@ paths: projectId: type: string description: The Google Cloud project ID (`bigquery`, `pubsub`). + Required for `pubsub`. example: my-gcp-project datasetId: type: string @@ -3536,27 +3580,49 @@ paths: queueUrl: type: string description: The SQS queue URL for the `sqs` destination. + Required for `sqs`. example: https://sqs.us-east-1.amazonaws.com/123456789012/my-queue - topicArn: - type: string - description: The SNS topic ARN for the `sns` destination. - example: arn:aws:sns:us-east-1:123456789012:my-topic - eventBusName: - type: string - description: The EventBridge event bus name for the `eventbridge` destination. - example: default - detailType: - type: string - description: The EventBridge detail-type for published events (`eventbridge`). - example: ampersand.record topicId: type: string description: The Pub/Sub topic ID for the `pubsub` destination. + Required for `pubsub`. example: ampersand-events - routingKey: + serverUrl: type: string - description: The routing key for the `rabbitmq` destination. + description: The AMQP server URL for the `rabbitmq` destination. + Required for `rabbitmq`. + example: amqp://rabbit.example.com:5672 + exchange: + type: string + description: The exchange to publish to for the `rabbitmq` destination. + Required for `rabbitmq`. example: ampersand.events + tls: + type: boolean + description: Whether to connect over TLS. Optional for the `rabbitmq` + and `kafka` destinations. + example: true + name: + type: string + description: The queue or topic name for the `azureservicebus` destination. + Required for `azureservicebus`. + example: ampersand-events + brokers: + type: string + description: The comma-separated list of Kafka broker addresses for the + `kafka` destination. Required for `kafka`. + example: broker1.example.com:9092,broker2.example.com:9092 + topic: + type: string + description: The Kafka topic to publish to for the `kafka` destination. + Required for `kafka`. + example: ampersand-events + saslMechanism: + type: string + description: The SASL mechanism used to authenticate to Kafka for the + `kafka` destination. Required for `kafka`. + enum: [plain, scram-sha-256, scram-sha-512] + example: scram-sha-256 batchSize: type: integer description: For warehouse destinations, rows to buffer before flushing a batch (default 1000). @@ -3571,19 +3637,23 @@ paths: properties: awsKeyId: type: string - description: The AWS access key ID for the Kinesis or S3 destination. + description: The AWS access key ID for the `kinesis`, `s3`, and `sqs` + destinations. Required for `sqs`. example: AKIAIOSFODNN7EXAMPLE awsSecretKey: type: string - description: The AWS secret access key for the Kinesis or S3 destination. + description: The AWS secret access key for the `kinesis`, `s3`, and `sqs` + destinations. Required for `sqs`. example: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY awsSessionToken: type: string - description: The AWS session token for the Kinesis or S3 destination. + description: The optional AWS session token for the `kinesis`, `s3`, and + `sqs` destinations. example: AQoEXAMPLEH4aoAH0gNCAPy... password: type: string - description: The password for the `clickhouse` destination. + description: The password for the `clickhouse`, `rabbitmq`, and `kafka` + destinations. Required for `rabbitmq` and `kafka`. example: my-clickhouse-password privateKey: type: string @@ -3591,24 +3661,30 @@ paths: example: "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----" credentials: type: string - description: The service-account credentials JSON for the `bigquery`, `gcs`, and `pubsub` destinations. + description: The service-account credentials JSON for the `bigquery`, `gcs`, and `pubsub` destinations. Required for `pubsub`. example: '{"type":"service_account", ...}' accessKeyId: type: string - description: The AWS access key ID for the `redshift`, `sqs`, `sns`, and `eventbridge` destinations. + description: The AWS access key ID for the `redshift` destination. example: AKIAIOSFODNN7EXAMPLE secretAccessKey: type: string - description: The AWS secret access key for the `redshift`, `sqs`, `sns`, and `eventbridge` destinations. + description: The AWS secret access key for the `redshift` destination. example: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY accessKey: type: string description: The account access key for the `azureblob` destination. example: my-azure-access-key - uri: + username: + type: string + description: The username for the `rabbitmq` and `kafka` destinations. + Required for both. + example: ampersand + connectionString: type: string - description: The connection URI (embeds credentials) for the `rabbitmq` destination. - example: amqp://user:pass@rabbit.example.com:5672 + description: The connection string for the `azureservicebus` destination. + Required for `azureservicebus`. + example: Endpoint=sb://my-namespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=... responses: 404: description: Destination not found @@ -5414,26 +5490,39 @@ components: type: string description: The SQS queue URL for the sqs destination example: https://sqs.us-east-1.amazonaws.com/123456789012/my-queue - topicArn: - type: string - description: The SNS topic ARN for the sns destination - example: arn:aws:sns:us-east-1:123456789012:my-topic - eventBusName: - type: string - description: The EventBridge event bus name for the eventbridge destination - example: default - detailType: - type: string - description: The EventBridge detail-type for published events (eventbridge) - example: ampersand.record topicId: type: string description: The Pub/Sub topic ID for the pubsub destination example: ampersand-events - routingKey: + serverUrl: + type: string + description: The AMQP server URL for the rabbitmq destination + example: amqp://rabbit.example.com:5672 + exchange: type: string - description: The routing key for the rabbitmq destination + description: The exchange to publish to for the rabbitmq destination example: ampersand.events + tls: + type: boolean + description: Whether to connect over TLS (rabbitmq, kafka) + example: true + name: + type: string + description: The queue or topic name for the azureservicebus destination + example: ampersand-events + brokers: + type: string + description: The comma-separated list of Kafka broker addresses for the kafka destination + example: broker1.example.com:9092,broker2.example.com:9092 + topic: + type: string + description: The Kafka topic to publish to for the kafka destination + example: ampersand-events + saslMechanism: + type: string + description: The SASL mechanism used to authenticate to Kafka for the kafka destination + enum: [plain, scram-sha-256, scram-sha-512] + example: scram-sha-256 batchSize: type: integer description: For warehouse destinations, rows to buffer before flushing a batch (default 1000) @@ -5570,26 +5659,39 @@ components: type: string description: The SQS queue URL for the sqs destination example: https://sqs.us-east-1.amazonaws.com/123456789012/my-queue - topicArn: - type: string - description: The SNS topic ARN for the sns destination - example: arn:aws:sns:us-east-1:123456789012:my-topic - eventBusName: - type: string - description: The EventBridge event bus name for the eventbridge destination - example: default - detailType: - type: string - description: The EventBridge detail-type for published events (eventbridge) - example: ampersand.record topicId: type: string description: The Pub/Sub topic ID for the pubsub destination example: ampersand-events - routingKey: + serverUrl: + type: string + description: The AMQP server URL for the rabbitmq destination + example: amqp://rabbit.example.com:5672 + exchange: type: string - description: The routing key for the rabbitmq destination + description: The exchange to publish to for the rabbitmq destination example: ampersand.events + tls: + type: boolean + description: Whether to connect over TLS (rabbitmq, kafka) + example: true + name: + type: string + description: The queue or topic name for the azureservicebus destination + example: ampersand-events + brokers: + type: string + description: The comma-separated list of Kafka broker addresses for the kafka destination + example: broker1.example.com:9092,broker2.example.com:9092 + topic: + type: string + description: The Kafka topic to publish to for the kafka destination + example: ampersand-events + saslMechanism: + type: string + description: The SASL mechanism used to authenticate to Kafka for the kafka destination + enum: [plain, scram-sha-256, scram-sha-512] + example: scram-sha-256 batchSize: type: integer description: For warehouse destinations, rows to buffer before flushing a batch (default 1000) diff --git a/api/generated/api.bundled.json b/api/generated/api.bundled.json index 0c4a7a4..c8514b0 100644 --- a/api/generated/api.bundled.json +++ b/api/generated/api.bundled.json @@ -4469,7 +4469,7 @@ }, "type": { "type": "string", - "description": "The type of the destination. For `slack`, set `metadata.url` to a Slack incoming webhook URL. The warehouse and message-queue types (`clickhouse`, `snowflake`, `bigquery`, `redshift`, `sqs`, `sns`, `eventbridge`, `pubsub`, `rabbitmq`) are configured via the `metadata` and `secrets` fields documented below.", + "description": "The type of the destination. For `slack`, set `metadata.url` to a Slack incoming webhook URL. The warehouse and message-queue types (`clickhouse`, `snowflake`, `bigquery`, `redshift`, `sqs`, `pubsub`, `rabbitmq`, `azureservicebus`, `kafka`) are configured via the `metadata` and `secrets` fields documented below.", "example": "webhook", "enum": [ "webhook", @@ -4481,10 +4481,10 @@ "bigquery", "redshift", "sqs", - "sns", - "eventbridge", "pubsub", - "rabbitmq" + "rabbitmq", + "azureservicebus", + "kafka" ] }, "secrets": { @@ -4493,25 +4493,25 @@ "properties": { "awsKeyId": { "type": "string", - "description": "The AWS access key ID for the Kinesis or S3 destination.", + "description": "The AWS access key ID for the `kinesis`, `s3`, and `sqs` destinations. Required for `sqs`.", "example": "AKIAIOSFODNN7EXAMPLE", "x-go-type-skip-optional-pointer": true }, "awsSecretKey": { "type": "string", - "description": "The AWS secret access key for the Kinesis or S3 destination.", + "description": "The AWS secret access key for the `kinesis`, `s3`, and `sqs` destinations. Required for `sqs`.", "example": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "x-go-type-skip-optional-pointer": true }, "awsSessionToken": { "type": "string", - "description": "The AWS session token for the Kinesis or S3 destination.", + "description": "The optional AWS session token for the `kinesis`, `s3`, and `sqs` destinations.", "example": "AQoEXAMPLEH4aoAH0gNCAPy...", "x-go-type-skip-optional-pointer": true }, "password": { "type": "string", - "description": "The password for the `clickhouse` destination.", + "description": "The password for the `clickhouse`, `rabbitmq`, and `kafka` destinations. Required for `rabbitmq` and `kafka`.", "example": "my-clickhouse-password", "x-go-type-skip-optional-pointer": true }, @@ -4523,19 +4523,19 @@ }, "credentials": { "type": "string", - "description": "The service-account credentials JSON for the `bigquery`, `gcs`, and `pubsub` destinations.", + "description": "The service-account credentials JSON for the `bigquery`, `gcs`, and `pubsub` destinations. Required for `pubsub`.", "example": "{\"type\":\"service_account\", ...}", "x-go-type-skip-optional-pointer": true }, "accessKeyId": { "type": "string", - "description": "The AWS access key ID for the `redshift`, `sqs`, `sns`, and `eventbridge` destinations.", + "description": "The AWS access key ID for the `redshift` destination.", "example": "AKIAIOSFODNN7EXAMPLE", "x-go-type-skip-optional-pointer": true }, "secretAccessKey": { "type": "string", - "description": "The AWS secret access key for the `redshift`, `sqs`, `sns`, and `eventbridge` destinations.", + "description": "The AWS secret access key for the `redshift` destination.", "example": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "x-go-type-skip-optional-pointer": true }, @@ -4545,10 +4545,16 @@ "example": "my-azure-access-key", "x-go-type-skip-optional-pointer": true }, - "uri": { + "username": { + "type": "string", + "description": "The username for the `rabbitmq` and `kafka` destinations. Required for both.", + "example": "ampersand", + "x-go-type-skip-optional-pointer": true + }, + "connectionString": { "type": "string", - "description": "The connection URI (embeds credentials) for the `rabbitmq` destination.", - "example": "amqp://user:pass@rabbit.example.com:5672", + "description": "The connection string for the `azureservicebus` destination. Required for `azureservicebus`.", + "example": "Endpoint=sb://my-namespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=...", "x-go-type-skip-optional-pointer": true } } @@ -4578,13 +4584,13 @@ }, "endpointUrl": { "type": "string", - "description": "The endpoint URL for the Kinesis stream.", + "description": "The endpoint URL for the `kinesis` stream, or the optional custom endpoint URL for the `sqs` destination.", "example": "https://kinesis.us-east-1.amazonaws.com", "x-go-type-skip-optional-pointer": true }, "partitionKeyTemplate": { "type": "string", - "description": "The template for the partition key to use when sending events to Kinesis (a JMESPath template)", + "description": "The template for the partition key (a JMESPath template). Used by `kinesis`, and optionally by `kafka`.", "example": "data.user_id", "x-go-type-skip-optional-pointer": true }, @@ -4650,7 +4656,7 @@ }, "projectId": { "type": "string", - "description": "The Google Cloud project ID (`bigquery`, `pubsub`).", + "description": "The Google Cloud project ID (`bigquery`, `pubsub`). Required for `pubsub`.", "example": "my-gcp-project", "x-go-type-skip-optional-pointer": true }, @@ -4698,38 +4704,61 @@ }, "queueUrl": { "type": "string", - "description": "The SQS queue URL for the `sqs` destination.", + "description": "The SQS queue URL for the `sqs` destination. Required for `sqs`.", "example": "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue", "x-go-type-skip-optional-pointer": true }, - "topicArn": { + "topicId": { "type": "string", - "description": "The SNS topic ARN for the `sns` destination.", - "example": "arn:aws:sns:us-east-1:123456789012:my-topic", + "description": "The Pub/Sub topic ID for the `pubsub` destination. Required for `pubsub`.", + "example": "ampersand-events", "x-go-type-skip-optional-pointer": true }, - "eventBusName": { + "serverUrl": { "type": "string", - "description": "The EventBridge event bus name for the `eventbridge` destination.", - "example": "default", + "description": "The AMQP server URL for the `rabbitmq` destination. Required for `rabbitmq`.", + "example": "amqp://rabbit.example.com:5672", "x-go-type-skip-optional-pointer": true }, - "detailType": { + "exchange": { "type": "string", - "description": "The EventBridge detail-type for published events (`eventbridge`).", - "example": "ampersand.record", + "description": "The exchange to publish to for the `rabbitmq` destination. Required for `rabbitmq`.", + "example": "ampersand.events", "x-go-type-skip-optional-pointer": true }, - "topicId": { + "tls": { + "type": "boolean", + "description": "Whether to connect over TLS. Optional for the `rabbitmq` and `kafka` destinations.", + "example": true, + "x-go-type-skip-optional-pointer": true + }, + "name": { "type": "string", - "description": "The Pub/Sub topic ID for the `pubsub` destination.", + "description": "The queue or topic name for the `azureservicebus` destination. Required for `azureservicebus`.", "example": "ampersand-events", "x-go-type-skip-optional-pointer": true }, - "routingKey": { + "brokers": { "type": "string", - "description": "The routing key for the `rabbitmq` destination.", - "example": "ampersand.events", + "description": "The comma-separated list of Kafka broker addresses for the `kafka` destination. Required for `kafka`.", + "example": "broker1.example.com:9092,broker2.example.com:9092", + "x-go-type-skip-optional-pointer": true + }, + "topic": { + "type": "string", + "description": "The Kafka topic to publish to for the `kafka` destination. Required for `kafka`.", + "example": "ampersand-events", + "x-go-type-skip-optional-pointer": true + }, + "saslMechanism": { + "type": "string", + "description": "The SASL mechanism used to authenticate to Kafka for the `kafka` destination. Required for `kafka`.", + "enum": [ + "plain", + "scram-sha-256", + "scram-sha-512" + ], + "example": "scram-sha-256", "x-go-type-skip-optional-pointer": true }, "batchSize": { @@ -4965,7 +4994,7 @@ "items": { "type": "string" }, - "description": "Array of field paths specifying which fields to update. Allowed values include:\n- name\n- metadata.url\n- metadata.headers\n- metadata.region\n- metadata.streamName\n- metadata.endpointUrl\n- metadata.partitionKeyTemplate\n- metadata.bucket\n- metadata.keyTemplate\n- metadata.storageClass\n- metadata.username\n- metadata.tableName\n- metadata.database\n- metadata.accountIdentifier\n- metadata.userId\n- metadata.dbName\n- metadata.schemaName\n- metadata.projectId\n- metadata.datasetId\n- metadata.tableId\n- metadata.workgroupName\n- metadata.clusterIdentifier\n- metadata.dbUser\n- metadata.account\n- metadata.container\n- metadata.queueUrl\n- metadata.topicArn\n- metadata.eventBusName\n- metadata.detailType\n- metadata.topicId\n- metadata.routingKey\n- metadata.batchSize\n- metadata.maxWaitSecs\n- secrets.awsKeyId\n- secrets.awsSecretKey\n- secrets.awsSessionToken\n- secrets.password\n- secrets.privateKey\n- secrets.credentials\n- secrets.accessKeyId\n- secrets.secretAccessKey\n- secrets.accessKey\n- secrets.uri\n", + "description": "Array of field paths specifying which fields to update. Allowed values include:\n- name\n- metadata.url\n- metadata.headers\n- metadata.region\n- metadata.streamName\n- metadata.endpointUrl\n- metadata.partitionKeyTemplate\n- metadata.bucket\n- metadata.keyTemplate\n- metadata.storageClass\n- metadata.username\n- metadata.tableName\n- metadata.database\n- metadata.accountIdentifier\n- metadata.userId\n- metadata.dbName\n- metadata.schemaName\n- metadata.projectId\n- metadata.datasetId\n- metadata.tableId\n- metadata.workgroupName\n- metadata.clusterIdentifier\n- metadata.dbUser\n- metadata.account\n- metadata.container\n- metadata.queueUrl\n- metadata.topicId\n- metadata.serverUrl\n- metadata.exchange\n- metadata.tls\n- metadata.name\n- metadata.brokers\n- metadata.topic\n- metadata.saslMechanism\n- metadata.batchSize\n- metadata.maxWaitSecs\n- secrets.awsKeyId\n- secrets.awsSecretKey\n- secrets.awsSessionToken\n- secrets.password\n- secrets.privateKey\n- secrets.credentials\n- secrets.accessKeyId\n- secrets.secretAccessKey\n- secrets.accessKey\n- secrets.username\n- secrets.connectionString\n", "example": [ "name", "metadata.url", @@ -5004,12 +5033,12 @@ }, "endpointUrl": { "type": "string", - "description": "The endpoint URL for the Kinesis stream.", + "description": "The endpoint URL for the `kinesis` stream, or the optional custom endpoint URL for the `sqs` destination.", "example": "https://kinesis.us-east-1.amazonaws.com" }, "partitionKeyTemplate": { "type": "string", - "description": "The template for the partition key to use when sending events to Kinesis (a JMESPath template)", + "description": "The template for the partition key (a JMESPath template). Used by `kinesis`, and optionally by `kafka`.", "example": "data.user_id" }, "bucket": { @@ -5064,7 +5093,7 @@ }, "projectId": { "type": "string", - "description": "The Google Cloud project ID (`bigquery`, `pubsub`).", + "description": "The Google Cloud project ID (`bigquery`, `pubsub`). Required for `pubsub`.", "example": "my-gcp-project" }, "datasetId": { @@ -5104,33 +5133,53 @@ }, "queueUrl": { "type": "string", - "description": "The SQS queue URL for the `sqs` destination.", + "description": "The SQS queue URL for the `sqs` destination. Required for `sqs`.", "example": "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue" }, - "topicArn": { + "topicId": { "type": "string", - "description": "The SNS topic ARN for the `sns` destination.", - "example": "arn:aws:sns:us-east-1:123456789012:my-topic" + "description": "The Pub/Sub topic ID for the `pubsub` destination. Required for `pubsub`.", + "example": "ampersand-events" }, - "eventBusName": { + "serverUrl": { "type": "string", - "description": "The EventBridge event bus name for the `eventbridge` destination.", - "example": "default" + "description": "The AMQP server URL for the `rabbitmq` destination. Required for `rabbitmq`.", + "example": "amqp://rabbit.example.com:5672" }, - "detailType": { + "exchange": { "type": "string", - "description": "The EventBridge detail-type for published events (`eventbridge`).", - "example": "ampersand.record" + "description": "The exchange to publish to for the `rabbitmq` destination. Required for `rabbitmq`.", + "example": "ampersand.events" }, - "topicId": { + "tls": { + "type": "boolean", + "description": "Whether to connect over TLS. Optional for the `rabbitmq` and `kafka` destinations.", + "example": true + }, + "name": { "type": "string", - "description": "The Pub/Sub topic ID for the `pubsub` destination.", + "description": "The queue or topic name for the `azureservicebus` destination. Required for `azureservicebus`.", "example": "ampersand-events" }, - "routingKey": { + "brokers": { "type": "string", - "description": "The routing key for the `rabbitmq` destination.", - "example": "ampersand.events" + "description": "The comma-separated list of Kafka broker addresses for the `kafka` destination. Required for `kafka`.", + "example": "broker1.example.com:9092,broker2.example.com:9092" + }, + "topic": { + "type": "string", + "description": "The Kafka topic to publish to for the `kafka` destination. Required for `kafka`.", + "example": "ampersand-events" + }, + "saslMechanism": { + "type": "string", + "description": "The SASL mechanism used to authenticate to Kafka for the `kafka` destination. Required for `kafka`.", + "enum": [ + "plain", + "scram-sha-256", + "scram-sha-512" + ], + "example": "scram-sha-256" }, "batchSize": { "type": "integer", @@ -5150,22 +5199,22 @@ "properties": { "awsKeyId": { "type": "string", - "description": "The AWS access key ID for the Kinesis or S3 destination.", + "description": "The AWS access key ID for the `kinesis`, `s3`, and `sqs` destinations. Required for `sqs`.", "example": "AKIAIOSFODNN7EXAMPLE" }, "awsSecretKey": { "type": "string", - "description": "The AWS secret access key for the Kinesis or S3 destination.", + "description": "The AWS secret access key for the `kinesis`, `s3`, and `sqs` destinations. Required for `sqs`.", "example": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" }, "awsSessionToken": { "type": "string", - "description": "The AWS session token for the Kinesis or S3 destination.", + "description": "The optional AWS session token for the `kinesis`, `s3`, and `sqs` destinations.", "example": "AQoEXAMPLEH4aoAH0gNCAPy..." }, "password": { "type": "string", - "description": "The password for the `clickhouse` destination.", + "description": "The password for the `clickhouse`, `rabbitmq`, and `kafka` destinations. Required for `rabbitmq` and `kafka`.", "example": "my-clickhouse-password" }, "privateKey": { @@ -5175,17 +5224,17 @@ }, "credentials": { "type": "string", - "description": "The service-account credentials JSON for the `bigquery`, `gcs`, and `pubsub` destinations.", + "description": "The service-account credentials JSON for the `bigquery`, `gcs`, and `pubsub` destinations. Required for `pubsub`.", "example": "{\"type\":\"service_account\", ...}" }, "accessKeyId": { "type": "string", - "description": "The AWS access key ID for the `redshift`, `sqs`, `sns`, and `eventbridge` destinations.", + "description": "The AWS access key ID for the `redshift` destination.", "example": "AKIAIOSFODNN7EXAMPLE" }, "secretAccessKey": { "type": "string", - "description": "The AWS secret access key for the `redshift`, `sqs`, `sns`, and `eventbridge` destinations.", + "description": "The AWS secret access key for the `redshift` destination.", "example": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" }, "accessKey": { @@ -5193,10 +5242,15 @@ "description": "The account access key for the `azureblob` destination.", "example": "my-azure-access-key" }, - "uri": { + "username": { + "type": "string", + "description": "The username for the `rabbitmq` and `kafka` destinations. Required for both.", + "example": "ampersand" + }, + "connectionString": { "type": "string", - "description": "The connection URI (embeds credentials) for the `rabbitmq` destination.", - "example": "amqp://user:pass@rabbit.example.com:5672" + "description": "The connection string for the `azureservicebus` destination. Required for `azureservicebus`.", + "example": "Endpoint=sb://my-namespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=..." } } } @@ -7988,30 +8042,50 @@ "description": "The SQS queue URL for the sqs destination", "example": "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue" }, - "topicArn": { + "topicId": { "type": "string", - "description": "The SNS topic ARN for the sns destination", - "example": "arn:aws:sns:us-east-1:123456789012:my-topic" + "description": "The Pub/Sub topic ID for the pubsub destination", + "example": "ampersand-events" }, - "eventBusName": { + "serverUrl": { "type": "string", - "description": "The EventBridge event bus name for the eventbridge destination", - "example": "default" + "description": "The AMQP server URL for the rabbitmq destination", + "example": "amqp://rabbit.example.com:5672" }, - "detailType": { + "exchange": { "type": "string", - "description": "The EventBridge detail-type for published events (eventbridge)", - "example": "ampersand.record" + "description": "The exchange to publish to for the rabbitmq destination", + "example": "ampersand.events" }, - "topicId": { + "tls": { + "type": "boolean", + "description": "Whether to connect over TLS (rabbitmq, kafka)", + "example": true + }, + "name": { "type": "string", - "description": "The Pub/Sub topic ID for the pubsub destination", + "description": "The queue or topic name for the azureservicebus destination", "example": "ampersand-events" }, - "routingKey": { + "brokers": { "type": "string", - "description": "The routing key for the rabbitmq destination", - "example": "ampersand.events" + "description": "The comma-separated list of Kafka broker addresses for the kafka destination", + "example": "broker1.example.com:9092,broker2.example.com:9092" + }, + "topic": { + "type": "string", + "description": "The Kafka topic to publish to for the kafka destination", + "example": "ampersand-events" + }, + "saslMechanism": { + "type": "string", + "description": "The SASL mechanism used to authenticate to Kafka for the kafka destination", + "enum": [ + "plain", + "scram-sha-256", + "scram-sha-512" + ], + "example": "scram-sha-256" }, "batchSize": { "type": "integer", @@ -8184,30 +8258,50 @@ "description": "The SQS queue URL for the sqs destination", "example": "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue" }, - "topicArn": { + "topicId": { "type": "string", - "description": "The SNS topic ARN for the sns destination", - "example": "arn:aws:sns:us-east-1:123456789012:my-topic" + "description": "The Pub/Sub topic ID for the pubsub destination", + "example": "ampersand-events" }, - "eventBusName": { + "serverUrl": { "type": "string", - "description": "The EventBridge event bus name for the eventbridge destination", - "example": "default" + "description": "The AMQP server URL for the rabbitmq destination", + "example": "amqp://rabbit.example.com:5672" }, - "detailType": { + "exchange": { "type": "string", - "description": "The EventBridge detail-type for published events (eventbridge)", - "example": "ampersand.record" + "description": "The exchange to publish to for the rabbitmq destination", + "example": "ampersand.events" }, - "topicId": { + "tls": { + "type": "boolean", + "description": "Whether to connect over TLS (rabbitmq, kafka)", + "example": true + }, + "name": { "type": "string", - "description": "The Pub/Sub topic ID for the pubsub destination", + "description": "The queue or topic name for the azureservicebus destination", "example": "ampersand-events" }, - "routingKey": { + "brokers": { "type": "string", - "description": "The routing key for the rabbitmq destination", - "example": "ampersand.events" + "description": "The comma-separated list of Kafka broker addresses for the kafka destination", + "example": "broker1.example.com:9092,broker2.example.com:9092" + }, + "topic": { + "type": "string", + "description": "The Kafka topic to publish to for the kafka destination", + "example": "ampersand-events" + }, + "saslMechanism": { + "type": "string", + "description": "The SASL mechanism used to authenticate to Kafka for the kafka destination", + "enum": [ + "plain", + "scram-sha-256", + "scram-sha-512" + ], + "example": "scram-sha-256" }, "batchSize": { "type": "integer", diff --git a/api/generated/api.json b/api/generated/api.json index af2336a..68dc12e 100644 --- a/api/generated/api.json +++ b/api/generated/api.json @@ -48971,7 +48971,7 @@ }, "type": { "type": "string", - "description": "The type of the destination. For `slack`, set `metadata.url` to a Slack incoming webhook URL. The warehouse and message-queue types (`clickhouse`, `snowflake`, `bigquery`, `redshift`, `sqs`, `sns`, `eventbridge`, `pubsub`, `rabbitmq`) are configured via the `metadata` and `secrets` fields documented below.", + "description": "The type of the destination. For `slack`, set `metadata.url` to a Slack incoming webhook URL. The warehouse and message-queue types (`clickhouse`, `snowflake`, `bigquery`, `redshift`, `sqs`, `pubsub`, `rabbitmq`, `azureservicebus`, `kafka`) are configured via the `metadata` and `secrets` fields documented below.", "example": "webhook", "enum": [ "webhook", @@ -48983,10 +48983,10 @@ "bigquery", "redshift", "sqs", - "sns", - "eventbridge", "pubsub", - "rabbitmq" + "rabbitmq", + "azureservicebus", + "kafka" ] }, "secrets": { @@ -48995,25 +48995,25 @@ "properties": { "awsKeyId": { "type": "string", - "description": "The AWS access key ID for the Kinesis or S3 destination.", + "description": "The AWS access key ID for the `kinesis`, `s3`, and `sqs` destinations. Required for `sqs`.", "example": "AKIAIOSFODNN7EXAMPLE", "x-go-type-skip-optional-pointer": true }, "awsSecretKey": { "type": "string", - "description": "The AWS secret access key for the Kinesis or S3 destination.", + "description": "The AWS secret access key for the `kinesis`, `s3`, and `sqs` destinations. Required for `sqs`.", "example": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "x-go-type-skip-optional-pointer": true }, "awsSessionToken": { "type": "string", - "description": "The AWS session token for the Kinesis or S3 destination.", + "description": "The optional AWS session token for the `kinesis`, `s3`, and `sqs` destinations.", "example": "AQoEXAMPLEH4aoAH0gNCAPy...", "x-go-type-skip-optional-pointer": true }, "password": { "type": "string", - "description": "The password for the `clickhouse` destination.", + "description": "The password for the `clickhouse`, `rabbitmq`, and `kafka` destinations. Required for `rabbitmq` and `kafka`.", "example": "my-clickhouse-password", "x-go-type-skip-optional-pointer": true }, @@ -49025,19 +49025,19 @@ }, "credentials": { "type": "string", - "description": "The service-account credentials JSON for the `bigquery`, `gcs`, and `pubsub` destinations.", + "description": "The service-account credentials JSON for the `bigquery`, `gcs`, and `pubsub` destinations. Required for `pubsub`.", "example": "{\"type\":\"service_account\", ...}", "x-go-type-skip-optional-pointer": true }, "accessKeyId": { "type": "string", - "description": "The AWS access key ID for the `redshift`, `sqs`, `sns`, and `eventbridge` destinations.", + "description": "The AWS access key ID for the `redshift` destination.", "example": "AKIAIOSFODNN7EXAMPLE", "x-go-type-skip-optional-pointer": true }, "secretAccessKey": { "type": "string", - "description": "The AWS secret access key for the `redshift`, `sqs`, `sns`, and `eventbridge` destinations.", + "description": "The AWS secret access key for the `redshift` destination.", "example": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "x-go-type-skip-optional-pointer": true }, @@ -49047,10 +49047,16 @@ "example": "my-azure-access-key", "x-go-type-skip-optional-pointer": true }, - "uri": { + "username": { + "type": "string", + "description": "The username for the `rabbitmq` and `kafka` destinations. Required for both.", + "example": "ampersand", + "x-go-type-skip-optional-pointer": true + }, + "connectionString": { "type": "string", - "description": "The connection URI (embeds credentials) for the `rabbitmq` destination.", - "example": "amqp://user:pass@rabbit.example.com:5672", + "description": "The connection string for the `azureservicebus` destination. Required for `azureservicebus`.", + "example": "Endpoint=sb://my-namespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=...", "x-go-type-skip-optional-pointer": true } } @@ -49090,13 +49096,13 @@ }, "endpointUrl": { "type": "string", - "description": "The endpoint URL for the Kinesis stream.", + "description": "The endpoint URL for the `kinesis` stream, or the optional custom endpoint URL for the `sqs` destination.", "example": "https://kinesis.us-east-1.amazonaws.com", "x-go-type-skip-optional-pointer": true }, "partitionKeyTemplate": { "type": "string", - "description": "The template for the partition key to use when sending events to Kinesis (a JMESPath template)", + "description": "The template for the partition key (a JMESPath template). Used by `kinesis`, and optionally by `kafka`.", "example": "data.user_id", "x-go-type-skip-optional-pointer": true }, @@ -49162,7 +49168,7 @@ }, "projectId": { "type": "string", - "description": "The Google Cloud project ID (`bigquery`, `pubsub`).", + "description": "The Google Cloud project ID (`bigquery`, `pubsub`). Required for `pubsub`.", "example": "my-gcp-project", "x-go-type-skip-optional-pointer": true }, @@ -49210,38 +49216,61 @@ }, "queueUrl": { "type": "string", - "description": "The SQS queue URL for the `sqs` destination.", + "description": "The SQS queue URL for the `sqs` destination. Required for `sqs`.", "example": "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue", "x-go-type-skip-optional-pointer": true }, - "topicArn": { + "topicId": { "type": "string", - "description": "The SNS topic ARN for the `sns` destination.", - "example": "arn:aws:sns:us-east-1:123456789012:my-topic", + "description": "The Pub/Sub topic ID for the `pubsub` destination. Required for `pubsub`.", + "example": "ampersand-events", "x-go-type-skip-optional-pointer": true }, - "eventBusName": { + "serverUrl": { "type": "string", - "description": "The EventBridge event bus name for the `eventbridge` destination.", - "example": "default", + "description": "The AMQP server URL for the `rabbitmq` destination. Required for `rabbitmq`.", + "example": "amqp://rabbit.example.com:5672", "x-go-type-skip-optional-pointer": true }, - "detailType": { + "exchange": { "type": "string", - "description": "The EventBridge detail-type for published events (`eventbridge`).", - "example": "ampersand.record", + "description": "The exchange to publish to for the `rabbitmq` destination. Required for `rabbitmq`.", + "example": "ampersand.events", "x-go-type-skip-optional-pointer": true }, - "topicId": { + "tls": { + "type": "boolean", + "description": "Whether to connect over TLS. Optional for the `rabbitmq` and `kafka` destinations.", + "example": true, + "x-go-type-skip-optional-pointer": true + }, + "name": { "type": "string", - "description": "The Pub/Sub topic ID for the `pubsub` destination.", + "description": "The queue or topic name for the `azureservicebus` destination. Required for `azureservicebus`.", "example": "ampersand-events", "x-go-type-skip-optional-pointer": true }, - "routingKey": { + "brokers": { "type": "string", - "description": "The routing key for the `rabbitmq` destination.", - "example": "ampersand.events", + "description": "The comma-separated list of Kafka broker addresses for the `kafka` destination. Required for `kafka`.", + "example": "broker1.example.com:9092,broker2.example.com:9092", + "x-go-type-skip-optional-pointer": true + }, + "topic": { + "type": "string", + "description": "The Kafka topic to publish to for the `kafka` destination. Required for `kafka`.", + "example": "ampersand-events", + "x-go-type-skip-optional-pointer": true + }, + "saslMechanism": { + "type": "string", + "description": "The SASL mechanism used to authenticate to Kafka for the `kafka` destination. Required for `kafka`.", + "enum": [ + "plain", + "scram-sha-256", + "scram-sha-512" + ], + "example": "scram-sha-256", "x-go-type-skip-optional-pointer": true }, "batchSize": { @@ -49424,30 +49453,50 @@ "description": "The SQS queue URL for the sqs destination", "example": "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue" }, - "topicArn": { + "topicId": { "type": "string", - "description": "The SNS topic ARN for the sns destination", - "example": "arn:aws:sns:us-east-1:123456789012:my-topic" + "description": "The Pub/Sub topic ID for the pubsub destination", + "example": "ampersand-events" }, - "eventBusName": { + "serverUrl": { "type": "string", - "description": "The EventBridge event bus name for the eventbridge destination", - "example": "default" + "description": "The AMQP server URL for the rabbitmq destination", + "example": "amqp://rabbit.example.com:5672" }, - "detailType": { + "exchange": { "type": "string", - "description": "The EventBridge detail-type for published events (eventbridge)", - "example": "ampersand.record" + "description": "The exchange to publish to for the rabbitmq destination", + "example": "ampersand.events" }, - "topicId": { + "tls": { + "type": "boolean", + "description": "Whether to connect over TLS (rabbitmq, kafka)", + "example": true + }, + "name": { "type": "string", - "description": "The Pub/Sub topic ID for the pubsub destination", + "description": "The queue or topic name for the azureservicebus destination", "example": "ampersand-events" }, - "routingKey": { + "brokers": { "type": "string", - "description": "The routing key for the rabbitmq destination", - "example": "ampersand.events" + "description": "The comma-separated list of Kafka broker addresses for the kafka destination", + "example": "broker1.example.com:9092,broker2.example.com:9092" + }, + "topic": { + "type": "string", + "description": "The Kafka topic to publish to for the kafka destination", + "example": "ampersand-events" + }, + "saslMechanism": { + "type": "string", + "description": "The SASL mechanism used to authenticate to Kafka for the kafka destination", + "enum": [ + "plain", + "scram-sha-256", + "scram-sha-512" + ], + "example": "scram-sha-256" }, "batchSize": { "type": "integer", @@ -50443,30 +50492,50 @@ "description": "The SQS queue URL for the sqs destination", "example": "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue" }, - "topicArn": { + "topicId": { "type": "string", - "description": "The SNS topic ARN for the sns destination", - "example": "arn:aws:sns:us-east-1:123456789012:my-topic" + "description": "The Pub/Sub topic ID for the pubsub destination", + "example": "ampersand-events" }, - "eventBusName": { + "serverUrl": { "type": "string", - "description": "The EventBridge event bus name for the eventbridge destination", - "example": "default" + "description": "The AMQP server URL for the rabbitmq destination", + "example": "amqp://rabbit.example.com:5672" }, - "detailType": { + "exchange": { "type": "string", - "description": "The EventBridge detail-type for published events (eventbridge)", - "example": "ampersand.record" + "description": "The exchange to publish to for the rabbitmq destination", + "example": "ampersand.events" }, - "topicId": { + "tls": { + "type": "boolean", + "description": "Whether to connect over TLS (rabbitmq, kafka)", + "example": true + }, + "name": { "type": "string", - "description": "The Pub/Sub topic ID for the pubsub destination", + "description": "The queue or topic name for the azureservicebus destination", "example": "ampersand-events" }, - "routingKey": { + "brokers": { "type": "string", - "description": "The routing key for the rabbitmq destination", - "example": "ampersand.events" + "description": "The comma-separated list of Kafka broker addresses for the kafka destination", + "example": "broker1.example.com:9092,broker2.example.com:9092" + }, + "topic": { + "type": "string", + "description": "The Kafka topic to publish to for the kafka destination", + "example": "ampersand-events" + }, + "saslMechanism": { + "type": "string", + "description": "The SASL mechanism used to authenticate to Kafka for the kafka destination", + "enum": [ + "plain", + "scram-sha-256", + "scram-sha-512" + ], + "example": "scram-sha-256" }, "batchSize": { "type": "integer", @@ -50845,30 +50914,50 @@ "description": "The SQS queue URL for the sqs destination", "example": "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue" }, - "topicArn": { + "topicId": { "type": "string", - "description": "The SNS topic ARN for the sns destination", - "example": "arn:aws:sns:us-east-1:123456789012:my-topic" + "description": "The Pub/Sub topic ID for the pubsub destination", + "example": "ampersand-events" }, - "eventBusName": { + "serverUrl": { "type": "string", - "description": "The EventBridge event bus name for the eventbridge destination", - "example": "default" + "description": "The AMQP server URL for the rabbitmq destination", + "example": "amqp://rabbit.example.com:5672" }, - "detailType": { + "exchange": { "type": "string", - "description": "The EventBridge detail-type for published events (eventbridge)", - "example": "ampersand.record" + "description": "The exchange to publish to for the rabbitmq destination", + "example": "ampersand.events" }, - "topicId": { + "tls": { + "type": "boolean", + "description": "Whether to connect over TLS (rabbitmq, kafka)", + "example": true + }, + "name": { "type": "string", - "description": "The Pub/Sub topic ID for the pubsub destination", + "description": "The queue or topic name for the azureservicebus destination", "example": "ampersand-events" }, - "routingKey": { + "brokers": { "type": "string", - "description": "The routing key for the rabbitmq destination", - "example": "ampersand.events" + "description": "The comma-separated list of Kafka broker addresses for the kafka destination", + "example": "broker1.example.com:9092,broker2.example.com:9092" + }, + "topic": { + "type": "string", + "description": "The Kafka topic to publish to for the kafka destination", + "example": "ampersand-events" + }, + "saslMechanism": { + "type": "string", + "description": "The SASL mechanism used to authenticate to Kafka for the kafka destination", + "enum": [ + "plain", + "scram-sha-256", + "scram-sha-512" + ], + "example": "scram-sha-256" }, "batchSize": { "type": "integer", @@ -51411,7 +51500,7 @@ "items": { "type": "string" }, - "description": "Array of field paths specifying which fields to update. Allowed values include:\n- name\n- metadata.url\n- metadata.headers\n- metadata.region\n- metadata.streamName\n- metadata.endpointUrl\n- metadata.partitionKeyTemplate\n- metadata.bucket\n- metadata.keyTemplate\n- metadata.storageClass\n- metadata.username\n- metadata.tableName\n- metadata.database\n- metadata.accountIdentifier\n- metadata.userId\n- metadata.dbName\n- metadata.schemaName\n- metadata.projectId\n- metadata.datasetId\n- metadata.tableId\n- metadata.workgroupName\n- metadata.clusterIdentifier\n- metadata.dbUser\n- metadata.account\n- metadata.container\n- metadata.queueUrl\n- metadata.topicArn\n- metadata.eventBusName\n- metadata.detailType\n- metadata.topicId\n- metadata.routingKey\n- metadata.batchSize\n- metadata.maxWaitSecs\n- secrets.awsKeyId\n- secrets.awsSecretKey\n- secrets.awsSessionToken\n- secrets.password\n- secrets.privateKey\n- secrets.credentials\n- secrets.accessKeyId\n- secrets.secretAccessKey\n- secrets.accessKey\n- secrets.uri\n", + "description": "Array of field paths specifying which fields to update. Allowed values include:\n- name\n- metadata.url\n- metadata.headers\n- metadata.region\n- metadata.streamName\n- metadata.endpointUrl\n- metadata.partitionKeyTemplate\n- metadata.bucket\n- metadata.keyTemplate\n- metadata.storageClass\n- metadata.username\n- metadata.tableName\n- metadata.database\n- metadata.accountIdentifier\n- metadata.userId\n- metadata.dbName\n- metadata.schemaName\n- metadata.projectId\n- metadata.datasetId\n- metadata.tableId\n- metadata.workgroupName\n- metadata.clusterIdentifier\n- metadata.dbUser\n- metadata.account\n- metadata.container\n- metadata.queueUrl\n- metadata.topicId\n- metadata.serverUrl\n- metadata.exchange\n- metadata.tls\n- metadata.name\n- metadata.brokers\n- metadata.topic\n- metadata.saslMechanism\n- metadata.batchSize\n- metadata.maxWaitSecs\n- secrets.awsKeyId\n- secrets.awsSecretKey\n- secrets.awsSessionToken\n- secrets.password\n- secrets.privateKey\n- secrets.credentials\n- secrets.accessKeyId\n- secrets.secretAccessKey\n- secrets.accessKey\n- secrets.username\n- secrets.connectionString\n", "example": [ "name", "metadata.url", @@ -51460,12 +51549,12 @@ }, "endpointUrl": { "type": "string", - "description": "The endpoint URL for the Kinesis stream.", + "description": "The endpoint URL for the `kinesis` stream, or the optional custom endpoint URL for the `sqs` destination.", "example": "https://kinesis.us-east-1.amazonaws.com" }, "partitionKeyTemplate": { "type": "string", - "description": "The template for the partition key to use when sending events to Kinesis (a JMESPath template)", + "description": "The template for the partition key (a JMESPath template). Used by `kinesis`, and optionally by `kafka`.", "example": "data.user_id" }, "bucket": { @@ -51520,7 +51609,7 @@ }, "projectId": { "type": "string", - "description": "The Google Cloud project ID (`bigquery`, `pubsub`).", + "description": "The Google Cloud project ID (`bigquery`, `pubsub`). Required for `pubsub`.", "example": "my-gcp-project" }, "datasetId": { @@ -51560,33 +51649,53 @@ }, "queueUrl": { "type": "string", - "description": "The SQS queue URL for the `sqs` destination.", + "description": "The SQS queue URL for the `sqs` destination. Required for `sqs`.", "example": "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue" }, - "topicArn": { + "topicId": { "type": "string", - "description": "The SNS topic ARN for the `sns` destination.", - "example": "arn:aws:sns:us-east-1:123456789012:my-topic" + "description": "The Pub/Sub topic ID for the `pubsub` destination. Required for `pubsub`.", + "example": "ampersand-events" }, - "eventBusName": { + "serverUrl": { "type": "string", - "description": "The EventBridge event bus name for the `eventbridge` destination.", - "example": "default" + "description": "The AMQP server URL for the `rabbitmq` destination. Required for `rabbitmq`.", + "example": "amqp://rabbit.example.com:5672" }, - "detailType": { + "exchange": { "type": "string", - "description": "The EventBridge detail-type for published events (`eventbridge`).", - "example": "ampersand.record" + "description": "The exchange to publish to for the `rabbitmq` destination. Required for `rabbitmq`.", + "example": "ampersand.events" }, - "topicId": { + "tls": { + "type": "boolean", + "description": "Whether to connect over TLS. Optional for the `rabbitmq` and `kafka` destinations.", + "example": true + }, + "name": { "type": "string", - "description": "The Pub/Sub topic ID for the `pubsub` destination.", + "description": "The queue or topic name for the `azureservicebus` destination. Required for `azureservicebus`.", "example": "ampersand-events" }, - "routingKey": { + "brokers": { "type": "string", - "description": "The routing key for the `rabbitmq` destination.", - "example": "ampersand.events" + "description": "The comma-separated list of Kafka broker addresses for the `kafka` destination. Required for `kafka`.", + "example": "broker1.example.com:9092,broker2.example.com:9092" + }, + "topic": { + "type": "string", + "description": "The Kafka topic to publish to for the `kafka` destination. Required for `kafka`.", + "example": "ampersand-events" + }, + "saslMechanism": { + "type": "string", + "description": "The SASL mechanism used to authenticate to Kafka for the `kafka` destination. Required for `kafka`.", + "enum": [ + "plain", + "scram-sha-256", + "scram-sha-512" + ], + "example": "scram-sha-256" }, "batchSize": { "type": "integer", @@ -51606,22 +51715,22 @@ "properties": { "awsKeyId": { "type": "string", - "description": "The AWS access key ID for the Kinesis or S3 destination.", + "description": "The AWS access key ID for the `kinesis`, `s3`, and `sqs` destinations. Required for `sqs`.", "example": "AKIAIOSFODNN7EXAMPLE" }, "awsSecretKey": { "type": "string", - "description": "The AWS secret access key for the Kinesis or S3 destination.", + "description": "The AWS secret access key for the `kinesis`, `s3`, and `sqs` destinations. Required for `sqs`.", "example": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" }, "awsSessionToken": { "type": "string", - "description": "The AWS session token for the Kinesis or S3 destination.", + "description": "The optional AWS session token for the `kinesis`, `s3`, and `sqs` destinations.", "example": "AQoEXAMPLEH4aoAH0gNCAPy..." }, "password": { "type": "string", - "description": "The password for the `clickhouse` destination.", + "description": "The password for the `clickhouse`, `rabbitmq`, and `kafka` destinations. Required for `rabbitmq` and `kafka`.", "example": "my-clickhouse-password" }, "privateKey": { @@ -51631,17 +51740,17 @@ }, "credentials": { "type": "string", - "description": "The service-account credentials JSON for the `bigquery`, `gcs`, and `pubsub` destinations.", + "description": "The service-account credentials JSON for the `bigquery`, `gcs`, and `pubsub` destinations. Required for `pubsub`.", "example": "{\"type\":\"service_account\", ...}" }, "accessKeyId": { "type": "string", - "description": "The AWS access key ID for the `redshift`, `sqs`, `sns`, and `eventbridge` destinations.", + "description": "The AWS access key ID for the `redshift` destination.", "example": "AKIAIOSFODNN7EXAMPLE" }, "secretAccessKey": { "type": "string", - "description": "The AWS secret access key for the `redshift`, `sqs`, `sns`, and `eventbridge` destinations.", + "description": "The AWS secret access key for the `redshift` destination.", "example": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" }, "accessKey": { @@ -51649,10 +51758,15 @@ "description": "The account access key for the `azureblob` destination.", "example": "my-azure-access-key" }, - "uri": { + "username": { + "type": "string", + "description": "The username for the `rabbitmq` and `kafka` destinations. Required for both.", + "example": "ampersand" + }, + "connectionString": { "type": "string", - "description": "The connection URI (embeds credentials) for the `rabbitmq` destination.", - "example": "amqp://user:pass@rabbit.example.com:5672" + "description": "The connection string for the `azureservicebus` destination. Required for `azureservicebus`.", + "example": "Endpoint=sb://my-namespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=..." } } } @@ -51824,30 +51938,50 @@ "description": "The SQS queue URL for the sqs destination", "example": "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue" }, - "topicArn": { + "topicId": { "type": "string", - "description": "The SNS topic ARN for the sns destination", - "example": "arn:aws:sns:us-east-1:123456789012:my-topic" + "description": "The Pub/Sub topic ID for the pubsub destination", + "example": "ampersand-events" }, - "eventBusName": { + "serverUrl": { "type": "string", - "description": "The EventBridge event bus name for the eventbridge destination", - "example": "default" + "description": "The AMQP server URL for the rabbitmq destination", + "example": "amqp://rabbit.example.com:5672" }, - "detailType": { + "exchange": { "type": "string", - "description": "The EventBridge detail-type for published events (eventbridge)", - "example": "ampersand.record" + "description": "The exchange to publish to for the rabbitmq destination", + "example": "ampersand.events" }, - "topicId": { + "tls": { + "type": "boolean", + "description": "Whether to connect over TLS (rabbitmq, kafka)", + "example": true + }, + "name": { "type": "string", - "description": "The Pub/Sub topic ID for the pubsub destination", + "description": "The queue or topic name for the azureservicebus destination", "example": "ampersand-events" }, - "routingKey": { + "brokers": { "type": "string", - "description": "The routing key for the rabbitmq destination", - "example": "ampersand.events" + "description": "The comma-separated list of Kafka broker addresses for the kafka destination", + "example": "broker1.example.com:9092,broker2.example.com:9092" + }, + "topic": { + "type": "string", + "description": "The Kafka topic to publish to for the kafka destination", + "example": "ampersand-events" + }, + "saslMechanism": { + "type": "string", + "description": "The SASL mechanism used to authenticate to Kafka for the kafka destination", + "enum": [ + "plain", + "scram-sha-256", + "scram-sha-512" + ], + "example": "scram-sha-256" }, "batchSize": { "type": "integer", @@ -69496,30 +69630,50 @@ "description": "The SQS queue URL for the sqs destination", "example": "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue" }, - "topicArn": { + "topicId": { "type": "string", - "description": "The SNS topic ARN for the sns destination", - "example": "arn:aws:sns:us-east-1:123456789012:my-topic" + "description": "The Pub/Sub topic ID for the pubsub destination", + "example": "ampersand-events" }, - "eventBusName": { + "serverUrl": { "type": "string", - "description": "The EventBridge event bus name for the eventbridge destination", - "example": "default" + "description": "The AMQP server URL for the rabbitmq destination", + "example": "amqp://rabbit.example.com:5672" }, - "detailType": { + "exchange": { "type": "string", - "description": "The EventBridge detail-type for published events (eventbridge)", - "example": "ampersand.record" + "description": "The exchange to publish to for the rabbitmq destination", + "example": "ampersand.events" }, - "topicId": { + "tls": { + "type": "boolean", + "description": "Whether to connect over TLS (rabbitmq, kafka)", + "example": true + }, + "name": { "type": "string", - "description": "The Pub/Sub topic ID for the pubsub destination", + "description": "The queue or topic name for the azureservicebus destination", "example": "ampersand-events" }, - "routingKey": { + "brokers": { "type": "string", - "description": "The routing key for the rabbitmq destination", - "example": "ampersand.events" + "description": "The comma-separated list of Kafka broker addresses for the kafka destination", + "example": "broker1.example.com:9092,broker2.example.com:9092" + }, + "topic": { + "type": "string", + "description": "The Kafka topic to publish to for the kafka destination", + "example": "ampersand-events" + }, + "saslMechanism": { + "type": "string", + "description": "The SASL mechanism used to authenticate to Kafka for the kafka destination", + "enum": [ + "plain", + "scram-sha-256", + "scram-sha-512" + ], + "example": "scram-sha-256" }, "batchSize": { "type": "integer", @@ -69702,30 +69856,50 @@ "description": "The SQS queue URL for the sqs destination", "example": "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue" }, - "topicArn": { + "topicId": { "type": "string", - "description": "The SNS topic ARN for the sns destination", - "example": "arn:aws:sns:us-east-1:123456789012:my-topic" + "description": "The Pub/Sub topic ID for the pubsub destination", + "example": "ampersand-events" }, - "eventBusName": { + "serverUrl": { "type": "string", - "description": "The EventBridge event bus name for the eventbridge destination", - "example": "default" + "description": "The AMQP server URL for the rabbitmq destination", + "example": "amqp://rabbit.example.com:5672" }, - "detailType": { + "exchange": { "type": "string", - "description": "The EventBridge detail-type for published events (eventbridge)", - "example": "ampersand.record" + "description": "The exchange to publish to for the rabbitmq destination", + "example": "ampersand.events" }, - "topicId": { + "tls": { + "type": "boolean", + "description": "Whether to connect over TLS (rabbitmq, kafka)", + "example": true + }, + "name": { "type": "string", - "description": "The Pub/Sub topic ID for the pubsub destination", + "description": "The queue or topic name for the azureservicebus destination", "example": "ampersand-events" }, - "routingKey": { + "brokers": { "type": "string", - "description": "The routing key for the rabbitmq destination", - "example": "ampersand.events" + "description": "The comma-separated list of Kafka broker addresses for the kafka destination", + "example": "broker1.example.com:9092,broker2.example.com:9092" + }, + "topic": { + "type": "string", + "description": "The Kafka topic to publish to for the kafka destination", + "example": "ampersand-events" + }, + "saslMechanism": { + "type": "string", + "description": "The SASL mechanism used to authenticate to Kafka for the kafka destination", + "enum": [ + "plain", + "scram-sha-256", + "scram-sha-512" + ], + "example": "scram-sha-256" }, "batchSize": { "type": "integer",