{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/goodeye-dev/json-schema/goodeye-dev-deploy-image-generator-input-schema.json",
  "title": "DeployImageGeneratorInput",
  "description": "Payload for ``deploy_image_generator``: create a new image generator or\nappend a new version to an existing one (owner-scoped, name-uniqueness\nwithin owner).",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/goodeye-dev-openapi.json#/components/schemas/DeployImageGeneratorInput",
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 128,
      "minLength": 1,
      "pattern": "^[a-z0-9][a-z0-9-]*$",
      "title": "Name",
      "description": "Image generator name, unique per owner among non-revoked generators. Lowercase letters, digits, and hyphens; no spaces."
    },
    "description": {
      "type": "string",
      "maxLength": 1024,
      "minLength": 1,
      "title": "Description",
      "description": "Short summary of what this image generator produces."
    },
    "provider": {
      "type": "string",
      "const": "fal",
      "title": "Provider",
      "description": "Generation provider backing this image generator.",
      "default": "fal"
    },
    "model": {
      "type": "string",
      "maxLength": 256,
      "minLength": 1,
      "title": "Model",
      "description": "Provider endpoint identifier for the image model (e.g. a slug such as ``provider-org/model-name``). Must resolve to a known image endpoint with an authoritative per-image price."
    },
    "generation_contract": {
      "type": "string",
      "enum": [
        "text_to_image",
        "image_to_image"
      ],
      "title": "Generation Contract",
      "description": "Input shape at generation time. ``text_to_image``: generates an image from a text prompt only. ``image_to_image``: requires a reference image URL in addition to a prompt."
    },
    "default_params": {
      "additionalProperties": true,
      "type": "object",
      "title": "Default Params",
      "description": "Default generation parameters merged with per-call overrides at run time (e.g. image size, safety settings). Callers may override individual keys via ``param_overrides`` on ``generate_image``."
    },
    "expected_version_token": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Expected Version Token",
      "description": "Optimistic-concurrency token. Required when re-deploying an existing generator to confirm you have seen the latest version (get it from ``deploy_image_generator``, ``list_image_generators``, or ``get_image_generator``). Must be omitted on first deploy. Mismatch returns a Conflict with the current token."
    }
  },
  "type": "object",
  "required": [
    "name",
    "description",
    "model",
    "generation_contract"
  ]
}