Rust
Webhooks
Webhook apps, endpoints, deliveries, analytics, and replay APIs.
Validated route domains:
/webhooks/apps*/webhooks/event-catalogs*/webhooks/apps/{app_slug}/endpoints*/webhooks/apps/{app_slug}/deliveries*/webhooks/apps/{app_slug}/analytics/webhooks/apps/{app_slug}/timeseries/webhooks/endpoints/{endpoint_id}/reactivate
Rust API surfaces:
client.webhooks().list_webhook_apps()client.webhooks().get_webhook_app(app_slug)client.webhooks().create_webhook_app(name)client.webhooks().update_webhook_app(app_slug)client.webhooks().delete_webhook_app(app_slug)client.webhooks().rotate_webhook_secret(app_slug)client.webhooks().list_webhook_event_catalogs()client.webhooks().create_webhook_event_catalog(request)client.webhooks().append_webhook_event_catalog_events(slug, request)client.webhooks().archive_webhook_event_in_catalog(slug, request)client.webhooks().list_webhook_endpoints(app_slug)client.webhooks().create_webhook_endpoint(app_slug, url)client.webhooks().update_webhook_endpoint(app_slug, endpoint_id)client.webhooks().delete_webhook_endpoint(app_slug, endpoint_id)client.webhooks().trigger_webhook_event(app_slug, event_name, payload)client.webhooks().list_webhook_deliveries(app_slug)client.webhooks().replay_webhook_deliveries(app_slug)client.webhooks().list_webhook_replay_tasks(app_slug)client.webhooks().get_webhook_replay_task_status(app_slug, task_id)client.webhooks().cancel_webhook_replay_task(app_slug, task_id)client.webhooks().reactivate_webhook_endpoint(endpoint_id)client.webhooks().test_webhook_endpoint(app_slug, endpoint_id, event_name)client.webhooks().get_webhook_analytics(app_slug)client.webhooks().get_webhook_stats(app_slug)client.webhooks().get_webhook_timeseries(app_slug, interval)
Rust example:
use wacht_rs::{Result, WachtClient};
pub async fn webhook_example(client: &WachtClient) -> Result<()> {
let _catalog = client
.webhooks()
.append_webhook_event_catalog_events(
"core-events",
wacht_rs::api::webhooks::AppendWebhookEventCatalogEventsRequest {
events: vec![wacht_rs::api::webhooks::WebhookEventDefinition {
name: "user.created".to_string(),
description: "User created event".to_string(),
group: Some("users".to_string()),
schema: Some(serde_json::json!({ "type": "object" })),
example_payload: Some(serde_json::json!({ "user_id": "user_123" })),
is_archived: Some(false),
}],
},
)
.send()
.await?;
let _replay_status = client
.webhooks()
.get_webhook_replay_task_status("app_slug", "task_id")
.send()
.await?;
Ok(())
}