Repository: svix/svix-webhooks (language: rust)

Issue:
the api docs show a "message.attempt.recovered" event - but the code doesn´t show this event
hi there,
i would like to now if the API docs are wrong or if I am missing something in the code,
because the API docs show a [message.attempt.recovered event](https://api.svix.com/docs#tag/Webhooks/operation/message.attempt.recovered), but the [code](https://github.com/svix/svix-webhooks/blob/main/server/svix-server/src/core/operational_webhooks.rs) does not.

![image](https://github.com/user-attachments/assets/07205e42-f8fd-40c2-9fa3-464bdb4edde0)



Discussion / hints:

Fix patch:
diff --git a/server/openapi.json b/server/openapi.json
index c6e235d0f..39dddd376 100644
--- a/server/openapi.json
+++ b/server/openapi.json
@@ -1747,6 +1747,69 @@
                 ],
                 "type": "object"
             },
+            "MessageAttemptRecoveredEvent": {
+                "description": "Sent on a successful dispatch after an earlier failure op webhook has already been sent.",
+                "properties": {
+                    "data": {
+                        "$ref": "#/components/schemas/MessageAttemptRecoveredEventData"
+                    },
+                    "type": {
+                        "default": "message.attempt.recovered",
+                        "enum": [
+                            "message.attempt.recovered"
+                        ],
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "data",
+                    "type"
+                ],
+                "type": "object"
+            },
+            "MessageAttemptRecoveredEventData": {
+                "description": "Sent when a message delivery has failed (all of the retry attempts have been exhausted) as a \"message.attempt.exhausted\" type or after it's failed four times as a \"message.attempt.failing\" event.",
+                "properties": {
+                    "appId": {
+                        "example": "app_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "appUid": {
+                        "example": "unique-app-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "endpointId": {
+                        "example": "ep_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "lastAttempt": {
+                        "$ref": "#/components/schemas/MessageAttempetLast"
+                    },
+                    "msgEventId": {
+                        "example": "unique-msg-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "msgId": {
+                        "example": "msg_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "appId",
+                    "endpointId",
+                    "lastAttempt",
+                    "msgId"
+                ],
+                "type": "object"
+            },
             "MessageAttemptTriggerType": {
                 "description": "The reason an attempt was made:\n- Scheduled = 0\n- Manual = 1",
                 "enum": [
@@ -7742,6 +7805,30 @@
                     "Webhooks"
                 ]
             }
+        },
+        "MessageAttemptRecoveredEvent": {
+            "post": {
+                "description": "Sent on a successful dispatch after an earlier failure op webhook has already been sent.",
+                "operationId": "MessageAttemptRecoveredEvent",
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": "#/components/schemas/MessageAttemptRecoveredEvent"
+                            }
+                        }
+                    }
+                },
+                "responses": {
+                    "2XX": {
+                        "description": "Return any 2XX status to indicate that the data was received successfully"
+                    }
+                },
+                "summary": "MessageAttemptRecoveredEvent",
+                "tags": [
+                    "Webhooks"
+                ]
+            }
         }
     }
 }
diff --git a/server/svix-server/src/core/operational_webhooks.rs b/server/svix-server/src/core/operational_webhooks.rs
index f55e3eb04..58ef2c5c3 100644
--- a/server/svix-server/src/core/operational_webhooks.rs
+++ b/server/svix-server/src/core/operational_webhooks.rs
@@ -103,6 +103,8 @@ pub enum OperationalWebhook {
     MessageAttemptExhausted(MessageAttemptEvent),
     #[serde(rename = "message.attempt.failing")]
     MessageAttemptFailing(MessageAttemptEvent),
+    #[serde(rename = "message.attempt.recovered")]
+    MessageAttemptRecovered(MessageAttemptEvent),
 }
 
 pub type OperationalWebhookSender = Arc<OperationalWebhookSenderInner>;
diff --git a/server/svix-server/src/openapi.rs b/server/svix-server/src/openapi.rs
index 13ec56ff0..86dc822b2 100644
--- a/server/svix-server/src/openapi.rs
+++ b/server/svix-server/src/openapi.rs
@@ -415,6 +415,13 @@ mod webhooks {
         common_: MessageAttemptEvent,
     }
 
+    #[derive(JsonSchema)]
+    #[allow(unused)]
+    struct MessageAttemptRecoveredEventData {
+        #[serde(flatten)]
+        common_: MessageAttemptEvent,
+    }
+
     webhook_event!(
         EndpointCreatedEvent,
         EndpointCreatedEventData,
@@ -451,6 +458,12 @@ mod webhooks {
         "message.attempt.failing",
         "Sent after a message has been failing for a few times.\nIt's sent on the fourth failure. It complements `message.attempt.exhausted` which is sent after the last failure."
     );
+    webhook_event!(
+        MessageAttemptRecoveredEvent,
+        MessageAttemptRecoveredEventData,
+        "message.attempt.recovered",
+        "Sent on a successful dispatch after an earlier failure op webhook has already been sent."
+    );
 
     /// Generates documentation for operational webhooks in the Redoc `x-webhooks`
     /// format. For more info see https://redocly.com/docs/api-reference-docs/specification-extensions/x-webhooks/
@@ -462,6 +475,7 @@ mod webhooks {
             document_webhook::<EndpointUpdatedEvent>(),
             document_webhook::<MessageAttemptExhaustedEvent>(),
             document_webhook::<MessageAttemptFailingEvent>(),
+            document_webhook::<MessageAttemptRecoveredEvent>(),
         ])
     }
 }
diff --git a/server/svix-server/src/static/openapi.json b/server/svix-server/src/static/openapi.json
index 1dcb6b240..39dddd376 100644
--- a/server/svix-server/src/static/openapi.json
+++ b/server/svix-server/src/static/openapi.json
@@ -1,1 +1,7834 @@
-{"openapi":"3.0.2","info":{"title":"Svix API","description":"Welcome to the Svix API documentation!\n\nUseful 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/)\n\n# Introduction\n\nThis 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).\n\n## Main concepts\n\nIn Svix you have four important entities you will be interacting with:\n\n- `messages`: these are the webhooks being sent. They can have contents and a few other properties.\n- `application`: this is where `messages` are sent to. Usually you want to create one application for each user on your platform.\n- `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).\n- `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.\n\n\n## Authentication\n\nGet 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}`.\n\n<SecurityDefinitions />\n\n\n## Code samples\n\nThe 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/).\n\n\n## Idempotency\n\nSvix 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.\n\nTo 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.\n\nSvix'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.\n\nPlease note that idempotency is only supported for `POST` requests.\n\n\n## Cross-Origin Resource Sharing\n\nThis 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.\n","version":"1.4","x-logo":{"url":"https://www.svix.com/static/img/brand-padded.svg","altText":"Svix Logo"}},"paths":{"/api/v1/health/":{"get":{"tags":["Health"],"summary":"Health","description":"Verify the API server is up and running.","operationId":"health_api_v1_health__get","parameters":[{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-codeSamples":[{"lang":"Shell","label":"cURL","source":"curl -X 'GET' \\\n  'https://api.svix.com/api/v1/health/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]}},"/api/v1/app/":{"get":{"tags":["Application"],"summary":"List Applications","description":"List of all the organization's applications.","operationId":"list_applications_api_v1_app__get","parameters":[{"required":false,"schema":{"title":"Iterator","type":"string","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"iterator","in":"query"},{"required":false,"schema":{"title":"Limit","maximum":250.0,"type":"integer","default":50},"name":"limit","in":"query"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_ApplicationOut_"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const listResponseApplicationOut = await svix.application.list();"},{"lang":"JavaScript","label":"TypeScript","source":"const listResponseApplicationOut = await svix.application.list();"},{"lang":"Python","label":"Python","source":"list_response_application_out = svix.application.list()"},{"lang":"Python","label":"Python (Async)","source":"list_response_application_out = await svix.application.list()"},{"lang":"Go","label":"Go","source":"listResponseApplicationOut, err := svixClient.Application.List(nil)"},{"lang":"Kotlin","label":"Kotlin","source":"val listResponseApplicationOut = svix.application.list(FetchOptions())"},{"lang":"Java","label":"Java","source":"ListResponseApplicationOut listResponseApplicationOut = svix.getApplication().list(new FetchOptions())"},{"lang":"Ruby","label":"Ruby","source":"list_response_application_out = svix.application.list"},{"lang":"Rust","label":"Rust","source":"let list_response_application_out = svix.application().list(None).await?;"},{"lang":"C#","label":"C#","source":"var listResponseApplicationOut = await svix.Application.ListAsync()"},{"lang":"Shell","label":"CLI","source":"svix application list "},{"lang":"Shell","label":"cURL","source":"curl -X 'GET' \\\n  'https://api.svix.com/api/v1/app/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]},"post":{"tags":["Application"],"summary":"Create Application","description":"Create a new application.","operationId":"create_application_api_v1_app__post","parameters":[{"description":"Get an existing application, or create a new one if doesn't exist. It's two separate functions in the libs.","required":false,"schema":{"title":"Get If Exists","type":"boolean","description":"Get an existing application, or create a new one if doesn't exist. It's two separate functions in the libs.","default":false},"name":"get_if_exists","in":"query"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationOut"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const applicationOut = await svix.application.create({\n    uid: \"unique-app-identifier\",\n    name: \"My first application\",\n    rateLimit: 1000\n})\n// Or \nconst applicationOut = await svix.application.getOrCreate({\n    uid: \"unique-app-identifier\",\n    name: \"My first application\",\n    rateLimit: 1000\n})"},{"lang":"JavaScript","label":"TypeScript","source":"const applicationOut = await svix.application.create({\n    uid: \"unique-app-identifier\",\n    name: \"My first application\",\n    rateLimit: 1000\n})\n// Or \nconst applicationOut = await svix.application.getOrCreate({\n    uid: \"unique-app-identifier\",\n    name: \"My first application\",\n    rateLimit: 1000\n})"},{"lang":"Python","label":"Python","source":"application_out = svix.application.create(ApplicationIn(\n    uid=\"unique-app-identifier\",\n    name=\"My first application\",\n    rate_limit=1000\n))\n# Or \napplication_out = svix.application.get_or_create(ApplicationIn(\n    uid=\"unique-app-identifier\",\n    name=\"My first application\",\n    rate_limit=1000\n))"},{"lang":"Python","label":"Python (Async)","source":"application_out = await svix.application.create(ApplicationIn(\n    uid=\"unique-app-identifier\",\n    name=\"My first application\",\n    rate_limit=1000\n))\n# Or \napplication_out = await svix.application.get_or_create(ApplicationIn(\n    uid=\"unique-app-identifier\",\n    name=\"My first application\",\n    rate_limit=1000\n))"},{"lang":"Go","label":"Go","source":"applicationOut, err := svixClient.Application.Create(&svix.ApplicationIn{\n    Uid: \"unique-app-identifier\",\n    Name: \"My first application\",\n    RateLimit: 1000\n})\n// Or \napplicationOut, err := svixClient.Application.GetOrCreate(&svix.ApplicationIn{\n    Uid: \"unique-app-identifier\",\n    Name: \"My first application\",\n    RateLimit: 1000\n})"},{"lang":"Kotlin","label":"Kotlin","source":"val applicationOut = svix.application.create(ApplicationIn()\n    .uid(\"unique-app-identifier\"),\n    .name(\"My first application\"),\n    .rateLimit(1000)\n)\n// Or \nval applicationOut = svix.application.getOrCreate(ApplicationIn()\n    .uid(\"unique-app-identifier\"),\n    .name(\"My first application\"),\n    .rateLimit(1000)\n)"},{"lang":"Java","label":"Java","source":"ApplicationOut applicationOut = svix.getApplication().create(new ApplicationIn()\n    .uid(\"unique-app-identifier\"),\n    .name(\"My first application\"),\n    .rateLimit(1000)\n)\n// Or \nApplicationOut applicationOut = svix.getApplication().getOrCreate(new ApplicationIn()\n    .uid(\"unique-app-identifier\"),\n    .name(\"My first application\"),\n    .rateLimit(1000)\n)"},{"lang":"Ruby","label":"Ruby","source":"application_out = svix.application.create(Svix::ApplicationIn.new({\n    \"uid\": \"unique-app-identifier\",\n    \"name\": \"My first application\",\n    \"rate_limit\": 1000\n}))\n# Or \napplication_out = svix.application.get_or_create(Svix::ApplicationIn.new({\n    \"uid\": \"unique-app-identifier\",\n    \"name\": \"My first application\",\n    \"rate_limit\": 1000\n}))"},{"lang":"Rust","label":"Rust","source":"let application_out = svix.application().create(ApplicationIn {\n    uid: \"unique-app-identifier\".to_string(),\n    name: \"My first application\".to_string(),\n    rate_limit: 1000\n}).await?;\n// Or \nlet application_out = svix.application().get_or_create(ApplicationIn {\n    uid: \"unique-app-identifier\".to_string(),\n    name: \"My first application\".to_string(),\n    rate_limit: 1000\n}).await?;"},{"lang":"C#","label":"C#","source":"var applicationOut = await svix.Application.CreateAsync(new ApplicationIn{\n    uid: \"unique-app-identifier\",\n    name: \"My first application\",\n    rateLimit: 1000\n})"},{"lang":"Shell","label":"CLI","source":"svix application create '{\n    \"uid\": \"unique-app-identifier\",\n    \"name\": \"My first application\",\n    \"rateLimit\": 1000\n}'"},{"lang":"Shell","label":"cURL","source":"curl -X 'POST' \\\n  'https://api.svix.com/api/v1/app/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"uid\": \"unique-app-identifier\",\n    \"name\": \"My first application\",\n    \"rateLimit\": 1000\n}'"}]}},"/api/v1/app/{app_id}/":{"get":{"tags":["Application"],"summary":"Get Application","description":"Get an application.","operationId":"get_application_api_v1_app__app_id___get","parameters":[{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationOut"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const applicationOut = await svix.application.get('app_id');"},{"lang":"JavaScript","label":"TypeScript","source":"const applicationOut = await svix.application.get('app_id');"},{"lang":"Python","label":"Python","source":"application_out = svix.application.get('app_id')"},{"lang":"Python","label":"Python (Async)","source":"application_out = await svix.application.get('app_id')"},{"lang":"Go","label":"Go","source":"applicationOut, err := svixClient.Application.Get(\"app_id\")"},{"lang":"Kotlin","label":"Kotlin","source":"val applicationOut = svix.application.get('app_id')"},{"lang":"Java","label":"Java","source":"ApplicationOut applicationOut = svix.getApplication().get('app_id')"},{"lang":"Ruby","label":"Ruby","source":"application_out = svix.application.get('app_id')"},{"lang":"Rust","label":"Rust","source":"let application_out = svix.application().get(\"app_id\").await?;"},{"lang":"C#","label":"C#","source":"var applicationOut = await svix.Application.GetAsync(\"app_id\")"},{"lang":"Shell","label":"CLI","source":"svix application get 'app_id'"},{"lang":"Shell","label":"cURL","source":"curl -X 'GET' \\\n  'https://api.svix.com/api/v1/app/{app_id}/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]},"put":{"tags":["Application"],"summary":"Update Application","description":"Update an application.","operationId":"update_application_api_v1_app__app_id___put","parameters":[{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationOut"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const applicationOut = await svix.application.update('app_id', {\n    uid: \"unique-app-identifier\",\n    name: \"My first application\",\n    rateLimit: 1000\n});"},{"lang":"JavaScript","label":"TypeScript","source":"const applicationOut = await svix.application.update('app_id', {\n    uid: \"unique-app-identifier\",\n    name: \"My first application\",\n    rateLimit: 1000\n});"},{"lang":"Python","label":"Python","source":"application_out = svix.application.update('app_id', ApplicationIn(\n    uid=\"unique-app-identifier\",\n    name=\"My first application\",\n    rate_limit=1000\n))"},{"lang":"Python","label":"Python (Async)","source":"application_out = await svix.application.update('app_id', ApplicationIn(\n    uid=\"unique-app-identifier\",\n    name=\"My first application\",\n    rate_limit=1000\n))"},{"lang":"Go","label":"Go","source":"applicationOut, err := svixClient.Application.Update(\"app_id\", &svix.ApplicationIn{\n    Uid: \"unique-app-identifier\",\n    Name: \"My first application\",\n    RateLimit: 1000\n})"},{"lang":"Kotlin","label":"Kotlin","source":"val applicationOut = svix.application.update('app_id', ApplicationIn()\n    .uid(\"unique-app-identifier\"),\n    .name(\"My first application\"),\n    .rateLimit(1000)\n)"},{"lang":"Java","label":"Java","source":"ApplicationOut applicationOut = svix.getApplication().update('app_id', new ApplicationIn()\n    .uid(\"unique-app-identifier\"),\n    .name(\"My first application\"),\n    .rateLimit(1000)\n)"},{"lang":"Ruby","label":"Ruby","source":"application_out = svix.application.update('app_id', Svix::ApplicationIn.new({\n    \"uid\": \"unique-app-identifier\",\n    \"name\": \"My first application\",\n    \"rate_limit\": 1000\n}))"},{"lang":"Rust","label":"Rust","source":"let application_out = svix.application().update(\"app_id\", ApplicationIn {\n    uid: \"unique-app-identifier\".to_string(),\n    name: \"My first application\".to_string(),\n    rate_limit: 1000\n}).await?;"},{"lang":"C#","label":"C#","source":"var applicationOut = await svix.Application.UpdateAsync(\"app_id\", new ApplicationIn{\n    uid: \"unique-app-identifier\",\n    name: \"My first application\",\n    rateLimit: 1000\n})"},{"lang":"Shell","label":"CLI","source":"svix application update 'app_id' '{\n    \"uid\": \"unique-app-identifier\",\n    \"name\": \"My first application\",\n    \"rateLimit\": 1000\n}'"},{"lang":"Shell","label":"cURL","source":"curl -X 'PUT' \\\n  'https://api.svix.com/api/v1/app/{app_id}/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"uid\": \"unique-app-identifier\",\n    \"name\": \"My first application\",\n    \"rateLimit\": 1000\n}'"}]},"delete":{"tags":["Application"],"summary":"Delete Application","description":"Delete an application.","operationId":"delete_application_api_v1_app__app_id___delete","parameters":[{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"204":{"description":"Successful Response"},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"await svix.application.delete('app_id');"},{"lang":"JavaScript","label":"TypeScript","source":"await svix.application.delete('app_id');"},{"lang":"Python","label":"Python","source":"svix.application.delete('app_id')"},{"lang":"Python","label":"Python (Async)","source":"await svix.application.delete('app_id')"},{"lang":"Go","label":"Go","source":"err := svixClient.Application.Delete(\"app_id\")"},{"lang":"Kotlin","label":"Kotlin","source":"svix.application.delete('app_id')"},{"lang":"Java","label":"Java","source":"svix.getApplication().delete('app_id')"},{"lang":"Ruby","label":"Ruby","source":"svix.application.delete('app_id')"},{"lang":"Rust","label":"Rust","source":"svix.application().delete(\"app_id\").await?;"},{"lang":"C#","label":"C#","source":"await svix.Application.DeleteAsync(\"app_id\")"},{"lang":"Shell","label":"CLI","source":"svix application delete 'app_id'"},{"lang":"Shell","label":"cURL","source":"curl -X 'DELETE' \\\n  'https://api.svix.com/api/v1/app/{app_id}/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]}},"/api/v1/auth/dashboard-access/{app_id}/":{"post":{"tags":["Authentication"],"summary":"Get App Portal Access","description":"Use this function to get magic links (and authentication codes) for connecting your users to the Application Portal.","operationId":"get_dashboard_access_api_v1_auth_dashboard_access__app_id___post","parameters":[{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardAccessOut"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const dashboardAccessOut = await svix.authentication.dashboardAccess('app_id');"},{"lang":"JavaScript","label":"TypeScript","source":"const dashboardAccessOut = await svix.authentication.dashboardAccess('app_id');"},{"lang":"Python","label":"Python","source":"dashboard_access_out = svix.authentication.dashboard_access('app_id')"},{"lang":"Python","label":"Python (Async)","source":"dashboard_access_out = await svix.authentication.dashboard_access('app_id')"},{"lang":"Go","label":"Go","source":"dashboardAccessOut, err := svixClient.Authentication.DashboardAccess(\"app_id\")"},{"lang":"Kotlin","label":"Kotlin","source":"val dashboardAccessOut = svix.authentication.dashboardAccess('app_id')"},{"lang":"Java","label":"Java","source":"DashboardAccessOut dashboardAccessOut = svix.getAuthentication().dashboardAccess('app_id')"},{"lang":"Ruby","label":"Ruby","source":"dashboard_access_out = svix.authentication.dashboard_access('app_id')"},{"lang":"Rust","label":"Rust","source":"let dashboard_access_out = svix.authentication().dashboard_access(\"app_id\").await?;"},{"lang":"C#","label":"C#","source":"var dashboardAccessOut = await svix.Authentication.DashboardAccessAsync(\"app_id\")"},{"lang":"Shell","label":"CLI","source":"svix authentication dashboard-access 'app_id'"},{"lang":"Shell","label":"cURL","source":"curl -X 'POST' \\\n  'https://api.svix.com/api/v1/auth/dashboard-access/{app_id}/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]}},"/api/v1/auth/logout/":{"post":{"tags":["Authentication"],"summary":"Logout","description":"Logout an app token.\n\nTrying to log out other tokens will fail.","operationId":"logout_api_v1_auth_logout__post","parameters":[{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"204":{"description":"Successful Response"},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"await svix.authentication.logout();"},{"lang":"JavaScript","label":"TypeScript","source":"await svix.authentication.logout();"},{"lang":"Python","label":"Python","source":"svix.authentication.logout()"},{"lang":"Python","label":"Python (Async)","source":"await svix.authentication.logout()"},{"lang":"Go","label":"Go","source":"err := svixClient.Authentication.Logout()"},{"lang":"Kotlin","label":"Kotlin","source":"svix.authentication.logout()"},{"lang":"Java","label":"Java","source":"svix.getAuthentication().logout()"},{"lang":"Ruby","label":"Ruby","source":"svix.authentication.logout"},{"lang":"Rust","label":"Rust","source":"svix.authentication().logout().await?;"},{"lang":"C#","label":"C#","source":"await svix.Authentication.LogoutAsync()"},{"lang":"Shell","label":"CLI","source":"svix authentication logout "},{"lang":"Shell","label":"cURL","source":"curl -X 'POST' \\\n  'https://api.svix.com/api/v1/auth/logout/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]}},"/api/v1/event-type/":{"get":{"tags":["Event Type"],"summary":"List Event Types","description":"Return the list of event types.","operationId":"list_event_types_api_v1_event_type__get","parameters":[{"required":false,"schema":{"title":"Iterator","maxLength":256,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"user.signup"},"name":"iterator","in":"query"},{"required":false,"schema":{"title":"Limit","maximum":250.0,"type":"integer","default":50},"name":"limit","in":"query"},{"required":false,"schema":{"title":"With Content","type":"boolean","default":false},"name":"with_content","in":"query"},{"required":false,"schema":{"title":"Include Archived","type":"boolean","default":false},"name":"include_archived","in":"query"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_EventTypeOut_"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const listResponseEventTypeOut = await svix.eventType.list();"},{"lang":"JavaScript","label":"TypeScript","source":"const listResponseEventTypeOut = await svix.eventType.list();"},{"lang":"Python","label":"Python","source":"list_response_event_type_out = svix.event_type.list()"},{"lang":"Python","label":"Python (Async)","source":"list_response_event_type_out = await svix.event_type.list()"},{"lang":"Go","label":"Go","source":"listResponseEventTypeOut, err := svixClient.EventType.List(nil)"},{"lang":"Kotlin","label":"Kotlin","source":"val listResponseEventTypeOut = svix.eventType.list(FetchOptions())"},{"lang":"Java","label":"Java","source":"ListResponseEventTypeOut listResponseEventTypeOut = svix.getEventType().list(new FetchOptions())"},{"lang":"Ruby","label":"Ruby","source":"list_response_event_type_out = svix.event_type.list"},{"lang":"Rust","label":"Rust","source":"let list_response_event_type_out = svix.event_type().list(None).await?;"},{"lang":"C#","label":"C#","source":"var listResponseEventTypeOut = await svix.EventType.ListAsync()"},{"lang":"Shell","label":"CLI","source":"svix event-type list "},{"lang":"Shell","label":"cURL","source":"curl -X 'GET' \\\n  'https://api.svix.com/api/v1/event-type/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]},"post":{"tags":["Event Type"],"summary":"Create Event Type","description":"Create new or unarchive existing event type.\n\nUnarchiving an event type will allow endpoints to filter on it and messages to be sent with it.\nEndpoints filtering on the event type before archival will continue to filter on it.\nThis operation does not preserve the description and schemas.","operationId":"create_event_type_api_v1_event_type__post","parameters":[{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventTypeIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventTypeOut"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const eventTypeOut = await svix.eventType.create({\n    description: \"A user has signed up\",\n    schemas: {\n        \"1\": {\n                \"title\": \"Invoice Paid Event\",\n                \"description\": \"An invoice was paid by a user\",\n                \"type\": \"object\",\n                \"properties\": {\n                        \"invoiceId\": {\n                                \"description\": \"The invoice id\",\n                                \"type\": \"string\"\n                        },\n                        \"userId\": {\n                                \"description\": \"The user id\",\n                                \"type\": \"string\"\n                        }\n                },\n                \"required\": [\n                        \"invoiceId\",\n                        \"userId\"\n                ]\n        }\n    },\n    archived: false,\n    name: \"user.signup\"\n});"},{"lang":"JavaScript","label":"TypeScript","source":"const eventTypeOut = await svix.eventType.create({\n    description: \"A user has signed up\",\n    schemas: {\n        \"1\": {\n                \"title\": \"Invoice Paid Event\",\n                \"description\": \"An invoice was paid by a user\",\n                \"type\": \"object\",\n                \"properties\": {\n                        \"invoiceId\": {\n                                \"description\": \"The invoice id\",\n                                \"type\": \"string\"\n                        },\n                        \"userId\": {\n                                \"description\": \"The user id\",\n                                \"type\": \"string\"\n                        }\n                },\n                \"required\": [\n                        \"invoiceId\",\n                        \"userId\"\n                ]\n        }\n    },\n    archived: false,\n    name: \"user.signup\"\n});"},{"lang":"Python","label":"Python","source":"event_type_out = svix.event_type.create(EventTypeIn(\n    description=\"A user has signed up\",\n    schemas={'1': {'title': 'Invoice Paid Event', 'description': 'An invoice was paid by a user', 'type': 'object', 'properties': {'invoiceId': {'description': 'The invoice id', 'type': 'string'}, 'userId': {'description': 'The user id', 'type': 'string'}}, 'required': ['invoiceId', 'userId']}},\n    archived=False,\n    name=\"user.signup\"\n))"},{"lang":"Python","label":"Python (Async)","source":"event_type_out = await svix.event_type.create(EventTypeIn(\n    description=\"A user has signed up\",\n    schemas={'1': {'title': 'Invoice Paid Event', 'description': 'An invoice was paid by a user', 'type': 'object', 'properties': {'invoiceId': {'description': 'The invoice id', 'type': 'string'}, 'userId': {'description': 'The user id', 'type': 'string'}}, 'required': ['invoiceId', 'userId']}},\n    archived=False,\n    name=\"user.signup\"\n))"},{"lang":"Go","label":"Go","source":"eventTypeOut, err := svixClient.EventType.Create(&svix.EventTypeIn{\n    Description: \"A user has signed up\",\n    Schemas: map[string]interface{}{\n        \"1\": {\n                \"title\": \"Invoice Paid Event\",\n                \"description\": \"An invoice was paid by a user\",\n                \"type\": \"object\",\n                \"properties\": {\n                        \"invoiceId\": {\n                                \"description\": \"The invoice id\",\n                                \"type\": \"string\"\n                        },\n                        \"userId\": {\n                                \"description\": \"The user id\",\n                                \"type\": \"string\"\n                        }\n                },\n                \"required\": [\n                        \"invoiceId\",\n                        \"userId\"\n                ]\n        }\n    },\n    Archived: False,\n    Name: \"user.signup\"\n})"},{"lang":"Kotlin","label":"Kotlin","source":"val eventTypeOut = svix.eventType.create(EventTypeIn()\n    .description(\"A user has signed up\"),\n    .schemas(\"\"\"{\n        \"1\": {\n                \"title\": \"Invoice Paid Event\",\n                \"description\": \"An invoice was paid by a user\",\n                \"type\": \"object\",\n                \"properties\": {\n                        \"invoiceId\": {\n                                \"description\": \"The invoice id\",\n                                \"type\": \"string\"\n                        },\n                        \"userId\": {\n                                \"description\": \"The user id\",\n                                \"type\": \"string\"\n                        }\n                },\n                \"required\": [\n                        \"invoiceId\",\n                        \"userId\"\n                ]\n        }\n    }\"\"\"),\n    .archived(False),\n    .name(\"user.signup\")\n)"},{"lang":"Java","label":"Java","source":"EventTypeOut eventTypeOut = svix.getEventType().create(new EventTypeIn()\n    .description(\"A user has signed up\"),\n    .schemas(\"{\" +\n        \"\\\"1\\\": {\" +\n                \"\\\"title\\\": \\\"Invoice Paid Event\\\",\" +\n                \"\\\"description\\\": \\\"An invoice was paid by a user\\\",\" +\n                \"\\\"type\\\": \\\"object\\\",\" +\n                \"\\\"properties\\\": {\" +\n                        \"\\\"invoiceId\\\": {\" +\n                                \"\\\"description\\\": \\\"The invoice id\\\",\" +\n                                \"\\\"type\\\": \\\"string\\\"\" +\n                        \"},\" +\n                        \"\\\"userId\\\": {\" +\n                                \"\\\"description\\\": \\\"The user id\\\",\" +\n                                \"\\\"type\\\": \\\"string\\\"\" +\n                        \"}\" +\n                \"},\" +\n                \"\\\"required\\\": [\" +\n                        \"\\\"invoiceId\\\",\" +\n                        \"\\\"userId\\\"\" +\n                \"]\" +\n        \"}\" +\n    \"}\"),\n    .archived(False),\n    .name(\"user.signup\")\n)"},{"lang":"Ruby","label":"Ruby","source":"event_type_out = svix.event_type.create(Svix::EventTypeIn.new({\n    \"description\": \"A user has signed up\",\n    \"schemas\": {\n        \"1\": {\n            \"title\": \"Invoice Paid Event\",\n            \"description\": \"An invoice was paid by a user\",\n            \"type\": \"object\",\n            \"properties\": {\n                \"invoiceId\": {\n                    \"description\": \"The invoice id\",\n                    \"type\": \"string\"\n                },\n                \"userId\": {\n                    \"description\": \"The user id\",\n                    \"type\": \"string\"\n                }\n            },\n            \"required\": [\n                \"invoiceId\",\n                \"userId\"\n            ]\n        }\n    },\n    \"archived\": false,\n    \"name\": \"user.signup\"\n}))"},{"lang":"Rust","label":"Rust","source":"let event_type_out = svix.event_type().create(EventTypeIn {\n    description: \"A user has signed up\".to_string(),\n    schemas: json!({\n        \"1\": {\n                \"title\": \"Invoice Paid Event\",\n                \"description\": \"An invoice was paid by a user\",\n                \"type\": \"object\",\n                \"properties\": {\n                        \"invoiceId\": {\n                                \"description\": \"The invoice id\",\n                                \"type\": \"string\"\n                        },\n                        \"userId\": {\n                                \"description\": \"The user id\",\n                                \"type\": \"string\"\n                        }\n                },\n                \"required\": [\n                        \"invoiceId\",\n                        \"userId\"\n                ]\n        }\n    }),\n    archived: False,\n    name: \"user.signup\".to_string()\n}).await?;"},{"lang":"C#","label":"C#","source":"var eventTypeOut = await svix.EventType.CreateAsync(new EventTypeIn{\n    description: \"A user has signed up\",\n    schemas: new {\n        \"1\": {\n                \"title\": \"Invoice Paid Event\",\n                \"description\": \"An invoice was paid by a user\",\n                \"type\": \"object\",\n                \"properties\": {\n                        \"invoiceId\": {\n                                \"description\": \"The invoice id\",\n                                \"type\": \"string\"\n                        },\n                        \"userId\": {\n                                \"description\": \"The user id\",\n                                \"type\": \"string\"\n                        }\n                },\n                \"required\": [\n                        \"invoiceId\",\n                        \"userId\"\n                ]\n        }\n    },\n    archived: false,\n    name: \"user.signup\"\n})"},{"lang":"Shell","label":"CLI","source":"svix event-type create '{\n    \"description\": \"A user has signed up\",\n    \"schemas\": {\n        \"1\": {\n            \"title\": \"Invoice Paid Event\",\n            \"description\": \"An invoice was paid by a user\",\n            \"type\": \"object\",\n            \"properties\": {\n                \"invoiceId\": {\n                    \"description\": \"The invoice id\",\n                    \"type\": \"string\"\n                },\n                \"userId\": {\n                    \"description\": \"The user id\",\n                    \"type\": \"string\"\n                }\n            },\n            \"required\": [\n                \"invoiceId\",\n                \"userId\"\n            ]\n        }\n    },\n    \"archived\": false,\n    \"name\": \"user.signup\"\n}'"},{"lang":"Shell","label":"cURL","source":"curl -X 'POST' \\\n  'https://api.svix.com/api/v1/event-type/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"description\": \"A user has signed up\",\n    \"schemas\": {\n        \"1\": {\n            \"title\": \"Invoice Paid Event\",\n            \"description\": \"An invoice was paid by a user\",\n            \"type\": \"object\",\n            \"properties\": {\n                \"invoiceId\": {\n                    \"description\": \"The invoice id\",\n                    \"type\": \"string\"\n                },\n                \"userId\": {\n                    \"description\": \"The user id\",\n                    \"type\": \"string\"\n                }\n            },\n            \"required\": [\n                \"invoiceId\",\n                \"userId\"\n            ]\n        }\n    },\n    \"archived\": false,\n    \"name\": \"user.signup\"\n}'"}]}},"/api/v1/event-type/{event_type_name}/":{"get":{"tags":["Event Type"],"summary":"Get Event Type","description":"Get an event type.","operationId":"get_event_type_api_v1_event_type__event_type_name___get","parameters":[{"required":true,"schema":{"title":"Event Type Name","maxLength":256,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"user.signup"},"name":"event_type_name","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventTypeOut"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const eventTypeOut = await svix.eventType.get('event_type_name');"},{"lang":"JavaScript","label":"TypeScript","source":"const eventTypeOut = await svix.eventType.get('event_type_name');"},{"lang":"Python","label":"Python","source":"event_type_out = svix.event_type.get('event_type_name')"},{"lang":"Python","label":"Python (Async)","source":"event_type_out = await svix.event_type.get('event_type_name')"},{"lang":"Go","label":"Go","source":"eventTypeOut, err := svixClient.EventType.Get(\"event_type_name\")"},{"lang":"Kotlin","label":"Kotlin","source":"val eventTypeOut = svix.eventType.get('event_type_name')"},{"lang":"Java","label":"Java","source":"EventTypeOut eventTypeOut = svix.getEventType().get('event_type_name')"},{"lang":"Ruby","label":"Ruby","source":"event_type_out = svix.event_type.get('event_type_name')"},{"lang":"Rust","label":"Rust","source":"let event_type_out = svix.event_type().get(\"event_type_name\").await?;"},{"lang":"C#","label":"C#","source":"var eventTypeOut = await svix.EventType.GetAsync(\"event_type_name\")"},{"lang":"Shell","label":"CLI","source":"svix event-type get 'event_type_name'"},{"lang":"Shell","label":"cURL","source":"curl -X 'GET' \\\n  'https://api.svix.com/api/v1/event-type/{event_type_name}/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]},"put":{"tags":["Event Type"],"summary":"Update Event Type","description":"Update an event type.","operationId":"update_event_type_api_v1_event_type__event_type_name___put","parameters":[{"required":true,"schema":{"title":"Event Type Name","maxLength":256,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"user.signup"},"name":"event_type_name","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventTypeUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventTypeOut"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const eventTypeOut = await svix.eventType.update('event_type_name', {\n    description: \"A user has signed up\",\n    schemas: {\n        \"1\": {\n                \"title\": \"Invoice Paid Event\",\n                \"description\": \"An invoice was paid by a user\",\n                \"type\": \"object\",\n                \"properties\": {\n                        \"invoiceId\": {\n                                \"description\": \"The invoice id\",\n                                \"type\": \"string\"\n                        },\n                        \"userId\": {\n                                \"description\": \"The user id\",\n                                \"type\": \"string\"\n                        }\n                },\n                \"required\": [\n                        \"invoiceId\",\n                        \"userId\"\n                ]\n        }\n    },\n    archived: false\n});"},{"lang":"JavaScript","label":"TypeScript","source":"const eventTypeOut = await svix.eventType.update('event_type_name', {\n    description: \"A user has signed up\",\n    schemas: {\n        \"1\": {\n                \"title\": \"Invoice Paid Event\",\n                \"description\": \"An invoice was paid by a user\",\n                \"type\": \"object\",\n                \"properties\": {\n                        \"invoiceId\": {\n                                \"description\": \"The invoice id\",\n                                \"type\": \"string\"\n                        },\n                        \"userId\": {\n                                \"description\": \"The user id\",\n                                \"type\": \"string\"\n                        }\n                },\n                \"required\": [\n                        \"invoiceId\",\n                        \"userId\"\n                ]\n        }\n    },\n    archived: false\n});"},{"lang":"Python","label":"Python","source":"event_type_out = svix.event_type.update('event_type_name', EventTypeUpdate(\n    description=\"A user has signed up\",\n    schemas={'1': {'title': 'Invoice Paid Event', 'description': 'An invoice was paid by a user', 'type': 'object', 'properties': {'invoiceId': {'description': 'The invoice id', 'type': 'string'}, 'userId': {'description': 'The user id', 'type': 'string'}}, 'required': ['invoiceId', 'userId']}},\n    archived=False\n))"},{"lang":"Python","label":"Python (Async)","source":"event_type_out = await svix.event_type.update('event_type_name', EventTypeUpdate(\n    description=\"A user has signed up\",\n    schemas={'1': {'title': 'Invoice Paid Event', 'description': 'An invoice was paid by a user', 'type': 'object', 'properties': {'invoiceId': {'description': 'The invoice id', 'type': 'string'}, 'userId': {'description': 'The user id', 'type': 'string'}}, 'required': ['invoiceId', 'userId']}},\n    archived=False\n))"},{"lang":"Go","label":"Go","source":"eventTypeOut, err := svixClient.EventType.Update(\"event_type_name\", &svix.EventTypeUpdate{\n    Description: \"A user has signed up\",\n    Schemas: map[string]interface{}{\n        \"1\": {\n                \"title\": \"Invoice Paid Event\",\n                \"description\": \"An invoice was paid by a user\",\n                \"type\": \"object\",\n                \"properties\": {\n                        \"invoiceId\": {\n                                \"description\": \"The invoice id\",\n                                \"type\": \"string\"\n                        },\n                        \"userId\": {\n                                \"description\": \"The user id\",\n                                \"type\": \"string\"\n                        }\n                },\n                \"required\": [\n                        \"invoiceId\",\n                        \"userId\"\n                ]\n        }\n    },\n    Archived: False\n})"},{"lang":"Kotlin","label":"Kotlin","source":"val eventTypeOut = svix.eventType.update('event_type_name', EventTypeUpdate()\n    .description(\"A user has signed up\"),\n    .schemas(\"\"\"{\n        \"1\": {\n                \"title\": \"Invoice Paid Event\",\n                \"description\": \"An invoice was paid by a user\",\n                \"type\": \"object\",\n                \"properties\": {\n                        \"invoiceId\": {\n                                \"description\": \"The invoice id\",\n                                \"type\": \"string\"\n                        },\n                        \"userId\": {\n                                \"description\": \"The user id\",\n                                \"type\": \"string\"\n                        }\n                },\n                \"required\": [\n                        \"invoiceId\",\n                        \"userId\"\n                ]\n        }\n    }\"\"\"),\n    .archived(False)\n)"},{"lang":"Java","label":"Java","source":"EventTypeOut eventTypeOut = svix.getEventType().update('event_type_name', new EventTypeUpdate()\n    .description(\"A user has signed up\"),\n    .schemas(\"{\" +\n        \"\\\"1\\\": {\" +\n                \"\\\"title\\\": \\\"Invoice Paid Event\\\",\" +\n                \"\\\"description\\\": \\\"An invoice was paid by a user\\\",\" +\n                \"\\\"type\\\": \\\"object\\\",\" +\n                \"\\\"properties\\\": {\" +\n                        \"\\\"invoiceId\\\": {\" +\n                                \"\\\"description\\\": \\\"The invoice id\\\",\" +\n                                \"\\\"type\\\": \\\"string\\\"\" +\n                        \"},\" +\n                        \"\\\"userId\\\": {\" +\n                                \"\\\"description\\\": \\\"The user id\\\",\" +\n                                \"\\\"type\\\": \\\"string\\\"\" +\n                        \"}\" +\n                \"},\" +\n                \"\\\"required\\\": [\" +\n                        \"\\\"invoiceId\\\",\" +\n                        \"\\\"userId\\\"\" +\n                \"]\" +\n        \"}\" +\n    \"}\"),\n    .archived(False)\n)"},{"lang":"Ruby","label":"Ruby","source":"event_type_out = svix.event_type.update('event_type_name', Svix::EventTypeUpdate.new({\n    \"description\": \"A user has signed up\",\n    \"schemas\": {\n        \"1\": {\n            \"title\": \"Invoice Paid Event\",\n            \"description\": \"An invoice was paid by a user\",\n            \"type\": \"object\",\n            \"properties\": {\n                \"invoiceId\": {\n                    \"description\": \"The invoice id\",\n                    \"type\": \"string\"\n                },\n                \"userId\": {\n                    \"description\": \"The user id\",\n                    \"type\": \"string\"\n                }\n            },\n            \"required\": [\n                \"invoiceId\",\n                \"userId\"\n            ]\n        }\n    },\n    \"archived\": false\n}))"},{"lang":"Rust","label":"Rust","source":"let event_type_out = svix.event_type().update(\"event_type_name\", EventTypeUpdate {\n    description: \"A user has signed up\".to_string(),\n    schemas: json!({\n        \"1\": {\n                \"title\": \"Invoice Paid Event\",\n                \"description\": \"An invoice was paid by a user\",\n                \"type\": \"object\",\n                \"properties\": {\n                        \"invoiceId\": {\n                                \"description\": \"The invoice id\",\n                                \"type\": \"string\"\n                        },\n                        \"userId\": {\n                                \"description\": \"The user id\",\n                                \"type\": \"string\"\n                        }\n                },\n                \"required\": [\n                        \"invoiceId\",\n                        \"userId\"\n                ]\n        }\n    }),\n    archived: False\n}).await?;"},{"lang":"C#","label":"C#","source":"var eventTypeOut = await svix.EventType.UpdateAsync(\"event_type_name\", new EventTypeUpdate{\n    description: \"A user has signed up\",\n    schemas: new {\n        \"1\": {\n                \"title\": \"Invoice Paid Event\",\n                \"description\": \"An invoice was paid by a user\",\n                \"type\": \"object\",\n                \"properties\": {\n                        \"invoiceId\": {\n                                \"description\": \"The invoice id\",\n                                \"type\": \"string\"\n                        },\n                        \"userId\": {\n                                \"description\": \"The user id\",\n                                \"type\": \"string\"\n                        }\n                },\n                \"required\": [\n                        \"invoiceId\",\n                        \"userId\"\n                ]\n        }\n    },\n    archived: false\n})"},{"lang":"Shell","label":"CLI","source":"svix event-type update 'event_type_name' '{\n    \"description\": \"A user has signed up\",\n    \"schemas\": {\n        \"1\": {\n            \"title\": \"Invoice Paid Event\",\n            \"description\": \"An invoice was paid by a user\",\n            \"type\": \"object\",\n            \"properties\": {\n                \"invoiceId\": {\n                    \"description\": \"The invoice id\",\n                    \"type\": \"string\"\n                },\n                \"userId\": {\n                    \"description\": \"The user id\",\n                    \"type\": \"string\"\n                }\n            },\n            \"required\": [\n                \"invoiceId\",\n                \"userId\"\n            ]\n        }\n    },\n    \"archived\": false\n}'"},{"lang":"Shell","label":"cURL","source":"curl -X 'PUT' \\\n  'https://api.svix.com/api/v1/event-type/{event_type_name}/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"description\": \"A user has signed up\",\n    \"schemas\": {\n        \"1\": {\n            \"title\": \"Invoice Paid Event\",\n            \"description\": \"An invoice was paid by a user\",\n            \"type\": \"object\",\n            \"properties\": {\n                \"invoiceId\": {\n                    \"description\": \"The invoice id\",\n                    \"type\": \"string\"\n                },\n                \"userId\": {\n                    \"description\": \"The user id\",\n                    \"type\": \"string\"\n                }\n            },\n            \"required\": [\n                \"invoiceId\",\n                \"userId\"\n            ]\n        }\n    },\n    \"archived\": false\n}'"}]},"delete":{"tags":["Event Type"],"summary":"Archive Event Type","description":"Archive an event type.\n\nEndpoints already configured to filter on an event type will continue to do so after archival.\nHowever, new messages can not be sent with it and endpoints can not filter on it.\nAn event type can be unarchived with the\n[create operation](#operation/create_event_type_api_v1_event_type__post).","operationId":"delete_event_type_api_v1_event_type__event_type_name___delete","parameters":[{"required":true,"schema":{"title":"Event Type Name","maxLength":256,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"user.signup"},"name":"event_type_name","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"204":{"description":"Successful Response"},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"await svix.eventType.delete('event_type_name');"},{"lang":"JavaScript","label":"TypeScript","source":"await svix.eventType.delete('event_type_name');"},{"lang":"Python","label":"Python","source":"svix.event_type.delete('event_type_name')"},{"lang":"Python","label":"Python (Async)","source":"await svix.event_type.delete('event_type_name')"},{"lang":"Go","label":"Go","source":"err := svixClient.EventType.Delete(\"event_type_name\")"},{"lang":"Kotlin","label":"Kotlin","source":"svix.eventType.delete('event_type_name')"},{"lang":"Java","label":"Java","source":"svix.getEventType().delete('event_type_name')"},{"lang":"Ruby","label":"Ruby","source":"svix.event_type.delete('event_type_name')"},{"lang":"Rust","label":"Rust","source":"svix.event_type().delete(\"event_type_name\").await?;"},{"lang":"C#","label":"C#","source":"await svix.EventType.DeleteAsync(\"event_type_name\")"},{"lang":"Shell","label":"CLI","source":"svix event-type delete 'event_type_name'"},{"lang":"Shell","label":"cURL","source":"curl -X 'DELETE' \\\n  'https://api.svix.com/api/v1/event-type/{event_type_name}/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]}},"/api/v1/app/{app_id}/endpoint/":{"get":{"tags":["Endpoint"],"summary":"List Endpoints","description":"List the application's endpoints.","operationId":"list_endpoints_api_v1_app__app_id__endpoint__get","parameters":[{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"required":false,"schema":{"title":"Iterator","type":"string","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"iterator","in":"query"},{"required":false,"schema":{"title":"Limit","maximum":250.0,"type":"integer","default":50},"name":"limit","in":"query"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_EndpointOut_"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const listResponseEndpointOut = await svix.endpoint.list('app_id');"},{"lang":"JavaScript","label":"TypeScript","source":"const listResponseEndpointOut = await svix.endpoint.list('app_id');"},{"lang":"Python","label":"Python","source":"list_response_endpoint_out = svix.endpoint.list('app_id')"},{"lang":"Python","label":"Python (Async)","source":"list_response_endpoint_out = await svix.endpoint.list('app_id')"},{"lang":"Go","label":"Go","source":"listResponseEndpointOut, err := svixClient.Endpoint.List(\"app_id\", nil)"},{"lang":"Kotlin","label":"Kotlin","source":"val listResponseEndpointOut = svix.endpoint.list('app_id', FetchOptions())"},{"lang":"Java","label":"Java","source":"ListResponseEndpointOut listResponseEndpointOut = svix.getEndpoint().list('app_id', new FetchOptions())"},{"lang":"Ruby","label":"Ruby","source":"list_response_endpoint_out = svix.endpoint.list('app_id')"},{"lang":"Rust","label":"Rust","source":"let list_response_endpoint_out = svix.endpoint().list(\"app_id\", None).await?;"},{"lang":"C#","label":"C#","source":"var listResponseEndpointOut = await svix.Endpoint.ListAsync(\"app_id\")"},{"lang":"Shell","label":"CLI","source":"svix endpoint list 'app_id'"},{"lang":"Shell","label":"cURL","source":"curl -X 'GET' \\\n  'https://api.svix.com/api/v1/app/{app_id}/endpoint/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]},"post":{"tags":["Endpoint"],"summary":"Create Endpoint","description":"Create a new endpoint for the application.\n\nWhen `secret` is `null` the secret is automatically generated (recommended)","operationId":"create_endpoint_api_v1_app__app_id__endpoint__post","parameters":[{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointOut"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const endpointOut = await svix.endpoint.create('app_id', {\n    uid: \"unique-endpoint-identifier\",\n    url: \"https://example.com/webhook/\",\n    version: 1,\n    description: \"An example endpoint name\",\n    filterTypes: [\n        \"user.signup\",\n        \"user.deleted\"\n    ],\n    channels: [\n        \"project_123\",\n        \"group_2\"\n    ],\n    disabled: false,\n    rateLimit: 1000,\n    secret: \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"\n});"},{"lang":"JavaScript","label":"TypeScript","source":"const endpointOut = await svix.endpoint.create('app_id', {\n    uid: \"unique-endpoint-identifier\",\n    url: \"https://example.com/webhook/\",\n    version: 1,\n    description: \"An example endpoint name\",\n    filterTypes: [\n        \"user.signup\",\n        \"user.deleted\"\n    ],\n    channels: [\n        \"project_123\",\n        \"group_2\"\n    ],\n    disabled: false,\n    rateLimit: 1000,\n    secret: \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"\n});"},{"lang":"Python","label":"Python","source":"endpoint_out = svix.endpoint.create('app_id', EndpointIn(\n    uid=\"unique-endpoint-identifier\",\n    url=\"https://example.com/webhook/\",\n    version=1,\n    description=\"An example endpoint name\",\n    filter_types=['user.signup', 'user.deleted'],\n    channels=['project_123', 'group_2'],\n    disabled=False,\n    rate_limit=1000,\n    secret=\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"\n))"},{"lang":"Python","label":"Python (Async)","source":"endpoint_out = await svix.endpoint.create('app_id', EndpointIn(\n    uid=\"unique-endpoint-identifier\",\n    url=\"https://example.com/webhook/\",\n    version=1,\n    description=\"An example endpoint name\",\n    filter_types=['user.signup', 'user.deleted'],\n    channels=['project_123', 'group_2'],\n    disabled=False,\n    rate_limit=1000,\n    secret=\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"\n))"},{"lang":"Go","label":"Go","source":"endpointOut, err := svixClient.Endpoint.Create(\"app_id\", &svix.EndpointIn{\n    Uid: \"unique-endpoint-identifier\",\n    Url: \"https://example.com/webhook/\",\n    Version: 1,\n    Description: \"An example endpoint name\",\n    FilterTypes: [...]string{\"user.signup\", \"user.deleted\"},\n    Channels: [...]string{\"project_123\", \"group_2\"},\n    Disabled: False,\n    RateLimit: 1000,\n    Secret: \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"\n})"},{"lang":"Kotlin","label":"Kotlin","source":"val endpointOut = svix.endpoint.create('app_id', EndpointIn()\n    .uid(\"unique-endpoint-identifier\"),\n    .url(\"https://example.com/webhook/\"),\n    .version(1),\n    .description(\"An example endpoint name\"),\n    .filterTypes(arrayOf(\"user.signup\", \"user.deleted\")),\n    .channels(arrayOf(\"project_123\", \"group_2\")),\n    .disabled(False),\n    .rateLimit(1000),\n    .secret(\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\")\n)"},{"lang":"Java","label":"Java","source":"EndpointOut endpointOut = svix.getEndpoint().create('app_id', new EndpointIn()\n    .uid(\"unique-endpoint-identifier\"),\n    .url(\"https://example.com/webhook/\"),\n    .version(1),\n    .description(\"An example endpoint name\"),\n    .filterTypes(new String[]{\"user.signup\", \"user.deleted\"}),\n    .channels(new String[]{\"project_123\", \"group_2\"}),\n    .disabled(False),\n    .rateLimit(1000),\n    .secret(\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\")\n)"},{"lang":"Ruby","label":"Ruby","source":"endpoint_out = svix.endpoint.create('app_id', Svix::EndpointIn.new({\n    \"uid\": \"unique-endpoint-identifier\",\n    \"url\": \"https://example.com/webhook/\",\n    \"version\": 1,\n    \"description\": \"An example endpoint name\",\n    \"filter_types\": [\n        \"user.signup\",\n        \"user.deleted\"\n    ],\n    \"channels\": [\n        \"project_123\",\n        \"group_2\"\n    ],\n    \"disabled\": false,\n    \"rate_limit\": 1000,\n    \"secret\": \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"\n}))"},{"lang":"Rust","label":"Rust","source":"let endpoint_out = svix.endpoint().create(\"app_id\", EndpointIn {\n    uid: \"unique-endpoint-identifier\".to_string(),\n    url: \"https://example.com/webhook/\".to_string(),\n    version: 1,\n    description: \"An example endpoint name\".to_string(),\n    filter_types: vec![\"user.signup\".to_string(), \"user.deleted\".to_string()],\n    channels: vec![\"project_123\".to_string(), \"group_2\".to_string()],\n    disabled: False,\n    rate_limit: 1000,\n    secret: \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\".to_string()\n}).await?;"},{"lang":"C#","label":"C#","source":"var endpointOut = await svix.Endpoint.CreateAsync(\"app_id\", new EndpointIn{\n    uid: \"unique-endpoint-identifier\",\n    url: \"https://example.com/webhook/\",\n    version: 1,\n    description: \"An example endpoint name\",\n    filterTypes: new string[] {\"user.signup\", \"user.deleted\"},\n    channels: new string[] {\"project_123\", \"group_2\"},\n    disabled: false,\n    rateLimit: 1000,\n    secret: \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"\n})"},{"lang":"Shell","label":"CLI","source":"svix endpoint create 'app_id' '{\n    \"uid\": \"unique-endpoint-identifier\",\n    \"url\": \"https://example.com/webhook/\",\n    \"version\": 1,\n    \"description\": \"An example endpoint name\",\n    \"filterTypes\": [\n        \"user.signup\",\n        \"user.deleted\"\n    ],\n    \"channels\": [\n        \"project_123\",\n        \"group_2\"\n    ],\n    \"disabled\": false,\n    \"rateLimit\": 1000,\n    \"secret\": \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"\n}'"},{"lang":"Shell","label":"cURL","source":"curl -X 'POST' \\\n  'https://api.svix.com/api/v1/app/{app_id}/endpoint/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"uid\": \"unique-endpoint-identifier\",\n    \"url\": \"https://example.com/webhook/\",\n    \"version\": 1,\n    \"description\": \"An example endpoint name\",\n    \"filterTypes\": [\n        \"user.signup\",\n        \"user.deleted\"\n    ],\n    \"channels\": [\n        \"project_123\",\n        \"group_2\"\n    ],\n    \"disabled\": false,\n    \"rateLimit\": 1000,\n    \"secret\": \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"\n}'"}]}},"/api/v1/app/{app_id}/endpoint/{endpoint_id}/":{"get":{"tags":["Endpoint"],"summary":"Get Endpoint","description":"Get an application.","operationId":"get_endpoint_api_v1_app__app_id__endpoint__endpoint_id___get","parameters":[{"required":true,"schema":{"title":"Endpoint Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The endpoint's ID or UID","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"endpoint_id","in":"path"},{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointOut"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const endpointOut = await svix.endpoint.get('app_id', 'endpoint_id');"},{"lang":"JavaScript","label":"TypeScript","source":"const endpointOut = await svix.endpoint.get('app_id', 'endpoint_id');"},{"lang":"Python","label":"Python","source":"endpoint_out = svix.endpoint.get('app_id', 'endpoint_id')"},{"lang":"Python","label":"Python (Async)","source":"endpoint_out = await svix.endpoint.get('app_id', 'endpoint_id')"},{"lang":"Go","label":"Go","source":"endpointOut, err := svixClient.Endpoint.Get(\"app_id\", \"endpoint_id\")"},{"lang":"Kotlin","label":"Kotlin","source":"val endpointOut = svix.endpoint.get('app_id', 'endpoint_id')"},{"lang":"Java","label":"Java","source":"EndpointOut endpointOut = svix.getEndpoint().get('app_id', 'endpoint_id')"},{"lang":"Ruby","label":"Ruby","source":"endpoint_out = svix.endpoint.get('app_id', 'endpoint_id')"},{"lang":"Rust","label":"Rust","source":"let endpoint_out = svix.endpoint().get(\"app_id\", \"endpoint_id\").await?;"},{"lang":"C#","label":"C#","source":"var endpointOut = await svix.Endpoint.GetAsync(\"app_id\", \"endpoint_id\")"},{"lang":"Shell","label":"CLI","source":"svix endpoint get 'app_id' 'endpoint_id'"},{"lang":"Shell","label":"cURL","source":"curl -X 'GET' \\\n  'https://api.svix.com/api/v1/app/{app_id}/endpoint/{endpoint_id}/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]},"put":{"tags":["Endpoint"],"summary":"Update Endpoint","description":"Update an endpoint.","operationId":"update_endpoint_api_v1_app__app_id__endpoint__endpoint_id___put","parameters":[{"required":true,"schema":{"title":"Endpoint Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The endpoint's ID or UID","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"endpoint_id","in":"path"},{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointOut"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const endpointOut = await svix.endpoint.update('app_id', 'endpoint_id', {\n    uid: \"unique-endpoint-identifier\",\n    url: \"https://example.com/webhook/\",\n    version: 1,\n    description: \"An example endpoint name\",\n    filterTypes: [\n        \"user.signup\",\n        \"user.deleted\"\n    ],\n    channels: [\n        \"project_123\",\n        \"group_2\"\n    ],\n    disabled: false,\n    rateLimit: 1000\n});"},{"lang":"JavaScript","label":"TypeScript","source":"const endpointOut = await svix.endpoint.update('app_id', 'endpoint_id', {\n    uid: \"unique-endpoint-identifier\",\n    url: \"https://example.com/webhook/\",\n    version: 1,\n    description: \"An example endpoint name\",\n    filterTypes: [\n        \"user.signup\",\n        \"user.deleted\"\n    ],\n    channels: [\n        \"project_123\",\n        \"group_2\"\n    ],\n    disabled: false,\n    rateLimit: 1000\n});"},{"lang":"Python","label":"Python","source":"endpoint_out = svix.endpoint.update('app_id', 'endpoint_id', EndpointUpdate(\n    uid=\"unique-endpoint-identifier\",\n    url=\"https://example.com/webhook/\",\n    version=1,\n    description=\"An example endpoint name\",\n    filter_types=['user.signup', 'user.deleted'],\n    channels=['project_123', 'group_2'],\n    disabled=False,\n    rate_limit=1000\n))"},{"lang":"Python","label":"Python (Async)","source":"endpoint_out = await svix.endpoint.update('app_id', 'endpoint_id', EndpointUpdate(\n    uid=\"unique-endpoint-identifier\",\n    url=\"https://example.com/webhook/\",\n    version=1,\n    description=\"An example endpoint name\",\n    filter_types=['user.signup', 'user.deleted'],\n    channels=['project_123', 'group_2'],\n    disabled=False,\n    rate_limit=1000\n))"},{"lang":"Go","label":"Go","source":"endpointOut, err := svixClient.Endpoint.Update(\"app_id\", \"endpoint_id\", &svix.EndpointUpdate{\n    Uid: \"unique-endpoint-identifier\",\n    Url: \"https://example.com/webhook/\",\n    Version: 1,\n    Description: \"An example endpoint name\",\n    FilterTypes: [...]string{\"user.signup\", \"user.deleted\"},\n    Channels: [...]string{\"project_123\", \"group_2\"},\n    Disabled: False,\n    RateLimit: 1000\n})"},{"lang":"Kotlin","label":"Kotlin","source":"val endpointOut = svix.endpoint.update('app_id', 'endpoint_id', EndpointUpdate()\n    .uid(\"unique-endpoint-identifier\"),\n    .url(\"https://example.com/webhook/\"),\n    .version(1),\n    .description(\"An example endpoint name\"),\n    .filterTypes(arrayOf(\"user.signup\", \"user.deleted\")),\n    .channels(arrayOf(\"project_123\", \"group_2\")),\n    .disabled(False),\n    .rateLimit(1000)\n)"},{"lang":"Java","label":"Java","source":"EndpointOut endpointOut = svix.getEndpoint().update('app_id', 'endpoint_id', new EndpointUpdate()\n    .uid(\"unique-endpoint-identifier\"),\n    .url(\"https://example.com/webhook/\"),\n    .version(1),\n    .description(\"An example endpoint name\"),\n    .filterTypes(new String[]{\"user.signup\", \"user.deleted\"}),\n    .channels(new String[]{\"project_123\", \"group_2\"}),\n    .disabled(False),\n    .rateLimit(1000)\n)"},{"lang":"Ruby","label":"Ruby","source":"endpoint_out = svix.endpoint.update('app_id', 'endpoint_id', Svix::EndpointUpdate.new({\n    \"uid\": \"unique-endpoint-identifier\",\n    \"url\": \"https://example.com/webhook/\",\n    \"version\": 1,\n    \"description\": \"An example endpoint name\",\n    \"filter_types\": [\n        \"user.signup\",\n        \"user.deleted\"\n    ],\n    \"channels\": [\n        \"project_123\",\n        \"group_2\"\n    ],\n    \"disabled\": false,\n    \"rate_limit\": 1000\n}))"},{"lang":"Rust","label":"Rust","source":"let endpoint_out = svix.endpoint().update(\"app_id\", \"endpoint_id\", EndpointUpdate {\n    uid: \"unique-endpoint-identifier\".to_string(),\n    url: \"https://example.com/webhook/\".to_string(),\n    version: 1,\n    description: \"An example endpoint name\".to_string(),\n    filter_types: vec![\"user.signup\".to_string(), \"user.deleted\".to_string()],\n    channels: vec![\"project_123\".to_string(), \"group_2\".to_string()],\n    disabled: False,\n    rate_limit: 1000\n}).await?;"},{"lang":"C#","label":"C#","source":"var endpointOut = await svix.Endpoint.UpdateAsync(\"app_id\", \"endpoint_id\", new EndpointUpdate{\n    uid: \"unique-endpoint-identifier\",\n    url: \"https://example.com/webhook/\",\n    version: 1,\n    description: \"An example endpoint name\",\n    filterTypes: new string[] {\"user.signup\", \"user.deleted\"},\n    channels: new string[] {\"project_123\", \"group_2\"},\n    disabled: false,\n    rateLimit: 1000\n})"},{"lang":"Shell","label":"CLI","source":"svix endpoint update 'app_id' 'endpoint_id' '{\n    \"uid\": \"unique-endpoint-identifier\",\n    \"url\": \"https://example.com/webhook/\",\n    \"version\": 1,\n    \"description\": \"An example endpoint name\",\n    \"filterTypes\": [\n        \"user.signup\",\n        \"user.deleted\"\n    ],\n    \"channels\": [\n        \"project_123\",\n        \"group_2\"\n    ],\n    \"disabled\": false,\n    \"rateLimit\": 1000\n}'"},{"lang":"Shell","label":"cURL","source":"curl -X 'PUT' \\\n  'https://api.svix.com/api/v1/app/{app_id}/endpoint/{endpoint_id}/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"uid\": \"unique-endpoint-identifier\",\n    \"url\": \"https://example.com/webhook/\",\n    \"version\": 1,\n    \"description\": \"An example endpoint name\",\n    \"filterTypes\": [\n        \"user.signup\",\n        \"user.deleted\"\n    ],\n    \"channels\": [\n        \"project_123\",\n        \"group_2\"\n    ],\n    \"disabled\": false,\n    \"rateLimit\": 1000\n}'"}]},"delete":{"tags":["Endpoint"],"summary":"Delete Endpoint","description":"Delete an endpoint.","operationId":"delete_endpoint_api_v1_app__app_id__endpoint__endpoint_id___delete","parameters":[{"required":true,"schema":{"title":"Endpoint Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The endpoint's ID or UID","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"endpoint_id","in":"path"},{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"204":{"description":"Successful Response"},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"await svix.endpoint.delete('app_id', 'endpoint_id');"},{"lang":"JavaScript","label":"TypeScript","source":"await svix.endpoint.delete('app_id', 'endpoint_id');"},{"lang":"Python","label":"Python","source":"svix.endpoint.delete('app_id', 'endpoint_id')"},{"lang":"Python","label":"Python (Async)","source":"await svix.endpoint.delete('app_id', 'endpoint_id')"},{"lang":"Go","label":"Go","source":"err := svixClient.Endpoint.Delete(\"app_id\", \"endpoint_id\")"},{"lang":"Kotlin","label":"Kotlin","source":"svix.endpoint.delete('app_id', 'endpoint_id')"},{"lang":"Java","label":"Java","source":"svix.getEndpoint().delete('app_id', 'endpoint_id')"},{"lang":"Ruby","label":"Ruby","source":"svix.endpoint.delete('app_id', 'endpoint_id')"},{"lang":"Rust","label":"Rust","source":"svix.endpoint().delete(\"app_id\", \"endpoint_id\").await?;"},{"lang":"C#","label":"C#","source":"await svix.Endpoint.DeleteAsync(\"app_id\", \"endpoint_id\")"},{"lang":"Shell","label":"CLI","source":"svix endpoint delete 'app_id' 'endpoint_id'"},{"lang":"Shell","label":"cURL","source":"curl -X 'DELETE' \\\n  'https://api.svix.com/api/v1/app/{app_id}/endpoint/{endpoint_id}/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]}},"/api/v1/app/{app_id}/endpoint/{endpoint_id}/secret/":{"get":{"tags":["Endpoint"],"summary":"Get Endpoint Secret","description":"Get the endpoint's signing secret.\n\nThis is used to verify the authenticity of the webhook.\nFor more information please refer to [the consuming webhooks docs](https://docs.svix.com/consuming-webhooks/).","operationId":"get_endpoint_secret_api_v1_app__app_id__endpoint__endpoint_id__secret__get","parameters":[{"required":true,"schema":{"title":"Endpoint Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The endpoint's ID or UID","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"endpoint_id","in":"path"},{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointSecretOut"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const endpointSecretOut = await svix.endpoint.getSecret('app_id', 'endpoint_id');"},{"lang":"JavaScript","label":"TypeScript","source":"const endpointSecretOut = await svix.endpoint.getSecret('app_id', 'endpoint_id');"},{"lang":"Python","label":"Python","source":"endpoint_secret_out = svix.endpoint.get_secret('app_id', 'endpoint_id')"},{"lang":"Python","label":"Python (Async)","source":"endpoint_secret_out = await svix.endpoint.get_secret('app_id', 'endpoint_id')"},{"lang":"Go","label":"Go","source":"endpointSecretOut, err := svixClient.Endpoint.GetSecret(\"app_id\", \"endpoint_id\")"},{"lang":"Kotlin","label":"Kotlin","source":"val endpointSecretOut = svix.endpoint.getSecret('app_id', 'endpoint_id')"},{"lang":"Java","label":"Java","source":"EndpointSecretOut endpointSecretOut = svix.getEndpoint().getSecret('app_id', 'endpoint_id')"},{"lang":"Ruby","label":"Ruby","source":"endpoint_secret_out = svix.endpoint.get_secret('app_id', 'endpoint_id')"},{"lang":"Rust","label":"Rust","source":"let endpoint_secret_out = svix.endpoint().get_secret(\"app_id\", \"endpoint_id\").await?;"},{"lang":"C#","label":"C#","source":"var endpointSecretOut = await svix.Endpoint.GetSecretAsync(\"app_id\", \"endpoint_id\")"},{"lang":"Shell","label":"CLI","source":"svix endpoint get-secret 'app_id' 'endpoint_id'"},{"lang":"Shell","label":"cURL","source":"curl -X 'GET' \\\n  'https://api.svix.com/api/v1/app/{app_id}/endpoint/{endpoint_id}/secret/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]}},"/api/v1/app/{app_id}/endpoint/{endpoint_id}/secret/rotate/":{"post":{"tags":["Endpoint"],"summary":"Rotate Endpoint Secret","description":"Rotates the endpoint's signing secret.  The previous secret will be valid for the next 24 hours.","operationId":"rotate_endpoint_secret_api_v1_app__app_id__endpoint__endpoint_id__secret_rotate__post","parameters":[{"required":true,"schema":{"title":"Endpoint Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The endpoint's ID or UID","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"endpoint_id","in":"path"},{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointSecretRotateIn"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"await svix.endpoint.rotateSecret('app_id', 'endpoint_id', {\n    key: \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"\n});"},{"lang":"JavaScript","label":"TypeScript","source":"await svix.endpoint.rotateSecret('app_id', 'endpoint_id', {\n    key: \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"\n});"},{"lang":"Python","label":"Python","source":"svix.endpoint.rotate_secret('app_id', 'endpoint_id', EndpointSecretRotateIn(\n    key=\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"\n))"},{"lang":"Python","label":"Python (Async)","source":"await svix.endpoint.rotate_secret('app_id', 'endpoint_id', EndpointSecretRotateIn(\n    key=\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"\n))"},{"lang":"Go","label":"Go","source":"err := svixClient.Endpoint.RotateSecret(\"app_id\", \"endpoint_id\", &svix.EndpointSecretRotateIn{\n    Key: \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"\n})"},{"lang":"Kotlin","label":"Kotlin","source":"svix.endpoint.rotateSecret('app_id', 'endpoint_id', EndpointSecretRotateIn()\n    .key(\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\")\n)"},{"lang":"Java","label":"Java","source":"svix.getEndpoint().rotateSecret('app_id', 'endpoint_id', new EndpointSecretRotateIn()\n    .key(\"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\")\n)"},{"lang":"Ruby","label":"Ruby","source":"svix.endpoint.rotate_secret('app_id', 'endpoint_id', Svix::EndpointSecretRotateIn.new({\n    \"key\": \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"\n}))"},{"lang":"Rust","label":"Rust","source":"svix.endpoint().rotate_secret(\"app_id\", \"endpoint_id\", EndpointSecretRotateIn {\n    key: \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\".to_string()\n}).await?;"},{"lang":"C#","label":"C#","source":"await svix.Endpoint.RotateSecretAsync(\"app_id\", \"endpoint_id\", new EndpointSecretRotateIn{\n    key: \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"\n})"},{"lang":"Shell","label":"CLI","source":"svix endpoint rotate-secret 'app_id' 'endpoint_id' '{\n    \"key\": \"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD\"\n}'"},{"lang":"Shell","label":"cURL","source":"curl -X 'POST' \\\n  'https://api.svix.com/api/v1/app/{app_id}/endpoint/{endpoint_id}/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/app/{app_id}/endpoint/{endpoint_id}/recover/":{"post":{"tags":["Endpoint"],"summary":"Recover Failed Webhooks","description":"Resend all failed messages since a given time.","operationId":"recover_failed_webhooks_api_v1_app__app_id__endpoint__endpoint_id__recover__post","parameters":[{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"required":true,"schema":{"title":"Endpoint Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The endpoint's ID or UID","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"endpoint_id","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecoverIn"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecoverOut"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const recoverOut = await svix.endpoint.recover('app_id', 'endpoint_id', {\n    since: new Date(\"2019-08-24T14:15:22Z\")\n});"},{"lang":"JavaScript","label":"TypeScript","source":"const recoverOut = await svix.endpoint.recover('app_id', 'endpoint_id', {\n    since: new Date(\"2019-08-24T14:15:22Z\")\n});"},{"lang":"Python","label":"Python","source":"recover_out = svix.endpoint.recover('app_id', 'endpoint_id', RecoverIn(\n    since=datetime.datetime(2019, 8, 24, 14, 15, 22, timezone.utc)\n))"},{"lang":"Python","label":"Python (Async)","source":"recover_out = await svix.endpoint.recover('app_id', 'endpoint_id', RecoverIn(\n    since=datetime.datetime(2019, 8, 24, 14, 15, 22, timezone.utc)\n))"},{"lang":"Go","label":"Go","source":"recoverOut, err := svixClient.Endpoint.Recover(\"app_id\", \"endpoint_id\", &svix.RecoverIn{\n    Since: \"2019-08-24T14:15:22Z\"\n})"},{"lang":"Kotlin","label":"Kotlin","source":"val recoverOut = svix.endpoint.recover('app_id', 'endpoint_id', RecoverIn()\n    .since(\"2019-08-24T14:15:22Z\")\n)"},{"lang":"Java","label":"Java","source":"RecoverOut recoverOut = svix.getEndpoint().recover('app_id', 'endpoint_id', new RecoverIn()\n    .since(\"2019-08-24T14:15:22Z\")\n)"},{"lang":"Ruby","label":"Ruby","source":"recover_out = svix.endpoint.recover('app_id', 'endpoint_id', Svix::RecoverIn.new({\n    \"since\": \"2019-08-24T14:15:22Z\"\n}))"},{"lang":"Rust","label":"Rust","source":"let recover_out = svix.endpoint().recover(\"app_id\", \"endpoint_id\", RecoverIn {\n    since: \"2019-08-24T14:15:22Z\".to_string()\n}).await?;"},{"lang":"C#","label":"C#","source":"var recoverOut = await svix.Endpoint.RecoverAsync(\"app_id\", \"endpoint_id\", new RecoverIn{\n    since: \"2019-08-24T14:15:22Z\"\n})"},{"lang":"Shell","label":"CLI","source":"svix endpoint recover 'app_id' 'endpoint_id' '{\n    \"since\": \"2019-08-24T14:15:22Z\"\n}'"},{"lang":"Shell","label":"cURL","source":"curl -X 'POST' \\\n  'https://api.svix.com/api/v1/app/{app_id}/endpoint/{endpoint_id}/recover/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"since\": \"2019-08-24T14:15:22Z\"\n}'"}]}},"/api/v1/app/{app_id}/endpoint/{endpoint_id}/headers/":{"get":{"tags":["Endpoint"],"summary":"Get Endpoint Headers","description":"Get the additional headers to be sent with the webhook","operationId":"get_endpoint_headers_api_v1_app__app_id__endpoint__endpoint_id__headers__get","parameters":[{"required":true,"schema":{"title":"Endpoint Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The endpoint's ID or UID","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"endpoint_id","in":"path"},{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointHeadersOut"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const endpointHeadersOut = await svix.endpoint.getHeaders('app_id', 'endpoint_id');"},{"lang":"JavaScript","label":"TypeScript","source":"const endpointHeadersOut = await svix.endpoint.getHeaders('app_id', 'endpoint_id');"},{"lang":"Python","label":"Python","source":"endpoint_headers_out = svix.endpoint.get_headers('app_id', 'endpoint_id')"},{"lang":"Python","label":"Python (Async)","source":"endpoint_headers_out = await svix.endpoint.get_headers('app_id', 'endpoint_id')"},{"lang":"Go","label":"Go","source":"endpointHeadersOut, err := svixClient.Endpoint.GetHeaders(\"app_id\", \"endpoint_id\")"},{"lang":"Kotlin","label":"Kotlin","source":"val endpointHeadersOut = svix.endpoint.getHeaders('app_id', 'endpoint_id')"},{"lang":"Java","label":"Java","source":"EndpointHeadersOut endpointHeadersOut = svix.getEndpoint().getHeaders('app_id', 'endpoint_id')"},{"lang":"Ruby","label":"Ruby","source":"endpoint_headers_out = svix.endpoint.get_headers('app_id', 'endpoint_id')"},{"lang":"Rust","label":"Rust","source":"let endpoint_headers_out = svix.endpoint().get_headers(\"app_id\", \"endpoint_id\").await?;"},{"lang":"C#","label":"C#","source":"var endpointHeadersOut = await svix.Endpoint.GetHeadersAsync(\"app_id\", \"endpoint_id\")"},{"lang":"Shell","label":"CLI","source":"svix endpoint get-headers 'app_id' 'endpoint_id'"},{"lang":"Shell","label":"cURL","source":"curl -X 'GET' \\\n  'https://api.svix.com/api/v1/app/{app_id}/endpoint/{endpoint_id}/headers/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]},"put":{"tags":["Endpoint"],"summary":"Update Endpoint Headers","description":"Set the additional headers to be sent with the webhook","operationId":"update_endpoint_headers_api_v1_app__app_id__endpoint__endpoint_id__headers__put","parameters":[{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"required":true,"schema":{"title":"Endpoint Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The endpoint's ID or UID","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"endpoint_id","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointHeadersIn"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"await svix.endpoint.updateHeaders('app_id', 'endpoint_id', {\n    headers: {\n        \"X-Foobar\": \"Bar\",\n        \"X-Example\": \"123\"\n    }\n});"},{"lang":"JavaScript","label":"TypeScript","source":"await svix.endpoint.updateHeaders('app_id', 'endpoint_id', {\n    headers: {\n        \"X-Foobar\": \"Bar\",\n        \"X-Example\": \"123\"\n    }\n});"},{"lang":"Python","label":"Python","source":"svix.endpoint.update_headers('app_id', 'endpoint_id', EndpointHeadersIn(\n    headers={'X-Foobar': 'Bar', 'X-Example': '123'}\n))"},{"lang":"Python","label":"Python (Async)","source":"await svix.endpoint.update_headers('app_id', 'endpoint_id', EndpointHeadersIn(\n    headers={'X-Foobar': 'Bar', 'X-Example': '123'}\n))"},{"lang":"Go","label":"Go","source":"err := svixClient.Endpoint.UpdateHeaders(\"app_id\", \"endpoint_id\", &svix.EndpointHeadersIn{\n    Headers: map[string]string{\n        \"X-Foobar\": \"Bar\",\n        \"X-Example\": \"123\"\n    }\n})"},{"lang":"Kotlin","label":"Kotlin","source":"svix.endpoint.updateHeaders('app_id', 'endpoint_id', EndpointHeadersIn()\n    .headers(\"\"\"{\n        \"X-Foobar\": \"Bar\",\n        \"X-Example\": \"123\"\n    }\"\"\")\n)"},{"lang":"Java","label":"Java","source":"svix.getEndpoint().updateHeaders('app_id', 'endpoint_id', new EndpointHeadersIn()\n    .headers(\"{\" +\n        \"\\\"X-Foobar\\\": \\\"Bar\\\",\" +\n        \"\\\"X-Example\\\": \\\"123\\\"\" +\n    \"}\")\n)"},{"lang":"Ruby","label":"Ruby","source":"svix.endpoint.update_headers('app_id', 'endpoint_id', Svix::EndpointHeadersIn.new({\n    \"headers\": {\n        \"X-Foobar\": \"Bar\",\n        \"X-Example\": \"123\"\n    }\n}))"},{"lang":"Rust","label":"Rust","source":"svix.endpoint().update_headers(\"app_id\", \"endpoint_id\", EndpointHeadersIn {\n    headers: HashMap::from([\n        (\"X-Foobar.\"to_string(), \"Bar\".to_string()),\n        (\"X-Example.\"to_string(), \"123\".to_string())\n    ])\n}).await?;"},{"lang":"C#","label":"C#","source":"await svix.Endpoint.UpdateHeadersAsync(\"app_id\", \"endpoint_id\", new EndpointHeadersIn{\n    headers: new {\n        \"X-Foobar\": \"Bar\",\n        \"X-Example\": \"123\"\n    }\n})"},{"lang":"Shell","label":"CLI","source":"svix endpoint update-headers 'app_id' 'endpoint_id' '{\n    \"headers\": {\n        \"X-Foobar\": \"Bar\",\n        \"X-Example\": \"123\"\n    }\n}'"},{"lang":"Shell","label":"cURL","source":"curl -X 'PUT' \\\n  'https://api.svix.com/api/v1/app/{app_id}/endpoint/{endpoint_id}/headers/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"headers\": {\n        \"X-Foobar\": \"Bar\",\n        \"X-Example\": \"123\"\n    }\n}'"}]},"patch":{"tags":["Endpoint"],"summary":"Patch Endpoint Headers","description":"Partially set the additional headers to be sent with the webhook","operationId":"patch_endpoint_headers_api_v1_app__app_id__endpoint__endpoint_id__headers__patch","parameters":[{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"required":true,"schema":{"title":"Endpoint Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The endpoint's ID or UID","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"endpoint_id","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointHeadersPatchIn"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"await svix.endpoint.patchHeaders('app_id', 'endpoint_id', {\n    headers: {\n        \"X-Foobar\": \"Bar\",\n        \"X-Example\": \"123\"\n    }\n});"},{"lang":"JavaScript","label":"TypeScript","source":"await svix.endpoint.patchHeaders('app_id', 'endpoint_id', {\n    headers: {\n        \"X-Foobar\": \"Bar\",\n        \"X-Example\": \"123\"\n    }\n});"},{"lang":"Python","label":"Python","source":"svix.endpoint.patch_headers('app_id', 'endpoint_id', EndpointHeadersPatchIn(\n    headers={'X-Foobar': 'Bar', 'X-Example': '123'}\n))"},{"lang":"Python","label":"Python (Async)","source":"await svix.endpoint.patch_headers('app_id', 'endpoint_id', EndpointHeadersPatchIn(\n    headers={'X-Foobar': 'Bar', 'X-Example': '123'}\n))"},{"lang":"Go","label":"Go","source":"err := svixClient.Endpoint.PatchHeaders(\"app_id\", \"endpoint_id\", &svix.EndpointHeadersPatchIn{\n    Headers: map[string]string{\n        \"X-Foobar\": \"Bar\",\n        \"X-Example\": \"123\"\n    }\n})"},{"lang":"Kotlin","label":"Kotlin","source":"svix.endpoint.patchHeaders('app_id', 'endpoint_id', EndpointHeadersPatchIn()\n    .headers(\"\"\"{\n        \"X-Foobar\": \"Bar\",\n        \"X-Example\": \"123\"\n    }\"\"\")\n)"},{"lang":"Java","label":"Java","source":"svix.getEndpoint().patchHeaders('app_id', 'endpoint_id', new EndpointHeadersPatchIn()\n    .headers(\"{\" +\n        \"\\\"X-Foobar\\\": \\\"Bar\\\",\" +\n        \"\\\"X-Example\\\": \\\"123\\\"\" +\n    \"}\")\n)"},{"lang":"Ruby","label":"Ruby","source":"svix.endpoint.patch_headers('app_id', 'endpoint_id', Svix::EndpointHeadersPatchIn.new({\n    \"headers\": {\n        \"X-Foobar\": \"Bar\",\n        \"X-Example\": \"123\"\n    }\n}))"},{"lang":"Rust","label":"Rust","source":"svix.endpoint().patch_headers(\"app_id\", \"endpoint_id\", EndpointHeadersPatchIn {\n    headers: HashMap::from([\n        (\"X-Foobar.\"to_string(), \"Bar\".to_string()),\n        (\"X-Example.\"to_string(), \"123\".to_string())\n    ])\n}).await?;"},{"lang":"C#","label":"C#","source":"await svix.Endpoint.PatchHeadersAsync(\"app_id\", \"endpoint_id\", new EndpointHeadersPatchIn{\n    headers: new {\n        \"X-Foobar\": \"Bar\",\n        \"X-Example\": \"123\"\n    }\n})"},{"lang":"Shell","label":"CLI","source":"svix endpoint patch-headers 'app_id' 'endpoint_id' '{\n    \"headers\": {\n        \"X-Foobar\": \"Bar\",\n        \"X-Example\": \"123\"\n    }\n}'"},{"lang":"Shell","label":"cURL","source":"curl -X 'PATCH' \\\n  'https://api.svix.com/api/v1/app/{app_id}/endpoint/{endpoint_id}/headers/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"headers\": {\n        \"X-Foobar\": \"Bar\",\n        \"X-Example\": \"123\"\n    }\n}'"}]}},"/api/v1/app/{app_id}/msg/":{"get":{"tags":["Message"],"summary":"List Messages","description":"List all of the application's messages.\n\nThe `before` parameter lets you filter all items created before a certain date and is ignored if an iterator is passed.\nThe `after` parameter lets you filter all items created after a certain date and is ignored if an iterator is passed.\n`before` and `after` cannot be used simultaneously.","operationId":"list_messages_api_v1_app__app_id__msg__get","parameters":[{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"required":false,"schema":{"title":"Iterator","type":"string","example":"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"iterator","in":"query"},{"required":false,"schema":{"title":"Limit","maximum":250.0,"type":"integer","default":50},"name":"limit","in":"query"},{"required":false,"schema":{"title":"Event Types","type":"array","items":{"maxLength":256,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"user.signup"}},"name":"event_types","in":"query"},{"required":false,"schema":{"title":"Channel","maxLength":128,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"project_1337"},"name":"channel","in":"query"},{"required":false,"schema":{"title":"Before","type":"string","format":"date-time"},"name":"before","in":"query"},{"required":false,"schema":{"title":"After","type":"string","format":"date-time"},"name":"after","in":"query"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_MessageOut_"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const listResponseMessageOut = await svix.message.list('app_id');"},{"lang":"JavaScript","label":"TypeScript","source":"const listResponseMessageOut = await svix.message.list('app_id');"},{"lang":"Python","label":"Python","source":"list_response_message_out = svix.message.list('app_id')"},{"lang":"Python","label":"Python (Async)","source":"list_response_message_out = await svix.message.list('app_id')"},{"lang":"Go","label":"Go","source":"listResponseMessageOut, err := svixClient.Message.List(\"app_id\", nil)"},{"lang":"Kotlin","label":"Kotlin","source":"val listResponseMessageOut = svix.message.list('app_id', FetchOptions())"},{"lang":"Java","label":"Java","source":"ListResponseMessageOut listResponseMessageOut = svix.getMessage().list('app_id', new FetchOptions())"},{"lang":"Ruby","label":"Ruby","source":"list_response_message_out = svix.message.list('app_id')"},{"lang":"Rust","label":"Rust","source":"let list_response_message_out = svix.message().list(\"app_id\", None).await?;"},{"lang":"C#","label":"C#","source":"var listResponseMessageOut = await svix.Message.ListAsync(\"app_id\")"},{"lang":"Shell","label":"CLI","source":"svix message list 'app_id'"},{"lang":"Shell","label":"cURL","source":"curl -X 'GET' \\\n  'https://api.svix.com/api/v1/app/{app_id}/msg/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]},"post":{"tags":["Message"],"summary":"Create Message","description":"Creates a new message and dispatches it to all of the application's endpoints.\n\nThe `eventId` is an optional custom unique ID. It's verified to be unique only up to a day, after that no verification will be made.\nIf a message with the same `eventId` already exists for any application in your environment, a 409 conflict error will be returned.\n\nThe `eventType` indicates the type and schema of the event. All messages of a certain `eventType` are expected to have the same schema. Endpoints can choose to only listen to specific event types.\nMessages can also have `channels`, which similar to event types let endpoints filter by them. Unlike event types, messages can have multiple channels, and channels don't imply a specific message content or schema.\n\nThe `payload' property is the webhook's body (the actual webhook message).","operationId":"create_message_api_v1_app__app_id__msg__post","parameters":[{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"required":false,"schema":{"title":"With Content","type":"boolean","default":true},"name":"with_content","in":"query"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageIn"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageOut"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"413":{"description":"Request Entity Too Large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const messageOut = await svix.message.create('app_id', {\n    eventType: \"user.signup\",\n    eventId: \"evt_pNZKtWg8Azow\",\n    channels: [\n        \"project_123\",\n        \"group_2\"\n    ],\n    payload: {\n        \"username\": \"test_user\",\n        \"email\": \"test@example.com\"\n    },\n    payloadRetentionPeriod: 90\n});"},{"lang":"JavaScript","label":"TypeScript","source":"const messageOut = await svix.message.create('app_id', {\n    eventType: \"user.signup\",\n    eventId: \"evt_pNZKtWg8Azow\",\n    channels: [\n        \"project_123\",\n        \"group_2\"\n    ],\n    payload: {\n        \"username\": \"test_user\",\n        \"email\": \"test@example.com\"\n    },\n    payloadRetentionPeriod: 90\n});"},{"lang":"Python","label":"Python","source":"message_out = svix.message.create('app_id', MessageIn(\n    event_type=\"user.signup\",\n    event_id=\"evt_pNZKtWg8Azow\",\n    channels=['project_123', 'group_2'],\n    payload={'username': 'test_user', 'email': 'test@example.com'},\n    payload_retention_period=90\n))"},{"lang":"Python","label":"Python (Async)","source":"message_out = await svix.message.create('app_id', MessageIn(\n    event_type=\"user.signup\",\n    event_id=\"evt_pNZKtWg8Azow\",\n    channels=['project_123', 'group_2'],\n    payload={'username': 'test_user', 'email': 'test@example.com'},\n    payload_retention_period=90\n))"},{"lang":"Go","label":"Go","source":"messageOut, err := svixClient.Message.Create(\"app_id\", &svix.MessageIn{\n    EventType: \"user.signup\",\n    EventId: \"evt_pNZKtWg8Azow\",\n    Channels: [...]string{\"project_123\", \"group_2\"},\n    Payload: map[string]interface{}{\n        \"username\": \"test_user\",\n        \"email\": \"test@example.com\"\n    },\n    PayloadRetentionPeriod: 90\n})"},{"lang":"Kotlin","label":"Kotlin","source":"val messageOut = svix.message.create('app_id', MessageIn()\n    .eventType(\"user.signup\"),\n    .eventId(\"evt_pNZKtWg8Azow\"),\n    .channels(arrayOf(\"project_123\", \"group_2\")),\n    .payload(\"\"\"{\n        \"username\": \"test_user\",\n        \"email\": \"test@example.com\"\n    }\"\"\"),\n    .payloadRetentionPeriod(90)\n)"},{"lang":"Java","label":"Java","source":"MessageOut messageOut = svix.getMessage().create('app_id', new MessageIn()\n    .eventType(\"user.signup\"),\n    .eventId(\"evt_pNZKtWg8Azow\"),\n    .channels(new String[]{\"project_123\", \"group_2\"}),\n    .payload(\"{\" +\n        \"\\\"username\\\": \\\"test_user\\\",\" +\n        \"\\\"email\\\": \\\"test@example.com\\\"\" +\n    \"}\"),\n    .payloadRetentionPeriod(90)\n)"},{"lang":"Ruby","label":"Ruby","source":"message_out = svix.message.create('app_id', Svix::MessageIn.new({\n    \"event_type\": \"user.signup\",\n    \"event_id\": \"evt_pNZKtWg8Azow\",\n    \"channels\": [\n        \"project_123\",\n        \"group_2\"\n    ],\n    \"payload\": {\n        \"username\": \"test_user\",\n        \"email\": \"test@example.com\"\n    },\n    \"payload_retention_period\": 90\n}))"},{"lang":"Rust","label":"Rust","source":"let message_out = svix.message().create(\"app_id\", MessageIn {\n    event_type: \"user.signup\".to_string(),\n    event_id: \"evt_pNZKtWg8Azow\".to_string(),\n    channels: vec![\"project_123\".to_string(), \"group_2\".to_string()],\n    payload: json!({\n        \"username\": \"test_user\",\n        \"email\": \"test@example.com\"\n    }),\n    payload_retention_period: 90\n}).await?;"},{"lang":"C#","label":"C#","source":"var messageOut = await svix.Message.CreateAsync(\"app_id\", new MessageIn{\n    eventType: \"user.signup\",\n    eventId: \"evt_pNZKtWg8Azow\",\n    channels: new string[] {\"project_123\", \"group_2\"},\n    payload: new {\n        \"username\": \"test_user\",\n        \"email\": \"test@example.com\"\n    },\n    payloadRetentionPeriod: 90\n})"},{"lang":"Shell","label":"CLI","source":"svix message create 'app_id' '{\n    \"eventType\": \"user.signup\",\n    \"eventId\": \"evt_pNZKtWg8Azow\",\n    \"channels\": [\n        \"project_123\",\n        \"group_2\"\n    ],\n    \"payload\": {\n        \"username\": \"test_user\",\n        \"email\": \"test@example.com\"\n    },\n    \"payloadRetentionPeriod\": 90\n}'"},{"lang":"Shell","label":"cURL","source":"curl -X 'POST' \\\n  'https://api.svix.com/api/v1/app/{app_id}/msg/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"eventType\": \"user.signup\",\n    \"eventId\": \"evt_pNZKtWg8Azow\",\n    \"channels\": [\n        \"project_123\",\n        \"group_2\"\n    ],\n    \"payload\": {\n        \"username\": \"test_user\",\n        \"email\": \"test@example.com\"\n    },\n    \"payloadRetentionPeriod\": 90\n}'"}]}},"/api/v1/app/{app_id}/msg/{msg_id}/":{"get":{"tags":["Message"],"summary":"Get Message","description":"Get a message by its ID or eventID.","operationId":"get_message_api_v1_app__app_id__msg__msg_id___get","parameters":[{"required":true,"schema":{"title":"Msg Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The message's ID or eventID","example":"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"msg_id","in":"path"},{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageOut"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const messageOut = await svix.message.get('app_id', 'msg_id');"},{"lang":"JavaScript","label":"TypeScript","source":"const messageOut = await svix.message.get('app_id', 'msg_id');"},{"lang":"Python","label":"Python","source":"message_out = svix.message.get('app_id', 'msg_id')"},{"lang":"Python","label":"Python (Async)","source":"message_out = await svix.message.get('app_id', 'msg_id')"},{"lang":"Go","label":"Go","source":"messageOut, err := svixClient.Message.Get(\"app_id\", \"msg_id\")"},{"lang":"Kotlin","label":"Kotlin","source":"val messageOut = svix.message.get('app_id', 'msg_id')"},{"lang":"Java","label":"Java","source":"MessageOut messageOut = svix.getMessage().get('app_id', 'msg_id')"},{"lang":"Ruby","label":"Ruby","source":"message_out = svix.message.get('app_id', 'msg_id')"},{"lang":"Rust","label":"Rust","source":"let message_out = svix.message().get(\"app_id\", \"msg_id\").await?;"},{"lang":"C#","label":"C#","source":"var messageOut = await svix.Message.GetAsync(\"app_id\", \"msg_id\")"},{"lang":"Shell","label":"CLI","source":"svix message get 'app_id' 'msg_id'"},{"lang":"Shell","label":"cURL","source":"curl -X 'GET' \\\n  'https://api.svix.com/api/v1/app/{app_id}/msg/{msg_id}/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]}},"/api/v1/app/{app_id}/endpoint/{endpoint_id}/msg/":{"get":{"tags":["Message Attempt"],"summary":"List Attempted Messages","description":"List messages for a particular endpoint. Additionally includes metadata about the latest message attempt.\n\nThe `before` parameter lets you filter all items created before a certain date and is ignored if an iterator is passed.","operationId":"list_attempted_messages_api_v1_app__app_id__endpoint__endpoint_id__msg__get","parameters":[{"required":true,"schema":{"title":"Endpoint Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The endpoint's ID or UID","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"endpoint_id","in":"path"},{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"required":false,"schema":{"title":"Iterator","type":"string","example":"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"iterator","in":"query"},{"required":false,"schema":{"title":"Limit","maximum":250.0,"type":"integer","default":50},"name":"limit","in":"query"},{"required":false,"schema":{"title":"Channel","maxLength":128,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"project_1337"},"name":"channel","in":"query"},{"required":false,"schema":{"$ref":"#/components/schemas/MessageStatus"},"name":"status","in":"query"},{"required":false,"schema":{"title":"Before","type":"string","format":"date-time"},"name":"before","in":"query"},{"required":false,"schema":{"title":"After","type":"string","format":"date-time"},"name":"after","in":"query"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_EndpointMessageOut_"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL","source":"curl -X 'GET' \\\n  'https://api.svix.com/api/v1/app/{app_id}/endpoint/{endpoint_id}/msg/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]}},"/api/v1/app/{app_id}/attempt/endpoint/{endpoint_id}/":{"get":{"tags":["Message Attempt"],"summary":"List Attempts By Endpoint","description":"List attempts by endpoint id","operationId":"list_attempts_by_endpoint_api_v1_app__app_id__attempt_endpoint__endpoint_id___get","parameters":[{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"required":true,"schema":{"title":"Endpoint Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The endpoint's ID or UID","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"endpoint_id","in":"path"},{"required":false,"schema":{"title":"Iterator","type":"string","example":"atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"iterator","in":"query"},{"required":false,"schema":{"title":"Limit","maximum":250.0,"type":"integer","default":50},"name":"limit","in":"query"},{"required":false,"schema":{"$ref":"#/components/schemas/MessageStatus"},"name":"status","in":"query"},{"required":false,"schema":{"$ref":"#/components/schemas/StatusCodeClass"},"name":"status_code_class","in":"query"},{"required":false,"schema":{"title":"Event Types","type":"array","items":{"maxLength":256,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"user.signup"}},"name":"event_types","in":"query"},{"required":false,"schema":{"title":"Channel","maxLength":128,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"project_1337"},"name":"channel","in":"query"},{"required":false,"schema":{"title":"Before","type":"string","format":"date-time"},"name":"before","in":"query"},{"required":false,"schema":{"title":"After","type":"string","format":"date-time"},"name":"after","in":"query"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_MessageAttemptOut_"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const listResponseMessageAttemptOut = await svix.messageAttempt.listByEndpoint('app_id', 'endpoint_id');"},{"lang":"JavaScript","label":"TypeScript","source":"const listResponseMessageAttemptOut = await svix.messageAttempt.listByEndpoint('app_id', 'endpoint_id');"},{"lang":"Python","label":"Python","source":"list_response_message_attempt_out = svix.message_attempt.list_by_endpoint('app_id', 'endpoint_id')"},{"lang":"Python","label":"Python (Async)","source":"list_response_message_attempt_out = await svix.message_attempt.list_by_endpoint('app_id', 'endpoint_id')"},{"lang":"Go","label":"Go","source":"listResponseMessageAttemptOut, err := svixClient.MessageAttempt.ListByEndpoint(\"app_id\", \"endpoint_id\")"},{"lang":"Kotlin","label":"Kotlin","source":"val listResponseMessageAttemptOut = svix.messageAttempt.listByEndpoint('app_id', 'endpoint_id')"},{"lang":"Java","label":"Java","source":"ListResponseMessageAttemptOut listResponseMessageAttemptOut = svix.getMessageAttempt().listByEndpoint('app_id', 'endpoint_id')"},{"lang":"Ruby","label":"Ruby","source":"list_response_message_attempt_out = svix.message_attempt.list_by_endpoint('app_id', 'endpoint_id')"},{"lang":"Rust","label":"Rust","source":"let list_response_message_attempt_out = svix.message_attempt().list_by_endpoint(\"app_id\", \"endpoint_id\", None).await?;"},{"lang":"C#","label":"C#","source":"var listResponseMessageAttemptOut = await svix.MessageAttempt.ListByEndpointAsync(\"app_id\", \"endpoint_id\")"},{"lang":"Shell","label":"CLI","source":"svix message-attempt list-by-endpoint 'app_id' 'endpoint_id'"},{"lang":"Shell","label":"cURL","source":"curl -X 'GET' \\\n  'https://api.svix.com/api/v1/app/{app_id}/attempt/endpoint/{endpoint_id}/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]}},"/api/v1/app/{app_id}/attempt/msg/{msg_id}/":{"get":{"tags":["Message Attempt"],"summary":"List Attempts By Msg","description":"List attempts by message id","operationId":"list_attempts_by_msg_api_v1_app__app_id__attempt_msg__msg_id___get","parameters":[{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"required":true,"schema":{"title":"Msg Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The message's ID or eventID","example":"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"msg_id","in":"path"},{"required":false,"schema":{"title":"Endpoint Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The endpoint's ID or UID","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"endpoint_id","in":"query"},{"required":false,"schema":{"title":"Iterator","type":"string","example":"atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"iterator","in":"query"},{"required":false,"schema":{"title":"Limit","maximum":250.0,"type":"integer","default":50},"name":"limit","in":"query"},{"required":false,"schema":{"$ref":"#/components/schemas/MessageStatus"},"name":"status","in":"query"},{"required":false,"schema":{"$ref":"#/components/schemas/StatusCodeClass"},"name":"status_code_class","in":"query"},{"required":false,"schema":{"title":"Event Types","type":"array","items":{"maxLength":256,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"user.signup"}},"name":"event_types","in":"query"},{"required":false,"schema":{"title":"Channel","maxLength":128,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"project_1337"},"name":"channel","in":"query"},{"required":false,"schema":{"title":"Before","type":"string","format":"date-time"},"name":"before","in":"query"},{"required":false,"schema":{"title":"After","type":"string","format":"date-time"},"name":"after","in":"query"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_MessageAttemptOut_"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const listResponseMessageAttemptOut = await svix.messageAttempt.listByMsg('app_id', 'msg_id');"},{"lang":"JavaScript","label":"TypeScript","source":"const listResponseMessageAttemptOut = await svix.messageAttempt.listByMsg('app_id', 'msg_id');"},{"lang":"Python","label":"Python","source":"list_response_message_attempt_out = svix.message_attempt.list_by_msg('app_id', 'msg_id')"},{"lang":"Python","label":"Python (Async)","source":"list_response_message_attempt_out = await svix.message_attempt.list_by_msg('app_id', 'msg_id')"},{"lang":"Go","label":"Go","source":"listResponseMessageAttemptOut, err := svixClient.MessageAttempt.ListByMsg(\"app_id\", \"msg_id\")"},{"lang":"Kotlin","label":"Kotlin","source":"val listResponseMessageAttemptOut = svix.messageAttempt.listByMsg('app_id', 'msg_id')"},{"lang":"Java","label":"Java","source":"ListResponseMessageAttemptOut listResponseMessageAttemptOut = svix.getMessageAttempt().listByMsg('app_id', 'msg_id')"},{"lang":"Ruby","label":"Ruby","source":"list_response_message_attempt_out = svix.message_attempt.list_by_msg('app_id', 'msg_id')"},{"lang":"Rust","label":"Rust","source":"let list_response_message_attempt_out = svix.message_attempt().list_by_msg(\"app_id\", \"msg_id\", None).await?;"},{"lang":"C#","label":"C#","source":"var listResponseMessageAttemptOut = await svix.MessageAttempt.ListByMsgAsync(\"app_id\", \"msg_id\")"},{"lang":"Shell","label":"CLI","source":"svix message-attempt list-by-msg 'app_id' 'msg_id'"},{"lang":"Shell","label":"cURL","source":"curl -X 'GET' \\\n  'https://api.svix.com/api/v1/app/{app_id}/attempt/msg/{msg_id}/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]}},"/api/v1/app/{app_id}/msg/{msg_id}/endpoint/":{"get":{"tags":["Message Attempt"],"summary":"List Attempted Destinations","description":"`msg_id`: Use a message id or a message `eventId`","operationId":"list_attempted_destinations_api_v1_app__app_id__msg__msg_id__endpoint__get","parameters":[{"required":true,"schema":{"title":"Msg Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The message's ID or eventID","example":"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"msg_id","in":"path"},{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"required":false,"schema":{"title":"Iterator","type":"string","example":"msgep_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"iterator","in":"query"},{"required":false,"schema":{"title":"Limit","maximum":250.0,"type":"integer","default":50},"name":"limit","in":"query"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_MessageEndpointOut_"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL","source":"curl -X 'GET' \\\n  'https://api.svix.com/api/v1/app/{app_id}/msg/{msg_id}/endpoint/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]}},"/api/v1/app/{app_id}/msg/{msg_id}/endpoint/{endpoint_id}/resend/":{"post":{"tags":["Message Attempt"],"summary":"Resend Webhook","description":"Resend a message to the specified endpoint.","operationId":"resend_webhook_api_v1_app__app_id__msg__msg_id__endpoint__endpoint_id__resend__post","parameters":[{"required":true,"schema":{"title":"Endpoint Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The endpoint's ID or UID","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"endpoint_id","in":"path"},{"required":true,"schema":{"title":"Msg Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The message's ID or eventID","example":"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"msg_id","in":"path"},{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"202":{"description":"Successful Response"},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"await svix.messageAttempt.resend('app_id', 'msg_id', 'endpoint_id');"},{"lang":"JavaScript","label":"TypeScript","source":"await svix.messageAttempt.resend('app_id', 'msg_id', 'endpoint_id');"},{"lang":"Python","label":"Python","source":"svix.message_attempt.resend('app_id', 'msg_id', 'endpoint_id')"},{"lang":"Python","label":"Python (Async)","source":"await svix.message_attempt.resend('app_id', 'msg_id', 'endpoint_id')"},{"lang":"Go","label":"Go","source":"err := svixClient.MessageAttempt.Resend(\"app_id\", \"msg_id\", \"endpoint_id\")"},{"lang":"Kotlin","label":"Kotlin","source":"svix.messageAttempt.resend('app_id', 'msg_id', 'endpoint_id')"},{"lang":"Java","label":"Java","source":"svix.getMessageAttempt().resend('app_id', 'msg_id', 'endpoint_id')"},{"lang":"Ruby","label":"Ruby","source":"svix.message_attempt.resend('app_id', 'msg_id', 'endpoint_id')"},{"lang":"Rust","label":"Rust","source":"svix.message_attempt().resend(\"app_id\", \"msg_id\", \"endpoint_id\").await?;"},{"lang":"C#","label":"C#","source":"await svix.MessageAttempt.ResendAsync(\"app_id\", \"msg_id\", \"endpoint_id\")"},{"lang":"Shell","label":"CLI","source":"svix message-attempt resend 'app_id' 'msg_id' 'endpoint_id'"},{"lang":"Shell","label":"cURL","source":"curl -X 'POST' \\\n  'https://api.svix.com/api/v1/app/{app_id}/msg/{msg_id}/endpoint/{endpoint_id}/resend/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]}},"/api/v1/app/{app_id}/msg/{msg_id}/endpoint/{endpoint_id}/attempt/":{"get":{"tags":["Message Attempt"],"summary":"List Attempts For Endpoint","description":"DEPRECATED: please use list_attempts with endpoint_id as a query parameter instead.\n\nList the message attempts for a particular endpoint.\n\nReturning the endpoint.\n\nThe `before` parameter lets you filter all items created before a certain date and is ignored if an iterator is passed.","operationId":"list_attempts_for_endpoint_api_v1_app__app_id__msg__msg_id__endpoint__endpoint_id__attempt__get","parameters":[{"required":true,"schema":{"title":"Msg Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The message's ID or eventID","example":"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"msg_id","in":"path"},{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"required":true,"schema":{"title":"Endpoint Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The endpoint's ID or UID","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"endpoint_id","in":"path"},{"required":false,"schema":{"title":"Iterator","type":"string","example":"atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"iterator","in":"query"},{"required":false,"schema":{"title":"Limit","maximum":250.0,"type":"integer","default":50},"name":"limit","in":"query"},{"required":false,"schema":{"title":"Event Types","type":"array","items":{"maxLength":256,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"user.signup"}},"name":"event_types","in":"query"},{"required":false,"schema":{"title":"Channel","maxLength":128,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"project_1337"},"name":"channel","in":"query"},{"required":false,"schema":{"$ref":"#/components/schemas/MessageStatus"},"name":"status","in":"query"},{"required":false,"schema":{"title":"Before","type":"string","format":"date-time"},"name":"before","in":"query"},{"required":false,"schema":{"title":"After","type":"string","format":"date-time"},"name":"after","in":"query"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_MessageAttemptEndpointOut_"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"Shell","label":"cURL","source":"curl -X 'GET' \\\n  'https://api.svix.com/api/v1/app/{app_id}/msg/{msg_id}/endpoint/{endpoint_id}/attempt/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]}},"/api/v1/app/{app_id}/msg/{msg_id}/attempt/":{"get":{"tags":["Message Attempt"],"summary":"List Attempts","description":"Deprecated: Please use \"List Attempts by Endpoint\" and \"List Attempts by Msg\" instead.\n\n`msg_id`: Use a message id or a message `eventId`","operationId":"list_attempts_api_v1_app__app_id__msg__msg_id__attempt__get","parameters":[{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"required":true,"schema":{"title":"Msg Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The message's ID or eventID","example":"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"msg_id","in":"path"},{"required":false,"schema":{"title":"Iterator","type":"string","example":"atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"iterator","in":"query"},{"required":false,"schema":{"title":"Limit","maximum":250.0,"type":"integer","default":50},"name":"limit","in":"query"},{"required":false,"schema":{"title":"Endpoint Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The endpoint's ID or UID","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"endpoint_id","in":"query"},{"required":false,"schema":{"title":"Event Types","type":"array","items":{"maxLength":256,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"user.signup"}},"name":"event_types","in":"query"},{"required":false,"schema":{"title":"Channel","maxLength":128,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"project_1337"},"name":"channel","in":"query"},{"required":false,"schema":{"$ref":"#/components/schemas/MessageStatus"},"name":"status","in":"query"},{"required":false,"schema":{"title":"Before","type":"string","format":"date-time"},"name":"before","in":"query"},{"required":false,"schema":{"title":"After","type":"string","format":"date-time"},"name":"after","in":"query"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_MessageAttemptOut_"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const listResponseMessageAttemptOut = await svix.messageAttempt.list('app_id', 'msg_id');"},{"lang":"JavaScript","label":"TypeScript","source":"const listResponseMessageAttemptOut = await svix.messageAttempt.list('app_id', 'msg_id');"},{"lang":"Python","label":"Python","source":"list_response_message_attempt_out = svix.message_attempt.list('app_id', 'msg_id')"},{"lang":"Python","label":"Python (Async)","source":"list_response_message_attempt_out = await svix.message_attempt.list('app_id', 'msg_id')"},{"lang":"Go","label":"Go","source":"listResponseMessageAttemptOut, err := svixClient.MessageAttempt.List(\"app_id\", \"msg_id\", nil)"},{"lang":"Kotlin","label":"Kotlin","source":"val listResponseMessageAttemptOut = svix.messageAttempt.list('app_id', 'msg_id', FetchOptionsMessageAttempt())"},{"lang":"Java","label":"Java","source":"ListResponseMessageAttemptOut listResponseMessageAttemptOut = svix.getMessageAttempt().list('app_id', 'msg_id', new FetchOptionsMessageAttempt())"},{"lang":"Ruby","label":"Ruby","source":"list_response_message_attempt_out = svix.message_attempt.list('app_id', 'msg_id')"},{"lang":"Rust","label":"Rust","source":"let list_response_message_attempt_out = svix.message_attempt().list(\"app_id\", \"msg_id\", None).await?;"},{"lang":"C#","label":"C#","source":"var listResponseMessageAttemptOut = await svix.MessageAttempt.ListAsync(\"app_id\", \"msg_id\")"},{"lang":"Shell","label":"CLI","source":"svix message-attempt list 'app_id' 'msg_id'"},{"lang":"Shell","label":"cURL","source":"curl -X 'GET' \\\n  'https://api.svix.com/api/v1/app/{app_id}/msg/{msg_id}/attempt/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]}},"/api/v1/app/{app_id}/msg/{msg_id}/attempt/{attempt_id}/":{"get":{"tags":["Message Attempt"],"summary":"Get Attempt","description":"`msg_id`: Use a message id or a message `eventId`","operationId":"get_attempt_api_v1_app__app_id__msg__msg_id__attempt__attempt_id___get","parameters":[{"required":true,"schema":{"title":"Attempt Id","type":"string","example":"atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"attempt_id","in":"path"},{"required":true,"schema":{"title":"Msg Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The message's ID or eventID","example":"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"msg_id","in":"path"},{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageAttemptOut"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const messageAttemptOut = await svix.messageAttempt.get('app_id', 'msg_id', 'attempt_id');"},{"lang":"JavaScript","label":"TypeScript","source":"const messageAttemptOut = await svix.messageAttempt.get('app_id', 'msg_id', 'attempt_id');"},{"lang":"Python","label":"Python","source":"message_attempt_out = svix.message_attempt.get('app_id', 'msg_id', 'attempt_id')"},{"lang":"Python","label":"Python (Async)","source":"message_attempt_out = await svix.message_attempt.get('app_id', 'msg_id', 'attempt_id')"},{"lang":"Go","label":"Go","source":"messageAttemptOut, err := svixClient.MessageAttempt.Get(\"app_id\", \"msg_id\", \"attempt_id\")"},{"lang":"Kotlin","label":"Kotlin","source":"val messageAttemptOut = svix.messageAttempt.get('app_id', 'msg_id', 'attempt_id')"},{"lang":"Java","label":"Java","source":"MessageAttemptOut messageAttemptOut = svix.getMessageAttempt().get('app_id', 'msg_id', 'attempt_id')"},{"lang":"Ruby","label":"Ruby","source":"message_attempt_out = svix.message_attempt.get('app_id', 'msg_id', 'attempt_id')"},{"lang":"Rust","label":"Rust","source":"let message_attempt_out = svix.message_attempt().get(\"app_id\", \"msg_id\", \"attempt_id\").await?;"},{"lang":"C#","label":"C#","source":"var messageAttemptOut = await svix.MessageAttempt.GetAsync(\"app_id\", \"msg_id\", \"attempt_id\")"},{"lang":"Shell","label":"CLI","source":"svix message-attempt get 'app_id' 'msg_id' 'attempt_id'"},{"lang":"Shell","label":"cURL","source":"curl -X 'GET' \\\n  'https://api.svix.com/api/v1/app/{app_id}/msg/{msg_id}/attempt/{attempt_id}/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]}},"/api/v1/app/{app_id}/integration/":{"get":{"tags":["Integration"],"summary":"List Integrations","description":"List the application's integrations.","operationId":"list_integrations_api_v1_app__app_id__integration__get","parameters":[{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"required":false,"schema":{"title":"Iterator","type":"string","example":"integ_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"iterator","in":"query"},{"required":false,"schema":{"title":"Limit","type":"integer","default":50},"name":"limit","in":"query"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_IntegrationOut_"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const listResponseIntegrationOut = await svix.integration.list('app_id');"},{"lang":"JavaScript","label":"TypeScript","source":"const listResponseIntegrationOut = await svix.integration.list('app_id');"},{"lang":"Python","label":"Python","source":"list_response_integration_out = svix.integration.list('app_id')"},{"lang":"Python","label":"Python (Async)","source":"list_response_integration_out = await svix.integration.list('app_id')"},{"lang":"Go","label":"Go","source":"listResponseIntegrationOut, err := svixClient.Integration.List(\"app_id\", nil)"},{"lang":"Kotlin","label":"Kotlin","source":"val listResponseIntegrationOut = svix.integration.list('app_id', FetchOptions())"},{"lang":"Java","label":"Java","source":"ListResponseIntegrationOut listResponseIntegrationOut = svix.getIntegration().list('app_id', new FetchOptions())"},{"lang":"Ruby","label":"Ruby","source":"list_response_integration_out = svix.integration.list('app_id')"},{"lang":"Rust","label":"Rust","source":"let list_response_integration_out = svix.integration().list(\"app_id\", None).await?;"},{"lang":"C#","label":"C#","source":"var listResponseIntegrationOut = await svix.Integration.ListAsync(\"app_id\")"},{"lang":"Shell","label":"CLI","source":"svix integration list 'app_id'"},{"lang":"Shell","label":"cURL","source":"curl -X 'GET' \\\n  'https://api.svix.com/api/v1/app/{app_id}/integration/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]},"post":{"tags":["Integration"],"summary":"Create Integration","description":"Create an integration.","operationId":"create_integration_api_v1_app__app_id__integration__post","parameters":[{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationOut"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const integrationOut = await svix.integration.create('app_id', {\n    name: \"Example Integration\"\n});"},{"lang":"JavaScript","label":"TypeScript","source":"const integrationOut = await svix.integration.create('app_id', {\n    name: \"Example Integration\"\n});"},{"lang":"Python","label":"Python","source":"integration_out = svix.integration.create('app_id', IntegrationIn(\n    name=\"Example Integration\"\n))"},{"lang":"Python","label":"Python (Async)","source":"integration_out = await svix.integration.create('app_id', IntegrationIn(\n    name=\"Example Integration\"\n))"},{"lang":"Go","label":"Go","source":"integrationOut, err := svixClient.Integration.Create(\"app_id\", &svix.IntegrationIn{\n    Name: \"Example Integration\"\n})"},{"lang":"Kotlin","label":"Kotlin","source":"val integrationOut = svix.integration.create('app_id', IntegrationIn()\n    .name(\"Example Integration\")\n)"},{"lang":"Java","label":"Java","source":"IntegrationOut integrationOut = svix.getIntegration().create('app_id', new IntegrationIn()\n    .name(\"Example Integration\")\n)"},{"lang":"Ruby","label":"Ruby","source":"integration_out = svix.integration.create('app_id', Svix::IntegrationIn.new({\n    \"name\": \"Example Integration\"\n}))"},{"lang":"Rust","label":"Rust","source":"let integration_out = svix.integration().create(\"app_id\", IntegrationIn {\n    name: \"Example Integration\".to_string()\n}).await?;"},{"lang":"C#","label":"C#","source":"var integrationOut = await svix.Integration.CreateAsync(\"app_id\", new IntegrationIn{\n    name: \"Example Integration\"\n})"},{"lang":"Shell","label":"CLI","source":"svix integration create 'app_id' '{\n    \"name\": \"Example Integration\"\n}'"},{"lang":"Shell","label":"cURL","source":"curl -X 'POST' \\\n  'https://api.svix.com/api/v1/app/{app_id}/integration/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"name\": \"Example Integration\"\n}'"}]}},"/api/v1/app/{app_id}/integration/{integ_id}/":{"get":{"tags":["Integration"],"summary":"Get Integration","description":"Get an integration.","operationId":"get_integration_api_v1_app__app_id__integration__integ_id___get","parameters":[{"required":true,"schema":{"title":"Integ Id","type":"string","example":"integ_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"integ_id","in":"path"},{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationOut"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const integrationOut = await svix.integration.get('app_id', 'integ_id');"},{"lang":"JavaScript","label":"TypeScript","source":"const integrationOut = await svix.integration.get('app_id', 'integ_id');"},{"lang":"Python","label":"Python","source":"integration_out = svix.integration.get('app_id', 'integ_id')"},{"lang":"Python","label":"Python (Async)","source":"integration_out = await svix.integration.get('app_id', 'integ_id')"},{"lang":"Go","label":"Go","source":"integrationOut, err := svixClient.Integration.Get(\"app_id\", \"integ_id\")"},{"lang":"Kotlin","label":"Kotlin","source":"val integrationOut = svix.integration.get('app_id', 'integ_id')"},{"lang":"Java","label":"Java","source":"IntegrationOut integrationOut = svix.getIntegration().get('app_id', 'integ_id')"},{"lang":"Ruby","label":"Ruby","source":"integration_out = svix.integration.get('app_id', 'integ_id')"},{"lang":"Rust","label":"Rust","source":"let integration_out = svix.integration().get(\"app_id\", \"integ_id\").await?;"},{"lang":"C#","label":"C#","source":"var integrationOut = await svix.Integration.GetAsync(\"app_id\", \"integ_id\")"},{"lang":"Shell","label":"CLI","source":"svix integration get 'app_id' 'integ_id'"},{"lang":"Shell","label":"cURL","source":"curl -X 'GET' \\\n  'https://api.svix.com/api/v1/app/{app_id}/integration/{integ_id}/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]},"put":{"tags":["Integration"],"summary":"Update Integration","description":"Update an integration.","operationId":"update_integration_api_v1_app__app_id__integration__integ_id___put","parameters":[{"required":true,"schema":{"title":"Integ Id","type":"string","example":"integ_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"integ_id","in":"path"},{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationOut"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const integrationOut = await svix.integration.update('app_id', 'integ_id', {\n    name: \"Example Integration\"\n});"},{"lang":"JavaScript","label":"TypeScript","source":"const integrationOut = await svix.integration.update('app_id', 'integ_id', {\n    name: \"Example Integration\"\n});"},{"lang":"Python","label":"Python","source":"integration_out = svix.integration.update('app_id', 'integ_id', IntegrationUpdate(\n    name=\"Example Integration\"\n))"},{"lang":"Python","label":"Python (Async)","source":"integration_out = await svix.integration.update('app_id', 'integ_id', IntegrationUpdate(\n    name=\"Example Integration\"\n))"},{"lang":"Go","label":"Go","source":"integrationOut, err := svixClient.Integration.Update(\"app_id\", \"integ_id\", &svix.IntegrationUpdate{\n    Name: \"Example Integration\"\n})"},{"lang":"Kotlin","label":"Kotlin","source":"val integrationOut = svix.integration.update('app_id', 'integ_id', IntegrationUpdate()\n    .name(\"Example Integration\")\n)"},{"lang":"Java","label":"Java","source":"IntegrationOut integrationOut = svix.getIntegration().update('app_id', 'integ_id', new IntegrationUpdate()\n    .name(\"Example Integration\")\n)"},{"lang":"Ruby","label":"Ruby","source":"integration_out = svix.integration.update('app_id', 'integ_id', Svix::IntegrationUpdate.new({\n    \"name\": \"Example Integration\"\n}))"},{"lang":"Rust","label":"Rust","source":"let integration_out = svix.integration().update(\"app_id\", \"integ_id\", IntegrationUpdate {\n    name: \"Example Integration\".to_string()\n}).await?;"},{"lang":"C#","label":"C#","source":"var integrationOut = await svix.Integration.UpdateAsync(\"app_id\", \"integ_id\", new IntegrationUpdate{\n    name: \"Example Integration\"\n})"},{"lang":"Shell","label":"CLI","source":"svix integration update 'app_id' 'integ_id' '{\n    \"name\": \"Example Integration\"\n}'"},{"lang":"Shell","label":"cURL","source":"curl -X 'PUT' \\\n  'https://api.svix.com/api/v1/app/{app_id}/integration/{integ_id}/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"name\": \"Example Integration\"\n}'"}]},"delete":{"tags":["Integration"],"summary":"Delete Integration","description":"Delete an integration and revoke it's key.","operationId":"delete_integration_api_v1_app__app_id__integration__integ_id___delete","parameters":[{"required":true,"schema":{"title":"Integ Id","type":"string","example":"integ_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"integ_id","in":"path"},{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"204":{"description":"Successful Response"},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"await svix.integration.delete('app_id', 'integ_id');"},{"lang":"JavaScript","label":"TypeScript","source":"await svix.integration.delete('app_id', 'integ_id');"},{"lang":"Python","label":"Python","source":"svix.integration.delete('app_id', 'integ_id')"},{"lang":"Python","label":"Python (Async)","source":"await svix.integration.delete('app_id', 'integ_id')"},{"lang":"Go","label":"Go","source":"err := svixClient.Integration.Delete(\"app_id\", \"integ_id\")"},{"lang":"Kotlin","label":"Kotlin","source":"svix.integration.delete('app_id', 'integ_id')"},{"lang":"Java","label":"Java","source":"svix.getIntegration().delete('app_id', 'integ_id')"},{"lang":"Ruby","label":"Ruby","source":"svix.integration.delete('app_id', 'integ_id')"},{"lang":"Rust","label":"Rust","source":"svix.integration().delete(\"app_id\", \"integ_id\").await?;"},{"lang":"C#","label":"C#","source":"await svix.Integration.DeleteAsync(\"app_id\", \"integ_id\")"},{"lang":"Shell","label":"CLI","source":"svix integration delete 'app_id' 'integ_id'"},{"lang":"Shell","label":"cURL","source":"curl -X 'DELETE' \\\n  'https://api.svix.com/api/v1/app/{app_id}/integration/{integ_id}/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]}},"/api/v1/app/{app_id}/integration/{integ_id}/key/":{"get":{"tags":["Integration"],"summary":"Get Integration Key","description":"Get an integration's key.","operationId":"get_integration_key_api_v1_app__app_id__integration__integ_id__key__get","parameters":[{"required":true,"schema":{"title":"Integ Id","type":"string","example":"integ_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"integ_id","in":"path"},{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationKeyOut"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const integrationKeyOut = await svix.integration.getKey('app_id', 'integ_id');"},{"lang":"JavaScript","label":"TypeScript","source":"const integrationKeyOut = await svix.integration.getKey('app_id', 'integ_id');"},{"lang":"Python","label":"Python","source":"integration_key_out = svix.integration.get_key('app_id', 'integ_id')"},{"lang":"Python","label":"Python (Async)","source":"integration_key_out = await svix.integration.get_key('app_id', 'integ_id')"},{"lang":"Go","label":"Go","source":"integrationKeyOut, err := svixClient.Integration.GetKey(\"app_id\", \"integ_id\")"},{"lang":"Kotlin","label":"Kotlin","source":"val integrationKeyOut = svix.integration.getKey('app_id', 'integ_id')"},{"lang":"Java","label":"Java","source":"IntegrationKeyOut integrationKeyOut = svix.getIntegration().getKey('app_id', 'integ_id')"},{"lang":"Ruby","label":"Ruby","source":"integration_key_out = svix.integration.get_key('app_id', 'integ_id')"},{"lang":"Rust","label":"Rust","source":"let integration_key_out = svix.integration().get_key(\"app_id\", \"integ_id\").await?;"},{"lang":"C#","label":"C#","source":"var integrationKeyOut = await svix.Integration.GetKeyAsync(\"app_id\", \"integ_id\")"},{"lang":"Shell","label":"CLI","source":"svix integration get-key 'app_id' 'integ_id'"},{"lang":"Shell","label":"cURL","source":"curl -X 'GET' \\\n  'https://api.svix.com/api/v1/app/{app_id}/integration/{integ_id}/key/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]}},"/api/v1/app/{app_id}/integration/{integ_id}/key/rotate/":{"post":{"tags":["Integration"],"summary":"Rotate Integration Key","description":"Rotate the integration's key. The previous key will be immediately revoked.","operationId":"rotate_integration_key_api_v1_app__app_id__integration__integ_id__key_rotate__post","parameters":[{"required":true,"schema":{"title":"Integ Id","type":"string","example":"integ_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"integ_id","in":"path"},{"required":true,"schema":{"title":"App Id","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"The application's ID or UID","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"name":"app_id","in":"path"},{"description":"The request's idempotency key","required":false,"schema":{"title":"Idempotency-Key","type":"string","description":"The request's idempotency key"},"name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationKeyOut"}}}},"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"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-codeSamples":[{"lang":"JavaScript","label":"JavaScript","source":"const integrationKeyOut = await svix.integration.rotateKey('app_id', 'integ_id');"},{"lang":"JavaScript","label":"TypeScript","source":"const integrationKeyOut = await svix.integration.rotateKey('app_id', 'integ_id');"},{"lang":"Python","label":"Python","source":"integration_key_out = svix.integration.rotate_key('app_id', 'integ_id')"},{"lang":"Python","label":"Python (Async)","source":"integration_key_out = await svix.integration.rotate_key('app_id', 'integ_id')"},{"lang":"Go","label":"Go","source":"integrationKeyOut, err := svixClient.Integration.RotateKey(\"app_id\", \"integ_id\")"},{"lang":"Kotlin","label":"Kotlin","source":"val integrationKeyOut = svix.integration.rotateKey('app_id', 'integ_id')"},{"lang":"Java","label":"Java","source":"IntegrationKeyOut integrationKeyOut = svix.getIntegration().rotateKey('app_id', 'integ_id')"},{"lang":"Ruby","label":"Ruby","source":"integration_key_out = svix.integration.rotate_key('app_id', 'integ_id')"},{"lang":"Rust","label":"Rust","source":"let integration_key_out = svix.integration().rotate_key(\"app_id\", \"integ_id\").await?;"},{"lang":"C#","label":"C#","source":"var integrationKeyOut = await svix.Integration.RotateKeyAsync(\"app_id\", \"integ_id\")"},{"lang":"Shell","label":"CLI","source":"svix integration rotate-key 'app_id' 'integ_id'"},{"lang":"Shell","label":"cURL","source":"curl -X 'POST' \\\n  'https://api.svix.com/api/v1/app/{app_id}/integration/{integ_id}/key/rotate/' \\\n  -H 'Authorization: Bearer AUTH_TOKEN' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json'"}]}}},"components":{"schemas":{"ApplicationIn":{"title":"ApplicationIn","required":["name"],"type":"object","properties":{"uid":{"title":"Uid","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"Optional unique identifier for the application","example":"unique-app-identifier"},"name":{"title":"Name","type":"string","example":"My first application"},"rateLimit":{"title":"Ratelimit","exclusiveMinimum":0.0,"type":"integer","example":1000}}},"ApplicationOut":{"title":"ApplicationOut","required":["name","id","createdAt","updatedAt"],"type":"object","properties":{"uid":{"title":"Uid","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"Optional unique identifier for the application","example":"unique-app-identifier"},"name":{"title":"Name","type":"string","example":"My first application"},"rateLimit":{"title":"Ratelimit","exclusiveMinimum":0.0,"type":"integer","example":1000},"id":{"title":"Id","type":"string","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"},"updatedAt":{"title":"Updatedat","type":"string","format":"date-time"}}},"DashboardAccessOut":{"title":"DashboardAccessOut","required":["url","token"],"type":"object","properties":{"url":{"title":"Url","maxLength":65536,"minLength":1,"type":"string","format":"uri","example":"https://app.svix.com/login#key=eyJhcHBJZCI6ICJhcHBfMXRSdFl"},"token":{"title":"Token","type":"string","example":"appsk_kV3ts5tKPNJN4Dl25cMTfUNdmabxbX0O"}}},"EndpointCreatedEvent":{"title":"EndpointCreatedEvent","required":["data"],"type":"object","properties":{"type":{"title":"Type","enum":["endpoint.created"],"type":"string","default":"endpoint.created"},"data":{"$ref":"#/components/schemas/EndpointCreatedEventData"}},"description":"Sent when an endpoint is created.","example":{"type":"endpoint.created","data":{"appId":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2","appUid":"unique-app-identifier","endpointId":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"}}},"EndpointCreatedEventData":{"title":"EndpointCreatedEventData","required":["appId","endpointId"],"type":"object","properties":{"appId":{"title":"Appid","type":"string","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"appUid":{"title":"Appuid","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"Optional unique identifier for the application","example":"unique-app-identifier"},"endpointId":{"title":"Endpointid","type":"string","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"}}},"EndpointDeletedEvent":{"title":"EndpointDeletedEvent","required":["data"],"type":"object","properties":{"type":{"title":"Type","enum":["endpoint.deleted"],"type":"string","default":"endpoint.deleted"},"data":{"$ref":"#/components/schemas/EndpointDeletedEventData"}},"description":"Sent when an endpoint is deleted.","example":{"type":"endpoint.deleted","data":{"appId":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2","appUid":"unique-app-identifier","endpointId":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"}}},"EndpointDeletedEventData":{"title":"EndpointDeletedEventData","required":["appId","endpointId"],"type":"object","properties":{"appId":{"title":"Appid","type":"string","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"appUid":{"title":"Appuid","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"Optional unique identifier for the application","example":"unique-app-identifier"},"endpointId":{"title":"Endpointid","type":"string","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"}}},"EndpointDisabledEvent":{"title":"EndpointDisabledEvent","required":["data"],"type":"object","properties":{"type":{"title":"Type","enum":["endpoint.disabled"],"type":"string","default":"endpoint.disabled"},"data":{"$ref":"#/components/schemas/EndpointDisabledEventData"}},"description":"Sent when an endpoint has been automatically disabled after continuous failures.","example":{"type":"endpoint.disabled","data":{"appId":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2","appUid":"unique-app-identifier","endpointId":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2","failSince":"1970-01-01T00:00:00"}}},"EndpointDisabledEventData":{"title":"EndpointDisabledEventData","required":["appId","endpointId","failSince"],"type":"object","properties":{"appId":{"title":"Appid","type":"string","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"appUid":{"title":"Appuid","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"Optional unique identifier for the application","example":"unique-app-identifier"},"endpointId":{"title":"Endpointid","type":"string","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"failSince":{"title":"Failsince","type":"string","format":"date-time"}}},"EndpointHeadersIn":{"title":"EndpointHeadersIn","required":["headers"],"type":"object","properties":{"headers":{"title":"Headers","type":"object","additionalProperties":{"type":"string"},"example":{"X-Foobar":"Bar","X-Example":"123"}}}},"EndpointHeadersOut":{"title":"EndpointHeadersOut","required":["headers","sensitive"],"type":"object","properties":{"headers":{"title":"Headers","type":"object","additionalProperties":{"type":"string"},"example":{"X-Foobar":"Bar","X-Example":"123"}},"sensitive":{"title":"Sensitive","uniqueItems":true,"type":"array","items":{"type":"string","example":"X-Foobar"},"example":["Authorization"]}},"description":"The value of the headers is returned in the `headers` field.\n\nSensitive headers that have been redacted are returned in the sensitive field."},"EndpointHeadersPatchIn":{"title":"EndpointHeadersPatchIn","required":["headers"],"type":"object","properties":{"headers":{"title":"Headers","type":"object","additionalProperties":{"type":"string"},"example":{"X-Foobar":"Bar","X-Example":"123"}}}},"EndpointIn":{"title":"EndpointIn","required":["url","version"],"type":"object","properties":{"uid":{"title":"Uid","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"Optional unique identifier for the endpoint","example":"unique-endpoint-identifier"},"url":{"title":"Url","maxLength":65536,"minLength":1,"type":"string","format":"uri","example":"https://example.com/webhook/"},"version":{"title":"Version","exclusiveMinimum":0.0,"type":"integer","example":1},"description":{"title":"Description","type":"string","default":"","example":"An example endpoint name"},"filterTypes":{"title":"Filtertypes","minItems":1,"uniqueItems":true,"type":"array","items":{"type":"string"},"example":["user.signup","user.deleted"]},"channels":{"title":"Channels","maxItems":10,"minItems":1,"uniqueItems":true,"type":"array","items":{"maxLength":128,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"project_1337"},"description":"List of message channels this endpoint listens to (omit for all)","example":["project_123","group_2"]},"disabled":{"title":"Disabled","type":"boolean","default":false,"example":false},"rateLimit":{"title":"Ratelimit","exclusiveMinimum":0.0,"type":"integer","example":1000},"secret":{"title":"Secret","pattern":"^whsec_[a-zA-Z0-9+/]{32}$","type":"string","description":"The endpoint's verification secret. If `null` is passed, a secret is automatically generated.","example":"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD"}}},"EndpointMessageOut":{"title":"EndpointMessageOut","required":["eventType","payload","id","timestamp","status"],"type":"object","properties":{"eventType":{"title":"Eventtype","maxLength":256,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"user.signup"},"eventId":{"title":"Eventid","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"Optional unique identifier for the message","example":"evt_pNZKtWg8Azow"},"channels":{"title":"Channels","maxItems":5,"minItems":1,"uniqueItems":true,"type":"array","items":{"maxLength":128,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"project_1337"},"description":"List of free-form identifiers that endpoints can filter by","example":["project_123","group_2"]},"payload":{"title":"Payload","type":"object","example":{"username":"test_user","email":"test@example.com"}},"id":{"title":"Id","type":"string","example":"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"timestamp":{"title":"Timestamp","type":"string","format":"date-time"},"status":{"$ref":"#/components/schemas/MessageStatus"},"nextAttempt":{"title":"Nextattempt","type":"string","format":"date-time"}}},"EndpointOut":{"title":"EndpointOut","required":["url","version","id","createdAt","updatedAt"],"type":"object","properties":{"uid":{"title":"Uid","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"Optional unique identifier for the endpoint","example":"unique-endpoint-identifier"},"url":{"title":"Url","maxLength":65536,"minLength":1,"type":"string","format":"uri","example":"https://example.com/webhook/"},"version":{"title":"Version","exclusiveMinimum":0.0,"type":"integer","example":1},"description":{"title":"Description","type":"string","default":"","example":"An example endpoint name"},"filterTypes":{"title":"Filtertypes","minItems":1,"uniqueItems":true,"type":"array","items":{"type":"string"},"example":["user.signup","user.deleted"]},"channels":{"title":"Channels","maxItems":10,"minItems":1,"uniqueItems":true,"type":"array","items":{"maxLength":128,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"project_1337"},"description":"List of message channels this endpoint listens to (omit for all)","example":["project_123","group_2"]},"disabled":{"title":"Disabled","type":"boolean","default":false,"example":false},"rateLimit":{"title":"Ratelimit","exclusiveMinimum":0.0,"type":"integer","example":1000},"id":{"title":"Id","type":"string","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"},"updatedAt":{"title":"Updatedat","type":"string","format":"date-time"}}},"EndpointSecretOut":{"title":"EndpointSecretOut","required":["key"],"type":"object","properties":{"key":{"title":"Key","pattern":"^whsec_[a-zA-Z0-9+/]{32}$","type":"string","description":"The endpoint's verification secret. If `null` is passed, a secret is automatically generated.","example":"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD"}}},"EndpointSecretRotateIn":{"title":"EndpointSecretRotateIn","type":"object","properties":{"key":{"title":"Key","pattern":"^whsec_[a-zA-Z0-9+/]{32}$","type":"string","description":"The endpoint's verification secret. If `null` is passed, a secret is automatically generated.","example":"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD"}}},"EndpointUpdate":{"title":"EndpointUpdate","required":["url","version"],"type":"object","properties":{"uid":{"title":"Uid","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"Optional unique identifier for the endpoint","example":"unique-endpoint-identifier"},"url":{"title":"Url","maxLength":65536,"minLength":1,"type":"string","format":"uri","example":"https://example.com/webhook/"},"version":{"title":"Version","exclusiveMinimum":0.0,"type":"integer","example":1},"description":{"title":"Description","type":"string","default":"","example":"An example endpoint name"},"filterTypes":{"title":"Filtertypes","minItems":1,"uniqueItems":true,"type":"array","items":{"type":"string"},"example":["user.signup","user.deleted"]},"channels":{"title":"Channels","maxItems":10,"minItems":1,"uniqueItems":true,"type":"array","items":{"maxLength":128,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"project_1337"},"description":"List of message channels this endpoint listens to (omit for all)","example":["project_123","group_2"]},"disabled":{"title":"Disabled","type":"boolean","default":false,"example":false},"rateLimit":{"title":"Ratelimit","exclusiveMinimum":0.0,"type":"integer","example":1000}}},"EndpointUpdatedEvent":{"title":"EndpointUpdatedEvent","required":["data"],"type":"object","properties":{"type":{"title":"Type","enum":["endpoint.updated"],"type":"string","default":"endpoint.updated"},"data":{"$ref":"#/components/schemas/EndpointUpdatedEventData"}},"description":"Sent when an endpoint is updated.","example":{"type":"endpoint.updated","data":{"appId":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2","appUid":"unique-app-identifier","endpointId":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"}}},"EndpointUpdatedEventData":{"title":"EndpointUpdatedEventData","required":["appId","endpointId"],"type":"object","properties":{"appId":{"title":"Appid","type":"string","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"appUid":{"title":"Appuid","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"Optional unique identifier for the application","example":"unique-app-identifier"},"endpointId":{"title":"Endpointid","type":"string","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"}}},"EventTypeIn":{"title":"EventTypeIn","required":["description","name"],"type":"object","properties":{"description":{"title":"Description","type":"string","example":"A user has signed up"},"schemas":{"title":"Schemas","type":"object","additionalProperties":{"type":"object","example":{"title":"Invoice Paid Event","description":"An invoice was paid by a user","type":"object","properties":{"invoiceId":{"description":"The invoice id","type":"string"},"userId":{"description":"The user id","type":"string"}},"required":["invoiceId","userId"]}},"description":"The schema for the event type for a specific version as a JSON schema.","example":{"1":{"title":"Invoice Paid Event","description":"An invoice was paid by a user","type":"object","properties":{"invoiceId":{"description":"The invoice id","type":"string"},"userId":{"description":"The user id","type":"string"}},"required":["invoiceId","userId"]}}},"archived":{"title":"Archived","type":"boolean","default":false,"example":false},"name":{"title":"Name","maxLength":256,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"user.signup"}}},"EventTypeOut":{"title":"EventTypeOut","required":["description","name","createdAt","updatedAt"],"type":"object","properties":{"description":{"title":"Description","type":"string","example":"A user has signed up"},"schemas":{"title":"Schemas","type":"object","additionalProperties":{"type":"object","example":{"title":"Invoice Paid Event","description":"An invoice was paid by a user","type":"object","properties":{"invoiceId":{"description":"The invoice id","type":"string"},"userId":{"description":"The user id","type":"string"}},"required":["invoiceId","userId"]}},"description":"The schema for the event type for a specific version as a JSON schema.","example":{"1":{"title":"Invoice Paid Event","description":"An invoice was paid by a user","type":"object","properties":{"invoiceId":{"description":"The invoice id","type":"string"},"userId":{"description":"The user id","type":"string"}},"required":["invoiceId","userId"]}}},"archived":{"title":"Archived","type":"boolean","default":false,"example":false},"name":{"title":"Name","maxLength":256,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"user.signup"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"},"updatedAt":{"title":"Updatedat","type":"string","format":"date-time"}}},"EventTypeUpdate":{"title":"EventTypeUpdate","required":["description"],"type":"object","properties":{"description":{"title":"Description","type":"string","example":"A user has signed up"},"schemas":{"title":"Schemas","type":"object","additionalProperties":{"type":"object","example":{"title":"Invoice Paid Event","description":"An invoice was paid by a user","type":"object","properties":{"invoiceId":{"description":"The invoice id","type":"string"},"userId":{"description":"The user id","type":"string"}},"required":["invoiceId","userId"]}},"description":"The schema for the event type for a specific version as a JSON schema.","example":{"1":{"title":"Invoice Paid Event","description":"An invoice was paid by a user","type":"object","properties":{"invoiceId":{"description":"The invoice id","type":"string"},"userId":{"description":"The user id","type":"string"}},"required":["invoiceId","userId"]}}},"archived":{"title":"Archived","type":"boolean","default":false,"example":false}}},"HTTPValidationError":{"title":"HTTPValidationError","type":"object","properties":{"detail":{"title":"Detail","type":"array","items":{"$ref":"#/components/schemas/ValidationError"}}}},"HttpErrorOut":{"title":"HttpError","required":["code","detail"],"type":"object","properties":{"code":{"title":"Code","type":"string"},"detail":{"title":"Detail","type":"string"}}},"IntegrationIn":{"title":"IntegrationIn","required":["name"],"type":"object","properties":{"name":{"title":"Name","type":"string","example":"Example Integration"}}},"IntegrationKeyOut":{"title":"IntegrationKeyOut","required":["key"],"type":"object","properties":{"key":{"title":"Key","type":"string","example":"integsk_kV3ts5tKPNJN4Dl25cMTfUNdmabxbX0O"}}},"IntegrationOut":{"title":"IntegrationOut","required":["name","id","createdAt","updatedAt"],"type":"object","properties":{"name":{"title":"Name","type":"string","example":"Example Integration"},"id":{"title":"Id","type":"string","example":"integ_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"},"updatedAt":{"title":"Updatedat","type":"string","format":"date-time"}}},"IntegrationUpdate":{"title":"IntegrationUpdate","required":["name"],"type":"object","properties":{"name":{"title":"Name","type":"string","example":"Example Integration"}}},"ListResponse_ApplicationOut_":{"title":"ListResponse[ApplicationOut]","required":["data","done"],"type":"object","properties":{"data":{"title":"Data","type":"array","items":{"$ref":"#/components/schemas/ApplicationOut"}},"iterator":{"title":"Iterator","type":"string","example":"iterator"},"done":{"title":"Done","type":"boolean"}}},"ListResponse_EndpointMessageOut_":{"title":"ListResponse[EndpointMessageOut]","required":["data","done"],"type":"object","properties":{"data":{"title":"Data","type":"array","items":{"$ref":"#/components/schemas/EndpointMessageOut"}},"iterator":{"title":"Iterator","type":"string","example":"iterator"},"prevIterator":{"title":"Previterator","type":"string","example":"-iterator"},"done":{"title":"Done","type":"boolean"}}},"ListResponse_EndpointOut_":{"title":"ListResponse[EndpointOut]","required":["data","done"],"type":"object","properties":{"data":{"title":"Data","type":"array","items":{"$ref":"#/components/schemas/EndpointOut"}},"iterator":{"title":"Iterator","type":"string","example":"iterator"},"done":{"title":"Done","type":"boolean"}}},"ListResponse_EventTypeOut_":{"title":"ListResponse[EventTypeOut]","required":["data","done"],"type":"object","properties":{"data":{"title":"Data","type":"array","items":{"$ref":"#/components/schemas/EventTypeOut"}},"iterator":{"title":"Iterator","type":"string","example":"iterator"},"done":{"title":"Done","type":"boolean"}}},"ListResponse_IntegrationOut_":{"title":"ListResponse[IntegrationOut]","required":["data","done"],"type":"object","properties":{"data":{"title":"Data","type":"array","items":{"$ref":"#/components/schemas/IntegrationOut"}},"iterator":{"title":"Iterator","type":"string","example":"iterator"},"done":{"title":"Done","type":"boolean"}}},"ListResponse_MessageAttemptEndpointOut_":{"title":"ListResponse[MessageAttemptEndpointOut]","required":["data","done"],"type":"object","properties":{"data":{"title":"Data","type":"array","items":{"$ref":"#/components/schemas/MessageAttemptEndpointOut"}},"iterator":{"title":"Iterator","type":"string","example":"iterator"},"prevIterator":{"title":"Previterator","type":"string","example":"-iterator"},"done":{"title":"Done","type":"boolean"}}},"ListResponse_MessageAttemptOut_":{"title":"ListResponse[MessageAttemptOut]","required":["data","done"],"type":"object","properties":{"data":{"title":"Data","type":"array","items":{"$ref":"#/components/schemas/MessageAttemptOut"}},"iterator":{"title":"Iterator","type":"string","example":"iterator"},"prevIterator":{"title":"Previterator","type":"string","example":"-iterator"},"done":{"title":"Done","type":"boolean"}}},"ListResponse_MessageEndpointOut_":{"title":"ListResponse[MessageEndpointOut]","required":["data","done"],"type":"object","properties":{"data":{"title":"Data","type":"array","items":{"$ref":"#/components/schemas/MessageEndpointOut"}},"iterator":{"title":"Iterator","type":"string","example":"iterator"},"done":{"title":"Done","type":"boolean"}}},"ListResponse_MessageOut_":{"title":"ListResponse[MessageOut]","required":["data","done"],"type":"object","properties":{"data":{"title":"Data","type":"array","items":{"$ref":"#/components/schemas/MessageOut"}},"iterator":{"title":"Iterator","type":"string","example":"iterator"},"prevIterator":{"title":"Previterator","type":"string","example":"-iterator"},"done":{"title":"Done","type":"boolean"}}},"MessageAttemptEndpointOut":{"title":"MessageAttemptEndpointOut","required":["id","msgId","endpointId","response","responseStatusCode","timestamp","status","triggerType"],"type":"object","properties":{"id":{"title":"Id","type":"string","example":"atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"msgId":{"title":"Msgid","type":"string","example":"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"endpointId":{"title":"Endpointid","type":"string","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"response":{"title":"Response","type":"string","example":"{}"},"responseStatusCode":{"title":"Responsestatuscode","type":"integer","example":200},"timestamp":{"title":"Timestamp","type":"string","format":"date-time"},"status":{"$ref":"#/components/schemas/MessageStatus"},"triggerType":{"$ref":"#/components/schemas/MessageAttemptTriggerType"}}},"MessageAttemptExhaustedEvent":{"title":"MessageAttemptExhaustedEvent","required":["data"],"type":"object","properties":{"type":{"title":"Type","enum":["message.attempt.exhausted"],"type":"string","default":"message.attempt.exhausted"},"data":{"$ref":"#/components/schemas/MessageAttemptExhaustedEventData"}},"description":"Sent when a message delivery has failed (all of the retry attempts have been exhausted).","example":{"type":"message.attempt.exhausted","data":{"appId":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2","appUid":"unique-app-identifier","msgId":"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2","endpointId":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2","lastAttempt":{"id":"atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2","responseStatusCode":500,"timestamp":"1970-01-01T00:00:00"}}}},"MessageAttemptExhaustedEventData":{"title":"MessageAttemptExhaustedEventData","required":["appId","msgId","endpointId","lastAttempt"],"type":"object","properties":{"appId":{"title":"Appid","type":"string","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"appUid":{"title":"Appuid","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"Optional unique identifier for the application","example":"unique-app-identifier"},"msgId":{"title":"Msgid","type":"string","example":"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"endpointId":{"title":"Endpointid","type":"string","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"lastAttempt":{"$ref":"#/components/schemas/MessageAttemptFailedData"}}},"MessageAttemptFailedData":{"title":"MessageAttemptFailedData","required":["id","responseStatusCode","timestamp"],"type":"object","properties":{"id":{"title":"Id","type":"string","example":"atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"responseStatusCode":{"title":"Responsestatuscode","type":"integer","example":500},"timestamp":{"title":"Timestamp","type":"string","format":"date-time"}}},"MessageAttemptFailingEvent":{"title":"MessageAttemptFailingEvent","required":["data"],"type":"object","properties":{"type":{"title":"Type","enum":["message.attempt.failing"],"type":"string","default":"message.attempt.failing"},"data":{"$ref":"#/components/schemas/MessageAttemptFailingEventData"}},"description":"Sent after a message has been failing for a few times.\nIt's sent on the fourth failure. It complements `message.attempt.exhausted` which is sent after the last failure.","example":{"type":"message.attempt.failing","data":{"appId":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2","appUid":"unique-app-identifier","msgId":"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2","endpointId":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2","lastAttempt":{"id":"atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2","responseStatusCode":500,"timestamp":"1970-01-01T00:00:00"}}}},"MessageAttemptFailingEventData":{"title":"MessageAttemptFailingEventData","required":["appId","msgId","endpointId","lastAttempt"],"type":"object","properties":{"appId":{"title":"Appid","type":"string","example":"app_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"appUid":{"title":"Appuid","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"Optional unique identifier for the application","example":"unique-app-identifier"},"msgId":{"title":"Msgid","type":"string","example":"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"endpointId":{"title":"Endpointid","type":"string","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"lastAttempt":{"$ref":"#/components/schemas/MessageAttemptFailedData"}}},"MessageAttemptOut":{"title":"MessageAttemptOut","required":["id","msgId","endpointId","response","responseStatusCode","timestamp","status","triggerType"],"type":"object","properties":{"id":{"title":"Id","type":"string","example":"atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"msgId":{"title":"Msgid","type":"string","example":"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"endpointId":{"title":"Endpointid","type":"string","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"response":{"title":"Response","type":"string","example":"{}"},"responseStatusCode":{"title":"Responsestatuscode","type":"integer","example":200},"timestamp":{"title":"Timestamp","type":"string","format":"date-time"},"status":{"$ref":"#/components/schemas/MessageStatus"},"triggerType":{"$ref":"#/components/schemas/MessageAttemptTriggerType"}}},"MessageAttemptTriggerType":{"title":"MessageAttemptTriggerType","enum":[0,1],"type":"integer","description":"The reason an attempt was made:\n- Scheduled = 0\n- Manual = 1","x-enum-varnames":["Scheduled","Manual"]},"MessageEndpointOut":{"title":"MessageEndpointOut","required":["url","version","id","createdAt","status"],"type":"object","properties":{"uid":{"title":"Uid","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"Optional unique identifier for the endpoint","example":"unique-endpoint-identifier"},"url":{"title":"Url","maxLength":65536,"minLength":1,"type":"string","format":"uri","example":"https://example.com/webhook/"},"version":{"title":"Version","exclusiveMinimum":0.0,"type":"integer","example":1},"description":{"title":"Description","type":"string","default":"","example":"An example endpoint name"},"filterTypes":{"title":"Filtertypes","minItems":1,"uniqueItems":true,"type":"array","items":{"type":"string"},"example":["user.signup","user.deleted"]},"channels":{"title":"Channels","maxItems":10,"minItems":1,"uniqueItems":true,"type":"array","items":{"maxLength":128,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"project_1337"},"description":"List of message channels this endpoint listens to (omit for all)","example":["project_123","group_2"]},"disabled":{"title":"Disabled","type":"boolean","default":false,"example":false},"rateLimit":{"title":"Ratelimit","exclusiveMinimum":0.0,"type":"integer","example":1000},"id":{"title":"Id","type":"string","example":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"},"status":{"$ref":"#/components/schemas/MessageStatus"},"nextAttempt":{"title":"Nextattempt","type":"string","format":"date-time"}}},"MessageIn":{"title":"MessageIn","required":["eventType","payload"],"type":"object","properties":{"eventType":{"title":"Eventtype","maxLength":256,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"user.signup"},"eventId":{"title":"Eventid","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"Optional unique identifier for the message","example":"evt_pNZKtWg8Azow"},"channels":{"title":"Channels","maxItems":5,"minItems":1,"uniqueItems":true,"type":"array","items":{"maxLength":128,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"project_1337"},"description":"List of free-form identifiers that endpoints can filter by","example":["project_123","group_2"]},"payload":{"title":"Payload","type":"object","example":{"username":"test_user","email":"test@example.com"}},"payloadRetentionPeriod":{"title":"Payloadretentionperiod","maximum":90.0,"minimum":5.0,"type":"integer","description":"The retention period for the payload (in days).","default":90,"example":90}}},"MessageOut":{"title":"MessageOut","required":["eventType","payload","id","timestamp"],"type":"object","properties":{"eventType":{"title":"Eventtype","maxLength":256,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"user.signup"},"eventId":{"title":"Eventid","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","description":"Optional unique identifier for the message","example":"evt_pNZKtWg8Azow"},"channels":{"title":"Channels","maxItems":5,"minItems":1,"uniqueItems":true,"type":"array","items":{"maxLength":128,"pattern":"^[a-zA-Z0-9\\-_.]+$","type":"string","example":"project_1337"},"description":"List of free-form identifiers that endpoints can filter by","example":["project_123","group_2"]},"payload":{"title":"Payload","type":"object","example":{"username":"test_user","email":"test@example.com"}},"id":{"title":"Id","type":"string","example":"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2"},"timestamp":{"title":"Timestamp","type":"string","format":"date-time"}}},"MessageStatus":{"title":"MessageStatus","enum":[0,1,2,3],"type":"integer","description":"The sending status of the message:\n- Success = 0\n- Pending = 1\n- Fail = 2\n- Sending = 3","x-enum-varnames":["Success","Pending","Fail","Sending"]},"RecoverIn":{"title":"RecoverIn","required":["since"],"type":"object","properties":{"since":{"title":"Since","type":"string","format":"date-time"}}},"RecoverOut":{"title":"RecoverOut","type":"object","properties":{}},"StatusCodeClass":{"title":"StatusCodeClass","enum":[0,100,200,300,400,500],"type":"integer","description":"The different classes of HTTP status codes:\n- CodeNone = 0\n- Code1xx = 100\n- Code2xx = 200\n- Code3xx = 300\n- Code4xx = 400\n- Code5xx = 500","x-enum-varnames":["CodeNone","Code1xx","Code2xx","Code3xx","Code4xx","Code5xx"]},"ValidationError":{"title":"ValidationError","required":["loc","msg","type"],"type":"object","properties":{"loc":{"title":"Location","type":"array","items":{"type":"string"}},"msg":{"title":"Message","type":"string"},"type":{"title":"Error Type","type":"string"}}},"WebhookTypes":{"title":"WebhookTypes","required":["a","b","c","d","e","a1"],"type":"object","properties":{"a":{"$ref":"#/components/schemas/EndpointDisabledEvent"},"b":{"$ref":"#/components/schemas/EndpointCreatedEvent"},"c":{"$ref":"#/components/schemas/EndpointUpdatedEvent"},"d":{"$ref":"#/components/schemas/EndpointDeletedEvent"},"e":{"$ref":"#/components/schemas/MessageAttemptExhaustedEvent"},"a1":{"$ref":"#/components/schemas/MessageAttemptFailingEvent"}},"description":"All of the webhook types that we support"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}},"tags":[{"name":"Application","description":"Applications are where messages are sent to. In most cases you would wantto have one application for each of your users."},{"name":"Message","description":"Messages are the webhook events being sent."},{"name":"Message Attempt","description":"Attempts to deliver `Message`s to `Endpoint`s."},{"name":"Endpoint","description":"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)."},{"name":"Integration","description":"Integrations are services your users connect an application to. An integration can manage the application and it's endpoints."},{"name":"Event Type","description":"Event types are identifiers denoting the type of message being sent. Event types are primarily used to decide which events are sent to which endpoint."},{"name":"Authentication","description":"Easily give your users access to our pre-built management UI."},{"name":"Health","description":"Health checks for the API."},{"name":"Webhooks","description":"The webhooks the Svix service sends to notify you of events."}],"x-tagGroups":[{"name":"General","tags":["Application","Event Type"]},{"name":"Application specific","tags":["Authentication","Endpoint","Message","Message Attempt","Integration"]},{"name":"Utility","tags":["Health"]},{"name":"Webhooks","tags":["Webhooks"]}],"x-webhooks":{"EndpointDisabledEvent":{"post":{"tags":["Webhooks"],"summary":"EndpointDisabledEvent","description":"Sent when an endpoint has been automatically disabled after continuous failures.","operationId":"EndpointDisabledEvent","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointDisabledEvent"}}}},"responses":{"2XX":{"description":"Return any 2XX status to indicate that the data was received successfully"}}}},"EndpointCreatedEvent":{"post":{"tags":["Webhooks"],"summary":"EndpointCreatedEvent","description":"Sent when an endpoint is created.","operationId":"EndpointCreatedEvent","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointCreatedEvent"}}}},"responses":{"2XX":{"description":"Return any 2XX status to indicate that the data was received successfully"}}}},"EndpointUpdatedEvent":{"post":{"tags":["Webhooks"],"summary":"EndpointUpdatedEvent","description":"Sent when an endpoint is updated.","operationId":"EndpointUpdatedEvent","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointUpdatedEvent"}}}},"responses":{"2XX":{"description":"Return any 2XX status to indicate that the data was received successfully"}}}},"EndpointDeletedEvent":{"post":{"tags":["Webhooks"],"summary":"EndpointDeletedEvent","description":"Sent when an endpoint is deleted.","operationId":"EndpointDeletedEvent","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointDeletedEvent"}}}},"responses":{"2XX":{"description":"Return any 2XX status to indicate that the data was received successfully"}}}},"MessageAttemptExhaustedEvent":{"post":{"tags":["Webhooks"],"summary":"MessageAttemptExhaustedEvent","description":"Sent when a message delivery has failed (all of the retry attempts have been exhausted).","operationId":"MessageAttemptExhaustedEvent","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageAttemptExhaustedEvent"}}}},"responses":{"2XX":{"description":"Return any 2XX status to indicate that the data was received successfully"}}}},"MessageAttemptFailingEvent":{"post":{"tags":["Webhooks"],"summary":"MessageAttemptFailingEvent","description":"Sent after a message has been failing for a few times.\nIt's sent on the fourth failure. It complements `message.attempt.exhausted` which is sent after the last failure.","operationId":"MessageAttemptFailingEvent","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageAttemptFailingEvent"}}}},"responses":{"2XX":{"description":"Return any 2XX status to indicate that the data was received successfully"}}}}}}
\ No newline at end of file
+{
+    "components": {
+        "schemas": {
+            "AppPortalAccessIn": {
+                "properties": {
+                    "featureFlags": {
+                        "description": "The set of feature flags the created token will have access to.",
+                        "example": [],
+                        "items": {
+                            "example": "cool-new-feature",
+                            "maxLength": 256,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "type": "array",
+                        "uniqueItems": true
+                    }
+                },
+                "type": "object"
+            },
+            "AppPortalAccessOut": {
+                "properties": {
+                    "token": {
+                        "example": "appsk_kV3ts5tKPNJN4Dl25cMTfUNdmabxbX0O",
+                        "type": "string"
+                    },
+                    "url": {
+                        "example": "https://app.svix.com/login#key=eyJhcHBJZCI6ICJhcHBfMXRSdFl",
+                        "format": "uri",
+                        "maxLength": 65536,
+                        "minLength": 1,
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "token",
+                    "url"
+                ],
+                "type": "object"
+            },
+            "ApplicationIn": {
+                "properties": {
+                    "metadata": {
+                        "additionalProperties": {
+                            "type": "string"
+                        },
+                        "default": {},
+                        "type": "object"
+                    },
+                    "name": {
+                        "example": "My first application",
+                        "minLength": 1,
+                        "type": "string"
+                    },
+                    "rateLimit": {
+                        "format": "uint16",
+                        "minimum": 1,
+                        "nullable": true,
+                        "type": "integer"
+                    },
+                    "uid": {
+                        "description": "Optional unique identifier for the application",
+                        "example": "unique-app-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "name"
+                ],
+                "type": "object"
+            },
+            "ApplicationOut": {
+                "properties": {
+                    "createdAt": {
+                        "format": "date-time",
+                        "type": "string"
+                    },
+                    "id": {
+                        "example": "app_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "metadata": {
+                        "additionalProperties": {
+                            "type": "string"
+                        },
+                        "type": "object"
+                    },
+                    "name": {
+                        "example": "My first application",
+                        "type": "string"
+                    },
+                    "rateLimit": {
+                        "format": "uint16",
+                        "minimum": 0,
+                        "nullable": true,
+                        "type": "integer"
+                    },
+                    "uid": {
+                        "example": "unique-app-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "updatedAt": {
+                        "format": "date-time",
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "createdAt",
+                    "id",
+                    "metadata",
+                    "name",
+                    "updatedAt"
+                ],
+                "type": "object"
+            },
+            "ApplicationPatch": {
+                "properties": {
+                    "metadata": {
+                        "additionalProperties": {
+                            "type": "string"
+                        },
+                        "type": "object"
+                    },
+                    "name": {
+                        "type": "string"
+                    },
+                    "rateLimit": {
+                        "format": "uint16",
+                        "minimum": 0,
+                        "nullable": true,
+                        "type": "integer"
+                    },
+                    "uid": {
+                        "example": "unique-app-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    }
+                },
+                "type": "object"
+            },
+            "BackgroundTaskStatus": {
+                "enum": [
+                    "running"
+                ],
+                "type": "string"
+            },
+            "BackgroundTaskType": {
+                "enum": [
+                    "endpoint.recover"
+                ],
+                "type": "string"
+            },
+            "DashboardAccessOut": {
+                "properties": {
+                    "token": {
+                        "example": "appsk_kV3ts5tKPNJN4Dl25cMTfUNdmabxbX0O",
+                        "type": "string"
+                    },
+                    "url": {
+                        "example": "https://app.svix.com/login#key=eyJhcHBJZCI6ICJhcHBfMXRSdFl",
+                        "format": "uri",
+                        "maxLength": 65536,
+                        "minLength": 1,
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "token",
+                    "url"
+                ],
+                "type": "object"
+            },
+            "EndpointCreatedEvent": {
+                "description": "Sent when an endpoint is created.",
+                "properties": {
+                    "data": {
+                        "$ref": "#/components/schemas/EndpointCreatedEventData"
+                    },
+                    "type": {
+                        "default": "endpoint.created",
+                        "enum": [
+                            "endpoint.created"
+                        ],
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "data",
+                    "type"
+                ],
+                "type": "object"
+            },
+            "EndpointCreatedEventData": {
+                "description": "Sent when an endpoint is created, updated, or deleted",
+                "properties": {
+                    "appId": {
+                        "example": "app_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "appUid": {
+                        "example": "unique-app-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "endpointId": {
+                        "example": "ep_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "endpointUid": {
+                        "example": "unique-ep-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "appId",
+                    "endpointId"
+                ],
+                "type": "object"
+            },
+            "EndpointDeletedEvent": {
+                "description": "Sent when an endpoint is deleted.",
+                "properties": {
+                    "data": {
+                        "$ref": "#/components/schemas/EndpointDeletedEventData"
+                    },
+                    "type": {
+                        "default": "endpoint.deleted",
+                        "enum": [
+                            "endpoint.deleted"
+                        ],
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "data",
+                    "type"
+                ],
+                "type": "object"
+            },
+            "EndpointDeletedEventData": {
+                "description": "Sent when an endpoint is created, updated, or deleted",
+                "properties": {
+                    "appId": {
+                        "example": "app_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "appUid": {
+                        "example": "unique-app-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "endpointId": {
+                        "example": "ep_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "endpointUid": {
+                        "example": "unique-ep-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "appId",
+                    "endpointId"
+                ],
+                "type": "object"
+            },
+            "EndpointDisabledEvent": {
+                "description": "Sent when an endpoint has been automatically disabled after continuous failures.",
+                "properties": {
+                    "data": {
+                        "$ref": "#/components/schemas/EndpointDisabledEventData"
+                    },
+                    "type": {
+                        "default": "endpoint.disabled",
+                        "enum": [
+                            "endpoint.disabled"
+                        ],
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "data",
+                    "type"
+                ],
+                "type": "object"
+            },
+            "EndpointDisabledEventData": {
+                "description": "Sent when an endpoint has been automatically disabled after continuous failures.",
+                "properties": {
+                    "appId": {
+                        "example": "app_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "appUid": {
+                        "example": "unique-app-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "endpointId": {
+                        "example": "ep_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "endpointUid": {
+                        "example": "unique-ep-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "failSince": {
+                        "format": "date-time",
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "appId",
+                    "endpointId",
+                    "failSince"
+                ],
+                "type": "object"
+            },
+            "EndpointHeadersIn": {
+                "properties": {
+                    "headers": {
+                        "additionalProperties": {
+                            "type": "string"
+                        },
+                        "example": {
+                            "X-Example": "123",
+                            "X-Foobar": "Bar"
+                        },
+                        "type": "object"
+                    }
+                },
+                "required": [
+                    "headers"
+                ],
+                "type": "object"
+            },
+            "EndpointHeadersOut": {
+                "description": "The value of the headers is returned in the `headers` field.\n\nSensitive headers that have been redacted are returned in the sensitive field.",
+                "properties": {
+                    "headers": {
+                        "additionalProperties": {
+                            "type": "string"
+                        },
+                        "example": {
+                            "X-Example": "123",
+                            "X-Foobar": "Bar"
+                        },
+                        "type": "object"
+                    },
+                    "sensitive": {
+                        "example": [
+                            "Authorization"
+                        ],
+                        "items": {
+                            "type": "string"
+                        },
+                        "type": "array",
+                        "uniqueItems": true
+                    }
+                },
+                "required": [
+                    "headers",
+                    "sensitive"
+                ],
+                "type": "object"
+            },
+            "EndpointHeadersPatchIn": {
+                "properties": {
+                    "headers": {
+                        "additionalProperties": {
+                            "nullable": true,
+                            "type": "string"
+                        },
+                        "example": {
+                            "X-Example": "123",
+                            "X-Foobar": "Bar"
+                        },
+                        "type": "object"
+                    }
+                },
+                "required": [
+                    "headers"
+                ],
+                "type": "object"
+            },
+            "EndpointIn": {
+                "properties": {
+                    "channels": {
+                        "description": "List of message channels this endpoint listens to (omit for all)",
+                        "example": [
+                            "project_123",
+                            "group_2"
+                        ],
+                        "items": {
+                            "example": "project_1337",
+                            "maxLength": 128,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "maxItems": 10,
+                        "minItems": 1,
+                        "nullable": true,
+                        "type": "array",
+                        "uniqueItems": true
+                    },
+                    "description": {
+                        "default": "",
+                        "example": "An example endpoint name",
+                        "type": "string"
+                    },
+                    "disabled": {
+                        "default": false,
+                        "example": false,
+                        "type": "boolean"
+                    },
+                    "filterTypes": {
+                        "example": [
+                            "user.signup",
+                            "user.deleted"
+                        ],
+                        "items": {
+                            "example": "user.signup",
+                            "maxLength": 256,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "minItems": 1,
+                        "nullable": true,
+                        "type": "array",
+                        "uniqueItems": true
+                    },
+                    "metadata": {
+                        "additionalProperties": {
+                            "type": "string"
+                        },
+                        "default": {},
+                        "type": "object"
+                    },
+                    "rateLimit": {
+                        "format": "uint16",
+                        "minimum": 1,
+                        "nullable": true,
+                        "type": "integer"
+                    },
+                    "secret": {
+                        "description": "The endpoint's verification secret. If `null` is passed, a secret is automatically generated. Format: `base64` encoded random bytes optionally prefixed with `whsec_`. Recommended size: 24.",
+                        "example": "whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD",
+                        "nullable": true,
+                        "pattern": "^(whsec_)?[a-zA-Z0-9+/=]{32,100}$",
+                        "type": "string"
+                    },
+                    "uid": {
+                        "description": "Optional unique identifier for the endpoint",
+                        "example": "unique-ep-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "url": {
+                        "example": "https://example.com/webhook/",
+                        "format": "uri",
+                        "maxLength": 65536,
+                        "minLength": 1,
+                        "type": "string"
+                    },
+                    "version": {
+                        "default": 1,
+                        "deprecated": true,
+                        "example": 1,
+                        "format": "uint16",
+                        "minimum": 1,
+                        "nullable": true,
+                        "type": "integer"
+                    }
+                },
+                "required": [
+                    "url"
+                ],
+                "type": "object"
+            },
+            "EndpointMessageOut": {
+                "description": "A model containing information on a given message plus additional fields on the last attempt for that message.",
+                "properties": {
+                    "channels": {
+                        "description": "List of free-form identifiers that endpoints can filter by",
+                        "example": [
+                            "project_123",
+                            "group_2"
+                        ],
+                        "items": {
+                            "example": "project_1337",
+                            "maxLength": 128,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "maxItems": 5,
+                        "minItems": 1,
+                        "nullable": true,
+                        "type": "array",
+                        "uniqueItems": true
+                    },
+                    "eventId": {
+                        "description": "Optional unique identifier for the message",
+                        "example": "unique-msg-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "eventType": {
+                        "example": "user.signup",
+                        "maxLength": 256,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "id": {
+                        "example": "msg_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "nextAttempt": {
+                        "format": "date-time",
+                        "nullable": true,
+                        "type": "string"
+                    },
+                    "payload": {
+                        "example": {
+                            "email": "test@example.com",
+                            "username": "test_user"
+                        },
+                        "type": "object"
+                    },
+                    "status": {
+                        "$ref": "#/components/schemas/MessageStatus"
+                    },
+                    "timestamp": {
+                        "format": "date-time",
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "eventType",
+                    "id",
+                    "payload",
+                    "status",
+                    "timestamp"
+                ],
+                "type": "object"
+            },
+            "EndpointOut": {
+                "properties": {
+                    "channels": {
+                        "description": "List of message channels this endpoint listens to (omit for all)",
+                        "example": [
+                            "project_123",
+                            "group_2"
+                        ],
+                        "items": {
+                            "example": "project_1337",
+                            "maxLength": 128,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "maxItems": 10,
+                        "minItems": 1,
+                        "nullable": true,
+                        "type": "array",
+                        "uniqueItems": true
+                    },
+                    "createdAt": {
+                        "format": "date-time",
+                        "type": "string"
+                    },
+                    "description": {
+                        "description": "An example endpoint name",
+                        "type": "string"
+                    },
+                    "disabled": {
+                        "default": false,
+                        "example": false,
+                        "type": "boolean"
+                    },
+                    "filterTypes": {
+                        "example": [
+                            "user.signup",
+                            "user.deleted"
+                        ],
+                        "items": {
+                            "example": "user.signup",
+                            "maxLength": 256,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "minItems": 1,
+                        "nullable": true,
+                        "type": "array",
+                        "uniqueItems": true
+                    },
+                    "id": {
+                        "example": "ep_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "metadata": {
+                        "additionalProperties": {
+                            "type": "string"
+                        },
+                        "type": "object"
+                    },
+                    "rateLimit": {
+                        "format": "uint16",
+                        "minimum": 0,
+                        "nullable": true,
+                        "type": "integer"
+                    },
+                    "uid": {
+                        "description": "Optional unique identifier for the endpoint",
+                        "example": "unique-ep-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "updatedAt": {
+                        "format": "date-time",
+                        "type": "string"
+                    },
+                    "url": {
+                        "example": "https://example.com/webhook/",
+                        "format": "uri",
+                        "maxLength": 65536,
+                        "minLength": 1,
+                        "type": "string"
+                    },
+                    "version": {
+                        "deprecated": true,
+                        "example": 1,
+                        "format": "uint16",
+                        "minimum": 1,
+                        "type": "integer"
+                    }
+                },
+                "required": [
+                    "createdAt",
+                    "description",
+                    "id",
+                    "metadata",
+                    "updatedAt",
+                    "url",
+                    "version"
+                ],
+                "type": "object"
+            },
+            "EndpointPatch": {
+                "properties": {
+                    "channels": {
+                        "items": {
+                            "example": "project_1337",
+                            "maxLength": 128,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "nullable": true,
+                        "type": "array",
+                        "uniqueItems": true
+                    },
+                    "description": {
+                        "type": "string"
+                    },
+                    "disabled": {
+                        "type": "boolean"
+                    },
+                    "filterTypes": {
+                        "items": {
+                            "example": "user.signup",
+                            "maxLength": 256,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "nullable": true,
+                        "type": "array",
+                        "uniqueItems": true
+                    },
+                    "metadata": {
+                        "additionalProperties": {
+                            "type": "string"
+                        },
+                        "type": "object"
+                    },
+                    "rateLimit": {
+                        "format": "uint16",
+                        "minimum": 0,
+                        "nullable": true,
+                        "type": "integer"
+                    },
+                    "secret": {
+                        "description": "The endpoint's verification secret. If `null` is passed, a secret is automatically generated. Format: `base64` encoded random bytes optionally prefixed with `whsec_`. Recommended size: 24.",
+                        "example": "whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD",
+                        "nullable": true,
+                        "pattern": "^(whsec_)?[a-zA-Z0-9+/=]{32,100}$",
+                        "type": "string"
+                    },
+                    "uid": {
+                        "example": "unique-ep-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "url": {
+                        "format": "uri",
+                        "type": "string"
+                    },
+                    "version": {
+                        "deprecated": true,
+                        "example": 1,
+                        "format": "uint16",
+                        "minimum": 1,
+                        "type": "integer"
+                    }
+                },
+                "type": "object"
+            },
+            "EndpointSecretOut": {
+                "properties": {
+                    "key": {
+                        "description": "The endpoint's verification secret. If `null` is passed, a secret is automatically generated. Format: `base64` encoded random bytes optionally prefixed with `whsec_`. Recommended size: 24.",
+                        "example": "whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD",
+                        "pattern": "^(whsec_)?[a-zA-Z0-9+/=]{32,100}$",
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "key"
+                ],
+                "type": "object"
+            },
+            "EndpointSecretRotateIn": {
+                "properties": {
+                    "key": {
+                        "default": null,
+                        "description": "The endpoint's verification secret. If `null` is passed, a secret is automatically generated. Format: `base64` encoded random bytes optionally prefixed with `whsec_`. Recommended size: 24.",
+                        "example": "whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD",
+                        "nullable": true,
+                        "pattern": "^(whsec_)?[a-zA-Z0-9+/=]{32,100}$",
+                        "type": "string"
+                    }
+                },
+                "type": "object"
+            },
+            "EndpointStats": {
+                "properties": {
+                    "fail": {
+                        "format": "int64",
+                        "type": "integer"
+                    },
+                    "pending": {
+                        "format": "int64",
+                        "type": "integer"
+                    },
+                    "sending": {
+                        "format": "int64",
+                        "type": "integer"
+                    },
+                    "success": {
+                        "format": "int64",
+                        "type": "integer"
+                    }
+                },
+                "required": [
+                    "fail",
+                    "pending",
+                    "sending",
+                    "success"
+                ],
+                "type": "object"
+            },
+            "EndpointStatsRange": {
+                "properties": {
+                    "since": {
+                        "format": "date-time",
+                        "nullable": true,
+                        "type": "string"
+                    },
+                    "until": {
+                        "format": "date-time",
+                        "nullable": true,
+                        "type": "string"
+                    }
+                },
+                "type": "object"
+            },
+            "EndpointUpdate": {
+                "properties": {
+                    "channels": {
+                        "description": "List of message channels this endpoint listens to (omit for all)",
+                        "example": [
+                            "project_123",
+                            "group_2"
+                        ],
+                        "items": {
+                            "example": "project_1337",
+                            "maxLength": 128,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "maxItems": 10,
+                        "minItems": 1,
+                        "nullable": true,
+                        "type": "array",
+                        "uniqueItems": true
+                    },
+                    "description": {
+                        "default": "",
+                        "example": "An example endpoint name",
+                        "type": "string"
+                    },
+                    "disabled": {
+                        "default": false,
+                        "example": false,
+                        "type": "boolean"
+                    },
+                    "filterTypes": {
+                        "example": [
+                            "user.signup",
+                            "user.deleted"
+                        ],
+                        "items": {
+                            "example": "user.signup",
+                            "maxLength": 256,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "minItems": 1,
+                        "nullable": true,
+                        "type": "array",
+                        "uniqueItems": true
+                    },
+                    "metadata": {
+                        "additionalProperties": {
+                            "type": "string"
+                        },
+                        "default": {},
+                        "type": "object"
+                    },
+                    "rateLimit": {
+                        "format": "uint16",
+                        "minimum": 1,
+                        "nullable": true,
+                        "type": "integer"
+                    },
+                    "uid": {
+                        "description": "Optional unique identifier for the endpoint",
+                        "example": "unique-ep-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "url": {
+                        "example": "https://example.com/webhook/",
+                        "format": "uri",
+                        "maxLength": 65536,
+                        "minLength": 1,
+                        "type": "string"
+                    },
+                    "version": {
+                        "default": 1,
+                        "deprecated": true,
+                        "example": 1,
+                        "format": "uint16",
+                        "minimum": 1,
+                        "nullable": true,
+                        "type": "integer"
+                    }
+                },
+                "required": [
+                    "url"
+                ],
+                "type": "object"
+            },
+            "EndpointUpdatedEvent": {
+                "description": "Sent when an endpoint is updated.",
+                "properties": {
+                    "data": {
+                        "$ref": "#/components/schemas/EndpointUpdatedEventData"
+                    },
+                    "type": {
+                        "default": "endpoint.updated",
+                        "enum": [
+                            "endpoint.updated"
+                        ],
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "data",
+                    "type"
+                ],
+                "type": "object"
+            },
+            "EndpointUpdatedEventData": {
+                "description": "Sent when an endpoint is created, updated, or deleted",
+                "properties": {
+                    "appId": {
+                        "example": "app_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "appUid": {
+                        "example": "unique-app-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "endpointId": {
+                        "example": "ep_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "endpointUid": {
+                        "example": "unique-ep-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "appId",
+                    "endpointId"
+                ],
+                "type": "object"
+            },
+            "EventExampleIn": {
+                "properties": {
+                    "eventType": {
+                        "example": "user.signup",
+                        "maxLength": 256,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "eventType"
+                ],
+                "type": "object"
+            },
+            "EventTypeIn": {
+                "properties": {
+                    "archived": {
+                        "default": false,
+                        "example": false,
+                        "type": "boolean"
+                    },
+                    "deprecated": {
+                        "default": false,
+                        "type": "boolean"
+                    },
+                    "description": {
+                        "example": "A user has signed up",
+                        "type": "string"
+                    },
+                    "featureFlag": {
+                        "example": "cool-new-feature",
+                        "maxLength": 256,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "name": {
+                        "example": "user.signup",
+                        "maxLength": 256,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "schemas": {
+                        "additionalProperties": {
+                            "type": "object"
+                        },
+                        "description": "The schema for the event type for a specific version as a JSON schema.",
+                        "example": {
+                            "1": {
+                                "description": "An invoice was paid by a user",
+                                "properties": {
+                                    "invoiceId": {
+                                        "description": "The invoice id",
+                                        "type": "string"
+                                    },
+                                    "userId": {
+                                        "description": "The user id",
+                                        "type": "string"
+                                    }
+                                },
+                                "required": [
+                                    "invoiceId",
+                                    "userId"
+                                ],
+                                "title": "Invoice Paid Event",
+                                "type": "object"
+                            }
+                        },
+                        "nullable": true,
+                        "type": "object"
+                    }
+                },
+                "required": [
+                    "description",
+                    "name"
+                ],
+                "type": "object"
+            },
+            "EventTypeOut": {
+                "properties": {
+                    "archived": {
+                        "default": false,
+                        "example": false,
+                        "type": "boolean"
+                    },
+                    "createdAt": {
+                        "format": "date-time",
+                        "type": "string"
+                    },
+                    "deprecated": {
+                        "type": "boolean"
+                    },
+                    "description": {
+                        "example": "A user has signed up",
+                        "type": "string"
+                    },
+                    "featureFlag": {
+                        "example": "cool-new-feature",
+                        "maxLength": 256,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "name": {
+                        "example": "user.signup",
+                        "maxLength": 256,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "schemas": {
+                        "additionalProperties": {
+                            "type": "object"
+                        },
+                        "description": "The schema for the event type for a specific version as a JSON schema.",
+                        "example": {
+                            "1": {
+                                "description": "An invoice was paid by a user",
+                                "properties": {
+                                    "invoiceId": {
+                                        "description": "The invoice id",
+                                        "type": "string"
+                                    },
+                                    "userId": {
+                                        "description": "The user id",
+                                        "type": "string"
+                                    }
+                                },
+                                "required": [
+                                    "invoiceId",
+                                    "userId"
+                                ],
+                                "title": "Invoice Paid Event",
+                                "type": "object"
+                            }
+                        },
+                        "nullable": true,
+                        "type": "object"
+                    },
+                    "updatedAt": {
+                        "format": "date-time",
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "createdAt",
+                    "deprecated",
+                    "description",
+                    "name",
+                    "updatedAt"
+                ],
+                "type": "object"
+            },
+            "EventTypePatch": {
+                "properties": {
+                    "archived": {
+                        "type": "boolean"
+                    },
+                    "deprecated": {
+                        "type": "boolean"
+                    },
+                    "description": {
+                        "type": "string"
+                    },
+                    "featureFlag": {
+                        "example": "cool-new-feature",
+                        "maxLength": 256,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "schemas": {
+                        "additionalProperties": {
+                            "type": "object"
+                        },
+                        "example": {
+                            "description": "An invoice was paid by a user",
+                            "properties": {
+                                "invoiceId": {
+                                    "description": "The invoice id",
+                                    "type": "string"
+                                },
+                                "userId": {
+                                    "description": "The user id",
+                                    "type": "string"
+                                }
+                            },
+                            "required": [
+                                "invoiceId",
+                                "userId"
+                            ],
+                            "title": "Invoice Paid Event",
+                            "type": "object"
+                        },
+                        "nullable": true,
+                        "type": "object"
+                    }
+                },
+                "type": "object"
+            },
+            "EventTypeUpdate": {
+                "properties": {
+                    "archived": {
+                        "default": false,
+                        "example": false,
+                        "type": "boolean"
+                    },
+                    "deprecated": {
+                        "default": false,
+                        "type": "boolean"
+                    },
+                    "description": {
+                        "example": "A user has signed up",
+                        "type": "string"
+                    },
+                    "featureFlag": {
+                        "example": "cool-new-feature",
+                        "maxLength": 256,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "schemas": {
+                        "additionalProperties": {
+                            "type": "object"
+                        },
+                        "description": "The schema for the event type for a specific version as a JSON schema.",
+                        "example": {
+                            "1": {
+                                "description": "An invoice was paid by a user",
+                                "properties": {
+                                    "invoiceId": {
+                                        "description": "The invoice id",
+                                        "type": "string"
+                                    },
+                                    "userId": {
+                                        "description": "The user id",
+                                        "type": "string"
+                                    }
+                                },
+                                "required": [
+                                    "invoiceId",
+                                    "userId"
+                                ],
+                                "title": "Invoice Paid Event",
+                                "type": "object"
+                            }
+                        },
+                        "nullable": true,
+                        "type": "object"
+                    }
+                },
+                "required": [
+                    "description"
+                ],
+                "type": "object"
+            },
+            "HTTPValidationError": {
+                "properties": {
+                    "detail": {
+                        "items": {
+                            "$ref": "#/components/schemas/ValidationErrorItem"
+                        },
+                        "type": "array"
+                    }
+                },
+                "required": [
+                    "detail"
+                ],
+                "type": "object"
+            },
+            "HttpErrorOut": {
+                "properties": {
+                    "code": {
+                        "type": "string"
+                    },
+                    "detail": {
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "code",
+                    "detail"
+                ],
+                "title": "HttpError",
+                "type": "object"
+            },
+            "ListResponse_ApplicationOut_": {
+                "properties": {
+                    "data": {
+                        "items": {
+                            "$ref": "#/components/schemas/ApplicationOut"
+                        },
+                        "type": "array"
+                    },
+                    "done": {
+                        "type": "boolean"
+                    },
+                    "iterator": {
+                        "example": "iterator",
+                        "nullable": true,
+                        "type": "string"
+                    },
+                    "prevIterator": {
+                        "example": "-iterator",
+                        "nullable": true,
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "data",
+                    "done"
+                ],
+                "type": "object"
+            },
+            "ListResponse_EndpointMessageOut_": {
+                "properties": {
+                    "data": {
+                        "items": {
+                            "$ref": "#/components/schemas/EndpointMessageOut"
+                        },
+                        "type": "array"
+                    },
+                    "done": {
+                        "type": "boolean"
+                    },
+                    "iterator": {
+                        "example": "iterator",
+                        "nullable": true,
+                        "type": "string"
+                    },
+                    "prevIterator": {
+                        "example": "-iterator",
+                        "nullable": true,
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "data",
+                    "done"
+                ],
+                "type": "object"
+            },
+            "ListResponse_EndpointOut_": {
+                "properties": {
+                    "data": {
+                        "items": {
+                            "$ref": "#/components/schemas/EndpointOut"
+                        },
+                        "type": "array"
+                    },
+                    "done": {
+                        "type": "boolean"
+                    },
+                    "iterator": {
+                        "example": "iterator",
+                        "nullable": true,
+                        "type": "string"
+                    },
+                    "prevIterator": {
+                        "example": "-iterator",
+                        "nullable": true,
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "data",
+                    "done"
+                ],
+                "type": "object"
+            },
+            "ListResponse_EventTypeOut_": {
+                "properties": {
+                    "data": {
+                        "items": {
+                            "$ref": "#/components/schemas/EventTypeOut"
+                        },
+                        "type": "array"
+                    },
+                    "done": {
+                        "type": "boolean"
+                    },
+                    "iterator": {
+                        "example": "iterator",
+                        "nullable": true,
+                        "type": "string"
+                    },
+                    "prevIterator": {
+                        "example": "-iterator",
+                        "nullable": true,
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "data",
+                    "done"
+                ],
+                "type": "object"
+            },
+            "ListResponse_MessageAttemptEndpointOut_": {
+                "properties": {
+                    "data": {
+                        "items": {
+                            "$ref": "#/components/schemas/MessageAttemptEndpointOut"
+                        },
+                        "type": "array"
+                    },
+                    "done": {
+                        "type": "boolean"
+                    },
+                    "iterator": {
+                        "example": "iterator",
+                        "nullable": true,
+                        "type": "string"
+                    },
+                    "prevIterator": {
+                        "example": "-iterator",
+                        "nullable": true,
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "data",
+                    "done"
+                ],
+                "type": "object"
+            },
+            "ListResponse_MessageAttemptOut_": {
+                "properties": {
+                    "data": {
+                        "items": {
+                            "$ref": "#/components/schemas/MessageAttemptOut"
+                        },
+                        "type": "array"
+                    },
+                    "done": {
+                        "type": "boolean"
+                    },
+                    "iterator": {
+                        "example": "iterator",
+                        "nullable": true,
+                        "type": "string"
+                    },
+                    "prevIterator": {
+                        "example": "-iterator",
+                        "nullable": true,
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "data",
+                    "done"
+                ],
+                "type": "object"
+            },
+            "ListResponse_MessageEndpointOut_": {
+                "properties": {
+                    "data": {
+                        "items": {
+                            "$ref": "#/components/schemas/MessageEndpointOut"
+                        },
+                        "type": "array"
+                    },
+                    "done": {
+                        "type": "boolean"
+                    },
+                    "iterator": {
+                        "example": "iterator",
+                        "nullable": true,
+                        "type": "string"
+                    },
+                    "prevIterator": {
+                        "example": "-iterator",
+                        "nullable": true,
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "data",
+                    "done"
+                ],
+                "type": "object"
+            },
+            "ListResponse_MessageOut_": {
+                "properties": {
+                    "data": {
+                        "items": {
+                            "$ref": "#/components/schemas/MessageOut"
+                        },
+                        "type": "array"
+                    },
+                    "done": {
+                        "type": "boolean"
+                    },
+                    "iterator": {
+                        "example": "iterator",
+                        "nullable": true,
+                        "type": "string"
+                    },
+                    "prevIterator": {
+                        "example": "-iterator",
+                        "nullable": true,
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "data",
+                    "done"
+                ],
+                "type": "object"
+            },
+            "MessageAttempetLast": {
+                "properties": {
+                    "id": {
+                        "example": "atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "responseStatusCode": {
+                        "format": "int16",
+                        "type": "integer"
+                    },
+                    "timestamp": {
+                        "format": "date-time",
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "id",
+                    "responseStatusCode",
+                    "timestamp"
+                ],
+                "type": "object"
+            },
+            "MessageAttemptEndpointOut": {
+                "properties": {
+                    "endpointId": {
+                        "example": "ep_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "id": {
+                        "example": "atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "msgId": {
+                        "example": "msg_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "response": {
+                        "example": "{}",
+                        "type": "string"
+                    },
+                    "responseDurationMs": {
+                        "description": "Response duration in milliseconds.\n\nCurrently, this is not actually recorded in the OSS version of Svix, so this field always has a value of `0`.",
+                        "format": "int64",
+                        "type": "integer"
+                    },
+                    "responseStatusCode": {
+                        "example": 200,
+                        "format": "int16",
+                        "type": "integer"
+                    },
+                    "status": {
+                        "$ref": "#/components/schemas/MessageStatus"
+                    },
+                    "timestamp": {
+                        "format": "date-time",
+                        "type": "string"
+                    },
+                    "triggerType": {
+                        "$ref": "#/components/schemas/MessageAttemptTriggerType"
+                    },
+                    "url": {
+                        "example": "https://example.com/webhook/",
+                        "format": "uri",
+                        "maxLength": 65536,
+                        "minLength": 1,
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "endpointId",
+                    "id",
+                    "msgId",
+                    "response",
+                    "responseDurationMs",
+                    "responseStatusCode",
+                    "status",
+                    "timestamp",
+                    "triggerType",
+                    "url"
+                ],
+                "type": "object"
+            },
+            "MessageAttemptExhaustedEvent": {
+                "description": "Sent when a message delivery has failed (all of the retry attempts have been exhausted).",
+                "properties": {
+                    "data": {
+                        "$ref": "#/components/schemas/MessageAttemptExhaustedEventData"
+                    },
+                    "type": {
+                        "default": "message.attempt.exhausted",
+                        "enum": [
+                            "message.attempt.exhausted"
+                        ],
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "data",
+                    "type"
+                ],
+                "type": "object"
+            },
+            "MessageAttemptExhaustedEventData": {
+                "description": "Sent when a message delivery has failed (all of the retry attempts have been exhausted) as a \"message.attempt.exhausted\" type or after it's failed four times as a \"message.attempt.failing\" event.",
+                "properties": {
+                    "appId": {
+                        "example": "app_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "appUid": {
+                        "example": "unique-app-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "endpointId": {
+                        "example": "ep_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "lastAttempt": {
+                        "$ref": "#/components/schemas/MessageAttempetLast"
+                    },
+                    "msgEventId": {
+                        "example": "unique-msg-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "msgId": {
+                        "example": "msg_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "appId",
+                    "endpointId",
+                    "lastAttempt",
+                    "msgId"
+                ],
+                "type": "object"
+            },
+            "MessageAttemptFailingEvent": {
+                "description": "Sent after a message has been failing for a few times.\nIt's sent on the fourth failure. It complements `message.attempt.exhausted` which is sent after the last failure.",
+                "properties": {
+                    "data": {
+                        "$ref": "#/components/schemas/MessageAttemptFailingEventData"
+                    },
+                    "type": {
+                        "default": "message.attempt.failing",
+                        "enum": [
+                            "message.attempt.failing"
+                        ],
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "data",
+                    "type"
+                ],
+                "type": "object"
+            },
+            "MessageAttemptFailingEventData": {
+                "description": "Sent when a message delivery has failed (all of the retry attempts have been exhausted) as a \"message.attempt.exhausted\" type or after it's failed four times as a \"message.attempt.failing\" event.",
+                "properties": {
+                    "appId": {
+                        "example": "app_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "appUid": {
+                        "example": "unique-app-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "endpointId": {
+                        "example": "ep_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "lastAttempt": {
+                        "$ref": "#/components/schemas/MessageAttempetLast"
+                    },
+                    "msgEventId": {
+                        "example": "unique-msg-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "msgId": {
+                        "example": "msg_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "appId",
+                    "endpointId",
+                    "lastAttempt",
+                    "msgId"
+                ],
+                "type": "object"
+            },
+            "MessageAttemptOut": {
+                "properties": {
+                    "endpointId": {
+                        "example": "ep_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "id": {
+                        "example": "atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "msgId": {
+                        "example": "msg_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "response": {
+                        "example": "{}",
+                        "type": "string"
+                    },
+                    "responseDurationMs": {
+                        "description": "Response duration in milliseconds.\n\nCurrently, this is not actually recorded in the OSS version of Svix, so this field always has a value of `0`.",
+                        "format": "int64",
+                        "type": "integer"
+                    },
+                    "responseStatusCode": {
+                        "example": 200,
+                        "format": "int16",
+                        "type": "integer"
+                    },
+                    "status": {
+                        "$ref": "#/components/schemas/MessageStatus"
+                    },
+                    "timestamp": {
+                        "format": "date-time",
+                        "type": "string"
+                    },
+                    "triggerType": {
+                        "$ref": "#/components/schemas/MessageAttemptTriggerType"
+                    },
+                    "url": {
+                        "example": "https://example.com/webhook/",
+                        "format": "uri",
+                        "maxLength": 65536,
+                        "minLength": 1,
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "endpointId",
+                    "id",
+                    "msgId",
+                    "response",
+                    "responseDurationMs",
+                    "responseStatusCode",
+                    "status",
+                    "timestamp",
+                    "triggerType",
+                    "url"
+                ],
+                "type": "object"
+            },
+            "MessageAttemptRecoveredEvent": {
+                "description": "Sent on a successful dispatch after an earlier failure op webhook has already been sent.",
+                "properties": {
+                    "data": {
+                        "$ref": "#/components/schemas/MessageAttemptRecoveredEventData"
+                    },
+                    "type": {
+                        "default": "message.attempt.recovered",
+                        "enum": [
+                            "message.attempt.recovered"
+                        ],
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "data",
+                    "type"
+                ],
+                "type": "object"
+            },
+            "MessageAttemptRecoveredEventData": {
+                "description": "Sent when a message delivery has failed (all of the retry attempts have been exhausted) as a \"message.attempt.exhausted\" type or after it's failed four times as a \"message.attempt.failing\" event.",
+                "properties": {
+                    "appId": {
+                        "example": "app_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "appUid": {
+                        "example": "unique-app-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "endpointId": {
+                        "example": "ep_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "lastAttempt": {
+                        "$ref": "#/components/schemas/MessageAttempetLast"
+                    },
+                    "msgEventId": {
+                        "example": "unique-msg-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "msgId": {
+                        "example": "msg_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "appId",
+                    "endpointId",
+                    "lastAttempt",
+                    "msgId"
+                ],
+                "type": "object"
+            },
+            "MessageAttemptTriggerType": {
+                "description": "The reason an attempt was made:\n- Scheduled = 0\n- Manual = 1",
+                "enum": [
+                    0,
+                    1
+                ],
+                "title": "MessageAttemptTriggerType",
+                "type": "integer",
+                "x-enum-varnames": [
+                    "Scheduled",
+                    "Manual"
+                ]
+            },
+            "MessageEndpointOut": {
+                "properties": {
+                    "channels": {
+                        "description": "List of message channels this endpoint listens to (omit for all)",
+                        "example": [
+                            "project_123",
+                            "group_2"
+                        ],
+                        "items": {
+                            "example": "project_1337",
+                            "maxLength": 128,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "maxItems": 10,
+                        "minItems": 1,
+                        "nullable": true,
+                        "type": "array",
+                        "uniqueItems": true
+                    },
+                    "createdAt": {
+                        "format": "date-time",
+                        "type": "string"
+                    },
+                    "description": {
+                        "description": "An example endpoint name",
+                        "type": "string"
+                    },
+                    "disabled": {
+                        "default": false,
+                        "example": false,
+                        "type": "boolean"
+                    },
+                    "filterTypes": {
+                        "example": [
+                            "user.signup",
+                            "user.deleted"
+                        ],
+                        "items": {
+                            "example": "user.signup",
+                            "maxLength": 256,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "minItems": 1,
+                        "nullable": true,
+                        "type": "array",
+                        "uniqueItems": true
+                    },
+                    "id": {
+                        "example": "ep_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "nextAttempt": {
+                        "format": "date-time",
+                        "nullable": true,
+                        "type": "string"
+                    },
+                    "rateLimit": {
+                        "format": "uint16",
+                        "minimum": 0,
+                        "nullable": true,
+                        "type": "integer"
+                    },
+                    "status": {
+                        "$ref": "#/components/schemas/MessageStatus"
+                    },
+                    "uid": {
+                        "description": "Optional unique identifier for the endpoint",
+                        "example": "unique-ep-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "updatedAt": {
+                        "format": "date-time",
+                        "type": "string"
+                    },
+                    "url": {
+                        "example": "https://example.com/webhook/",
+                        "format": "uri",
+                        "maxLength": 65536,
+                        "minLength": 1,
+                        "type": "string"
+                    },
+                    "version": {
+                        "deprecated": true,
+                        "example": 1,
+                        "format": "uint16",
+                        "minimum": 1,
+                        "type": "integer"
+                    }
+                },
+                "required": [
+                    "createdAt",
+                    "description",
+                    "id",
+                    "status",
+                    "updatedAt",
+                    "url",
+                    "version"
+                ],
+                "type": "object"
+            },
+            "MessageIn": {
+                "properties": {
+                    "channels": {
+                        "description": "List of free-form identifiers that endpoints can filter by",
+                        "example": [
+                            "project_123",
+                            "group_2"
+                        ],
+                        "items": {
+                            "example": "project_1337",
+                            "maxLength": 128,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "maxItems": 5,
+                        "minItems": 1,
+                        "nullable": true,
+                        "type": "array",
+                        "uniqueItems": true
+                    },
+                    "eventId": {
+                        "description": "Optional unique identifier for the message",
+                        "example": "unique-msg-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "eventType": {
+                        "example": "user.signup",
+                        "maxLength": 256,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "payload": {
+                        "example": {
+                            "email": "test@example.com",
+                            "username": "test_user"
+                        },
+                        "type": "object"
+                    },
+                    "payloadRetentionPeriod": {
+                        "default": 90,
+                        "example": 90,
+                        "format": "int64",
+                        "maximum": 90,
+                        "minimum": 5,
+                        "type": "integer"
+                    }
+                },
+                "required": [
+                    "eventType",
+                    "payload"
+                ],
+                "type": "object"
+            },
+            "MessageOut": {
+                "properties": {
+                    "channels": {
+                        "description": "List of free-form identifiers that endpoints can filter by",
+                        "example": [
+                            "project_123",
+                            "group_2"
+                        ],
+                        "items": {
+                            "example": "project_1337",
+                            "maxLength": 128,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "maxItems": 5,
+                        "minItems": 1,
+                        "nullable": true,
+                        "type": "array",
+                        "uniqueItems": true
+                    },
+                    "eventId": {
+                        "description": "Optional unique identifier for the message",
+                        "example": "unique-msg-identifier",
+                        "maxLength": 256,
+                        "minLength": 1,
+                        "nullable": true,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "eventType": {
+                        "example": "user.signup",
+                        "maxLength": 256,
+                        "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                        "type": "string"
+                    },
+                    "id": {
+                        "example": "msg_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                        "type": "string"
+                    },
+                    "payload": {
+                        "example": {
+                            "email": "test@example.com",
+                            "username": "test_user"
+                        },
+                        "type": "object"
+                    },
+                    "timestamp": {
+                        "format": "date-time",
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "eventType",
+                    "id",
+                    "payload",
+                    "timestamp"
+                ],
+                "type": "object"
+            },
+            "MessageStatus": {
+                "description": "The sending status of the message:\n- Success = 0\n- Pending = 1\n- Fail = 2\n- Sending = 3",
+                "enum": [
+                    0,
+                    1,
+                    2,
+                    3
+                ],
+                "title": "MessageStatus",
+                "type": "integer",
+                "x-enum-varnames": [
+                    "Success",
+                    "Pending",
+                    "Fail",
+                    "Sending"
+                ]
+            },
+            "Ordering": {
+                "description": "Defines the ordering in a listing of results.",
+                "enum": [
+                    "ascending",
+                    "descending"
+                ],
+                "type": "string"
+            },
+            "RecoverIn": {
+                "properties": {
+                    "since": {
+                        "format": "date-time",
+                        "type": "string"
+                    },
+                    "until": {
+                        "format": "date-time",
+                        "nullable": true,
+                        "type": "string"
+                    }
+                },
+                "required": [
+                    "since"
+                ],
+                "type": "object"
+            },
+            "RecoverOut": {
+                "properties": {
+                    "id": {
+                        "type": "string"
+                    },
+                    "status": {
+                        "$ref": "#/components/schemas/BackgroundTaskStatus"
+                    },
+                    "task": {
+                        "$ref": "#/components/schemas/BackgroundTaskType"
+                    }
+                },
+                "required": [
+                    "id",
+                    "status",
+                    "task"
+                ],
+                "type": "object"
+            },
+            "StatusCodeClass": {
+                "description": "The different classes of HTTP status codes:\n- CodeNone = 0\n- Code1xx = 100\n- Code2xx = 200\n- Code3xx = 300\n- Code4xx = 400\n- Code5xx = 500",
+                "enum": [
+                    0,
+                    100,
+                    200,
+                    300,
+                    400,
+                    500
+                ],
+                "title": "StatusCodeClass",
+                "type": "integer",
+                "x-enum-varnames": [
+                    "CodeNone",
+                    "Code1xx",
+                    "Code2xx",
+                    "Code3xx",
+                    "Code4xx",
+                    "Code5xx"
+                ]
+            },
+            "ValidationErrorItem": {
+                "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.",
+                "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.",
+                        "items": {
+                            "type": "string"
+                        },
+                        "type": "array"
+                    },
+                    "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"
+                    }
+                },
+                "required": [
+                    "loc",
+                    "msg",
+                    "type"
+                ],
+                "type": "object"
+            }
+        }
+    },
+    "info": {
+        "description": "",
+        "title": "Svix API",
+        "version": "1.1.1",
+        "x-logo": {
+            "altText": "Svix Logo",
+            "url": "https://www.svix.com/static/img/brand-padded.svg"
+        }
+    },
+    "openapi": "3.0.2",
+    "paths": {
+        "/api/v1/app": {
+            "get": {
+                "description": "List of all the organization's applications.",
+                "operationId": "v1.application.list",
+                "parameters": [
+                    {
+                        "description": "Limit the number of returned items",
+                        "in": "query",
+                        "name": "limit",
+                        "schema": {
+                            "description": "Limit the number of returned items",
+                            "format": "uint64",
+                            "minimum": 0,
+                            "type": "integer"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "The iterator returned from a prior invocation",
+                        "in": "query",
+                        "name": "iterator",
+                        "schema": {
+                            "description": "The iterator returned from a prior invocation",
+                            "example": "app_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                            "nullable": true,
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "The sorting order of the returned items",
+                        "in": "query",
+                        "name": "order",
+                        "schema": {
+                            "$ref": "#/components/schemas/Ordering",
+                            "description": "The sorting order of the returned items",
+                            "nullable": true
+                        },
+                        "style": "form"
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/ListResponse_ApplicationOut_"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "List Applications",
+                "tags": [
+                    "Application"
+                ]
+            },
+            "post": {
+                "description": "Create a new application.",
+                "operationId": "v1.application.create",
+                "parameters": [
+                    {
+                        "description": "Get an existing application, or create a new one if doesn't exist. It's two separate functions in the libs.",
+                        "in": "query",
+                        "name": "get_if_exists",
+                        "schema": {
+                            "default": false,
+                            "description": "Get an existing application, or create a new one if doesn't exist. It's two separate functions in the libs.",
+                            "type": "boolean"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "The request's idempotency key",
+                        "in": "header",
+                        "name": "idempotency-key",
+                        "schema": {
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": "#/components/schemas/ApplicationIn"
+                            }
+                        }
+                    },
+                    "required": true
+                },
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/ApplicationOut"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "201": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/ApplicationOut"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Create Application",
+                "tags": [
+                    "Application"
+                ]
+            }
+        },
+        "/api/v1/app/{app_id}": {
+            "delete": {
+                "description": "Delete an application.",
+                "operationId": "v1.application.delete",
+                "responses": {
+                    "204": {
+                        "description": "no content"
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Delete Application",
+                "tags": [
+                    "Application"
+                ]
+            },
+            "get": {
+                "description": "Get an application.",
+                "operationId": "v1.application.get",
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/ApplicationOut"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Get Application",
+                "tags": [
+                    "Application"
+                ]
+            },
+            "patch": {
+                "description": "Partially update an application.",
+                "operationId": "patch_application",
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": "#/components/schemas/ApplicationPatch"
+                            }
+                        }
+                    },
+                    "required": true
+                },
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/ApplicationOut"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Patch Application",
+                "tags": [
+                    "Application"
+                ]
+            },
+            "put": {
+                "description": "Update an application.",
+                "operationId": "v1.application.update",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": "#/components/schemas/ApplicationIn"
+                            }
+                        }
+                    },
+                    "required": true
+                },
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/ApplicationOut"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "201": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/ApplicationOut"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Update Application",
+                "tags": [
+                    "Application"
+                ]
+            }
+        },
+        "/api/v1/app/{app_id}/attempt/endpoint/{endpoint_id}": {
+            "get": {
+                "description": "List attempts by endpoint id",
+                "operationId": "v1.message-attempt.list-by-endpoint",
+                "parameters": [
+                    {
+                        "description": "Limit the number of returned items",
+                        "in": "query",
+                        "name": "limit",
+                        "schema": {
+                            "description": "Limit the number of returned items",
+                            "format": "uint64",
+                            "minimum": 0,
+                            "type": "integer"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "The iterator returned from a prior invocation",
+                        "in": "query",
+                        "name": "iterator",
+                        "schema": {
+                            "description": "The iterator returned from a prior invocation",
+                            "example": "atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                            "nullable": true,
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Filter response based on the delivery status",
+                        "in": "query",
+                        "name": "status",
+                        "schema": {
+                            "$ref": "#/components/schemas/MessageStatus",
+                            "description": "Filter response based on the delivery status",
+                            "nullable": true
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Filter response based on the HTTP status code",
+                        "in": "query",
+                        "name": "status_code_class",
+                        "schema": {
+                            "$ref": "#/components/schemas/StatusCodeClass",
+                            "description": "Filter response based on the HTTP status code",
+                            "nullable": true
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Filter response based on the channel",
+                        "in": "query",
+                        "name": "channel",
+                        "schema": {
+                            "description": "Filter response based on the channel",
+                            "example": "project_1337",
+                            "maxLength": 128,
+                            "nullable": true,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Only include items created before a certain date",
+                        "in": "query",
+                        "name": "before",
+                        "schema": {
+                            "description": "Only include items created before a certain date",
+                            "format": "date-time",
+                            "nullable": true,
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Only include items created after a certain date",
+                        "in": "query",
+                        "name": "after",
+                        "schema": {
+                            "description": "Only include items created after a certain date",
+                            "format": "date-time",
+                            "nullable": true,
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "When `true` attempt content is included in the response",
+                        "in": "query",
+                        "name": "with_content",
+                        "schema": {
+                            "default": true,
+                            "description": "When `true` attempt content is included in the response",
+                            "type": "boolean"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Filter response based on the event type",
+                        "in": "query",
+                        "name": "event_types",
+                        "schema": {
+                            "description": "Filter response based on the event type",
+                            "items": {
+                                "example": "user.signup",
+                                "maxLength": 256,
+                                "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                                "type": "string"
+                            },
+                            "nullable": true,
+                            "type": "array",
+                            "uniqueItems": true
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "endpoint_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-ep-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/ListResponse_MessageAttemptOut_"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "List Attempts By Endpoint",
+                "tags": [
+                    "Message Attempt"
+                ]
+            }
+        },
+        "/api/v1/app/{app_id}/attempt/msg/{msg_id}": {
+            "get": {
+                "description": "List attempts by message id",
+                "operationId": "v1.message-attempt.list-by-msg",
+                "parameters": [
+                    {
+                        "description": "Limit the number of returned items",
+                        "in": "query",
+                        "name": "limit",
+                        "schema": {
+                            "description": "Limit the number of returned items",
+                            "format": "uint64",
+                            "minimum": 0,
+                            "type": "integer"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "The iterator returned from a prior invocation",
+                        "in": "query",
+                        "name": "iterator",
+                        "schema": {
+                            "description": "The iterator returned from a prior invocation",
+                            "example": "atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                            "nullable": true,
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Filter response based on the delivery status",
+                        "in": "query",
+                        "name": "status",
+                        "schema": {
+                            "$ref": "#/components/schemas/MessageStatus",
+                            "description": "Filter response based on the delivery status",
+                            "nullable": true
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Filter response based on the HTTP status code",
+                        "in": "query",
+                        "name": "status_code_class",
+                        "schema": {
+                            "$ref": "#/components/schemas/StatusCodeClass",
+                            "description": "Filter response based on the HTTP status code",
+                            "nullable": true
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Filter response based on the channel",
+                        "in": "query",
+                        "name": "channel",
+                        "schema": {
+                            "description": "Filter response based on the channel",
+                            "example": "project_1337",
+                            "maxLength": 128,
+                            "nullable": true,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Filter the attempts based on the attempted endpoint",
+                        "in": "query",
+                        "name": "endpoint_id",
+                        "schema": {
+                            "description": "Filter the attempts based on the attempted endpoint",
+                            "example": "unique-ep-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "nullable": true,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Only include items created before a certain date",
+                        "in": "query",
+                        "name": "before",
+                        "schema": {
+                            "description": "Only include items created before a certain date",
+                            "format": "date-time",
+                            "nullable": true,
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Only include items created after a certain date",
+                        "in": "query",
+                        "name": "after",
+                        "schema": {
+                            "description": "Only include items created after a certain date",
+                            "format": "date-time",
+                            "nullable": true,
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "When `true` attempt content is included in the response",
+                        "in": "query",
+                        "name": "with_content",
+                        "schema": {
+                            "default": true,
+                            "description": "When `true` attempt content is included in the response",
+                            "type": "boolean"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "msg_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-msg-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "description": "Filter response based on the event type",
+                        "in": "query",
+                        "name": "event_types",
+                        "schema": {
+                            "description": "Filter response based on the event type",
+                            "items": {
+                                "example": "user.signup",
+                                "maxLength": 256,
+                                "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                                "type": "string"
+                            },
+                            "nullable": true,
+                            "type": "array",
+                            "uniqueItems": true
+                        },
+                        "style": "form"
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/ListResponse_MessageAttemptOut_"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "List Attempts By Msg",
+                "tags": [
+                    "Message Attempt"
+                ]
+            }
+        },
+        "/api/v1/app/{app_id}/endpoint": {
+            "get": {
+                "description": "List the application's endpoints.",
+                "operationId": "v1.endpoint.list",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "description": "Limit the number of returned items",
+                        "in": "query",
+                        "name": "limit",
+                        "schema": {
+                            "description": "Limit the number of returned items",
+                            "format": "uint64",
+                            "minimum": 0,
+                            "type": "integer"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "The iterator returned from a prior invocation",
+                        "in": "query",
+                        "name": "iterator",
+                        "schema": {
+                            "description": "The iterator returned from a prior invocation",
+                            "example": "ep_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                            "nullable": true,
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "The sorting order of the returned items",
+                        "in": "query",
+                        "name": "order",
+                        "schema": {
+                            "$ref": "#/components/schemas/Ordering",
+                            "description": "The sorting order of the returned items",
+                            "nullable": true
+                        },
+                        "style": "form"
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/ListResponse_EndpointOut_"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "List Endpoints",
+                "tags": [
+                    "Endpoint"
+                ]
+            },
+            "post": {
+                "description": "Create a new endpoint for the application.\n\nWhen `secret` is `null` the secret is automatically generated (recommended)",
+                "operationId": "v1.endpoint.create",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "description": "The request's idempotency key",
+                        "in": "header",
+                        "name": "idempotency-key",
+                        "schema": {
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": "#/components/schemas/EndpointIn"
+                            }
+                        }
+                    },
+                    "required": true
+                },
+                "responses": {
+                    "201": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/EndpointOut"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Create Endpoint",
+                "tags": [
+                    "Endpoint"
+                ]
+            }
+        },
+        "/api/v1/app/{app_id}/endpoint/{endpoint_id}": {
+            "delete": {
+                "description": "Delete an endpoint.",
+                "operationId": "v1.endpoint.delete",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "endpoint_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-ep-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "responses": {
+                    "204": {
+                        "description": "no content"
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Delete Endpoint",
+                "tags": [
+                    "Endpoint"
+                ]
+            },
+            "get": {
+                "description": "Get an endpoint.",
+                "operationId": "v1.endpoint.get",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "endpoint_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-ep-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/EndpointOut"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Get Endpoint",
+                "tags": [
+                    "Endpoint"
+                ]
+            },
+            "patch": {
+                "description": "Partially update an endpoint.",
+                "operationId": "patch_endpoint",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "endpoint_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-ep-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": "#/components/schemas/EndpointPatch"
+                            }
+                        }
+                    },
+                    "required": true
+                },
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/EndpointOut"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Patch Endpoint",
+                "tags": [
+                    "Endpoint"
+                ]
+            },
+            "put": {
+                "description": "Update an endpoint.",
+                "operationId": "v1.endpoint.update",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "endpoint_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-ep-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": "#/components/schemas/EndpointUpdate"
+                            }
+                        }
+                    },
+                    "required": true
+                },
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/EndpointOut"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "201": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/EndpointOut"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Update Endpoint",
+                "tags": [
+                    "Endpoint"
+                ]
+            }
+        },
+        "/api/v1/app/{app_id}/endpoint/{endpoint_id}/headers": {
+            "get": {
+                "description": "Get the additional headers to be sent with the webhook",
+                "operationId": "v1.endpoint.get-headers",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "endpoint_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-ep-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/EndpointHeadersOut"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Get Endpoint Headers",
+                "tags": [
+                    "Endpoint"
+                ]
+            },
+            "patch": {
+                "description": "Partially set the additional headers to be sent with the webhook",
+                "operationId": "v1.endpoint.patch-headers",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "endpoint_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-ep-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": "#/components/schemas/EndpointHeadersPatchIn"
+                            }
+                        }
+                    },
+                    "required": true
+                },
+                "responses": {
+                    "204": {
+                        "description": "no content"
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Patch Endpoint Headers",
+                "tags": [
+                    "Endpoint"
+                ]
+            },
+            "put": {
+                "description": "Set the additional headers to be sent with the webhook",
+                "operationId": "v1.endpoint.update-headers",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "endpoint_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-ep-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": "#/components/schemas/EndpointHeadersIn"
+                            }
+                        }
+                    },
+                    "required": true
+                },
+                "responses": {
+                    "204": {
+                        "description": "no content"
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Update Endpoint Headers",
+                "tags": [
+                    "Endpoint"
+                ]
+            }
+        },
+        "/api/v1/app/{app_id}/endpoint/{endpoint_id}/msg": {
+            "get": {
+                "description": "List messages for a particular endpoint. Additionally includes metadata about the latest message attempt.\n\nThe `before` parameter lets you filter all items created before a certain date and is ignored if an iterator is passed.",
+                "operationId": "v1.message-attempt.list-attempted-messages",
+                "parameters": [
+                    {
+                        "description": "Limit the number of returned items",
+                        "in": "query",
+                        "name": "limit",
+                        "schema": {
+                            "description": "Limit the number of returned items",
+                            "format": "uint64",
+                            "minimum": 0,
+                            "type": "integer"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "The iterator returned from a prior invocation",
+                        "in": "query",
+                        "name": "iterator",
+                        "schema": {
+                            "description": "The iterator returned from a prior invocation",
+                            "example": "msg_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                            "nullable": true,
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Filter response based on the channel",
+                        "in": "query",
+                        "name": "channel",
+                        "schema": {
+                            "description": "Filter response based on the channel",
+                            "example": "project_1337",
+                            "maxLength": 128,
+                            "nullable": true,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Filter response based on the delivery status",
+                        "in": "query",
+                        "name": "status",
+                        "schema": {
+                            "$ref": "#/components/schemas/MessageStatus",
+                            "description": "Filter response based on the delivery status",
+                            "nullable": true
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Only include items created before a certain date",
+                        "in": "query",
+                        "name": "before",
+                        "schema": {
+                            "description": "Only include items created before a certain date",
+                            "format": "date-time",
+                            "nullable": true,
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Only include items created after a certain date",
+                        "in": "query",
+                        "name": "after",
+                        "schema": {
+                            "description": "Only include items created after a certain date",
+                            "format": "date-time",
+                            "nullable": true,
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "When `true` message payloads are included in the response",
+                        "in": "query",
+                        "name": "with_content",
+                        "schema": {
+                            "default": true,
+                            "description": "When `true` message payloads are included in the response",
+                            "type": "boolean"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "endpoint_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-ep-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "description": "Filter response based on the event type",
+                        "in": "query",
+                        "name": "event_types",
+                        "schema": {
+                            "description": "Filter response based on the event type",
+                            "items": {
+                                "example": "user.signup",
+                                "maxLength": 256,
+                                "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                                "type": "string"
+                            },
+                            "nullable": true,
+                            "type": "array",
+                            "uniqueItems": true
+                        },
+                        "style": "form"
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/ListResponse_EndpointMessageOut_"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "List Attempted Messages",
+                "tags": [
+                    "Message Attempt"
+                ]
+            }
+        },
+        "/api/v1/app/{app_id}/endpoint/{endpoint_id}/recover": {
+            "post": {
+                "description": "Resend all failed messages since a given time.",
+                "operationId": "v1.endpoint.recover",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "endpoint_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-ep-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "description": "The request's idempotency key",
+                        "in": "header",
+                        "name": "idempotency-key",
+                        "schema": {
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": "#/components/schemas/RecoverIn"
+                            }
+                        }
+                    },
+                    "required": true
+                },
+                "responses": {
+                    "202": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/RecoverOut"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Recover Failed Webhooks",
+                "tags": [
+                    "Endpoint"
+                ]
+            }
+        },
+        "/api/v1/app/{app_id}/endpoint/{endpoint_id}/secret": {
+            "get": {
+                "description": "Get the endpoint's signing secret.\n\nThis is used to verify the authenticity of the webhook.\nFor more information please refer to [the consuming webhooks docs](https://docs.svix.com/consuming-webhooks/).",
+                "operationId": "v1.endpoint.get-secret",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "endpoint_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-ep-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/EndpointSecretOut"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Get Endpoint Secret",
+                "tags": [
+                    "Endpoint"
+                ]
+            }
+        },
+        "/api/v1/app/{app_id}/endpoint/{endpoint_id}/secret/rotate": {
+            "post": {
+                "description": "Rotates the endpoint's signing secret.  The previous secret will be valid for the next 24 hours.",
+                "operationId": "v1.endpoint.rotate-secret",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "endpoint_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-ep-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "description": "The request's idempotency key",
+                        "in": "header",
+                        "name": "idempotency-key",
+                        "schema": {
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": "#/components/schemas/EndpointSecretRotateIn"
+                            }
+                        }
+                    },
+                    "required": true
+                },
+                "responses": {
+                    "204": {
+                        "description": "no content"
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Rotate Endpoint Secret",
+                "tags": [
+                    "Endpoint"
+                ]
+            }
+        },
+        "/api/v1/app/{app_id}/endpoint/{endpoint_id}/send-example": {
+            "post": {
+                "description": "Send an example message for an event",
+                "operationId": "v1.endpoint.send-example",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "endpoint_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-ep-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "description": "The request's idempotency key",
+                        "in": "header",
+                        "name": "idempotency-key",
+                        "schema": {
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": "#/components/schemas/EventExampleIn"
+                            }
+                        }
+                    },
+                    "required": true
+                },
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/MessageOut"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Send Event Type Example Message",
+                "tags": [
+                    "Endpoint"
+                ]
+            }
+        },
+        "/api/v1/app/{app_id}/endpoint/{endpoint_id}/stats": {
+            "get": {
+                "description": "Get basic statistics for the endpoint.",
+                "operationId": "v1.endpoint.get-stats",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "endpoint_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-ep-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "query",
+                        "name": "since",
+                        "schema": {
+                            "format": "date-time",
+                            "nullable": true,
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "in": "query",
+                        "name": "until",
+                        "schema": {
+                            "format": "date-time",
+                            "nullable": true,
+                            "type": "string"
+                        },
+                        "style": "form"
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/EndpointStats"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Endpoint Stats",
+                "tags": [
+                    "Endpoint"
+                ]
+            }
+        },
+        "/api/v1/app/{app_id}/msg": {
+            "get": {
+                "description": "List all of the application's messages.\n\nThe `before` parameter lets you filter all items created before a certain date and is ignored if an iterator is passed.\nThe `after` parameter lets you filter all items created after a certain date and is ignored if an iterator is passed.\n`before` and `after` cannot be used simultaneously.",
+                "operationId": "v1.message.list",
+                "parameters": [
+                    {
+                        "description": "Limit the number of returned items",
+                        "in": "query",
+                        "name": "limit",
+                        "schema": {
+                            "description": "Limit the number of returned items",
+                            "format": "uint64",
+                            "minimum": 0,
+                            "type": "integer"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "The iterator returned from a prior invocation",
+                        "in": "query",
+                        "name": "iterator",
+                        "schema": {
+                            "description": "The iterator returned from a prior invocation",
+                            "example": "msg_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                            "nullable": true,
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Filter response based on the channel",
+                        "in": "query",
+                        "name": "channel",
+                        "schema": {
+                            "description": "Filter response based on the channel",
+                            "example": "project_1337",
+                            "maxLength": 128,
+                            "nullable": true,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Only include items created before a certain date",
+                        "in": "query",
+                        "name": "before",
+                        "schema": {
+                            "description": "Only include items created before a certain date",
+                            "format": "date-time",
+                            "nullable": true,
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Only include items created after a certain date",
+                        "in": "query",
+                        "name": "after",
+                        "schema": {
+                            "description": "Only include items created after a certain date",
+                            "format": "date-time",
+                            "nullable": true,
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "When `true` message payloads are included in the response",
+                        "in": "query",
+                        "name": "with_content",
+                        "schema": {
+                            "default": true,
+                            "description": "When `true` message payloads are included in the response",
+                            "type": "boolean"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Filter response based on the event type",
+                        "in": "query",
+                        "name": "event_types",
+                        "schema": {
+                            "description": "Filter response based on the event type",
+                            "items": {
+                                "example": "user.signup",
+                                "maxLength": 256,
+                                "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                                "type": "string"
+                            },
+                            "nullable": true,
+                            "type": "array",
+                            "uniqueItems": true
+                        },
+                        "style": "form"
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/ListResponse_MessageOut_"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "List Messages",
+                "tags": [
+                    "Message"
+                ]
+            },
+            "post": {
+                "description": "Creates a new message and dispatches it to all of the application's endpoints.\n\nThe `eventId` is an optional custom unique ID. It's verified to be unique only up to a day, after that no verification will be made.\nIf a message with the same `eventId` already exists for any application in your environment, a 409 conflict error will be returned.\n\nThe `eventType` indicates the type and schema of the event. All messages of a certain `eventType` are expected to have the same schema. Endpoints can choose to only listen to specific event types.\nMessages can also have `channels`, which similar to event types let endpoints filter by them. Unlike event types, messages can have multiple channels, and channels don't imply a specific message content or schema.\n\nThe `payload` property is the webhook's body (the actual webhook message). Svix supports payload sizes of up to ~350kb, though it's generally a good idea to keep webhook payloads small, probably no larger than 40kb.",
+                "operationId": "v1.message.create",
+                "parameters": [
+                    {
+                        "description": "When `true` message payloads are included in the response",
+                        "in": "query",
+                        "name": "with_content",
+                        "schema": {
+                            "default": true,
+                            "description": "When `true` message payloads are included in the response",
+                            "type": "boolean"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "The request's idempotency key",
+                        "in": "header",
+                        "name": "idempotency-key",
+                        "schema": {
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": "#/components/schemas/MessageIn"
+                            }
+                        }
+                    },
+                    "required": true
+                },
+                "responses": {
+                    "202": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/MessageOut"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Create Message",
+                "tags": [
+                    "Message"
+                ]
+            }
+        },
+        "/api/v1/app/{app_id}/msg/{msg_id}": {
+            "get": {
+                "description": "Get a message by its ID or eventID.",
+                "operationId": "v1.message.get",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "msg_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-msg-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "description": "When `true` message payloads are included in the response",
+                        "in": "query",
+                        "name": "with_content",
+                        "schema": {
+                            "default": true,
+                            "description": "When `true` message payloads are included in the response",
+                            "type": "boolean"
+                        },
+                        "style": "form"
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/MessageOut"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Get Message",
+                "tags": [
+                    "Message"
+                ]
+            }
+        },
+        "/api/v1/app/{app_id}/msg/{msg_id}/attempt": {
+            "get": {
+                "description": "Deprecated: Please use \"List Attempts by Endpoint\" and \"List Attempts by Msg\" instead.\n\n`msg_id`: Use a message id or a message `eventId`",
+                "operationId": "v1.message-attempt.list-by-msg-deprecated",
+                "parameters": [
+                    {
+                        "description": "Limit the number of returned items",
+                        "in": "query",
+                        "name": "limit",
+                        "schema": {
+                            "description": "Limit the number of returned items",
+                            "format": "uint64",
+                            "minimum": 0,
+                            "type": "integer"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "The iterator returned from a prior invocation",
+                        "in": "query",
+                        "name": "iterator",
+                        "schema": {
+                            "description": "The iterator returned from a prior invocation",
+                            "example": "atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                            "nullable": true,
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Filter the attempts based on the attempted endpoint",
+                        "in": "query",
+                        "name": "endpoint_id",
+                        "schema": {
+                            "description": "Filter the attempts based on the attempted endpoint",
+                            "example": "unique-ep-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "nullable": true,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Filter response based on the channel",
+                        "in": "query",
+                        "name": "channel",
+                        "schema": {
+                            "description": "Filter response based on the channel",
+                            "example": "project_1337",
+                            "maxLength": 128,
+                            "nullable": true,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Filter response based on the delivery status",
+                        "in": "query",
+                        "name": "status",
+                        "schema": {
+                            "$ref": "#/components/schemas/MessageStatus",
+                            "description": "Filter response based on the delivery status",
+                            "nullable": true
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Only include items created before a certain date",
+                        "in": "query",
+                        "name": "before",
+                        "schema": {
+                            "description": "Only include items created before a certain date",
+                            "format": "date-time",
+                            "nullable": true,
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Only include items created after a certain date",
+                        "in": "query",
+                        "name": "after",
+                        "schema": {
+                            "description": "Only include items created after a certain date",
+                            "format": "date-time",
+                            "nullable": true,
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Filter response based on the event type",
+                        "in": "query",
+                        "name": "event_types",
+                        "schema": {
+                            "description": "Filter response based on the event type",
+                            "items": {
+                                "example": "user.signup",
+                                "maxLength": 256,
+                                "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                                "type": "string"
+                            },
+                            "nullable": true,
+                            "type": "array",
+                            "uniqueItems": true
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "msg_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-msg-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/ListResponse_MessageAttemptOut_"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "List Messageattempts",
+                "tags": [
+                    "Message Attempt"
+                ]
+            }
+        },
+        "/api/v1/app/{app_id}/msg/{msg_id}/attempt/{attempt_id}": {
+            "get": {
+                "description": "`msg_id`: Use a message id or a message `eventId`",
+                "operationId": "v1.message-attempt.get",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "msg_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-msg-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "attempt_id",
+                        "required": true,
+                        "schema": {
+                            "example": "atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/MessageAttemptOut"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Get Messageattempt",
+                "tags": [
+                    "Message Attempt"
+                ]
+            }
+        },
+        "/api/v1/app/{app_id}/msg/{msg_id}/attempt/{attempt_id}/content": {
+            "delete": {
+                "description": "Deletes the given attempt's response body. Useful when an endpoint accidentally returned sensitive content.",
+                "operationId": "v1.message-attempt.expunge-content",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "msg_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-msg-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "attempt_id",
+                        "required": true,
+                        "schema": {
+                            "example": "atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "responses": {
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Expunge Attempt Content",
+                "tags": [
+                    "Message Attempt"
+                ]
+            }
+        },
+        "/api/v1/app/{app_id}/msg/{msg_id}/content": {
+            "delete": {
+                "description": "Delete the given message's payload. Useful in cases when a message was accidentally sent with sensitive content.\n\nThe message can't be replayed or resent once its payload has been deleted or expired.",
+                "operationId": "v1.message.expunge-content",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "msg_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-msg-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "responses": {
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Expunge Message Content",
+                "tags": [
+                    "Message"
+                ]
+            }
+        },
+        "/api/v1/app/{app_id}/msg/{msg_id}/endpoint": {
+            "get": {
+                "description": "`msg_id`: Use a message id or a message `eventId`",
+                "operationId": "v1.message-attempt.list-attempted-destinations",
+                "parameters": [
+                    {
+                        "description": "Limit the number of returned items",
+                        "in": "query",
+                        "name": "limit",
+                        "schema": {
+                            "description": "Limit the number of returned items",
+                            "format": "uint64",
+                            "minimum": 0,
+                            "type": "integer"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "The iterator returned from a prior invocation",
+                        "in": "query",
+                        "name": "iterator",
+                        "schema": {
+                            "description": "The iterator returned from a prior invocation",
+                            "example": "ep_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                            "nullable": true,
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "msg_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-msg-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/ListResponse_MessageEndpointOut_"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "List Attempted Destinations",
+                "tags": [
+                    "Message Attempt"
+                ]
+            }
+        },
+        "/api/v1/app/{app_id}/msg/{msg_id}/endpoint/{endpoint_id}/attempt": {
+            "get": {
+                "description": "DEPRECATED: please use list_attempts with endpoint_id as a query parameter instead.\n\nList the message attempts for a particular endpoint.\n\nReturning the endpoint.\n\nThe `before` parameter lets you filter all items created before a certain date and is ignored if an iterator is passed.",
+                "operationId": "v1.message-attempt.list-by-endpoint-deprecated",
+                "parameters": [
+                    {
+                        "description": "Limit the number of returned items",
+                        "in": "query",
+                        "name": "limit",
+                        "schema": {
+                            "description": "Limit the number of returned items",
+                            "format": "uint64",
+                            "minimum": 0,
+                            "type": "integer"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "The iterator returned from a prior invocation",
+                        "in": "query",
+                        "name": "iterator",
+                        "schema": {
+                            "description": "The iterator returned from a prior invocation",
+                            "example": "atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2",
+                            "nullable": true,
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Filter response based on the channel",
+                        "in": "query",
+                        "name": "channel",
+                        "schema": {
+                            "description": "Filter response based on the channel",
+                            "example": "project_1337",
+                            "maxLength": 128,
+                            "nullable": true,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Filter response based on the delivery status",
+                        "in": "query",
+                        "name": "status",
+                        "schema": {
+                            "$ref": "#/components/schemas/MessageStatus",
+                            "description": "Filter response based on the delivery status",
+                            "nullable": true
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Only include items created before a certain date",
+                        "in": "query",
+                        "name": "before",
+                        "schema": {
+                            "description": "Only include items created before a certain date",
+                            "format": "date-time",
+                            "nullable": true,
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Only include items created after a certain date",
+                        "in": "query",
+                        "name": "after",
+                        "schema": {
+                            "description": "Only include items created after a certain date",
+                            "format": "date-time",
+                            "nullable": true,
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "Filter response based on the event type",
+                        "in": "query",
+                        "name": "event_types",
+                        "schema": {
+                            "description": "Filter response based on the event type",
+                            "items": {
+                                "example": "user.signup",
+                                "maxLength": 256,
+                                "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                                "type": "string"
+                            },
+                            "nullable": true,
+                            "type": "array",
+                            "uniqueItems": true
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "msg_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-msg-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "endpoint_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-ep-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/ListResponse_MessageAttemptEndpointOut_"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "List Attempts For Endpoint",
+                "tags": [
+                    "Message Attempt"
+                ]
+            }
+        },
+        "/api/v1/app/{app_id}/msg/{msg_id}/endpoint/{endpoint_id}/resend": {
+            "post": {
+                "description": "Resend a message to the specified endpoint.",
+                "operationId": "v1.message-attempt.resend",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "msg_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-msg-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "in": "path",
+                        "name": "endpoint_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-ep-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "description": "The request's idempotency key",
+                        "in": "header",
+                        "name": "idempotency-key",
+                        "schema": {
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "responses": {
+                    "202": {
+                        "description": "no content"
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Resend Webhook",
+                "tags": [
+                    "Message Attempt"
+                ]
+            }
+        },
+        "/api/v1/auth/app-portal-access/{app_id}": {
+            "post": {
+                "description": "Use this function to get magic links (and authentication codes) for connecting your users to the Consumer Application Portal.",
+                "operationId": "v1.authentication.app-portal-access",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "description": "The request's idempotency key",
+                        "in": "header",
+                        "name": "idempotency-key",
+                        "schema": {
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": "#/components/schemas/AppPortalAccessIn"
+                            }
+                        }
+                    },
+                    "required": true
+                },
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/AppPortalAccessOut"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "App Portal Access",
+                "tags": [
+                    "Authentication"
+                ]
+            }
+        },
+        "/api/v1/auth/dashboard-access/{app_id}": {
+            "post": {
+                "description": "DEPRECATED: Please use `app-portal-access` instead.\n\nUse this function to get magic links (and authentication codes) for connecting your users to the Consumer Application Portal.",
+                "operationId": "v1.authentication.dashboard-access",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "app_id",
+                        "required": true,
+                        "schema": {
+                            "example": "unique-app-identifier",
+                            "maxLength": 256,
+                            "minLength": 1,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    },
+                    {
+                        "description": "The request's idempotency key",
+                        "in": "header",
+                        "name": "idempotency-key",
+                        "schema": {
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/DashboardAccessOut"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Dashboard Access",
+                "tags": [
+                    "Authentication"
+                ]
+            }
+        },
+        "/api/v1/auth/logout": {
+            "post": {
+                "description": "\nLogout an app token.\n\nTrying to log out other tokens will fail.\n",
+                "operationId": "logout_api_v1_auth_logout__post",
+                "parameters": [
+                    {
+                        "description": "The request's idempotency key",
+                        "in": "header",
+                        "name": "idempotency-key",
+                        "schema": {
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "responses": {
+                    "204": {
+                        "description": "no content"
+                    }
+                },
+                "summary": "Logout",
+                "tags": [
+                    "Authentication"
+                ]
+            }
+        },
+        "/api/v1/event-type": {
+            "get": {
+                "description": "Return the list of event types.",
+                "operationId": "v1.event-type.list",
+                "parameters": [
+                    {
+                        "description": "Limit the number of returned items",
+                        "in": "query",
+                        "name": "limit",
+                        "schema": {
+                            "description": "Limit the number of returned items",
+                            "format": "uint64",
+                            "minimum": 0,
+                            "type": "integer"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "The iterator returned from a prior invocation",
+                        "in": "query",
+                        "name": "iterator",
+                        "schema": {
+                            "description": "The iterator returned from a prior invocation",
+                            "example": "user.signup",
+                            "maxLength": 256,
+                            "nullable": true,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "The sorting order of the returned items",
+                        "in": "query",
+                        "name": "order",
+                        "schema": {
+                            "$ref": "#/components/schemas/Ordering",
+                            "description": "The sorting order of the returned items",
+                            "nullable": true
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "When `true` archived (deleted but not expunged) items are included in the response",
+                        "in": "query",
+                        "name": "include_archived",
+                        "schema": {
+                            "default": false,
+                            "description": "When `true` archived (deleted but not expunged) items are included in the response",
+                            "type": "boolean"
+                        },
+                        "style": "form"
+                    },
+                    {
+                        "description": "When `true` the full item (including the schema) is included in the response",
+                        "in": "query",
+                        "name": "with_content",
+                        "schema": {
+                            "default": false,
+                            "description": "When `true` the full item (including the schema) is included in the response",
+                            "type": "boolean"
+                        },
+                        "style": "form"
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/ListResponse_EventTypeOut_"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "List Event Types",
+                "tags": [
+                    "Event Type"
+                ]
+            },
+            "post": {
+                "description": "Create new or unarchive existing event type.\n\nUnarchiving an event type will allow endpoints to filter on it and messages to be sent with it.\nEndpoints filtering on the event type before archival will continue to filter on it.\nThis operation does not preserve the description and schemas.",
+                "operationId": "v1.event-type.create",
+                "parameters": [
+                    {
+                        "description": "The request's idempotency key",
+                        "in": "header",
+                        "name": "idempotency-key",
+                        "schema": {
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": "#/components/schemas/EventTypeIn"
+                            }
+                        }
+                    },
+                    "required": true
+                },
+                "responses": {
+                    "201": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/EventTypeOut"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Create Event Type",
+                "tags": [
+                    "Event Type"
+                ]
+            }
+        },
+        "/api/v1/event-type/schema/generate-example": {
+            "post": {
+                "description": "Generates a fake example from the given JSONSchema",
+                "parameters": [
+                    {
+                        "description": "The request's idempotency key",
+                        "in": "header",
+                        "name": "idempotency-key",
+                        "schema": {
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "responses": {
+                    "204": {
+                        "description": "no content"
+                    }
+                },
+                "tags": [
+                    "Event Type"
+                ]
+            }
+        },
+        "/api/v1/event-type/{event_type_name}": {
+            "delete": {
+                "description": "Archive an event type.\n\nEndpoints already configured to filter on an event type will continue to do so after archival.\nHowever, new messages can not be sent with it and endpoints can not filter on it.\nAn event type can be unarchived with the\n[create operation](#operation/create_event_type_api_v1_event_type__post).",
+                "operationId": "v1.event-type.delete",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "event_type_name",
+                        "required": true,
+                        "schema": {
+                            "example": "user.signup",
+                            "maxLength": 256,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "responses": {
+                    "204": {
+                        "description": "no content"
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Delete Event Type",
+                "tags": [
+                    "Event Type"
+                ]
+            },
+            "get": {
+                "description": "Get an event type.",
+                "operationId": "v1.event-type.get",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "event_type_name",
+                        "required": true,
+                        "schema": {
+                            "example": "user.signup",
+                            "maxLength": 256,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/EventTypeOut"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Get Event Type",
+                "tags": [
+                    "Event Type"
+                ]
+            },
+            "patch": {
+                "description": "Partially update an event type.",
+                "operationId": "patch_event_type",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "event_type_name",
+                        "required": true,
+                        "schema": {
+                            "example": "user.signup",
+                            "maxLength": 256,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": "#/components/schemas/EventTypePatch"
+                            }
+                        }
+                    },
+                    "required": true
+                },
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/EventTypeOut"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Patch Event Type",
+                "tags": [
+                    "Event Type"
+                ]
+            },
+            "put": {
+                "description": "Update an event type.",
+                "operationId": "v1.event-type.update",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "event_type_name",
+                        "required": true,
+                        "schema": {
+                            "example": "user.signup",
+                            "maxLength": 256,
+                            "pattern": "^[a-zA-Z0-9\\-_.]+$",
+                            "type": "string"
+                        },
+                        "style": "simple"
+                    }
+                ],
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": "#/components/schemas/EventTypeUpdate"
+                            }
+                        }
+                    },
+                    "required": true
+                },
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/EventTypeOut"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "201": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/EventTypeOut"
+                                }
+                            }
+                        },
+                        "description": ""
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Update Event Type",
+                "tags": [
+                    "Event Type"
+                ]
+            }
+        },
+        "/api/v1/health": {
+            "get": {
+                "description": "Verify the API server is up and running.",
+                "operationId": "v1.health.get",
+                "responses": {
+                    "204": {
+                        "description": "no content"
+                    },
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Health",
+                "tags": [
+                    "Health"
+                ]
+            },
+            "head": {
+                "description": "Verify the API server is up and running.",
+                "operationId": "v1.health.get",
+                "responses": {
+                    "401": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Unauthorized"
+                    },
+                    "403": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Forbidden"
+                    },
+                    "404": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Not Found"
+                    },
+                    "409": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Conflict"
+                    },
+                    "422": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HTTPValidationError"
+                                }
+                            }
+                        },
+                        "description": "Validation Error"
+                    },
+                    "429": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": "#/components/schemas/HttpErrorOut"
+                                }
+                            }
+                        },
+                        "description": "Too Many Requests"
+                    }
+                },
+                "summary": "Health",
+                "tags": [
+                    "Health"
+                ]
+            }
+        },
+        "/api/v1/health/ping": {
+            "get": {
+                "responses": {
+                    "204": {
+                        "description": "no content"
+                    }
+                }
+            },
+            "head": {
+                "responses": {
+                    "204": {
+                        "description": "no content"
+                    }
+                }
+            }
+        }
+    },
+    "tags": [
+        {
+            "name": "Application"
+        },
+        {
+            "name": "Message"
+        },
+        {
+            "name": "Message Attempt"
+        },
+        {
+            "name": "Endpoint"
+        },
+        {
+            "name": "Integration"
+        },
+        {
+            "name": "Event Type"
+        },
+        {
+            "name": "Authentication"
+        },
+        {
+            "name": "Health"
+        },
+        {
+            "name": "Webhooks"
+        }
+    ],
+    "x-tagGroups": [
+        {
+            "name": "General",
+            "tags": [
+                "Application",
+                "Event Type"
+            ]
+        },
+        {
+            "name": "Application specific",
+            "tags": [
+                "Authentication",
+                "Endpoint",
+                "Message",
+                "Message Attempt",
+                "Integration"
+            ]
+        },
+        {
+            "name": "Utility",
+            "tags": [
+                "Health"
+            ]
+        },
+        {
+            "name": "Webhooks",
+            "tags": [
+                "Webhooks"
+            ]
+        }
+    ],
+    "x-webhooks": {
+        "EndpointCreatedEvent": {
+            "post": {
+                "description": "Sent when an endpoint is created.",
+                "operationId": "EndpointCreatedEvent",
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": "#/components/schemas/EndpointCreatedEvent"
+                            }
+                        }
+                    }
+                },
+                "responses": {
+                    "2XX": {
+                        "description": "Return any 2XX status to indicate that the data was received successfully"
+                    }
+                },
+                "summary": "EndpointCreatedEvent",
+                "tags": [
+                    "Webhooks"
+                ]
+            }
+        },
+        "EndpointDeletedEvent": {
+            "post": {
+                "description": "Sent when an endpoint is deleted.",
+                "operationId": "EndpointDeletedEvent",
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": "#/components/schemas/EndpointDeletedEvent"
+                            }
+                        }
+                    }
+                },
+                "responses": {
+                    "2XX": {
+                        "description": "Return any 2XX status to indicate that the data was received successfully"
+                    }
+                },
+                "summary": "EndpointDeletedEvent",
+                "tags": [
+                    "Webhooks"
+                ]
+            }
+        },
+        "EndpointDisabledEvent": {
+            "post": {
+                "description": "Sent when an endpoint has been automatically disabled after continuous failures.",
+                "operationId": "EndpointDisabledEvent",
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": "#/components/schemas/EndpointDisabledEvent"
+                            }
+                        }
+                    }
+                },
+                "responses": {
+                    "2XX": {
+                        "description": "Return any 2XX status to indicate that the data was received successfully"
+                    }
+                },
+                "summary": "EndpointDisabledEvent",
+                "tags": [
+                    "Webhooks"
+                ]
+            }
+        },
+        "EndpointUpdatedEvent": {
+            "post": {
+                "description": "Sent when an endpoint is updated.",
+                "operationId": "EndpointUpdatedEvent",
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": "#/components/schemas/EndpointUpdatedEvent"
+                            }
+                        }
+                    }
+                },
+                "responses": {
+                    "2XX": {
+                        "description": "Return any 2XX status to indicate that the data was received successfully"
+                    }
+                },
+                "summary": "EndpointUpdatedEvent",
+                "tags": [
+                    "Webhooks"
+                ]
+            }
+        },
+        "MessageAttemptExhaustedEvent": {
+            "post": {
+                "description": "Sent when a message delivery has failed (all of the retry attempts have been exhausted).",
+                "operationId": "MessageAttemptExhaustedEvent",
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": "#/components/schemas/MessageAttemptExhaustedEvent"
+                            }
+                        }
+                    }
+                },
+                "responses": {
+                    "2XX": {
+                        "description": "Return any 2XX status to indicate that the data was received successfully"
+                    }
+                },
+                "summary": "MessageAttemptExhaustedEvent",
+                "tags": [
+                    "Webhooks"
+                ]
+            }
+        },
+        "MessageAttemptFailingEvent": {
+            "post": {
+                "description": "Sent after a message has been failing for a few times.\nIt's sent on the fourth failure. It complements `message.attempt.exhausted` which is sent after the last failure.",
+                "operationId": "MessageAttemptFailingEvent",
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": "#/components/schemas/MessageAttemptFailingEvent"
+                            }
+                        }
+                    }
+                },
+                "responses": {
+                    "2XX": {
+                        "description": "Return any 2XX status to indicate that the data was received successfully"
+                    }
+                },
+                "summary": "MessageAttemptFailingEvent",
+                "tags": [
+                    "Webhooks"
+                ]
+            }
+        },
+        "MessageAttemptRecoveredEvent": {
+            "post": {
+                "description": "Sent on a successful dispatch after an earlier failure op webhook has already been sent.",
+                "operationId": "MessageAttemptRecoveredEvent",
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": "#/components/schemas/MessageAttemptRecoveredEvent"
+                            }
+                        }
+                    }
+                },
+                "responses": {
+                    "2XX": {
+                        "description": "Return any 2XX status to indicate that the data was received successfully"
+                    }
+                },
+                "summary": "MessageAttemptRecoveredEvent",
+                "tags": [
+                    "Webhooks"
+                ]
+            }
+        }
+    }
+}
diff --git a/server/svix-server/src/worker.rs b/server/svix-server/src/worker.rs
index abf26a097..a521a2306 100644
--- a/server/svix-server/src/worker.rs
+++ b/server/svix-server/src/worker.rs
@@ -407,11 +407,19 @@ async fn make_http_call(
 
 #[tracing::instrument(skip_all, fields(response_code, msg_dest_id = msg_dest.id.0))]
 async fn handle_successful_dispatch(
-    WorkerContext { cache, db, .. }: &WorkerContext<'_>,
+    WorkerContext {
+        cache,
+        db,
+        op_webhook_sender,
+        ..
+    }: &WorkerContext<'_>,
     DispatchContext {
         org_id,
         endp,
         app_id,
+        app_uid,
+        msg_task,
+        msg_uid,
         ..
     }: DispatchContext<'_>,
     SuccessfulDispatch(mut attempt): SuccessfulDispatch,
@@ -432,6 +440,28 @@ async fn handle_successful_dispatch(
     tracing::Span::current().record("response_code", attempt.response_status_code);
     tracing::info!("Webhook success.");
 
+    if msg_task.attempt_count as usize >= OP_WEBHOOKS_SEND_FAILING_EVENT_AFTER {
+        if let Err(e) = op_webhook_sender
+            .send_operational_webhook(
+                org_id,
+                OperationalWebhook::MessageAttemptRecovered(MessageAttemptEvent {
+                    app_id: app_id.clone(),
+                    app_uid: app_uid.cloned(),
+                    endpoint_id: msg_task.endpoint_id.clone(),
+                    msg_id: msg_task.msg_id.clone(),
+                    msg_event_id: msg_uid.cloned(),
+                    last_attempt: attempt.into(),
+                }),
+            )
+            .await
+        {
+            tracing::error!(
+                "Failed sending MessageAttemptRecovered Operational Webhook: {}",
+                e
+            );
+        }
+    }
+
     Ok(())
 }
 


Test patch: