openapi: 3.1.0 info: title: Svix Application Sink API description: 'Welcome to the Svix API documentation! Useful links: [Homepage](https://www.svix.com) | [Support email](mailto:support+docs@svix.com) | [Blog](https://www.svix.com/blog/) | [Slack Community](https://www.svix.com/slack/) # Introduction This is the reference documentation and schemas for the [Svix webhook service](https://www.svix.com) API. For tutorials and other documentation please refer to [the documentation](https://docs.svix.com). ## Main concepts In Svix you have four important entities you will be interacting with: - `messages`: these are the webhooks being sent. They can have contents and a few other properties. - `application`: this is where `messages` are sent to. Usually you want to create one application for each user on your platform. - `endpoint`: endpoints are the URLs messages will be sent to. Each application can have multiple `endpoints` and each message sent to that application will be sent to all of them (unless they are not subscribed to the sent event type). - `event-type`: event types are identifiers denoting the type of the message being sent. Event types are primarily used to decide which events are sent to which endpoint. ## Authentication Get your authentication token (`AUTH_TOKEN`) from the [Svix dashboard](https://dashboard.svix.com) and use it as part of the `Authorization` header as such: `Authorization: Bearer ${AUTH_TOKEN}`. For more information on authentication, please refer to the [authentication token docs](https://docs.svix.com/api-keys). ## Code samples The code samples assume you already have the respective libraries installed and you know how to use them. For the latest information on how to do that, please refer to [the documentation](https://docs.svix.com/). ## Idempotency Svix supports [idempotency](https://en.wikipedia.org/wiki/Idempotence) for safely retrying requests without accidentally performing the same operation twice. This is useful when an API call is disrupted in transit and you do not receive a response. To perform an idempotent request, pass the idempotency key in the `Idempotency-Key` header to the request. The idempotency key should be a unique value generated by the client. You can create the key in however way you like, though we suggest using UUID v4, or any other string with enough entropy to avoid collisions. Your idempotency key should not begin with the string `auto_`, which is reserved for internal use by the client libraries. Svix''s idempotency works by saving the resulting status code and body of the first request made for any given idempotency key for any successful request. Subsequent requests with the same key return the same result for a period of up to 12 hours. Please note that idempotency is only supported for `POST` requests. ## Cross-Origin Resource Sharing This API features Cross-Origin Resource Sharing (CORS) implemented in compliance with [W3C spec](https://www.w3.org/TR/cors/). And that allows cross-domain communication from the browser. All responses have a wildcard same-origin which makes them completely public and accessible to everyone, including any code on any site. ' version: 1.84.0 x-logo: altText: Svix Logo url: https://www.svix.com/static/img/brand-padded.svg servers: - url: https://api.eu.svix.com/ description: The Svix EU region - url: https://api.us.svix.com/ description: The Svix US region - url: https://api.ca.svix.com/ description: The Svix Canada region - url: https://api.au.svix.com/ description: The Svix Australia region - url: https://api.in.svix.com/ description: The Svix India region tags: - name: Sink paths: /api/v1/stream/{stream_id}/sink: get: tags: - Sink summary: List Sinks description: List of all the stream's sinks. operationId: v1.streaming.sink.list parameters: - in: path name: stream_id description: The Stream's ID or UID. required: true schema: description: The Stream's ID or UID. type: string maxLength: 60 minLength: 1 example: unique-identifier style: simple - in: query name: limit description: Limit the number of returned items schema: description: Limit the number of returned items type: integer format: uint64 maximum: 250.0 minimum: 1.0 style: form - in: query name: iterator description: The iterator returned from a prior invocation schema: description: The iterator returned from a prior invocation type: string maxLength: 27 minLength: 26 pattern: ^sink_[A-Za-z0-9]{21,22}$ nullable: true example: sink_2yZwUhtgs5Ai8T9yRQJXA style: form - in: query name: order description: The sorting order of the returned items schema: description: The sorting order of the returned items $ref: '#/components/schemas/Ordering' nullable: true style: form responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ListResponse_StreamSinkOut_' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: const response = await svix.streaming.sink.list("strm_31Dc0DD72P5AddYUguyBd"); - label: TypeScript lang: TypeScript source: const response = await svix.streaming.sink.list("strm_31Dc0DD72P5AddYUguyBd"); - label: Python lang: Python source: "response = svix.streaming.sink.list(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n)" - label: Python (Async) lang: Python source: "response = await svix.streaming.sink.list(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n)" - label: Go lang: Go source: response, err := svix.Streaming.Sink.List(ctx, "strm_31Dc0DD72P5AddYUguyBd", nil) - label: Kotlin lang: Kotlin source: val response = svix.streaming.sink.list("strm_31Dc0DD72P5AddYUguyBd") - label: Java lang: Java source: var response = svix.getStreaming().getSink().list("strm_31Dc0DD72P5AddYUguyBd"); - label: Ruby lang: Ruby source: response = svix.streaming.sink.list("strm_31Dc0DD72P5AddYUguyBd") - label: Rust lang: Rust source: "let response = svix\n .streaming()\n .sink()\n .list(\"strm_31Dc0DD72P5AddYUguyBd\".to_string(), None)\n .await?;" - label: C# lang: C# source: var response = svix.Streaming.Sink.List("strm_31Dc0DD72P5AddYUguyBd"); - label: PHP lang: PHP source: "$response = $svix->streaming->sink->list(\n \"strm_31Dc0DD72P5AddYUguyBd\"\n);" - label: CLI lang: Shell source: svix streaming sink list "strm_31Dc0DD72P5AddYUguyBd" - label: cURL lang: Shell source: "curl -X 'GET' \\\n 'https://api.eu.svix.com/api/v1/stream/strm_31Dc0DD72P5AddYUguyBd/sink' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Accept: application/json'" post: tags: - Sink summary: Create Sink description: Creates a new sink. operationId: v1.streaming.sink.create parameters: - in: path name: stream_id description: The Stream's ID or UID. required: true schema: description: The Stream's ID or UID. type: string maxLength: 60 minLength: 1 example: unique-identifier style: simple - in: header name: idempotency-key description: The request's idempotency key schema: type: string style: simple - in: header name: idempotency-key description: The request's idempotency key schema: type: string style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/StreamSinkIn' required: true responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/StreamSinkOut' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "const response = await svix.streaming.sink.create(\"strm_31Dc0DD72P5AddYUguyBd\", {\n batchSize: 100,\n eventTypes: [],\n maxWaitSecs: 1,\n metadata: {},\n status: SinkStatusIn.Enabled,\n uid: \"unique-identifier\",\n type: \"azureBlobStorage\",\n config: {\n accessKey: \"sample string\",\n account: \"sample string\",\n container: \"sample string\",\n },\n});" - label: TypeScript lang: TypeScript source: "const response = await svix.streaming.sink.create(\"strm_31Dc0DD72P5AddYUguyBd\", {\n batchSize: 100,\n eventTypes: [],\n maxWaitSecs: 1,\n metadata: {},\n status: SinkStatusIn.Enabled,\n uid: \"unique-identifier\",\n type: \"azureBlobStorage\",\n config: {\n accessKey: \"sample string\",\n account: \"sample string\",\n container: \"sample string\",\n },\n});" - label: Python lang: Python source: "response = svix.streaming.sink.create(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n StreamSinkIn(\n batch_size=100,\n event_types=[],\n max_wait_secs=1,\n metadata={},\n status=SinkStatusIn.ENABLED,\n uid=\"unique-identifier\",\n type=\"azureBlobStorage\",\n config=AzureBlobStorageConfig(\n access_key=\"sample string\",\n account=\"sample string\",\n container=\"sample string\",\n ),\n ),\n)" - label: Python (Async) lang: Python source: "response = await svix.streaming.sink.create(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n StreamSinkIn(\n batch_size=100,\n event_types=[],\n max_wait_secs=1,\n metadata={},\n status=SinkStatusIn.ENABLED,\n uid=\"unique-identifier\",\n type=\"azureBlobStorage\",\n config=AzureBlobStorageConfig(\n access_key=\"sample string\",\n account=\"sample string\",\n container=\"sample string\",\n ),\n ),\n)" - label: Go lang: Go source: "response, err := svix.Streaming.Sink.Create(\n\tctx,\n\t\"strm_31Dc0DD72P5AddYUguyBd\",\n\tStreamSinkIn{\n\t\tBatchSize: new(uint16(100)),\n\t\tEventTypes: []string{},\n\t\tMaxWaitSecs: new(uint16(1)),\n\t\tMetadata: nil,\n\t\tStatus: new(SINKSTATUSIN_ENABLED),\n\t\tUid: new(\"unique-identifier\"),\n\t\tConfig: (AzureBlobStorageConfig{AccessKey: \"sample string\", Account: \"sample string\", Container: \"sample string\"}),\n\t\tType: \"azureBlobStorage\",\n\t},\n\tnil,\n)" - label: Kotlin lang: Kotlin source: "val response =\n svix.streaming.sink.create(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n StreamSinkIn(\n batchSize = 100u,\n eventTypes = listOf(),\n maxWaitSecs = 1u,\n metadata = mapOf(),\n status = SinkStatusIn.ENABLED,\n uid = \"unique-identifier\",\n config =\n StreamSinkInConfig.AzureBlobStorage(\n AzureBlobStorageConfig(\n accessKey = \"sample string\",\n account = \"sample string\",\n container = \"sample string\",\n )\n ),\n ),\n )" - label: Java lang: Java source: "var response = svix.getStreaming()\n .getSink()\n .create(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n new StreamSinkIn()\n .batchSize(100L)\n .eventTypes(List.of())\n .maxWaitSecs(1L)\n .metadata(Map.of())\n .status(SinkStatusIn.ENABLED)\n .uid(\"unique-identifier\")\n .config(new StreamSinkInConfig.AzureBlobStorage(new AzureBlobStorageConfig()\n .accessKey(\"sample string\")\n .account(\"sample string\")\n .container(\"sample string\"))));" - label: Ruby lang: Ruby source: "response = svix\n .streaming\n .sink\n .create(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n {\n batchSize: 100,\n eventTypes: [],\n maxWaitSecs: 1,\n metadata: {},\n status: SinkStatusIn::ENABLED,\n uid: \"unique-identifier\",\n config: {accessKey: \"sample string\", account: \"sample string\", container: \"sample string\"},\n type: \"azureBlobStorage\"\n }\n )" - label: Rust lang: Rust source: "let response = svix\n .streaming()\n .sink()\n .create(\n \"strm_31Dc0DD72P5AddYUguyBd\".to_string(),\n StreamSinkIn {\n batch_size: Some(100),\n event_types: Some(vec![]),\n max_wait_secs: Some(1),\n metadata: Some(HashMap::new()),\n status: Some(SinkStatusIn::Enabled),\n uid: Some(\"unique-identifier\".to_string()),\n config: StreamSinkInConfig::AzureBlobStorage(AzureBlobStorageConfig {\n access_key: \"sample string\".to_string(),\n account: \"sample string\".to_string(),\n container: \"sample string\".to_string(),\n }),\n },\n None,\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Streaming.Sink.Create(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n new StreamSinkIn\n {\n BatchSize = 100,\n EventTypes = [],\n MaxWaitSecs = 1,\n Metadata = [],\n Status = SinkStatusIn.Enabled,\n Uid = \"unique-identifier\",\n Config = StreamSinkInConfig.AzureBlobStorage(\n (\n new AzureBlobStorageConfig\n {\n AccessKey = \"sample string\",\n Account = \"sample string\",\n Container = \"sample string\",\n }\n )\n ),\n }\n);" - label: PHP lang: PHP source: "$response = $svix->streaming->sink->create(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n StreamSinkIn::create()\n ->withBatchSize(100)\n ->withEventTypes([])\n ->withMaxWaitSecs(1)\n ->withMetadata([])\n ->withStatus(SinkStatusIn::ENABLED)\n ->withUid(\"unique-identifier\")\n);" - label: CLI lang: Shell source: "svix streaming sink create \"strm_31Dc0DD72P5AddYUguyBd\" '{\n \"batchSize\": 100,\n \"config\": {\n \"accessKey\": \"sample string\",\n \"account\": \"sample string\",\n \"container\": \"sample string\"\n },\n \"eventTypes\": [],\n \"maxWaitSecs\": 1,\n \"metadata\": {},\n \"status\": \"enabled\",\n \"type\": \"azureBlobStorage\",\n \"uid\": \"unique-identifier\"\n }'" - label: cURL lang: Shell source: "curl -X 'POST' \\\n 'https://api.eu.svix.com/api/v1/stream/strm_31Dc0DD72P5AddYUguyBd/sink' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Accept: application/json' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"batchSize\": 100,\n \"config\": {\n \"accessKey\": \"sample string\",\n \"account\": \"sample string\",\n \"container\": \"sample string\"\n },\n \"eventTypes\": [],\n \"maxWaitSecs\": 1,\n \"metadata\": {},\n \"status\": \"enabled\",\n \"type\": \"azureBlobStorage\",\n \"uid\": \"unique-identifier\"\n }'" /api/v1/stream/{stream_id}/sink/{sink_id}: get: tags: - Sink summary: Get Sink description: Get a sink by id or uid. operationId: v1.streaming.sink.get parameters: - in: path name: stream_id description: The Stream's ID or UID. required: true schema: description: The Stream's ID or UID. type: string maxLength: 60 minLength: 1 example: unique-identifier style: simple - in: path name: sink_id description: The StreamSink's ID or UID. required: true schema: description: The StreamSink's ID or UID. type: string maxLength: 60 minLength: 1 example: unique-identifier style: simple responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/StreamSinkOut' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "const response = await svix.streaming.sink.get(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\"\n);" - label: TypeScript lang: TypeScript source: "const response = await svix.streaming.sink.get(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\"\n);" - label: Python lang: Python source: "response = svix.streaming.sink.get(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n)" - label: Python (Async) lang: Python source: "response = await svix.streaming.sink.get(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n)" - label: Go lang: Go source: "response, err := svix.Streaming.Sink.Get(\n\tctx,\n\t\"strm_31Dc0DD72P5AddYUguyBd\",\n\t\"sink_31Dc11sPYY9aLDkwPuGMa\",\n)" - label: Kotlin lang: Kotlin source: val response = svix.streaming.sink.get("strm_31Dc0DD72P5AddYUguyBd", "sink_31Dc11sPYY9aLDkwPuGMa") - label: Java lang: Java source: "var response = svix.getStreaming()\n .getSink()\n .get(\"strm_31Dc0DD72P5AddYUguyBd\", \"sink_31Dc11sPYY9aLDkwPuGMa\");" - label: Ruby lang: Ruby source: response = svix.streaming.sink.get("strm_31Dc0DD72P5AddYUguyBd", "sink_31Dc11sPYY9aLDkwPuGMa") - label: Rust lang: Rust source: "let response = svix\n .streaming()\n .sink()\n .get(\n \"strm_31Dc0DD72P5AddYUguyBd\".to_string(),\n \"sink_31Dc11sPYY9aLDkwPuGMa\".to_string(),\n )\n .await?;" - label: C# lang: C# source: var response = svix.Streaming.Sink.Get("strm_31Dc0DD72P5AddYUguyBd", "sink_31Dc11sPYY9aLDkwPuGMa"); - label: PHP lang: PHP source: "$response = $svix->streaming->sink->get(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\"\n);" - label: CLI lang: Shell source: svix streaming sink get "strm_31Dc0DD72P5AddYUguyBd" "sink_31Dc11sPYY9aLDkwPuGMa" - label: cURL lang: Shell source: "curl -X 'GET' \\\n 'https://api.eu.svix.com/api/v1/stream/strm_31Dc0DD72P5AddYUguyBd/sink/sink_31Dc11sPYY9aLDkwPuGMa' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Accept: application/json'" put: tags: - Sink summary: Update Sink description: Update a sink. operationId: v1.streaming.sink.update parameters: - in: path name: stream_id description: The Stream's ID or UID. required: true schema: description: The Stream's ID or UID. type: string maxLength: 60 minLength: 1 example: unique-identifier style: simple - in: path name: sink_id description: The StreamSink's ID or UID. required: true schema: description: The StreamSink's ID or UID. type: string maxLength: 60 minLength: 1 example: unique-identifier style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/StreamSinkIn' required: true responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/StreamSinkOut' '201': description: '' content: application/json: schema: $ref: '#/components/schemas/StreamSinkOut' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "const response = await svix.streaming.sink.update(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n {\n batchSize: 100,\n eventTypes: [],\n maxWaitSecs: 1,\n metadata: {},\n status: SinkStatusIn.Enabled,\n uid: \"unique-identifier\",\n type: \"azureBlobStorage\",\n config: {\n accessKey: \"sample string\",\n account: \"sample string\",\n container: \"sample string\",\n },\n }\n);" - label: TypeScript lang: TypeScript source: "const response = await svix.streaming.sink.update(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n {\n batchSize: 100,\n eventTypes: [],\n maxWaitSecs: 1,\n metadata: {},\n status: SinkStatusIn.Enabled,\n uid: \"unique-identifier\",\n type: \"azureBlobStorage\",\n config: {\n accessKey: \"sample string\",\n account: \"sample string\",\n container: \"sample string\",\n },\n }\n);" - label: Python lang: Python source: "response = svix.streaming.sink.update(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n StreamSinkIn(\n batch_size=100,\n event_types=[],\n max_wait_secs=1,\n metadata={},\n status=SinkStatusIn.ENABLED,\n uid=\"unique-identifier\",\n type=\"azureBlobStorage\",\n config=AzureBlobStorageConfig(\n access_key=\"sample string\",\n account=\"sample string\",\n container=\"sample string\",\n ),\n ),\n)" - label: Python (Async) lang: Python source: "response = await svix.streaming.sink.update(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n StreamSinkIn(\n batch_size=100,\n event_types=[],\n max_wait_secs=1,\n metadata={},\n status=SinkStatusIn.ENABLED,\n uid=\"unique-identifier\",\n type=\"azureBlobStorage\",\n config=AzureBlobStorageConfig(\n access_key=\"sample string\",\n account=\"sample string\",\n container=\"sample string\",\n ),\n ),\n)" - label: Go lang: Go source: "response, err := svix.Streaming.Sink.Update(\n\tctx,\n\t\"strm_31Dc0DD72P5AddYUguyBd\",\n\t\"sink_31Dc11sPYY9aLDkwPuGMa\",\n\tStreamSinkIn{\n\t\tBatchSize: new(uint16(100)),\n\t\tEventTypes: []string{},\n\t\tMaxWaitSecs: new(uint16(1)),\n\t\tMetadata: nil,\n\t\tStatus: new(SINKSTATUSIN_ENABLED),\n\t\tUid: new(\"unique-identifier\"),\n\t\tConfig: (AzureBlobStorageConfig{AccessKey: \"sample string\", Account: \"sample string\", Container: \"sample string\"}),\n\t\tType: \"azureBlobStorage\",\n\t},\n)" - label: Kotlin lang: Kotlin source: "val response =\n svix.streaming.sink.update(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n StreamSinkIn(\n batchSize = 100u,\n eventTypes = listOf(),\n maxWaitSecs = 1u,\n metadata = mapOf(),\n status = SinkStatusIn.ENABLED,\n uid = \"unique-identifier\",\n config =\n StreamSinkInConfig.AzureBlobStorage(\n AzureBlobStorageConfig(\n accessKey = \"sample string\",\n account = \"sample string\",\n container = \"sample string\",\n )\n ),\n ),\n )" - label: Java lang: Java source: "var response = svix.getStreaming()\n .getSink()\n .update(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n new StreamSinkIn()\n .batchSize(100L)\n .eventTypes(List.of())\n .maxWaitSecs(1L)\n .metadata(Map.of())\n .status(SinkStatusIn.ENABLED)\n .uid(\"unique-identifier\")\n .config(new StreamSinkInConfig.AzureBlobStorage(new AzureBlobStorageConfig()\n .accessKey(\"sample string\")\n .account(\"sample string\")\n .container(\"sample string\"))));" - label: Ruby lang: Ruby source: "response = svix\n .streaming\n .sink\n .update(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n {\n batchSize: 100,\n eventTypes: [],\n maxWaitSecs: 1,\n metadata: {},\n status: SinkStatusIn::ENABLED,\n uid: \"unique-identifier\",\n config: {accessKey: \"sample string\", account: \"sample string\", container: \"sample string\"},\n type: \"azureBlobStorage\"\n }\n )" - label: Rust lang: Rust source: "let response = svix\n .streaming()\n .sink()\n .update(\n \"strm_31Dc0DD72P5AddYUguyBd\".to_string(),\n \"sink_31Dc11sPYY9aLDkwPuGMa\".to_string(),\n StreamSinkIn {\n batch_size: Some(100),\n event_types: Some(vec![]),\n max_wait_secs: Some(1),\n metadata: Some(HashMap::new()),\n status: Some(SinkStatusIn::Enabled),\n uid: Some(\"unique-identifier\".to_string()),\n config: StreamSinkInConfig::AzureBlobStorage(AzureBlobStorageConfig {\n access_key: \"sample string\".to_string(),\n account: \"sample string\".to_string(),\n container: \"sample string\".to_string(),\n }),\n },\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Streaming.Sink.Update(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n new StreamSinkIn\n {\n BatchSize = 100,\n EventTypes = [],\n MaxWaitSecs = 1,\n Metadata = [],\n Status = SinkStatusIn.Enabled,\n Uid = \"unique-identifier\",\n Config = StreamSinkInConfig.AzureBlobStorage(\n (\n new AzureBlobStorageConfig\n {\n AccessKey = \"sample string\",\n Account = \"sample string\",\n Container = \"sample string\",\n }\n )\n ),\n }\n);" - label: PHP lang: PHP source: "$response = $svix->streaming->sink->update(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n StreamSinkIn::create()\n ->withBatchSize(100)\n ->withEventTypes([])\n ->withMaxWaitSecs(1)\n ->withMetadata([])\n ->withStatus(SinkStatusIn::ENABLED)\n ->withUid(\"unique-identifier\")\n);" - label: CLI lang: Shell source: "svix streaming sink update \"strm_31Dc0DD72P5AddYUguyBd\" \"sink_31Dc11sPYY9aLDkwPuGMa\" '{\n \"batchSize\": 100,\n \"config\": {\n \"accessKey\": \"sample string\",\n \"account\": \"sample string\",\n \"container\": \"sample string\"\n },\n \"eventTypes\": [],\n \"maxWaitSecs\": 1,\n \"metadata\": {},\n \"status\": \"enabled\",\n \"type\": \"azureBlobStorage\",\n \"uid\": \"unique-identifier\"\n }'" - label: cURL lang: Shell source: "curl -X 'PUT' \\\n 'https://api.eu.svix.com/api/v1/stream/strm_31Dc0DD72P5AddYUguyBd/sink/sink_31Dc11sPYY9aLDkwPuGMa' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Accept: application/json' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"batchSize\": 100,\n \"config\": {\n \"accessKey\": \"sample string\",\n \"account\": \"sample string\",\n \"container\": \"sample string\"\n },\n \"eventTypes\": [],\n \"maxWaitSecs\": 1,\n \"metadata\": {},\n \"status\": \"enabled\",\n \"type\": \"azureBlobStorage\",\n \"uid\": \"unique-identifier\"\n }'" delete: tags: - Sink summary: Delete Sink description: Delete a sink. operationId: v1.streaming.sink.delete parameters: - in: path name: stream_id description: The Stream's ID or UID. required: true schema: description: The Stream's ID or UID. type: string maxLength: 60 minLength: 1 example: unique-identifier style: simple - in: path name: sink_id description: The StreamSink's ID or UID. required: true schema: description: The StreamSink's ID or UID. type: string maxLength: 60 minLength: 1 example: unique-identifier style: simple responses: '204': description: no content '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "await svix.streaming.sink.delete(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\"\n);" - label: TypeScript lang: TypeScript source: "await svix.streaming.sink.delete(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\"\n);" - label: Python lang: Python source: "svix.streaming.sink.delete(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n)" - label: Python (Async) lang: Python source: "await svix.streaming.sink.delete(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n)" - label: Go lang: Go source: "err := svix.Streaming.Sink.Delete(\n\tctx,\n\t\"strm_31Dc0DD72P5AddYUguyBd\",\n\t\"sink_31Dc11sPYY9aLDkwPuGMa\",\n)" - label: Kotlin lang: Kotlin source: "svix.streaming.sink.delete(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n)" - label: Java lang: Java source: "svix.getStreaming()\n .getSink()\n .delete(\"strm_31Dc0DD72P5AddYUguyBd\", \"sink_31Dc11sPYY9aLDkwPuGMa\");" - label: Ruby lang: Ruby source: response = svix.streaming.sink.delete("strm_31Dc0DD72P5AddYUguyBd", "sink_31Dc11sPYY9aLDkwPuGMa") - label: Rust lang: Rust source: "svix.streaming()\n .sink()\n .delete(\n \"strm_31Dc0DD72P5AddYUguyBd\".to_string(),\n \"sink_31Dc11sPYY9aLDkwPuGMa\".to_string(),\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Streaming.Sink.Delete(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\"\n);" - label: PHP lang: PHP source: "$svix->streaming->sink->delete(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\"\n);" - label: CLI lang: Shell source: svix streaming sink delete "strm_31Dc0DD72P5AddYUguyBd" "sink_31Dc11sPYY9aLDkwPuGMa" - label: cURL lang: Shell source: "curl -X 'DELETE' \\\n 'https://api.eu.svix.com/api/v1/stream/strm_31Dc0DD72P5AddYUguyBd/sink/sink_31Dc11sPYY9aLDkwPuGMa' \\\n -H 'Authorization: Bearer AUTH_TOKEN'" patch: tags: - Sink summary: Patch Sink description: Partially update a sink. operationId: v1.streaming.sink.patch parameters: - in: path name: stream_id description: The Stream's ID or UID. required: true schema: description: The Stream's ID or UID. type: string maxLength: 60 minLength: 1 example: unique-identifier style: simple - in: path name: sink_id description: The StreamSink's ID or UID. required: true schema: description: The StreamSink's ID or UID. type: string maxLength: 60 minLength: 1 example: unique-identifier style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/StreamSinkPatch' required: true responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/StreamSinkOut' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "const response = await svix.streaming.sink.patch(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n {\n batchSize: 100,\n eventTypes: [],\n maxWaitSecs: 1,\n metadata: {},\n status: SinkStatusIn.Enabled,\n uid: \"unique-identifier\",\n type: \"azureBlobStorage\",\n config: {\n accessKey: \"sample string\",\n account: \"sample string\",\n container: \"sample string\",\n },\n }\n);" - label: TypeScript lang: TypeScript source: "const response = await svix.streaming.sink.patch(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n {\n batchSize: 100,\n eventTypes: [],\n maxWaitSecs: 1,\n metadata: {},\n status: SinkStatusIn.Enabled,\n uid: \"unique-identifier\",\n type: \"azureBlobStorage\",\n config: {\n accessKey: \"sample string\",\n account: \"sample string\",\n container: \"sample string\",\n },\n }\n);" - label: Python lang: Python source: "response = svix.streaming.sink.patch(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n StreamSinkPatch(\n batch_size=100,\n event_types=[],\n max_wait_secs=1,\n metadata={},\n status=SinkStatusIn.ENABLED,\n uid=\"unique-identifier\",\n type=\"azureBlobStorage\",\n config=AzureBlobStoragePatchConfig(\n access_key=\"sample string\",\n account=\"sample string\",\n container=\"sample string\",\n ),\n ),\n)" - label: Python (Async) lang: Python source: "response = await svix.streaming.sink.patch(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n StreamSinkPatch(\n batch_size=100,\n event_types=[],\n max_wait_secs=1,\n metadata={},\n status=SinkStatusIn.ENABLED,\n uid=\"unique-identifier\",\n type=\"azureBlobStorage\",\n config=AzureBlobStoragePatchConfig(\n access_key=\"sample string\",\n account=\"sample string\",\n container=\"sample string\",\n ),\n ),\n)" - label: Go lang: Go source: "response, err := svix.Streaming.Sink.Patch(\n\tctx,\n\t\"strm_31Dc0DD72P5AddYUguyBd\",\n\t\"sink_31Dc11sPYY9aLDkwPuGMa\",\n\tStreamSinkPatch{\n\t\tBatchSize: NewNullable(uint16(100)),\n\t\tEventTypes: []string{},\n\t\tMaxWaitSecs: NewNullable(uint16(1)),\n\t\tMetadata: nil,\n\t\tStatus: NewNullable(SINKSTATUSIN_ENABLED),\n\t\tUid: NewNullable(\"unique-identifier\"),\n\t\tConfig: (AzureBlobStoragePatchConfig{AccessKey: new(\"sample string\"), Account: new(\"sample string\"), Container: new(\"sample string\")}),\n\t\tType: \"azureBlobStorage\",\n\t},\n)" - label: Kotlin lang: Kotlin source: "val response =\n svix.streaming.sink.patch(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n StreamSinkPatch(\n batchSize = MaybeUnset.Present(100u),\n eventTypes = listOf(),\n maxWaitSecs = MaybeUnset.Present(1u),\n metadata = mapOf(),\n status = MaybeUnset.Present(SinkStatusIn.ENABLED),\n uid = MaybeUnset.Present(\"unique-identifier\"),\n config =\n StreamSinkPatchConfig.AzureBlobStorage(\n AzureBlobStoragePatchConfig(\n accessKey = \"sample string\",\n account = \"sample string\",\n container = \"sample string\",\n )\n ),\n ),\n )" - label: Java lang: Java source: "var response = svix.getStreaming()\n .getSink()\n .patch(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n new StreamSinkPatch()\n .batchSize(100L)\n .eventTypes(List.of())\n .maxWaitSecs(1L)\n .metadata(Map.of())\n .status(SinkStatusIn.ENABLED)\n .uid(\"unique-identifier\")\n .config(new StreamSinkPatchConfig.AzureBlobStorage(new AzureBlobStoragePatchConfig()\n .accessKey(\"sample string\")\n .account(\"sample string\")\n .container(\"sample string\"))));" - label: Ruby lang: Ruby source: "response = svix\n .streaming\n .sink\n .patch(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n {\n batchSize: 100,\n eventTypes: [],\n maxWaitSecs: 1,\n metadata: {},\n status: SinkStatusIn::ENABLED,\n uid: \"unique-identifier\",\n config: {accessKey: \"sample string\", account: \"sample string\", container: \"sample string\"},\n type: \"azureBlobStorage\"\n }\n )" - label: Rust lang: Rust source: "let response = svix\n .streaming()\n .sink()\n .patch(\n \"strm_31Dc0DD72P5AddYUguyBd\".to_string(),\n \"sink_31Dc11sPYY9aLDkwPuGMa\".to_string(),\n StreamSinkPatch {\n batch_size: js_option::JsOption::Some(100),\n event_types: Some(vec![]),\n max_wait_secs: js_option::JsOption::Some(1),\n metadata: Some(HashMap::new()),\n status: js_option::JsOption::Some(SinkStatusIn::Enabled),\n uid: js_option::JsOption::Some(\"unique-identifier\".to_string()),\n config: StreamSinkPatchConfig::AzureBlobStorage(AzureBlobStoragePatchConfig {\n access_key: Some(\"sample string\".to_string()),\n account: Some(\"sample string\".to_string()),\n container: Some(\"sample string\".to_string()),\n }),\n },\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Streaming.Sink.Patch(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n new StreamSinkPatch\n {\n BatchSize = 100,\n EventTypes = [],\n MaxWaitSecs = 1,\n Metadata = [],\n Status = SinkStatusIn.Enabled,\n Uid = \"unique-identifier\",\n Config = StreamSinkPatchConfig.AzureBlobStorage(\n (\n new AzureBlobStoragePatchConfig\n {\n AccessKey = \"sample string\",\n Account = \"sample string\",\n Container = \"sample string\",\n }\n )\n ),\n }\n);" - label: PHP lang: PHP source: "$response = $svix->streaming->sink->patch(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n StreamSinkPatch::create()\n ->withBatchSize(100)\n ->withEventTypes([])\n ->withMaxWaitSecs(1)\n ->withMetadata([])\n ->withStatus(SinkStatusIn::ENABLED)\n ->withUid(\"unique-identifier\")\n);" - label: CLI lang: Shell source: "svix streaming sink patch \"strm_31Dc0DD72P5AddYUguyBd\" \"sink_31Dc11sPYY9aLDkwPuGMa\" '{\n \"batchSize\": 100,\n \"config\": {\n \"accessKey\": \"sample string\",\n \"account\": \"sample string\",\n \"container\": \"sample string\"\n },\n \"eventTypes\": [],\n \"maxWaitSecs\": 1,\n \"metadata\": {},\n \"status\": \"enabled\",\n \"type\": \"azureBlobStorage\",\n \"uid\": \"unique-identifier\"\n }'" - label: cURL lang: Shell source: "curl -X 'PATCH' \\\n 'https://api.eu.svix.com/api/v1/stream/strm_31Dc0DD72P5AddYUguyBd/sink/sink_31Dc11sPYY9aLDkwPuGMa' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Accept: application/json' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"batchSize\": 100,\n \"config\": {\n \"accessKey\": \"sample string\",\n \"account\": \"sample string\",\n \"container\": \"sample string\"\n },\n \"eventTypes\": [],\n \"maxWaitSecs\": 1,\n \"metadata\": {},\n \"status\": \"enabled\",\n \"type\": \"azureBlobStorage\",\n \"uid\": \"unique-identifier\"\n }'" /api/v1/stream/{stream_id}/sink/{sink_id}/headers: get: tags: - Sink summary: Get Sink Headers description: 'Get the HTTP sink headers. Only valid for `http` or `otelTracing` sinks.' operationId: v1.streaming.sink-headers-get parameters: - in: path name: stream_id description: The Stream's ID or UID. required: true schema: description: The Stream's ID or UID. type: string maxLength: 60 minLength: 1 example: unique-identifier style: simple - in: path name: sink_id description: The StreamSink's ID or UID. required: true schema: description: The StreamSink's ID or UID. type: string maxLength: 60 minLength: 1 example: unique-identifier style: simple responses: '200': description: 'The value of the headers is returned in the `headers` field. Sensitive headers that have been redacted are returned in the sensitive field.' content: application/json: schema: $ref: '#/components/schemas/EndpointHeadersOut' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "const response = await svix.streaming.sinkHeadersGet(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\"\n);" - label: TypeScript lang: TypeScript source: "const response = await svix.streaming.sinkHeadersGet(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\"\n);" - label: Python lang: Python source: "response = svix.streaming.sink_headers_get(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n)" - label: Python (Async) lang: Python source: "response = await svix.streaming.sink_headers_get(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n)" - label: Go lang: Go source: "response, err := svix.Streaming.SinkHeadersGet(\n\tctx,\n\t\"strm_31Dc0DD72P5AddYUguyBd\",\n\t\"sink_31Dc11sPYY9aLDkwPuGMa\",\n)" - label: Kotlin lang: Kotlin source: "val response =\n svix.streaming.sinkHeadersGet(\"strm_31Dc0DD72P5AddYUguyBd\", \"sink_31Dc11sPYY9aLDkwPuGMa\")" - label: Java lang: Java source: "var response = svix.getStreaming()\n .sinkHeadersGet(\"strm_31Dc0DD72P5AddYUguyBd\", \"sink_31Dc11sPYY9aLDkwPuGMa\");" - label: Ruby lang: Ruby source: response = svix.streaming.sink_headers_get("strm_31Dc0DD72P5AddYUguyBd", "sink_31Dc11sPYY9aLDkwPuGMa") - label: Rust lang: Rust source: "let response = svix\n .streaming()\n .sink_headers_get(\n \"strm_31Dc0DD72P5AddYUguyBd\".to_string(),\n \"sink_31Dc11sPYY9aLDkwPuGMa\".to_string(),\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Streaming.SinkHeadersGet(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\"\n);" - label: PHP lang: PHP source: "$response = $svix->streaming->sinkHeadersGet(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\"\n);" - label: CLI lang: Shell source: svix streaming sink-headers-get "strm_31Dc0DD72P5AddYUguyBd" "sink_31Dc11sPYY9aLDkwPuGMa" - label: cURL lang: Shell source: "curl -X 'GET' \\\n 'https://api.eu.svix.com/api/v1/stream/strm_31Dc0DD72P5AddYUguyBd/sink/sink_31Dc11sPYY9aLDkwPuGMa/headers' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Accept: application/json'" patch: tags: - Sink summary: Patch Sink Headers description: 'Updates the Sink''s headers. Only valid for `http` or `otelTracing` sinks.' operationId: v1.streaming.sink-headers-patch parameters: - in: path name: stream_id description: The Stream's ID or UID. required: true schema: description: The Stream's ID or UID. type: string maxLength: 60 minLength: 1 example: unique-identifier style: simple - in: path name: sink_id description: The StreamSink's ID or UID. required: true schema: description: The StreamSink's ID or UID. type: string maxLength: 60 minLength: 1 example: unique-identifier style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/HttpSinkHeadersPatchIn' required: true responses: '200': description: 'The value of the headers is returned in the `headers` field. Sensitive headers that have been redacted are returned in the sensitive field.' content: application/json: schema: $ref: '#/components/schemas/EndpointHeadersOut' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "const response = await svix.streaming.sinkHeadersPatch(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n {\n headers: { \"X-Example\": \"123\", \"X-Foobar\": \"Bar\" },\n }\n);" - label: TypeScript lang: TypeScript source: "const response = await svix.streaming.sinkHeadersPatch(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n {\n headers: { \"X-Example\": \"123\", \"X-Foobar\": \"Bar\" },\n }\n);" - label: Python lang: Python source: "response = svix.streaming.sink_headers_patch(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n HttpSinkHeadersPatchIn(\n headers={\"X-Example\": \"123\", \"X-Foobar\": \"Bar\"},\n ),\n)" - label: Python (Async) lang: Python source: "response = await svix.streaming.sink_headers_patch(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n HttpSinkHeadersPatchIn(\n headers={\"X-Example\": \"123\", \"X-Foobar\": \"Bar\"},\n ),\n)" - label: Go lang: Go source: "response, err := svix.Streaming.SinkHeadersPatch(\n\tctx,\n\t\"strm_31Dc0DD72P5AddYUguyBd\",\n\t\"sink_31Dc11sPYY9aLDkwPuGMa\",\n\tHttpSinkHeadersPatchIn{Headers: map[string]string{\"X-Example\": \"123\", \"X-Foobar\": \"Bar\"}},\n)" - label: Kotlin lang: Kotlin source: "val response =\n svix.streaming.sinkHeadersPatch(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n HttpSinkHeadersPatchIn(headers = mapOf(\"X-Example\" to \"123\", \"X-Foobar\" to \"Bar\")),\n )" - label: Java lang: Java source: "var response = svix.getStreaming()\n .sinkHeadersPatch(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n new HttpSinkHeadersPatchIn()\n .headers(\n Map.ofEntries(Map.entry(\"X-Example\", \"123\"), Map.entry(\"X-Foobar\", \"Bar\"))));" - label: Ruby lang: Ruby source: "response = svix\n .streaming\n .sink_headers_patch(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n {headers: {:\"X-Example\" => \"123\", :\"X-Foobar\" => \"Bar\"}}\n )" - label: Rust lang: Rust source: "let response = svix\n .streaming()\n .sink_headers_patch(\n \"strm_31Dc0DD72P5AddYUguyBd\".to_string(),\n \"sink_31Dc11sPYY9aLDkwPuGMa\".to_string(),\n HttpSinkHeadersPatchIn {\n headers: HashMap::from([\n (\"X-Example\".to_string(), \"123\".to_string()),\n (\"X-Foobar\".to_string(), \"Bar\".to_string()),\n ]),\n },\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Streaming.SinkHeadersPatch(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n new HttpSinkHeadersPatchIn\n {\n Headers = new() { { \"X-Example\", \"123\" }, { \"X-Foobar\", \"Bar\" } },\n }\n);" - label: PHP lang: PHP source: "$response = $svix->streaming->sinkHeadersPatch(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n HttpSinkHeadersPatchIn::create(\n headers: [\"X-Example\" => \"123\", \"X-Foobar\" => \"Bar\"]\n )\n\n);" - label: CLI lang: Shell source: "svix streaming sink-headers-patch \"strm_31Dc0DD72P5AddYUguyBd\" \"sink_31Dc11sPYY9aLDkwPuGMa\" '{\n \"headers\": {\n \"X-Example\": \"123\",\n \"X-Foobar\": \"Bar\"\n }\n }'" - label: cURL lang: Shell source: "curl -X 'PATCH' \\\n 'https://api.eu.svix.com/api/v1/stream/strm_31Dc0DD72P5AddYUguyBd/sink/sink_31Dc11sPYY9aLDkwPuGMa/headers' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Accept: application/json' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"headers\": {\n \"X-Example\": \"123\",\n \"X-Foobar\": \"Bar\"\n }\n }'" /api/v1/stream/{stream_id}/sink/{sink_id}/secret: get: tags: - Sink summary: Get Sink Secret description: 'Get the sink''s signing secret (only supported for http sinks) This is used to verify the authenticity of the delivery. For more information please refer to [the consuming webhooks docs](https://docs.svix.com/consuming-webhooks/).' operationId: v1.streaming.sink.get-secret parameters: - in: path name: stream_id description: The Stream's ID or UID. required: true schema: description: The Stream's ID or UID. type: string maxLength: 60 minLength: 1 example: unique-identifier style: simple - in: path name: sink_id description: The StreamSink's ID or UID. required: true schema: description: The StreamSink's ID or UID. type: string maxLength: 60 minLength: 1 example: unique-identifier style: simple responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/SinkSecretOut' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "const response = await svix.streaming.sink.getSecret(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\"\n);" - label: TypeScript lang: TypeScript source: "const response = await svix.streaming.sink.getSecret(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\"\n);" - label: Python lang: Python source: "response = svix.streaming.sink.get_secret(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n)" - label: Python (Async) lang: Python source: "response = await svix.streaming.sink.get_secret(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n)" - label: Go lang: Go source: "response, err := svix.Streaming.Sink.GetSecret(\n\tctx,\n\t\"strm_31Dc0DD72P5AddYUguyBd\",\n\t\"sink_31Dc11sPYY9aLDkwPuGMa\",\n)" - label: Kotlin lang: Kotlin source: "val response =\n svix.streaming.sink.getSecret(\"strm_31Dc0DD72P5AddYUguyBd\", \"sink_31Dc11sPYY9aLDkwPuGMa\")" - label: Java lang: Java source: "var response = svix.getStreaming()\n .getSink()\n .getSecret(\"strm_31Dc0DD72P5AddYUguyBd\", \"sink_31Dc11sPYY9aLDkwPuGMa\");" - label: Ruby lang: Ruby source: response = svix.streaming.sink.get_secret("strm_31Dc0DD72P5AddYUguyBd", "sink_31Dc11sPYY9aLDkwPuGMa") - label: Rust lang: Rust source: "let response = svix\n .streaming()\n .sink()\n .get_secret(\n \"strm_31Dc0DD72P5AddYUguyBd\".to_string(),\n \"sink_31Dc11sPYY9aLDkwPuGMa\".to_string(),\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Streaming.Sink.GetSecret(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\"\n);" - label: PHP lang: PHP source: "$response = $svix->streaming->sink->getSecret(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\"\n);" - label: CLI lang: Shell source: svix streaming sink get-secret "strm_31Dc0DD72P5AddYUguyBd" "sink_31Dc11sPYY9aLDkwPuGMa" - label: cURL lang: Shell source: "curl -X 'GET' \\\n 'https://api.eu.svix.com/api/v1/stream/strm_31Dc0DD72P5AddYUguyBd/sink/sink_31Dc11sPYY9aLDkwPuGMa/secret' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Accept: application/json'" /api/v1/stream/{stream_id}/sink/{sink_id}/secret/rotate: post: tags: - Sink summary: Rotate Sink Secret description: Rotates the signing secret (only supported for http sinks). operationId: v1.streaming.sink.rotate-secret parameters: - in: path name: stream_id description: The Stream's ID or UID. required: true schema: description: The Stream's ID or UID. type: string maxLength: 60 minLength: 1 example: unique-identifier style: simple - in: path name: sink_id description: The StreamSink's ID or UID. required: true schema: description: The StreamSink's ID or UID. type: string maxLength: 60 minLength: 1 example: unique-identifier style: simple - in: header name: idempotency-key description: The request's idempotency key schema: type: string style: simple - in: header name: idempotency-key description: The request's idempotency key schema: type: string style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/EndpointSecretRotateIn' required: true responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/EmptyResponse' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "const response = await svix.streaming.sink.rotateSecret(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n {\n key: \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\",\n }\n);" - label: TypeScript lang: TypeScript source: "const response = await svix.streaming.sink.rotateSecret(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n {\n key: \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\",\n }\n);" - label: Python lang: Python source: "response = svix.streaming.sink.rotate_secret(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n EndpointSecretRotateIn(\n key=\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\",\n ),\n)" - label: Python (Async) lang: Python source: "response = await svix.streaming.sink.rotate_secret(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n EndpointSecretRotateIn(\n key=\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\",\n ),\n)" - label: Go lang: Go source: "response, err := svix.Streaming.Sink.RotateSecret(\n\tctx,\n\t\"strm_31Dc0DD72P5AddYUguyBd\",\n\t\"sink_31Dc11sPYY9aLDkwPuGMa\",\n\tEndpointSecretRotateIn{Key: new(\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\")},\n\tnil,\n)" - label: Kotlin lang: Kotlin source: "val response =\n svix.streaming.sink.rotateSecret(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n EndpointSecretRotateIn(key = \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"),\n )" - label: Java lang: Java source: "var response = svix.getStreaming()\n .getSink()\n .rotateSecret(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n new EndpointSecretRotateIn().key(\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"));" - label: Ruby lang: Ruby source: "response = svix\n .streaming\n .sink\n .rotate_secret(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n {key: \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"}\n )" - label: Rust lang: Rust source: "let response = svix\n .streaming()\n .sink()\n .rotate_secret(\n \"strm_31Dc0DD72P5AddYUguyBd\".to_string(),\n \"sink_31Dc11sPYY9aLDkwPuGMa\".to_string(),\n EndpointSecretRotateIn {\n key: Some(\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\".to_string()),\n },\n None,\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Streaming.Sink.RotateSecret(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n new EndpointSecretRotateIn { Key = \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\" }\n);" - label: PHP lang: PHP source: "$response = $svix->streaming->sink->rotateSecret(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n EndpointSecretRotateIn::create()\n ->withKey(\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\")\n);" - label: CLI lang: Shell source: "svix streaming sink rotate-secret \"strm_31Dc0DD72P5AddYUguyBd\" \"sink_31Dc11sPYY9aLDkwPuGMa\" '{\n \"key\": \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"\n }'" - label: cURL lang: Shell source: "curl -X 'POST' \\\n 'https://api.eu.svix.com/api/v1/stream/strm_31Dc0DD72P5AddYUguyBd/sink/sink_31Dc11sPYY9aLDkwPuGMa/secret/rotate' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Accept: application/json' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"key\": \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"\n }'" /api/v1/stream/{stream_id}/sink/{sink_id}/transformation: get: tags: - Sink summary: Get Sink Transformation description: Get the transformation code associated with this sink. operationId: v1.streaming.sink-transformation-get parameters: - in: path name: stream_id description: The Stream's ID or UID. required: true schema: description: The Stream's ID or UID. type: string maxLength: 60 minLength: 1 example: unique-identifier style: simple - in: path name: sink_id description: The StreamSink's ID or UID. required: true schema: description: The StreamSink's ID or UID. type: string maxLength: 60 minLength: 1 example: unique-identifier style: simple responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/SinkTransformationOut' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "const response = await svix.streaming.sinkTransformationGet(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\"\n);" - label: TypeScript lang: TypeScript source: "const response = await svix.streaming.sinkTransformationGet(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\"\n);" - label: Python lang: Python source: "response = svix.streaming.sink_transformation_get(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n)" - label: Python (Async) lang: Python source: "response = await svix.streaming.sink_transformation_get(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n)" - label: Go lang: Go source: "response, err := svix.Streaming.SinkTransformationGet(\n\tctx,\n\t\"strm_31Dc0DD72P5AddYUguyBd\",\n\t\"sink_31Dc11sPYY9aLDkwPuGMa\",\n)" - label: Kotlin lang: Kotlin source: "val response =\n svix.streaming.sinkTransformationGet(\"strm_31Dc0DD72P5AddYUguyBd\", \"sink_31Dc11sPYY9aLDkwPuGMa\")" - label: Java lang: Java source: "var response = svix.getStreaming()\n .sinkTransformationGet(\"strm_31Dc0DD72P5AddYUguyBd\", \"sink_31Dc11sPYY9aLDkwPuGMa\");" - label: Ruby lang: Ruby source: response = svix.streaming.sink_transformation_get("strm_31Dc0DD72P5AddYUguyBd", "sink_31Dc11sPYY9aLDkwPuGMa") - label: Rust lang: Rust source: "let response = svix\n .streaming()\n .sink_transformation_get(\n \"strm_31Dc0DD72P5AddYUguyBd\".to_string(),\n \"sink_31Dc11sPYY9aLDkwPuGMa\".to_string(),\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Streaming.SinkTransformationGet(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\"\n);" - label: PHP lang: PHP source: "$response = $svix->streaming->sinkTransformationGet(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\"\n);" - label: CLI lang: Shell source: svix streaming sink-transformation-get "strm_31Dc0DD72P5AddYUguyBd" "sink_31Dc11sPYY9aLDkwPuGMa" - label: cURL lang: Shell source: "curl -X 'GET' \\\n 'https://api.eu.svix.com/api/v1/stream/strm_31Dc0DD72P5AddYUguyBd/sink/sink_31Dc11sPYY9aLDkwPuGMa/transformation' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Accept: application/json'" patch: tags: - Sink summary: Set Sink Transformation description: Set or unset the transformation code associated with this sink. operationId: v1.streaming.sink.transformation-partial-update parameters: - in: path name: stream_id description: The Stream's ID or UID. required: true schema: description: The Stream's ID or UID. type: string maxLength: 60 minLength: 1 example: unique-identifier style: simple - in: path name: sink_id description: The StreamSink's ID or UID. required: true schema: description: The StreamSink's ID or UID. type: string maxLength: 60 minLength: 1 example: unique-identifier style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/SinkTransformIn' required: true responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/EmptyResponse' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/HttpErrorOut' security: - HTTPBearer: [] x-codeSamples: - label: JavaScript lang: TypeScript source: "const response = await svix.streaming.sink.transformationPartialUpdate(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n {\n code: \"sample string\",\n }\n);" - label: TypeScript lang: TypeScript source: "const response = await svix.streaming.sink.transformationPartialUpdate(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n {\n code: \"sample string\",\n }\n);" - label: Python lang: Python source: "response = svix.streaming.sink.transformation_partial_update(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n SinkTransformIn(\n code=\"sample string\",\n ),\n)" - label: Python (Async) lang: Python source: "response = await svix.streaming.sink.transformation_partial_update(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n SinkTransformIn(\n code=\"sample string\",\n ),\n)" - label: Go lang: Go source: "response, err := svix.Streaming.Sink.TransformationPartialUpdate(\n\tctx,\n\t\"strm_31Dc0DD72P5AddYUguyBd\",\n\t\"sink_31Dc11sPYY9aLDkwPuGMa\",\n\tSinkTransformIn{Code: new(\"sample string\")},\n)" - label: Kotlin lang: Kotlin source: "val response =\n svix.streaming.sink.transformationPartialUpdate(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n SinkTransformIn(code = \"sample string\"),\n )" - label: Java lang: Java source: "var response = svix.getStreaming()\n .getSink()\n .transformationPartialUpdate(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n new SinkTransformIn().code(\"sample string\"));" - label: Ruby lang: Ruby source: "response = svix\n .streaming\n .sink\n .transformation_partial_update(\"strm_31Dc0DD72P5AddYUguyBd\", \"sink_31Dc11sPYY9aLDkwPuGMa\", {code: \"sample string\"})" - label: Rust lang: Rust source: "let response = svix\n .streaming()\n .sink()\n .transformation_partial_update(\n \"strm_31Dc0DD72P5AddYUguyBd\".to_string(),\n \"sink_31Dc11sPYY9aLDkwPuGMa\".to_string(),\n SinkTransformIn {\n code: Some(\"sample string\".to_string()),\n },\n )\n .await?;" - label: C# lang: C# source: "var response = svix.Streaming.Sink.TransformationPartialUpdate(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n new SinkTransformIn { Code = \"sample string\" }\n);" - label: PHP lang: PHP source: "$response = $svix->streaming->sink->transformationPartialUpdate(\n \"strm_31Dc0DD72P5AddYUguyBd\",\n \"sink_31Dc11sPYY9aLDkwPuGMa\",\n SinkTransformIn::create()\n ->withCode(\"sample string\")\n);" - label: CLI lang: Shell source: "svix streaming sink transformation-partial-update \"strm_31Dc0DD72P5AddYUguyBd\" \"sink_31Dc11sPYY9aLDkwPuGMa\" '{\n \"code\": \"sample string\"\n }'" - label: cURL lang: Shell source: "curl -X 'PATCH' \\\n 'https://api.eu.svix.com/api/v1/stream/strm_31Dc0DD72P5AddYUguyBd/sink/sink_31Dc11sPYY9aLDkwPuGMa/transformation' \\\n -H 'Authorization: Bearer AUTH_TOKEN' \\\n -H 'Accept: application/json' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"code\": \"sample string\"\n }'" components: schemas: StreamSinkOut_amazonS3: type: object required: - batchSize - config - createdAt - currentIterator - id - maxWaitSecs - metadata - status - type - updatedAt properties: config: $ref: '#/components/schemas/S3Config' type: type: string enum: - amazonS3 batchSize: type: integer format: int32 createdAt: type: string format: date-time currentIterator: type: string eventTypes: default: [] type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup failureReason: type: string nullable: true id: description: The sink's ID. type: string maxLength: 27 minLength: 26 pattern: ^sink_[A-Za-z0-9]{21,22}$ example: sink_2yZwUhtgs5Ai8T9yRQJXA maxWaitSecs: type: integer format: int32 metadata: type: object additionalProperties: type: string nextRetryAt: type: string format: date-time nullable: true status: $ref: '#/components/schemas/SinkStatus' uid: description: The sink's UID. type: string maxLength: 60 minLength: 1 pattern: ^(?!sink_)[a-zA-Z0-9_-]+$ example: unique-identifier nullable: true updatedAt: type: string format: date-time StreamSinkPatch_amazonS3: type: object required: - config - type properties: config: $ref: '#/components/schemas/AmazonS3PatchConfig' type: type: string enum: - amazonS3 batchSize: default: null type: integer format: uint16 maximum: 1000.0 minimum: 1.0 example: 100 nullable: true eventTypes: type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup maxWaitSecs: default: null type: integer format: uint16 maximum: 300.0 minimum: 0.0 nullable: true metadata: type: object additionalProperties: type: string status: default: null $ref: '#/components/schemas/SinkStatusIn' nullable: true uid: description: The StreamSink's UID. type: string maxLength: 60 minLength: 1 pattern: ^(?!sink_)[a-zA-Z0-9_-]+$ example: unique-identifier nullable: true OtelTracingPatchConfig: type: object properties: url: type: string format: uri ValidationError: description: Validation errors have their own schema to provide context for invalid requests eg. mismatched types and out of bounds values. There may be any number of these per 422 UNPROCESSABLE ENTITY error. type: object required: - loc - msg - type properties: loc: description: The location as a [`Vec`] of [`String`]s -- often in the form `["body", "field_name"]`, `["query", "field_name"]`, etc. They may, however, be arbitrarily deep. type: array items: type: string msg: description: The message accompanying the validation error item. type: string type: description: The type of error, often "type_error" or "value_error", but sometimes with more context like as "value_error.number.not_ge" type: string StreamSinkPatch_http: type: object required: - config - type properties: config: $ref: '#/components/schemas/HttpPatchConfig' type: type: string enum: - http batchSize: default: null type: integer format: uint16 maximum: 1000.0 minimum: 1.0 example: 100 nullable: true eventTypes: type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup maxWaitSecs: default: null type: integer format: uint16 maximum: 300.0 minimum: 0.0 nullable: true metadata: type: object additionalProperties: type: string status: default: null $ref: '#/components/schemas/SinkStatusIn' nullable: true uid: description: The StreamSink's UID. type: string maxLength: 60 minLength: 1 pattern: ^(?!sink_)[a-zA-Z0-9_-]+$ example: unique-identifier nullable: true S3Config: type: object required: - accessKeyId - bucket - region - secretAccessKey properties: accessKeyId: type: string bucket: type: string endpointUrl: type: string format: uri nullable: true region: type: string secretAccessKey: type: string StreamSinkPatch: type: object oneOf: - $ref: '#/components/schemas/StreamSinkPatch_poller' - $ref: '#/components/schemas/StreamSinkPatch_azureBlobStorage' - $ref: '#/components/schemas/StreamSinkPatch_otelTracing' - $ref: '#/components/schemas/StreamSinkPatch_http' - $ref: '#/components/schemas/StreamSinkPatch_amazonS3' - $ref: '#/components/schemas/StreamSinkPatch_googleCloudStorage' properties: batchSize: default: null type: integer format: uint16 maximum: 1000.0 minimum: 1.0 example: 100 nullable: true eventTypes: type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup maxWaitSecs: default: null type: integer format: uint16 maximum: 300.0 minimum: 0.0 nullable: true metadata: type: object additionalProperties: type: string status: default: null $ref: '#/components/schemas/SinkStatusIn' nullable: true uid: description: The StreamSink's UID. type: string maxLength: 60 minLength: 1 pattern: ^(?!sink_)[a-zA-Z0-9_-]+$ example: unique-identifier nullable: true discriminator: mapping: amazonS3: '#/components/schemas/StreamSinkPatch_amazonS3' azureBlobStorage: '#/components/schemas/StreamSinkPatch_azureBlobStorage' googleCloudStorage: '#/components/schemas/StreamSinkPatch_googleCloudStorage' http: '#/components/schemas/StreamSinkPatch_http' otelTracing: '#/components/schemas/StreamSinkPatch_otelTracing' poller: '#/components/schemas/StreamSinkPatch_poller' propertyName: type StreamSinkIn: type: object oneOf: - $ref: '#/components/schemas/StreamSinkIn_poller' - $ref: '#/components/schemas/StreamSinkIn_azureBlobStorage' - $ref: '#/components/schemas/StreamSinkIn_otelTracing' - $ref: '#/components/schemas/StreamSinkIn_http' - $ref: '#/components/schemas/StreamSinkIn_amazonS3' - $ref: '#/components/schemas/StreamSinkIn_googleCloudStorage' properties: batchSize: description: How many events will be batched in a request to the Sink. default: 100 type: integer format: uint16 maximum: 1000.0 minimum: 1.0 example: 100 eventTypes: description: 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. default: [] type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup maxWaitSecs: description: '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.' default: 0 type: integer format: uint16 maximum: 300.0 minimum: 0.0 metadata: default: {} type: object additionalProperties: type: string status: description: 'Whether the sink will receive events. If the sink is `enabled`, any events posted to the stream will be dispatched to the Sink in the same order that events were posted to the stream. If the sink is `disabled`, events will not be dispatched to the sink until the sink is reenabled.' default: enabled $ref: '#/components/schemas/SinkStatusIn' uid: description: An optional unique identifier for the sink. type: string maxLength: 60 minLength: 1 pattern: ^(?!sink_)[a-zA-Z0-9_-]+$ example: unique-identifier nullable: true discriminator: mapping: amazonS3: '#/components/schemas/StreamSinkIn_amazonS3' azureBlobStorage: '#/components/schemas/StreamSinkIn_azureBlobStorage' googleCloudStorage: '#/components/schemas/StreamSinkIn_googleCloudStorage' http: '#/components/schemas/StreamSinkIn_http' otelTracing: '#/components/schemas/StreamSinkIn_otelTracing' poller: '#/components/schemas/StreamSinkIn_poller' propertyName: type Ordering: description: Defines the ordering in a listing of results. type: string enum: - ascending - descending SinkTransformationOut: type: object required: - enabled properties: code: type: string nullable: true enabled: type: boolean SinkStatusIn: type: string enum: - enabled - disabled AzureBlobStorageConfig: type: object required: - accessKey - account - container properties: accessKey: type: string account: type: string container: type: string StreamSinkIn_amazonS3: type: object required: - config - type properties: config: $ref: '#/components/schemas/S3Config' type: type: string enum: - amazonS3 batchSize: description: How many events will be batched in a request to the Sink. default: 100 type: integer format: uint16 maximum: 1000.0 minimum: 1.0 example: 100 eventTypes: description: 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. default: [] type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup maxWaitSecs: description: '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.' default: 0 type: integer format: uint16 maximum: 300.0 minimum: 0.0 metadata: default: {} type: object additionalProperties: type: string status: description: 'Whether the sink will receive events. If the sink is `enabled`, any events posted to the stream will be dispatched to the Sink in the same order that events were posted to the stream. If the sink is `disabled`, events will not be dispatched to the sink until the sink is reenabled.' default: enabled $ref: '#/components/schemas/SinkStatusIn' uid: description: An optional unique identifier for the sink. type: string maxLength: 60 minLength: 1 pattern: ^(?!sink_)[a-zA-Z0-9_-]+$ example: unique-identifier nullable: true GoogleCloudStoragePatchConfig: type: object properties: bucket: type: string credentials: type: string SinkStatus: type: string enum: - enabled - paused - disabled - retrying StreamSinkOut_otelTracing: type: object required: - batchSize - config - createdAt - currentIterator - id - maxWaitSecs - metadata - status - type - updatedAt properties: config: $ref: '#/components/schemas/SinkOtelV1Config' type: type: string enum: - otelTracing batchSize: type: integer format: int32 createdAt: type: string format: date-time currentIterator: type: string eventTypes: default: [] type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup failureReason: type: string nullable: true id: description: The sink's ID. type: string maxLength: 27 minLength: 26 pattern: ^sink_[A-Za-z0-9]{21,22}$ example: sink_2yZwUhtgs5Ai8T9yRQJXA maxWaitSecs: type: integer format: int32 metadata: type: object additionalProperties: type: string nextRetryAt: type: string format: date-time nullable: true status: $ref: '#/components/schemas/SinkStatus' uid: description: The sink's UID. type: string maxLength: 60 minLength: 1 pattern: ^(?!sink_)[a-zA-Z0-9_-]+$ example: unique-identifier nullable: true updatedAt: type: string format: date-time EndpointSecretRotateIn: type: object properties: key: description: 'The endpoint''s verification secret. Format: `base64` encoded random bytes optionally prefixed with `whsec_`. It is recommended to not set this and let the server generate the secret.' default: null type: string pattern: ^(whsec_)?[a-zA-Z0-9+/=]{32,100}$ example: whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD nullable: true AzureBlobStoragePatchConfig: type: object properties: accessKey: type: string account: type: string container: type: string StreamSinkIn_http: type: object required: - config - type properties: config: $ref: '#/components/schemas/SinkHttpConfig' type: type: string enum: - http batchSize: description: How many events will be batched in a request to the Sink. default: 100 type: integer format: uint16 maximum: 1000.0 minimum: 1.0 example: 100 eventTypes: description: 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. default: [] type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup maxWaitSecs: description: '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.' default: 0 type: integer format: uint16 maximum: 300.0 minimum: 0.0 metadata: default: {} type: object additionalProperties: type: string status: description: 'Whether the sink will receive events. If the sink is `enabled`, any events posted to the stream will be dispatched to the Sink in the same order that events were posted to the stream. If the sink is `disabled`, events will not be dispatched to the sink until the sink is reenabled.' default: enabled $ref: '#/components/schemas/SinkStatusIn' uid: description: An optional unique identifier for the sink. type: string maxLength: 60 minLength: 1 pattern: ^(?!sink_)[a-zA-Z0-9_-]+$ example: unique-identifier nullable: true SinkHttpConfig: type: object required: - url properties: headers: default: {} type: object additionalProperties: type: string key: default: null type: string nullable: true url: type: string format: uri AmazonS3PatchConfig: type: object properties: accessKeyId: type: string bucket: type: string endpointUrl: type: string format: uri region: type: string secretAccessKey: type: string HttpErrorOut: title: HttpError type: object required: - code - detail properties: code: type: string detail: type: string StreamSinkIn_poller: type: object required: - type properties: type: type: string enum: - poller batchSize: description: How many events will be batched in a request to the Sink. default: 100 type: integer format: uint16 maximum: 1000.0 minimum: 1.0 example: 100 eventTypes: description: 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. default: [] type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup maxWaitSecs: description: '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.' default: 0 type: integer format: uint16 maximum: 300.0 minimum: 0.0 metadata: default: {} type: object additionalProperties: type: string status: description: 'Whether the sink will receive events. If the sink is `enabled`, any events posted to the stream will be dispatched to the Sink in the same order that events were posted to the stream. If the sink is `disabled`, events will not be dispatched to the sink until the sink is reenabled.' default: enabled $ref: '#/components/schemas/SinkStatusIn' uid: description: An optional unique identifier for the sink. type: string maxLength: 60 minLength: 1 pattern: ^(?!sink_)[a-zA-Z0-9_-]+$ example: unique-identifier nullable: true StreamSinkOut_http: type: object required: - batchSize - config - createdAt - currentIterator - id - maxWaitSecs - metadata - status - type - updatedAt properties: config: $ref: '#/components/schemas/SinkHttpConfig' type: type: string enum: - http batchSize: type: integer format: int32 createdAt: type: string format: date-time currentIterator: type: string eventTypes: default: [] type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup failureReason: type: string nullable: true id: description: The sink's ID. type: string maxLength: 27 minLength: 26 pattern: ^sink_[A-Za-z0-9]{21,22}$ example: sink_2yZwUhtgs5Ai8T9yRQJXA maxWaitSecs: type: integer format: int32 metadata: type: object additionalProperties: type: string nextRetryAt: type: string format: date-time nullable: true status: $ref: '#/components/schemas/SinkStatus' uid: description: The sink's UID. type: string maxLength: 60 minLength: 1 pattern: ^(?!sink_)[a-zA-Z0-9_-]+$ example: unique-identifier nullable: true updatedAt: type: string format: date-time StreamSinkOut_azureBlobStorage: type: object required: - batchSize - config - createdAt - currentIterator - id - maxWaitSecs - metadata - status - type - updatedAt properties: config: $ref: '#/components/schemas/AzureBlobStorageConfig' type: type: string enum: - azureBlobStorage batchSize: type: integer format: int32 createdAt: type: string format: date-time currentIterator: type: string eventTypes: default: [] type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup failureReason: type: string nullable: true id: description: The sink's ID. type: string maxLength: 27 minLength: 26 pattern: ^sink_[A-Za-z0-9]{21,22}$ example: sink_2yZwUhtgs5Ai8T9yRQJXA maxWaitSecs: type: integer format: int32 metadata: type: object additionalProperties: type: string nextRetryAt: type: string format: date-time nullable: true status: $ref: '#/components/schemas/SinkStatus' uid: description: The sink's UID. type: string maxLength: 60 minLength: 1 pattern: ^(?!sink_)[a-zA-Z0-9_-]+$ example: unique-identifier nullable: true updatedAt: type: string format: date-time StreamSinkIn_googleCloudStorage: type: object required: - config - type properties: config: $ref: '#/components/schemas/GoogleCloudStorageConfig' type: type: string enum: - googleCloudStorage batchSize: description: How many events will be batched in a request to the Sink. default: 100 type: integer format: uint16 maximum: 1000.0 minimum: 1.0 example: 100 eventTypes: description: 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. default: [] type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup maxWaitSecs: description: '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.' default: 0 type: integer format: uint16 maximum: 300.0 minimum: 0.0 metadata: default: {} type: object additionalProperties: type: string status: description: 'Whether the sink will receive events. If the sink is `enabled`, any events posted to the stream will be dispatched to the Sink in the same order that events were posted to the stream. If the sink is `disabled`, events will not be dispatched to the sink until the sink is reenabled.' default: enabled $ref: '#/components/schemas/SinkStatusIn' uid: description: An optional unique identifier for the sink. type: string maxLength: 60 minLength: 1 pattern: ^(?!sink_)[a-zA-Z0-9_-]+$ example: unique-identifier nullable: true StreamSinkPatch_azureBlobStorage: type: object required: - config - type properties: config: $ref: '#/components/schemas/AzureBlobStoragePatchConfig' type: type: string enum: - azureBlobStorage batchSize: default: null type: integer format: uint16 maximum: 1000.0 minimum: 1.0 example: 100 nullable: true eventTypes: type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup maxWaitSecs: default: null type: integer format: uint16 maximum: 300.0 minimum: 0.0 nullable: true metadata: type: object additionalProperties: type: string status: default: null $ref: '#/components/schemas/SinkStatusIn' nullable: true uid: description: The StreamSink's UID. type: string maxLength: 60 minLength: 1 pattern: ^(?!sink_)[a-zA-Z0-9_-]+$ example: unique-identifier nullable: true SinkOtelV1Config: type: object required: - url properties: headers: default: {} type: object additionalProperties: type: string url: type: string format: uri StreamSinkOut: type: object oneOf: - $ref: '#/components/schemas/StreamSinkOut_poller' - $ref: '#/components/schemas/StreamSinkOut_azureBlobStorage' - $ref: '#/components/schemas/StreamSinkOut_otelTracing' - $ref: '#/components/schemas/StreamSinkOut_http' - $ref: '#/components/schemas/StreamSinkOut_amazonS3' - $ref: '#/components/schemas/StreamSinkOut_googleCloudStorage' required: - batchSize - createdAt - currentIterator - id - maxWaitSecs - metadata - status - updatedAt properties: batchSize: type: integer format: int32 createdAt: type: string format: date-time currentIterator: type: string eventTypes: default: [] type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup failureReason: type: string nullable: true id: description: The sink's ID. type: string maxLength: 27 minLength: 26 pattern: ^sink_[A-Za-z0-9]{21,22}$ example: sink_2yZwUhtgs5Ai8T9yRQJXA maxWaitSecs: type: integer format: int32 metadata: type: object additionalProperties: type: string nextRetryAt: type: string format: date-time nullable: true status: $ref: '#/components/schemas/SinkStatus' uid: description: The sink's UID. type: string maxLength: 60 minLength: 1 pattern: ^(?!sink_)[a-zA-Z0-9_-]+$ example: unique-identifier nullable: true updatedAt: type: string format: date-time discriminator: mapping: amazonS3: '#/components/schemas/StreamSinkOut_amazonS3' azureBlobStorage: '#/components/schemas/StreamSinkOut_azureBlobStorage' googleCloudStorage: '#/components/schemas/StreamSinkOut_googleCloudStorage' http: '#/components/schemas/StreamSinkOut_http' otelTracing: '#/components/schemas/StreamSinkOut_otelTracing' poller: '#/components/schemas/StreamSinkOut_poller' propertyName: type StreamSinkOut_googleCloudStorage: type: object required: - batchSize - config - createdAt - currentIterator - id - maxWaitSecs - metadata - status - type - updatedAt properties: config: $ref: '#/components/schemas/GoogleCloudStorageConfig' type: type: string enum: - googleCloudStorage batchSize: type: integer format: int32 createdAt: type: string format: date-time currentIterator: type: string eventTypes: default: [] type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup failureReason: type: string nullable: true id: description: The sink's ID. type: string maxLength: 27 minLength: 26 pattern: ^sink_[A-Za-z0-9]{21,22}$ example: sink_2yZwUhtgs5Ai8T9yRQJXA maxWaitSecs: type: integer format: int32 metadata: type: object additionalProperties: type: string nextRetryAt: type: string format: date-time nullable: true status: $ref: '#/components/schemas/SinkStatus' uid: description: The sink's UID. type: string maxLength: 60 minLength: 1 pattern: ^(?!sink_)[a-zA-Z0-9_-]+$ example: unique-identifier nullable: true updatedAt: type: string format: date-time HttpSinkHeadersPatchIn: type: object required: - headers properties: headers: type: object additionalProperties: type: string nullable: true example: X-Example: '123' X-Foobar: Bar SinkSecretOut: type: object properties: key: description: 'The endpoint''s verification secret. Format: `base64` encoded random bytes optionally prefixed with `whsec_`. It is recommended to not set this and let the server generate the secret.' type: string pattern: ^(whsec_)?[a-zA-Z0-9+/=]{32,100}$ example: whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD nullable: true StreamSinkPatch_otelTracing: type: object required: - config - type properties: config: $ref: '#/components/schemas/OtelTracingPatchConfig' type: type: string enum: - otelTracing batchSize: default: null type: integer format: uint16 maximum: 1000.0 minimum: 1.0 example: 100 nullable: true eventTypes: type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup maxWaitSecs: default: null type: integer format: uint16 maximum: 300.0 minimum: 0.0 nullable: true metadata: type: object additionalProperties: type: string status: default: null $ref: '#/components/schemas/SinkStatusIn' nullable: true uid: description: The StreamSink's UID. type: string maxLength: 60 minLength: 1 pattern: ^(?!sink_)[a-zA-Z0-9_-]+$ example: unique-identifier nullable: true StreamSinkPatch_poller: type: object required: - type properties: type: type: string enum: - poller batchSize: default: null type: integer format: uint16 maximum: 1000.0 minimum: 1.0 example: 100 nullable: true eventTypes: type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup maxWaitSecs: default: null type: integer format: uint16 maximum: 300.0 minimum: 0.0 nullable: true metadata: type: object additionalProperties: type: string status: default: null $ref: '#/components/schemas/SinkStatusIn' nullable: true uid: description: The StreamSink's UID. type: string maxLength: 60 minLength: 1 pattern: ^(?!sink_)[a-zA-Z0-9_-]+$ example: unique-identifier nullable: true GoogleCloudStorageConfig: description: 'Configuration for a Google Cloud Storage sink. Write stream events into the named bucket using the supplied Google Cloud credentials.' type: object required: - bucket - credentials properties: bucket: type: string credentials: description: Google Cloud Credentials JSON Object as a string. type: string StreamSinkIn_otelTracing: type: object required: - config - type properties: config: $ref: '#/components/schemas/SinkOtelV1Config' type: type: string enum: - otelTracing batchSize: description: How many events will be batched in a request to the Sink. default: 100 type: integer format: uint16 maximum: 1000.0 minimum: 1.0 example: 100 eventTypes: description: 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. default: [] type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup maxWaitSecs: description: '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.' default: 0 type: integer format: uint16 maximum: 300.0 minimum: 0.0 metadata: default: {} type: object additionalProperties: type: string status: description: 'Whether the sink will receive events. If the sink is `enabled`, any events posted to the stream will be dispatched to the Sink in the same order that events were posted to the stream. If the sink is `disabled`, events will not be dispatched to the sink until the sink is reenabled.' default: enabled $ref: '#/components/schemas/SinkStatusIn' uid: description: An optional unique identifier for the sink. type: string maxLength: 60 minLength: 1 pattern: ^(?!sink_)[a-zA-Z0-9_-]+$ example: unique-identifier nullable: true HTTPValidationError: type: object required: - detail properties: detail: type: array items: $ref: '#/components/schemas/ValidationError' ListResponse_StreamSinkOut_: type: object required: - data - done - iterator properties: data: type: array items: $ref: '#/components/schemas/StreamSinkOut' done: type: boolean iterator: type: string example: iterator nullable: true prevIterator: type: string example: -iterator nullable: true StreamSinkIn_azureBlobStorage: type: object required: - config - type properties: config: $ref: '#/components/schemas/AzureBlobStorageConfig' type: type: string enum: - azureBlobStorage batchSize: description: How many events will be batched in a request to the Sink. default: 100 type: integer format: uint16 maximum: 1000.0 minimum: 1.0 example: 100 eventTypes: description: 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. default: [] type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup maxWaitSecs: description: '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.' default: 0 type: integer format: uint16 maximum: 300.0 minimum: 0.0 metadata: default: {} type: object additionalProperties: type: string status: description: 'Whether the sink will receive events. If the sink is `enabled`, any events posted to the stream will be dispatched to the Sink in the same order that events were posted to the stream. If the sink is `disabled`, events will not be dispatched to the sink until the sink is reenabled.' default: enabled $ref: '#/components/schemas/SinkStatusIn' uid: description: An optional unique identifier for the sink. type: string maxLength: 60 minLength: 1 pattern: ^(?!sink_)[a-zA-Z0-9_-]+$ example: unique-identifier nullable: true StreamSinkPatch_googleCloudStorage: type: object required: - config - type properties: config: $ref: '#/components/schemas/GoogleCloudStoragePatchConfig' type: type: string enum: - googleCloudStorage batchSize: default: null type: integer format: uint16 maximum: 1000.0 minimum: 1.0 example: 100 nullable: true eventTypes: type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup maxWaitSecs: default: null type: integer format: uint16 maximum: 300.0 minimum: 0.0 nullable: true metadata: type: object additionalProperties: type: string status: default: null $ref: '#/components/schemas/SinkStatusIn' nullable: true uid: description: The StreamSink's UID. type: string maxLength: 60 minLength: 1 pattern: ^(?!sink_)[a-zA-Z0-9_-]+$ example: unique-identifier nullable: true StreamSinkOut_poller: type: object required: - batchSize - createdAt - currentIterator - id - maxWaitSecs - metadata - status - type - updatedAt properties: type: type: string enum: - poller batchSize: type: integer format: int32 createdAt: type: string format: date-time currentIterator: type: string eventTypes: default: [] type: array items: description: The event type's name type: string maxLength: 256 pattern: ^[a-zA-Z0-9\-_.]+$ example: user.signup failureReason: type: string nullable: true id: description: The sink's ID. type: string maxLength: 27 minLength: 26 pattern: ^sink_[A-Za-z0-9]{21,22}$ example: sink_2yZwUhtgs5Ai8T9yRQJXA maxWaitSecs: type: integer format: int32 metadata: type: object additionalProperties: type: string nextRetryAt: type: string format: date-time nullable: true status: $ref: '#/components/schemas/SinkStatus' uid: description: The sink's UID. type: string maxLength: 60 minLength: 1 pattern: ^(?!sink_)[a-zA-Z0-9_-]+$ example: unique-identifier nullable: true updatedAt: type: string format: date-time SinkTransformIn: type: object properties: code: type: string maxLength: 51200 minLength: 10 nullable: true HttpPatchConfig: type: object properties: url: type: string format: uri EmptyResponse: type: object EndpointHeadersOut: description: 'The value of the headers is returned in the `headers` field. Sensitive headers that have been redacted are returned in the sensitive field.' type: object required: - headers - sensitive properties: headers: type: object additionalProperties: type: string example: X-Example: '123' X-Foobar: Bar sensitive: type: array items: type: string uniqueItems: true example: - Authorization securitySchemes: HTTPBearer: type: http scheme: bearer description: HTTP Bearer token passed in the `Authorization` header x-tagGroups: - name: General tags: - Background Task - Environment - name: Dispatch tags: - Application - Event Type - Authentication - Endpoint - Message - Message Attempt - Integration - Connector - name: Stream tags: - Stream - Sink - Event - Stream Event Type - Stream Authentication - name: Ingest tags: - Ingest Source - Ingest Endpoint - name: Operational Webhooks tags: - Webhook - Webhook Endpoint - name: Statistics tags: - Statistics - name: Utility tags: - Health x-webhooks: background_task.finished: post: description: Sent when a background task is finished. operationId: background_task.finished requestBody: content: application/json: example: data: data: appStats: - appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: null messageDestinations: 343 status: finished task: application.stats taskId: qtask_1srOrx2ZWZBpBUvZwXKQmoEYga2 type: background_task.finished schema: $ref: '#/components/schemas/BackgroundTaskFinishedEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: background_task.finished tags: - Webhook endpoint.created: post: description: Sent when an endpoint is created. operationId: endpoint.created requestBody: content: application/json: example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: unique-endpoint-identifier type: endpoint.created schema: $ref: '#/components/schemas/EndpointCreatedEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: endpoint.created tags: - Webhook x-svix-group-name: dispatch endpoint.deleted: post: description: Sent when an endpoint is deleted. operationId: endpoint.deleted requestBody: content: application/json: example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: unique-endpoint-identifier type: endpoint.deleted schema: $ref: '#/components/schemas/EndpointDeletedEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: endpoint.deleted tags: - Webhook x-svix-group-name: dispatch endpoint.disabled: post: description: Sent when an endpoint has been automatically disabled after continuous failures, or manually via an API call. operationId: endpoint.disabled requestBody: content: application/json: example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: unique-endpoint-identifier failSince: '2022-11-06T15:04:05Z' trigger: automatic type: endpoint.disabled schema: $ref: '#/components/schemas/EndpointDisabledEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: endpoint.disabled tags: - Webhook x-svix-group-name: dispatch endpoint.enabled: post: description: Sent when an endpoint has been enabled. operationId: endpoint.enabled requestBody: content: application/json: example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: unique-endpoint-identifier type: endpoint.enabled schema: $ref: '#/components/schemas/EndpointEnabledEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: endpoint.enabled tags: - Webhook x-svix-group-name: dispatch endpoint.updated: post: description: Sent when an endpoint is updated. operationId: endpoint.updated requestBody: content: application/json: example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: unique-endpoint-identifier type: endpoint.updated schema: $ref: '#/components/schemas/EndpointUpdatedEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: endpoint.updated tags: - Webhook x-svix-group-name: dispatch ingest.endpoint.disabled: post: description: Sent when an ingest endpoint has been automatically disabled after continuous failures, or manually via an API call. operationId: ingest.endpoint.disabled requestBody: content: application/json: example: data: endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 endpointUid: unique-endpoint-identifier failSince: '2022-11-06T15:04:05Z' sourceId: src_30HT9jb8WZXKVWIO44ZDr trigger: automatic type: ingest.endpoint.disabled schema: $ref: '#/components/schemas/IngestEndpointDisabledEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: ingest.endpoint.disabled tags: - Webhook ingest.message.attempt.exhausted: post: description: Sent when a message delivery has failed (all of the retry attempts have been exhausted). operationId: ingest.message.attempt.exhausted requestBody: content: application/json: example: data: endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: id: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 500 timestamp: '2022-11-06T15:04:05Z' msgEventId: unique-msg-identifier msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 sourceId: src_30HT9jb8WZXKVWIO44ZDr type: ingest.message.attempt.exhausted schema: $ref: '#/components/schemas/IngestMessageAttemptExhaustedEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: ingest.message.attempt.exhausted tags: - Webhook ingest.message.attempt.failing: post: description: 'Sent after a message has been failing for a few times. It''s sent on the fourth failure. It complements `ingest.message.attempt.exhausted` which is sent after the last failure.' operationId: ingest.message.attempt.failing requestBody: content: application/json: example: data: endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: id: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 500 timestamp: '2022-11-06T15:04:05Z' msgEventId: unique-msg-identifier msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 sourceId: src_30HT9jb8WZXKVWIO44ZDr type: ingest.message.attempt.failing schema: $ref: '#/components/schemas/IngestMessageAttemptFailingEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: ingest.message.attempt.failing tags: - Webhook ingest.message.attempt.recovered: post: description: Sent on a successful dispatch after an earlier failure op webhook has already been sent. operationId: ingest.message.attempt.recovered requestBody: content: application/json: example: data: endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: id: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 200 timestamp: '2022-11-06T15:04:05Z' msgEventId: unique-msg-identifier msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 sourceId: src_30HT9jb8WZXKVWIO44ZDr type: ingest.message.attempt.recovered schema: $ref: '#/components/schemas/IngestMessageAttemptRecoveredEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: ingest.message.attempt.recovered tags: - Webhook message.attempt.exhausted: post: description: Sent when a message delivery has failed (all of the retry attempts have been exhausted). operationId: message.attempt.exhausted requestBody: content: application/json: example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: id: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 500 timestamp: '2022-11-06T15:04:05Z' msgEventId: unique-msg-identifier msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 type: message.attempt.exhausted schema: $ref: '#/components/schemas/MessageAttemptExhaustedEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: message.attempt.exhausted tags: - Webhook x-svix-group-name: dispatch message.attempt.failing: post: description: 'Sent after a message has been failing for a few times. It''s sent on the fourth failure. It complements `message.attempt.exhausted` which is sent after the last failure.' operationId: message.attempt.failing requestBody: content: application/json: example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: id: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 500 timestamp: '2022-11-06T15:04:05Z' msgEventId: unique-msg-identifier msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 type: message.attempt.failing schema: $ref: '#/components/schemas/MessageAttemptFailingEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: message.attempt.failing tags: - Webhook x-svix-group-name: dispatch message.attempt.log: post: description: Sent after message attempts are made. Contains metadata about message attempts and their results. In order to reduce the frequency of webhooks, these are sent in batches periodically. operationId: message.attempt.log requestBody: content: application/json: example: data: - appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier attemptCount: 1 attemptEnd: '2022-11-06T15:04:07Z' attemptId: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 attemptStart: '2022-11-06T15:04:06Z' endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 eventType: user.signup msgCreated: '2022-11-06T15:04:05Z' msgEventId: unique-msg-identifier msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 orgId: env_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 200 status: 0 type: message.attempt.log schema: $ref: '#/components/schemas/MessageAttemptLogEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: message.attempt.log tags: - Webhook x-internal: true x-svix-feature-flags: - attempt_log x-svix-group-name: dispatch message.attempt.recovered: post: description: Sent on a successful dispatch after an earlier failure op webhook has already been sent. operationId: message.attempt.recovered requestBody: content: application/json: example: data: appId: app_1srOrx2ZWZBpBUvZwXKQmoEYga2 appUid: unique-app-identifier endpointId: ep_1srOrx2ZWZBpBUvZwXKQmoEYga2 lastAttempt: id: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2 responseStatusCode: 200 timestamp: '2022-11-06T15:04:05Z' msgEventId: unique-msg-identifier msgId: msg_1srOrx2ZWZBpBUvZwXKQmoEYga2 type: message.attempt.recovered schema: $ref: '#/components/schemas/MessageAttemptRecoveredEvent' responses: 2XX: description: Return any 2XX status to indicate that the data was received successfully summary: message.attempt.recovered tags: - Webhook x-svix-group-name: dispatch