{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/ironfang/main/json-schema/ironfang-sign-request-schema.json",
  "title": "SignRequest",
  "x-generated": "2026-09-28",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/ironfang-signed-urls-api-openapi.yml#/components/schemas/SignRequest",
  "type": "object",
  "required": [
    "kind"
  ],
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "screenshot",
        "image"
      ],
      "description": "`screenshot` signs a URL capture and requires `url`; `image` signs a\ntemplate render and requires `template`.\n"
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "Required when `kind` is `screenshot`."
    },
    "template": {
      "type": "string",
      "format": "uuid",
      "description": "Required when `kind` is `image`."
    },
    "vars": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "width": {
      "type": "integer",
      "maximum": 4096
    },
    "height": {
      "type": "integer",
      "maximum": 4096
    },
    "full_page": {
      "type": "boolean",
      "default": false
    },
    "ttl_hours": {
      "type": "integer",
      "default": 0,
      "description": "Hours until the URL expires. `0` never expires."
    }
  }
}