{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/azure-ai-foundry/json-schema/azure-ai-foundry-document-model-details-schema.json",
  "title": "DocumentModelDetails",
  "description": "Document model info.",
  "x-generated": "2026-11-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/azure-ai-foundry-document-models-api-openapi.yml#/components/schemas/DocumentModelDetails",
  "type": "object",
  "properties": {
    "modelId": {
      "type": "string",
      "description": "Unique document model name.",
      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._~-]{1,63}$",
      "x-ms-mutability": [
        "read",
        "create"
      ]
    },
    "description": {
      "type": "string",
      "description": "Document model description.",
      "maxLength": 4096
    },
    "createdDateTime": {
      "type": "string",
      "format": "date-time",
      "description": "Date and time (UTC) when the document model was created.",
      "readOnly": true
    },
    "expirationDateTime": {
      "type": "string",
      "format": "date-time",
      "description": "Date and time (UTC) when the document model will expire.",
      "readOnly": true
    },
    "modifiedDateTime": {
      "type": "string",
      "format": "date-time",
      "description": "Date and time (UTC) when the document model was last modified.",
      "readOnly": true
    },
    "apiVersion": {
      "type": "string",
      "description": "API version used to create this document model.",
      "readOnly": true
    },
    "tags": {
      "type": "object",
      "description": "List of key-value tag attributes associated with the document model.",
      "additionalProperties": {
        "type": "string"
      }
    },
    "buildMode": {
      "$ref": "#/$defs/DocumentBuildMode",
      "description": "Custom document model build mode.",
      "readOnly": true
    },
    "azureBlobSource": {
      "$ref": "#/$defs/AzureBlobContentSource",
      "description": "Azure Blob Storage location containing the training data.  Either\nazureBlobSource or azureBlobFileListSource must be specified.",
      "readOnly": true
    },
    "azureBlobFileListSource": {
      "$ref": "#/$defs/AzureBlobFileListContentSource",
      "description": "Azure Blob Storage file list specifying the training data.  Either\nazureBlobSource or azureBlobFileListSource must be specified.",
      "readOnly": true
    },
    "classifierId": {
      "type": "string",
      "description": "For composed models, the custom classifier to split and classify the input file."
    },
    "split": {
      "type": "string",
      "description": "For composed models, the file splitting behavior.",
      "default": "none",
      "enum": [
        "auto",
        "none",
        "perPage"
      ],
      "x-ms-enum": {
        "name": "SplitMode",
        "modelAsString": true,
        "values": [
          {
            "name": "auto",
            "value": "auto",
            "description": "Automatically split file into documents."
          },
          {
            "name": "none",
            "value": "none",
            "description": "Treat the entire file as a single document."
          },
          {
            "name": "perPage",
            "value": "perPage",
            "description": "Treat each page in the file as a separate document."
          }
        ]
      }
    },
    "docTypes": {
      "type": "object",
      "description": "Supported document types.",
      "additionalProperties": {
        "$ref": "#/$defs/DocumentTypeDetails"
      },
      "readOnly": true
    },
    "warnings": {
      "type": "array",
      "description": "List of warnings encountered while building the model.",
      "items": {
        "$ref": "#/$defs/DocumentIntelligenceWarning"
      },
      "readOnly": true
    },
    "trainingHours": {
      "type": "number",
      "format": "float",
      "description": "Number of V100-equivalent GPU hours consumed for model training.",
      "readOnly": true
    }
  },
  "required": [
    "modelId",
    "createdDateTime"
  ],
  "$defs": {
    "AzureBlobContentSource": {
      "type": "object",
      "description": "Azure Blob Storage content.",
      "properties": {
        "containerUrl": {
          "type": "string",
          "format": "uri",
          "description": "Azure Blob Storage container URL."
        },
        "prefix": {
          "type": "string",
          "description": "Blob name prefix."
        }
      },
      "required": [
        "containerUrl"
      ]
    },
    "AzureBlobFileListContentSource": {
      "type": "object",
      "description": "File list in Azure Blob Storage.",
      "properties": {
        "containerUrl": {
          "type": "string",
          "format": "uri",
          "description": "Azure Blob Storage container URL."
        },
        "fileList": {
          "type": "string",
          "description": "Path to a JSONL file within the container specifying a subset of documents."
        }
      },
      "required": [
        "containerUrl",
        "fileList"
      ]
    },
    "DocumentAnalysisFeature": {
      "type": "string",
      "description": "Document analysis features to enable.",
      "enum": [
        "ocrHighResolution",
        "languages",
        "barcodes",
        "formulas",
        "keyValuePairs",
        "styleFont",
        "queryFields"
      ],
      "x-ms-enum": {
        "name": "DocumentAnalysisFeature",
        "modelAsString": true,
        "values": [
          {
            "name": "ocrHighResolution",
            "value": "ocrHighResolution",
            "description": "Perform OCR at a higher resolution to handle documents with fine print."
          },
          {
            "name": "languages",
            "value": "languages",
            "description": "Enable the detection of the text content language."
          },
          {
            "name": "barcodes",
            "value": "barcodes",
            "description": "Enable the detection of barcodes in the document."
          },
          {
            "name": "formulas",
            "value": "formulas",
            "description": "Enable the detection of mathematical expressions in the document."
          },
          {
            "name": "keyValuePairs",
            "value": "keyValuePairs",
            "description": "Enable the detection of general key value pairs (form fields) in the document."
          },
          {
            "name": "styleFont",
            "value": "styleFont",
            "description": "Enable the recognition of various font styles."
          },
          {
            "name": "queryFields",
            "value": "queryFields",
            "description": "Enable the extraction of additional fields via the queryFields query parameter."
          }
        ]
      }
    },
    "DocumentBuildMode": {
      "type": "string",
      "description": "Custom document model build mode.",
      "enum": [
        "template",
        "neural"
      ],
      "x-ms-enum": {
        "name": "DocumentBuildMode",
        "modelAsString": true,
        "values": [
          {
            "name": "template",
            "value": "template",
            "description": "Target documents with similar visual templates."
          },
          {
            "name": "neural",
            "value": "neural",
            "description": "Support documents with diverse visual templates."
          }
        ]
      }
    },
    "DocumentFieldSchema": {
      "type": "object",
      "description": "Description of the field semantic schema using a JSON Schema style syntax.",
      "properties": {
        "type": {
          "$ref": "#/$defs/DocumentFieldType",
          "description": "Semantic data type of the field value."
        },
        "description": {
          "type": "string",
          "description": "Field description.",
          "maxLength": 4096
        },
        "items": {
          "$ref": "#/$defs/DocumentFieldSchema",
          "description": "Field type schema of each array element."
        },
        "properties": {
          "type": "object",
          "description": "Named sub-fields of the object field.",
          "additionalProperties": {
            "$ref": "#/$defs/DocumentFieldSchema"
          }
        }
      },
      "required": [
        "type"
      ]
    },
    "DocumentFieldType": {
      "type": "string",
      "description": "Semantic data type of the field value.",
      "enum": [
        "string",
        "date",
        "time",
        "phoneNumber",
        "number",
        "integer",
        "selectionMark",
        "countryRegion",
        "signature",
        "array",
        "object",
        "currency",
        "address",
        "boolean",
        "selectionGroup"
      ],
      "x-ms-enum": {
        "name": "DocumentFieldType",
        "modelAsString": true,
        "values": [
          {
            "name": "string",
            "value": "string",
            "description": "Plain text."
          },
          {
            "name": "date",
            "value": "date",
            "description": "Date, normalized to ISO 8601 (YYYY-MM-DD) format."
          },
          {
            "name": "time",
            "value": "time",
            "description": "Time, normalized to ISO 8601 (hh:mm:ss) format."
          },
          {
            "name": "phoneNumber",
            "value": "phoneNumber",
            "description": "Phone number, normalized to E.164 (+{CountryCode}{SubscriberNumber}) format."
          },
          {
            "name": "number",
            "value": "number",
            "description": "Floating point number, normalized to double precision floating point."
          },
          {
            "name": "integer",
            "value": "integer",
            "description": "Integer number, normalized to 64-bit signed integer."
          },
          {
            "name": "selectionMark",
            "value": "selectionMark",
            "description": "Is field selected?"
          },
          {
            "name": "countryRegion",
            "value": "countryRegion",
            "description": "Country/region, normalized to ISO 3166-1 alpha-3 format (ex. USA)."
          },
          {
            "name": "signature",
            "value": "signature",
            "description": "Is signature present?"
          },
          {
            "name": "array",
            "value": "array",
            "description": "List of subfields of the same type."
          },
          {
            "name": "object",
            "value": "object",
            "description": "Named list of subfields of potentially different types."
          },
          {
            "name": "currency",
            "value": "currency",
            "description": "Currency amount with optional currency symbol and unit."
          },
          {
            "name": "address",
            "value": "address",
            "description": "Parsed address."
          },
          {
            "name": "boolean",
            "value": "boolean",
            "description": "Boolean value, normalized to true or false."
          },
          {
            "name": "selectionGroup",
            "value": "selectionGroup",
            "description": "Array of selected string values."
          }
        ]
      }
    },
    "DocumentIntelligenceWarning": {
      "type": "object",
      "description": "The error object.",
      "properties": {
        "code": {
          "type": "string",
          "description": "One of a server-defined set of warning codes."
        },
        "message": {
          "type": "string",
          "description": "A human-readable representation of the warning."
        },
        "target": {
          "type": "string",
          "description": "The target of the error."
        }
      },
      "required": [
        "code",
        "message"
      ]
    },
    "DocumentTypeDetails": {
      "type": "object",
      "description": "Document type info.",
      "properties": {
        "description": {
          "type": "string",
          "description": "Document model description.",
          "maxLength": 4096
        },
        "buildMode": {
          "$ref": "#/$defs/DocumentBuildMode",
          "description": "Custom document model build mode."
        },
        "fieldSchema": {
          "type": "object",
          "description": "Description of the document semantic schema using a JSON Schema style syntax.",
          "additionalProperties": {
            "$ref": "#/$defs/DocumentFieldSchema"
          }
        },
        "fieldConfidence": {
          "type": "object",
          "description": "Estimated confidence for each field.",
          "additionalProperties": {
            "format": "float",
            "type": "number"
          }
        },
        "modelId": {
          "type": "string",
          "description": "Document model to use for analyzing documents with specified type.",
          "maxLength": 64,
          "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._~-]{1,63}$"
        },
        "confidenceThreshold": {
          "type": "number",
          "format": "float",
          "description": "Only perform analysis if docType confidence is above threshold."
        },
        "features": {
          "type": "array",
          "description": "List of optional analysis features.",
          "items": {
            "$ref": "#/$defs/DocumentAnalysisFeature"
          }
        },
        "queryFields": {
          "type": "array",
          "description": "List of additional fields to extract.  Ex. \"NumberOfGuests,StoreNumber\"",
          "items": {
            "type": "string"
          }
        },
        "maxDocumentsToAnalyze": {
          "type": "integer",
          "format": "int32",
          "description": "Maximum number of documents of specified type to analyze.  Default=all."
        }
      }
    }
  }
}