{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/azure-ai-foundry/json-schema/azure-ai-foundry-analyze-operation-schema.json",
  "title": "AnalyzeOperation",
  "description": "Status and result of the analyze operation.",
  "x-generated": "2026-11-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/azure-ai-foundry-document-classifiers-api-openapi.yml#/components/schemas/AnalyzeOperation",
  "type": "object",
  "properties": {
    "status": {
      "$ref": "#/$defs/DocumentIntelligenceOperationStatus",
      "description": "Operation status.  notStarted, running, succeeded, or failed"
    },
    "createdDateTime": {
      "type": "string",
      "format": "date-time",
      "description": "Date and time (UTC) when the analyze operation was submitted."
    },
    "lastUpdatedDateTime": {
      "type": "string",
      "format": "date-time",
      "description": "Date and time (UTC) when the status was last updated."
    },
    "error": {
      "$ref": "#/$defs/DocumentIntelligenceError",
      "description": "Encountered error during document analysis."
    },
    "analyzeResult": {
      "$ref": "#/$defs/AnalyzeResult",
      "description": "Document analysis result."
    }
  },
  "required": [
    "status",
    "createdDateTime",
    "lastUpdatedDateTime"
  ],
  "$defs": {
    "AddressValue": {
      "type": "object",
      "description": "Address field value.",
      "properties": {
        "houseNumber": {
          "type": "string",
          "description": "House or building number."
        },
        "poBox": {
          "type": "string",
          "description": "Post office box number."
        },
        "road": {
          "type": "string",
          "description": "Street name."
        },
        "city": {
          "type": "string",
          "description": "Name of city, town, village, etc."
        },
        "state": {
          "type": "string",
          "description": "First-level administrative division."
        },
        "postalCode": {
          "type": "string",
          "description": "Postal code used for mail sorting."
        },
        "countryRegion": {
          "type": "string",
          "description": "Country/region."
        },
        "streetAddress": {
          "type": "string",
          "description": "Street-level address, excluding city, state, countryRegion, and postalCode."
        },
        "unit": {
          "type": "string",
          "description": "Apartment or office number"
        },
        "cityDistrict": {
          "type": "string",
          "description": "Districts or boroughs within a city, such as Brooklyn in New York City or City\nof Westminster in London."
        },
        "stateDistrict": {
          "type": "string",
          "description": "Second-level administrative division used in certain locales."
        },
        "suburb": {
          "type": "string",
          "description": "Unofficial neighborhood name, like Chinatown."
        },
        "house": {
          "type": "string",
          "description": "Build name, such as World Trade Center."
        },
        "level": {
          "type": "string",
          "description": "Floor number, such as 3F."
        }
      }
    },
    "AnalyzeResult": {
      "type": "object",
      "description": "Document analysis result.",
      "properties": {
        "apiVersion": {
          "type": "string",
          "description": "API version used to produce this result."
        },
        "modelId": {
          "type": "string",
          "description": "Document model ID used to produce this result.",
          "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._~-]{1,63}$"
        },
        "stringIndexType": {
          "$ref": "#/$defs/StringIndexType",
          "description": "Method used to compute string offset and length."
        },
        "contentFormat": {
          "$ref": "#/$defs/DocumentContentFormat",
          "description": "Format of the analyze result top-level content."
        },
        "content": {
          "type": "string",
          "description": "Concatenate string representation of all textual and visual elements in reading\norder."
        },
        "pages": {
          "type": "array",
          "description": "Analyzed pages.",
          "items": {
            "$ref": "#/$defs/DocumentPage"
          }
        },
        "paragraphs": {
          "type": "array",
          "description": "Extracted paragraphs.",
          "items": {
            "$ref": "#/$defs/DocumentParagraph"
          }
        },
        "tables": {
          "type": "array",
          "description": "Extracted tables.",
          "items": {
            "$ref": "#/$defs/DocumentTable"
          }
        },
        "figures": {
          "type": "array",
          "description": "Extracted figures.",
          "items": {
            "$ref": "#/$defs/DocumentFigure"
          }
        },
        "sections": {
          "type": "array",
          "description": "Extracted sections.",
          "items": {
            "$ref": "#/$defs/DocumentSection"
          }
        },
        "keyValuePairs": {
          "type": "array",
          "description": "Extracted key-value pairs.",
          "items": {
            "$ref": "#/$defs/DocumentKeyValuePair"
          }
        },
        "styles": {
          "type": "array",
          "description": "Extracted font styles.",
          "items": {
            "$ref": "#/$defs/DocumentStyle"
          }
        },
        "languages": {
          "type": "array",
          "description": "Detected languages.",
          "items": {
            "$ref": "#/$defs/DocumentLanguage"
          }
        },
        "documents": {
          "type": "array",
          "description": "Extracted documents.",
          "items": {
            "$ref": "#/$defs/AnalyzedDocument"
          }
        },
        "warnings": {
          "type": "array",
          "description": "List of warnings encountered.",
          "items": {
            "$ref": "#/$defs/DocumentIntelligenceWarning"
          }
        }
      },
      "required": [
        "apiVersion",
        "modelId",
        "stringIndexType",
        "content",
        "pages"
      ]
    },
    "AnalyzedDocument": {
      "type": "object",
      "description": "An object describing the location and semantic content of a document.",
      "properties": {
        "docType": {
          "type": "string",
          "description": "Document type.",
          "minLength": 2,
          "maxLength": 64
        },
        "boundingRegions": {
          "type": "array",
          "description": "Bounding regions covering the document.",
          "items": {
            "$ref": "#/$defs/BoundingRegion"
          }
        },
        "spans": {
          "type": "array",
          "description": "Location of the document in the reading order concatenated content.",
          "items": {
            "$ref": "#/$defs/DocumentSpan"
          }
        },
        "fields": {
          "type": "object",
          "description": "Dictionary of named field values.",
          "additionalProperties": {
            "$ref": "#/$defs/DocumentField"
          }
        },
        "confidence": {
          "type": "number",
          "format": "float",
          "description": "Confidence of correctly extracting the document.",
          "minimum": 0,
          "maximum": 1
        }
      },
      "required": [
        "docType",
        "spans",
        "confidence"
      ]
    },
    "BoundingRegion": {
      "type": "object",
      "description": "Bounding polygon on a specific page of the input.",
      "properties": {
        "pageNumber": {
          "type": "integer",
          "format": "int32",
          "description": "1-based page number of page containing the bounding region.",
          "minimum": 1
        },
        "polygon": {
          "type": "array",
          "description": "Bounding polygon on the page, or the entire page if not specified.\nCoordinates specified relative to the top-left of the page. The numbers\nrepresent the x, y values of the polygon vertices, clockwise from the left\n(-180 degrees inclusive) relative to the element orientation.",
          "items": {
            "type": "number",
            "format": "float"
          }
        }
      },
      "required": [
        "pageNumber",
        "polygon"
      ]
    },
    "CurrencyValue": {
      "type": "object",
      "description": "Currency field value.",
      "properties": {
        "amount": {
          "type": "number",
          "format": "double",
          "description": "Currency amount."
        },
        "currencySymbol": {
          "type": "string",
          "description": "Currency symbol label, if any."
        },
        "currencyCode": {
          "type": "string",
          "description": "Resolved currency code (ISO 4217), if any."
        }
      },
      "required": [
        "amount"
      ]
    },
    "DocumentBarcode": {
      "type": "object",
      "description": "A barcode object.",
      "properties": {
        "kind": {
          "$ref": "#/$defs/DocumentBarcodeKind",
          "description": "Barcode kind."
        },
        "value": {
          "type": "string",
          "description": "Barcode value."
        },
        "polygon": {
          "type": "array",
          "description": "Bounding polygon of the barcode, with coordinates specified relative to the\ntop-left of the page. The numbers represent the x, y values of the polygon\nvertices, clockwise from the left (-180 degrees inclusive) relative to the\nelement orientation.",
          "items": {
            "type": "number",
            "format": "float"
          }
        },
        "span": {
          "$ref": "#/$defs/DocumentSpan",
          "description": "Location of the barcode in the reading order concatenated content."
        },
        "confidence": {
          "type": "number",
          "format": "float",
          "description": "Confidence of correctly extracting the barcode.",
          "minimum": 0,
          "maximum": 1
        }
      },
      "required": [
        "kind",
        "value",
        "span",
        "confidence"
      ]
    },
    "DocumentBarcodeKind": {
      "type": "string",
      "description": "Barcode kind.",
      "enum": [
        "QRCode",
        "PDF417",
        "UPCA",
        "UPCE",
        "Code39",
        "Code128",
        "EAN8",
        "EAN13",
        "DataBar",
        "Code93",
        "Codabar",
        "DataBarExpanded",
        "ITF",
        "MicroQRCode",
        "Aztec",
        "DataMatrix",
        "MaxiCode"
      ],
      "x-ms-enum": {
        "name": "DocumentBarcodeKind",
        "modelAsString": true,
        "values": [
          {
            "name": "QRCode",
            "value": "QRCode",
            "description": "QR code, as defined in ISO/IEC 18004:2015."
          },
          {
            "name": "PDF417",
            "value": "PDF417",
            "description": "PDF417, as defined in ISO 15438."
          },
          {
            "name": "UPCA",
            "value": "UPCA",
            "description": "GS1 12-digit Universal Product Code."
          },
          {
            "name": "UPCE",
            "value": "UPCE",
            "description": "GS1 6-digit Universal Product Code."
          },
          {
            "name": "Code39",
            "value": "Code39",
            "description": "Code 39 barcode, as defined in ISO/IEC 16388:2007."
          },
          {
            "name": "Code128",
            "value": "Code128",
            "description": "Code 128 barcode, as defined in ISO/IEC 15417:2007."
          },
          {
            "name": "EAN8",
            "value": "EAN8",
            "description": "GS1 8-digit International Article Number (European Article Number)."
          },
          {
            "name": "EAN13",
            "value": "EAN13",
            "description": "GS1 13-digit International Article Number (European Article Number)."
          },
          {
            "name": "DataBar",
            "value": "DataBar",
            "description": "GS1 DataBar barcode."
          },
          {
            "name": "Code93",
            "value": "Code93",
            "description": "Code 93 barcode, as defined in ANSI/AIM BC5-1995."
          },
          {
            "name": "Codabar",
            "value": "Codabar",
            "description": "Codabar barcode, as defined in ANSI/AIM BC3-1995."
          },
          {
            "name": "DataBarExpanded",
            "value": "DataBarExpanded",
            "description": "GS1 DataBar Expanded barcode."
          },
          {
            "name": "ITF",
            "value": "ITF",
            "description": "Interleaved 2 of 5 barcode, as defined in ANSI/AIM BC2-1995."
          },
          {
            "name": "MicroQRCode",
            "value": "MicroQRCode",
            "description": "Micro QR code, as defined in ISO/IEC 23941:2022."
          },
          {
            "name": "Aztec",
            "value": "Aztec",
            "description": "Aztec code, as defined in ISO/IEC 24778:2008."
          },
          {
            "name": "DataMatrix",
            "value": "DataMatrix",
            "description": "Data matrix code, as defined in ISO/IEC 16022:2006."
          },
          {
            "name": "MaxiCode",
            "value": "MaxiCode",
            "description": "MaxiCode, as defined in ISO/IEC 16023:2000."
          }
        ]
      }
    },
    "DocumentCaption": {
      "type": "object",
      "description": "A caption object describing a table or figure.",
      "properties": {
        "content": {
          "type": "string",
          "description": "Content of the caption."
        },
        "boundingRegions": {
          "type": "array",
          "description": "Bounding regions covering the caption.",
          "items": {
            "$ref": "#/$defs/BoundingRegion"
          }
        },
        "spans": {
          "type": "array",
          "description": "Location of the caption in the reading order concatenated content.",
          "items": {
            "$ref": "#/$defs/DocumentSpan"
          }
        },
        "elements": {
          "type": "array",
          "description": "Child elements of the caption.",
          "items": {
            "$ref": "#/$defs/DocumentElement"
          }
        }
      },
      "required": [
        "content",
        "spans"
      ]
    },
    "DocumentContentFormat": {
      "type": "string",
      "description": "Format of the content in analyzed result.",
      "enum": [
        "text",
        "markdown"
      ],
      "x-ms-enum": {
        "name": "DocumentContentFormat",
        "modelAsString": true,
        "values": [
          {
            "name": "text",
            "value": "text",
            "description": "Plain text representation of the document content without any formatting."
          },
          {
            "name": "markdown",
            "value": "markdown",
            "description": "Markdown representation of the document content with section headings, tables,\netc."
          }
        ]
      }
    },
    "DocumentElement": {
      "type": "string",
      "description": "An JSON pointer referencing an element of the document, such as paragraph,\ntable, section, etc."
    },
    "DocumentField": {
      "type": "object",
      "description": "An object representing the content and location of a field value.",
      "properties": {
        "type": {
          "$ref": "#/$defs/DocumentFieldType",
          "description": "Data type of the field value."
        },
        "valueString": {
          "type": "string",
          "description": "String value."
        },
        "valueDate": {
          "type": "string",
          "format": "date",
          "description": "Date value in YYYY-MM-DD format (ISO 8601)."
        },
        "valueTime": {
          "type": "string",
          "format": "time",
          "description": "Time value in hh:mm:ss format (ISO 8601)."
        },
        "valuePhoneNumber": {
          "type": "string",
          "description": "Phone number value in E.164 format (ex. +19876543210)."
        },
        "valueNumber": {
          "type": "number",
          "format": "double",
          "description": "Floating point value."
        },
        "valueInteger": {
          "type": "integer",
          "format": "int64",
          "description": "Integer value."
        },
        "valueSelectionMark": {
          "$ref": "#/$defs/DocumentSelectionMarkState",
          "description": "Selection mark value."
        },
        "valueSignature": {
          "$ref": "#/$defs/DocumentSignatureType",
          "description": "Presence of signature."
        },
        "valueCountryRegion": {
          "type": "string",
          "description": "3-letter country code value (ISO 3166-1 alpha-3)."
        },
        "valueArray": {
          "type": "array",
          "description": "Array of field values.",
          "items": {
            "$ref": "#/$defs/DocumentField"
          }
        },
        "valueObject": {
          "type": "object",
          "description": "Dictionary of named field values.",
          "additionalProperties": {
            "$ref": "#/$defs/DocumentField"
          }
        },
        "valueCurrency": {
          "$ref": "#/$defs/CurrencyValue",
          "description": "Currency value."
        },
        "valueAddress": {
          "$ref": "#/$defs/AddressValue",
          "description": "Address value."
        },
        "valueBoolean": {
          "type": "boolean",
          "description": "Boolean value."
        },
        "valueSelectionGroup": {
          "type": "array",
          "description": "Selection group value.",
          "items": {
            "type": "string"
          }
        },
        "content": {
          "type": "string",
          "description": "Field content."
        },
        "boundingRegions": {
          "type": "array",
          "description": "Bounding regions covering the field.",
          "items": {
            "$ref": "#/$defs/BoundingRegion"
          }
        },
        "spans": {
          "type": "array",
          "description": "Location of the field in the reading order concatenated content.",
          "items": {
            "$ref": "#/$defs/DocumentSpan"
          }
        },
        "confidence": {
          "type": "number",
          "format": "float",
          "description": "Confidence of correctly extracting the field.",
          "minimum": 0,
          "maximum": 1
        }
      },
      "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."
          }
        ]
      }
    },
    "DocumentFigure": {
      "type": "object",
      "description": "An object representing a figure in the document.",
      "properties": {
        "boundingRegions": {
          "type": "array",
          "description": "Bounding regions covering the figure.",
          "items": {
            "$ref": "#/$defs/BoundingRegion"
          }
        },
        "spans": {
          "type": "array",
          "description": "Location of the figure in the reading order concatenated content.",
          "items": {
            "$ref": "#/$defs/DocumentSpan"
          }
        },
        "elements": {
          "type": "array",
          "description": "Child elements of the figure, excluding any caption or footnotes.",
          "items": {
            "$ref": "#/$defs/DocumentElement"
          }
        },
        "caption": {
          "$ref": "#/$defs/DocumentCaption",
          "description": "Caption associated with the figure."
        },
        "footnotes": {
          "type": "array",
          "description": "List of footnotes associated with the figure.",
          "items": {
            "$ref": "#/$defs/DocumentFootnote"
          }
        },
        "id": {
          "type": "string",
          "description": "Figure ID."
        }
      },
      "required": [
        "spans"
      ]
    },
    "DocumentFontStyle": {
      "type": "string",
      "description": "Font style.",
      "enum": [
        "normal",
        "italic"
      ],
      "x-ms-enum": {
        "name": "DocumentFontStyle",
        "modelAsString": true,
        "values": [
          {
            "name": "normal",
            "value": "normal",
            "description": "Characters are represented normally."
          },
          {
            "name": "italic",
            "value": "italic",
            "description": "Characters are visually slanted to the right."
          }
        ]
      }
    },
    "DocumentFontWeight": {
      "type": "string",
      "description": "Font weight.",
      "enum": [
        "normal",
        "bold"
      ],
      "x-ms-enum": {
        "name": "DocumentFontWeight",
        "modelAsString": true,
        "values": [
          {
            "name": "normal",
            "value": "normal",
            "description": "Characters are represented normally."
          },
          {
            "name": "bold",
            "value": "bold",
            "description": "Characters are represented with thicker strokes."
          }
        ]
      }
    },
    "DocumentFootnote": {
      "type": "object",
      "description": "A footnote object describing a table or figure.",
      "properties": {
        "content": {
          "type": "string",
          "description": "Content of the footnote."
        },
        "boundingRegions": {
          "type": "array",
          "description": "Bounding regions covering the footnote.",
          "items": {
            "$ref": "#/$defs/BoundingRegion"
          }
        },
        "spans": {
          "type": "array",
          "description": "Location of the footnote in the reading order concatenated content.",
          "items": {
            "$ref": "#/$defs/DocumentSpan"
          }
        },
        "elements": {
          "type": "array",
          "description": "Child elements of the footnote.",
          "items": {
            "$ref": "#/$defs/DocumentElement"
          }
        }
      },
      "required": [
        "content",
        "spans"
      ]
    },
    "DocumentFormula": {
      "type": "object",
      "description": "A formula object.",
      "properties": {
        "kind": {
          "$ref": "#/$defs/DocumentFormulaKind",
          "description": "Formula kind."
        },
        "value": {
          "type": "string",
          "description": "LaTex expression describing the formula."
        },
        "polygon": {
          "type": "array",
          "description": "Bounding polygon of the formula, with coordinates specified relative to the\ntop-left of the page. The numbers represent the x, y values of the polygon\nvertices, clockwise from the left (-180 degrees inclusive) relative to the\nelement orientation.",
          "items": {
            "type": "number",
            "format": "float"
          }
        },
        "span": {
          "$ref": "#/$defs/DocumentSpan",
          "description": "Location of the formula in the reading order concatenated content."
        },
        "confidence": {
          "type": "number",
          "format": "float",
          "description": "Confidence of correctly extracting the formula.",
          "minimum": 0,
          "maximum": 1
        }
      },
      "required": [
        "kind",
        "value",
        "span",
        "confidence"
      ]
    },
    "DocumentFormulaKind": {
      "type": "string",
      "description": "Formula kind.",
      "enum": [
        "inline",
        "display"
      ],
      "x-ms-enum": {
        "name": "DocumentFormulaKind",
        "modelAsString": true,
        "values": [
          {
            "name": "inline",
            "value": "inline",
            "description": "A formula embedded within the content of a paragraph."
          },
          {
            "name": "display",
            "value": "display",
            "description": "A formula in display mode that takes up an entire line."
          }
        ]
      }
    },
    "DocumentIntelligenceError": {
      "type": "object",
      "description": "The error object.",
      "properties": {
        "code": {
          "type": "string",
          "description": "One of a server-defined set of error codes."
        },
        "message": {
          "type": "string",
          "description": "A human-readable representation of the error."
        },
        "target": {
          "type": "string",
          "description": "The target of the error."
        },
        "details": {
          "type": "array",
          "description": "An array of details about specific errors that led to this reported error.",
          "items": {
            "$ref": "#/$defs/DocumentIntelligenceError"
          }
        },
        "innererror": {
          "$ref": "#/$defs/DocumentIntelligenceInnerError",
          "description": "An object containing more specific information than the current object about the error."
        }
      },
      "required": [
        "code",
        "message"
      ]
    },
    "DocumentIntelligenceInnerError": {
      "type": "object",
      "description": "An object containing more specific information about the error.",
      "properties": {
        "code": {
          "type": "string",
          "description": "One of a server-defined set of error codes."
        },
        "message": {
          "type": "string",
          "description": "A human-readable representation of the error."
        },
        "innererror": {
          "$ref": "#/$defs/DocumentIntelligenceInnerError",
          "description": "Inner error."
        }
      }
    },
    "DocumentIntelligenceOperationStatus": {
      "type": "string",
      "description": "Operation status.",
      "enum": [
        "notStarted",
        "running",
        "failed",
        "succeeded",
        "canceled",
        "skipped"
      ],
      "x-ms-enum": {
        "name": "DocumentIntelligenceOperationStatus",
        "modelAsString": true,
        "values": [
          {
            "name": "notStarted",
            "value": "notStarted",
            "description": "The operation has not started yet."
          },
          {
            "name": "running",
            "value": "running",
            "description": "The operation is in progress."
          },
          {
            "name": "failed",
            "value": "failed",
            "description": "The operation has failed."
          },
          {
            "name": "succeeded",
            "value": "succeeded",
            "description": "The operation has succeeded."
          },
          {
            "name": "canceled",
            "value": "canceled",
            "description": "The operation has been canceled."
          },
          {
            "name": "skipped",
            "value": "skipped",
            "description": "The operation has been skipped."
          }
        ]
      }
    },
    "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"
      ]
    },
    "DocumentKeyValueElement": {
      "type": "object",
      "description": "An object representing the field key or value in a key-value pair.",
      "properties": {
        "content": {
          "type": "string",
          "description": "Concatenated content of the key-value element in reading order."
        },
        "boundingRegions": {
          "type": "array",
          "description": "Bounding regions covering the key-value element.",
          "items": {
            "$ref": "#/$defs/BoundingRegion"
          }
        },
        "spans": {
          "type": "array",
          "description": "Location of the key-value element in the reading order concatenated content.",
          "items": {
            "$ref": "#/$defs/DocumentSpan"
          }
        }
      },
      "required": [
        "content",
        "spans"
      ]
    },
    "DocumentKeyValuePair": {
      "type": "object",
      "description": "An object representing a form field with distinct field label (key) and field\nvalue (may be empty).",
      "properties": {
        "key": {
          "$ref": "#/$defs/DocumentKeyValueElement",
          "description": "Field label of the key-value pair."
        },
        "value": {
          "$ref": "#/$defs/DocumentKeyValueElement",
          "description": "Field value of the key-value pair."
        },
        "confidence": {
          "type": "number",
          "format": "float",
          "description": "Confidence of correctly extracting the key-value pair.",
          "minimum": 0,
          "maximum": 1
        }
      },
      "required": [
        "key",
        "confidence"
      ]
    },
    "DocumentLanguage": {
      "type": "object",
      "description": "An object representing the detected language for a given text span.",
      "properties": {
        "locale": {
          "type": "string",
          "description": "Detected language.  Value may an ISO 639-1 language code (ex. \"en\", \"fr\")\nor BCP 47 language tag (ex. \"zh-Hans\")."
        },
        "spans": {
          "type": "array",
          "description": "Location of the text elements in the concatenated content the language applies\nto.",
          "items": {
            "$ref": "#/$defs/DocumentSpan"
          }
        },
        "confidence": {
          "type": "number",
          "format": "float",
          "description": "Confidence of correctly identifying the language.",
          "minimum": 0,
          "maximum": 1
        }
      },
      "required": [
        "locale",
        "spans",
        "confidence"
      ]
    },
    "DocumentLine": {
      "type": "object",
      "description": "A content line object consisting of an adjacent sequence of content elements,\nsuch as words and selection marks.",
      "properties": {
        "content": {
          "type": "string",
          "description": "Concatenated content of the contained elements in reading order."
        },
        "polygon": {
          "type": "array",
          "description": "Bounding polygon of the line, with coordinates specified relative to the\ntop-left of the page. The numbers represent the x, y values of the polygon\nvertices, clockwise from the left (-180 degrees inclusive) relative to the\nelement orientation.",
          "items": {
            "type": "number",
            "format": "float"
          }
        },
        "spans": {
          "type": "array",
          "description": "Location of the line in the reading order concatenated content.",
          "items": {
            "$ref": "#/$defs/DocumentSpan"
          }
        }
      },
      "required": [
        "content",
        "spans"
      ]
    },
    "DocumentPage": {
      "type": "object",
      "description": "Content and layout elements extracted from a page from the input.",
      "properties": {
        "pageNumber": {
          "type": "integer",
          "format": "int32",
          "description": "1-based page number in the input document.",
          "minimum": 1
        },
        "angle": {
          "type": "number",
          "format": "float",
          "description": "The general orientation of the content in clockwise direction, measured in\ndegrees between (-180, 180].",
          "maximum": 180
        },
        "width": {
          "type": "number",
          "format": "float",
          "description": "The width of the image/PDF in pixels/inches, respectively.",
          "minimum": 0
        },
        "height": {
          "type": "number",
          "format": "float",
          "description": "The height of the image/PDF in pixels/inches, respectively.",
          "minimum": 0
        },
        "unit": {
          "$ref": "#/$defs/LengthUnit",
          "description": "The unit used by the width, height, and polygon properties. For images, the\nunit is \"pixel\". For PDF, the unit is \"inch\"."
        },
        "spans": {
          "type": "array",
          "description": "Location of the page in the reading order concatenated content.",
          "items": {
            "$ref": "#/$defs/DocumentSpan"
          }
        },
        "words": {
          "type": "array",
          "description": "Extracted words from the page.",
          "items": {
            "$ref": "#/$defs/DocumentWord"
          }
        },
        "selectionMarks": {
          "type": "array",
          "description": "Extracted selection marks from the page.",
          "items": {
            "$ref": "#/$defs/DocumentSelectionMark"
          }
        },
        "lines": {
          "type": "array",
          "description": "Extracted lines from the page, potentially containing both textual and visual\nelements.",
          "items": {
            "$ref": "#/$defs/DocumentLine"
          }
        },
        "barcodes": {
          "type": "array",
          "description": "Extracted barcodes from the page.",
          "items": {
            "$ref": "#/$defs/DocumentBarcode"
          }
        },
        "formulas": {
          "type": "array",
          "description": "Extracted formulas from the page.",
          "items": {
            "$ref": "#/$defs/DocumentFormula"
          }
        }
      },
      "required": [
        "pageNumber",
        "spans"
      ]
    },
    "DocumentParagraph": {
      "type": "object",
      "description": "A paragraph object consisting with contiguous lines generally with common\nalignment and spacing.",
      "properties": {
        "role": {
          "$ref": "#/$defs/ParagraphRole",
          "description": "Semantic role of the paragraph."
        },
        "content": {
          "type": "string",
          "description": "Concatenated content of the paragraph in reading order."
        },
        "boundingRegions": {
          "type": "array",
          "description": "Bounding regions covering the paragraph.",
          "items": {
            "$ref": "#/$defs/BoundingRegion"
          }
        },
        "spans": {
          "type": "array",
          "description": "Location of the paragraph in the reading order concatenated content.",
          "items": {
            "$ref": "#/$defs/DocumentSpan"
          }
        }
      },
      "required": [
        "content",
        "spans"
      ]
    },
    "DocumentSection": {
      "type": "object",
      "description": "An object representing a section in the document.",
      "properties": {
        "spans": {
          "type": "array",
          "description": "Location of the section in the reading order concatenated content.",
          "items": {
            "$ref": "#/$defs/DocumentSpan"
          }
        },
        "elements": {
          "type": "array",
          "description": "Child elements of the section.",
          "items": {
            "$ref": "#/$defs/DocumentElement"
          }
        }
      },
      "required": [
        "spans"
      ]
    },
    "DocumentSelectionMark": {
      "type": "object",
      "description": "A selection mark object representing check boxes, radio buttons, and other\nelements indicating a selection.",
      "properties": {
        "state": {
          "$ref": "#/$defs/DocumentSelectionMarkState",
          "description": "State of the selection mark."
        },
        "polygon": {
          "type": "array",
          "description": "Bounding polygon of the selection mark, with coordinates specified relative\nto the top-left of the page. The numbers represent the x, y values of the\npolygon vertices, clockwise from the left (-180 degrees inclusive) relative\nto the element orientation.",
          "items": {
            "type": "number",
            "format": "float"
          }
        },
        "span": {
          "$ref": "#/$defs/DocumentSpan",
          "description": "Location of the selection mark in the reading order concatenated content."
        },
        "confidence": {
          "type": "number",
          "format": "float",
          "description": "Confidence of correctly extracting the selection mark.",
          "minimum": 0,
          "maximum": 1
        }
      },
      "required": [
        "state",
        "span",
        "confidence"
      ]
    },
    "DocumentSelectionMarkState": {
      "type": "string",
      "description": "State of the selection mark.",
      "enum": [
        "selected",
        "unselected"
      ],
      "x-ms-enum": {
        "name": "DocumentSelectionMarkState",
        "modelAsString": true,
        "values": [
          {
            "name": "selected",
            "value": "selected",
            "description": "The selection mark is selected, often indicated by a check ✓ or cross X inside\nthe selection mark."
          },
          {
            "name": "unselected",
            "value": "unselected",
            "description": "The selection mark is not selected."
          }
        ]
      }
    },
    "DocumentSignatureType": {
      "type": "string",
      "description": "Presence of signature.",
      "enum": [
        "signed",
        "unsigned"
      ],
      "x-ms-enum": {
        "name": "DocumentSignatureType",
        "modelAsString": true,
        "values": [
          {
            "name": "signed",
            "value": "signed",
            "description": "A signature is detected."
          },
          {
            "name": "unsigned",
            "value": "unsigned",
            "description": "No signatures are detected."
          }
        ]
      }
    },
    "DocumentSpan": {
      "type": "object",
      "description": "Contiguous region of the concatenated content property, specified as an offset\nand length.",
      "properties": {
        "offset": {
          "type": "integer",
          "format": "int32",
          "description": "Zero-based index of the content represented by the span.",
          "minimum": 0
        },
        "length": {
          "type": "integer",
          "format": "int32",
          "description": "Number of characters in the content represented by the span.",
          "minimum": 0
        }
      },
      "required": [
        "offset",
        "length"
      ]
    },
    "DocumentStyle": {
      "type": "object",
      "description": "An object representing observed text styles.",
      "properties": {
        "isHandwritten": {
          "type": "boolean",
          "description": "Is content handwritten?"
        },
        "similarFontFamily": {
          "type": "string",
          "description": "Visually most similar font from among the set of supported font families, with\nfallback fonts following CSS convention (ex. 'Arial, sans-serif')."
        },
        "fontStyle": {
          "$ref": "#/$defs/DocumentFontStyle",
          "description": "Font style."
        },
        "fontWeight": {
          "$ref": "#/$defs/DocumentFontWeight",
          "description": "Font weight."
        },
        "color": {
          "type": "string",
          "description": "Foreground color in #rrggbb hexadecimal format.",
          "pattern": "^#[0-9a-f]{6}$"
        },
        "backgroundColor": {
          "type": "string",
          "description": "Background color in #rrggbb hexadecimal format..",
          "pattern": "^#[0-9a-f]{6}$"
        },
        "spans": {
          "type": "array",
          "description": "Location of the text elements in the concatenated content the style applies to.",
          "items": {
            "$ref": "#/$defs/DocumentSpan"
          }
        },
        "confidence": {
          "type": "number",
          "format": "float",
          "description": "Confidence of correctly identifying the style.",
          "minimum": 0,
          "maximum": 1
        }
      },
      "required": [
        "spans",
        "confidence"
      ]
    },
    "DocumentTable": {
      "type": "object",
      "description": "A table object consisting table cells arranged in a rectangular layout.",
      "properties": {
        "rowCount": {
          "type": "integer",
          "format": "int32",
          "description": "Number of rows in the table.",
          "minimum": 1
        },
        "columnCount": {
          "type": "integer",
          "format": "int32",
          "description": "Number of columns in the table.",
          "minimum": 1
        },
        "cells": {
          "type": "array",
          "description": "Cells contained within the table.",
          "items": {
            "$ref": "#/$defs/DocumentTableCell"
          }
        },
        "boundingRegions": {
          "type": "array",
          "description": "Bounding regions covering the table.",
          "items": {
            "$ref": "#/$defs/BoundingRegion"
          }
        },
        "spans": {
          "type": "array",
          "description": "Location of the table in the reading order concatenated content.",
          "items": {
            "$ref": "#/$defs/DocumentSpan"
          }
        },
        "caption": {
          "$ref": "#/$defs/DocumentCaption",
          "description": "Caption associated with the table."
        },
        "footnotes": {
          "type": "array",
          "description": "List of footnotes associated with the table.",
          "items": {
            "$ref": "#/$defs/DocumentFootnote"
          }
        }
      },
      "required": [
        "rowCount",
        "columnCount",
        "cells",
        "spans"
      ]
    },
    "DocumentTableCell": {
      "type": "object",
      "description": "An object representing the location and content of a table cell.",
      "properties": {
        "kind": {
          "type": "string",
          "description": "Table cell kind.",
          "default": "content",
          "enum": [
            "content",
            "rowHeader",
            "columnHeader",
            "stubHead",
            "description"
          ],
          "x-ms-enum": {
            "name": "DocumentTableCellKind",
            "modelAsString": true,
            "values": [
              {
                "name": "content",
                "value": "content",
                "description": "Contains the main content/data."
              },
              {
                "name": "rowHeader",
                "value": "rowHeader",
                "description": "Describes the content of the row."
              },
              {
                "name": "columnHeader",
                "value": "columnHeader",
                "description": "Describes the content of the column."
              },
              {
                "name": "stubHead",
                "value": "stubHead",
                "description": "Describes the row headers, usually located at the top left corner of a table."
              },
              {
                "name": "description",
                "value": "description",
                "description": "Describes the content in (parts of) the table."
              }
            ]
          }
        },
        "rowIndex": {
          "type": "integer",
          "format": "int32",
          "description": "Row index of the cell."
        },
        "columnIndex": {
          "type": "integer",
          "format": "int32",
          "description": "Column index of the cell."
        },
        "rowSpan": {
          "type": "integer",
          "format": "int32",
          "description": "Number of rows spanned by this cell.",
          "default": 1,
          "minimum": 1
        },
        "columnSpan": {
          "type": "integer",
          "format": "int32",
          "description": "Number of columns spanned by this cell.",
          "default": 1,
          "minimum": 1
        },
        "content": {
          "type": "string",
          "description": "Concatenated content of the table cell in reading order."
        },
        "boundingRegions": {
          "type": "array",
          "description": "Bounding regions covering the table cell.",
          "items": {
            "$ref": "#/$defs/BoundingRegion"
          }
        },
        "spans": {
          "type": "array",
          "description": "Location of the table cell in the reading order concatenated content.",
          "items": {
            "$ref": "#/$defs/DocumentSpan"
          }
        },
        "elements": {
          "type": "array",
          "description": "Child elements of the table cell.",
          "items": {
            "$ref": "#/$defs/DocumentElement"
          }
        }
      },
      "required": [
        "rowIndex",
        "columnIndex",
        "content",
        "spans"
      ]
    },
    "DocumentWord": {
      "type": "object",
      "description": "A word object consisting of a contiguous sequence of characters.  For non-space\ndelimited languages, such as Chinese, Japanese, and Korean, each character is\nrepresented as its own word.",
      "properties": {
        "content": {
          "type": "string",
          "description": "Text content of the word."
        },
        "polygon": {
          "type": "array",
          "description": "Bounding polygon of the word, with coordinates specified relative to the\ntop-left of the page. The numbers represent the x, y values of the polygon\nvertices, clockwise from the left (-180 degrees inclusive) relative to the\nelement orientation.",
          "items": {
            "type": "number",
            "format": "float"
          }
        },
        "span": {
          "$ref": "#/$defs/DocumentSpan",
          "description": "Location of the word in the reading order concatenated content."
        },
        "confidence": {
          "type": "number",
          "format": "float",
          "description": "Confidence of correctly extracting the word.",
          "minimum": 0,
          "maximum": 1
        }
      },
      "required": [
        "content",
        "span",
        "confidence"
      ]
    },
    "LengthUnit": {
      "type": "string",
      "description": "The unit used by the width, height, and polygon properties. For images, the unit is \"pixel\". For PDF, the unit is \"inch\".",
      "enum": [
        "pixel",
        "inch"
      ],
      "x-ms-enum": {
        "name": "LengthUnit",
        "modelAsString": true,
        "values": [
          {
            "name": "pixel",
            "value": "pixel",
            "description": "Length unit for image files."
          },
          {
            "name": "inch",
            "value": "inch",
            "description": "Length unit for PDF files."
          }
        ]
      }
    },
    "ParagraphRole": {
      "type": "string",
      "description": "Semantic role of the paragraph.",
      "enum": [
        "pageHeader",
        "pageFooter",
        "pageNumber",
        "title",
        "sectionHeading",
        "footnote",
        "formulaBlock"
      ],
      "x-ms-enum": {
        "name": "ParagraphRole",
        "modelAsString": true,
        "values": [
          {
            "name": "pageHeader",
            "value": "pageHeader",
            "description": "Text near the top edge of the page."
          },
          {
            "name": "pageFooter",
            "value": "pageFooter",
            "description": "Text near the bottom edge of the page."
          },
          {
            "name": "pageNumber",
            "value": "pageNumber",
            "description": "Page number."
          },
          {
            "name": "title",
            "value": "title",
            "description": "Top-level title describing the entire document."
          },
          {
            "name": "sectionHeading",
            "value": "sectionHeading",
            "description": "Sub heading describing a section of the document."
          },
          {
            "name": "footnote",
            "value": "footnote",
            "description": "A note usually placed after the main content on a page."
          },
          {
            "name": "formulaBlock",
            "value": "formulaBlock",
            "description": "A block of formulas, often with shared alignment."
          }
        ]
      }
    },
    "StringIndexType": {
      "type": "string",
      "description": "Method used to compute string offset and length.",
      "enum": [
        "textElements",
        "unicodeCodePoint",
        "utf16CodeUnit"
      ],
      "x-ms-enum": {
        "name": "StringIndexType",
        "modelAsString": true,
        "values": [
          {
            "name": "textElements",
            "value": "textElements",
            "description": "User-perceived display character, or grapheme cluster, as defined by Unicode\n8.0.0."
          },
          {
            "name": "unicodeCodePoint",
            "value": "unicodeCodePoint",
            "description": "Character unit represented by a single unicode code point.  Used by Python 3."
          },
          {
            "name": "utf16CodeUnit",
            "value": "utf16CodeUnit",
            "description": "Character unit represented by a 16-bit Unicode code unit.  Used by JavaScript,\nJava, and .NET."
          }
        ]
      }
    }
  }
}