DocumentModelAdministrationAsyncClient Class

  • java.lang.Object
    • com.azure.ai.formrecognizer.documentanalysis.administration.DocumentModelAdministrationAsyncClient

public final class DocumentModelAdministrationAsyncClient

This class provides an asynchronous client to connect to the Form Recognizer Azure Cognitive Service.

This client provides asynchronous methods to perform:

  1. Build a custom model: Extract data from your specific documents by building custom models using the beginBuildDocumentModel(String blobContainerUrl, DocumentModelBuildMode buildMode) method to provide a container SAS URL to your Azure Storage Blob container.
  2. Composed custom models: Creates a new model from document types of collection of existing models using the beginComposeDocumentModel(List<String> componentModelIds) method.
  3. Copy custom model: Copy a custom Form Recognizer model to a target Form Recognizer resource using the beginCopyDocumentModelTo(String sourceModelId, DocumentModelCopyAuthorization target) method.
  4. Custom model management: Get detailed information, delete and list custom models using methods getDocumentModel(String modelId), listDocumentModels() and deleteDocumentModel(String modelId) respectively.
  5. Operations management: Get detailed information and list operations on the Form Recognizer account using methods getOperation(String operationId) and listOperations() respectively.
  6. Polling and Callbacks: It includes mechanisms for polling the service to check the status of an analysis operation or registering callbacks to receive notifications when the analysis is complete.

Note: This client only supports V2022_08_31 and newer. To use an older service version, FormRecognizerClient and FormTrainingClient.

Service clients are the point of interaction for developers to use Azure Form Recognizer. DocumentModelAdministrationClient is the synchronous service client and DocumentModelAdministrationAsyncClient is the asynchronous service client. The examples shown in this document use a credential object named DefaultAzureCredential for authentication, which is appropriate for most scenarios, including local development and production environments. Additionally, we recommend using managed identity for authentication in production environments. You can find more information on different ways of authenticating and their corresponding credential types in the Azure Identity documentation".

Sample: Construct a DocumentModelAdministrationAsyncClient with DefaultAzureCredential

The following code sample demonstrates the creation of a DocumentModelAdministrationAsyncClient, using the `DefaultAzureCredentialBuilder` to configure it.

DocumentModelAdministrationAsyncClient client = new DocumentModelAdministrationClientBuilder()
     .endpoint("{endpoint}")
     .credential(new DefaultAzureCredentialBuilder().build())
     .buildAsyncClient();

Further, see the code sample below to use AzureKeyCredential for client creation.

DocumentModelAdministrationAsyncClient documentModelAdministrationAsyncClient =
     new DocumentModelAdministrationClientBuilder()
         .credential(new AzureKeyCredential("{key}"))
         .endpoint("{endpoint}")
         .buildAsyncClient();

Method Summary

Modifier and Type Method and Description
PollerFlux<OperationResult,DocumentClassifierDetails> beginBuildDocumentClassifier(Map<String,ClassifierDocumentTypeDetails> documentTypes)

Builds a custom classifier document model.

PollerFlux<OperationResult,DocumentClassifierDetails> beginBuildDocumentClassifier(Map<String,ClassifierDocumentTypeDetails> documentTypes, BuildDocumentClassifierOptions buildDocumentClassifierOptions)

Builds a custom document analysis model.

PollerFlux<OperationResult,DocumentModelDetails> beginBuildDocumentModel(ContentSource contentSource, DocumentModelBuildMode buildMode)

Builds a custom document analysis model.

PollerFlux<OperationResult,DocumentModelDetails> beginBuildDocumentModel(ContentSource contentSource, DocumentModelBuildMode buildMode, BuildDocumentModelOptions buildDocumentModelOptions)

Builds a custom document analysis model.

PollerFlux<OperationResult,DocumentModelDetails> beginBuildDocumentModel(String blobContainerUrl, DocumentModelBuildMode buildMode)

Builds a custom document analysis model.

PollerFlux<OperationResult,DocumentModelDetails> beginBuildDocumentModel(String blobContainerUrl, DocumentModelBuildMode buildMode, String prefix, BuildDocumentModelOptions buildDocumentModelOptions)

Builds a custom document analysis model.

PollerFlux<OperationResult,DocumentModelDetails> beginComposeDocumentModel(List<String> componentModelIds)

Create a composed model from the provided list of existing models in the account.

PollerFlux<OperationResult,DocumentModelDetails> beginComposeDocumentModel(List<String> componentModelIds, ComposeDocumentModelOptions composeDocumentModelOptions)

Create a composed model from the provided list of existing models in the account.

PollerFlux<OperationResult,DocumentModelDetails> beginCopyDocumentModelTo(String sourceModelId, DocumentModelCopyAuthorization target)

Copy a custom model stored in this resource (the source) to the user specified target Form Recognizer resource.

Mono<Void> deleteDocumentClassifier(String classifierId)

Deletes the specified document classifier.

Mono<Response<Void>> deleteDocumentClassifierWithResponse(String classifierId)

Deletes the specified document classifier.

Mono<Void> deleteDocumentModel(String modelId)

Deletes the specified custom document analysis model.

Mono<Response<Void>> deleteDocumentModelWithResponse(String modelId)

Deletes the specified custom document analysis model.

Mono<DocumentModelCopyAuthorization> getCopyAuthorization()

Generate authorization for copying a custom document analysis model into the target Form Recognizer resource.

Mono<Response<DocumentModelCopyAuthorization>> getCopyAuthorizationWithResponse(CopyAuthorizationOptions copyAuthorizationOptions)

Generate authorization for copying a custom document analysis model into the target Form Recognizer resource.

DocumentAnalysisAsyncClient getDocumentAnalysisAsyncClient()

Creates a new DocumentAnalysisAsyncClient object.

Mono<DocumentClassifierDetails> getDocumentClassifier(String classifierId)

Get detailed information for a document classifier by its ID.

Mono<Response<DocumentClassifierDetails>> getDocumentClassifierWithResponse(String classifierId)

Get detailed information for a specified model ID with Http response.

Mono<DocumentModelDetails> getDocumentModel(String modelId)

Get detailed information for a specified model ID.

Mono<Response<DocumentModelDetails>> getDocumentModelWithResponse(String modelId)

Get detailed information for a specified model ID with Http response.

Mono<OperationDetails> getOperation(String operationId)

Get detailed operation information for the specified ID.

Mono<Response<OperationDetails>> getOperationWithResponse(String operationId)

Get detailed operation information for the specified ID with Http response.

Mono<ResourceDetails> getResourceDetails()

Get information about the current Form Recognizer resource.

Mono<Response<ResourceDetails>> getResourceDetailsWithResponse()

Get the information about the current Form Recognizer resource with a Http response.

PagedFlux<DocumentClassifierDetails> listDocumentClassifiers()

List information for each document classifier on the Form Recognizer account that were built successfully.

PagedFlux<DocumentModelSummary> listDocumentModels()

List information for each model on the Form Recognizer account that were built successfully.

PagedFlux<OperationSummary> listOperations()

List information for each model operation on the Form Recognizer account in the past 24 hours.

Methods inherited from java.lang.Object

Method Details

beginBuildDocumentClassifier

public PollerFlux beginBuildDocumentClassifier(Map documentTypes)

Builds a custom classifier document model.

Classifier models can identify multiple documents or multiple instances of a single document. For that, you need at least five documents for each class and two classes of documents.

The service does not support cancellation of the long running operation and returns with an error message indicating absence of cancellation support.

Code sample

String blobContainerUrl1040D = "{SAS_URL_of_your_container_in_blob_storage}";
 String blobContainerUrl1040A = "{SAS_URL_of_your_container_in_blob_storage}";
 HashMap<String, ClassifierDocumentTypeDetails> documentTypesDetailsMap = new HashMap<>();
 documentTypesDetailsMap.put("1040-D", new ClassifierDocumentTypeDetails(new BlobContentSource(blobContainerUrl1040D)
 ));
 documentTypesDetailsMap.put("1040-A", new ClassifierDocumentTypeDetails(new BlobContentSource(blobContainerUrl1040A)
 ));

 documentModelAdministrationAsyncClient.beginBuildDocumentClassifier(documentTypesDetailsMap)
     // if polling operation completed, retrieve the final result.
     .flatMap(AsyncPollResponse::getFinalResult)
     .subscribe(classifierDetails -> {
         System.out.printf("Classifier ID: %s%n", classifierDetails.getClassifierId());
         System.out.printf("Classifier description: %s%n", classifierDetails.getDescription());
         System.out.printf("Classifier created on: %s%n", classifierDetails.getCreatedOn());
         System.out.printf("Classifier expires on: %s%n", classifierDetails.getExpiresOn());
         classifierDetails.getDocumentTypes().forEach((key, documentTypeDetails) -> {
             if (documentTypeDetails.getContentSource() instanceof BlobContentSource) {
                 System.out.printf("Blob Source container Url: %s", ((BlobContentSource) documentTypeDetails
                     .getContentSource()).getContainerUrl());
             }
         });
     });

Parameters:

documentTypes - List of document types to classify against.

Returns:

A PollerFlux<T,U> that polls the building model operation until it has completed, has failed, or has been cancelled. The completed operation returns the trained DocumentClassifierDetails.

beginBuildDocumentClassifier

public PollerFlux beginBuildDocumentClassifier(Map documentTypes, BuildDocumentClassifierOptions buildDocumentClassifierOptions)

Builds a custom document analysis model. Models are built using documents that are of the following content type - 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff', image/bmp. Other type of content is ignored.

The service does not support cancellation of the long running operation and returns with an error message indicating absence of cancellation support.

See here for information on building your own administration data set.

Code sample

String blobContainerUrl1040D = "{SAS_URL_of_your_container_in_blob_storage}";
 String blobContainerUrl1040A = "{SAS_URL_of_your_container_in_blob_storage}";
 HashMap<String, ClassifierDocumentTypeDetails> documentTypesDetailsMap = new HashMap<>();
 documentTypesDetailsMap.put("1040-D", new ClassifierDocumentTypeDetails(new BlobContentSource(blobContainerUrl1040D)
 ));
 documentTypesDetailsMap.put("1040-A", new ClassifierDocumentTypeDetails(new BlobContentSource(blobContainerUrl1040A)
 ));

 documentModelAdministrationAsyncClient.beginBuildDocumentClassifier(documentTypesDetailsMap,
         new BuildDocumentClassifierOptions()
             .setClassifierId("classifierId")
             .setDescription("classifier desc"))
     // if polling operation completed, retrieve the final result.
     .flatMap(AsyncPollResponse::getFinalResult)
     .subscribe(classifierDetails -> {
         System.out.printf("Classifier ID: %s%n", classifierDetails.getClassifierId());
         System.out.printf("Classifier description: %s%n", classifierDetails.getDescription());
         System.out.printf("Classifier created on: %s%n", classifierDetails.getCreatedOn());
         System.out.printf("Classifier expires on: %s%n", classifierDetails.getExpiresOn());
         classifierDetails.getDocumentTypes().forEach((key, documentTypeDetails) -> {
             if (documentTypeDetails.getContentSource() instanceof BlobContentSource) {
                 System.out.printf("Blob Source container Url: %s", ((BlobContentSource) documentTypeDetails
                     .getContentSource()).getContainerUrl());
             }
         });
     });

Parameters:

documentTypes - List of document types to classify against.
buildDocumentClassifierOptions - The configurable BuildDocumentClassifierOptions to pass when building a custom classifier document model.

Returns:

A SyncPoller<T,U> that polls the building model operation until it has completed, has failed, or has been cancelled. The completed operation returns the built DocumentClassifierDetails.

beginBuildDocumentModel

public PollerFlux beginBuildDocumentModel(ContentSource contentSource, DocumentModelBuildMode buildMode)

Builds a custom document analysis model. Models are built using documents that are of the following content type - 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff', image/bmp. Other type of content is ignored.

The service does not support cancellation of the long running operation and returns with an error message indicating absence of cancellation support.

See here for information on building your own administration data set.

Code sample

String blobContainerUrl = "{SAS-URL-of-your-container-in-blob-storage}";
 String fileList = "";
 documentModelAdministrationAsyncClient.beginBuildDocumentModel(
     new BlobFileListContentSource(blobContainerUrl, fileList),
         DocumentModelBuildMode.TEMPLATE)
     // if polling operation completed, retrieve the final result.
     .flatMap(AsyncPollResponse::getFinalResult)
     .subscribe(documentModel -> {
         System.out.printf("Model ID: %s%n", documentModel.getModelId());
         System.out.printf("Model Created on: %s%n", documentModel.getCreatedOn());
         documentModel.getDocumentTypes().forEach((key, documentTypeDetails) -> {
             documentTypeDetails.getFieldSchema().forEach((field, documentFieldSchema) -> {
                 System.out.printf("Field: %s", field);
                 System.out.printf("Field type: %s", documentFieldSchema.getType());
                 System.out.printf("Field confidence: %.2f", documentTypeDetails.getFieldConfidence().get(field));
             });
         });
     });

Parameters:

contentSource - training data source to be used for building the model. It can be an Azure Storage blob container's provided along with its respective prefix or Path to a JSONL file within the container specifying the set of documents for training. For more information on setting up a training data set, see: here.
buildMode - the preferred technique for creating models. For faster training of models use TEMPLATE. See here for more information on building mode for custom documents.

Returns:

A PollerFlux<T,U> that polls the building model operation until it has completed, has failed, or has been cancelled. The completed operation returns the trained DocumentModelDetails.

beginBuildDocumentModel

public PollerFlux beginBuildDocumentModel(ContentSource contentSource, DocumentModelBuildMode buildMode, BuildDocumentModelOptions buildDocumentModelOptions)

Builds a custom document analysis model. Models are built using documents that are of the following content type - 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff', image/bmp. Other type of content is ignored.

The service does not support cancellation of the long running operation and returns with an error message indicating absence of cancellation support.

See here for information on building your own administration data set.

Code sample

String blobContainerUrl = "{SAS-URL-of-your-container-in-blob-storage}";
 String fileList = "";
 String modelId = "model-id";
 Map<String, String> attrs = new HashMap<String, String>();
 attrs.put("createdBy", "sample");
 String prefix = "Invoice";

 documentModelAdministrationAsyncClient.beginBuildDocumentModel(
         new BlobFileListContentSource(blobContainerUrl, fileList),
         DocumentModelBuildMode.TEMPLATE,
     new BuildDocumentModelOptions()
         .setModelId(modelId)
         .setDescription("model desc")
         .setTags(attrs))
     // if polling operation completed, retrieve the final result.
     .flatMap(AsyncPollResponse::getFinalResult)
     .subscribe(documentModel -> {
         System.out.printf("Model ID: %s%n", documentModel.getModelId());
         System.out.printf("Model Description: %s%n", documentModel.getDescription());
         System.out.printf("Model Created on: %s%n", documentModel.getCreatedOn());
         System.out.printf("Model assigned tags: %s%n", documentModel.getTags());
         documentModel.getDocumentTypes().forEach((key, documentTypeDetails) -> {
             documentTypeDetails.getFieldSchema().forEach((field, documentFieldSchema) -> {
                 System.out.printf("Field: %s", field);
                 System.out.printf("Field type: %s", documentFieldSchema.getType());
                 System.out.printf("Field confidence: %.2f", documentTypeDetails.getFieldConfidence().get(field));
             });
         });
     });

Parameters:

contentSource - training data source to be used for building the model. It can be an Azure Storage blob container's provided along with its respective prefix or Path to a JSONL file within the container specifying the set of documents for training. For more information on setting up a training data set, see: here.
buildMode - the preferred technique for creating models. For faster training of models use TEMPLATE. See here for more information on building mode for custom documents.
buildDocumentModelOptions - The configurable BuildDocumentModelOptions to pass when building a custom document analysis model.

Returns:

A PollerFlux<T,U> that polls the building model operation until it has completed, has failed, or has been cancelled. The completed operation returns the trained DocumentModelDetails.

beginBuildDocumentModel

public PollerFlux beginBuildDocumentModel(String blobContainerUrl, DocumentModelBuildMode buildMode)

Builds a custom document analysis model. Models are built using documents that are of the following content type - 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff', image/bmp. Other type of content is ignored.

The service does not support cancellation of the long running operation and returns with an error message indicating absence of cancellation support.

See here for information on building your own administration data set.

Code sample

String blobContainerUrl = "{SAS-URL-of-your-container-in-blob-storage}";
 documentModelAdministrationAsyncClient.beginBuildDocumentModel(blobContainerUrl,
         DocumentModelBuildMode.TEMPLATE
     )
     // if polling operation completed, retrieve the final result.
     .flatMap(AsyncPollResponse::getFinalResult)
     .subscribe(documentModel -> {
         System.out.printf("Model ID: %s%n", documentModel.getModelId());
         System.out.printf("Model Created on: %s%n", documentModel.getCreatedOn());
         documentModel.getDocumentTypes().forEach((key, documentTypeDetails) -> {
             documentTypeDetails.getFieldSchema().forEach((field, documentFieldSchema) -> {
                 System.out.printf("Field: %s", field);
                 System.out.printf("Field type: %s", documentFieldSchema.getType());
                 System.out.printf("Field confidence: %.2f", documentTypeDetails.getFieldConfidence().get(field));
             });
         });
     });

Parameters:

blobContainerUrl - an Azure Storage blob container's SAS URI. A container URI (without SAS) can be used if the container is public or has a managed identity configured. For more information on setting up a training data set, see: here.
buildMode - the preferred technique for creating models. For faster training of models use TEMPLATE. See here for more information on building mode for custom documents.

Returns:

A PollerFlux<T,U> that polls the building model operation until it has completed, has failed, or has been cancelled. The completed operation returns the trained DocumentModelDetails.

beginBuildDocumentModel

public PollerFlux beginBuildDocumentModel(String blobContainerUrl, DocumentModelBuildMode buildMode, String prefix, BuildDocumentModelOptions buildDocumentModelOptions)

Builds a custom document analysis model. Models are built using documents that are of the following content type - 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff', image/bmp. Other type of content is ignored.

The service does not support cancellation of the long running operation and returns with an error message indicating absence of cancellation support.

See here for information on building your own administration data set.

Code sample

String blobContainerUrl = "{SAS-URL-of-your-container-in-blob-storage}";
 String modelId = "model-id";
 Map<String, String> attrs = new HashMap<String, String>();
 attrs.put("createdBy", "sample");
 String prefix = "Invoice";

 documentModelAdministrationAsyncClient.beginBuildDocumentModel(blobContainerUrl,
         DocumentModelBuildMode.TEMPLATE,
         prefix,
         new BuildDocumentModelOptions()
             .setModelId(modelId)
             .setDescription("model desc")
             .setTags(attrs))
     // if polling operation completed, retrieve the final result.
     .flatMap(AsyncPollResponse::getFinalResult)
     .subscribe(documentModel -> {
         System.out.printf("Model ID: %s%n", documentModel.getModelId());
         System.out.printf("Model Description: %s%n", documentModel.getDescription());
         System.out.printf("Model Created on: %s%n", documentModel.getCreatedOn());
         System.out.printf("Model assigned tags: %s%n", documentModel.getTags());
         documentModel.getDocumentTypes().forEach((key, documentTypeDetails) -> {
             documentTypeDetails.getFieldSchema().forEach((field, documentFieldSchema) -> {
                 System.out.printf("Field: %s", field);
                 System.out.printf("Field type: %s", documentFieldSchema.getType());
                 System.out.printf("Field confidence: %.2f", documentTypeDetails.getFieldConfidence().get(field));
             });
         });
     });

Parameters:

blobContainerUrl - an Azure Storage blob container's SAS URI. A container URI (without SAS) can be used if the container is public or has a managed identity configured. For more information on setting up a training data set, see: here.
buildMode - the preferred technique for creating models. For faster training of models use TEMPLATE. See here for more information on building mode for custom documents.
prefix - case-sensitive prefix blob name prefix to filter documents for training.
buildDocumentModelOptions - The configurable BuildDocumentModelOptions to pass when building a custom document analysis model.

Returns:

A PollerFlux<T,U> that polls the building model operation until it has completed, has failed, or has been cancelled. The completed operation returns the trained DocumentModelDetails.

beginComposeDocumentModel

public PollerFlux beginComposeDocumentModel(List componentModelIds)

Create a composed model from the provided list of existing models in the account.

This operations fails if the list consists of an invalid, non-existing model Id or duplicate IDs.

The service does not support cancellation of the long running operation and returns with an error message indicating absence of cancellation support.

Code sample

String modelId1 = "{model_Id_1}";
 String modelId2 = "{model_Id_2}";
 documentModelAdministrationAsyncClient.beginComposeDocumentModel(Arrays.asList(modelId1, modelId2)
     )
     // if polling operation completed, retrieve the final result.
     .flatMap(AsyncPollResponse::getFinalResult)
     .subscribe(documentModel -> {
         System.out.printf("Model ID: %s%n", documentModel.getModelId());
         System.out.printf("Model Created on: %s%n", documentModel.getCreatedOn());
         documentModel.getDocumentTypes().forEach((key, documentTypeDetails) -> {
             documentTypeDetails.getFieldSchema().forEach((field, documentFieldSchema) -> {
                 System.out.printf("Field: %s", field);
                 System.out.printf("Field type: %s", documentFieldSchema.getType());
                 System.out.printf("Field confidence: %.2f", documentTypeDetails.getFieldConfidence().get(field));
             });
         });
     });

Parameters:

componentModelIds - The list of component models to compose.

Returns:

A PollerFlux<T,U> that polls the create composed model operation until it has completed, has failed, or has been cancelled. The completed operation returns the created DocumentModelDetails.

beginComposeDocumentModel

public PollerFlux beginComposeDocumentModel(List componentModelIds, ComposeDocumentModelOptions composeDocumentModelOptions)

Create a composed model from the provided list of existing models in the account.

This operations fails if the list consists of an invalid, non-existing model Id or duplicate IDs.

The service does not support cancellation of the long running operation and returns with an error message indicating absence of cancellation support.

Code sample

String modelId1 = "{model_Id_1}";
 String modelId2 = "{model_Id_2}";
 String modelId = "my-composed-model";
 Map<String, String> attrs = new HashMap<String, String>();
 attrs.put("createdBy", "sample");

 documentModelAdministrationAsyncClient.beginComposeDocumentModel(Arrays.asList(modelId1, modelId2),
         new ComposeDocumentModelOptions()
             .setModelId(modelId)
             .setDescription("model-desc")
             .setTags(attrs))
     // if polling operation completed, retrieve the final result.
     .flatMap(AsyncPollResponse::getFinalResult)
     .subscribe(documentModel -> {
         System.out.printf("Model ID: %s%n", documentModel.getModelId());
         System.out.printf("Model Description: %s%n", documentModel.getDescription());
         System.out.printf("Model Created on: %s%n", documentModel.getCreatedOn());
         System.out.printf("Model assigned tags: %s%n", documentModel.getTags());
         documentModel.getDocumentTypes().forEach((key, documentTypeDetails) -> {
             documentTypeDetails.getFieldSchema().forEach((field, documentFieldSchema) -> {
                 System.out.printf("Field: %s", field);
                 System.out.printf("Field type: %s", documentFieldSchema.getType());
                 System.out.printf("Field confidence: %.2f", documentTypeDetails.getFieldConfidence().get(field));
             });
         });
     });

Parameters:

componentModelIds - The list of component models to compose.
composeDocumentModelOptions - The configurable ComposeDocumentModelOptions to pass when creating a composed model.

Returns:

A PollerFlux<T,U> that polls the create composed model operation until it has completed, has failed, or has been cancelled. The completed operation returns the copied model DocumentModelDetails.

beginCopyDocumentModelTo

public PollerFlux beginCopyDocumentModelTo(String sourceModelId, DocumentModelCopyAuthorization target)

Copy a custom model stored in this resource (the source) to the user specified target Form Recognizer resource.

This should be called with the source Form Recognizer resource (with the model that is intended to be copied). The target parameter should be supplied from the target resource's output from getCopyAuthorization() method.

The service does not support cancellation of the long running operation and returns with an error message indicating absence of cancellation support.

Code sample

String copyModelId = "copy-model";
 // Get authorization to copy the model to target resource
 documentModelAdministrationAsyncClient.getCopyAuthorization()
     // Start copy operation from the source client
     // The ID of the model that needs to be copied to the target resource
     .subscribe(copyAuthorization -> documentModelAdministrationAsyncClient.beginCopyDocumentModelTo(copyModelId,
             copyAuthorization)
         .filter(pollResponse -> pollResponse.getStatus().isComplete())
         .flatMap(AsyncPollResponse::getFinalResult)
         .subscribe(documentModel ->
             System.out.printf("Copied model has model ID: %s, was created on: %s.%n,",
                 documentModel.getModelId(),
                 documentModel.getCreatedOn())));

Parameters:

sourceModelId - Model identifier of the source model to copy to target resource.
target - the copy authorization to the target Form Recognizer resource. The copy authorization can be generated from the target resource's call to getCopyAuthorization()

Returns:

A PollerFlux<T,U> that polls the copy model operation until it has completed, has failed, or has been cancelled. The completed operation returns the copied model DocumentModelDetails.

deleteDocumentClassifier

public Mono deleteDocumentClassifier(String classifierId)

Deletes the specified document classifier.

Code sample

String classifierId = "{classifierId}";
 documentModelAdministrationAsyncClient.deleteDocumentClassifier(classifierId)
     .subscribe(ignored -> System.out.printf("Classifier ID: %s is deleted%n", classifierId));

Parameters:

classifierId - The unique document classifier identifier.

Returns:

An empty Mono.

deleteDocumentClassifierWithResponse

public Mono> deleteDocumentClassifierWithResponse(String classifierId)

Deletes the specified document classifier.

Code sample

String classifierId = "{classifierId}";
 documentModelAdministrationAsyncClient.deleteDocumentClassifierWithResponse(classifierId)
     .subscribe(response -> {
         System.out.printf("Response Status Code: %d.", response.getStatusCode());
         System.out.printf("Classifier ID: %s is deleted.%n", classifierId);
     });

Parameters:

classifierId - The unique document classifier identifier.

Returns:

A Response<T> containing the status code and HTTP headers.

deleteDocumentModel

public Mono deleteDocumentModel(String modelId)

Deletes the specified custom document analysis model.

Code sample

String modelId = "{model_id}";
 documentModelAdministrationAsyncClient.deleteDocumentModel(modelId)
     .subscribe(ignored -> System.out.printf("Model ID: %s is deleted%n", modelId));

Parameters:

modelId - The unique model identifier.

Returns:

An empty Mono.

deleteDocumentModelWithResponse

public Mono> deleteDocumentModelWithResponse(String modelId)

Deletes the specified custom document analysis model.

Code sample

String modelId = "{model_id}";
 documentModelAdministrationAsyncClient.deleteDocumentModelWithResponse(modelId)
     .subscribe(response -> {
         System.out.printf("Response Status Code: %d.", response.getStatusCode());
         System.out.printf("Model ID: %s is deleted.%n", modelId);
     });

Parameters:

modelId - The unique model identifier.

Returns:

A Response<T> containing the status code and HTTP headers.

getCopyAuthorization

public Mono getCopyAuthorization()

Generate authorization for copying a custom document analysis model into the target Form Recognizer resource.

This should be called by the target resource (where the model will be copied to) and the output can be passed as the target parameter into beginCopyDocumentModelTo(String sourceModelId, DocumentModelCopyAuthorization target).

Returns:

The DocumentModelCopyAuthorization that could be used to authorize copying model between resources.

getCopyAuthorizationWithResponse

public Mono> getCopyAuthorizationWithResponse(CopyAuthorizationOptions copyAuthorizationOptions)

Generate authorization for copying a custom document analysis model into the target Form Recognizer resource.

This should be called by the target resource (where the model will be copied to) and the output can be passed as the target parameter into beginCopyDocumentModelTo(String sourceModelId, DocumentModelCopyAuthorization target).

Parameters:

copyAuthorizationOptions - The configurable CopyAuthorizationOptions to pass when copying a model. Code sample String modelId = "my-copied-model"; Map<String, String> attrs = new HashMap<String, String>(); attrs.put("createdBy", "sample");

documentModelAdministrationAsyncClient.getCopyAuthorizationWithResponse( new CopyAuthorizationOptions() .setModelId(modelId) .setDescription("model desc") .setTags(attrs)) .subscribe(copyAuthorization -> System.out.printf("Copy Authorization response status: %s, for model id: %s, access token: %s, " + "expiration time: %s, target resource ID; %s, target resource region: %s%n", copyAuthorization.getStatusCode(), copyAuthorization.getValue().getTargetModelId(), copyAuthorization.getValue().getAccessToken(), copyAuthorization.getValue().getExpiresOn(), copyAuthorization.getValue().getTargetResourceId(), copyAuthorization.getValue().getTargetResourceRegion() ));

Returns:

The DocumentModelCopyAuthorization that could be used to authorize copying model between resources.

getDocumentAnalysisAsyncClient

public DocumentAnalysisAsyncClient getDocumentAnalysisAsyncClient()

Creates a new DocumentAnalysisAsyncClient object. The new DocumentTrainingAsyncClient uses the same request policy pipeline as the DocumentTrainingAsyncClient.

Returns:

getDocumentClassifier

public Mono getDocumentClassifier(String classifierId)

Get detailed information for a document classifier by its ID.

Code sample

String modelId = "{model_id}";
 documentModelAdministrationAsyncClient.getDocumentClassifier(modelId).subscribe(documentClassifier -> {
     System.out.printf("Classifier ID: %s%n", documentClassifier.getClassifierId());
     System.out.printf("Classifier Description: %s%n", documentClassifier.getDescription());
     System.out.printf("Classifier Created on: %s%n", documentClassifier.getCreatedOn());
     documentClassifier.getDocumentTypes().forEach((key, documentTypeDetails) -> {
         if (documentTypeDetails.getContentSource() instanceof BlobContentSource) {
             System.out.printf("Blob Source container Url: %s", ((BlobContentSource) documentTypeDetails
                 .getContentSource()).getContainerUrl());
         }
         if (documentTypeDetails.getContentSource() instanceof BlobFileListContentSource) {
             System.out.printf("Blob File List Source container Url: %s",
                 ((BlobFileListContentSource) documentTypeDetails
                 .getContentSource()).getContainerUrl());
         }
     });
 });

Parameters:

classifierId - The unique document classifier identifier.

Returns:

The detailed information for the specified document classifier ID.

getDocumentClassifierWithResponse

public Mono> getDocumentClassifierWithResponse(String classifierId)

Get detailed information for a specified model ID with Http response.

Code sample

String modelId = "{model_id}";
 documentModelAdministrationAsyncClient.getDocumentModelWithResponse(modelId).subscribe(response -> {
     System.out.printf("Response Status Code: %d.", response.getStatusCode());
     DocumentModelDetails documentModelDetails = response.getValue();
     System.out.printf("Model ID: %s%n", documentModelDetails.getModelId());
     System.out.printf("Model Description: %s%n", documentModelDetails.getDescription());
     System.out.printf("Model Created on: %s%n", documentModelDetails.getCreatedOn());
     documentModelDetails.getDocumentTypes().forEach((key, documentTypeDetails) -> {
         documentTypeDetails.getFieldSchema().forEach((field, documentFieldSchema) -> {
             System.out.printf("Field: %s", field);
             System.out.printf("Field type: %s", documentFieldSchema.getType());
             System.out.printf("Field confidence: %.2f", documentTypeDetails.getFieldConfidence().get(field));
         });
     });
 });

Parameters:

classifierId - The unique document classifier identifier.

Returns:

A Response<T> containing the requested DocumentClassifierDetails.

getDocumentModel

public Mono getDocumentModel(String modelId)

Get detailed information for a specified model ID.

Code sample

String modelId = "{model_id}";
 documentModelAdministrationAsyncClient.getDocumentModel(modelId).subscribe(documentModel -> {
     System.out.printf("Model ID: %s%n", documentModel.getModelId());
     System.out.printf("Model Description: %s%n", documentModel.getDescription());
     System.out.printf("Model Created on: %s%n", documentModel.getCreatedOn());
     documentModel.getDocumentTypes().forEach((key, documentTypeDetails) -> {
         documentTypeDetails.getFieldSchema().forEach((field, documentFieldSchema) -> {
             System.out.printf("Field: %s", field);
             System.out.printf("Field type: %s", documentFieldSchema.getType());
             System.out.printf("Field confidence: %.2f", documentTypeDetails.getFieldConfidence().get(field));
         });
     });
 });

Parameters:

modelId - The unique model identifier.

Returns:

The detailed information for the specified model.

getDocumentModelWithResponse

public Mono> getDocumentModelWithResponse(String modelId)

Get detailed information for a specified model ID with Http response.

Code sample

String modelId = "{model_id}";
 documentModelAdministrationAsyncClient.getDocumentModelWithResponse(modelId).subscribe(response -> {
     System.out.printf("Response Status Code: %d.", response.getStatusCode());
     DocumentModelDetails documentModelDetails = response.getValue();
     System.out.printf("Model ID: %s%n", documentModelDetails.getModelId());
     System.out.printf("Model Description: %s%n", documentModelDetails.getDescription());
     System.out.printf("Model Created on: %s%n", documentModelDetails.getCreatedOn());
     documentModelDetails.getDocumentTypes().forEach((key, documentTypeDetails) -> {
         documentTypeDetails.getFieldSchema().forEach((field, documentFieldSchema) -> {
             System.out.printf("Field: %s", field);
             System.out.printf("Field type: %s", documentFieldSchema.getType());
             System.out.printf("Field confidence: %.2f", documentTypeDetails.getFieldConfidence().get(field));
         });
     });
 });

Parameters:

modelId - The unique model identifier.

Returns:

A Response<T> containing the requested DocumentModelDetails.

getOperation

public Mono getOperation(String operationId)

Get detailed operation information for the specified ID.

This operations fails if the operation ID used is past 24 hours.

Code sample

String operationId = "{operation_Id}";
 documentModelAdministrationAsyncClient.getOperation(operationId).subscribe(operationDetails -> {
     System.out.printf("Operation ID: %s%n", operationDetails.getOperationId());
     System.out.printf("Operation Kind: %s%n", operationDetails.getKind());
     System.out.printf("Operation Status: %s%n", operationDetails.getStatus());
     System.out.printf("Model ID created with this operation: %s%n",
         ((DocumentModelBuildOperationDetails) operationDetails).getResult().getModelId());
     if (OperationStatus.FAILED.equals(operationDetails.getStatus())) {
         System.out.printf("Operation fail error: %s%n", operationDetails.getError().getMessage());
     }
 });

Parameters:

operationId - Unique operation ID.

Returns:

detailed operation information for the specified ID.

getOperationWithResponse

public Mono> getOperationWithResponse(String operationId)

Get detailed operation information for the specified ID with Http response.

This operations fails if the operation ID used is past 24 hours.

Code sample

String operationId = "{operation_Id}";
 documentModelAdministrationAsyncClient.getOperationWithResponse(operationId).subscribe(response -> {
     System.out.printf("Response Status Code: %d.", response.getStatusCode());
     OperationDetails operationDetails = response.getValue();
     System.out.printf("Operation ID: %s%n", operationDetails.getOperationId());
     System.out.printf("Operation Kind: %s%n", operationDetails.getKind());
     System.out.printf("Operation Status: %s%n", operationDetails.getStatus());
     System.out.printf("Model ID created with this operation: %s%n",
         ((DocumentModelBuildOperationDetails) operationDetails).getResult().getModelId());
     if (OperationStatus.FAILED.equals(operationDetails.getStatus())) {
         System.out.printf("Operation fail error: %s%n", operationDetails.getError().getMessage());
     }
 });

Parameters:

operationId - Unique operation ID.

Returns:

A Response<T> containing the requested OperationDetails.

getResourceDetails

public Mono getResourceDetails()

Get information about the current Form Recognizer resource.

Code sample

documentModelAdministrationAsyncClient.getResourceDetails()
     .subscribe(resourceInfo -> {
         System.out.printf("Max number of models that can be build for this account: %d%n",
             resourceInfo.getCustomDocumentModelLimit());
         System.out.printf("Current count of built document analysis models: %d%n",
             resourceInfo.getCustomDocumentModelCount());
     });

Returns:

The requested resource information details.

getResourceDetailsWithResponse

public Mono> getResourceDetailsWithResponse()

Get the information about the current Form Recognizer resource with a Http response.

Code sample

documentModelAdministrationAsyncClient.getResourceDetailsWithResponse()
     .subscribe(response -> {
         System.out.printf("Response Status Code: %d.", response.getStatusCode());
         ResourceDetails resourceDetails = response.getValue();
         System.out.printf("Max number of models that can be build for this account: %d%n",
             resourceDetails.getCustomDocumentModelLimit());
         System.out.printf("Current count of built document analysis models: %d%n",
             resourceDetails.getCustomDocumentModelCount());
     });

Returns:

A Response<T> containing the requested resource information details.

listDocumentClassifiers

public PagedFlux listDocumentClassifiers()

List information for each document classifier on the Form Recognizer account that were built successfully.

Code sample

documentModelAdministrationAsyncClient.listDocumentClassifiers()
     .subscribe(documentModelInfo ->
         System.out.printf("Classifier ID: %s, Classifier description: %s, Created on: %s.%n",
             documentModelInfo.getClassifierId(),
             documentModelInfo.getDescription(),
             documentModelInfo.getCreatedOn()));

Returns:

PagedFlux<T> of DocumentClassifierDetails on the Form Recognizer account.

listDocumentModels

public PagedFlux listDocumentModels()

List information for each model on the Form Recognizer account that were built successfully.

Code sample

documentModelAdministrationAsyncClient.listDocumentModels()
     .subscribe(documentModelInfo ->
         System.out.printf("Model ID: %s, Model description: %s, Created on: %s.%n",
             documentModelInfo.getModelId(),
             documentModelInfo.getDescription(),
             documentModelInfo.getCreatedOn()));

Returns:

listOperations

public PagedFlux listOperations()

List information for each model operation on the Form Recognizer account in the past 24 hours.

Code sample

documentModelAdministrationAsyncClient.listOperations()
     .subscribe(modelOperationSummary -> {
         System.out.printf("Operation ID: %s%n", modelOperationSummary.getOperationId());
         System.out.printf("Operation Status: %s%n", modelOperationSummary.getStatus());
         System.out.printf("Operation Created on: %s%n", modelOperationSummary.getCreatedOn());
         System.out.printf("Operation Percent completed: %d%n", modelOperationSummary.getPercentCompleted());
         System.out.printf("Operation Kind: %s%n", modelOperationSummary.getKind());
         System.out.printf("Operation Last updated on: %s%n", modelOperationSummary.getLastUpdatedOn());
         System.out.printf("Operation resource location: %s%n", modelOperationSummary.getResourceLocation());
     });

Returns:

Applies to