{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/videogen-io/json-schema/videogen-io-webhook-endpoint-schema.json",
  "title": "WebhookEndpoint",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/videogen-io-webhooks-api-openapi.yml#/components/schemas/WebhookEndpoint",
  "type": "object",
  "required": [
    "endpointId",
    "url",
    "events",
    "createdAt"
  ],
  "properties": {
    "endpointId": {
      "type": "string",
      "description": "Webhook endpoint id (e.g. `ep_...`)."
    },
    "url": {
      "type": "string",
      "format": "uri"
    },
    "events": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/WebhookEventName"
      }
    },
    "description": {
      "type": [
        "string",
        "null"
      ]
    },
    "createdAt": {
      "type": "integer",
      "description": "Seconds since epoch (Unix timestamp) when the endpoint was created."
    },
    "signingSecret": {
      "type": "string",
      "description": "HMAC secret for verifying [Standard Webhooks](https://www.standardwebhooks.com/) signatures. Only returned once on create; store it securely."
    },
    "signingSecretLast4": {
      "type": "string",
      "description": "Last four characters of the signing secret, for display purposes."
    }
  },
  "$defs": {
    "WebhookEventName": {
      "type": "string",
      "description": "All webhook event types. Use when creating or listing webhook endpoints.",
      "enum": [
        "tool_execution.succeeded",
        "tool_execution.failed",
        "tool_execution.cancelled",
        "workflow_run.succeeded",
        "workflow_run.failed",
        "workflow_run.cancelled",
        "project_export.succeeded",
        "project_export.failed",
        "project_export.cancelled",
        "assistant_message.succeeded",
        "assistant_message.failed",
        "assistant_message.cancelled",
        "file.upload.completed",
        "file.upload.failed",
        "file.playback_ready",
        "file.download_ready",
        "file.analysis_completed",
        "file.analysis_failed"
      ]
    }
  }
}