From c48c6c1efdd5c04575d2c953d0056c265ac64a3c Mon Sep 17 00:00:00 2001 From: Paul Hsu Date: Thu, 30 Sep 2021 13:03:24 +0800 Subject: [PATCH 1/4] Swagger for Form Recognizer 2021-09-30-preview. --- .../2021-09-30-preview/FormRecognizer.json | 1941 +++++ .../2021-09-30-preview/FormRecognizer.yml | 1684 ++++ .../examples/AnalyzeDocument_Base64.json | 20 + .../examples/AnalyzeDocument_Url.json | 20 + .../examples/AuthorizeCopyDocumentModel.json | 22 + .../examples/BuildDocumentModel.json | 21 + .../examples/ComposeDocumentModel.json | 25 + .../examples/CopyDocumentModelTo.json | 22 + .../examples/DeleteModel.json | 10 + .../examples/GetAnalyzeDocumentResult.json | 7219 +++++++++++++++++ .../2021-09-30-preview/examples/GetInfo.json | 16 + .../examples/GetModel_Custom.json | 36 + .../examples/GetModel_Prebuilt.json | 132 + .../examples/GetModels.json | 25 + .../examples/GetOperation.json | 45 + .../examples/GetOperations.json | 24 + .../data-plane/FormRecognizer/readme.md | 32 + 17 files changed, 11294 insertions(+) create mode 100644 specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/FormRecognizer.json create mode 100644 specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/FormRecognizer.yml create mode 100644 specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/AnalyzeDocument_Base64.json create mode 100644 specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/AnalyzeDocument_Url.json create mode 100644 specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/AuthorizeCopyDocumentModel.json create mode 100644 specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/BuildDocumentModel.json create mode 100644 specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/ComposeDocumentModel.json create mode 100644 specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/CopyDocumentModelTo.json create mode 100644 specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/DeleteModel.json create mode 100644 specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetAnalyzeDocumentResult.json create mode 100644 specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetInfo.json create mode 100644 specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetModel_Custom.json create mode 100644 specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetModel_Prebuilt.json create mode 100644 specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetModels.json create mode 100644 specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetOperation.json create mode 100644 specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetOperations.json diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/FormRecognizer.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/FormRecognizer.json new file mode 100644 index 000000000000..7d3abdced0bf --- /dev/null +++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/FormRecognizer.json @@ -0,0 +1,1941 @@ +{ + "swagger": "2.0", + "info": { + "title": "Form Recognizer Client", + "description": "Extracts content, layout, and structured data from documents.", + "version": "2021-09-30-preview" + }, + "securityDefinitions": { + "apim_key": { + "type": "apiKey", + "name": "Ocp-Apim-Subscription-Key", + "in": "header" + } + }, + "security": [ + { + "apim_key": [] + } + ], + "x-ms-parameterized-host": { + "hostTemplate": "{endpoint}/formrecognizer", + "useSchemePrefix": false, + "parameters": [ + { + "$ref": "#/parameters/Endpoint" + } + ] + }, + "schemes": [ + "https" + ], + "paths": { + "/documentModels/{modelId}:analyze": { + "post": { + "summary": "Analyze document", + "description": "Analyzes document with model.", + "operationId": "AnalyzeDocument", + "tags": [ + "Analysis" + ], + "consumes": [ + "application/json", + "application/octet-stream", + "application/pdf", + "image/jpeg", + "image/png", + "image/tiff", + "image/bmp" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/PathModelId" + }, + { + "$ref": "#/parameters/QueryPages" + }, + { + "$ref": "#/parameters/QueryLocale" + }, + { + "$ref": "#/parameters/QueryStringIndexType" + }, + { + "$ref": "#/parameters/QueryApiVersion" + }, + { + "name": "analyzeRequest", + "description": "Analyze request parameters.", + "required": false, + "in": "body", + "schema": { + "$ref": "#/definitions/AnalyzeDocumentRequest" + } + } + ], + "responses": { + "202": { + "description": "Request is queued successfully.", + "headers": { + "Operation-Location": { + "type": "string", + "description": "URL used to track the progress and obtain the result of the analyze operation." + } + } + }, + "default": { + "description": "Error encountered.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "AnalyzeDocument_Url": { + "$ref": "./examples/AnalyzeDocument_Url.json" + }, + "AnalyzeDocument_Base64": { + "$ref": "./examples/AnalyzeDocument_Base64.json" + } + } + } + }, + "/documentModels/{modelId}/analyzeResults/{resultId}": { + "get": { + "summary": "Get analyze result", + "description": "Gets the result of document analysis.", + "operationId": "GetAnalyzeDocumentResult", + "tags": [ + "Analysis" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/PathModelId" + }, + { + "$ref": "#/parameters/PathResultId" + }, + { + "$ref": "#/parameters/QueryApiVersion" + } + ], + "responses": { + "200": { + "description": "OK.", + "schema": { + "$ref": "#/definitions/AnalyzeResultOperation" + } + }, + "default": { + "description": "Error encountered.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "GetAnalyzeDocumentResult": { + "$ref": "./examples/GetAnalyzeDocumentResult.json" + } + } + } + }, + "/documentModels:build": { + "post": { + "summary": "Build model", + "description": "Builds a custom document analysis model.", + "operationId": "BuildDocumentModel", + "tags": [ + "Creation" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/QueryApiVersion" + }, + { + "name": "buildRequest", + "description": "Building request parameters.", + "required": true, + "in": "body", + "schema": { + "$ref": "#/definitions/BuildDocumentModelRequest" + } + } + ], + "responses": { + "202": { + "description": "Request is queued successfully.", + "headers": { + "Operation-Location": { + "type": "string", + "description": "Operation result URL." + } + } + }, + "default": { + "description": "Error encountered.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "BuildDocumentModel": { + "$ref": "./examples/BuildDocumentModel.json" + } + } + } + }, + "/documentModels:compose": { + "post": { + "summary": "Compose model", + "description": "Creates a new model from document types of existing models.", + "operationId": "ComposeDocumentModel", + "tags": [ + "Creation" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/QueryApiVersion" + }, + { + "name": "composeRequest", + "description": "Compose request parameters.", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ComposeDocumentModelRequest" + } + } + ], + "responses": { + "202": { + "description": "Request is queued successfully.", + "headers": { + "Operation-Location": { + "type": "string", + "description": "Operation result URL." + } + } + }, + "default": { + "description": "Error encountered.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "ComposeDocumentModel": { + "$ref": "./examples/ComposeDocumentModel.json" + } + } + } + }, + "/documentModels:authorizeCopy": { + "post": { + "summary": "Generate copy authorization", + "description": "Generates authorization to copy a model to this location with specified modelId and optional description.", + "operationId": "AuthorizeCopyDocumentModel", + "tags": [ + "Creation" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/QueryApiVersion" + }, + { + "name": "authorizeCopyRequest", + "description": "Authorize copy request parameters.", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/AuthorizeCopyRequest" + } + } + ], + "responses": { + "200": { + "description": "OK.", + "schema": { + "$ref": "#/definitions/CopyAuthorization" + } + }, + "default": { + "description": "Error encountered.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "AuthorizeCopyDocumentModel": { + "$ref": "./examples/AuthorizeCopyDocumentModel.json" + } + } + } + }, + "/documentModels/{modelId}:copyTo": { + "post": { + "summary": "Copy model", + "description": "Copies model to the target resource, region, and modelId.", + "operationId": "CopyDocumentModelTo", + "tags": [ + "Creation" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/PathModelId" + }, + { + "$ref": "#/parameters/QueryApiVersion" + }, + { + "name": "copyToRequest", + "description": "Copy to request parameters.", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CopyAuthorization" + } + } + ], + "responses": { + "202": { + "description": "Request is queued successfully.", + "headers": { + "Operation-Location": { + "type": "string", + "description": "Operation result URL." + } + } + }, + "default": { + "description": "Error encountered.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "CopyDocumentModelTo": { + "$ref": "./examples/CopyDocumentModelTo.json" + } + } + } + }, + "/operations": { + "get": { + "summary": "List operations", + "description": "Lists all operations.", + "operationId": "GetOperations", + "tags": [ + "Operation" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/QueryApiVersion" + } + ], + "responses": { + "200": { + "description": "OK.", + "schema": { + "$ref": "#/definitions/GetOperationsResponse" + } + }, + "default": { + "description": "Error encountered.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink", + "itemName": "value" + }, + "x-ms-examples": { + "GetOperations": { + "$ref": "./examples/GetOperations.json" + } + } + } + }, + "/operations/{operationId}": { + "get": { + "summary": "Get operation", + "description": "Gets operation info.", + "operationId": "GetOperation", + "tags": [ + "Operation" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/PathOperationId" + }, + { + "$ref": "#/parameters/QueryApiVersion" + } + ], + "responses": { + "200": { + "description": "OK.", + "schema": { + "$ref": "#/definitions/GetOperationResponse" + } + }, + "default": { + "description": "Error encountered.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "GetOperation": { + "$ref": "./examples/GetOperation.json" + } + } + } + }, + "/documentModels": { + "get": { + "summary": "List models", + "description": "List all models", + "operationId": "GetModels", + "tags": [ + "Management" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/QueryApiVersion" + } + ], + "responses": { + "200": { + "description": "OK.", + "schema": { + "$ref": "#/definitions/GetModelsResponse" + } + }, + "default": { + "description": "Error encountered.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink", + "itemName": "value" + }, + "x-ms-examples": { + "GetModels": { + "$ref": "./examples/GetModels.json" + } + } + } + }, + "/documentModels/{modelId}": { + "get": { + "summary": "Get model", + "description": "Gets detailed model information.", + "operationId": "GetModel", + "tags": [ + "Management" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/PathModelId" + }, + { + "$ref": "#/parameters/QueryApiVersion" + } + ], + "responses": { + "200": { + "description": "OK.", + "schema": { + "$ref": "#/definitions/ModelInfo" + } + }, + "default": { + "description": "Error encountered.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "GetModel_Prebuilt": { + "$ref": "./examples/GetModel_Prebuilt.json" + }, + "GetModel_Custom": { + "$ref": "./examples/GetModel_Custom.json" + } + } + }, + "delete": { + "summary": "Delete model", + "description": "Deletes model.", + "operationId": "DeleteModel", + "tags": [ + "Management" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/PathModelId" + }, + { + "$ref": "#/parameters/QueryApiVersion" + } + ], + "responses": { + "204": { + "description": "Deleting model." + }, + "default": { + "description": "Error encountered.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "DeleteModel": { + "$ref": "./examples/DeleteModel.json" + } + } + } + }, + "/info": { + "get": { + "summary": "Get info", + "description": "Return basic info about the current resource.", + "operationId": "GetInfo", + "tags": [ + "Management" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/QueryApiVersion" + } + ], + "responses": { + "200": { + "description": "OK.", + "schema": { + "$ref": "#/definitions/GetInfoResponse" + } + }, + "default": { + "description": "Error encountered.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "GetInfo": { + "$ref": "./examples/GetInfo.json" + } + } + } + } + }, + "definitions": { + "AnalyzeDocumentRequest": { + "description": "Document analysis parameters.", + "type": "object", + "properties": { + "urlSource": { + "description": "Document URL to analyze", + "$ref": "#/definitions/UrlContentSource" + }, + "base64Source": { + "description": "Base64 encoding of the document to analyze", + "$ref": "#/definitions/Base64ContentSource" + } + } + }, + "BuildDocumentModelRequest": { + "description": "Request body to build a new custom model.", + "type": "object", + "required": [ + "modelId" + ], + "properties": { + "modelId": { + "$ref": "#/definitions/ModelId" + }, + "description": { + "$ref": "#/definitions/ModelDescription" + }, + "azureBlobSource": { + "description": "Azure Blob Storage location containing the training data.", + "$ref": "#/definitions/AzureBlobContentSource" + } + } + }, + "ComposeDocumentModelRequest": { + "description": "Request body to create a composed model from component models.", + "type": "object", + "required": [ + "modelId", + "componentModels" + ], + "properties": { + "modelId": { + "$ref": "#/definitions/ModelId" + }, + "description": { + "$ref": "#/definitions/ModelDescription" + }, + "componentModels": { + "description": "List of component models to compose.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/ComponentModelInfo" + } + } + } + }, + "ComponentModelInfo": { + "description": "A component of a composed model.", + "type": "object", + "required": [ + "modelId" + ], + "properties": { + "modelId": { + "$ref": "#/definitions/ModelId" + } + } + }, + "AuthorizeCopyRequest": { + "description": "Request body to authorize model copy.", + "type": "object", + "required": [ + "modelId" + ], + "properties": { + "modelId": { + "$ref": "#/definitions/ModelId" + }, + "description": { + "$ref": "#/definitions/ModelDescription" + } + } + }, + "GetOperationsResponse": { + "description": "List Operations response object.", + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "description": "List of operations.", + "type": "array", + "items": { + "$ref": "#/definitions/OperationInfo" + } + }, + "nextLink": { + "description": "Link to the next page of operations.", + "type": "string" + } + } + }, + "GetOperationResponse": { + "description": "Get Operation response object.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/OperationInfo" + } + ], + "properties": { + "error": { + "description": "Encountered error.", + "$ref": "#/definitions/Error" + }, + "result": { + "description": "Operation result upon success.", + "type": "object" + } + } + }, + "GetModelsResponse": { + "description": "List Models response object.", + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "description": "List of models.", + "type": "array", + "items": { + "$ref": "#/definitions/ModelSummary" + } + }, + "nextLink": { + "description": "Link to the next page of models.", + "type": "string" + } + } + }, + "GetInfoResponse": { + "description": "General information regarding the current resource.", + "type": "object", + "required": [ + "customDocumentModels" + ], + "properties": { + "customDocumentModels": { + "$ref": "#/definitions/CustomDocumentModelsInfo" + } + } + }, + "CustomDocumentModelsInfo": { + "description": "Info regarding custom document models.", + "type": "object", + "required": [ + "count", + "limit" + ], + "properties": { + "count": { + "description": "Number of custom models in the current resource.", + "type": "integer", + "format": "int32" + }, + "limit": { + "description": "Maximum number of custom models supported in the current resource.", + "type": "integer", + "format": "int32" + } + } + }, + "ApiVersion": { + "description": "API version.", + "type": "string", + "enum": [ + "2021-09-30-preview" + ], + "x-ms-enum": { + "name": "ApiVersion", + "modelAsString": true + } + }, + "ErrorResponse": { + "description": "Error response object.", + "type": "object", + "required": [ + "error" + ], + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + } + }, + "Error": { + "description": "Error info.", + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Error code.", + "type": "string" + }, + "message": { + "description": "Error message.", + "type": "string" + }, + "target": { + "description": "Target of the error.", + "type": "string" + }, + "details": { + "description": "List of detailed errors.", + "type": "array", + "items": { + "$ref": "#/definitions/Error" + } + }, + "innererror": { + "$ref": "#/definitions/InnerError" + } + } + }, + "InnerError": { + "description": "Detailed error.", + "type": "object", + "required": [ + "code" + ], + "properties": { + "code": { + "description": "Error code.", + "type": "string" + }, + "message": { + "description": "Error message.", + "type": "string" + }, + "innererror": { + "$ref": "#/definitions/InnerError" + } + } + }, + "UrlContentSource": { + "description": "Content at specified URL.", + "type": "string", + "format": "uri" + }, + "Base64ContentSource": { + "description": "Content represented via Base64 encoding.", + "type": "string", + "format": "byte" + }, + "AzureBlobContentSource": { + "description": "Azure Blob Storage content.", + "type": "object", + "required": [ + "containerUrl" + ], + "properties": { + "containerUrl": { + "description": "Azure Blob Storage container URL.", + "type": "string", + "format": "uri" + }, + "prefix": { + "description": "Blob name prefix.", + "type": "string" + } + } + }, + "CopyAuthorization": { + "description": "Authorization to copy a model to the specified target resource and modelId.", + "type": "object", + "required": [ + "targetResourceId", + "targetResourceRegion", + "targetModelId", + "targetModelLocation", + "accessToken", + "expirationDateTime" + ], + "properties": { + "targetResourceId": { + "description": "ID of the target Azure resource where the model should be copied to.", + "type": "string", + "x-ms-azure-resource": true + }, + "targetResourceRegion": { + "description": "Location of the target Azure resource where the model should be copied to.", + "type": "string" + }, + "targetModelId": { + "description": "Identifier of the target model.", + "$ref": "#/definitions/ModelId" + }, + "targetModelLocation": { + "description": "URL of the copied model in the target account.", + "type": "string" + }, + "accessToken": { + "description": "Token used to authorize the request.", + "type": "string" + }, + "expirationDateTime": { + "description": "Date/time when the access token expires.", + "type": "string", + "format": "date-time" + } + } + }, + "OperationInfo": { + "description": "Operation info.", + "type": "object", + "required": [ + "operationId", + "status", + "createdDateTime", + "lastUpdatedDateTime", + "kind", + "resourceLocation" + ], + "properties": { + "operationId": { + "description": "Operation ID", + "type": "string" + }, + "status": { + "description": "Operation status.", + "type": "string", + "enum": [ + "notStarted", + "running", + "failed", + "succeeded", + "canceled" + ], + "x-ms-enum": { + "name": "OperationStatus", + "modelAsString": false + } + }, + "percentCompleted": { + "description": "Operation progress (0-100).", + "type": "integer", + "format": "int32", + "minimum": 0, + "maximum": 100 + }, + "createdDateTime": { + "description": "Date and time (UTC) when the operation was created.", + "type": "string", + "format": "date-time" + }, + "lastUpdatedDateTime": { + "description": "Date and time (UTC) when the status was last updated.", + "type": "string", + "format": "date-time" + }, + "kind": { + "description": "Type of operation.", + "type": "string", + "enum": [ + "documentModelBuild", + "documentModelCompose", + "documentModelCopyTo" + ], + "x-ms-enum": { + "name": "OperationKind", + "modelAsString": true + } + }, + "resourceLocation": { + "description": "URL of the resource targeted by this operation.", + "type": "string" + } + } + }, + "ModelSummary": { + "description": "Model summary.", + "type": "object", + "required": [ + "modelId", + "createdDateTime" + ], + "properties": { + "modelId": { + "$ref": "#/definitions/ModelId" + }, + "description": { + "$ref": "#/definitions/ModelDescription" + }, + "createdDateTime": { + "description": "Date and time (UTC) when the model was created.", + "type": "string", + "format": "date-time" + } + } + }, + "ModelInfo": { + "description": "Model info.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ModelSummary" + } + ], + "properties": { + "docTypes": { + "description": "Supported document types.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/DocTypeInfo" + } + } + } + }, + "DocTypeInfo": { + "description": "Document type info.", + "type": "object", + "required": [ + "fieldSchema" + ], + "properties": { + "description": { + "$ref": "#/definitions/ModelDescription" + }, + "fieldSchema": { + "$ref": "#/definitions/DocTypeSchema" + }, + "fieldConfidence": { + "description": "Estimated confidence for each field.", + "type": "object", + "additionalProperties": { + "type": "number", + "minimum": 0, + "maximum": 1 + } + } + } + }, + "DocTypeSchema": { + "description": "Description of the document semantic schema using a JSON Schema style syntax.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/DocumentFieldSchema" + } + }, + "DocumentFieldSchema": { + "description": "Description of the field semantic schema using a JSON Schema style syntax.", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/definitions/DocumentFieldType" + }, + "description": { + "description": "Field description.", + "type": "string" + }, + "example": { + "description": "Example field content.", + "type": "string" + }, + "items": { + "description": "Field type schema of each array element.", + "$ref": "#/definitions/DocumentFieldSchema" + }, + "properties": { + "description": "Named sub-fields of the object field.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/DocumentFieldSchema" + } + } + } + }, + "AnalyzeResultOperation": { + "description": "Status and result of the analyze operation.", + "type": "object", + "required": [ + "status", + "createdDateTime", + "lastUpdatedDateTime" + ], + "properties": { + "status": { + "description": "Operation status.", + "type": "string", + "enum": [ + "notStarted", + "running", + "failed", + "succeeded" + ], + "x-ms-enum": { + "name": "AnalyzeResultOperationStatus", + "modelAsString": false + } + }, + "createdDateTime": { + "description": "Date and time (UTC) when the analyze operation was submitted.", + "type": "string", + "format": "date-time" + }, + "lastUpdatedDateTime": { + "description": "Date and time (UTC) when the status was last updated.", + "type": "string", + "format": "date-time" + }, + "error": { + "description": "Encountered error during document analysis.", + "$ref": "#/definitions/Error" + }, + "analyzeResult": { + "$ref": "#/definitions/AnalyzeResult" + } + } + }, + "AnalyzeResult": { + "description": "Document analysis result.", + "type": "object", + "required": [ + "apiVersion", + "modelId", + "stringIndexType", + "content", + "pages" + ], + "properties": { + "apiVersion": { + "description": "API version used to produce this result.", + "$ref": "#/definitions/ApiVersion" + }, + "modelId": { + "description": "Model ID used to produce this result.", + "$ref": "#/definitions/ModelId" + }, + "stringIndexType": { + "description": "Method used to compute string offset and length.", + "$ref": "#/definitions/StringIndexType" + }, + "content": { + "description": "Concatenate string representation of all textual and visual elements in reading order.", + "type": "string" + }, + "pages": { + "description": "Analyzed pages.", + "type": "array", + "items": { + "$ref": "#/definitions/DocumentPage" + } + }, + "tables": { + "description": "Extracted tables.", + "type": "array", + "items": { + "$ref": "#/definitions/DocumentTable" + } + }, + "keyValuePairs": { + "description": "Extracted key-value pairs.", + "type": "array", + "items": { + "$ref": "#/definitions/DocumentKeyValuePair" + } + }, + "entities": { + "description": "Extracted entities.", + "type": "array", + "items": { + "$ref": "#/definitions/DocumentEntity" + } + }, + "styles": { + "description": "Extracted font styles.", + "type": "array", + "items": { + "$ref": "#/definitions/DocumentStyle" + } + }, + "documents": { + "description": "Extracted documents.", + "type": "array", + "items": { + "$ref": "#/definitions/Document" + } + } + } + }, + "DocumentPage": { + "description": "Content and layout elements extracted from a page from the input.", + "type": "object", + "required": [ + "pageNumber", + "angle", + "width", + "height", + "unit", + "words", + "lines", + "spans" + ], + "properties": { + "pageNumber": { + "description": "1-based page number in the input document.", + "type": "integer", + "format": "int32", + "minimum": 1 + }, + "angle": { + "description": "The general orientation of the content in clockwise direction, measured in degrees between (-180, 180].", + "type": "number", + "minimum": -180, + "maximum": 180, + "exclusiveMinimum": true + }, + "width": { + "description": "The width of the image/PDF in pixels/inches, respectively.", + "type": "number", + "minimum": 0 + }, + "height": { + "description": "The height of the image/PDF in pixels/inches, respectively.", + "type": "number", + "minimum": 0 + }, + "unit": { + "description": "The unit used by the width, height, and boundingBox properties. For images, the unit is \"pixel\". For PDF, the unit is \"inch\".", + "type": "string", + "enum": [ + "pixel", + "inch" + ], + "x-ms-enum": { + "name": "LengthUnit", + "modelAsString": true + } + }, + "spans": { + "description": "Location of the page in the reading order concatenated content.", + "type": "array", + "items": { + "$ref": "#/definitions/DocumentSpan" + } + }, + "words": { + "description": "Extracted words from the page.", + "type": "array", + "items": { + "$ref": "#/definitions/DocumentWord" + } + }, + "selectionMarks": { + "description": "Extracted selection marks from the page.", + "type": "array", + "items": { + "$ref": "#/definitions/DocumentSelectionMark" + } + }, + "lines": { + "description": "Extracted lines from the page, potentially containing both textual and visual elements.", + "type": "array", + "items": { + "$ref": "#/definitions/DocumentLine" + } + } + } + }, + "DocumentWord": { + "description": "A word object consisting of a contiguous sequence of characters. For non-space delimited languages, such as Chinese, Japanese, and Korean, each character is represented as its own word.", + "type": "object", + "required": [ + "content", + "span", + "confidence" + ], + "properties": { + "content": { + "description": "Text content of the word.", + "type": "string" + }, + "boundingBox": { + "description": "Bounding box of the word.", + "$ref": "#/definitions/BoundingBox" + }, + "span": { + "description": "Location of the word in the reading order concatenated content.", + "$ref": "#/definitions/DocumentSpan" + }, + "confidence": { + "description": "Confidence of correctly extracting the word.", + "$ref": "#/definitions/Confidence" + } + } + }, + "DocumentSelectionMark": { + "description": "A selection mark object representing check boxes, radio buttons, and other elements indicating a selection.", + "type": "object", + "required": [ + "state", + "span", + "confidence" + ], + "properties": { + "state": { + "description": "State of the selection mark.", + "$ref": "#/definitions/DocumentSelectionMarkState" + }, + "boundingBox": { + "description": "Bounding box of the selection mark.", + "$ref": "#/definitions/BoundingBox" + }, + "span": { + "description": "Location of the selection mark in the reading order concatenated content.", + "$ref": "#/definitions/DocumentSpan" + }, + "confidence": { + "description": "Confidence of correctly extracting the selection mark.", + "$ref": "#/definitions/Confidence" + } + } + }, + "DocumentSelectionMarkState": { + "description": "State of the selection mark.", + "type": "string", + "enum": [ + "selected", + "unselected" + ], + "x-ms-enum": { + "name": "SelectionMarkState", + "modelAsString": true + } + }, + "DocumentLine": { + "description": "A content line object consisting of an adjacent sequence of content elements, such as words and selection marks.", + "type": "object", + "required": [ + "content", + "spans" + ], + "properties": { + "content": { + "description": "Concatenated content of the contained elements in reading order.", + "type": "string" + }, + "boundingBox": { + "description": "Bounding box of the line.", + "$ref": "#/definitions/BoundingBox" + }, + "spans": { + "description": "Location of the line in the reading order concatenated content.", + "type": "array", + "items": { + "$ref": "#/definitions/DocumentSpan" + } + } + } + }, + "DocumentTable": { + "description": "A table object consisting table cells arranged in a rectangular layout.", + "type": "object", + "required": [ + "rowCount", + "columnCount", + "cells", + "spans" + ], + "properties": { + "rowCount": { + "description": "Number of rows in the table.", + "type": "integer", + "format": "int32", + "minimum": 1 + }, + "columnCount": { + "description": "Number of columns in the table.", + "type": "integer", + "format": "int32", + "minimum": 1 + }, + "cells": { + "description": "Cells contained within the table.", + "type": "array", + "items": { + "$ref": "#/definitions/DocumentTableCell" + } + }, + "boundingRegions": { + "description": "Bounding regions covering the table.", + "type": "array", + "items": { + "$ref": "#/definitions/BoundingRegion" + } + }, + "spans": { + "description": "Location of the table in the reading order concatenated content.", + "type": "array", + "items": { + "$ref": "#/definitions/DocumentSpan" + } + } + } + }, + "DocumentTableCell": { + "description": "An object representing the location and content of a table cell.", + "type": "object", + "required": [ + "rowIndex", + "columnIndex", + "content", + "spans" + ], + "properties": { + "kind": { + "description": "Table cell kind.", + "type": "string", + "enum": [ + "content", + "rowHeader", + "columnHeader", + "stubHead", + "description" + ], + "default": "content", + "x-ms-enum": { + "name": "DocumentTableCellKind", + "modelAsString": true + } + }, + "rowIndex": { + "description": "Row index of the cell.", + "type": "integer", + "format": "int32" + }, + "columnIndex": { + "description": "Column index of the cell.", + "type": "integer", + "format": "int32" + }, + "rowSpan": { + "description": "Number of rows spanned by this cell.", + "type": "integer", + "format": "int32", + "minimum": 1, + "default": 1 + }, + "columnSpan": { + "description": "Number of columns spanned by this cell.", + "type": "integer", + "format": "int32", + "minimum": 1, + "default": 1 + }, + "content": { + "description": "Concatenated content of the table cell in reading order.", + "type": "string" + }, + "boundingRegions": { + "description": "Bounding regions covering the table cell.", + "type": "array", + "items": { + "$ref": "#/definitions/BoundingRegion" + } + }, + "spans": { + "description": "Location of the table cell in the reading order concatenated content.", + "type": "array", + "items": { + "$ref": "#/definitions/DocumentSpan" + } + } + } + }, + "DocumentKeyValuePair": { + "description": "An object representing a form field with distinct field label (key) and field value (may be empty).", + "type": "object", + "required": [ + "key", + "confidence" + ], + "properties": { + "key": { + "description": "Field label of the key-value pair.", + "$ref": "#/definitions/DocumentKeyValueElement" + }, + "value": { + "description": "Field value of the key-value pair.", + "$ref": "#/definitions/DocumentKeyValueElement" + }, + "confidence": { + "description": "Confidence of correctly extracting the key-value pair.", + "$ref": "#/definitions/Confidence" + } + } + }, + "DocumentKeyValueElement": { + "description": "An object representing the field key or value in a key-value pair.", + "type": "object", + "required": [ + "content", + "spans" + ], + "properties": { + "content": { + "description": "Concatenated content of the key-value element in reading order.", + "type": "string" + }, + "boundingRegions": { + "description": "Bounding regions covering the key-value element.", + "type": "array", + "items": { + "$ref": "#/definitions/BoundingRegion" + } + }, + "spans": { + "description": "Location of the key-value element in the reading order concatenated content.", + "type": "array", + "items": { + "$ref": "#/definitions/DocumentSpan" + } + } + } + }, + "DocumentEntity": { + "description": "An object representing various categories of entities.", + "type": "object", + "required": [ + "category", + "content", + "spans", + "confidence" + ], + "properties": { + "category": { + "description": "Entity type.", + "type": "string" + }, + "subCategory": { + "description": "Entity sub type.", + "type": "string" + }, + "content": { + "description": "Entity content.", + "type": "string" + }, + "boundingRegions": { + "description": "Bounding regions covering the entity.", + "type": "array", + "items": { + "$ref": "#/definitions/BoundingRegion" + } + }, + "spans": { + "description": "Location of the entity in the reading order concatenated content.", + "type": "array", + "items": { + "$ref": "#/definitions/DocumentSpan" + } + }, + "confidence": { + "description": "Confidence of correctly extracting the entity.", + "$ref": "#/definitions/Confidence" + } + } + }, + "DocumentStyle": { + "description": "An object representing observed text styles.", + "type": "object", + "required": [ + "spans", + "confidence" + ], + "properties": { + "isHandwritten": { + "description": "Is content handwritten?", + "type": "boolean" + }, + "spans": { + "description": "Location of the text elements in the concatenated content the style applies to.", + "type": "array", + "items": { + "$ref": "#/definitions/DocumentSpan" + } + }, + "confidence": { + "description": "Confidence of correctly identifying the style.", + "$ref": "#/definitions/Confidence" + } + } + }, + "Document": { + "description": "An object describing the location and semantic content of a document.", + "type": "object", + "required": [ + "docType", + "fields", + "spans", + "confidence" + ], + "properties": { + "docType": { + "description": "Document type.", + "$ref": "#/definitions/DocType" + }, + "boundingRegions": { + "description": "Bounding regions covering the document.", + "type": "array", + "items": { + "$ref": "#/definitions/BoundingRegion" + } + }, + "spans": { + "description": "Location of the document in the reading order concatenated content.", + "type": "array", + "items": { + "$ref": "#/definitions/DocumentSpan" + } + }, + "fields": { + "description": "Dictionary of named field values.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/DocumentField" + } + }, + "confidence": { + "description": "Confidence of correctly extracting the document.", + "$ref": "#/definitions/Confidence" + } + } + }, + "DocumentField": { + "description": "An object representing the content and location of a field value.", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "description": "Data type of the field value.", + "$ref": "#/definitions/DocumentFieldType" + }, + "valueString": { + "description": "String value.", + "type": "string" + }, + "valueDate": { + "description": "Date value in YYYY-MM-DD format (ISO 8601).", + "type": "string", + "format": "date" + }, + "valueTime": { + "description": "Time value in hh:mm:ss format (ISO 8601).", + "type": "string", + "format": "time" + }, + "valuePhoneNumber": { + "description": "Phone number value in E.164 format (ex. +19876543210).", + "type": "string" + }, + "valueNumber": { + "description": "Floating point value.", + "type": "number" + }, + "valueInteger": { + "description": "Integer value.", + "type": "integer", + "format": "int64" + }, + "valueSelectionMark": { + "description": "Selection mark value.", + "$ref": "#/definitions/DocumentSelectionMarkState" + }, + "valueSignature": { + "description": "Presence of signature.", + "type": "string", + "enum": [ + "signed", + "unsigned" + ], + "x-ms-enum": { + "name": "DocumentSignatureType", + "modelAsString": true + } + }, + "valueCountryRegion": { + "description": "3-letter country code value (ISO 3166-1 alpha-3).", + "type": "string" + }, + "valueArray": { + "description": "Array of field values.", + "type": "array", + "items": { + "$ref": "#/definitions/DocumentField" + } + }, + "valueObject": { + "description": "Dictionary of named field values.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/DocumentField" + } + }, + "content": { + "description": "Field content.", + "type": "string" + }, + "boundingRegions": { + "description": "Bounding regions covering the field.", + "type": "array", + "items": { + "$ref": "#/definitions/BoundingRegion" + } + }, + "spans": { + "description": "Location of the field in the reading order concatenated content.", + "type": "array", + "items": { + "$ref": "#/definitions/DocumentSpan" + } + }, + "confidence": { + "description": "Confidence of correctly extracting the field.", + "$ref": "#/definitions/Confidence" + } + } + }, + "DocumentFieldType": { + "description": "Semantic data type of the field value.", + "type": "string", + "enum": [ + "string", + "date", + "time", + "phoneNumber", + "number", + "integer", + "selectionMark", + "countryRegion", + "signature", + "array", + "object" + ], + "x-ms-enum": { + "name": "DocumentFieldType", + "modelAsString": true + } + }, + "ModelId": { + "description": "Unique model name.", + "type": "string", + "pattern": "[a-zA-Z0-9][a-zA-Z0-9._~-]{1,63}" + }, + "ModelDescription": { + "description": "Model description.", + "type": "string", + "maxLength": 4096 + }, + "DocType": { + "description": "Document type name.", + "type": "string", + "minLength": 2, + "maxLength": 64 + }, + "BoundingBox": { + "description": "Quadrangle bounding box, with coordinates specified relative to the top-left of the page. The eight numbers represent the four points, clockwise from the top-left corner relative to the text orientation.", + "type": "array", + "minItems": 8, + "maxItems": 8, + "items": { + "type": "number", + "minimum": 0 + } + }, + "BoundingRegion": { + "description": "Bounding box on a specific page of the input.", + "type": "object", + "required": [ + "pageNumber", + "boundingBox" + ], + "properties": { + "pageNumber": { + "description": "1-based page number of page containing the bounding region.", + "type": "integer", + "format": "int32", + "minimum": 1 + }, + "boundingBox": { + "description": "Bounding box on the page, or the entire page if not specified.", + "$ref": "#/definitions/BoundingBox" + } + } + }, + "Confidence": { + "description": "Prediction confidence.", + "type": "number", + "minimum": 0, + "maximum": 1 + }, + "DocumentSpan": { + "description": "Contiguous region of the concatenated content property, specified as an offset and length.", + "type": "object", + "required": [ + "offset", + "length" + ], + "properties": { + "offset": { + "description": "Zero-based index of the content represented by the span.", + "type": "integer", + "format": "int32", + "minimum": 0 + }, + "length": { + "description": "Number of characters in the content represented by the span.", + "type": "integer", + "format": "int32", + "minimum": 0 + } + } + }, + "StringIndexType": { + "description": "Method used to compute string offset and length.", + "type": "string", + "enum": [ + "textElements", + "unicodeCodePoint", + "utf16CodeUnit" + ], + "x-ms-enum": { + "name": "StringIndexType", + "modelAsString": true + }, + "default": "textElements" + } + }, + "parameters": { + "Endpoint": { + "name": "endpoint", + "description": "Supported Cognitive Services endpoints (protocol and hostname, for\nexample: https://westus2.api.cognitive.microsoft.com).", + "x-ms-parameter-location": "client", + "required": true, + "type": "string", + "in": "path", + "x-ms-skip-url-encoding": true + }, + "QueryApiVersion": { + "name": "api-version", + "description": "Requested API version.", + "required": true, + "type": "string", + "in": "query", + "enum": [ + "2021-09-30-preview" + ], + "x-ms-enum": { + "name": "ApiVersion", + "modelAsString": true + }, + "x-ms-parameter-location": "client" + }, + "PathModelId": { + "name": "modelId", + "description": "Unique model name.", + "required": true, + "type": "string", + "pattern": "[a-zA-Z0-9][a-zA-Z0-9._~-]{1,63}", + "in": "path", + "x-ms-parameter-location": "method" + }, + "PathOperationId": { + "name": "operationId", + "description": "Unique operation ID.", + "required": true, + "type": "string", + "in": "path", + "x-ms-parameter-location": "method" + }, + "PathResultId": { + "name": "resultId", + "description": "Analyze operation result ID.", + "required": true, + "type": "string", + "in": "path", + "x-ms-parameter-location": "method" + }, + "QueryPages": { + "name": "pages", + "description": "List of 1-based page numbers to analyze. Ex. \"1-3,5,7-9\"", + "required": false, + "type": "string", + "in": "query", + "pattern": "^(\\d+(-\\d+)?)(,\\s*(\\d+(-\\d+)?))*$", + "x-ms-parameter-location": "method" + }, + "QueryLocale": { + "name": "locale", + "description": "Locale hint for text recognition and document analysis. Value may contain only the language code (ex. \"en\", \"fr\") or BCP 47 language tag (ex. \"en-US\").", + "required": false, + "type": "string", + "in": "query", + "x-ms-parameter-location": "method" + }, + "QueryStringIndexType": { + "name": "stringIndexType", + "description": "Method used to compute string offset and length.", + "required": false, + "in": "query", + "type": "string", + "enum": [ + "textElements", + "unicodeCodePoint", + "utf16CodeUnit" + ], + "x-ms-enum": { + "name": "StringIndexType", + "modelAsString": true + }, + "default": "textElements", + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/FormRecognizer.yml b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/FormRecognizer.yml new file mode 100644 index 000000000000..00ef8fd137cc --- /dev/null +++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/FormRecognizer.yml @@ -0,0 +1,1684 @@ +--- +swagger: '2.0' + +info: + title: Form Recognizer Client + description: Extracts content, layout, and structured data from documents. + version: 2021-09-30-preview + +securityDefinitions: + apim_key: + type: apiKey + name: Ocp-Apim-Subscription-Key + in: header +security: +- apim_key: [] + +x-ms-parameterized-host: + hostTemplate: "{endpoint}/formrecognizer" + useSchemePrefix: false + parameters: + - $ref: "#/parameters/Endpoint" + +schemes: +- https + +paths: + "/documentModels/{modelId}:analyze": + post: + summary: Analyze document + description: Analyzes document with model. + operationId: AnalyzeDocument + tags: + - Analysis + consumes: + - application/json + - application/octet-stream # Auto-detect content type + - application/pdf + - image/jpeg + - image/png + - image/tiff + - image/bmp + produces: + - application/json + parameters: + - $ref: "#/parameters/PathModelId" + - $ref: "#/parameters/QueryPages" + - $ref: "#/parameters/QueryLocale" + - $ref: "#/parameters/QueryStringIndexType" + - $ref: "#/parameters/QueryApiVersion" + # - $ref: "#/parameters/HeaderRepeatabilityRequestId" + # - $ref: "#/parameters/HeaderRepeatabilityFirstSent" + - name: analyzeRequest + description: Analyze request parameters. + required: false + in: body + schema: + $ref: "#/definitions/AnalyzeDocumentRequest" + responses: + '202': + description: Request is queued successfully. + headers: + Operation-Location: + type: string + description: URL used to track the progress and obtain the result of the analyze operation. + 'default': + description: Error encountered. + schema: + $ref: "#/definitions/ErrorResponse" + # '400': + # description: Error encountered during document analysis. + # schema: + # $ref: "#/definitions/ErrorResponse" + # '404': + # description: Model not found. + # schema: + # $ref: "#/definitions/ErrorResponse" + # '415': + # description: Unsupported media type. + # schema: + # $ref: "#/definitions/ErrorResponse" + # '500': + # description: Internal server error. + # schema: + # $ref: "#/definitions/ErrorResponse" + # '503': + # description: Transient error. + # schema: + # $ref: "#/definitions/ErrorResponse" + x-ms-long-running-operation: true + x-ms-examples: + AnalyzeDocument_Url: + $ref: ./examples/AnalyzeDocument_Url.json + AnalyzeDocument_Base64: + $ref: ./examples/AnalyzeDocument_Base64.json + + "/documentModels/{modelId}/analyzeResults/{resultId}": + get: + summary: Get analyze result + description: Gets the result of document analysis. + operationId: GetAnalyzeDocumentResult + tags: + - Analysis + consumes: [] + produces: + - application/json + parameters: + - $ref: "#/parameters/PathModelId" + - $ref: "#/parameters/PathResultId" + # - name: format + # description: Result format. + # required: false + # in: query + # type: string + # enum: + # - json + # - protobuf + # x-ms-enum: + # name: AnalyzeResultFormat + # modelAsString: true + # default: json + - $ref: "#/parameters/QueryApiVersion" + responses: + '200': + description: OK. + schema: + $ref: "#/definitions/AnalyzeResultOperation" + 'default': + description: Error encountered. + schema: + $ref: "#/definitions/ErrorResponse" + # '404': + # description: Result ID not found or expired. + # schema: + # $ref: "#/definitions/ErrorResponse" + # '500': + # description: Internal server ErrorResponse. + # schema: + # $ref: "#/definitions/ErrorResponse" + # '503': + # description: Transient ErrorResponse. + # schema: + # $ref: "#/definitions/ErrorResponse" + x-ms-examples: + GetAnalyzeDocumentResult: + $ref: ./examples/GetAnalyzeDocumentResult.json + + "/documentModels:build": + post: + summary: Build model + description: Builds a custom document analysis model. + operationId: BuildDocumentModel + tags: + - Creation + consumes: + - application/json + produces: + - application/json + parameters: + - $ref: "#/parameters/QueryApiVersion" + - name: buildRequest + description: Building request parameters. + required: true + in: body + schema: + $ref: "#/definitions/BuildDocumentModelRequest" + responses: + '202': + description: Request is queued successfully. + headers: + Operation-Location: + type: string + description: Operation result URL. + 'default': + description: Error encountered. + schema: + $ref: "#/definitions/ErrorResponse" + # '409': + # description: Model already exists. + # schema: + # $ref: "#/definitions/ErrorResponse" + # '500': + # description: Internal server error. + # schema: + # $ref: "#/definitions/ErrorResponse" + x-ms-long-running-operation: true + x-ms-examples: + BuildDocumentModel: + $ref: ./examples/BuildDocumentModel.json + + "/documentModels:compose": + post: + summary: Compose model + description: Creates a new model from document types of existing models. + operationId: ComposeDocumentModel + tags: + - Creation + consumes: + - application/json + produces: + - application/json + parameters: + - $ref: "#/parameters/QueryApiVersion" + - name: composeRequest + description: Compose request parameters. + in: body + required: true + schema: + $ref: "#/definitions/ComposeDocumentModelRequest" + responses: + '202': + description: Request is queued successfully. + headers: + Operation-Location: + type: string + description: Operation result URL. + 'default': + description: Error encountered. + schema: + $ref: "#/definitions/ErrorResponse" + # '409': + # description: Model already exists. + # schema: + # $ref: "#/definitions/ErrorResponse" + # '500': + # description: Internal server error. + # schema: + # $ref: "#/definitions/ErrorResponse" + x-ms-long-running-operation: true + x-ms-examples: + ComposeDocumentModel: + $ref: ./examples/ComposeDocumentModel.json + + "/documentModels:authorizeCopy": + post: + summary: Generate copy authorization + description: Generates authorization to copy a model to this location with specified modelId and optional description. + operationId: AuthorizeCopyDocumentModel + tags: + - Creation + consumes: + - application/json + produces: + - application/json + parameters: + - $ref: "#/parameters/QueryApiVersion" + - name: authorizeCopyRequest + description: Authorize copy request parameters. + in: body + required: true + schema: + $ref: "#/definitions/AuthorizeCopyRequest" + responses: + '200': + description: OK. + schema: + $ref: "#/definitions/CopyAuthorization" + 'default': + description: Error encountered. + schema: + $ref: "#/definitions/ErrorResponse" + # '409': + # description: Model already exists. + # schema: + # $ref: "#/definitions/ErrorResponse" + # '500': + # description: Internal server error. + # schema: + # $ref: "#/definitions/ErrorResponse" + # '503': + # description: Transient error. + # schema: + # $ref: "#/definitions/ErrorResponse" + x-ms-examples: + AuthorizeCopyDocumentModel: + $ref: ./examples/AuthorizeCopyDocumentModel.json + + "/documentModels/{modelId}:copyTo": + post: + summary: Copy model + description: Copies model to the target resource, region, and modelId. + operationId: CopyDocumentModelTo + tags: + - Creation + consumes: + - application/json + produces: + - application/json + parameters: + - $ref: "#/parameters/PathModelId" + - $ref: "#/parameters/QueryApiVersion" + - name: copyToRequest + description: Copy to request parameters. + in: body + required: true + schema: + $ref: "#/definitions/CopyAuthorization" + responses: + '202': + description: Request is queued successfully. + headers: + Operation-Location: + type: string + description: Operation result URL. + 'default': + description: Error encountered. + schema: + $ref: "#/definitions/ErrorResponse" + # '400': + # description: Bad request error. + # schema: + # $ref: "#/definitions/ErrorResponse" + # '404': + # description: Model not found. + # schema: + # $ref: "#/definitions/ErrorResponse" + # '409': + # description: Target model already exists. + # schema: + # $ref: "#/definitions/ErrorResponse" + # '500': + # description: Internal server error. + # schema: + # $ref: "#/definitions/ErrorResponse" + # '503': + # description: Transient error. + # schema: + # $ref: "#/definitions/ErrorResponse" + x-ms-long-running-operation: true + x-ms-examples: + CopyDocumentModelTo: + $ref: ./examples/CopyDocumentModelTo.json + + "/operations": + get: + summary: List operations + description: Lists all operations. + operationId: GetOperations + tags: + - Operation + consumes: [] + produces: + - application/json + parameters: + - $ref: "#/parameters/QueryApiVersion" + responses: + '200': + description: OK. + schema: + $ref: "#/definitions/GetOperationsResponse" + 'default': + description: Error encountered. + schema: + $ref: "#/definitions/ErrorResponse" + # '500': + # description: Internal server error. + # schema: + # $ref: "#/definitions/ErrorResponse" + x-ms-pageable: + nextLinkName: nextLink + itemName: value + x-ms-examples: + GetOperations: + $ref: ./examples/GetOperations.json + + "/operations/{operationId}": + get: + summary: Get operation + description: Gets operation info. + operationId: GetOperation + tags: + - Operation + consumes: [] + produces: + - application/json + parameters: + - $ref: "#/parameters/PathOperationId" + - $ref: "#/parameters/QueryApiVersion" + responses: + '200': + description: OK. + schema: + $ref: "#/definitions/GetOperationResponse" + 'default': + description: Error encountered. + schema: + $ref: "#/definitions/ErrorResponse" + # '404': + # description: Operation ID not found. + # schema: + # $ref: "#/definitions/ErrorResponse" + # '500': + # description: Internal server error. + # schema: + # $ref: "#/definitions/ErrorResponse" + x-ms-examples: + GetOperation: + $ref: ./examples/GetOperation.json + + # [preview.2+] + # "/operations/{operationId}:cancel": + # summary: Cancel operation + # description: Cancels operation. + # operationId: CancelOperation + # tags: + # - Operation + # consumes: [] + # produces: [] + # parameters: + # - $ref: "#/parameters/PathOperationId" + # - $ref: "#/parameters/QueryApiVersion" + # responses: + # '200': + # description: Operation canceled. + # 'default': + # description: Error encountered. + # schema: + # $ref: "#/definitions/ErrorResponse" + # # '404': + # # description: Operation ID not found. + # # schema: + # # $ref: "#/definitions/ErrorResponse" + # # '500': + # # description: Internal server error. + # # schema: + # # $ref: "#/definitions/ErrorResponse" + + "/documentModels": + get: + summary: List models + description: List all models + operationId: GetModels + tags: + - Management + consumes: [] + produces: + - application/json + parameters: + - $ref: "#/parameters/QueryApiVersion" + responses: + '200': + description: OK. + schema: + $ref: "#/definitions/GetModelsResponse" + 'default': + description: Error encountered. + schema: + $ref: "#/definitions/ErrorResponse" + # '500': + # description: Internal server error. + # schema: + # $ref: "#/definitions/ErrorResponse" + x-ms-pageable: + nextLinkName: nextLink + itemName: value + x-ms-examples: + GetModels: + $ref: ./examples/GetModels.json + + "/documentModels/{modelId}": + get: + summary: Get model + description: Gets detailed model information. + operationId: GetModel + tags: + - Management + consumes: [] + produces: + - application/json + parameters: + - $ref: "#/parameters/PathModelId" + - $ref: "#/parameters/QueryApiVersion" + responses: + '200': + description: OK. + schema: + $ref: "#/definitions/ModelInfo" + 'default': + description: Error encountered. + schema: + $ref: "#/definitions/ErrorResponse" + # '404': + # description: Model not found. + # schema: + # $ref: "#/definitions/ErrorResponse" + # '500': + # description: Internal server error. + # schema: + # $ref: "#/definitions/ErrorResponse" + x-ms-examples: + GetModel_Prebuilt: + $ref: ./examples/GetModel_Prebuilt.json + GetModel_Custom: + $ref: ./examples/GetModel_Custom.json + + delete: + summary: Delete model + description: Deletes model. + operationId: DeleteModel + tags: + - Management + consumes: [] + produces: + - application/json + parameters: + - $ref: "#/parameters/PathModelId" + - $ref: "#/parameters/QueryApiVersion" + responses: + '204': + description: Deleting model. + 'default': + description: Error encountered. + schema: + $ref: "#/definitions/ErrorResponse" + # '500': + # description: Internal server error. + # schema: + # $ref: "#/definitions/ErrorResponse" + x-ms-examples: + DeleteModel: + $ref: ./examples/DeleteModel.json + + "/info": + get: + summary: Get info + description: Return basic info about the current resource. + operationId: GetInfo + tags: + - Management + consumes: [] + produces: + - application/json + parameters: + - $ref: "#/parameters/QueryApiVersion" + responses: + '200': + description: OK. + schema: + $ref: "#/definitions/GetInfoResponse" + 'default': + description: Error encountered. + schema: + $ref: "#/definitions/ErrorResponse" + # '500': + # description: Internal server error. + # schema: + # $ref: "#/definitions/ErrorResponse" + x-ms-examples: + GetInfo: + $ref: ./examples/GetInfo.json + +definitions: + + AnalyzeDocumentRequest: + description: Document analysis parameters. + type: object + properties: + # Only one of the following: urlSource, base64Source + urlSource: + description: Document URL to analyze + $ref: "#/definitions/UrlContentSource" + base64Source: + description: Base64 encoding of the document to analyze + $ref: "#/definitions/Base64ContentSource" + + BuildDocumentModelRequest: + description: Request body to build a new custom model. + type: object + required: [ modelId ] + properties: + modelId: + $ref: "#/definitions/ModelId" + description: + $ref: "#/definitions/ModelDescription" + # technique: + # $ref: "#/definitions/DocumentModelBuildTechnique" + + # Only one of the following: azureBlobSource, urlSource, base64Source + azureBlobSource: + description: Azure Blob Storage location containing the training data. + $ref: "#/definitions/AzureBlobContentSource" + # urlSource: + # description: On-premise network location containing the training data. + # $ref: "#/definitions/UrlContentSource" + # base64Source: + # description: Base64 encoding of the compressed archive containing the training data. + # $ref: "#/definitions/Base64ContentSource" + + + ComposeDocumentModelRequest: + description: Request body to create a composed model from component models. + type: object + required: [ modelId, componentModels ] + properties: + modelId: + $ref: "#/definitions/ModelId" + description: + $ref: "#/definitions/ModelDescription" + componentModels: + description: List of component models to compose. + type: array + uniqueItems: true + items: + $ref: "#/definitions/ComponentModelInfo" + + ComponentModelInfo: + description: A component of a composed model. + type: object + required: [ modelId ] + properties: + modelId: + $ref: "#/definitions/ModelId" + # docTypes: # preview.2+ + # description: Optional list of document types from this model to include in the composed model. If not specified, all document types from this model will be included. + # type: array + # items: + # $ref: "#/definitions/DocType" + + + AuthorizeCopyRequest: + description: Request body to authorize model copy. + type: object + required: [ modelId ] + properties: + modelId: + $ref: "#/definitions/ModelId" + description: + $ref: "#/definitions/ModelDescription" + + GetOperationsResponse: + description: List Operations response object. + type: object + required: [ value ] + properties: + value: + description: List of operations. + type: array + items: + $ref: "#/definitions/OperationInfo" + nextLink: + description: Link to the next page of operations. + type: string + + GetOperationResponse: + description: Get Operation response object. + type: object + allOf: + - $ref: "#/definitions/OperationInfo" + properties: + error: # status=failed + description: Encountered error. + $ref: "#/definitions/Error" + result: # status=succeeded + description: Operation result upon success. + type: object + + GetModelsResponse: + description: List Models response object. + type: object + required: [ value ] + properties: + value: + description: List of models. + type: array + items: + $ref: "#/definitions/ModelSummary" + "nextLink": + description: Link to the next page of models. + type: string + + GetInfoResponse: + description: General information regarding the current resource. + type: object + required: [ customDocumentModels ] + properties: + customDocumentModels: + $ref: "#/definitions/CustomDocumentModelsInfo" + + CustomDocumentModelsInfo: + description: Info regarding custom document models. + type: object + required: [ count, limit ] + properties: + count: + description: Number of custom models in the current resource. + type: integer + format: int32 + limit: + description: Maximum number of custom models supported in the current resource. + type: integer + format: int32 + + + ApiVersion: + description: API version. + type: string + enum: + - 2021-09-30-preview + x-ms-enum: + name: ApiVersion + modelAsString: true + + ErrorResponse: + description: Error response object. + type: object + required: [ error ] + properties: + error: + $ref: "#/definitions/Error" + + Error: + description: Error info. + type: object + required: [ code, message ] + properties: + code: + description: Error code. + type: string + message: + description: Error message. + type: string + target: + description: Target of the error. + type: string + details: + description: List of detailed errors. + type: array + items: + $ref: "#/definitions/Error" + innererror: + $ref: "#/definitions/InnerError" + + InnerError: + description: Detailed error. + type: object + required: [ code ] + properties: + code: + description: Error code. + type: string + message: + description: Error message. + type: string + innererror: + $ref: "#/definitions/InnerError" + + UrlContentSource: + description: Content at specified URL. + type: string + format: uri + + Base64ContentSource: + description: Content represented via Base64 encoding. + type: string + format: byte + + AzureBlobContentSource: + description: Azure Blob Storage content. + type: object + required: [ containerUrl ] + properties: + containerUrl: + description: Azure Blob Storage container URL. + type: string + format: uri + prefix: + description: Blob name prefix. + type: string + + CopyAuthorization: + description: Authorization to copy a model to the specified target resource and modelId. + type: object + required: [ targetResourceId, targetResourceRegion, targetModelId, targetModelLocation, accessToken, expirationDateTime ] + properties: + targetResourceId: + description: ID of the target Azure resource where the model should be copied to. + type: string + x-ms-azure-resource: true + targetResourceRegion: + description: Location of the target Azure resource where the model should be copied to. + type: string + targetModelId: + description: Identifier of the target model. + $ref: "#/definitions/ModelId" + targetModelLocation: + description: URL of the copied model in the target account. + type: string + accessToken: + description: Token used to authorize the request. + type: string + expirationDateTime: + description: Date/time when the access token expires. + type: string + format: date-time + + OperationInfo: + description: Operation info. + type: object + required: [ operationId, status, createdDateTime, lastUpdatedDateTime, kind, resourceLocation ] + properties: + operationId: + description: Operation ID + type: string + status: + description: Operation status. + type: string + enum: + - notStarted + - running + - failed + - succeeded + - canceled + x-ms-enum: + name: OperationStatus + modelAsString: false + percentCompleted: # status=running + description: Operation progress (0-100). + type: integer + format: int32 + minimum: 0 + maximum: 100 + createdDateTime: + description: Date and time (UTC) when the operation was created. + type: string + format: date-time + lastUpdatedDateTime: + description: Date and time (UTC) when the status was last updated. + type: string + format: date-time + kind: + description: Type of operation. + type: string + enum: + - documentModelBuild + - documentModelCompose + - documentModelCopyTo # resourceLocation is the target model location + x-ms-enum: + name: OperationKind + modelAsString: true + resourceLocation: + description: URL of the resource targeted by this operation. + type: string + + ModelSummary: + description: Model summary. + type: object + required: [ modelId, createdDateTime ] + properties: + modelId: + $ref: "#/definitions/ModelId" + description: + $ref: "#/definitions/ModelDescription" + createdDateTime: + description: Date and time (UTC) when the model was created. + type: string + format: date-time + + ModelInfo: + description: Model info. + type: object + allOf: + - $ref: "#/definitions/ModelSummary" + properties: + docTypes: + description: Supported document types. + type: object + additionalProperties: + $ref: "#/definitions/DocTypeInfo" + + DocTypeInfo: + description: Document type info. + type: object + required: [ fieldSchema ] + properties: + description: + $ref: "#/definitions/ModelDescription" + # technique: + # $ref: "#/definitions/DocumentModelBuildTechnique" + # ocrModel: + # description: OCR model used to train model. + # type: string # Ex. default-2021-09-30 + fieldSchema: + # SDK should represent this property as plain JSON string + $ref: "#/definitions/DocTypeSchema" + fieldConfidence: + description: Estimated confidence for each field. + type: object + additionalProperties: + type: number + minimum: 0 + maximum: 1 + + DocTypeSchema: + description: Description of the document semantic schema using a JSON Schema style syntax. + type: object + additionalProperties: + $ref: "#/definitions/DocumentFieldSchema" + + DocumentFieldSchema: + description: Description of the field semantic schema using a JSON Schema style syntax. + type: object + required: [ type ] + properties: + type: + $ref: "#/definitions/DocumentFieldType" + # format: + # description: TODO + # type: string + description: + description: Field description. + type: string + example: + description: Example field content. + type: string + items: # type=array + description: Field type schema of each array element. + $ref: "#/definitions/DocumentFieldSchema" + properties: # type=object + description: Named sub-fields of the object field. + type: object + additionalProperties: + $ref: "#/definitions/DocumentFieldSchema" + + AnalyzeResultOperation: + description: Status and result of the analyze operation. + type: object + required: [ status, createdDateTime, lastUpdatedDateTime ] + properties: + status: + description: Operation status. + type: string + enum: + - notStarted + - running + - failed + - succeeded + x-ms-enum: + name: AnalyzeResultOperationStatus + modelAsString: false + createdDateTime: + description: Date and time (UTC) when the analyze operation was submitted. + type: string + format: date-time + lastUpdatedDateTime: + description: Date and time (UTC) when the status was last updated. + type: string + format: date-time + error: # status=failed + description: Encountered error during document analysis. + $ref: "#/definitions/Error" + analyzeResult: # status=succeeded + $ref: "#/definitions/AnalyzeResult" + + AnalyzeResult: + description: Document analysis result. + type: object + required: [ apiVersion, modelId, stringIndexType, content, pages ] + properties: + apiVersion: + description: API version used to produce this result. + $ref: "#/definitions/ApiVersion" + modelId: + description: Model ID used to produce this result. + $ref: "#/definitions/ModelId" + stringIndexType: + description: Method used to compute string offset and length. + $ref: "#/definitions/StringIndexType" + content: + description: Concatenate string representation of all textual and visual elements in reading order. + type: string + pages: + description: Analyzed pages. + type: array + items: + $ref: "#/definitions/DocumentPage" + tables: + description: Extracted tables. + type: array + items: + $ref: "#/definitions/DocumentTable" + keyValuePairs: + description: Extracted key-value pairs. + type: array + items: + $ref: "#/definitions/DocumentKeyValuePair" + entities: + description: Extracted entities. + type: array + items: + $ref: "#/definitions/DocumentEntity" + styles: + description: Extracted font styles. + type: array + items: + $ref: "#/definitions/DocumentStyle" + documents: + description: Extracted documents. + type: array + items: + $ref: "#/definitions/Document" + # errors: + # description: Errors encountered during the analysis. + # type: array + # items: + # $ref: "#/definitions/Error" + + DocumentPage: + description: Content and layout elements extracted from a page from the input. + type: object + required: [ pageNumber, angle, width, height, unit, words, lines, spans ] + properties: + # Basic page-level statistics + pageNumber: + description: 1-based page number in the input document. + type: integer + format: int32 + minimum: 1 + angle: + description: The general orientation of the content in clockwise direction, measured in degrees between (-180, 180]. + type: number + minimum: -180 + maximum: 180 + exclusiveMinimum: true + width: + description: The width of the image/PDF in pixels/inches, respectively. + type: number + minimum: 0 + height: + description: The height of the image/PDF in pixels/inches, respectively. + type: number + minimum: 0 + unit: + description: The unit used by the width, height, and boundingBox properties. For images, the unit is "pixel". For PDF, the unit is "inch". + type: string + enum: [ pixel, inch ] + x-ms-enum: + name: LengthUnit + modelAsString: true + spans: + description: Location of the page in the reading order concatenated content. + type: array + items: + $ref: "#/definitions/DocumentSpan" + + # Textual/visual content elements + words: + description: Extracted words from the page. + type: array + items: + $ref: "#/definitions/DocumentWord" + selectionMarks: + description: Extracted selection marks from the page. + type: array + items: + $ref: "#/definitions/DocumentSelectionMark" + # visualElements: # [preview.2+] + # description: Extracted visual elements from the page. + # type: array + # items: + # $ref: "#/definitions/DocumentVisualElement" + + # Layout elements + lines: + description: Extracted lines from the page, potentially containing both textual and visual elements. + type: array + items: + $ref: "#/definitions/DocumentLine" + + # blocks: # [preview.3+] + # description: Extracted layout blocks from the page. + # type: array + # items: + # $ref: "#/definitions/DocumentBlock" + + DocumentWord: + description: A word object consisting of a contiguous sequence of characters. For non-space delimited languages, such as Chinese, Japanese, and Korean, each character is represented as its own word. + type: object + required: [ content, span, confidence ] + properties: + content: # Derived + description: Text content of the word. + type: string + boundingBox: + description: Bounding box of the word. + $ref: "#/definitions/BoundingBox" + span: + description: Location of the word in the reading order concatenated content. + $ref: "#/definitions/DocumentSpan" + confidence: + description: Confidence of correctly extracting the word. + $ref: "#/definitions/Confidence" + # charPositions: # [v3.1+] + # description: Normalized starting horizontal position of each character in the word. + # type: array + # items: + # type: number + # minimum: 0 + # maximum: 1 + + DocumentSelectionMark: + description: A selection mark object representing check boxes, radio buttons, and other elements indicating a selection. + type: object + required: [ state, span, confidence ] + properties: + state: + description: State of the selection mark. + $ref: "#/definitions/DocumentSelectionMarkState" + boundingBox: + description: Bounding box of the selection mark. + $ref: "#/definitions/BoundingBox" + span: + description: Location of the selection mark in the reading order concatenated content. + $ref: "#/definitions/DocumentSpan" + confidence: + description: Confidence of correctly extracting the selection mark. + $ref: "#/definitions/Confidence" + + DocumentSelectionMarkState: + description: State of the selection mark. + type: string + enum: [ selected, unselected ] + x-ms-enum: + name: SelectionMarkState + modelAsString: true + + # DocumentVisualElement: # [preview.3+] + # description: An object representing various visual elements. + # type: object + # required: [ type, span ] + # properties: + # # NAMING: type, kind, ... + # kind: + # description: Kind of visual element. + # type: string + # enum: [ image, separator ] + # x-ms-enum: + # name: VisualElementKind + # modelAsString: true + # boundingBox: + # description: Bounding box of the visual element. + # $ref: "#/definitions/BoundingBox" + # span: + # description: Location of the visual element in the reading order concatenated content. + # $ref: "#/definitions/DocumentSpan" + # confidence: + # description: Confidence of correctly extracting the visual element. + # $ref: "#/definitions/Confidence" + + DocumentLine: + description: A content line object consisting of an adjacent sequence of content elements, such as words and selection marks. + type: object + required: [ content, spans ] + properties: + content: + description: Concatenated content of the contained elements in reading order. + type: string + boundingBox: + description: Bounding box of the line. + $ref: "#/definitions/BoundingBox" + spans: + description: Location of the line in the reading order concatenated content. + type: array + items: + $ref: "#/definitions/DocumentSpan" + # confidence: # [preview.2+] + # description: Confidence of correctly extracting the line. + # $ref: "#/definitions/Confidence" + + # DocumentBlock: # [preview.3+] + # description: A block object that describes various layout elements. + # type: object + # required: [ kind, content, spans ] + # properties: + # kind: + # description: Kind of layout block element. + # type: string + # enum: [ paragraph, column ] + # x-ms-enum: + # name: VisualElementKind + # modelAsString: true + # content: + # description: Concatenated content of the layout block in reading order. + # type: string + # boundingBox: + # description: Bounding box of the layout block element. + # $ref: "#/definitions/BoundingBox" + # spans: + # description: Location of the layout block element in the reading order concatenated content. + # type: array + # items: + # $ref: "#/definitions/DocumentSpan" + # continuation: # [preview.3+] + # description: If the block is split, pointer to the continuation block. + # $ref: "#/definitions/Continuation" + # confidence: # [preview.3+] + # description: Confidence of correctly extracting the layout block element. + # $ref: "#/definitions/Confidence" + + DocumentTable: + # TODO: Do we want to represent empty cells? + # TODO: Do we want to represent cell boundaries? Via a box object? + description: A table object consisting table cells arranged in a rectangular layout. + type: object + required: [ rowCount, columnCount, cells, spans ] + properties: + rowCount: + description: Number of rows in the table. + type: integer + format: int32 + minimum: 1 + columnCount: + description: Number of columns in the table. + type: integer + format: int32 + minimum: 1 + cells: + description: Cells contained within the table. + type: array + items: + $ref: "#/definitions/DocumentTableCell" + boundingRegions: + description: Bounding regions covering the table. + type: array + items: + $ref: "#/definitions/BoundingRegion" + spans: + description: Location of the table in the reading order concatenated content. + type: array + items: + $ref: "#/definitions/DocumentSpan" + # confidence: # [preview.2+] + # description: Confidence of correctly extracting the table. + # $ref: "#/definitions/Confidence" + + DocumentTableCell: + description: An object representing the location and content of a table cell. + type: object + required: [ rowIndex, columnIndex, content, spans ] + properties: + kind: + description: Table cell kind. + type: string + enum: [ content, rowHeader, columnHeader, stubHead, description ] + default: content + x-ms-enum: + name: DocumentTableCellKind + modelAsString: true + rowIndex: + description: Row index of the cell. + type: integer + format: int32 + columnIndex: + description: Column index of the cell. + type: integer + format: int32 + rowSpan: + description: Number of rows spanned by this cell. + type: integer + format: int32 + minimum: 1 + default: 1 + columnSpan: + description: Number of columns spanned by this cell. + type: integer + format: int32 + minimum: 1 + default: 1 + content: + description: Concatenated content of the table cell in reading order. + type: string + boundingRegions: + description: Bounding regions covering the table cell. + type: array + items: + $ref: "#/definitions/BoundingRegion" + spans: + description: Location of the table cell in the reading order concatenated content. + type: array + items: + $ref: "#/definitions/DocumentSpan" + # confidence: # [preview.2+] + # description: Confidence of correctly extracting the table cell. + # $ref: "#/definitions/Confidence" + + DocumentKeyValuePair: + description: An object representing a form field with distinct field label (key) and field value (may be empty). + type: object + required: [ key, confidence ] + properties: + key: + description: Field label of the key-value pair. + $ref: "#/definitions/DocumentKeyValueElement" + value: + description: Field value of the key-value pair. + $ref: "#/definitions/DocumentKeyValueElement" + confidence: + description: Confidence of correctly extracting the key-value pair. + $ref: "#/definitions/Confidence" + + DocumentKeyValueElement: + description: An object representing the field key or value in a key-value pair. + type: object + required: [ content, spans ] + properties: + content: + description: Concatenated content of the key-value element in reading order. + type: string + boundingRegions: + description: Bounding regions covering the key-value element. + type: array + items: + $ref: "#/definitions/BoundingRegion" + spans: + description: Location of the key-value element in the reading order concatenated content. + type: array + items: + $ref: "#/definitions/DocumentSpan" + + DocumentEntity: + description: An object representing various categories of entities. + type: object + required: [ category, content, spans, confidence ] + properties: + category: + description: Entity type. + type: string + subCategory: + description: Entity sub type. + type: string + content: + description: Entity content. + type: string + boundingRegions: + description: Bounding regions covering the entity. + type: array + items: + $ref: "#/definitions/BoundingRegion" + spans: + description: Location of the entity in the reading order concatenated content. + type: array + items: + $ref: "#/definitions/DocumentSpan" + confidence: + description: Confidence of correctly extracting the entity. + $ref: "#/definitions/Confidence" + # TODO: type, value* [preview.2+] + + DocumentStyle: + # Font properties: https://developer.mozilla.org/en-US/docs/Learn/CSS/Styling_text/Fundamentals + description: An object representing observed text styles. + type: object + required: [ spans, confidence ] + properties: + isHandwritten: + description: Is content handwritten? + type: boolean + # fontFamily: + # description: Font family of the text in the specified spans. + # type: string + # enum: [ serif, sanSerif, monospace, cursive, fantasy ] + # x-ms-enum: + # name: FontFamily + # modelAsString: true + # fontStyle: + # description: Font style of the text in the specified spans. + # type: string + # enum: [ normal, italic ] + # x-ms-enum: + # name: FontStyle + # modelAsString: true + # fontWeight: + # description: Font weight of the text in the specified spans. + # type: string + # enum: [ normal, bold, light ] + # x-ms-enum: + # name: FontWeight + # modelAsString: true + # textDecoration: + # description: Font decoration of the text in the specified spans. + # type: array + # items: + # type: string + # # format: # See CSS spec + # fontSize: + # description: Font size of the text in the specified spans. + # type: number + # minimum: 0 + spans: + description: Location of the text elements in the concatenated content the style applies to. + type: array + items: + $ref: "#/definitions/DocumentSpan" + confidence: + description: Confidence of correctly identifying the style. + $ref: "#/definitions/Confidence" + + Document: + description: An object describing the location and semantic content of a document. + type: object + required: [ docType, fields, spans, confidence ] + properties: + docType: + description: Document type. + $ref: "#/definitions/DocType" + boundingRegions: + description: Bounding regions covering the document. + type: array + items: + $ref: "#/definitions/BoundingRegion" + spans: + description: Location of the document in the reading order concatenated content. + type: array + items: + $ref: "#/definitions/DocumentSpan" + fields: + description: Dictionary of named field values. + type: object + additionalProperties: # Property name regex: [\p{L}\p{N}]{1,64} + $ref: "#/definitions/DocumentField" + confidence: + description: Confidence of correctly extracting the document. + $ref: "#/definitions/Confidence" + + DocumentField: + description: An object representing the content and location of a field value. + type: object + required: [ type ] + properties: + # TODO: Consider introducing kind={extraction,classification}. + # Classification field: type, value{Type}, confidence + # Extraction field: type, value{Type}, content, boundingRegions, spans, confidence + type: + description: Data type of the field value. + $ref: "#/definitions/DocumentFieldType" + valueString: + description: String value. + type: string + valueDate: + description: Date value in YYYY-MM-DD format (ISO 8601). + type: string + format: date + valueTime: + description: Time value in hh:mm:ss format (ISO 8601). + type: string + format: time + valuePhoneNumber: + description: Phone number value in E.164 format (ex. +19876543210). + type: string + # format: See E.164 + valueNumber: + description: Floating point value. + type: number + valueInteger: + description: Integer value. + type: integer + format: int64 + valueSelectionMark: + description: Selection mark value. + $ref: "#/definitions/DocumentSelectionMarkState" + valueSignature: + description: Presence of signature. + type: string + enum: + - signed + - unsigned + x-ms-enum: + name: DocumentSignatureType + modelAsString: true + valueCountryRegion: + description: 3-letter country code value (ISO 3166-1 alpha-3). + type: string + valueArray: + description: Array of field values. + type: array + items: + $ref: "#/definitions/DocumentField" + valueObject: + description: Dictionary of named field values. + type: object + additionalProperties: + $ref: "#/definitions/DocumentField" + content: + description: Field content. + type: string + boundingRegions: + description: Bounding regions covering the field. + type: array + items: + $ref: "#/definitions/BoundingRegion" + spans: + description: Location of the field in the reading order concatenated content. + type: array + items: + $ref: "#/definitions/DocumentSpan" + confidence: + description: Confidence of correctly extracting the field. + $ref: "#/definitions/Confidence" + + DocumentFieldType: + description: Semantic data type of the field value. + type: string + enum: [ string, date, time, phoneNumber, number, integer, selectionMark, countryRegion, signature, array, object ] + x-ms-enum: + name: DocumentFieldType + modelAsString: true + + ModelId: + description: Unique model name. + type: string + pattern: "[a-zA-Z0-9][a-zA-Z0-9._~-]{1,63}" + + ModelDescription: + description: Model description. + type: string + maxLength: 4096 + + # DocumentModelBuildTechnique: + # description: Technique for building a custom model. + # type: string + # enum: + # - fixedTemplate-2021-09-30 + # # - general-2021-09-30-preview + # x-ms-enum: + # name: DocumentModelBuildTechnique + # modelAsString: true + + DocType: + description: Document type name. + type: string + minLength: 2 + maxLength: 64 + + BoundingBox: + description: Quadrangle bounding box, with coordinates specified relative to the top-left of the page. The eight numbers represent the four points, clockwise from the top-left corner relative to the text orientation. + type: array + minItems: 8 + maxItems: 8 + items: + type: number + minimum: 0 + + BoundingRegion: + description: Bounding box on a specific page of the input. + type: object + required: [ pageNumber, boundingBox ] + properties: + pageNumber: + description: 1-based page number of page containing the bounding region. + type: integer + format: int32 + minimum: 1 + boundingBox: + description: Bounding box on the page, or the entire page if not specified. + $ref: "#/definitions/BoundingBox" + + Confidence: + description: Prediction confidence. + type: number + minimum: 0.0 + maximum: 1.0 + + DocumentSpan: + description: Contiguous region of the concatenated content property, specified as an offset and length. + type: object + required: [ offset, length ] + properties: + offset: + description: Zero-based index of the content represented by the span. + type: integer + format: int32 + minimum: 0 + length: + description: Number of characters in the content represented by the span. + type: integer + format: int32 + minimum: 0 + + StringIndexType: + description: Method used to compute string offset and length. + type: string + enum: + - textElements + - unicodeCodePoint + - utf16CodeUnit + x-ms-enum: + name: StringIndexType + modelAsString: true + default: textElements + + # [FR v3.1+] + # Continuation: + # description: Pointer to the continuation element if the current element is split. + # type: string + # format: uri-reference # Ex. "#/pages/0/blocks/3" + +parameters: + Endpoint: + name: endpoint + description: 'Supported Cognitive Services endpoints (protocol and hostname, for + example: https://westus2.api.cognitive.microsoft.com).' + x-ms-parameter-location: client + required: true + type: string + in: path + x-ms-skip-url-encoding: true + QueryApiVersion: + name: api-version + description: Requested API version. + required: true + type: string + in: query + enum: + - 2021-09-30-preview + x-ms-enum: + name: ApiVersion + modelAsString: true + x-ms-parameter-location: client + PathModelId: + name: modelId + description: Unique model name. + required: true + type: string + pattern: "[a-zA-Z0-9][a-zA-Z0-9._~-]{1,63}" + in: path + x-ms-parameter-location: method + PathOperationId: + name: operationId + description: Unique operation ID. + required: true + type: string + in: path + x-ms-parameter-location: method + PathResultId: + name: resultId + description: Analyze operation result ID. + required: true + type: string + in: path + x-ms-parameter-location: method + QueryPages: + name: pages + description: List of 1-based page numbers to analyze. Ex. "1-3,5,7-9" + required: false + type: string + in: query + pattern: ^(\d+(-\d+)?)(,\s*(\d+(-\d+)?))*$ + x-ms-parameter-location: method + QueryLocale: + name: locale + description: Locale hint for text recognition and document analysis. Value may contain only the language code (ex. "en", "fr") or BCP 47 language tag (ex. "en-US"). + required: false + type: string + in: query + x-ms-parameter-location: method + QueryStringIndexType: + name: stringIndexType + description: Method used to compute string offset and length. + required: false + in: query + type: string + enum: + - textElements + - unicodeCodePoint + - utf16CodeUnit + x-ms-enum: + name: StringIndexType + modelAsString: true + default: textElements + x-ms-parameter-location: method + # HeaderRepeatabilityRequestId: + # name: Repeatability-Request-ID + # description: Client-generated unique request ID. + # required: false + # type: string + # in: header + # x-ms-parameter-location: method + # HeaderRepeatabilityFirstSent: + # name: RepeatabilityFirst-Sent + # description: Date and time the request was first created. + # required: false + # type: string + # in: header + # # format: IMF-fixdate https://www.rfc-editor.org/rfc/rfc7231.html#section-7.1.1.1 + # x-ms-parameter-location: method + \ No newline at end of file diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/AnalyzeDocument_Base64.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/AnalyzeDocument_Base64.json new file mode 100644 index 000000000000..9f4032ce41cd --- /dev/null +++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/AnalyzeDocument_Base64.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "endpoint": "{endpoint}", + "api-version": "{apiVersion}", + "modelId": "prebuilt-layout", + "pages": "1-2,4", + "locale": "en-US", + "stringIndexType": "textElements", + "analyzeRequest": { + "base64Source": "{base64EncodedPdf}" + } + }, + "responses": { + "202": { + "headers": { + "Operation-Location": "{endpoint}/formrecognizer/documentModels/prebuilt-layout/analyzeResults/{resultId}?api-version={apiVersion}" + } + } + } +} diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/AnalyzeDocument_Url.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/AnalyzeDocument_Url.json new file mode 100644 index 000000000000..cf5915e79d9e --- /dev/null +++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/AnalyzeDocument_Url.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "endpoint": "{endpoint}", + "api-version": "{apiVersion}", + "modelId": "customModel", + "pages": "1-2,4", + "locale": "en-US", + "stringIndexType": "textElements", + "analyzeRequest": { + "urlSource": "http://host.com/doc.pdf" + } + }, + "responses": { + "202": { + "headers": { + "Operation-Location": "{endpoint}/formrecognizer/documentModels/customModel/analyzeResults/{resultId}?api-version={apiVersion}" + } + } + } +} diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/AuthorizeCopyDocumentModel.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/AuthorizeCopyDocumentModel.json new file mode 100644 index 000000000000..660c79dd27e1 --- /dev/null +++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/AuthorizeCopyDocumentModel.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "endpoint": "{endpoint}", + "api-version": "{apiVersion}", + "authorizeCopyRequest": { + "modelId": "{targetModelId}", + "description": "{targetModelDescription}" + } + }, + "responses": { + "200": { + "body": { + "targetResourceId": "{targetResourceId}", + "targetResourceRegion": "{targetResourceRegion}", + "targetModelId": "{targetModelId}", + "targetModelLocation": "{targetEndpoint}/formrecognizer/documentModels/{targetModelId}?api-version={apiVersion}", + "accessToken": "{accessToken}", + "expirationDateTime": "2021-09-23T09:12:54.552Z" + } + } + } +} diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/BuildDocumentModel.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/BuildDocumentModel.json new file mode 100644 index 000000000000..ea10ecf207f1 --- /dev/null +++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/BuildDocumentModel.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "endpoint": "{endpoint}", + "api-version": "{apiVersion}", + "buildRequest": { + "modelId": "{modelId}", + "description": "{modelDescription}", + "azureBlobSource": { + "containerUrl": "https://{storageAccount}.blob.core.windows.net/{containerName}?{sasToken}", + "prefix": "{blobNamePrefix}" + } + } + }, + "responses": { + "202": { + "headers": { + "Operation-Location": "{endpoint}/formrecognizer/operations/{operationId}?api-version={apiVersion}" + } + } + } +} diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/ComposeDocumentModel.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/ComposeDocumentModel.json new file mode 100644 index 000000000000..b59559fdb6b5 --- /dev/null +++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/ComposeDocumentModel.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "endpoint": "{endpoint}", + "api-version": "{apiVersion}", + "composeRequest": { + "modelId": "{composedModelId}", + "description": "{composedModelDescription}", + "componentModels": [ + { + "modelId": "{modelId1}" + }, + { + "modelId": "{modelId2}" + } + ] + } + }, + "responses": { + "202": { + "headers": { + "Operation-Location": "{endpoint}/formrecognizer/operations/{operationId}?api-version={apiVersion}" + } + } + } +} diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/CopyDocumentModelTo.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/CopyDocumentModelTo.json new file mode 100644 index 000000000000..6c55bc8d1939 --- /dev/null +++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/CopyDocumentModelTo.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "endpoint": "{endpoint}", + "api-version": "{apiVersion}", + "modelId": "sourceModel", + "copyToRequest": { + "targetResourceId": "{targetResourceId}", + "targetResourceRegion": "{targetResourceRegion}", + "targetModelId": "targetModel", + "targetModelLocation": "{targetEndpoint}/formrecognizer/documentModels/targetModel?api-version={apiVersion}", + "accessToken": "{accessToken}", + "expirationDateTime": "2021-09-23T09:12:54.552Z" + } + }, + "responses": { + "202": { + "headers": { + "Operation-Location": "{endpoint}/formrecognizer/operations/{operationId}?api-version={apiVersion}" + } + } + } +} diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/DeleteModel.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/DeleteModel.json new file mode 100644 index 000000000000..5b86b604dbf9 --- /dev/null +++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/DeleteModel.json @@ -0,0 +1,10 @@ +{ + "parameters": { + "endpoint": "{endpoint}", + "api-version": "{apiVersion}", + "modelId": "{modelId}" + }, + "responses": { + "204": {} + } +} diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetAnalyzeDocumentResult.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetAnalyzeDocumentResult.json new file mode 100644 index 000000000000..4bcfdbd68f41 --- /dev/null +++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetAnalyzeDocumentResult.json @@ -0,0 +1,7219 @@ +{ + "parameters": { + "endpoint": "{endpoint}", + "api-version": "{apiVersion}", + "modelId": "prebuilt-invoice", + "resultId": "{resultId}" + }, + "responses": { + "200": { + "body": { + "status": "succeeded", + "createdDateTime": "2021-09-24T13:00:46Z", + "lastUpdatedDateTime": "2021-09-24T13:00:49Z", + "analyzeResult": { + "apiVersion": "{apiVersion}", + "modelId": "prebuilt-invoice", + "stringIndexType": "textElements", + "content": "CONTOSO LTD.\nINVOICE\nContoso Headquarters\nINVOICE: INV-100\n123 456th St\nINVOICE DATE: 11/15/2019\nNew York, NY, 10001\nDUE DATE: 12/15/2019\nCUSTOMER NAME: MICROSOFT CORPORATION\nSERVICE PERIOD: 10/14/2019 – 11/14/2019\nCUSTOMER ID: CID-12345\nMicrosoft Corp\n123 Other St,\nRedmond WA, 98052\nBILL TO:\nSHIP TO:\nSERVICE ADDRESS:\nMicrosoft Finance\nMicrosoft Delivery\nMicrosoft Services\n123 Bill St,\n123 Ship St,\n123 Service St,\nRedmond WA, 98052\nRedmond WA, 98052\nRedmond WA, 98052\nSALESPERSON\nP.O. NUMBER\nREQUISITIONER\nSHIPPED VIA\nF.O.B. POINT\nTERMS\nPO-3333\nDATE\nITEM CODE\nDESCRIPTION\nQTY\nUM\nPRICE\nTAX\nAMOUNT\n3/4/2021\nA123\nConsulting Services\n2\nhours\n$30.00\n10%\n$60.00\n3/5/2021\nB456\nDocument Fee\n3\n$10.00\n5%\n$30.00\n3/6/2021\nC789\nPrinting Fee\n10\npages\n$1.00\n20%\n$10.00\nSUBTOTAL\n$100.00\nSALES TAX\n$10.00\nTOTAL\n$110.00\nPREVIOUS UNPAID BALANCE\n$500.00\nAMOUNT DUE\n$610.00\nTHANK YOU FOR YOUR BUSINESS!\nREMIT TO:\nContoso Billing\n123 Remit St\nNew York, NY, 10001\n:unselected:", + "pages": [ + { + "pageNumber": 1, + "angle": 0, + "width": 8.5, + "height": 11, + "unit": "inch", + "words": [ + { + "content": "CONTOSO", + "boundingBox": [ + 0.5911, + 0.6857, + 1.7451, + 0.6857, + 1.7451, + 0.8664, + 0.5911, + 0.8664 + ], + "confidence": 1, + "span": { + "offset": 0, + "length": 7 + } + }, + { + "content": "LTD.", + "boundingBox": [ + 1.8441, + 0.6879, + 2.3181, + 0.6879, + 2.3181, + 0.865, + 1.8441, + 0.865 + ], + "confidence": 1, + "span": { + "offset": 8, + "length": 4 + } + }, + { + "content": "INVOICE", + "boundingBox": [ + 7.0751, + 0.589, + 7.9886, + 0.589, + 7.9886, + 0.7697, + 7.0751, + 0.7697 + ], + "confidence": 1, + "span": { + "offset": 13, + "length": 7 + } + }, + { + "content": "Contoso", + "boundingBox": [ + 0.5882, + 1.4303, + 1.1337, + 1.4303, + 1.1337, + 1.5383, + 0.5882, + 1.5383 + ], + "confidence": 1, + "span": { + "offset": 21, + "length": 7 + } + }, + { + "content": "Headquarters", + "boundingBox": [ + 1.1905, + 1.4239, + 2.0978, + 1.4239, + 2.0978, + 1.5664, + 1.1905, + 1.5664 + ], + "confidence": 1, + "span": { + "offset": 29, + "length": 12 + } + }, + { + "content": "INVOICE:", + "boundingBox": [ + 6.8599, + 1.4217, + 7.4328, + 1.4217, + 7.4328, + 1.5218, + 6.8599, + 1.5218 + ], + "confidence": 1, + "span": { + "offset": 42, + "length": 8 + } + }, + { + "content": "INV-100", + "boundingBox": [ + 7.4959, + 1.422, + 7.9988, + 1.422, + 7.9988, + 1.5215, + 7.4959, + 1.5215 + ], + "confidence": 1, + "span": { + "offset": 51, + "length": 7 + } + }, + { + "content": "123", + "boundingBox": [ + 0.5945, + 1.6339, + 0.8213, + 1.6339, + 0.8213, + 1.742, + 0.5945, + 1.742 + ], + "confidence": 1, + "span": { + "offset": 59, + "length": 3 + } + }, + { + "content": "456th", + "boundingBox": [ + 0.874, + 1.6092, + 1.2102, + 1.6092, + 1.2102, + 1.742, + 0.874, + 1.742 + ], + "confidence": 1, + "span": { + "offset": 63, + "length": 5 + } + }, + { + "content": "St", + "boundingBox": [ + 1.2598, + 1.6339, + 1.3812, + 1.6339, + 1.3812, + 1.742, + 1.2598, + 1.742 + ], + "confidence": 1, + "span": { + "offset": 69, + "length": 2 + } + }, + { + "content": "INVOICE", + "boundingBox": [ + 6.2263, + 1.6254, + 6.7562, + 1.6254, + 6.7562, + 1.7256, + 6.2263, + 1.7256 + ], + "confidence": 1, + "span": { + "offset": 72, + "length": 7 + } + }, + { + "content": "DATE:", + "boundingBox": [ + 6.8132, + 1.6267, + 7.1891, + 1.6267, + 7.1891, + 1.7248, + 6.8132, + 1.7248 + ], + "confidence": 1, + "span": { + "offset": 80, + "length": 5 + } + }, + { + "content": "11/15/2019", + "boundingBox": [ + 7.2528, + 1.6139, + 7.993, + 1.6139, + 7.993, + 1.7449, + 7.2528, + 1.7449 + ], + "confidence": 1, + "span": { + "offset": 86, + "length": 10 + } + }, + { + "content": "New", + "boundingBox": [ + 0.5943, + 1.8385, + 0.8848, + 1.8385, + 0.8848, + 1.9454, + 0.5943, + 1.9454 + ], + "confidence": 1, + "span": { + "offset": 97, + "length": 3 + } + }, + { + "content": "York,", + "boundingBox": [ + 0.9293, + 1.8307, + 1.2568, + 1.8307, + 1.2568, + 1.9675, + 0.9293, + 1.9675 + ], + "confidence": 1, + "span": { + "offset": 101, + "length": 5 + } + }, + { + "content": "NY,", + "boundingBox": [ + 1.3205, + 1.8382, + 1.5242, + 1.8382, + 1.5242, + 1.9675, + 1.3205, + 1.9675 + ], + "confidence": 1, + "span": { + "offset": 107, + "length": 3 + } + }, + { + "content": "10001", + "boundingBox": [ + 1.5915, + 1.8372, + 1.9894, + 1.8372, + 1.9894, + 1.9454, + 1.5915, + 1.9454 + ], + "confidence": 1, + "span": { + "offset": 111, + "length": 5 + } + }, + { + "content": "DUE", + "boundingBox": [ + 6.4966, + 1.8333, + 6.7569, + 1.8333, + 6.7569, + 1.9322, + 6.4966, + 1.9322 + ], + "confidence": 1, + "span": { + "offset": 117, + "length": 3 + } + }, + { + "content": "DATE:", + "boundingBox": [ + 6.8126, + 1.8333, + 7.1846, + 1.8333, + 7.1846, + 1.9315, + 6.8126, + 1.9315 + ], + "confidence": 1, + "span": { + "offset": 121, + "length": 5 + } + }, + { + "content": "12/15/2019", + "boundingBox": [ + 7.2494, + 1.8206, + 7.993, + 1.8206, + 7.993, + 1.9515, + 7.2494, + 1.9515 + ], + "confidence": 1, + "span": { + "offset": 127, + "length": 10 + } + }, + { + "content": "CUSTOMER", + "boundingBox": [ + 4.9513, + 2.0388, + 5.6868, + 2.0388, + 5.6868, + 2.1389, + 4.9513, + 2.1389 + ], + "confidence": 1, + "span": { + "offset": 138, + "length": 8 + } + }, + { + "content": "NAME:", + "boundingBox": [ + 5.7412, + 2.04, + 6.1764, + 2.04, + 6.1764, + 2.1381, + 5.7412, + 2.1381 + ], + "confidence": 1, + "span": { + "offset": 147, + "length": 5 + } + }, + { + "content": "MICROSOFT", + "boundingBox": [ + 6.2419, + 2.0391, + 6.9981, + 2.0391, + 6.9981, + 2.1386, + 6.2419, + 2.1386 + ], + "confidence": 1, + "span": { + "offset": 153, + "length": 9 + } + }, + { + "content": "CORPORATION", + "boundingBox": [ + 7.0448, + 2.0391, + 7.9825, + 2.0391, + 7.9825, + 2.1386, + 7.0448, + 2.1386 + ], + "confidence": 1, + "span": { + "offset": 163, + "length": 11 + } + }, + { + "content": "SERVICE", + "boundingBox": [ + 5.1667, + 2.2421, + 5.6923, + 2.2421, + 5.6923, + 2.3422, + 5.1667, + 2.3422 + ], + "confidence": 1, + "span": { + "offset": 175, + "length": 7 + } + }, + { + "content": "PERIOD:", + "boundingBox": [ + 5.748, + 2.2421, + 6.2721, + 2.2421, + 6.2721, + 2.3422, + 5.748, + 2.3422 + ], + "confidence": 1, + "span": { + "offset": 183, + "length": 7 + } + }, + { + "content": "10/14/2019", + "boundingBox": [ + 6.3357, + 2.2306, + 7.0749, + 2.2306, + 7.0749, + 2.3615, + 6.3357, + 2.3615 + ], + "confidence": 1, + "span": { + "offset": 191, + "length": 10 + } + }, + { + "content": "–", + "boundingBox": [ + 7.122, + 2.2922, + 7.1995, + 2.2922, + 7.1995, + 2.3037, + 7.122, + 2.3037 + ], + "confidence": 1, + "span": { + "offset": 202, + "length": 1 + } + }, + { + "content": "11/14/2019", + "boundingBox": [ + 7.2528, + 2.2306, + 7.9952, + 2.2306, + 7.9952, + 2.3615, + 7.2528, + 2.3615 + ], + "confidence": 1, + "span": { + "offset": 204, + "length": 10 + } + }, + { + "content": "CUSTOMER", + "boundingBox": [ + 6.3253, + 2.4488, + 7.0608, + 2.4488, + 7.0608, + 2.5489, + 6.3253, + 2.5489 + ], + "confidence": 1, + "span": { + "offset": 215, + "length": 8 + } + }, + { + "content": "ID:", + "boundingBox": [ + 7.1153, + 2.45, + 7.2809, + 2.45, + 7.2809, + 2.5481, + 7.1153, + 2.5481 + ], + "confidence": 1, + "span": { + "offset": 224, + "length": 3 + } + }, + { + "content": "CID-12345", + "boundingBox": [ + 7.3369, + 2.4491, + 7.9951, + 2.4491, + 7.9951, + 2.5486, + 7.3369, + 2.5486 + ], + "confidence": 1, + "span": { + "offset": 228, + "length": 9 + } + }, + { + "content": "Microsoft", + "boundingBox": [ + 0.5943, + 2.6436, + 1.2303, + 2.6436, + 1.2303, + 2.759, + 0.5943, + 2.759 + ], + "confidence": 1, + "span": { + "offset": 238, + "length": 9 + } + }, + { + "content": "Corp", + "boundingBox": [ + 1.2808, + 2.651, + 1.586, + 2.651, + 1.586, + 2.7871, + 1.2808, + 2.7871 + ], + "confidence": 1, + "span": { + "offset": 248, + "length": 4 + } + }, + { + "content": "123", + "boundingBox": [ + 0.5945, + 2.8541, + 0.8213, + 2.8541, + 0.8213, + 2.9623, + 0.5945, + 2.9623 + ], + "confidence": 1, + "span": { + "offset": 253, + "length": 3 + } + }, + { + "content": "Other", + "boundingBox": [ + 0.875, + 2.8476, + 1.262, + 2.8476, + 1.262, + 2.9623, + 0.875, + 2.9623 + ], + "confidence": 1, + "span": { + "offset": 257, + "length": 5 + } + }, + { + "content": "St,", + "boundingBox": [ + 1.3058, + 2.8541, + 1.4633, + 2.8541, + 1.4633, + 2.9845, + 1.3058, + 2.9845 + ], + "confidence": 1, + "span": { + "offset": 263, + "length": 3 + } + }, + { + "content": "Redmond", + "boundingBox": [ + 0.5943, + 3.0513, + 1.2222, + 3.0513, + 1.2222, + 3.1656, + 0.5943, + 3.1656 + ], + "confidence": 1, + "span": { + "offset": 267, + "length": 7 + } + }, + { + "content": "WA,", + "boundingBox": [ + 1.2753, + 3.0585, + 1.5468, + 3.0585, + 1.5468, + 3.1878, + 1.2753, + 3.1878 + ], + "confidence": 1, + "span": { + "offset": 275, + "length": 3 + } + }, + { + "content": "98052", + "boundingBox": [ + 1.6033, + 3.0575, + 2.0083, + 3.0575, + 2.0083, + 3.1656, + 1.6033, + 3.1656 + ], + "confidence": 1, + "span": { + "offset": 279, + "length": 5 + } + }, + { + "content": "BILL", + "boundingBox": [ + 0.5909, + 3.5603, + 0.8438, + 3.5603, + 0.8438, + 3.6579, + 0.5909, + 3.6579 + ], + "confidence": 1, + "span": { + "offset": 285, + "length": 4 + } + }, + { + "content": "TO:", + "boundingBox": [ + 0.8846, + 3.559, + 1.1032, + 3.559, + 1.1032, + 3.6592, + 0.8846, + 3.6592 + ], + "confidence": 1, + "span": { + "offset": 290, + "length": 3 + } + }, + { + "content": "SHIP", + "boundingBox": [ + 3.3361, + 3.559, + 3.6278, + 3.559, + 3.6278, + 3.6592, + 3.3361, + 3.6592 + ], + "confidence": 1, + "span": { + "offset": 294, + "length": 4 + } + }, + { + "content": "TO:", + "boundingBox": [ + 3.6716, + 3.559, + 3.8903, + 3.559, + 3.8903, + 3.6592, + 3.6716, + 3.6592 + ], + "confidence": 1, + "span": { + "offset": 299, + "length": 3 + } + }, + { + "content": "SERVICE", + "boundingBox": [ + 6.2104, + 3.559, + 6.7361, + 3.559, + 6.7361, + 3.6592, + 6.2104, + 3.6592 + ], + "confidence": 1, + "span": { + "offset": 303, + "length": 7 + } + }, + { + "content": "ADDRESS:", + "boundingBox": [ + 6.7828, + 3.559, + 7.4232, + 3.559, + 7.4232, + 3.6592, + 6.7828, + 3.6592 + ], + "confidence": 1, + "span": { + "offset": 311, + "length": 8 + } + }, + { + "content": "Microsoft", + "boundingBox": [ + 0.5943, + 3.7641, + 1.2303, + 3.7641, + 1.2303, + 3.8794, + 0.5943, + 3.8794 + ], + "confidence": 1, + "span": { + "offset": 320, + "length": 9 + } + }, + { + "content": "Finance", + "boundingBox": [ + 1.287, + 3.7701, + 1.7878, + 3.7701, + 1.7878, + 3.8794, + 1.287, + 3.8794 + ], + "confidence": 1, + "span": { + "offset": 330, + "length": 7 + } + }, + { + "content": "Microsoft", + "boundingBox": [ + 3.3454, + 3.7641, + 3.9814, + 3.7641, + 3.9814, + 3.8794, + 3.3454, + 3.8794 + ], + "confidence": 1, + "span": { + "offset": 338, + "length": 9 + } + }, + { + "content": "Delivery", + "boundingBox": [ + 4.0381, + 3.7647, + 4.5762, + 3.7647, + 4.5762, + 3.9076, + 4.0381, + 3.9076 + ], + "confidence": 1, + "span": { + "offset": 348, + "length": 8 + } + }, + { + "content": "Microsoft", + "boundingBox": [ + 6.2197, + 3.7641, + 6.8557, + 3.7641, + 6.8557, + 3.8794, + 6.2197, + 3.8794 + ], + "confidence": 1, + "span": { + "offset": 357, + "length": 9 + } + }, + { + "content": "Services", + "boundingBox": [ + 6.9042, + 3.7701, + 7.4427, + 3.7701, + 7.4427, + 3.8794, + 6.9042, + 3.8794 + ], + "confidence": 1, + "span": { + "offset": 367, + "length": 8 + } + }, + { + "content": "123", + "boundingBox": [ + 0.5945, + 3.9746, + 0.8213, + 3.9746, + 0.8213, + 4.0827, + 0.5945, + 4.0827 + ], + "confidence": 1, + "span": { + "offset": 376, + "length": 3 + } + }, + { + "content": "Bill", + "boundingBox": [ + 0.8842, + 3.9681, + 1.0657, + 3.9681, + 1.0657, + 4.0817, + 0.8842, + 4.0817 + ], + "confidence": 1, + "span": { + "offset": 380, + "length": 4 + } + }, + { + "content": "St,", + "boundingBox": [ + 1.1222, + 3.9746, + 1.2765, + 3.9746, + 1.2765, + 4.1049, + 1.1222, + 4.1049 + ], + "confidence": 1, + "span": { + "offset": 385, + "length": 3 + } + }, + { + "content": "123", + "boundingBox": [ + 3.3456, + 3.9746, + 3.5724, + 3.9746, + 3.5724, + 4.0827, + 3.3456, + 4.0827 + ], + "confidence": 1, + "span": { + "offset": 389, + "length": 3 + } + }, + { + "content": "Ship", + "boundingBox": [ + 3.6239, + 3.9681, + 3.9042, + 3.9681, + 3.9042, + 4.1109, + 3.6239, + 4.1109 + ], + "confidence": 1, + "span": { + "offset": 393, + "length": 4 + } + }, + { + "content": "St,", + "boundingBox": [ + 3.9536, + 3.9746, + 4.1111, + 3.9746, + 4.1111, + 4.1049, + 3.9536, + 4.1049 + ], + "confidence": 1, + "span": { + "offset": 398, + "length": 3 + } + }, + { + "content": "123", + "boundingBox": [ + 6.2199, + 3.9746, + 6.4467, + 3.9746, + 6.4467, + 4.0827, + 6.2199, + 4.0827 + ], + "confidence": 1, + "span": { + "offset": 402, + "length": 3 + } + }, + { + "content": "Service", + "boundingBox": [ + 6.4985, + 3.9734, + 6.9738, + 3.9734, + 6.9738, + 4.0827, + 6.4985, + 4.0827 + ], + "confidence": 1, + "span": { + "offset": 406, + "length": 7 + } + }, + { + "content": "St,", + "boundingBox": [ + 7.0246, + 3.9746, + 7.1821, + 3.9746, + 7.1821, + 4.1049, + 7.0246, + 4.1049 + ], + "confidence": 1, + "span": { + "offset": 414, + "length": 3 + } + }, + { + "content": "Redmond", + "boundingBox": [ + 0.5943, + 4.1717, + 1.2222, + 4.1717, + 1.2222, + 4.2861, + 0.5943, + 4.2861 + ], + "confidence": 1, + "span": { + "offset": 418, + "length": 7 + } + }, + { + "content": "WA,", + "boundingBox": [ + 1.2753, + 4.1789, + 1.5468, + 4.1789, + 1.5468, + 4.3082, + 1.2753, + 4.3082 + ], + "confidence": 1, + "span": { + "offset": 426, + "length": 3 + } + }, + { + "content": "98052", + "boundingBox": [ + 1.6033, + 4.1779, + 2.0083, + 4.1779, + 2.0083, + 4.2861, + 1.6033, + 4.2861 + ], + "confidence": 1, + "span": { + "offset": 430, + "length": 5 + } + }, + { + "content": "Redmond", + "boundingBox": [ + 3.3454, + 4.1717, + 3.9732, + 4.1717, + 3.9732, + 4.2861, + 3.3454, + 4.2861 + ], + "confidence": 1, + "span": { + "offset": 436, + "length": 7 + } + }, + { + "content": "WA,", + "boundingBox": [ + 4.0264, + 4.1789, + 4.2979, + 4.1789, + 4.2979, + 4.3082, + 4.0264, + 4.3082 + ], + "confidence": 1, + "span": { + "offset": 444, + "length": 3 + } + }, + { + "content": "98052", + "boundingBox": [ + 4.3544, + 4.1779, + 4.7594, + 4.1779, + 4.7594, + 4.2861, + 4.3544, + 4.2861 + ], + "confidence": 1, + "span": { + "offset": 448, + "length": 5 + } + }, + { + "content": "Redmond", + "boundingBox": [ + 6.2197, + 4.1717, + 6.8475, + 4.1717, + 6.8475, + 4.2861, + 6.2197, + 4.2861 + ], + "confidence": 1, + "span": { + "offset": 454, + "length": 7 + } + }, + { + "content": "WA,", + "boundingBox": [ + 6.9007, + 4.1789, + 7.1722, + 4.1789, + 7.1722, + 4.3082, + 6.9007, + 4.3082 + ], + "confidence": 1, + "span": { + "offset": 462, + "length": 3 + } + }, + { + "content": "98052", + "boundingBox": [ + 7.2287, + 4.1779, + 7.6337, + 4.1779, + 7.6337, + 4.2861, + 7.2287, + 4.2861 + ], + "confidence": 1, + "span": { + "offset": 466, + "length": 5 + } + }, + { + "content": "SALESPERSON", + "boundingBox": [ + 0.7018, + 4.6528, + 1.6092, + 4.6528, + 1.6092, + 4.7529, + 0.7018, + 4.7529 + ], + "confidence": 1, + "span": { + "offset": 472, + "length": 11 + } + }, + { + "content": "P.O.", + "boundingBox": [ + 2.1216, + 4.6528, + 2.3788, + 4.6528, + 2.3788, + 4.7529, + 2.1216, + 4.7529 + ], + "confidence": 1, + "span": { + "offset": 484, + "length": 4 + } + }, + { + "content": "NUMBER", + "boundingBox": [ + 2.4376, + 4.654, + 3.0155, + 4.654, + 3.0155, + 4.7529, + 2.4376, + 4.7529 + ], + "confidence": 1, + "span": { + "offset": 489, + "length": 6 + } + }, + { + "content": "REQUISITIONER", + "boundingBox": [ + 3.4953, + 4.6528, + 4.5157, + 4.6528, + 4.5157, + 4.7687, + 3.4953, + 4.7687 + ], + "confidence": 1, + "span": { + "offset": 496, + "length": 13 + } + }, + { + "content": "SHIPPED", + "boundingBox": [ + 4.81, + 4.6528, + 5.362, + 4.6528, + 5.362, + 4.7529, + 4.81, + 4.7529 + ], + "confidence": 1, + "span": { + "offset": 510, + "length": 7 + } + }, + { + "content": "VIA", + "boundingBox": [ + 5.409, + 4.654, + 5.6317, + 4.654, + 5.6317, + 4.7517, + 5.409, + 4.7517 + ], + "confidence": 1, + "span": { + "offset": 518, + "length": 3 + } + }, + { + "content": "F.O.B.", + "boundingBox": [ + 5.8696, + 4.6528, + 6.2467, + 4.6528, + 6.2467, + 4.7529, + 5.8696, + 4.7529 + ], + "confidence": 1, + "span": { + "offset": 522, + "length": 6 + } + }, + { + "content": "POINT", + "boundingBox": [ + 6.3054, + 4.6528, + 6.706, + 4.6528, + 6.706, + 4.7529, + 6.3054, + 4.7529 + ], + "confidence": 1, + "span": { + "offset": 529, + "length": 5 + } + }, + { + "content": "TERMS", + "boundingBox": [ + 7.1806, + 4.6528, + 7.6304, + 4.6528, + 7.6304, + 4.7529, + 7.1806, + 4.7529 + ], + "confidence": 1, + "span": { + "offset": 535, + "length": 5 + } + }, + { + "content": "PO-3333", + "boundingBox": [ + 1.9114, + 4.9282, + 2.4718, + 4.9282, + 2.4718, + 5.0363, + 1.9114, + 5.0363 + ], + "confidence": 1, + "span": { + "offset": 541, + "length": 7 + } + }, + { + "content": "DATE", + "boundingBox": [ + 0.7409, + 5.421, + 1.0744, + 5.421, + 1.0744, + 5.5186, + 0.7409, + 5.5186 + ], + "confidence": 1, + "span": { + "offset": 549, + "length": 4 + } + }, + { + "content": "ITEM", + "boundingBox": [ + 1.4213, + 5.421, + 1.7338, + 5.421, + 1.7338, + 5.5186, + 1.4213, + 5.5186 + ], + "confidence": 1, + "span": { + "offset": 554, + "length": 4 + } + }, + { + "content": "CODE", + "boundingBox": [ + 1.7893, + 5.4197, + 2.1407, + 5.4197, + 2.1407, + 5.5199, + 1.7893, + 5.5199 + ], + "confidence": 1, + "span": { + "offset": 559, + "length": 4 + } + }, + { + "content": "DESCRIPTION", + "boundingBox": [ + 2.8516, + 5.4197, + 3.7134, + 5.4197, + 3.7134, + 5.5199, + 2.8516, + 5.5199 + ], + "confidence": 1, + "span": { + "offset": 564, + "length": 11 + } + }, + { + "content": "QTY", + "boundingBox": [ + 4.4043, + 5.4197, + 4.6631, + 5.4197, + 4.6631, + 5.5357, + 4.4043, + 5.5357 + ], + "confidence": 1, + "span": { + "offset": 576, + "length": 3 + } + }, + { + "content": "UM", + "boundingBox": [ + 5.049, + 5.421, + 5.2654, + 5.421, + 5.2654, + 5.5199, + 5.049, + 5.5199 + ], + "confidence": 1, + "span": { + "offset": 580, + "length": 2 + } + }, + { + "content": "PRICE", + "boundingBox": [ + 5.8563, + 5.4199, + 6.2163, + 5.4199, + 6.2163, + 5.5197, + 5.8563, + 5.5197 + ], + "confidence": 1, + "span": { + "offset": 583, + "length": 5 + } + }, + { + "content": "TAX", + "boundingBox": [ + 6.7169, + 5.421, + 6.974, + 5.421, + 6.974, + 5.5186, + 6.7169, + 5.5186 + ], + "confidence": 1, + "span": { + "offset": 589, + "length": 3 + } + }, + { + "content": "AMOUNT", + "boundingBox": [ + 7.2847, + 5.4197, + 7.9039, + 5.4197, + 7.9039, + 5.5199, + 7.2847, + 5.5199 + ], + "confidence": 1, + "span": { + "offset": 593, + "length": 6 + } + }, + { + "content": "3/4/2021", + "boundingBox": [ + 0.592, + 5.682, + 1.2092, + 5.682, + 1.2092, + 5.8243, + 0.592, + 5.8243 + ], + "confidence": 1, + "span": { + "offset": 600, + "length": 8 + } + }, + { + "content": "A123", + "boundingBox": [ + 1.6069, + 5.6948, + 1.9417, + 5.6948, + 1.9417, + 5.803, + 1.6069, + 5.803 + ], + "confidence": 1, + "span": { + "offset": 609, + "length": 4 + } + }, + { + "content": "Consulting", + "boundingBox": [ + 2.3388, + 5.6883, + 3.0438, + 5.6883, + 3.0438, + 5.8312, + 2.3388, + 5.8312 + ], + "confidence": 1, + "span": { + "offset": 614, + "length": 10 + } + }, + { + "content": "Services", + "boundingBox": [ + 3.0925, + 5.6937, + 3.6278, + 5.6937, + 3.6278, + 5.803, + 3.0925, + 5.803 + ], + "confidence": 1, + "span": { + "offset": 625, + "length": 8 + } + }, + { + "content": "2", + "boundingBox": [ + 4.5977, + 5.6948, + 4.6635, + 5.6948, + 4.6635, + 5.8017, + 4.5977, + 5.8017 + ], + "confidence": 1, + "span": { + "offset": 634, + "length": 1 + } + }, + { + "content": "hours", + "boundingBox": [ + 4.8444, + 5.6883, + 5.2071, + 5.6883, + 5.2071, + 5.803, + 4.8444, + 5.803 + ], + "confidence": 1, + "span": { + "offset": 636, + "length": 5 + } + }, + { + "content": "$30.00", + "boundingBox": [ + 5.9669, + 5.6777, + 6.4142, + 5.6777, + 6.4142, + 5.8215, + 5.9669, + 5.8215 + ], + "confidence": 1, + "span": { + "offset": 642, + "length": 6 + } + }, + { + "content": "10%", + "boundingBox": [ + 6.7168, + 5.6932, + 6.9826, + 5.6932, + 6.9826, + 5.8045, + 6.7168, + 5.8045 + ], + "confidence": 1, + "span": { + "offset": 649, + "length": 3 + } + }, + { + "content": "$60.00", + "boundingBox": [ + 7.4642, + 5.6777, + 7.9116, + 5.6777, + 7.9116, + 5.8215, + 7.4642, + 5.8215 + ], + "confidence": 1, + "span": { + "offset": 653, + "length": 6 + } + }, + { + "content": "3/5/2021", + "boundingBox": [ + 0.592, + 5.9787, + 1.2088, + 5.9787, + 1.2088, + 6.121, + 0.592, + 6.121 + ], + "confidence": 1, + "span": { + "offset": 660, + "length": 8 + } + }, + { + "content": "B456", + "boundingBox": [ + 1.6214, + 5.9915, + 1.9419, + 5.9915, + 1.9419, + 6.0997, + 1.6214, + 6.0997 + ], + "confidence": 1, + "span": { + "offset": 669, + "length": 4 + } + }, + { + "content": "Document", + "boundingBox": [ + 2.345, + 5.993, + 3.0318, + 5.993, + 3.0318, + 6.0997, + 2.345, + 6.0997 + ], + "confidence": 1, + "span": { + "offset": 674, + "length": 8 + } + }, + { + "content": "Fee", + "boundingBox": [ + 3.0887, + 5.993, + 3.3096, + 5.993, + 3.3096, + 6.0997, + 3.0887, + 6.0997 + ], + "confidence": 1, + "span": { + "offset": 683, + "length": 3 + } + }, + { + "content": "3", + "boundingBox": [ + 4.5967, + 5.9915, + 4.6627, + 5.9915, + 4.6627, + 6.0997, + 4.5967, + 6.0997 + ], + "confidence": 1, + "span": { + "offset": 687, + "length": 1 + } + }, + { + "content": "$10.00", + "boundingBox": [ + 5.9669, + 5.9743, + 6.4142, + 5.9743, + 6.4142, + 6.1182, + 5.9669, + 6.1182 + ], + "confidence": 1, + "span": { + "offset": 689, + "length": 6 + } + }, + { + "content": "5%", + "boundingBox": [ + 6.7508, + 5.9898, + 6.9393, + 5.9898, + 6.9393, + 6.1012, + 6.7508, + 6.1012 + ], + "confidence": 1, + "span": { + "offset": 696, + "length": 2 + } + }, + { + "content": "$30.00", + "boundingBox": [ + 7.4642, + 5.9743, + 7.9116, + 5.9743, + 7.9116, + 6.1182, + 7.4642, + 6.1182 + ], + "confidence": 1, + "span": { + "offset": 699, + "length": 6 + } + }, + { + "content": "3/6/2021", + "boundingBox": [ + 0.592, + 6.2789, + 1.2088, + 6.2789, + 1.2088, + 6.4213, + 0.592, + 6.4213 + ], + "confidence": 1, + "span": { + "offset": 706, + "length": 8 + } + }, + { + "content": "C789", + "boundingBox": [ + 1.6152, + 6.2918, + 1.94, + 6.2918, + 1.94, + 6.3999, + 1.6152, + 6.3999 + ], + "confidence": 1, + "span": { + "offset": 715, + "length": 4 + } + }, + { + "content": "Printing", + "boundingBox": [ + 2.345, + 6.2906, + 2.8575, + 6.2906, + 2.8575, + 6.4281, + 2.345, + 6.4281 + ], + "confidence": 1, + "span": { + "offset": 720, + "length": 8 + } + }, + { + "content": "Fee", + "boundingBox": [ + 2.9143, + 6.2933, + 3.1351, + 6.2933, + 3.1351, + 6.3999, + 2.9143, + 6.3999 + ], + "confidence": 1, + "span": { + "offset": 729, + "length": 3 + } + }, + { + "content": "10", + "boundingBox": [ + 4.5158, + 6.2918, + 4.6637, + 6.2918, + 4.6637, + 6.3999, + 4.5158, + 6.3999 + ], + "confidence": 1, + "span": { + "offset": 733, + "length": 2 + } + }, + { + "content": "pages", + "boundingBox": [ + 4.8444, + 6.3196, + 5.2199, + 6.3196, + 5.2199, + 6.4281, + 4.8444, + 6.4281 + ], + "confidence": 1, + "span": { + "offset": 736, + "length": 5 + } + }, + { + "content": "$1.00", + "boundingBox": [ + 6.0502, + 6.2746, + 6.4142, + 6.2746, + 6.4142, + 6.4184, + 6.0502, + 6.4184 + ], + "confidence": 1, + "span": { + "offset": 742, + "length": 5 + } + }, + { + "content": "20%", + "boundingBox": [ + 6.712, + 6.2901, + 6.9826, + 6.2901, + 6.9826, + 6.4014, + 6.712, + 6.4014 + ], + "confidence": 1, + "span": { + "offset": 748, + "length": 3 + } + }, + { + "content": "$10.00", + "boundingBox": [ + 7.4642, + 6.2746, + 7.9116, + 6.2746, + 7.9116, + 6.4184, + 7.4642, + 6.4184 + ], + "confidence": 1, + "span": { + "offset": 752, + "length": 6 + } + }, + { + "content": "SUBTOTAL", + "boundingBox": [ + 6.0282, + 6.9118, + 6.7309, + 6.9118, + 6.7309, + 7.0199, + 6.0282, + 7.0199 + ], + "confidence": 1, + "span": { + "offset": 759, + "length": 8 + } + }, + { + "content": "$100.00", + "boundingBox": [ + 7.3842, + 6.8679, + 7.9181, + 6.8679, + 7.9181, + 7.0118, + 7.3842, + 7.0118 + ], + "confidence": 1, + "span": { + "offset": 768, + "length": 7 + } + }, + { + "content": "SALES", + "boundingBox": [ + 6.0382, + 7.2089, + 6.4262, + 7.2089, + 6.4262, + 7.317, + 6.0382, + 7.317 + ], + "confidence": 1, + "span": { + "offset": 776, + "length": 5 + } + }, + { + "content": "TAX", + "boundingBox": [ + 6.4702, + 7.2099, + 6.728, + 7.2099, + 6.728, + 7.316, + 6.4702, + 7.316 + ], + "confidence": 1, + "span": { + "offset": 782, + "length": 3 + } + }, + { + "content": "$10.00", + "boundingBox": [ + 7.4709, + 7.165, + 7.9182, + 7.165, + 7.9182, + 7.3089, + 7.4709, + 7.3089 + ], + "confidence": 1, + "span": { + "offset": 786, + "length": 6 + } + }, + { + "content": "TOTAL", + "boundingBox": [ + 6.2969, + 7.5089, + 6.7309, + 7.5089, + 6.7309, + 7.617, + 6.2969, + 7.617 + ], + "confidence": 1, + "span": { + "offset": 793, + "length": 5 + } + }, + { + "content": "$110.00", + "boundingBox": [ + 7.3842, + 7.465, + 7.9181, + 7.465, + 7.9181, + 7.6089, + 7.3842, + 7.6089 + ], + "confidence": 1, + "span": { + "offset": 799, + "length": 7 + } + }, + { + "content": "PREVIOUS", + "boundingBox": [ + 4.8126, + 7.8055, + 5.4789, + 7.8055, + 5.4789, + 7.9137, + 4.8126, + 7.9137 + ], + "confidence": 1, + "span": { + "offset": 807, + "length": 8 + } + }, + { + "content": "UNPAID", + "boundingBox": [ + 5.5362, + 7.8065, + 6.057, + 7.8065, + 6.057, + 7.9137, + 5.5362, + 7.9137 + ], + "confidence": 1, + "span": { + "offset": 816, + "length": 6 + } + }, + { + "content": "BALANCE", + "boundingBox": [ + 6.1164, + 7.8057, + 6.7249, + 7.8057, + 6.7249, + 7.9135, + 6.1164, + 7.9135 + ], + "confidence": 1, + "span": { + "offset": 823, + "length": 7 + } + }, + { + "content": "$500.00", + "boundingBox": [ + 7.3842, + 7.7617, + 7.9181, + 7.7617, + 7.9181, + 7.9055, + 7.3842, + 7.9055 + ], + "confidence": 1, + "span": { + "offset": 831, + "length": 7 + } + }, + { + "content": "AMOUNT", + "boundingBox": [ + 5.7652, + 8.1022, + 6.4055, + 8.1022, + 6.4055, + 8.2104, + 5.7652, + 8.2104 + ], + "confidence": 1, + "span": { + "offset": 839, + "length": 6 + } + }, + { + "content": "DUE", + "boundingBox": [ + 6.4562, + 8.1032, + 6.725, + 8.1032, + 6.725, + 8.2104, + 6.4562, + 8.2104 + ], + "confidence": 1, + "span": { + "offset": 846, + "length": 3 + } + }, + { + "content": "$610.00", + "boundingBox": [ + 7.3842, + 8.0584, + 7.9181, + 8.0584, + 7.9181, + 8.2022, + 7.3842, + 8.2022 + ], + "confidence": 1, + "span": { + "offset": 850, + "length": 7 + } + }, + { + "content": "THANK", + "boundingBox": [ + 3.129, + 8.5453, + 3.5887, + 8.5453, + 3.5887, + 8.6429, + 3.129, + 8.6429 + ], + "confidence": 1, + "span": { + "offset": 858, + "length": 5 + } + }, + { + "content": "YOU", + "boundingBox": [ + 3.6316, + 8.544, + 3.9064, + 8.544, + 3.9064, + 8.6442, + 3.6316, + 8.6442 + ], + "confidence": 1, + "span": { + "offset": 864, + "length": 3 + } + }, + { + "content": "FOR", + "boundingBox": [ + 3.9671, + 8.544, + 4.2187, + 8.544, + 4.2187, + 8.6442, + 3.9671, + 8.6442 + ], + "confidence": 1, + "span": { + "offset": 868, + "length": 3 + } + }, + { + "content": "YOUR", + "boundingBox": [ + 4.2638, + 8.544, + 4.6347, + 8.544, + 4.6347, + 8.6442, + 4.2638, + 8.6442 + ], + "confidence": 1, + "span": { + "offset": 872, + "length": 4 + } + }, + { + "content": "BUSINESS!", + "boundingBox": [ + 4.6859, + 8.539, + 5.356, + 8.539, + 5.356, + 8.6442, + 4.6859, + 8.6442 + ], + "confidence": 1, + "span": { + "offset": 877, + "length": 9 + } + }, + { + "content": "REMIT", + "boundingBox": [ + 0.5909, + 9.1619, + 1.0014, + 9.1619, + 1.0014, + 9.2596, + 0.5909, + 9.2596 + ], + "confidence": 1, + "span": { + "offset": 887, + "length": 5 + } + }, + { + "content": "TO:", + "boundingBox": [ + 1.0446, + 9.1607, + 1.2603, + 9.1607, + 1.2603, + 9.2608, + 1.0446, + 9.2608 + ], + "confidence": 1, + "span": { + "offset": 893, + "length": 3 + } + }, + { + "content": "Contoso", + "boundingBox": [ + 0.5882, + 9.3697, + 1.1337, + 9.3697, + 1.1337, + 9.4777, + 0.5882, + 9.4777 + ], + "confidence": 1, + "span": { + "offset": 897, + "length": 7 + } + }, + { + "content": "Billing", + "boundingBox": [ + 1.1905, + 9.3631, + 1.5828, + 9.3631, + 1.5828, + 9.5059, + 1.1905, + 9.5059 + ], + "confidence": 1, + "span": { + "offset": 905, + "length": 7 + } + }, + { + "content": "123", + "boundingBox": [ + 0.5945, + 9.5728, + 0.8213, + 9.5728, + 0.8213, + 9.681, + 0.5945, + 9.681 + ], + "confidence": 1, + "span": { + "offset": 913, + "length": 3 + } + }, + { + "content": "Remit", + "boundingBox": [ + 0.881, + 9.5717, + 1.264, + 9.5717, + 1.264, + 9.681, + 0.881, + 9.681 + ], + "confidence": 1, + "span": { + "offset": 917, + "length": 5 + } + }, + { + "content": "St", + "boundingBox": [ + 1.3125, + 9.5728, + 1.4337, + 9.5728, + 1.4337, + 9.681, + 1.3125, + 9.681 + ], + "confidence": 1, + "span": { + "offset": 923, + "length": 2 + } + }, + { + "content": "New", + "boundingBox": [ + 0.5943, + 9.7808, + 0.8848, + 9.7808, + 0.8848, + 9.8877, + 0.5943, + 9.8877 + ], + "confidence": 1, + "span": { + "offset": 926, + "length": 3 + } + }, + { + "content": "York,", + "boundingBox": [ + 0.9293, + 9.773, + 1.2568, + 9.773, + 1.2568, + 9.9098, + 0.9293, + 9.9098 + ], + "confidence": 1, + "span": { + "offset": 930, + "length": 5 + } + }, + { + "content": "NY,", + "boundingBox": [ + 1.3205, + 9.7805, + 1.5233, + 9.7805, + 1.5233, + 9.9098, + 1.3205, + 9.9098 + ], + "confidence": 1, + "span": { + "offset": 936, + "length": 3 + } + }, + { + "content": "10001", + "boundingBox": [ + 1.5903, + 9.7795, + 1.9882, + 9.7795, + 1.9882, + 9.8877, + 1.5903, + 9.8877 + ], + "confidence": 1, + "span": { + "offset": 940, + "length": 5 + } + } + ], + "selectionMarks": [ + { + "state": "unselected", + "boundingBox": [ + 4.3231, + 5.6279, + 4.7562, + 5.6279, + 4.7562, + 5.8654, + 4.3231, + 5.8654 + ], + "confidence": 0.212, + "span": { + "offset": 946, + "length": 12 + } + } + ], + "lines": [ + { + "content": "CONTOSO LTD.", + "boundingBox": [ + 0.5911, + 0.6857, + 2.3181, + 0.6857, + 2.3181, + 0.8664, + 0.5911, + 0.8664 + ], + "spans": [ + { + "offset": 0, + "length": 12 + } + ] + }, + { + "content": "INVOICE", + "boundingBox": [ + 7.0751, + 0.589, + 7.9886, + 0.589, + 7.9886, + 0.7697, + 7.0751, + 0.7697 + ], + "spans": [ + { + "offset": 13, + "length": 7 + } + ] + }, + { + "content": "Contoso Headquarters", + "boundingBox": [ + 0.5882, + 1.4239, + 2.0978, + 1.4239, + 2.0978, + 1.5664, + 0.5882, + 1.5664 + ], + "spans": [ + { + "offset": 21, + "length": 20 + } + ] + }, + { + "content": "INVOICE: INV-100", + "boundingBox": [ + 6.8599, + 1.4217, + 7.9988, + 1.4217, + 7.9988, + 1.5218, + 6.8599, + 1.5218 + ], + "spans": [ + { + "offset": 42, + "length": 16 + } + ] + }, + { + "content": "123 456th St", + "boundingBox": [ + 0.5945, + 1.6092, + 1.3812, + 1.6092, + 1.3812, + 1.742, + 0.5945, + 1.742 + ], + "spans": [ + { + "offset": 59, + "length": 12 + } + ] + }, + { + "content": "INVOICE DATE: 11/15/2019", + "boundingBox": [ + 6.2263, + 1.6139, + 7.993, + 1.6139, + 7.993, + 1.7449, + 6.2263, + 1.7449 + ], + "spans": [ + { + "offset": 72, + "length": 24 + } + ] + }, + { + "content": "New York, NY, 10001", + "boundingBox": [ + 0.5943, + 1.8307, + 1.9894, + 1.8307, + 1.9894, + 1.9675, + 0.5943, + 1.9675 + ], + "spans": [ + { + "offset": 97, + "length": 19 + } + ] + }, + { + "content": "DUE DATE: 12/15/2019", + "boundingBox": [ + 6.4966, + 1.8206, + 7.993, + 1.8206, + 7.993, + 1.9515, + 6.4966, + 1.9515 + ], + "spans": [ + { + "offset": 117, + "length": 20 + } + ] + }, + { + "content": "CUSTOMER NAME: MICROSOFT CORPORATION", + "boundingBox": [ + 4.9513, + 2.0388, + 7.9825, + 2.0388, + 7.9825, + 2.1389, + 4.9513, + 2.1389 + ], + "spans": [ + { + "offset": 138, + "length": 36 + } + ] + }, + { + "content": "SERVICE PERIOD: 10/14/2019 – 11/14/2019", + "boundingBox": [ + 5.1667, + 2.2306, + 7.9952, + 2.2306, + 7.9952, + 2.3615, + 5.1667, + 2.3615 + ], + "spans": [ + { + "offset": 175, + "length": 39 + } + ] + }, + { + "content": "CUSTOMER ID: CID-12345", + "boundingBox": [ + 6.3253, + 2.4488, + 7.9951, + 2.4488, + 7.9951, + 2.5489, + 6.3253, + 2.5489 + ], + "spans": [ + { + "offset": 215, + "length": 22 + } + ] + }, + { + "content": "Microsoft Corp", + "boundingBox": [ + 0.5943, + 2.6436, + 1.586, + 2.6436, + 1.586, + 2.7871, + 0.5943, + 2.7871 + ], + "spans": [ + { + "offset": 238, + "length": 14 + } + ] + }, + { + "content": "123 Other St,", + "boundingBox": [ + 0.5945, + 2.8476, + 1.4633, + 2.8476, + 1.4633, + 2.9845, + 0.5945, + 2.9845 + ], + "spans": [ + { + "offset": 253, + "length": 13 + } + ] + }, + { + "content": "Redmond WA, 98052", + "boundingBox": [ + 0.5943, + 3.0513, + 2.0083, + 3.0513, + 2.0083, + 3.1878, + 0.5943, + 3.1878 + ], + "spans": [ + { + "offset": 267, + "length": 17 + } + ] + }, + { + "content": "BILL TO:", + "boundingBox": [ + 0.5909, + 3.559, + 1.1032, + 3.559, + 1.1032, + 3.6592, + 0.5909, + 3.6592 + ], + "spans": [ + { + "offset": 285, + "length": 8 + } + ] + }, + { + "content": "SHIP TO:", + "boundingBox": [ + 3.3361, + 3.559, + 3.8903, + 3.559, + 3.8903, + 3.6592, + 3.3361, + 3.6592 + ], + "spans": [ + { + "offset": 294, + "length": 8 + } + ] + }, + { + "content": "SERVICE ADDRESS:", + "boundingBox": [ + 6.2104, + 3.559, + 7.4232, + 3.559, + 7.4232, + 3.6592, + 6.2104, + 3.6592 + ], + "spans": [ + { + "offset": 303, + "length": 16 + } + ] + }, + { + "content": "Microsoft Finance", + "boundingBox": [ + 0.5943, + 3.7641, + 1.7878, + 3.7641, + 1.7878, + 3.8794, + 0.5943, + 3.8794 + ], + "spans": [ + { + "offset": 320, + "length": 17 + } + ] + }, + { + "content": "Microsoft Delivery", + "boundingBox": [ + 3.3454, + 3.7641, + 4.5762, + 3.7641, + 4.5762, + 3.9076, + 3.3454, + 3.9076 + ], + "spans": [ + { + "offset": 338, + "length": 18 + } + ] + }, + { + "content": "Microsoft Services", + "boundingBox": [ + 6.2197, + 3.7641, + 7.4427, + 3.7641, + 7.4427, + 3.8794, + 6.2197, + 3.8794 + ], + "spans": [ + { + "offset": 357, + "length": 18 + } + ] + }, + { + "content": "123 Bill St,", + "boundingBox": [ + 0.5945, + 3.9681, + 1.2765, + 3.9681, + 1.2765, + 4.1049, + 0.5945, + 4.1049 + ], + "spans": [ + { + "offset": 376, + "length": 12 + } + ] + }, + { + "content": "123 Ship St,", + "boundingBox": [ + 3.3456, + 3.9681, + 4.1111, + 3.9681, + 4.1111, + 4.1109, + 3.3456, + 4.1109 + ], + "spans": [ + { + "offset": 389, + "length": 12 + } + ] + }, + { + "content": "123 Service St,", + "boundingBox": [ + 6.2199, + 3.9734, + 7.1821, + 3.9734, + 7.1821, + 4.1049, + 6.2199, + 4.1049 + ], + "spans": [ + { + "offset": 402, + "length": 15 + } + ] + }, + { + "content": "Redmond WA, 98052", + "boundingBox": [ + 0.5943, + 4.1717, + 2.0083, + 4.1717, + 2.0083, + 4.3082, + 0.5943, + 4.3082 + ], + "spans": [ + { + "offset": 418, + "length": 17 + } + ] + }, + { + "content": "Redmond WA, 98052", + "boundingBox": [ + 3.3454, + 4.1717, + 4.7594, + 4.1717, + 4.7594, + 4.3082, + 3.3454, + 4.3082 + ], + "spans": [ + { + "offset": 436, + "length": 17 + } + ] + }, + { + "content": "Redmond WA, 98052", + "boundingBox": [ + 6.2197, + 4.1717, + 7.6337, + 4.1717, + 7.6337, + 4.3082, + 6.2197, + 4.3082 + ], + "spans": [ + { + "offset": 454, + "length": 17 + } + ] + }, + { + "content": "SALESPERSON", + "boundingBox": [ + 0.7018, + 4.6528, + 1.6092, + 4.6528, + 1.6092, + 4.7529, + 0.7018, + 4.7529 + ], + "spans": [ + { + "offset": 472, + "length": 11 + } + ] + }, + { + "content": "P.O. NUMBER", + "boundingBox": [ + 2.1216, + 4.6528, + 3.0155, + 4.6528, + 3.0155, + 4.7529, + 2.1216, + 4.7529 + ], + "spans": [ + { + "offset": 484, + "length": 11 + } + ] + }, + { + "content": "REQUISITIONER", + "boundingBox": [ + 3.4953, + 4.6528, + 4.5157, + 4.6528, + 4.5157, + 4.7687, + 3.4953, + 4.7687 + ], + "spans": [ + { + "offset": 496, + "length": 13 + } + ] + }, + { + "content": "SHIPPED VIA", + "boundingBox": [ + 4.81, + 4.6528, + 5.6317, + 4.6528, + 5.6317, + 4.7529, + 4.81, + 4.7529 + ], + "spans": [ + { + "offset": 510, + "length": 11 + } + ] + }, + { + "content": "F.O.B. POINT", + "boundingBox": [ + 5.8696, + 4.6528, + 6.706, + 4.6528, + 6.706, + 4.7529, + 5.8696, + 4.7529 + ], + "spans": [ + { + "offset": 522, + "length": 12 + } + ] + }, + { + "content": "TERMS", + "boundingBox": [ + 7.1806, + 4.6528, + 7.6304, + 4.6528, + 7.6304, + 4.7529, + 7.1806, + 4.7529 + ], + "spans": [ + { + "offset": 535, + "length": 5 + } + ] + }, + { + "content": "PO-3333", + "boundingBox": [ + 1.9114, + 4.9282, + 2.4718, + 4.9282, + 2.4718, + 5.0363, + 1.9114, + 5.0363 + ], + "spans": [ + { + "offset": 541, + "length": 7 + } + ] + }, + { + "content": "DATE", + "boundingBox": [ + 0.7409, + 5.421, + 1.0744, + 5.421, + 1.0744, + 5.5186, + 0.7409, + 5.5186 + ], + "spans": [ + { + "offset": 549, + "length": 4 + } + ] + }, + { + "content": "ITEM CODE", + "boundingBox": [ + 1.4213, + 5.4197, + 2.1407, + 5.4197, + 2.1407, + 5.5199, + 1.4213, + 5.5199 + ], + "spans": [ + { + "offset": 554, + "length": 9 + } + ] + }, + { + "content": "DESCRIPTION", + "boundingBox": [ + 2.8516, + 5.4197, + 3.7134, + 5.4197, + 3.7134, + 5.5199, + 2.8516, + 5.5199 + ], + "spans": [ + { + "offset": 564, + "length": 11 + } + ] + }, + { + "content": "QTY", + "boundingBox": [ + 4.4043, + 5.4197, + 4.6631, + 5.4197, + 4.6631, + 5.5357, + 4.4043, + 5.5357 + ], + "spans": [ + { + "offset": 576, + "length": 3 + } + ] + }, + { + "content": "UM", + "boundingBox": [ + 5.049, + 5.421, + 5.2654, + 5.421, + 5.2654, + 5.5199, + 5.049, + 5.5199 + ], + "spans": [ + { + "offset": 580, + "length": 2 + } + ] + }, + { + "content": "PRICE", + "boundingBox": [ + 5.8563, + 5.4199, + 6.2163, + 5.4199, + 6.2163, + 5.5197, + 5.8563, + 5.5197 + ], + "spans": [ + { + "offset": 583, + "length": 5 + } + ] + }, + { + "content": "TAX", + "boundingBox": [ + 6.7169, + 5.421, + 6.974, + 5.421, + 6.974, + 5.5186, + 6.7169, + 5.5186 + ], + "spans": [ + { + "offset": 589, + "length": 3 + } + ] + }, + { + "content": "AMOUNT", + "boundingBox": [ + 7.2847, + 5.4197, + 7.9039, + 5.4197, + 7.9039, + 5.5199, + 7.2847, + 5.5199 + ], + "spans": [ + { + "offset": 593, + "length": 6 + } + ] + }, + { + "content": "3/4/2021", + "boundingBox": [ + 0.592, + 5.682, + 1.2092, + 5.682, + 1.2092, + 5.8243, + 0.592, + 5.8243 + ], + "spans": [ + { + "offset": 600, + "length": 8 + } + ] + }, + { + "content": "A123", + "boundingBox": [ + 1.6069, + 5.6948, + 1.9417, + 5.6948, + 1.9417, + 5.803, + 1.6069, + 5.803 + ], + "spans": [ + { + "offset": 609, + "length": 4 + } + ] + }, + { + "content": "Consulting Services", + "boundingBox": [ + 2.3388, + 5.6883, + 3.6278, + 5.6883, + 3.6278, + 5.8312, + 2.3388, + 5.8312 + ], + "spans": [ + { + "offset": 614, + "length": 19 + } + ] + }, + { + "content": "2", + "boundingBox": [ + 4.5977, + 5.6948, + 4.6635, + 5.6948, + 4.6635, + 5.8017, + 4.5977, + 5.8017 + ], + "spans": [ + { + "offset": 634, + "length": 1 + } + ] + }, + { + "content": "hours", + "boundingBox": [ + 4.8444, + 5.6883, + 5.2071, + 5.6883, + 5.2071, + 5.803, + 4.8444, + 5.803 + ], + "spans": [ + { + "offset": 636, + "length": 5 + } + ] + }, + { + "content": "$30.00", + "boundingBox": [ + 5.9669, + 5.6777, + 6.4142, + 5.6777, + 6.4142, + 5.8215, + 5.9669, + 5.8215 + ], + "spans": [ + { + "offset": 642, + "length": 6 + } + ] + }, + { + "content": "10%", + "boundingBox": [ + 6.7168, + 5.6932, + 6.9826, + 5.6932, + 6.9826, + 5.8045, + 6.7168, + 5.8045 + ], + "spans": [ + { + "offset": 649, + "length": 3 + } + ] + }, + { + "content": "$60.00", + "boundingBox": [ + 7.4642, + 5.6777, + 7.9116, + 5.6777, + 7.9116, + 5.8215, + 7.4642, + 5.8215 + ], + "spans": [ + { + "offset": 653, + "length": 6 + } + ] + }, + { + "content": "3/5/2021", + "boundingBox": [ + 0.592, + 5.9787, + 1.2088, + 5.9787, + 1.2088, + 6.121, + 0.592, + 6.121 + ], + "spans": [ + { + "offset": 660, + "length": 8 + } + ] + }, + { + "content": "B456", + "boundingBox": [ + 1.6214, + 5.9915, + 1.9419, + 5.9915, + 1.9419, + 6.0997, + 1.6214, + 6.0997 + ], + "spans": [ + { + "offset": 669, + "length": 4 + } + ] + }, + { + "content": "Document Fee", + "boundingBox": [ + 2.345, + 5.993, + 3.3096, + 5.993, + 3.3096, + 6.0997, + 2.345, + 6.0997 + ], + "spans": [ + { + "offset": 674, + "length": 12 + } + ] + }, + { + "content": "3", + "boundingBox": [ + 4.5967, + 5.9915, + 4.6627, + 5.9915, + 4.6627, + 6.0997, + 4.5967, + 6.0997 + ], + "spans": [ + { + "offset": 687, + "length": 1 + } + ] + }, + { + "content": "$10.00", + "boundingBox": [ + 5.9669, + 5.9743, + 6.4142, + 5.9743, + 6.4142, + 6.1182, + 5.9669, + 6.1182 + ], + "spans": [ + { + "offset": 689, + "length": 6 + } + ] + }, + { + "content": "5%", + "boundingBox": [ + 6.7508, + 5.9898, + 6.9393, + 5.9898, + 6.9393, + 6.1012, + 6.7508, + 6.1012 + ], + "spans": [ + { + "offset": 696, + "length": 2 + } + ] + }, + { + "content": "$30.00", + "boundingBox": [ + 7.4642, + 5.9743, + 7.9116, + 5.9743, + 7.9116, + 6.1182, + 7.4642, + 6.1182 + ], + "spans": [ + { + "offset": 699, + "length": 6 + } + ] + }, + { + "content": "3/6/2021", + "boundingBox": [ + 0.592, + 6.2789, + 1.2088, + 6.2789, + 1.2088, + 6.4213, + 0.592, + 6.4213 + ], + "spans": [ + { + "offset": 706, + "length": 8 + } + ] + }, + { + "content": "C789", + "boundingBox": [ + 1.6152, + 6.2918, + 1.94, + 6.2918, + 1.94, + 6.3999, + 1.6152, + 6.3999 + ], + "spans": [ + { + "offset": 715, + "length": 4 + } + ] + }, + { + "content": "Printing Fee", + "boundingBox": [ + 2.345, + 6.2906, + 3.1351, + 6.2906, + 3.1351, + 6.4281, + 2.345, + 6.4281 + ], + "spans": [ + { + "offset": 720, + "length": 12 + } + ] + }, + { + "content": "10", + "boundingBox": [ + 4.5158, + 6.2918, + 4.6637, + 6.2918, + 4.6637, + 6.3999, + 4.5158, + 6.3999 + ], + "spans": [ + { + "offset": 733, + "length": 2 + } + ] + }, + { + "content": "pages", + "boundingBox": [ + 4.8444, + 6.3196, + 5.2199, + 6.3196, + 5.2199, + 6.4281, + 4.8444, + 6.4281 + ], + "spans": [ + { + "offset": 736, + "length": 5 + } + ] + }, + { + "content": "$1.00", + "boundingBox": [ + 6.0502, + 6.2746, + 6.4142, + 6.2746, + 6.4142, + 6.4184, + 6.0502, + 6.4184 + ], + "spans": [ + { + "offset": 742, + "length": 5 + } + ] + }, + { + "content": "20%", + "boundingBox": [ + 6.712, + 6.2901, + 6.9826, + 6.2901, + 6.9826, + 6.4014, + 6.712, + 6.4014 + ], + "spans": [ + { + "offset": 748, + "length": 3 + } + ] + }, + { + "content": "$10.00", + "boundingBox": [ + 7.4642, + 6.2746, + 7.9116, + 6.2746, + 7.9116, + 6.4184, + 7.4642, + 6.4184 + ], + "spans": [ + { + "offset": 752, + "length": 6 + } + ] + }, + { + "content": "SUBTOTAL", + "boundingBox": [ + 6.0282, + 6.9118, + 6.7309, + 6.9118, + 6.7309, + 7.0199, + 6.0282, + 7.0199 + ], + "spans": [ + { + "offset": 759, + "length": 8 + } + ] + }, + { + "content": "$100.00", + "boundingBox": [ + 7.3842, + 6.8679, + 7.9181, + 6.8679, + 7.9181, + 7.0118, + 7.3842, + 7.0118 + ], + "spans": [ + { + "offset": 768, + "length": 7 + } + ] + }, + { + "content": "SALES TAX", + "boundingBox": [ + 6.0382, + 7.2089, + 6.728, + 7.2089, + 6.728, + 7.317, + 6.0382, + 7.317 + ], + "spans": [ + { + "offset": 776, + "length": 9 + } + ] + }, + { + "content": "$10.00", + "boundingBox": [ + 7.4709, + 7.165, + 7.9182, + 7.165, + 7.9182, + 7.3089, + 7.4709, + 7.3089 + ], + "spans": [ + { + "offset": 786, + "length": 6 + } + ] + }, + { + "content": "TOTAL", + "boundingBox": [ + 6.2969, + 7.5089, + 6.7309, + 7.5089, + 6.7309, + 7.617, + 6.2969, + 7.617 + ], + "spans": [ + { + "offset": 793, + "length": 5 + } + ] + }, + { + "content": "$110.00", + "boundingBox": [ + 7.3842, + 7.465, + 7.9181, + 7.465, + 7.9181, + 7.6089, + 7.3842, + 7.6089 + ], + "spans": [ + { + "offset": 799, + "length": 7 + } + ] + }, + { + "content": "PREVIOUS UNPAID BALANCE", + "boundingBox": [ + 4.8126, + 7.8055, + 6.7249, + 7.8055, + 6.7249, + 7.9137, + 4.8126, + 7.9137 + ], + "spans": [ + { + "offset": 807, + "length": 23 + } + ] + }, + { + "content": "$500.00", + "boundingBox": [ + 7.3842, + 7.7617, + 7.9181, + 7.7617, + 7.9181, + 7.9055, + 7.3842, + 7.9055 + ], + "spans": [ + { + "offset": 831, + "length": 7 + } + ] + }, + { + "content": "AMOUNT DUE", + "boundingBox": [ + 5.7652, + 8.1022, + 6.725, + 8.1022, + 6.725, + 8.2104, + 5.7652, + 8.2104 + ], + "spans": [ + { + "offset": 839, + "length": 10 + } + ] + }, + { + "content": "$610.00", + "boundingBox": [ + 7.3842, + 8.0584, + 7.9181, + 8.0584, + 7.9181, + 8.2022, + 7.3842, + 8.2022 + ], + "spans": [ + { + "offset": 850, + "length": 7 + } + ] + }, + { + "content": "THANK YOU FOR YOUR BUSINESS!", + "boundingBox": [ + 3.129, + 8.539, + 5.356, + 8.539, + 5.356, + 8.6442, + 3.129, + 8.6442 + ], + "spans": [ + { + "offset": 858, + "length": 28 + } + ] + }, + { + "content": "REMIT TO:", + "boundingBox": [ + 0.5909, + 9.1607, + 1.2603, + 9.1607, + 1.2603, + 9.2608, + 0.5909, + 9.2608 + ], + "spans": [ + { + "offset": 887, + "length": 9 + } + ] + }, + { + "content": "Contoso Billing", + "boundingBox": [ + 0.5882, + 9.3631, + 1.5828, + 9.3631, + 1.5828, + 9.5059, + 0.5882, + 9.5059 + ], + "spans": [ + { + "offset": 897, + "length": 15 + } + ] + }, + { + "content": "123 Remit St", + "boundingBox": [ + 0.5945, + 9.5717, + 1.4337, + 9.5717, + 1.4337, + 9.681, + 0.5945, + 9.681 + ], + "spans": [ + { + "offset": 913, + "length": 12 + } + ] + }, + { + "content": "New York, NY, 10001", + "boundingBox": [ + 0.5943, + 9.773, + 1.9882, + 9.773, + 1.9882, + 9.9098, + 0.5943, + 9.9098 + ], + "spans": [ + { + "offset": 926, + "length": 19 + } + ] + } + ], + "spans": [ + { + "offset": 0, + "length": 958 + } + ] + } + ], + "tables": [ + { + "rowCount": 4, + "columnCount": 8, + "cells": [ + { + "kind": "columnHeader", + "rowIndex": 0, + "columnIndex": 0, + "rowSpan": 1, + "columnSpan": 1, + "content": "DATE", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 0.4932, + 5.329, + 1.3011, + 5.3213, + 1.3011, + 5.6056, + 0.5009, + 5.6056 + ] + } + ], + "spans": [ + { + "offset": 549, + "length": 4 + } + ] + }, + { + "kind": "columnHeader", + "rowIndex": 0, + "columnIndex": 1, + "rowSpan": 1, + "columnSpan": 1, + "content": "ITEM CODE", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 1.3011, + 5.3213, + 2.2476, + 5.3213, + 2.2399, + 5.6056, + 1.3011, + 5.6056 + ] + } + ], + "spans": [ + { + "offset": 554, + "length": 9 + } + ] + }, + { + "kind": "columnHeader", + "rowIndex": 0, + "columnIndex": 2, + "rowSpan": 1, + "columnSpan": 1, + "content": "DESCRIPTION", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 2.2476, + 5.3213, + 4.3174, + 5.329, + 4.3097, + 5.6056, + 2.2399, + 5.6056 + ] + } + ], + "spans": [ + { + "offset": 564, + "length": 11 + } + ] + }, + { + "kind": "columnHeader", + "rowIndex": 0, + "columnIndex": 3, + "rowSpan": 1, + "columnSpan": 1, + "content": "QTY", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 4.3174, + 5.329, + 4.7483, + 5.329, + 4.7483, + 5.6056, + 4.3097, + 5.6056 + ] + } + ], + "spans": [ + { + "offset": 576, + "length": 3 + } + ] + }, + { + "kind": "columnHeader", + "rowIndex": 0, + "columnIndex": 4, + "rowSpan": 1, + "columnSpan": 1, + "content": "UM", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 4.7483, + 5.329, + 5.5639, + 5.329, + 5.5639, + 5.6056, + 4.7483, + 5.6056 + ] + } + ], + "spans": [ + { + "offset": 580, + "length": 2 + } + ] + }, + { + "kind": "columnHeader", + "rowIndex": 0, + "columnIndex": 5, + "rowSpan": 1, + "columnSpan": 1, + "content": "PRICE", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 5.5639, + 5.329, + 6.495, + 5.329, + 6.495, + 5.6056, + 5.5639, + 5.6056 + ] + } + ], + "spans": [ + { + "offset": 583, + "length": 5 + } + ] + }, + { + "kind": "columnHeader", + "rowIndex": 0, + "columnIndex": 6, + "rowSpan": 1, + "columnSpan": 1, + "content": "TAX", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 6.495, + 5.329, + 7.1875, + 5.329, + 7.1952, + 5.6056, + 6.495, + 5.6056 + ] + } + ], + "spans": [ + { + "offset": 589, + "length": 3 + } + ] + }, + { + "kind": "columnHeader", + "rowIndex": 0, + "columnIndex": 7, + "rowSpan": 1, + "columnSpan": 1, + "content": "AMOUNT", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 7.1875, + 5.329, + 7.9954, + 5.329, + 7.9954, + 5.598, + 7.1952, + 5.6056 + ] + } + ], + "spans": [ + { + "offset": 593, + "length": 6 + } + ] + }, + { + "rowIndex": 1, + "columnIndex": 0, + "rowSpan": 1, + "columnSpan": 1, + "content": "3/4/2021", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 0.5009, + 5.6056, + 1.3011, + 5.6056, + 1.3011, + 5.8976, + 0.5009, + 5.8976 + ] + } + ], + "spans": [ + { + "offset": 600, + "length": 8 + } + ] + }, + { + "rowIndex": 1, + "columnIndex": 1, + "rowSpan": 1, + "columnSpan": 1, + "content": "A123", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 1.3011, + 5.6056, + 2.2399, + 5.6056, + 2.2322, + 5.8976, + 1.3011, + 5.8976 + ] + } + ], + "spans": [ + { + "offset": 609, + "length": 4 + } + ] + }, + { + "rowIndex": 1, + "columnIndex": 2, + "rowSpan": 1, + "columnSpan": 1, + "content": "Consulting Services", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 2.2399, + 5.6056, + 4.3097, + 5.6056, + 4.3097, + 5.8976, + 2.2322, + 5.8976 + ] + } + ], + "spans": [ + { + "offset": 614, + "length": 19 + } + ] + }, + { + "rowIndex": 1, + "columnIndex": 3, + "rowSpan": 1, + "columnSpan": 1, + "content": "2 :unselected:", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 4.3097, + 5.6056, + 4.7483, + 5.6056, + 4.7483, + 5.8976, + 4.3097, + 5.8976 + ] + } + ], + "spans": [ + { + "offset": 634, + "length": 1 + }, + { + "offset": 946, + "length": 12 + } + ] + }, + { + "rowIndex": 1, + "columnIndex": 4, + "rowSpan": 1, + "columnSpan": 1, + "content": "hours", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 4.7483, + 5.6056, + 5.5639, + 5.6056, + 5.5639, + 5.8976, + 4.7483, + 5.8976 + ] + } + ], + "spans": [ + { + "offset": 636, + "length": 5 + } + ] + }, + { + "rowIndex": 1, + "columnIndex": 5, + "rowSpan": 1, + "columnSpan": 1, + "content": "$30.00", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 5.5639, + 5.6056, + 6.495, + 5.6056, + 6.495, + 5.8976, + 5.5639, + 5.8976 + ] + } + ], + "spans": [ + { + "offset": 642, + "length": 6 + } + ] + }, + { + "rowIndex": 1, + "columnIndex": 6, + "rowSpan": 1, + "columnSpan": 1, + "content": "10%", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 6.495, + 5.6056, + 7.1952, + 5.6056, + 7.1952, + 5.8976, + 6.495, + 5.8976 + ] + } + ], + "spans": [ + { + "offset": 649, + "length": 3 + } + ] + }, + { + "rowIndex": 1, + "columnIndex": 7, + "rowSpan": 1, + "columnSpan": 1, + "content": "$60.00", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 7.1952, + 5.6056, + 7.9954, + 5.598, + 7.9954, + 5.9053, + 7.1952, + 5.8976 + ] + } + ], + "spans": [ + { + "offset": 653, + "length": 6 + } + ] + }, + { + "rowIndex": 2, + "columnIndex": 0, + "rowSpan": 1, + "columnSpan": 1, + "content": "3/5/2021", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 0.5009, + 5.8976, + 1.3011, + 5.8976, + 1.3011, + 6.1973, + 0.5086, + 6.1973 + ] + } + ], + "spans": [ + { + "offset": 660, + "length": 8 + } + ] + }, + { + "rowIndex": 2, + "columnIndex": 1, + "rowSpan": 1, + "columnSpan": 1, + "content": "B456", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 1.3011, + 5.8976, + 2.2322, + 5.8976, + 2.2245, + 6.1973, + 1.3011, + 6.1973 + ] + } + ], + "spans": [ + { + "offset": 669, + "length": 4 + } + ] + }, + { + "rowIndex": 2, + "columnIndex": 2, + "rowSpan": 1, + "columnSpan": 1, + "content": "Document Fee", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 2.2322, + 5.8976, + 4.3097, + 5.8976, + 4.3097, + 6.1973, + 2.2245, + 6.1973 + ] + } + ], + "spans": [ + { + "offset": 674, + "length": 12 + } + ] + }, + { + "rowIndex": 2, + "columnIndex": 3, + "rowSpan": 1, + "columnSpan": 1, + "content": "3", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 4.3097, + 5.8976, + 4.7483, + 5.8976, + 4.7483, + 6.1973, + 4.3097, + 6.1973 + ] + } + ], + "spans": [ + { + "offset": 687, + "length": 1 + } + ] + }, + { + "rowIndex": 2, + "columnIndex": 4, + "rowSpan": 1, + "columnSpan": 1, + "content": "", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 4.7483, + 5.8976, + 5.5639, + 5.8976, + 5.5639, + 6.1973, + 4.7483, + 6.1973 + ] + } + ], + "spans": [] + }, + { + "rowIndex": 2, + "columnIndex": 5, + "rowSpan": 1, + "columnSpan": 1, + "content": "$10.00", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 5.5639, + 5.8976, + 6.495, + 5.8976, + 6.495, + 6.1973, + 5.5639, + 6.1973 + ] + } + ], + "spans": [ + { + "offset": 689, + "length": 6 + } + ] + }, + { + "rowIndex": 2, + "columnIndex": 6, + "rowSpan": 1, + "columnSpan": 1, + "content": "5%", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 6.495, + 5.8976, + 7.1952, + 5.8976, + 7.1952, + 6.1973, + 6.495, + 6.1973 + ] + } + ], + "spans": [ + { + "offset": 696, + "length": 2 + } + ] + }, + { + "rowIndex": 2, + "columnIndex": 7, + "rowSpan": 1, + "columnSpan": 1, + "content": "$30.00", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 7.1952, + 5.8976, + 7.9954, + 5.9053, + 7.9954, + 6.1896, + 7.1952, + 6.1973 + ] + } + ], + "spans": [ + { + "offset": 699, + "length": 6 + } + ] + }, + { + "rowIndex": 3, + "columnIndex": 0, + "rowSpan": 1, + "columnSpan": 1, + "content": "3/6/2021", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 0.5086, + 6.1973, + 1.3011, + 6.1973, + 1.3011, + 6.4969, + 0.5086, + 6.4969 + ] + } + ], + "spans": [ + { + "offset": 706, + "length": 8 + } + ] + }, + { + "rowIndex": 3, + "columnIndex": 1, + "rowSpan": 1, + "columnSpan": 1, + "content": "C789", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 1.3011, + 6.1973, + 2.2245, + 6.1973, + 2.2245, + 6.4969, + 1.3011, + 6.4969 + ] + } + ], + "spans": [ + { + "offset": 715, + "length": 4 + } + ] + }, + { + "rowIndex": 3, + "columnIndex": 2, + "rowSpan": 1, + "columnSpan": 1, + "content": "Printing Fee", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 2.2245, + 6.1973, + 4.3097, + 6.1973, + 4.3097, + 6.4969, + 2.2245, + 6.4969 + ] + } + ], + "spans": [ + { + "offset": 720, + "length": 12 + } + ] + }, + { + "rowIndex": 3, + "columnIndex": 3, + "rowSpan": 1, + "columnSpan": 1, + "content": "10", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 4.3097, + 6.1973, + 4.7483, + 6.1973, + 4.7483, + 6.4969, + 4.3097, + 6.4969 + ] + } + ], + "spans": [ + { + "offset": 733, + "length": 2 + } + ] + }, + { + "rowIndex": 3, + "columnIndex": 4, + "rowSpan": 1, + "columnSpan": 1, + "content": "pages", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 4.7483, + 6.1973, + 5.5639, + 6.1973, + 5.5639, + 6.4969, + 4.7483, + 6.4969 + ] + } + ], + "spans": [ + { + "offset": 736, + "length": 5 + } + ] + }, + { + "rowIndex": 3, + "columnIndex": 5, + "rowSpan": 1, + "columnSpan": 1, + "content": "$1.00", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 5.5639, + 6.1973, + 6.495, + 6.1973, + 6.495, + 6.4969, + 5.5639, + 6.4969 + ] + } + ], + "spans": [ + { + "offset": 742, + "length": 5 + } + ] + }, + { + "rowIndex": 3, + "columnIndex": 6, + "rowSpan": 1, + "columnSpan": 1, + "content": "20%", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 6.495, + 6.1973, + 7.1952, + 6.1973, + 7.1952, + 6.4969, + 6.495, + 6.4969 + ] + } + ], + "spans": [ + { + "offset": 748, + "length": 3 + } + ] + }, + { + "rowIndex": 3, + "columnIndex": 7, + "rowSpan": 1, + "columnSpan": 1, + "content": "$10.00", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 7.1952, + 6.1973, + 7.9954, + 6.1896, + 7.9954, + 6.5046, + 7.1952, + 6.4969 + ] + } + ], + "spans": [ + { + "offset": 752, + "length": 6 + } + ] + } + ], + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 0.4901, + 5.3293, + 7.9946, + 5.3289, + 7.9954, + 6.5019, + 0.4906, + 6.502 + ] + } + ], + "spans": [ + { + "offset": 549, + "length": 209 + }, + { + "offset": 946, + "length": 12 + } + ] + }, + { + "rowCount": 2, + "columnCount": 6, + "cells": [ + { + "kind": "columnHeader", + "rowIndex": 0, + "columnIndex": 0, + "rowSpan": 1, + "columnSpan": 1, + "content": "SALESPERSON", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 0.4977, + 4.565, + 1.8042, + 4.565, + 1.8119, + 4.8388, + 0.5054, + 4.8388 + ] + } + ], + "spans": [ + { + "offset": 472, + "length": 11 + } + ] + }, + { + "kind": "columnHeader", + "rowIndex": 0, + "columnIndex": 1, + "rowSpan": 1, + "columnSpan": 1, + "content": "P.O. NUMBER", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 1.8042, + 4.565, + 3.3105, + 4.565, + 3.3105, + 4.8388, + 1.8119, + 4.8388 + ] + } + ], + "spans": [ + { + "offset": 484, + "length": 11 + } + ] + }, + { + "kind": "columnHeader", + "rowIndex": 0, + "columnIndex": 2, + "rowSpan": 1, + "columnSpan": 1, + "content": "REQUISITIONER", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 3.3105, + 4.565, + 4.6939, + 4.565, + 4.6862, + 4.8388, + 3.3105, + 4.8388 + ] + } + ], + "spans": [ + { + "offset": 496, + "length": 13 + } + ] + }, + { + "kind": "columnHeader", + "rowIndex": 0, + "columnIndex": 3, + "rowSpan": 1, + "columnSpan": 1, + "content": "SHIPPED VIA", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 4.6939, + 4.565, + 5.7468, + 4.565, + 5.7468, + 4.8388, + 4.6862, + 4.8388 + ] + } + ], + "spans": [ + { + "offset": 510, + "length": 11 + } + ] + }, + { + "kind": "columnHeader", + "rowIndex": 0, + "columnIndex": 4, + "rowSpan": 1, + "columnSpan": 1, + "content": "F.O.B. POINT", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 5.7468, + 4.565, + 6.815, + 4.565, + 6.815, + 4.8388, + 5.7468, + 4.8388 + ] + } + ], + "spans": [ + { + "offset": 522, + "length": 12 + } + ] + }, + { + "kind": "columnHeader", + "rowIndex": 0, + "columnIndex": 5, + "rowSpan": 1, + "columnSpan": 1, + "content": "TERMS", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 6.815, + 4.565, + 7.9985, + 4.565, + 7.9985, + 4.8388, + 6.815, + 4.8388 + ] + } + ], + "spans": [ + { + "offset": 535, + "length": 5 + } + ] + }, + { + "rowIndex": 1, + "columnIndex": 0, + "rowSpan": 1, + "columnSpan": 1, + "content": "", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 0.5054, + 4.8388, + 1.8119, + 4.8388, + 1.8119, + 5.1058, + 0.5131, + 5.1058 + ] + } + ], + "spans": [] + }, + { + "rowIndex": 1, + "columnIndex": 1, + "rowSpan": 1, + "columnSpan": 1, + "content": "PO-3333", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 1.8119, + 4.8388, + 3.3105, + 4.8388, + 3.3105, + 5.1058, + 1.8119, + 5.1058 + ] + } + ], + "spans": [ + { + "offset": 541, + "length": 7 + } + ] + }, + { + "rowIndex": 1, + "columnIndex": 2, + "rowSpan": 1, + "columnSpan": 1, + "content": "", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 3.3105, + 4.8388, + 4.6862, + 4.8388, + 4.6862, + 5.1058, + 3.3105, + 5.1058 + ] + } + ], + "spans": [] + }, + { + "rowIndex": 1, + "columnIndex": 3, + "rowSpan": 1, + "columnSpan": 1, + "content": "", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 4.6862, + 4.8388, + 5.7468, + 4.8388, + 5.7468, + 5.1058, + 4.6862, + 5.1058 + ] + } + ], + "spans": [] + }, + { + "rowIndex": 1, + "columnIndex": 4, + "rowSpan": 1, + "columnSpan": 1, + "content": "", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 5.7468, + 4.8388, + 6.815, + 4.8388, + 6.815, + 5.1058, + 5.7468, + 5.1058 + ] + } + ], + "spans": [] + }, + { + "rowIndex": 1, + "columnIndex": 5, + "rowSpan": 1, + "columnSpan": 1, + "content": "", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 6.815, + 4.8388, + 7.9985, + 4.8388, + 7.9985, + 5.1125, + 6.815, + 5.1058 + ] + } + ], + "spans": [] + } + ], + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 0.4971, + 4.565, + 7.9889, + 4.5653, + 7.989, + 5.1146, + 0.4963, + 5.1141 + ] + } + ], + "spans": [ + { + "offset": 472, + "length": 76 + } + ] + }, + { + "rowCount": 5, + "columnCount": 2, + "cells": [ + { + "rowIndex": 0, + "columnIndex": 0, + "rowSpan": 1, + "columnSpan": 1, + "content": "SUBTOTAL", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 4.7474, + 6.7934, + 6.8058, + 6.7934, + 6.8105, + 7.0886, + 4.7474, + 7.0886 + ] + } + ], + "spans": [ + { + "offset": 759, + "length": 8 + } + ] + }, + { + "rowIndex": 0, + "columnIndex": 1, + "rowSpan": 1, + "columnSpan": 1, + "content": "$100.00", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 6.8058, + 6.7934, + 7.9981, + 6.7934, + 7.9981, + 7.0934, + 6.8105, + 7.0886 + ] + } + ], + "spans": [ + { + "offset": 768, + "length": 7 + } + ] + }, + { + "rowIndex": 1, + "columnIndex": 0, + "rowSpan": 1, + "columnSpan": 1, + "content": "SALES TAX", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 4.7474, + 7.0886, + 6.8105, + 7.0886, + 6.8105, + 7.3743, + 4.7427, + 7.3743 + ] + } + ], + "spans": [ + { + "offset": 776, + "length": 9 + } + ] + }, + { + "rowIndex": 1, + "columnIndex": 1, + "rowSpan": 1, + "columnSpan": 1, + "content": "$10.00", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 6.8105, + 7.0886, + 7.9981, + 7.0934, + 7.9981, + 7.3934, + 6.8105, + 7.3743 + ] + } + ], + "spans": [ + { + "offset": 786, + "length": 6 + } + ] + }, + { + "rowIndex": 2, + "columnIndex": 0, + "rowSpan": 1, + "columnSpan": 1, + "content": "TOTAL", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 4.7427, + 7.3743, + 6.8105, + 7.3743, + 6.8105, + 7.6839, + 4.7427, + 7.6839 + ] + } + ], + "spans": [ + { + "offset": 793, + "length": 5 + } + ] + }, + { + "rowIndex": 2, + "columnIndex": 1, + "rowSpan": 1, + "columnSpan": 1, + "content": "$110.00", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 6.8105, + 7.3743, + 7.9981, + 7.3934, + 7.9981, + 7.6886, + 6.8105, + 7.6839 + ] + } + ], + "spans": [ + { + "offset": 799, + "length": 7 + } + ] + }, + { + "rowIndex": 3, + "columnIndex": 0, + "rowSpan": 1, + "columnSpan": 1, + "content": "PREVIOUS UNPAID BALANCE", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 4.7427, + 7.6839, + 6.8105, + 7.6839, + 6.8105, + 7.9743, + 4.7427, + 7.9743 + ] + } + ], + "spans": [ + { + "offset": 807, + "length": 23 + } + ] + }, + { + "rowIndex": 3, + "columnIndex": 1, + "rowSpan": 1, + "columnSpan": 1, + "content": "$500.00", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 6.8105, + 7.6839, + 7.9981, + 7.6886, + 7.9981, + 7.9839, + 6.8105, + 7.9743 + ] + } + ], + "spans": [ + { + "offset": 831, + "length": 7 + } + ] + }, + { + "rowIndex": 4, + "columnIndex": 0, + "rowSpan": 1, + "columnSpan": 1, + "content": "AMOUNT DUE", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 4.7427, + 7.9743, + 6.8105, + 7.9743, + 6.8105, + 8.2839, + 4.7381, + 8.2839 + ] + } + ], + "spans": [ + { + "offset": 839, + "length": 10 + } + ] + }, + { + "rowIndex": 4, + "columnIndex": 1, + "rowSpan": 1, + "columnSpan": 1, + "content": "$610.00", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 6.8105, + 7.9743, + 7.9981, + 7.9839, + 7.9981, + 8.2839, + 6.8105, + 8.2839 + ] + } + ], + "spans": [ + { + "offset": 850, + "length": 7 + } + ] + } + ], + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 4.7456, + 6.7793, + 8.0143, + 6.7788, + 8.0137, + 8.2981, + 4.7446, + 8.2981 + ] + } + ], + "spans": [ + { + "offset": 759, + "length": 98 + } + ] + } + ], + "documents": [ + { + "docType": "prebuilt:invoice", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 0, + 0, + 8.5, + 0, + 8.5, + 11, + 0, + 11 + ] + } + ], + "fields": { + "AmountDue": { + "type": "number", + "valueNumber": 610, + "content": "$610.00", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 7.3842, + 8.0584, + 7.9181, + 8.0584, + 7.9181, + 8.2022, + 7.3842, + 8.2022 + ] + } + ], + "confidence": 0.973, + "spans": [ + { + "offset": 850, + "length": 7 + } + ] + }, + "BillingAddress": { + "type": "string", + "valueString": "123 Bill St, Redmond WA, 98052", + "content": "123 Bill St, Redmond WA, 98052", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 0.5943, + 3.9681, + 2.0083, + 3.9681, + 2.0083, + 4.3082, + 0.5943, + 4.3082 + ] + } + ], + "confidence": 0.947, + "spans": [ + { + "offset": 376, + "length": 12 + }, + { + "offset": 418, + "length": 17 + } + ] + }, + "BillingAddressRecipient": { + "type": "string", + "valueString": "Microsoft Finance", + "content": "Microsoft Finance", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 0.5943, + 3.7641, + 1.7878, + 3.7641, + 1.7878, + 3.8794, + 0.5943, + 3.8794 + ] + } + ], + "confidence": 0.957, + "spans": [ + { + "offset": 320, + "length": 17 + } + ] + }, + "CustomerAddress": { + "type": "string", + "valueString": "123 Other St, Redmond WA, 98052", + "content": "123 Other St, Redmond WA, 98052", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 0.5943, + 2.8476, + 2.0083, + 2.8476, + 2.0083, + 3.1878, + 0.5943, + 3.1878 + ] + } + ], + "confidence": 0.947, + "spans": [ + { + "offset": 253, + "length": 31 + } + ] + }, + "CustomerAddressRecipient": { + "type": "string", + "valueString": "Microsoft Corp", + "content": "Microsoft Corp", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 0.5943, + 2.6436, + 1.586, + 2.6436, + 1.586, + 2.7871, + 0.5943, + 2.7871 + ] + } + ], + "confidence": 0.956, + "spans": [ + { + "offset": 238, + "length": 14 + } + ] + }, + "CustomerId": { + "type": "string", + "valueString": "CID-12345", + "content": "CID-12345", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 7.3369, + 2.4491, + 7.9951, + 2.4491, + 7.9951, + 2.5486, + 7.3369, + 2.5486 + ] + } + ], + "confidence": 0.964, + "spans": [ + { + "offset": 228, + "length": 9 + } + ] + }, + "CustomerName": { + "type": "string", + "valueString": "MICROSOFT CORPORATION", + "content": "MICROSOFT CORPORATION", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 6.2419, + 2.0391, + 7.9825, + 2.0391, + 7.9825, + 2.1386, + 6.2419, + 2.1386 + ] + } + ], + "confidence": 0.949, + "spans": [ + { + "offset": 153, + "length": 21 + } + ] + }, + "DueDate": { + "type": "date", + "valueDate": "2019-12-15", + "content": "12/15/2019", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 7.2494, + 1.8206, + 7.993, + 1.8206, + 7.993, + 1.9515, + 7.2494, + 1.9515 + ] + } + ], + "confidence": 0.973, + "spans": [ + { + "offset": 127, + "length": 10 + } + ] + }, + "InvoiceDate": { + "type": "date", + "valueDate": "2019-11-15", + "content": "11/15/2019", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 7.2528, + 1.6139, + 7.993, + 1.6139, + 7.993, + 1.7449, + 7.2528, + 1.7449 + ] + } + ], + "confidence": 0.972, + "spans": [ + { + "offset": 86, + "length": 10 + } + ] + }, + "InvoiceId": { + "type": "string", + "valueString": "INV-100", + "content": "INV-100", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 7.4959, + 1.422, + 7.9988, + 1.422, + 7.9988, + 1.5215, + 7.4959, + 1.5215 + ] + } + ], + "confidence": 0.973, + "spans": [ + { + "offset": 51, + "length": 7 + } + ] + }, + "InvoiceTotal": { + "type": "number", + "valueNumber": 110, + "content": "$110.00", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 7.3842, + 7.465, + 7.9181, + 7.465, + 7.9181, + 7.6089, + 7.3842, + 7.6089 + ] + } + ], + "confidence": 0.973, + "spans": [ + { + "offset": 799, + "length": 7 + } + ] + }, + "Items": { + "type": "array", + "valueArray": [ + { + "type": "object", + "valueObject": { + "Amount": { + "type": "number", + "valueNumber": 60, + "content": "$60.00", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 7.4642, + 5.6777, + 7.9116, + 5.6777, + 7.9116, + 5.8215, + 7.4642, + 5.8215 + ] + } + ], + "confidence": 0.902, + "spans": [ + { + "offset": 653, + "length": 6 + } + ] + }, + "Date": { + "type": "date", + "valueDate": "2021-03-04", + "content": "3/4/2021", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 0.592, + 5.682, + 1.2092, + 5.682, + 1.2092, + 5.8243, + 0.592, + 5.8243 + ] + } + ], + "confidence": 0.938, + "spans": [ + { + "offset": 600, + "length": 8 + } + ] + }, + "Description": { + "type": "string", + "valueString": "Consulting Services", + "content": "Consulting Services", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 2.3388, + 5.6883, + 3.6278, + 5.6883, + 3.6278, + 5.8312, + 2.3388, + 5.8312 + ] + } + ], + "confidence": 0.9, + "spans": [ + { + "offset": 614, + "length": 19 + } + ] + }, + "ProductCode": { + "type": "string", + "valueString": "A123", + "content": "A123", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 1.6069, + 5.6948, + 1.9417, + 5.6948, + 1.9417, + 5.803, + 1.6069, + 5.803 + ] + } + ], + "confidence": 0.877, + "spans": [ + { + "offset": 609, + "length": 4 + } + ] + }, + "Quantity": { + "type": "number", + "valueNumber": 2, + "content": "2", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 4.5977, + 5.6948, + 4.6635, + 5.6948, + 4.6635, + 5.8017, + 4.5977, + 5.8017 + ] + } + ], + "confidence": 0.899, + "spans": [ + { + "offset": 634, + "length": 1 + } + ] + }, + "Tax": { + "type": "number", + "content": "10%", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 6.7168, + 5.6932, + 6.9826, + 5.6932, + 6.9826, + 5.8045, + 6.7168, + 5.8045 + ] + } + ], + "confidence": 0.78, + "spans": [ + { + "offset": 649, + "length": 3 + } + ] + }, + "Unit": { + "type": "string", + "valueString": "hours", + "content": "hours", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 4.8444, + 5.6883, + 5.2071, + 5.6883, + 5.2071, + 5.803, + 4.8444, + 5.803 + ] + } + ], + "confidence": 0.899, + "spans": [ + { + "offset": 636, + "length": 5 + } + ] + }, + "UnitPrice": { + "type": "number", + "valueNumber": 30, + "content": "$30.00", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 5.9669, + 5.6777, + 6.4142, + 5.6777, + 6.4142, + 5.8215, + 5.9669, + 5.8215 + ] + } + ], + "confidence": 0.828, + "spans": [ + { + "offset": 642, + "length": 6 + } + ] + } + }, + "content": "3/4/2021 A123 Consulting Services 2 hours $30.00 10% $60.00", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 0.592, + 5.6777, + 7.9116, + 5.6777, + 7.9116, + 5.8312, + 0.592, + 5.8312 + ] + } + ], + "confidence": 0.955, + "spans": [ + { + "offset": 600, + "length": 59 + } + ] + }, + { + "type": "object", + "valueObject": { + "Amount": { + "type": "number", + "valueNumber": 30, + "content": "$30.00", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 7.4642, + 5.9743, + 7.9116, + 5.9743, + 7.9116, + 6.1182, + 7.4642, + 6.1182 + ] + } + ], + "confidence": 0.916, + "spans": [ + { + "offset": 699, + "length": 6 + } + ] + }, + "Date": { + "type": "date", + "valueDate": "2021-03-05", + "content": "3/5/2021", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 0.592, + 5.9787, + 1.2088, + 5.9787, + 1.2088, + 6.121, + 0.592, + 6.121 + ] + } + ], + "confidence": 0.902, + "spans": [ + { + "offset": 660, + "length": 8 + } + ] + }, + "Description": { + "type": "string", + "valueString": "Document Fee", + "content": "Document Fee", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 2.345, + 5.993, + 3.3096, + 5.993, + 3.3096, + 6.0997, + 2.345, + 6.0997 + ] + } + ], + "confidence": 0.901, + "spans": [ + { + "offset": 674, + "length": 12 + } + ] + }, + "ProductCode": { + "type": "string", + "valueString": "B456", + "content": "B456", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 1.6214, + 5.9915, + 1.9419, + 5.9915, + 1.9419, + 6.0997, + 1.6214, + 6.0997 + ] + } + ], + "confidence": 0.886, + "spans": [ + { + "offset": 669, + "length": 4 + } + ] + }, + "Quantity": { + "type": "number", + "valueNumber": 3, + "content": "3", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 4.5967, + 5.9915, + 4.6627, + 5.9915, + 4.6627, + 6.0997, + 4.5967, + 6.0997 + ] + } + ], + "confidence": 0.898, + "spans": [ + { + "offset": 687, + "length": 1 + } + ] + }, + "Tax": { + "type": "number", + "content": "5%", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 6.7508, + 5.9898, + 6.9393, + 5.9898, + 6.9393, + 6.1012, + 6.7508, + 6.1012 + ] + } + ], + "confidence": 0.772, + "spans": [ + { + "offset": 696, + "length": 2 + } + ] + }, + "UnitPrice": { + "type": "number", + "valueNumber": 10, + "content": "$10.00", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 5.9669, + 5.9743, + 6.4142, + 5.9743, + 6.4142, + 6.1182, + 5.9669, + 6.1182 + ] + } + ], + "confidence": 0.831, + "spans": [ + { + "offset": 689, + "length": 6 + } + ] + } + }, + "content": "3/5/2021 B456 Document Fee 3 $10.00 5% $30.00", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 0.592, + 5.9743, + 7.9116, + 5.9743, + 7.9116, + 6.121, + 0.592, + 6.121 + ] + } + ], + "confidence": 0.941, + "spans": [ + { + "offset": 660, + "length": 45 + } + ] + }, + { + "type": "object", + "valueObject": { + "Amount": { + "type": "number", + "valueNumber": 10, + "content": "$10.00", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 7.4642, + 6.2746, + 7.9116, + 6.2746, + 7.9116, + 6.4184, + 7.4642, + 6.4184 + ] + } + ], + "confidence": 0.959, + "spans": [ + { + "offset": 752, + "length": 6 + } + ] + }, + "Date": { + "type": "date", + "valueDate": "2021-03-06", + "content": "3/6/2021", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 0.592, + 6.2789, + 1.2088, + 6.2789, + 1.2088, + 6.4213, + 0.592, + 6.4213 + ] + } + ], + "confidence": 0.903, + "spans": [ + { + "offset": 706, + "length": 8 + } + ] + }, + "Description": { + "type": "string", + "valueString": "Printing Fee", + "content": "Printing Fee", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 2.345, + 6.2906, + 3.1351, + 6.2906, + 3.1351, + 6.4281, + 2.345, + 6.4281 + ] + } + ], + "confidence": 0.899, + "spans": [ + { + "offset": 720, + "length": 12 + } + ] + }, + "ProductCode": { + "type": "string", + "valueString": "C789", + "content": "C789", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 1.6152, + 6.2918, + 1.94, + 6.2918, + 1.94, + 6.3999, + 1.6152, + 6.3999 + ] + } + ], + "confidence": 0.898, + "spans": [ + { + "offset": 715, + "length": 4 + } + ] + }, + "Quantity": { + "type": "number", + "valueNumber": 10, + "content": "10", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 4.5158, + 6.2918, + 4.6637, + 6.2918, + 4.6637, + 6.3999, + 4.5158, + 6.3999 + ] + } + ], + "confidence": 0.903, + "spans": [ + { + "offset": 733, + "length": 2 + } + ] + }, + "Tax": { + "type": "number", + "content": "20%", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 6.712, + 6.2901, + 6.9826, + 6.2901, + 6.9826, + 6.4014, + 6.712, + 6.4014 + ] + } + ], + "confidence": 0.791, + "spans": [ + { + "offset": 748, + "length": 3 + } + ] + }, + "Unit": { + "type": "string", + "valueString": "pages", + "content": "pages", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 4.8444, + 6.3196, + 5.2199, + 6.3196, + 5.2199, + 6.4281, + 4.8444, + 6.4281 + ] + } + ], + "confidence": 0.899, + "spans": [ + { + "offset": 736, + "length": 5 + } + ] + }, + "UnitPrice": { + "type": "number", + "valueNumber": 1, + "content": "$1.00", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 6.0502, + 6.2746, + 6.4142, + 6.2746, + 6.4142, + 6.4184, + 6.0502, + 6.4184 + ] + } + ], + "confidence": 0.829, + "spans": [ + { + "offset": 742, + "length": 5 + } + ] + } + }, + "content": "3/6/2021 C789 Printing Fee 10 pages $1.00 20% $10.00", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 0.592, + 6.2746, + 7.9116, + 6.2746, + 7.9116, + 6.4281, + 0.592, + 6.4281 + ] + } + ], + "confidence": 0.956, + "spans": [ + { + "offset": 706, + "length": 52 + } + ] + } + ] + }, + "Locale": { + "type": "string", + "valueString": "en-US", + "confidence": 1 + }, + "PreviousUnpaidBalance": { + "type": "number", + "valueNumber": 500, + "content": "$500.00", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 7.3842, + 7.7617, + 7.9181, + 7.7617, + 7.9181, + 7.9055, + 7.3842, + 7.9055 + ] + } + ], + "confidence": 0.962, + "spans": [ + { + "offset": 831, + "length": 7 + } + ] + }, + "PurchaseOrder": { + "type": "string", + "valueString": "PO-3333", + "content": "PO-3333", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 1.9114, + 4.9282, + 2.4718, + 4.9282, + 2.4718, + 5.0363, + 1.9114, + 5.0363 + ] + } + ], + "confidence": 0.967, + "spans": [ + { + "offset": 541, + "length": 7 + } + ] + }, + "RemittanceAddress": { + "type": "string", + "valueString": "123 Remit St New York, NY, 10001", + "content": "123 Remit St New York, NY, 10001", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 0.5943, + 9.5717, + 1.9882, + 9.5717, + 1.9882, + 9.9098, + 0.5943, + 9.9098 + ] + } + ], + "confidence": 0.946, + "spans": [ + { + "offset": 913, + "length": 32 + } + ] + }, + "RemittanceAddressRecipient": { + "type": "string", + "valueString": "Contoso Billing", + "content": "Contoso Billing", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 0.5882, + 9.3631, + 1.5828, + 9.3631, + 1.5828, + 9.5059, + 0.5882, + 9.5059 + ] + } + ], + "confidence": 0.956, + "spans": [ + { + "offset": 897, + "length": 15 + } + ] + }, + "ServiceAddress": { + "type": "string", + "valueString": "123 Service St, Redmond WA, 98052", + "content": "123 Service St, Redmond WA, 98052", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 6.2197, + 3.9734, + 7.6337, + 3.9734, + 7.6337, + 4.3082, + 6.2197, + 4.3082 + ] + } + ], + "confidence": 0.946, + "spans": [ + { + "offset": 402, + "length": 15 + }, + { + "offset": 454, + "length": 17 + } + ] + }, + "ServiceAddressRecipient": { + "type": "string", + "valueString": "Microsoft Services", + "content": "Microsoft Services", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 6.2197, + 3.7641, + 7.4427, + 3.7641, + 7.4427, + 3.8794, + 6.2197, + 3.8794 + ] + } + ], + "confidence": 0.951, + "spans": [ + { + "offset": 357, + "length": 18 + } + ] + }, + "ServiceEndDate": { + "type": "date", + "valueDate": "2019-11-14", + "content": "11/14/2019", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 7.2528, + 2.2306, + 7.9952, + 2.2306, + 7.9952, + 2.3615, + 7.2528, + 2.3615 + ] + } + ], + "confidence": 0.973, + "spans": [ + { + "offset": 204, + "length": 10 + } + ] + }, + "ServiceStartDate": { + "type": "date", + "valueDate": "2019-10-14", + "content": "10/14/2019", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 6.3357, + 2.2306, + 7.0749, + 2.2306, + 7.0749, + 2.3615, + 6.3357, + 2.3615 + ] + } + ], + "confidence": 0.973, + "spans": [ + { + "offset": 191, + "length": 10 + } + ] + }, + "ShippingAddress": { + "type": "string", + "valueString": "123 Ship St, Redmond WA, 98052", + "content": "123 Ship St, Redmond WA, 98052", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 3.3454, + 3.9681, + 4.7594, + 3.9681, + 4.7594, + 4.3082, + 3.3454, + 4.3082 + ] + } + ], + "confidence": 0.946, + "spans": [ + { + "offset": 389, + "length": 12 + }, + { + "offset": 436, + "length": 17 + } + ] + }, + "ShippingAddressRecipient": { + "type": "string", + "valueString": "Microsoft Delivery", + "content": "Microsoft Delivery", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 3.3454, + 3.7641, + 4.5762, + 3.7641, + 4.5762, + 3.9076, + 3.3454, + 3.9076 + ] + } + ], + "confidence": 0.955, + "spans": [ + { + "offset": 338, + "length": 18 + } + ] + }, + "SubTotal": { + "type": "number", + "valueNumber": 100, + "content": "$100.00", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 7.3842, + 6.8679, + 7.9181, + 6.8679, + 7.9181, + 7.0118, + 7.3842, + 7.0118 + ] + } + ], + "confidence": 0.973, + "spans": [ + { + "offset": 768, + "length": 7 + } + ] + }, + "TotalTax": { + "type": "number", + "valueNumber": 10, + "content": "$10.00", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 7.4709, + 7.165, + 7.9182, + 7.165, + 7.9182, + 7.3089, + 7.4709, + 7.3089 + ] + } + ], + "confidence": 0.973, + "spans": [ + { + "offset": 786, + "length": 6 + } + ] + }, + "VendorAddress": { + "type": "string", + "valueString": "123 456th St New York, NY, 10001", + "content": "123 456th St New York, NY, 10001", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 0.5943, + 1.6092, + 1.9894, + 1.6092, + 1.9894, + 1.9675, + 0.5943, + 1.9675 + ] + } + ], + "confidence": 0.946, + "spans": [ + { + "offset": 59, + "length": 12 + }, + { + "offset": 97, + "length": 19 + } + ] + }, + "VendorAddressRecipient": { + "type": "string", + "valueString": "Contoso Headquarters", + "content": "Contoso Headquarters", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 0.5882, + 1.4239, + 2.0978, + 1.4239, + 2.0978, + 1.5664, + 0.5882, + 1.5664 + ] + } + ], + "confidence": 0.956, + "spans": [ + { + "offset": 21, + "length": 20 + } + ] + }, + "VendorName": { + "type": "string", + "valueString": "CONTOSO LTD.", + "content": "CONTOSO LTD.", + "boundingRegions": [ + { + "pageNumber": 1, + "boundingBox": [ + 0.5911, + 0.6857, + 2.3181, + 0.6857, + 2.3181, + 0.8664, + 0.5911, + 0.8664 + ] + } + ], + "confidence": 0.956, + "spans": [ + { + "offset": 0, + "length": 12 + } + ] + } + }, + "confidence": 1, + "spans": [ + { + "offset": 0, + "length": 958 + } + ] + } + ] + } + } + } + } +} diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetInfo.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetInfo.json new file mode 100644 index 000000000000..8134190378cf --- /dev/null +++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetInfo.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "endpoint": "{endpoint}", + "api-version": "{apiVersion}" + }, + "responses": { + "200": { + "body": { + "customDocumentModels": { + "count": 2, + "limit": 13 + } + } + } + } +} diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetModel_Custom.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetModel_Custom.json new file mode 100644 index 000000000000..ecb16b5970f1 --- /dev/null +++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetModel_Custom.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "endpoint": "{endpoint}", + "api-version": "{apiVersion}", + "modelId": "{customModelId}" + }, + "responses": { + "200": { + "body": { + "modelId": "{customModelId}", + "description": "{customModelDescription}", + "createdDateTime": "2021-09-24T12:54:35Z", + "docTypes": { + "{docType}": { + "fieldSchema": { + "Name": { + "type": "string" + }, + "Date": { + "type": "date" + }, + "Amount": { + "type": "number" + } + }, + "fieldConfidence": { + "Name": 0.9, + "Date": 0.95, + "Amount": 0.93 + } + } + } + } + } + } +} diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetModel_Prebuilt.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetModel_Prebuilt.json new file mode 100644 index 000000000000..7575792c3744 --- /dev/null +++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetModel_Prebuilt.json @@ -0,0 +1,132 @@ +{ + "parameters": { + "endpoint": "{endpoint}", + "api-version": "{apiVersion}", + "modelId": "prebuilt-invoice" + }, + "responses": { + "200": { + "body": { + "modelId": "prebuilt-invoice", + "description": "Prebuilt model to extract key information from English invoices, including customer, vendor, invoice ID, due date, total, and more.", + "createdDateTime": "2021-07-30T00:00:00Z", + "docTypes": { + "prebuilt:invoice": { + "fieldSchema": { + "CustomerName": { + "type": "string" + }, + "CustomerId": { + "type": "string" + }, + "PurchaseOrder": { + "type": "string" + }, + "InvoiceId": { + "type": "string" + }, + "InvoiceDate": { + "type": "date" + }, + "DueDate": { + "type": "date" + }, + "VendorName": { + "type": "string" + }, + "VendorAddress": { + "type": "string" + }, + "VendorAddressRecipient": { + "type": "string" + }, + "CustomerAddress": { + "type": "string" + }, + "CustomerAddressRecipient": { + "type": "string" + }, + "BillingAddress": { + "type": "string" + }, + "BillingAddressRecipient": { + "type": "string" + }, + "ShippingAddress": { + "type": "string" + }, + "ShippingAddressRecipient": { + "type": "string" + }, + "SubTotal": { + "type": "number" + }, + "TotalTax": { + "type": "number" + }, + "InvoiceTotal": { + "type": "number" + }, + "AmountDue": { + "type": "number" + }, + "PreviousUnpaidBalance": { + "type": "number" + }, + "RemittanceAddress": { + "type": "string" + }, + "RemittanceAddressRecipient": { + "type": "string" + }, + "ServiceAddress": { + "type": "string" + }, + "ServiceAddressRecipient": { + "type": "string" + }, + "ServiceStartDate": { + "type": "date" + }, + "ServiceEndDate": { + "type": "date" + }, + "Items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Amount": { + "type": "number" + }, + "Date": { + "type": "date" + }, + "Description": { + "type": "string" + }, + "Quantity": { + "type": "number" + }, + "ProductCode": { + "type": "string" + }, + "Tax": { + "type": "number" + }, + "Unit": { + "type": "string" + }, + "UnitPrice": { + "type": "number" + } + } + } + } + } + } + } + } + } + } +} diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetModels.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetModels.json new file mode 100644 index 000000000000..a1454ab37af2 --- /dev/null +++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetModels.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "endpoint": "{endpoint}", + "api-version": "{apiVersion}" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "modelId": "prebuilt-layout", + "createdDateTime": "2021-07-30T00:00:00Z", + "description": "Prebuilt model to extract text, selection marks, tables, and other layout information." + }, + { + "modelId": "myCustomModel", + "createdDateTime": "2021-09-24T12:54:35Z", + "description": "{modelDescription}" + } + ], + "nextLink": "{nextLinkUrl}" + } + } + } +} diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetOperation.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetOperation.json new file mode 100644 index 000000000000..da118b298cf3 --- /dev/null +++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetOperation.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "endpoint": "{endpoint}", + "api-version": "{apiVersion}", + "operationId": "{operationId}" + }, + "responses": { + "200": { + "body": { + "operationId": "31533879936_426a3e4c-c6fb-4c83-937c-a92414c371a4", + "status": "succeeded", + "percentCompleted": 100, + "createdDateTime": "2021-09-23T09:12:57Z", + "lastUpdatedDateTime": "2021-09-23T09:13:01Z", + "kind": "documentModelBuild", + "resourceLocation": "{endpoint}/formrecognizer/documentModels/{modelId}", + "result": { + "modelId": "{customModelId}", + "description": "{customModelDescription}", + "createdDateTime": "2021-09-23T09:13:01Z", + "docTypes": { + "{docType}": { + "fieldSchema": { + "Name": { + "type": "string" + }, + "Date": { + "type": "date" + }, + "Amount": { + "type": "number" + } + }, + "fieldConfidence": { + "Name": 0.9, + "Date": 0.95, + "Amount": 0.93 + } + } + } + } + } + } + } +} diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetOperations.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetOperations.json new file mode 100644 index 000000000000..8c8ebf16e3a7 --- /dev/null +++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/GetOperations.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "endpoint": "{endpoint}", + "api-version": "{apiVersion}" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "operationId": "{operationId}", + "status": "running", + "percentCompleted": 0, + "createdDateTime": "2021-09-23T09:12:57Z", + "lastUpdatedDateTime": "2021-09-23T09:12:58Z", + "kind": "documentModelBuild", + "resourceLocation": "{endpoint}/formrecognizer/documentModels/{modelId}" + } + ], + "nextLink": "{nextLinkUrl}" + } + } + } +} diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/readme.md b/specification/cognitiveservices/data-plane/FormRecognizer/readme.md index 38d0d8a40546..720a546d8a0a 100644 --- a/specification/cognitiveservices/data-plane/FormRecognizer/readme.md +++ b/specification/cognitiveservices/data-plane/FormRecognizer/readme.md @@ -15,6 +15,13 @@ openapi-type: data-plane # Releases +### Release 2021-09-30-preview +These settings apply only when `--tag=2021-09-30-preview` is specified on the command line. +``` yaml $(tag) == '2021-09-30-preview' +input-file: + - preview/2021-09-30-preview/FormRecognizer.json +``` + ### Release 2.1 These settings apply only when `--tag=release_2_1` is specified on the command line. ``` yaml $(tag) == 'release_2_1' @@ -70,6 +77,31 @@ input-file: - preview/v1.0/FormRecognizerReceiptOcr.json ``` + +## Suppression +``` yaml +directive: + - suppress: PATTERN + from: FormRecognizer/preview/2021-09-30-preview/FormRecognizer.json + where: $.parameters.modelId + reason: Bug in example validation + - suppress: LongRunningResponseStatusCode + from: FormRecognizer/preview/2021-09-30-preview/FormRecognizer.json + reason: Latest guidelines recommend 202 for long running operations. + - suppress: ValidFormats + from: FormRecognizer/preview/2021-09-30-preview/FormRecognizer.json + where: + - $.definitions.UrlContentSource.format + - $.definitions.AzureBlobContentSource.properties.containerUrl.format + - $.definitions.DocumentField.properties.valueTime.format + reason: uri and time are valid formats in JsonSchema/Swagger and does not affect SDK. + - suppress: AvoidNestedProperties + from: FormRecognizer/preview/2021-09-30-preview/FormRecognizer.json + where: $.definitions.DocumentFieldSchema.properties.properties + reason: Intentionally trying to mimic JsonSchema with recursion. +``` + + ## Swagger to SDK This section describes what SDK should be generated by the automatic system. From c50e279e6ff6bbdd935bce801c3d91b05c599aa0 Mon Sep 17 00:00:00 2001 From: Paul Hsu Date: Thu, 30 Sep 2021 13:17:25 +0800 Subject: [PATCH 2/4] Fix styling issues. From 9a29652e823340543b12ecbb79a07b289e4f83f4 Mon Sep 17 00:00:00 2001 From: Paul Hsu Date: Thu, 30 Sep 2021 13:30:15 +0800 Subject: [PATCH 3/4] Fix styling. --- .../examples/AnalyzeDocument_Base64.json | 40 +++++++++---------- .../examples/AnalyzeDocument_Url.json | 40 +++++++++---------- 2 files changed, 40 insertions(+), 40 deletions(-) diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/AnalyzeDocument_Base64.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/AnalyzeDocument_Base64.json index 9f4032ce41cd..aa2417ead468 100644 --- a/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/AnalyzeDocument_Base64.json +++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/AnalyzeDocument_Base64.json @@ -1,20 +1,20 @@ -{ - "parameters": { - "endpoint": "{endpoint}", - "api-version": "{apiVersion}", - "modelId": "prebuilt-layout", - "pages": "1-2,4", - "locale": "en-US", - "stringIndexType": "textElements", - "analyzeRequest": { - "base64Source": "{base64EncodedPdf}" - } - }, - "responses": { - "202": { - "headers": { - "Operation-Location": "{endpoint}/formrecognizer/documentModels/prebuilt-layout/analyzeResults/{resultId}?api-version={apiVersion}" - } - } - } -} +{ + "parameters": { + "endpoint": "{endpoint}", + "api-version": "{apiVersion}", + "modelId": "prebuilt-layout", + "pages": "1-2,4", + "locale": "en-US", + "stringIndexType": "textElements", + "analyzeRequest": { + "base64Source": "{base64EncodedPdf}" + } + }, + "responses": { + "202": { + "headers": { + "Operation-Location": "{endpoint}/formrecognizer/documentModels/prebuilt-layout/analyzeResults/{resultId}?api-version={apiVersion}" + } + } + } +} diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/AnalyzeDocument_Url.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/AnalyzeDocument_Url.json index cf5915e79d9e..026e5753980c 100644 --- a/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/AnalyzeDocument_Url.json +++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/examples/AnalyzeDocument_Url.json @@ -1,20 +1,20 @@ -{ - "parameters": { - "endpoint": "{endpoint}", - "api-version": "{apiVersion}", - "modelId": "customModel", - "pages": "1-2,4", - "locale": "en-US", - "stringIndexType": "textElements", - "analyzeRequest": { - "urlSource": "http://host.com/doc.pdf" - } - }, - "responses": { - "202": { - "headers": { - "Operation-Location": "{endpoint}/formrecognizer/documentModels/customModel/analyzeResults/{resultId}?api-version={apiVersion}" - } - } - } -} +{ + "parameters": { + "endpoint": "{endpoint}", + "api-version": "{apiVersion}", + "modelId": "customModel", + "pages": "1-2,4", + "locale": "en-US", + "stringIndexType": "textElements", + "analyzeRequest": { + "urlSource": "http://host.com/doc.pdf" + } + }, + "responses": { + "202": { + "headers": { + "Operation-Location": "{endpoint}/formrecognizer/documentModels/customModel/analyzeResults/{resultId}?api-version={apiVersion}" + } + } + } +} From ae2144363ace3cf9cf4be3acb944802e32050f0d Mon Sep 17 00:00:00 2001 From: Paul Hsu Date: Fri, 8 Oct 2021 08:49:33 +0800 Subject: [PATCH 4/4] Remove yml version. --- .../2021-09-30-preview/FormRecognizer.yml | 1684 ----------------- 1 file changed, 1684 deletions(-) delete mode 100644 specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/FormRecognizer.yml diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/FormRecognizer.yml b/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/FormRecognizer.yml deleted file mode 100644 index 00ef8fd137cc..000000000000 --- a/specification/cognitiveservices/data-plane/FormRecognizer/preview/2021-09-30-preview/FormRecognizer.yml +++ /dev/null @@ -1,1684 +0,0 @@ ---- -swagger: '2.0' - -info: - title: Form Recognizer Client - description: Extracts content, layout, and structured data from documents. - version: 2021-09-30-preview - -securityDefinitions: - apim_key: - type: apiKey - name: Ocp-Apim-Subscription-Key - in: header -security: -- apim_key: [] - -x-ms-parameterized-host: - hostTemplate: "{endpoint}/formrecognizer" - useSchemePrefix: false - parameters: - - $ref: "#/parameters/Endpoint" - -schemes: -- https - -paths: - "/documentModels/{modelId}:analyze": - post: - summary: Analyze document - description: Analyzes document with model. - operationId: AnalyzeDocument - tags: - - Analysis - consumes: - - application/json - - application/octet-stream # Auto-detect content type - - application/pdf - - image/jpeg - - image/png - - image/tiff - - image/bmp - produces: - - application/json - parameters: - - $ref: "#/parameters/PathModelId" - - $ref: "#/parameters/QueryPages" - - $ref: "#/parameters/QueryLocale" - - $ref: "#/parameters/QueryStringIndexType" - - $ref: "#/parameters/QueryApiVersion" - # - $ref: "#/parameters/HeaderRepeatabilityRequestId" - # - $ref: "#/parameters/HeaderRepeatabilityFirstSent" - - name: analyzeRequest - description: Analyze request parameters. - required: false - in: body - schema: - $ref: "#/definitions/AnalyzeDocumentRequest" - responses: - '202': - description: Request is queued successfully. - headers: - Operation-Location: - type: string - description: URL used to track the progress and obtain the result of the analyze operation. - 'default': - description: Error encountered. - schema: - $ref: "#/definitions/ErrorResponse" - # '400': - # description: Error encountered during document analysis. - # schema: - # $ref: "#/definitions/ErrorResponse" - # '404': - # description: Model not found. - # schema: - # $ref: "#/definitions/ErrorResponse" - # '415': - # description: Unsupported media type. - # schema: - # $ref: "#/definitions/ErrorResponse" - # '500': - # description: Internal server error. - # schema: - # $ref: "#/definitions/ErrorResponse" - # '503': - # description: Transient error. - # schema: - # $ref: "#/definitions/ErrorResponse" - x-ms-long-running-operation: true - x-ms-examples: - AnalyzeDocument_Url: - $ref: ./examples/AnalyzeDocument_Url.json - AnalyzeDocument_Base64: - $ref: ./examples/AnalyzeDocument_Base64.json - - "/documentModels/{modelId}/analyzeResults/{resultId}": - get: - summary: Get analyze result - description: Gets the result of document analysis. - operationId: GetAnalyzeDocumentResult - tags: - - Analysis - consumes: [] - produces: - - application/json - parameters: - - $ref: "#/parameters/PathModelId" - - $ref: "#/parameters/PathResultId" - # - name: format - # description: Result format. - # required: false - # in: query - # type: string - # enum: - # - json - # - protobuf - # x-ms-enum: - # name: AnalyzeResultFormat - # modelAsString: true - # default: json - - $ref: "#/parameters/QueryApiVersion" - responses: - '200': - description: OK. - schema: - $ref: "#/definitions/AnalyzeResultOperation" - 'default': - description: Error encountered. - schema: - $ref: "#/definitions/ErrorResponse" - # '404': - # description: Result ID not found or expired. - # schema: - # $ref: "#/definitions/ErrorResponse" - # '500': - # description: Internal server ErrorResponse. - # schema: - # $ref: "#/definitions/ErrorResponse" - # '503': - # description: Transient ErrorResponse. - # schema: - # $ref: "#/definitions/ErrorResponse" - x-ms-examples: - GetAnalyzeDocumentResult: - $ref: ./examples/GetAnalyzeDocumentResult.json - - "/documentModels:build": - post: - summary: Build model - description: Builds a custom document analysis model. - operationId: BuildDocumentModel - tags: - - Creation - consumes: - - application/json - produces: - - application/json - parameters: - - $ref: "#/parameters/QueryApiVersion" - - name: buildRequest - description: Building request parameters. - required: true - in: body - schema: - $ref: "#/definitions/BuildDocumentModelRequest" - responses: - '202': - description: Request is queued successfully. - headers: - Operation-Location: - type: string - description: Operation result URL. - 'default': - description: Error encountered. - schema: - $ref: "#/definitions/ErrorResponse" - # '409': - # description: Model already exists. - # schema: - # $ref: "#/definitions/ErrorResponse" - # '500': - # description: Internal server error. - # schema: - # $ref: "#/definitions/ErrorResponse" - x-ms-long-running-operation: true - x-ms-examples: - BuildDocumentModel: - $ref: ./examples/BuildDocumentModel.json - - "/documentModels:compose": - post: - summary: Compose model - description: Creates a new model from document types of existing models. - operationId: ComposeDocumentModel - tags: - - Creation - consumes: - - application/json - produces: - - application/json - parameters: - - $ref: "#/parameters/QueryApiVersion" - - name: composeRequest - description: Compose request parameters. - in: body - required: true - schema: - $ref: "#/definitions/ComposeDocumentModelRequest" - responses: - '202': - description: Request is queued successfully. - headers: - Operation-Location: - type: string - description: Operation result URL. - 'default': - description: Error encountered. - schema: - $ref: "#/definitions/ErrorResponse" - # '409': - # description: Model already exists. - # schema: - # $ref: "#/definitions/ErrorResponse" - # '500': - # description: Internal server error. - # schema: - # $ref: "#/definitions/ErrorResponse" - x-ms-long-running-operation: true - x-ms-examples: - ComposeDocumentModel: - $ref: ./examples/ComposeDocumentModel.json - - "/documentModels:authorizeCopy": - post: - summary: Generate copy authorization - description: Generates authorization to copy a model to this location with specified modelId and optional description. - operationId: AuthorizeCopyDocumentModel - tags: - - Creation - consumes: - - application/json - produces: - - application/json - parameters: - - $ref: "#/parameters/QueryApiVersion" - - name: authorizeCopyRequest - description: Authorize copy request parameters. - in: body - required: true - schema: - $ref: "#/definitions/AuthorizeCopyRequest" - responses: - '200': - description: OK. - schema: - $ref: "#/definitions/CopyAuthorization" - 'default': - description: Error encountered. - schema: - $ref: "#/definitions/ErrorResponse" - # '409': - # description: Model already exists. - # schema: - # $ref: "#/definitions/ErrorResponse" - # '500': - # description: Internal server error. - # schema: - # $ref: "#/definitions/ErrorResponse" - # '503': - # description: Transient error. - # schema: - # $ref: "#/definitions/ErrorResponse" - x-ms-examples: - AuthorizeCopyDocumentModel: - $ref: ./examples/AuthorizeCopyDocumentModel.json - - "/documentModels/{modelId}:copyTo": - post: - summary: Copy model - description: Copies model to the target resource, region, and modelId. - operationId: CopyDocumentModelTo - tags: - - Creation - consumes: - - application/json - produces: - - application/json - parameters: - - $ref: "#/parameters/PathModelId" - - $ref: "#/parameters/QueryApiVersion" - - name: copyToRequest - description: Copy to request parameters. - in: body - required: true - schema: - $ref: "#/definitions/CopyAuthorization" - responses: - '202': - description: Request is queued successfully. - headers: - Operation-Location: - type: string - description: Operation result URL. - 'default': - description: Error encountered. - schema: - $ref: "#/definitions/ErrorResponse" - # '400': - # description: Bad request error. - # schema: - # $ref: "#/definitions/ErrorResponse" - # '404': - # description: Model not found. - # schema: - # $ref: "#/definitions/ErrorResponse" - # '409': - # description: Target model already exists. - # schema: - # $ref: "#/definitions/ErrorResponse" - # '500': - # description: Internal server error. - # schema: - # $ref: "#/definitions/ErrorResponse" - # '503': - # description: Transient error. - # schema: - # $ref: "#/definitions/ErrorResponse" - x-ms-long-running-operation: true - x-ms-examples: - CopyDocumentModelTo: - $ref: ./examples/CopyDocumentModelTo.json - - "/operations": - get: - summary: List operations - description: Lists all operations. - operationId: GetOperations - tags: - - Operation - consumes: [] - produces: - - application/json - parameters: - - $ref: "#/parameters/QueryApiVersion" - responses: - '200': - description: OK. - schema: - $ref: "#/definitions/GetOperationsResponse" - 'default': - description: Error encountered. - schema: - $ref: "#/definitions/ErrorResponse" - # '500': - # description: Internal server error. - # schema: - # $ref: "#/definitions/ErrorResponse" - x-ms-pageable: - nextLinkName: nextLink - itemName: value - x-ms-examples: - GetOperations: - $ref: ./examples/GetOperations.json - - "/operations/{operationId}": - get: - summary: Get operation - description: Gets operation info. - operationId: GetOperation - tags: - - Operation - consumes: [] - produces: - - application/json - parameters: - - $ref: "#/parameters/PathOperationId" - - $ref: "#/parameters/QueryApiVersion" - responses: - '200': - description: OK. - schema: - $ref: "#/definitions/GetOperationResponse" - 'default': - description: Error encountered. - schema: - $ref: "#/definitions/ErrorResponse" - # '404': - # description: Operation ID not found. - # schema: - # $ref: "#/definitions/ErrorResponse" - # '500': - # description: Internal server error. - # schema: - # $ref: "#/definitions/ErrorResponse" - x-ms-examples: - GetOperation: - $ref: ./examples/GetOperation.json - - # [preview.2+] - # "/operations/{operationId}:cancel": - # summary: Cancel operation - # description: Cancels operation. - # operationId: CancelOperation - # tags: - # - Operation - # consumes: [] - # produces: [] - # parameters: - # - $ref: "#/parameters/PathOperationId" - # - $ref: "#/parameters/QueryApiVersion" - # responses: - # '200': - # description: Operation canceled. - # 'default': - # description: Error encountered. - # schema: - # $ref: "#/definitions/ErrorResponse" - # # '404': - # # description: Operation ID not found. - # # schema: - # # $ref: "#/definitions/ErrorResponse" - # # '500': - # # description: Internal server error. - # # schema: - # # $ref: "#/definitions/ErrorResponse" - - "/documentModels": - get: - summary: List models - description: List all models - operationId: GetModels - tags: - - Management - consumes: [] - produces: - - application/json - parameters: - - $ref: "#/parameters/QueryApiVersion" - responses: - '200': - description: OK. - schema: - $ref: "#/definitions/GetModelsResponse" - 'default': - description: Error encountered. - schema: - $ref: "#/definitions/ErrorResponse" - # '500': - # description: Internal server error. - # schema: - # $ref: "#/definitions/ErrorResponse" - x-ms-pageable: - nextLinkName: nextLink - itemName: value - x-ms-examples: - GetModels: - $ref: ./examples/GetModels.json - - "/documentModels/{modelId}": - get: - summary: Get model - description: Gets detailed model information. - operationId: GetModel - tags: - - Management - consumes: [] - produces: - - application/json - parameters: - - $ref: "#/parameters/PathModelId" - - $ref: "#/parameters/QueryApiVersion" - responses: - '200': - description: OK. - schema: - $ref: "#/definitions/ModelInfo" - 'default': - description: Error encountered. - schema: - $ref: "#/definitions/ErrorResponse" - # '404': - # description: Model not found. - # schema: - # $ref: "#/definitions/ErrorResponse" - # '500': - # description: Internal server error. - # schema: - # $ref: "#/definitions/ErrorResponse" - x-ms-examples: - GetModel_Prebuilt: - $ref: ./examples/GetModel_Prebuilt.json - GetModel_Custom: - $ref: ./examples/GetModel_Custom.json - - delete: - summary: Delete model - description: Deletes model. - operationId: DeleteModel - tags: - - Management - consumes: [] - produces: - - application/json - parameters: - - $ref: "#/parameters/PathModelId" - - $ref: "#/parameters/QueryApiVersion" - responses: - '204': - description: Deleting model. - 'default': - description: Error encountered. - schema: - $ref: "#/definitions/ErrorResponse" - # '500': - # description: Internal server error. - # schema: - # $ref: "#/definitions/ErrorResponse" - x-ms-examples: - DeleteModel: - $ref: ./examples/DeleteModel.json - - "/info": - get: - summary: Get info - description: Return basic info about the current resource. - operationId: GetInfo - tags: - - Management - consumes: [] - produces: - - application/json - parameters: - - $ref: "#/parameters/QueryApiVersion" - responses: - '200': - description: OK. - schema: - $ref: "#/definitions/GetInfoResponse" - 'default': - description: Error encountered. - schema: - $ref: "#/definitions/ErrorResponse" - # '500': - # description: Internal server error. - # schema: - # $ref: "#/definitions/ErrorResponse" - x-ms-examples: - GetInfo: - $ref: ./examples/GetInfo.json - -definitions: - - AnalyzeDocumentRequest: - description: Document analysis parameters. - type: object - properties: - # Only one of the following: urlSource, base64Source - urlSource: - description: Document URL to analyze - $ref: "#/definitions/UrlContentSource" - base64Source: - description: Base64 encoding of the document to analyze - $ref: "#/definitions/Base64ContentSource" - - BuildDocumentModelRequest: - description: Request body to build a new custom model. - type: object - required: [ modelId ] - properties: - modelId: - $ref: "#/definitions/ModelId" - description: - $ref: "#/definitions/ModelDescription" - # technique: - # $ref: "#/definitions/DocumentModelBuildTechnique" - - # Only one of the following: azureBlobSource, urlSource, base64Source - azureBlobSource: - description: Azure Blob Storage location containing the training data. - $ref: "#/definitions/AzureBlobContentSource" - # urlSource: - # description: On-premise network location containing the training data. - # $ref: "#/definitions/UrlContentSource" - # base64Source: - # description: Base64 encoding of the compressed archive containing the training data. - # $ref: "#/definitions/Base64ContentSource" - - - ComposeDocumentModelRequest: - description: Request body to create a composed model from component models. - type: object - required: [ modelId, componentModels ] - properties: - modelId: - $ref: "#/definitions/ModelId" - description: - $ref: "#/definitions/ModelDescription" - componentModels: - description: List of component models to compose. - type: array - uniqueItems: true - items: - $ref: "#/definitions/ComponentModelInfo" - - ComponentModelInfo: - description: A component of a composed model. - type: object - required: [ modelId ] - properties: - modelId: - $ref: "#/definitions/ModelId" - # docTypes: # preview.2+ - # description: Optional list of document types from this model to include in the composed model. If not specified, all document types from this model will be included. - # type: array - # items: - # $ref: "#/definitions/DocType" - - - AuthorizeCopyRequest: - description: Request body to authorize model copy. - type: object - required: [ modelId ] - properties: - modelId: - $ref: "#/definitions/ModelId" - description: - $ref: "#/definitions/ModelDescription" - - GetOperationsResponse: - description: List Operations response object. - type: object - required: [ value ] - properties: - value: - description: List of operations. - type: array - items: - $ref: "#/definitions/OperationInfo" - nextLink: - description: Link to the next page of operations. - type: string - - GetOperationResponse: - description: Get Operation response object. - type: object - allOf: - - $ref: "#/definitions/OperationInfo" - properties: - error: # status=failed - description: Encountered error. - $ref: "#/definitions/Error" - result: # status=succeeded - description: Operation result upon success. - type: object - - GetModelsResponse: - description: List Models response object. - type: object - required: [ value ] - properties: - value: - description: List of models. - type: array - items: - $ref: "#/definitions/ModelSummary" - "nextLink": - description: Link to the next page of models. - type: string - - GetInfoResponse: - description: General information regarding the current resource. - type: object - required: [ customDocumentModels ] - properties: - customDocumentModels: - $ref: "#/definitions/CustomDocumentModelsInfo" - - CustomDocumentModelsInfo: - description: Info regarding custom document models. - type: object - required: [ count, limit ] - properties: - count: - description: Number of custom models in the current resource. - type: integer - format: int32 - limit: - description: Maximum number of custom models supported in the current resource. - type: integer - format: int32 - - - ApiVersion: - description: API version. - type: string - enum: - - 2021-09-30-preview - x-ms-enum: - name: ApiVersion - modelAsString: true - - ErrorResponse: - description: Error response object. - type: object - required: [ error ] - properties: - error: - $ref: "#/definitions/Error" - - Error: - description: Error info. - type: object - required: [ code, message ] - properties: - code: - description: Error code. - type: string - message: - description: Error message. - type: string - target: - description: Target of the error. - type: string - details: - description: List of detailed errors. - type: array - items: - $ref: "#/definitions/Error" - innererror: - $ref: "#/definitions/InnerError" - - InnerError: - description: Detailed error. - type: object - required: [ code ] - properties: - code: - description: Error code. - type: string - message: - description: Error message. - type: string - innererror: - $ref: "#/definitions/InnerError" - - UrlContentSource: - description: Content at specified URL. - type: string - format: uri - - Base64ContentSource: - description: Content represented via Base64 encoding. - type: string - format: byte - - AzureBlobContentSource: - description: Azure Blob Storage content. - type: object - required: [ containerUrl ] - properties: - containerUrl: - description: Azure Blob Storage container URL. - type: string - format: uri - prefix: - description: Blob name prefix. - type: string - - CopyAuthorization: - description: Authorization to copy a model to the specified target resource and modelId. - type: object - required: [ targetResourceId, targetResourceRegion, targetModelId, targetModelLocation, accessToken, expirationDateTime ] - properties: - targetResourceId: - description: ID of the target Azure resource where the model should be copied to. - type: string - x-ms-azure-resource: true - targetResourceRegion: - description: Location of the target Azure resource where the model should be copied to. - type: string - targetModelId: - description: Identifier of the target model. - $ref: "#/definitions/ModelId" - targetModelLocation: - description: URL of the copied model in the target account. - type: string - accessToken: - description: Token used to authorize the request. - type: string - expirationDateTime: - description: Date/time when the access token expires. - type: string - format: date-time - - OperationInfo: - description: Operation info. - type: object - required: [ operationId, status, createdDateTime, lastUpdatedDateTime, kind, resourceLocation ] - properties: - operationId: - description: Operation ID - type: string - status: - description: Operation status. - type: string - enum: - - notStarted - - running - - failed - - succeeded - - canceled - x-ms-enum: - name: OperationStatus - modelAsString: false - percentCompleted: # status=running - description: Operation progress (0-100). - type: integer - format: int32 - minimum: 0 - maximum: 100 - createdDateTime: - description: Date and time (UTC) when the operation was created. - type: string - format: date-time - lastUpdatedDateTime: - description: Date and time (UTC) when the status was last updated. - type: string - format: date-time - kind: - description: Type of operation. - type: string - enum: - - documentModelBuild - - documentModelCompose - - documentModelCopyTo # resourceLocation is the target model location - x-ms-enum: - name: OperationKind - modelAsString: true - resourceLocation: - description: URL of the resource targeted by this operation. - type: string - - ModelSummary: - description: Model summary. - type: object - required: [ modelId, createdDateTime ] - properties: - modelId: - $ref: "#/definitions/ModelId" - description: - $ref: "#/definitions/ModelDescription" - createdDateTime: - description: Date and time (UTC) when the model was created. - type: string - format: date-time - - ModelInfo: - description: Model info. - type: object - allOf: - - $ref: "#/definitions/ModelSummary" - properties: - docTypes: - description: Supported document types. - type: object - additionalProperties: - $ref: "#/definitions/DocTypeInfo" - - DocTypeInfo: - description: Document type info. - type: object - required: [ fieldSchema ] - properties: - description: - $ref: "#/definitions/ModelDescription" - # technique: - # $ref: "#/definitions/DocumentModelBuildTechnique" - # ocrModel: - # description: OCR model used to train model. - # type: string # Ex. default-2021-09-30 - fieldSchema: - # SDK should represent this property as plain JSON string - $ref: "#/definitions/DocTypeSchema" - fieldConfidence: - description: Estimated confidence for each field. - type: object - additionalProperties: - type: number - minimum: 0 - maximum: 1 - - DocTypeSchema: - description: Description of the document semantic schema using a JSON Schema style syntax. - type: object - additionalProperties: - $ref: "#/definitions/DocumentFieldSchema" - - DocumentFieldSchema: - description: Description of the field semantic schema using a JSON Schema style syntax. - type: object - required: [ type ] - properties: - type: - $ref: "#/definitions/DocumentFieldType" - # format: - # description: TODO - # type: string - description: - description: Field description. - type: string - example: - description: Example field content. - type: string - items: # type=array - description: Field type schema of each array element. - $ref: "#/definitions/DocumentFieldSchema" - properties: # type=object - description: Named sub-fields of the object field. - type: object - additionalProperties: - $ref: "#/definitions/DocumentFieldSchema" - - AnalyzeResultOperation: - description: Status and result of the analyze operation. - type: object - required: [ status, createdDateTime, lastUpdatedDateTime ] - properties: - status: - description: Operation status. - type: string - enum: - - notStarted - - running - - failed - - succeeded - x-ms-enum: - name: AnalyzeResultOperationStatus - modelAsString: false - createdDateTime: - description: Date and time (UTC) when the analyze operation was submitted. - type: string - format: date-time - lastUpdatedDateTime: - description: Date and time (UTC) when the status was last updated. - type: string - format: date-time - error: # status=failed - description: Encountered error during document analysis. - $ref: "#/definitions/Error" - analyzeResult: # status=succeeded - $ref: "#/definitions/AnalyzeResult" - - AnalyzeResult: - description: Document analysis result. - type: object - required: [ apiVersion, modelId, stringIndexType, content, pages ] - properties: - apiVersion: - description: API version used to produce this result. - $ref: "#/definitions/ApiVersion" - modelId: - description: Model ID used to produce this result. - $ref: "#/definitions/ModelId" - stringIndexType: - description: Method used to compute string offset and length. - $ref: "#/definitions/StringIndexType" - content: - description: Concatenate string representation of all textual and visual elements in reading order. - type: string - pages: - description: Analyzed pages. - type: array - items: - $ref: "#/definitions/DocumentPage" - tables: - description: Extracted tables. - type: array - items: - $ref: "#/definitions/DocumentTable" - keyValuePairs: - description: Extracted key-value pairs. - type: array - items: - $ref: "#/definitions/DocumentKeyValuePair" - entities: - description: Extracted entities. - type: array - items: - $ref: "#/definitions/DocumentEntity" - styles: - description: Extracted font styles. - type: array - items: - $ref: "#/definitions/DocumentStyle" - documents: - description: Extracted documents. - type: array - items: - $ref: "#/definitions/Document" - # errors: - # description: Errors encountered during the analysis. - # type: array - # items: - # $ref: "#/definitions/Error" - - DocumentPage: - description: Content and layout elements extracted from a page from the input. - type: object - required: [ pageNumber, angle, width, height, unit, words, lines, spans ] - properties: - # Basic page-level statistics - pageNumber: - description: 1-based page number in the input document. - type: integer - format: int32 - minimum: 1 - angle: - description: The general orientation of the content in clockwise direction, measured in degrees between (-180, 180]. - type: number - minimum: -180 - maximum: 180 - exclusiveMinimum: true - width: - description: The width of the image/PDF in pixels/inches, respectively. - type: number - minimum: 0 - height: - description: The height of the image/PDF in pixels/inches, respectively. - type: number - minimum: 0 - unit: - description: The unit used by the width, height, and boundingBox properties. For images, the unit is "pixel". For PDF, the unit is "inch". - type: string - enum: [ pixel, inch ] - x-ms-enum: - name: LengthUnit - modelAsString: true - spans: - description: Location of the page in the reading order concatenated content. - type: array - items: - $ref: "#/definitions/DocumentSpan" - - # Textual/visual content elements - words: - description: Extracted words from the page. - type: array - items: - $ref: "#/definitions/DocumentWord" - selectionMarks: - description: Extracted selection marks from the page. - type: array - items: - $ref: "#/definitions/DocumentSelectionMark" - # visualElements: # [preview.2+] - # description: Extracted visual elements from the page. - # type: array - # items: - # $ref: "#/definitions/DocumentVisualElement" - - # Layout elements - lines: - description: Extracted lines from the page, potentially containing both textual and visual elements. - type: array - items: - $ref: "#/definitions/DocumentLine" - - # blocks: # [preview.3+] - # description: Extracted layout blocks from the page. - # type: array - # items: - # $ref: "#/definitions/DocumentBlock" - - DocumentWord: - description: A word object consisting of a contiguous sequence of characters. For non-space delimited languages, such as Chinese, Japanese, and Korean, each character is represented as its own word. - type: object - required: [ content, span, confidence ] - properties: - content: # Derived - description: Text content of the word. - type: string - boundingBox: - description: Bounding box of the word. - $ref: "#/definitions/BoundingBox" - span: - description: Location of the word in the reading order concatenated content. - $ref: "#/definitions/DocumentSpan" - confidence: - description: Confidence of correctly extracting the word. - $ref: "#/definitions/Confidence" - # charPositions: # [v3.1+] - # description: Normalized starting horizontal position of each character in the word. - # type: array - # items: - # type: number - # minimum: 0 - # maximum: 1 - - DocumentSelectionMark: - description: A selection mark object representing check boxes, radio buttons, and other elements indicating a selection. - type: object - required: [ state, span, confidence ] - properties: - state: - description: State of the selection mark. - $ref: "#/definitions/DocumentSelectionMarkState" - boundingBox: - description: Bounding box of the selection mark. - $ref: "#/definitions/BoundingBox" - span: - description: Location of the selection mark in the reading order concatenated content. - $ref: "#/definitions/DocumentSpan" - confidence: - description: Confidence of correctly extracting the selection mark. - $ref: "#/definitions/Confidence" - - DocumentSelectionMarkState: - description: State of the selection mark. - type: string - enum: [ selected, unselected ] - x-ms-enum: - name: SelectionMarkState - modelAsString: true - - # DocumentVisualElement: # [preview.3+] - # description: An object representing various visual elements. - # type: object - # required: [ type, span ] - # properties: - # # NAMING: type, kind, ... - # kind: - # description: Kind of visual element. - # type: string - # enum: [ image, separator ] - # x-ms-enum: - # name: VisualElementKind - # modelAsString: true - # boundingBox: - # description: Bounding box of the visual element. - # $ref: "#/definitions/BoundingBox" - # span: - # description: Location of the visual element in the reading order concatenated content. - # $ref: "#/definitions/DocumentSpan" - # confidence: - # description: Confidence of correctly extracting the visual element. - # $ref: "#/definitions/Confidence" - - DocumentLine: - description: A content line object consisting of an adjacent sequence of content elements, such as words and selection marks. - type: object - required: [ content, spans ] - properties: - content: - description: Concatenated content of the contained elements in reading order. - type: string - boundingBox: - description: Bounding box of the line. - $ref: "#/definitions/BoundingBox" - spans: - description: Location of the line in the reading order concatenated content. - type: array - items: - $ref: "#/definitions/DocumentSpan" - # confidence: # [preview.2+] - # description: Confidence of correctly extracting the line. - # $ref: "#/definitions/Confidence" - - # DocumentBlock: # [preview.3+] - # description: A block object that describes various layout elements. - # type: object - # required: [ kind, content, spans ] - # properties: - # kind: - # description: Kind of layout block element. - # type: string - # enum: [ paragraph, column ] - # x-ms-enum: - # name: VisualElementKind - # modelAsString: true - # content: - # description: Concatenated content of the layout block in reading order. - # type: string - # boundingBox: - # description: Bounding box of the layout block element. - # $ref: "#/definitions/BoundingBox" - # spans: - # description: Location of the layout block element in the reading order concatenated content. - # type: array - # items: - # $ref: "#/definitions/DocumentSpan" - # continuation: # [preview.3+] - # description: If the block is split, pointer to the continuation block. - # $ref: "#/definitions/Continuation" - # confidence: # [preview.3+] - # description: Confidence of correctly extracting the layout block element. - # $ref: "#/definitions/Confidence" - - DocumentTable: - # TODO: Do we want to represent empty cells? - # TODO: Do we want to represent cell boundaries? Via a box object? - description: A table object consisting table cells arranged in a rectangular layout. - type: object - required: [ rowCount, columnCount, cells, spans ] - properties: - rowCount: - description: Number of rows in the table. - type: integer - format: int32 - minimum: 1 - columnCount: - description: Number of columns in the table. - type: integer - format: int32 - minimum: 1 - cells: - description: Cells contained within the table. - type: array - items: - $ref: "#/definitions/DocumentTableCell" - boundingRegions: - description: Bounding regions covering the table. - type: array - items: - $ref: "#/definitions/BoundingRegion" - spans: - description: Location of the table in the reading order concatenated content. - type: array - items: - $ref: "#/definitions/DocumentSpan" - # confidence: # [preview.2+] - # description: Confidence of correctly extracting the table. - # $ref: "#/definitions/Confidence" - - DocumentTableCell: - description: An object representing the location and content of a table cell. - type: object - required: [ rowIndex, columnIndex, content, spans ] - properties: - kind: - description: Table cell kind. - type: string - enum: [ content, rowHeader, columnHeader, stubHead, description ] - default: content - x-ms-enum: - name: DocumentTableCellKind - modelAsString: true - rowIndex: - description: Row index of the cell. - type: integer - format: int32 - columnIndex: - description: Column index of the cell. - type: integer - format: int32 - rowSpan: - description: Number of rows spanned by this cell. - type: integer - format: int32 - minimum: 1 - default: 1 - columnSpan: - description: Number of columns spanned by this cell. - type: integer - format: int32 - minimum: 1 - default: 1 - content: - description: Concatenated content of the table cell in reading order. - type: string - boundingRegions: - description: Bounding regions covering the table cell. - type: array - items: - $ref: "#/definitions/BoundingRegion" - spans: - description: Location of the table cell in the reading order concatenated content. - type: array - items: - $ref: "#/definitions/DocumentSpan" - # confidence: # [preview.2+] - # description: Confidence of correctly extracting the table cell. - # $ref: "#/definitions/Confidence" - - DocumentKeyValuePair: - description: An object representing a form field with distinct field label (key) and field value (may be empty). - type: object - required: [ key, confidence ] - properties: - key: - description: Field label of the key-value pair. - $ref: "#/definitions/DocumentKeyValueElement" - value: - description: Field value of the key-value pair. - $ref: "#/definitions/DocumentKeyValueElement" - confidence: - description: Confidence of correctly extracting the key-value pair. - $ref: "#/definitions/Confidence" - - DocumentKeyValueElement: - description: An object representing the field key or value in a key-value pair. - type: object - required: [ content, spans ] - properties: - content: - description: Concatenated content of the key-value element in reading order. - type: string - boundingRegions: - description: Bounding regions covering the key-value element. - type: array - items: - $ref: "#/definitions/BoundingRegion" - spans: - description: Location of the key-value element in the reading order concatenated content. - type: array - items: - $ref: "#/definitions/DocumentSpan" - - DocumentEntity: - description: An object representing various categories of entities. - type: object - required: [ category, content, spans, confidence ] - properties: - category: - description: Entity type. - type: string - subCategory: - description: Entity sub type. - type: string - content: - description: Entity content. - type: string - boundingRegions: - description: Bounding regions covering the entity. - type: array - items: - $ref: "#/definitions/BoundingRegion" - spans: - description: Location of the entity in the reading order concatenated content. - type: array - items: - $ref: "#/definitions/DocumentSpan" - confidence: - description: Confidence of correctly extracting the entity. - $ref: "#/definitions/Confidence" - # TODO: type, value* [preview.2+] - - DocumentStyle: - # Font properties: https://developer.mozilla.org/en-US/docs/Learn/CSS/Styling_text/Fundamentals - description: An object representing observed text styles. - type: object - required: [ spans, confidence ] - properties: - isHandwritten: - description: Is content handwritten? - type: boolean - # fontFamily: - # description: Font family of the text in the specified spans. - # type: string - # enum: [ serif, sanSerif, monospace, cursive, fantasy ] - # x-ms-enum: - # name: FontFamily - # modelAsString: true - # fontStyle: - # description: Font style of the text in the specified spans. - # type: string - # enum: [ normal, italic ] - # x-ms-enum: - # name: FontStyle - # modelAsString: true - # fontWeight: - # description: Font weight of the text in the specified spans. - # type: string - # enum: [ normal, bold, light ] - # x-ms-enum: - # name: FontWeight - # modelAsString: true - # textDecoration: - # description: Font decoration of the text in the specified spans. - # type: array - # items: - # type: string - # # format: # See CSS spec - # fontSize: - # description: Font size of the text in the specified spans. - # type: number - # minimum: 0 - spans: - description: Location of the text elements in the concatenated content the style applies to. - type: array - items: - $ref: "#/definitions/DocumentSpan" - confidence: - description: Confidence of correctly identifying the style. - $ref: "#/definitions/Confidence" - - Document: - description: An object describing the location and semantic content of a document. - type: object - required: [ docType, fields, spans, confidence ] - properties: - docType: - description: Document type. - $ref: "#/definitions/DocType" - boundingRegions: - description: Bounding regions covering the document. - type: array - items: - $ref: "#/definitions/BoundingRegion" - spans: - description: Location of the document in the reading order concatenated content. - type: array - items: - $ref: "#/definitions/DocumentSpan" - fields: - description: Dictionary of named field values. - type: object - additionalProperties: # Property name regex: [\p{L}\p{N}]{1,64} - $ref: "#/definitions/DocumentField" - confidence: - description: Confidence of correctly extracting the document. - $ref: "#/definitions/Confidence" - - DocumentField: - description: An object representing the content and location of a field value. - type: object - required: [ type ] - properties: - # TODO: Consider introducing kind={extraction,classification}. - # Classification field: type, value{Type}, confidence - # Extraction field: type, value{Type}, content, boundingRegions, spans, confidence - type: - description: Data type of the field value. - $ref: "#/definitions/DocumentFieldType" - valueString: - description: String value. - type: string - valueDate: - description: Date value in YYYY-MM-DD format (ISO 8601). - type: string - format: date - valueTime: - description: Time value in hh:mm:ss format (ISO 8601). - type: string - format: time - valuePhoneNumber: - description: Phone number value in E.164 format (ex. +19876543210). - type: string - # format: See E.164 - valueNumber: - description: Floating point value. - type: number - valueInteger: - description: Integer value. - type: integer - format: int64 - valueSelectionMark: - description: Selection mark value. - $ref: "#/definitions/DocumentSelectionMarkState" - valueSignature: - description: Presence of signature. - type: string - enum: - - signed - - unsigned - x-ms-enum: - name: DocumentSignatureType - modelAsString: true - valueCountryRegion: - description: 3-letter country code value (ISO 3166-1 alpha-3). - type: string - valueArray: - description: Array of field values. - type: array - items: - $ref: "#/definitions/DocumentField" - valueObject: - description: Dictionary of named field values. - type: object - additionalProperties: - $ref: "#/definitions/DocumentField" - content: - description: Field content. - type: string - boundingRegions: - description: Bounding regions covering the field. - type: array - items: - $ref: "#/definitions/BoundingRegion" - spans: - description: Location of the field in the reading order concatenated content. - type: array - items: - $ref: "#/definitions/DocumentSpan" - confidence: - description: Confidence of correctly extracting the field. - $ref: "#/definitions/Confidence" - - DocumentFieldType: - description: Semantic data type of the field value. - type: string - enum: [ string, date, time, phoneNumber, number, integer, selectionMark, countryRegion, signature, array, object ] - x-ms-enum: - name: DocumentFieldType - modelAsString: true - - ModelId: - description: Unique model name. - type: string - pattern: "[a-zA-Z0-9][a-zA-Z0-9._~-]{1,63}" - - ModelDescription: - description: Model description. - type: string - maxLength: 4096 - - # DocumentModelBuildTechnique: - # description: Technique for building a custom model. - # type: string - # enum: - # - fixedTemplate-2021-09-30 - # # - general-2021-09-30-preview - # x-ms-enum: - # name: DocumentModelBuildTechnique - # modelAsString: true - - DocType: - description: Document type name. - type: string - minLength: 2 - maxLength: 64 - - BoundingBox: - description: Quadrangle bounding box, with coordinates specified relative to the top-left of the page. The eight numbers represent the four points, clockwise from the top-left corner relative to the text orientation. - type: array - minItems: 8 - maxItems: 8 - items: - type: number - minimum: 0 - - BoundingRegion: - description: Bounding box on a specific page of the input. - type: object - required: [ pageNumber, boundingBox ] - properties: - pageNumber: - description: 1-based page number of page containing the bounding region. - type: integer - format: int32 - minimum: 1 - boundingBox: - description: Bounding box on the page, or the entire page if not specified. - $ref: "#/definitions/BoundingBox" - - Confidence: - description: Prediction confidence. - type: number - minimum: 0.0 - maximum: 1.0 - - DocumentSpan: - description: Contiguous region of the concatenated content property, specified as an offset and length. - type: object - required: [ offset, length ] - properties: - offset: - description: Zero-based index of the content represented by the span. - type: integer - format: int32 - minimum: 0 - length: - description: Number of characters in the content represented by the span. - type: integer - format: int32 - minimum: 0 - - StringIndexType: - description: Method used to compute string offset and length. - type: string - enum: - - textElements - - unicodeCodePoint - - utf16CodeUnit - x-ms-enum: - name: StringIndexType - modelAsString: true - default: textElements - - # [FR v3.1+] - # Continuation: - # description: Pointer to the continuation element if the current element is split. - # type: string - # format: uri-reference # Ex. "#/pages/0/blocks/3" - -parameters: - Endpoint: - name: endpoint - description: 'Supported Cognitive Services endpoints (protocol and hostname, for - example: https://westus2.api.cognitive.microsoft.com).' - x-ms-parameter-location: client - required: true - type: string - in: path - x-ms-skip-url-encoding: true - QueryApiVersion: - name: api-version - description: Requested API version. - required: true - type: string - in: query - enum: - - 2021-09-30-preview - x-ms-enum: - name: ApiVersion - modelAsString: true - x-ms-parameter-location: client - PathModelId: - name: modelId - description: Unique model name. - required: true - type: string - pattern: "[a-zA-Z0-9][a-zA-Z0-9._~-]{1,63}" - in: path - x-ms-parameter-location: method - PathOperationId: - name: operationId - description: Unique operation ID. - required: true - type: string - in: path - x-ms-parameter-location: method - PathResultId: - name: resultId - description: Analyze operation result ID. - required: true - type: string - in: path - x-ms-parameter-location: method - QueryPages: - name: pages - description: List of 1-based page numbers to analyze. Ex. "1-3,5,7-9" - required: false - type: string - in: query - pattern: ^(\d+(-\d+)?)(,\s*(\d+(-\d+)?))*$ - x-ms-parameter-location: method - QueryLocale: - name: locale - description: Locale hint for text recognition and document analysis. Value may contain only the language code (ex. "en", "fr") or BCP 47 language tag (ex. "en-US"). - required: false - type: string - in: query - x-ms-parameter-location: method - QueryStringIndexType: - name: stringIndexType - description: Method used to compute string offset and length. - required: false - in: query - type: string - enum: - - textElements - - unicodeCodePoint - - utf16CodeUnit - x-ms-enum: - name: StringIndexType - modelAsString: true - default: textElements - x-ms-parameter-location: method - # HeaderRepeatabilityRequestId: - # name: Repeatability-Request-ID - # description: Client-generated unique request ID. - # required: false - # type: string - # in: header - # x-ms-parameter-location: method - # HeaderRepeatabilityFirstSent: - # name: RepeatabilityFirst-Sent - # description: Date and time the request was first created. - # required: false - # type: string - # in: header - # # format: IMF-fixdate https://www.rfc-editor.org/rfc/rfc7231.html#section-7.1.1.1 - # x-ms-parameter-location: method - \ No newline at end of file