{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/fleetkeep-co-uk/json-schema/fleetkeep-co-uk-spreadsheet-payload-schema.json",
  "title": "SpreadsheetPayload",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/fleetkeep-co-uk-imports-api-openapi.yml#/components/schemas/SpreadsheetPayload",
  "oneOf": [
    {
      "type": "object",
      "required": [
        "sourceName",
        "csv"
      ],
      "properties": {
        "sourceName": {
          "type": "string",
          "pattern": "^.*\\.[cC][sS][vV]$",
          "maxLength": 160
        },
        "csv": {
          "type": "string",
          "maxLength": 262144
        },
        "selectedRows": {
          "type": "array",
          "minItems": 1,
          "maxItems": 1000,
          "uniqueItems": true,
          "items": {
            "type": "integer",
            "minimum": 0,
            "maximum": 999
          },
          "description": "Original zero-based data-row indices, excluding the header. Omission selects all rows. Repeat the same selection on preview and apply."
        }
      }
    },
    {
      "type": "object",
      "required": [
        "sourceName",
        "contentBase64"
      ],
      "properties": {
        "sourceName": {
          "type": "string",
          "pattern": "^.*\\.[xX][lL][sS][xX]$",
          "maxLength": 160
        },
        "contentBase64": {
          "type": "string",
          "contentEncoding": "base64"
        },
        "selectedRows": {
          "type": "array",
          "minItems": 1,
          "maxItems": 1000,
          "uniqueItems": true,
          "items": {
            "type": "integer",
            "minimum": 0,
            "maximum": 999
          },
          "description": "Original zero-based data-row indices, excluding the header. Omission selects all rows. Repeat the same selection on preview and apply."
        }
      }
    }
  ]
}