{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/ironfang/main/json-schema/ironfang-job-delivery-schema.json",
  "title": "JobDelivery",
  "description": "Where this job goes when it finishes, by destination id. Register the\ndestination first; credentials are never sent here.\n\nA webhook fires on success, failure and cancellation. Storage only\ncarries a result, so it fires on success alone - and a storage\ndelivery that gives up raises `render.delivery.failed` on the webhook\ndestination, which is how you find out that a bucket stopped\naccepting uploads.\n",
  "x-generated": "2026-09-28",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/ironfang-batches-api-openapi.yml#/components/schemas/JobDelivery",
  "type": "object",
  "properties": {
    "webhook_destination": {
      "type": "string",
      "description": "Id of a `webhook` destination."
    },
    "storage_destination": {
      "type": "string",
      "description": "Id of an `s3` destination."
    },
    "storage_key": {
      "type": "string",
      "maxLength": 700,
      "description": "The object key, relative to the destination's prefix. Fixed text\nplus `{job_id}`, `{external_id}` and `{date}` (`YYYY/MM/DD`) -\nno other field, and nothing evaluated. Segments may hold letters,\ndigits, dot, dash and underscore; anything that would climb out\nof the prefix is refused when the job is submitted, not quietly\nrewritten. Defaults to `renderwolf/{date}/{job_id}`.\n"
    }
  }
}