{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/azure-ai-foundry/json-schema/azure-ai-foundry-document-model-build-operation-details-schema.json",
  "title": "DocumentModelBuildOperationDetails",
  "description": "Get Operation response object.",
  "x-generated": "2026-11-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_superseded/azure-ai-foundry-operations-api-openapi.yml#/components/schemas/DocumentModelBuildOperationDetails",
  "type": "object",
  "properties": {
    "result": {
      "$ref": "#/$defs/DocumentModelDetails",
      "description": "Operation result upon success."
    }
  },
  "allOf": [
    {
      "$ref": "#/$defs/DocumentIntelligenceOperationDetails"
    }
  ],
  "x-ms-discriminator-value": "documentModelBuild",
  "$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."
          }
        ]
      }
    },
    "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."
        }
      }
    },
    "DocumentIntelligenceOperationDetails": {
      "type": "object",
      "description": "Operation info.",
      "properties": {
        "operationId": {
          "type": "string",
          "description": "Operation ID",
          "x-ms-mutability": [
            "read",
            "create"
          ]
        },
        "status": {
          "$ref": "#/$defs/DocumentIntelligenceOperationStatus",
          "description": "Operation status.  notStarted, running, completed, or failed"
        },
        "percentCompleted": {
          "type": "integer",
          "format": "int32",
          "description": "Operation progress (0-100).",
          "minimum": 0,
          "maximum": 100
        },
        "createdDateTime": {
          "type": "string",
          "format": "date-time",
          "description": "Date and time (UTC) when the operation was created."
        },
        "lastUpdatedDateTime": {
          "type": "string",
          "format": "date-time",
          "description": "Date and time (UTC) when the status was last updated."
        },
        "kind": {
          "$ref": "#/$defs/OperationKind",
          "description": "Type of operation."
        },
        "resourceLocation": {
          "type": "string",
          "format": "uri",
          "description": "URL of the resource targeted by this operation."
        },
        "apiVersion": {
          "type": "string",
          "description": "API version used to create this operation."
        },
        "tags": {
          "type": "object",
          "description": "List of key-value tag attributes associated with the document model.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "error": {
          "$ref": "#/$defs/DocumentIntelligenceError",
          "description": "Encountered error."
        }
      },
      "required": [
        "operationId",
        "status",
        "createdDateTime",
        "lastUpdatedDateTime",
        "kind",
        "resourceLocation"
      ]
    },
    "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"
      ]
    },
    "DocumentModelDetails": {
      "type": "object",
      "description": "Document model info.",
      "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"
      ]
    },
    "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."
        }
      }
    },
    "OperationKind": {
      "type": "string",
      "description": "Type of operation.",
      "enum": [
        "documentModelBuild",
        "documentModelCompose",
        "documentModelCopyTo",
        "documentClassifierCopyTo",
        "documentClassifierBuild"
      ],
      "x-ms-enum": {
        "name": "OperationKind",
        "modelAsString": true,
        "values": [
          {
            "name": "documentModelBuild",
            "value": "documentModelBuild",
            "description": "Build a new custom document model."
          },
          {
            "name": "documentModelCompose",
            "value": "documentModelCompose",
            "description": "Compose a new custom document model from existing models."
          },
          {
            "name": "documentModelCopyTo",
            "value": "documentModelCopyTo",
            "description": "Copy an existing document model to potentially a different resource, region, or\nsubscription."
          },
          {
            "name": "documentClassifierCopyTo",
            "value": "documentClassifierCopyTo",
            "description": "Copy an existing document classifier to potentially a different resource, region, or\nsubscription."
          },
          {
            "name": "documentClassifierBuild",
            "value": "documentClassifierBuild",
            "description": "Build a new custom classifier model."
          }
        ]
      }
    }
  }
}