{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/imagestep-dev/json-schema/imagestep-dev-endpoint-request-schema.json",
  "title": "EndpointRequest",
  "description": "Webhook endpoint create/update payload",
  "x-generated": "2026-11-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/imagestep-dev-openapi.json#/components/schemas/EndpointRequest",
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Where to POST events: an `https://` URL on port 443 whose host resolves to a public address. Required on create; on update, send it only to change it.",
      "maxLength": 2000,
      "minLength": 0
    },
    "events": {
      "type": "array",
      "description": "Event types to receive. Omit it, or send `[]`, for every job-level event (`job.completed`, `job.failed`); the per-item events (`job.item.completed`, `job.item.failed`) are opt-in, because a 500-item job would otherwise be 500 deliveries nobody asked for. Any other value is `400 invalid_param`.",
      "items": {
        "type": "string",
        "enum": [
          "job.completed",
          "job.failed",
          "job.item.completed",
          "job.item.failed"
        ]
      }
    },
    "description": {
      "type": "string",
      "description": "Free-text label shown in listings",
      "maxLength": 255,
      "minLength": 0
    },
    "enabled": {
      "type": "boolean",
      "description": "Update only — ignored on create, where an endpoint starts enabled. `false` pauses deliveries; `true` resumes them and clears an automatic disable."
    }
  }
}