{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/rendobar-com/json-schema/rendobar-com-connector-input-schema.json",
  "title": "ConnectorInput",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/rendobar-com-openapi.json#/components/schemas/ConnectorInput",
  "allOf": [
    {
      "$ref": "#/$defs/ConnectorField"
    },
    {
      "type": "object",
      "properties": {
        "url": {
          "type": "boolean",
          "description": "The value is a URL pointing at a file. A connector can offer a file picker and upload the result, instead of asking for a pasted link."
        },
        "multiple": {
          "type": "boolean",
          "description": "Takes a list of values rather than one."
        }
      }
    }
  ],
  "$defs": {
    "ConnectorField": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string",
          "description": "Unique within this job type. Use as the form field key: `name` repeats when a discriminated union gives one field several shapes."
        },
        "name": {
          "type": "string",
          "description": "Param key to submit under. Not unique, see `key`."
        },
        "label": {
          "type": "string"
        },
        "type": {
          "type": "string",
          "enum": [
            "string",
            "number",
            "boolean",
            "options",
            "json"
          ]
        },
        "required": {
          "type": "boolean"
        },
        "nullable": {
          "type": "boolean"
        },
        "default": {},
        "options": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            },
            "required": [
              "label",
              "value"
            ]
          }
        },
        "min": {
          "type": "number"
        },
        "max": {
          "type": "number"
        },
        "minLength": {
          "type": "number"
        },
        "maxLength": {
          "type": "number"
        },
        "description": {
          "type": "string"
        },
        "order": {
          "type": "number",
          "description": "Render position; fields are already returned in this order"
        },
        "advanced": {
          "type": "boolean",
          "description": "Render behind an Options or Advanced disclosure"
        },
        "showWhen": {
          "type": "object",
          "properties": {
            "field": {
              "type": "string",
              "description": "Name of the discriminator field this visibility depends on"
            },
            "equals": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Shown when the discriminator holds one of these"
            }
          },
          "required": [
            "field",
            "equals"
          ],
          "description": "Present only on a field from one branch of a union. A field with no showWhen is always shown. The same name can appear several times with different conditions when branches declare different bounds."
        }
      },
      "required": [
        "key",
        "name",
        "label",
        "type",
        "required"
      ]
    }
  }
}