{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/certifyos/main/json-schema/certifyos-get-upload-mappings-request-schema.json",
  "title": "GetUploadMappingsRequest",
  "description": "Column headers read from an uploaded roster file, submitted for mapping analysis.",
  "x-generated": "2026-10-20",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/certifyos-roster-upload-api-openapi.yml#/components/schemas/GetUploadMappingsRequest",
  "type": "object",
  "properties": {
    "columns": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Raw column headers exactly as they appear in the uploaded file's header row. Order is preserved in the analysis."
    },
    "jobType": {
      "$ref": "#/$defs/RosterJobType",
      "type": "string",
      "description": "Entity catalogue the headers should be matched against. One of PRACTITIONER, FACILITY, or GROUP."
    },
    "compareAgainstTemplate": {
      "type": "boolean",
      "description": "When true, clears mappedEntity on every returned system field and enables verbose diagnostic logging. Does not change how columns are matched, and the operation stays read-only either way. Defaults to false.",
      "default": false
    }
  },
  "$defs": {
    "RosterJobType": {
      "type": "string",
      "enum": [
        "PRACTITIONER",
        "FACILITY",
        "GROUP"
      ]
    }
  }
}