diff --git a/client/.openapi-generator/FILES b/client/.openapi-generator/FILES index 8194f0df..9df54c12 100755 --- a/client/.openapi-generator/FILES +++ b/client/.openapi-generator/FILES @@ -36,6 +36,7 @@ src/main/generated/com/regula/documentreader/webclient/model/DocumentPositionRes src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidates.java src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidatesList.java src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidatesResult.java +src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLResult.java src/main/generated/com/regula/documentreader/webclient/model/FDSIDList.java src/main/generated/com/regula/documentreader/webclient/model/FiberResult.java src/main/generated/com/regula/documentreader/webclient/model/GraphicField.java @@ -53,6 +54,7 @@ src/main/generated/com/regula/documentreader/webclient/model/ImagesField.java src/main/generated/com/regula/documentreader/webclient/model/ImagesFieldValue.java src/main/generated/com/regula/documentreader/webclient/model/ImagesResult.java src/main/generated/com/regula/documentreader/webclient/model/LexicalAnalysisResult.java +src/main/generated/com/regula/documentreader/webclient/model/LicenseResult.java src/main/generated/com/regula/documentreader/webclient/model/ListVerifiedFields.java src/main/generated/com/regula/documentreader/webclient/model/OCRSecurityTextResult.java src/main/generated/com/regula/documentreader/webclient/model/OneCandidate.java diff --git a/client/src/main/generated/com/regula/documentreader/webclient/JSON.java b/client/src/main/generated/com/regula/documentreader/webclient/JSON.java index 11e147ec..c6d41200 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/JSON.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/JSON.java @@ -101,6 +101,8 @@ public class JSON { childOfAuthenticityResultByDiscriminatorValue.put("33", StatusResult.class); childOfAuthenticityResultByDiscriminatorValue.put("36", TextResult.class); childOfAuthenticityResultByDiscriminatorValue.put("37", ImagesResult.class); + childOfAuthenticityResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); + childOfAuthenticityResultByDiscriminatorValue.put("50", LicenseResult.class); childOfAuthenticityResultByDiscriminatorValue.put("6", GraphicsResult.class); childOfAuthenticityResultByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); childOfAuthenticityResultByDiscriminatorValue.put("85", DocumentPositionResult.class); @@ -126,6 +128,8 @@ public class JSON { childOfChosenDocumentTypeResultByDiscriminatorValue.put("33", StatusResult.class); childOfChosenDocumentTypeResultByDiscriminatorValue.put("36", TextResult.class); childOfChosenDocumentTypeResultByDiscriminatorValue.put("37", ImagesResult.class); + childOfChosenDocumentTypeResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); + childOfChosenDocumentTypeResultByDiscriminatorValue.put("50", LicenseResult.class); childOfChosenDocumentTypeResultByDiscriminatorValue.put("6", GraphicsResult.class); childOfChosenDocumentTypeResultByDiscriminatorValue.put( "8", DocumentTypesCandidatesResult.class); @@ -152,6 +156,8 @@ public class JSON { childOfDocumentImageResultByDiscriminatorValue.put("33", StatusResult.class); childOfDocumentImageResultByDiscriminatorValue.put("36", TextResult.class); childOfDocumentImageResultByDiscriminatorValue.put("37", ImagesResult.class); + childOfDocumentImageResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); + childOfDocumentImageResultByDiscriminatorValue.put("50", LicenseResult.class); childOfDocumentImageResultByDiscriminatorValue.put("6", GraphicsResult.class); childOfDocumentImageResultByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); childOfDocumentImageResultByDiscriminatorValue.put("85", DocumentPositionResult.class); @@ -177,6 +183,8 @@ public class JSON { childOfDocumentPositionResultByDiscriminatorValue.put("33", StatusResult.class); childOfDocumentPositionResultByDiscriminatorValue.put("36", TextResult.class); childOfDocumentPositionResultByDiscriminatorValue.put("37", ImagesResult.class); + childOfDocumentPositionResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); + childOfDocumentPositionResultByDiscriminatorValue.put("50", LicenseResult.class); childOfDocumentPositionResultByDiscriminatorValue.put("6", GraphicsResult.class); childOfDocumentPositionResultByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); childOfDocumentPositionResultByDiscriminatorValue.put("85", DocumentPositionResult.class); @@ -202,6 +210,8 @@ public class JSON { childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("33", StatusResult.class); childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("36", TextResult.class); childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("37", ImagesResult.class); + childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); + childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("50", LicenseResult.class); childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("6", GraphicsResult.class); childOfDocumentTypesCandidatesResultByDiscriminatorValue.put( "8", DocumentTypesCandidatesResult.class); @@ -213,6 +223,33 @@ public class JSON { "DocumentTypesCandidatesResult", DocumentTypesCandidatesResult.class); } + public static Map childOfEncryptedRCLResultByDiscriminatorValue = + new HashMap(); + + static { + childOfEncryptedRCLResultByDiscriminatorValue.put("1", DocumentImageResult.class); + childOfEncryptedRCLResultByDiscriminatorValue.put("102", TextDataResult.class); + childOfEncryptedRCLResultByDiscriminatorValue.put("103", GraphicsResult.class); + childOfEncryptedRCLResultByDiscriminatorValue.put("15", LexicalAnalysisResult.class); + childOfEncryptedRCLResultByDiscriminatorValue.put("17", TextDataResult.class); + childOfEncryptedRCLResultByDiscriminatorValue.put("18", TextDataResult.class); + childOfEncryptedRCLResultByDiscriminatorValue.put("19", GraphicsResult.class); + childOfEncryptedRCLResultByDiscriminatorValue.put("20", AuthenticityResult.class); + childOfEncryptedRCLResultByDiscriminatorValue.put("3", TextDataResult.class); + childOfEncryptedRCLResultByDiscriminatorValue.put("30", ImageQualityResult.class); + childOfEncryptedRCLResultByDiscriminatorValue.put("33", StatusResult.class); + childOfEncryptedRCLResultByDiscriminatorValue.put("36", TextResult.class); + childOfEncryptedRCLResultByDiscriminatorValue.put("37", ImagesResult.class); + childOfEncryptedRCLResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); + childOfEncryptedRCLResultByDiscriminatorValue.put("50", LicenseResult.class); + childOfEncryptedRCLResultByDiscriminatorValue.put("6", GraphicsResult.class); + childOfEncryptedRCLResultByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); + childOfEncryptedRCLResultByDiscriminatorValue.put("85", DocumentPositionResult.class); + childOfEncryptedRCLResultByDiscriminatorValue.put("9", ChosenDocumentTypeResult.class); + childOfEncryptedRCLResultByDiscriminatorValue.put( + "EncryptedRCLResult", EncryptedRCLResult.class); + } + public static Map childOfFiberResultByDiscriminatorValue = new HashMap(); @@ -258,6 +295,8 @@ public class JSON { childOfGraphicsResultByDiscriminatorValue.put("33", StatusResult.class); childOfGraphicsResultByDiscriminatorValue.put("36", TextResult.class); childOfGraphicsResultByDiscriminatorValue.put("37", ImagesResult.class); + childOfGraphicsResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); + childOfGraphicsResultByDiscriminatorValue.put("50", LicenseResult.class); childOfGraphicsResultByDiscriminatorValue.put("6", GraphicsResult.class); childOfGraphicsResultByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); childOfGraphicsResultByDiscriminatorValue.put("85", DocumentPositionResult.class); @@ -310,6 +349,8 @@ public class JSON { childOfImageQualityResultByDiscriminatorValue.put("33", StatusResult.class); childOfImageQualityResultByDiscriminatorValue.put("36", TextResult.class); childOfImageQualityResultByDiscriminatorValue.put("37", ImagesResult.class); + childOfImageQualityResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); + childOfImageQualityResultByDiscriminatorValue.put("50", LicenseResult.class); childOfImageQualityResultByDiscriminatorValue.put("6", GraphicsResult.class); childOfImageQualityResultByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); childOfImageQualityResultByDiscriminatorValue.put("85", DocumentPositionResult.class); @@ -335,6 +376,8 @@ public class JSON { childOfImagesResultByDiscriminatorValue.put("33", StatusResult.class); childOfImagesResultByDiscriminatorValue.put("36", TextResult.class); childOfImagesResultByDiscriminatorValue.put("37", ImagesResult.class); + childOfImagesResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); + childOfImagesResultByDiscriminatorValue.put("50", LicenseResult.class); childOfImagesResultByDiscriminatorValue.put("6", GraphicsResult.class); childOfImagesResultByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); childOfImagesResultByDiscriminatorValue.put("85", DocumentPositionResult.class); @@ -359,6 +402,8 @@ public class JSON { childOfLexicalAnalysisResultByDiscriminatorValue.put("33", StatusResult.class); childOfLexicalAnalysisResultByDiscriminatorValue.put("36", TextResult.class); childOfLexicalAnalysisResultByDiscriminatorValue.put("37", ImagesResult.class); + childOfLexicalAnalysisResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); + childOfLexicalAnalysisResultByDiscriminatorValue.put("50", LicenseResult.class); childOfLexicalAnalysisResultByDiscriminatorValue.put("6", GraphicsResult.class); childOfLexicalAnalysisResultByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); childOfLexicalAnalysisResultByDiscriminatorValue.put("85", DocumentPositionResult.class); @@ -367,6 +412,32 @@ public class JSON { "LexicalAnalysisResult", LexicalAnalysisResult.class); } + public static Map childOfLicenseResultByDiscriminatorValue = + new HashMap(); + + static { + childOfLicenseResultByDiscriminatorValue.put("1", DocumentImageResult.class); + childOfLicenseResultByDiscriminatorValue.put("102", TextDataResult.class); + childOfLicenseResultByDiscriminatorValue.put("103", GraphicsResult.class); + childOfLicenseResultByDiscriminatorValue.put("15", LexicalAnalysisResult.class); + childOfLicenseResultByDiscriminatorValue.put("17", TextDataResult.class); + childOfLicenseResultByDiscriminatorValue.put("18", TextDataResult.class); + childOfLicenseResultByDiscriminatorValue.put("19", GraphicsResult.class); + childOfLicenseResultByDiscriminatorValue.put("20", AuthenticityResult.class); + childOfLicenseResultByDiscriminatorValue.put("3", TextDataResult.class); + childOfLicenseResultByDiscriminatorValue.put("30", ImageQualityResult.class); + childOfLicenseResultByDiscriminatorValue.put("33", StatusResult.class); + childOfLicenseResultByDiscriminatorValue.put("36", TextResult.class); + childOfLicenseResultByDiscriminatorValue.put("37", ImagesResult.class); + childOfLicenseResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); + childOfLicenseResultByDiscriminatorValue.put("50", LicenseResult.class); + childOfLicenseResultByDiscriminatorValue.put("6", GraphicsResult.class); + childOfLicenseResultByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); + childOfLicenseResultByDiscriminatorValue.put("85", DocumentPositionResult.class); + childOfLicenseResultByDiscriminatorValue.put("9", ChosenDocumentTypeResult.class); + childOfLicenseResultByDiscriminatorValue.put("LicenseResult", LicenseResult.class); + } + public static Map childOfOCRSecurityTextResultByDiscriminatorValue = new HashMap(); @@ -441,6 +512,8 @@ public class JSON { childOfResultItemByDiscriminatorValue.put("33", StatusResult.class); childOfResultItemByDiscriminatorValue.put("36", TextResult.class); childOfResultItemByDiscriminatorValue.put("37", ImagesResult.class); + childOfResultItemByDiscriminatorValue.put("49", EncryptedRCLResult.class); + childOfResultItemByDiscriminatorValue.put("50", LicenseResult.class); childOfResultItemByDiscriminatorValue.put("6", GraphicsResult.class); childOfResultItemByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); childOfResultItemByDiscriminatorValue.put("85", DocumentPositionResult.class); @@ -453,10 +526,12 @@ public class JSON { "DocumentPositionResult", DocumentPositionResult.class); childOfResultItemByDiscriminatorValue.put( "DocumentTypesCandidatesResult", DocumentTypesCandidatesResult.class); + childOfResultItemByDiscriminatorValue.put("EncryptedRCLResult", EncryptedRCLResult.class); childOfResultItemByDiscriminatorValue.put("GraphicsResult", GraphicsResult.class); childOfResultItemByDiscriminatorValue.put("ImageQualityResult", ImageQualityResult.class); childOfResultItemByDiscriminatorValue.put("ImagesResult", ImagesResult.class); childOfResultItemByDiscriminatorValue.put("LexicalAnalysisResult", LexicalAnalysisResult.class); + childOfResultItemByDiscriminatorValue.put("LicenseResult", LicenseResult.class); childOfResultItemByDiscriminatorValue.put("StatusResult", StatusResult.class); childOfResultItemByDiscriminatorValue.put("TextDataResult", TextDataResult.class); childOfResultItemByDiscriminatorValue.put("TextResult", TextResult.class); @@ -509,6 +584,8 @@ public class JSON { childOfStatusResultByDiscriminatorValue.put("33", StatusResult.class); childOfStatusResultByDiscriminatorValue.put("36", TextResult.class); childOfStatusResultByDiscriminatorValue.put("37", ImagesResult.class); + childOfStatusResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); + childOfStatusResultByDiscriminatorValue.put("50", LicenseResult.class); childOfStatusResultByDiscriminatorValue.put("6", GraphicsResult.class); childOfStatusResultByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); childOfStatusResultByDiscriminatorValue.put("85", DocumentPositionResult.class); @@ -533,6 +610,8 @@ public class JSON { childOfTextDataResultByDiscriminatorValue.put("33", StatusResult.class); childOfTextDataResultByDiscriminatorValue.put("36", TextResult.class); childOfTextDataResultByDiscriminatorValue.put("37", ImagesResult.class); + childOfTextDataResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); + childOfTextDataResultByDiscriminatorValue.put("50", LicenseResult.class); childOfTextDataResultByDiscriminatorValue.put("6", GraphicsResult.class); childOfTextDataResultByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); childOfTextDataResultByDiscriminatorValue.put("85", DocumentPositionResult.class); @@ -557,6 +636,8 @@ public class JSON { childOfTextResultByDiscriminatorValue.put("33", StatusResult.class); childOfTextResultByDiscriminatorValue.put("36", TextResult.class); childOfTextResultByDiscriminatorValue.put("37", ImagesResult.class); + childOfTextResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); + childOfTextResultByDiscriminatorValue.put("50", LicenseResult.class); childOfTextResultByDiscriminatorValue.put("6", GraphicsResult.class); childOfTextResultByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); childOfTextResultByDiscriminatorValue.put("85", DocumentPositionResult.class); @@ -627,6 +708,16 @@ public Class getClassForElement(JsonElement readElement) { getDiscriminatorValue(readElement, "result_type")); } }) + .registerTypeSelector( + EncryptedRCLResult.class, + new TypeSelector() { + @Override + public Class getClassForElement(JsonElement readElement) { + return getClassByDiscriminator( + childOfEncryptedRCLResultByDiscriminatorValue, + getDiscriminatorValue(readElement, "result_type")); + } + }) .registerTypeSelector( FiberResult.class, new TypeSelector() { @@ -687,6 +778,16 @@ public Class getClassForElement(JsonElement readElement) { getDiscriminatorValue(readElement, "result_type")); } }) + .registerTypeSelector( + LicenseResult.class, + new TypeSelector() { + @Override + public Class getClassForElement(JsonElement readElement) { + return getClassByDiscriminator( + childOfLicenseResultByDiscriminatorValue, + getDiscriminatorValue(readElement, "result_type")); + } + }) .registerTypeSelector( OCRSecurityTextResult.class, new TypeSelector() { diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLResult.java new file mode 100644 index 00000000..a686aee2 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLResult.java @@ -0,0 +1,80 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 6.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.annotations.SerializedName; +import java.util.Arrays; +import java.util.Objects; + +/** EncryptedRCLResult */ +public class EncryptedRCLResult extends ResultItem { + public static final String SERIALIZED_NAME_ENCRYPTED_R_C_L = "EncryptedRCL"; + + @SerializedName(SERIALIZED_NAME_ENCRYPTED_R_C_L) + private byte[] encryptedRCL; + + public EncryptedRCLResult withEncryptedRCL(byte[] encryptedRCL) { + this.encryptedRCL = encryptedRCL; + return this; + } + + /** + * Base64 encoded data + * + * @return encryptedRCL + */ + public byte[] getEncryptedRCL() { + return encryptedRCL; + } + + public void setEncryptedRCL(byte[] encryptedRCL) { + this.encryptedRCL = encryptedRCL; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EncryptedRCLResult encryptedRCLResult = (EncryptedRCLResult) o; + return Arrays.equals(this.encryptedRCL, encryptedRCLResult.encryptedRCL) && super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(Arrays.hashCode(encryptedRCL), super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EncryptedRCLResult {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" encryptedRCL: ").append(toIndentedString(encryptedRCL)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/LicenseResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/LicenseResult.java new file mode 100644 index 00000000..87903557 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/LicenseResult.java @@ -0,0 +1,80 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 6.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.annotations.SerializedName; +import java.util.Arrays; +import java.util.Objects; + +/** LicenseResult */ +public class LicenseResult extends ResultItem { + public static final String SERIALIZED_NAME_LICENSE = "License"; + + @SerializedName(SERIALIZED_NAME_LICENSE) + private byte[] license; + + public LicenseResult withLicense(byte[] license) { + this.license = license; + return this; + } + + /** + * Base64 encoded data + * + * @return license + */ + public byte[] getLicense() { + return license; + } + + public void setLicense(byte[] license) { + this.license = license; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LicenseResult licenseResult = (LicenseResult) o; + return Arrays.equals(this.license, licenseResult.license) && super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(Arrays.hashCode(license), super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LicenseResult {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" license: ").append(toIndentedString(license)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequest.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequest.java index 6282512c..a8414961 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequest.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequest.java @@ -29,7 +29,12 @@ public class ProcessRequest { public static final String SERIALIZED_NAME_LIST = "List"; @SerializedName(SERIALIZED_NAME_LIST) - private List list = new ArrayList(); + private List list = null; + + public static final String SERIALIZED_NAME_CONTAINER_LIST = "ContainerList"; + + @SerializedName(SERIALIZED_NAME_CONTAINER_LIST) + private ContainerList containerList; public static final String SERIALIZED_NAME_SYSTEM_INFO = "systemInfo"; @@ -65,6 +70,9 @@ public ProcessRequest withList(List list) { } public ProcessRequest addListItem(ProcessRequestImage listItem) { + if (this.list == null) { + this.list = new ArrayList(); + } this.list.add(listItem); return this; } @@ -74,6 +82,7 @@ public ProcessRequest addListItem(ProcessRequestImage listItem) { * * @return list */ + @javax.annotation.Nullable public List getList() { return list; } @@ -82,6 +91,25 @@ public void setList(List list) { this.list = list; } + public ProcessRequest withContainerList(ContainerList containerList) { + this.containerList = containerList; + return this; + } + + /** + * Get containerList + * + * @return containerList + */ + @javax.annotation.Nullable + public ContainerList getContainerList() { + return containerList; + } + + public void setContainerList(ContainerList containerList) { + this.containerList = containerList; + } + public ProcessRequest withSystemInfo(ProcessSystemInfo systemInfo) { this.systemInfo = systemInfo; return this; @@ -140,13 +168,14 @@ public boolean equals(java.lang.Object o) { ProcessRequest processRequest = (ProcessRequest) o; return Objects.equals(this.processParam, processRequest.processParam) && Objects.equals(this.list, processRequest.list) + && Objects.equals(this.containerList, processRequest.containerList) && Objects.equals(this.systemInfo, processRequest.systemInfo) && Objects.equals(this.passBackObject, processRequest.passBackObject); } @Override public int hashCode() { - return Objects.hash(processParam, list, systemInfo, passBackObject); + return Objects.hash(processParam, list, containerList, systemInfo, passBackObject); } @Override @@ -155,6 +184,7 @@ public String toString() { sb.append("class ProcessRequest {\n"); sb.append(" processParam: ").append(toIndentedString(processParam)).append("\n"); sb.append(" list: ").append(toIndentedString(list)).append("\n"); + sb.append(" containerList: ").append(toIndentedString(containerList)).append("\n"); sb.append(" systemInfo: ").append(toIndentedString(systemInfo)).append("\n"); sb.append(" passBackObject: ").append(toIndentedString(passBackObject)).append("\n"); sb.append("}"); diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Result.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Result.java index 3ab44a79..e2e4de71 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Result.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Result.java @@ -75,4 +75,10 @@ public class Result { /** Contains information about document position on the input image, its center, angle, etc */ public static final int DOCUMENT_POSITION = 85; + + /** Contains license */ + public static final int LICENSE = 50; + + /** Contains encrypted ResultContainerList */ + public static final int ENCRYPTED_RCL = 49; } diff --git a/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java b/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java index 4f0e24dd..eaaae9a7 100755 --- a/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java +++ b/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java @@ -75,7 +75,8 @@ public DeviceInfo ping() throws ApiException { */ public RecognitionResponse process(ProcessRequest processRequest) { processRequest.getSystemInfo().withLicense(this.license); - return new RecognitionResponse(processApi.apiProcess(processRequest)); + ProcessResponse response = processApi.apiProcess(processRequest); + return new RecognitionResponse(response); } public RecognitionResponse process(byte[] processRequest, ProcessParams processParams) { diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/ContainerListRequest.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/ContainerListRequest.java new file mode 100644 index 00000000..146a51fd --- /dev/null +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/ContainerListRequest.java @@ -0,0 +1,13 @@ +package com.regula.documentreader.webclient.model.ext; + +import com.regula.documentreader.webclient.model.ContainerList; +import com.regula.documentreader.webclient.model.ResultItem; + +import java.util.List; + +public class ContainerListRequest extends ContainerList { + public ContainerListRequest(List list) { + super(); + setList(list); + } +} diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/EncryptedRCLRequest.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/EncryptedRCLRequest.java new file mode 100644 index 00000000..84f87242 --- /dev/null +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/EncryptedRCLRequest.java @@ -0,0 +1,16 @@ +package com.regula.documentreader.webclient.model.ext; + +import com.regula.documentreader.webclient.model.EncryptedRCLResult; +import com.regula.documentreader.webclient.model.Result; + +public class EncryptedRCLRequest extends EncryptedRCLResult { + public EncryptedRCLRequest(byte[] encryptedRCL, int light, int list_idx, int page_idx) { + super(); + setEncryptedRCL(encryptedRCL); + setLight(light); + setListIdx(list_idx); + setPageIdx(page_idx); + setBufLength(encryptedRCL.length); + setResultType(Result.ENCRYPTED_RCL); + } +} diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/ProcessRequestLicense.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/ProcessRequestLicense.java new file mode 100644 index 00000000..ed133ddf --- /dev/null +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/ProcessRequestLicense.java @@ -0,0 +1,16 @@ +package com.regula.documentreader.webclient.model.ext; + +import com.regula.documentreader.webclient.model.LicenseResult; +import com.regula.documentreader.webclient.model.Result; + +public class ProcessRequestLicense extends LicenseResult { + public ProcessRequestLicense(byte[] license, int light, int list_idx, int page_idx) { + super(); + setLicense(license); + setLight(light); + setListIdx(list_idx); + setPageIdx(page_idx); + setBufLength(license.length); + setResultType(Result.LICENSE); + } +} diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionRequest.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionRequest.java index d31c201c..cd3d408b 100755 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionRequest.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionRequest.java @@ -1,5 +1,6 @@ package com.regula.documentreader.webclient.model.ext; +import com.regula.documentreader.webclient.model.ContainerList; import com.regula.documentreader.webclient.model.ProcessParams; import com.regula.documentreader.webclient.model.ProcessRequest; import com.regula.documentreader.webclient.model.ProcessSystemInfo; @@ -27,4 +28,10 @@ public RecognitionRequest(ProcessParams params, List images } withSystemInfo(new ProcessSystemInfo()); } + + public RecognitionRequest(ProcessParams params, ContainerList containerList) { + withProcessParam(params); + withContainerList(containerList); + withSystemInfo(new ProcessSystemInfo()); + } } diff --git a/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java b/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java new file mode 100644 index 00000000..e3709e47 --- /dev/null +++ b/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java @@ -0,0 +1,111 @@ +package com.regula.documentreader.webclient.encryptedRCL; + +import com.regula.documentreader.webclient.ApiException; +import com.regula.documentreader.webclient.api.DocumentReaderApi; +import com.regula.documentreader.webclient.example.Main; +import com.regula.documentreader.webclient.model.*; +import com.regula.documentreader.webclient.model.ext.*; + +import javax.annotation.Nullable; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; +import java.util.Base64; + +import static com.regula.documentreader.webclient.model.GraphicFieldType.DOCUMENT_FRONT; +import static com.regula.documentreader.webclient.model.GraphicFieldType.PORTRAIT; +import static com.regula.documentreader.webclient.model.TextFieldType.DOCUMENT_NUMBER; + +public class Example { + public static final String API_BASE_PATH = "API_BASE_PATH"; + public static final String TEST_LICENSE = "TEST_LICENSE"; + + public static void main(String[] args) throws IOException, UnsupportedEncodingException { + + var apiBaseUrl = System.getenv(API_BASE_PATH); + if (apiBaseUrl == null) { + apiBaseUrl = "https://api.regulaforensics.com"; + } + var licenseFromEnv = System.getenv(TEST_LICENSE); // optional, used here only for smoke test purposes + var licenseFromFile = readFile("regula.license"); + + byte[] licenseBase64 = readFile("license.bin"); + byte[] encryptedRCLBase64 = readFile("encrypted-rcl.bin"); + + var license = new ProcessRequestLicense(licenseBase64, 0, 0, 0); + var encryptedRCL = new EncryptedRCLRequest(encryptedRCLBase64, 0, 0, 0); + + var containerList = new ContainerList(); + containerList.setList(List.of(license, encryptedRCL)); + + var requestParams = new RecognitionParams() + .withScenario(Scenario.FULL_PROCESS) + .withDoublePageSpread(true) + .withMeasureSystem(0) + .withDateFormat("M/d/yyyy") + .withAlreadyCropped(true); + + RecognitionRequest request = new RecognitionRequest( + requestParams, containerList); + + var api = new DocumentReaderApi(apiBaseUrl); + if (licenseFromEnv != null) api.setLicense(licenseFromEnv); + if (licenseFromFile != null) api.setLicense(licenseFromFile); + + var info = api.ping(); + System.out.println("-----------------------------------------------------------------"); + System.out.format("Web API version %s%n", info.getVersion()); + + RecognitionResponse response = api.process(request); + // to send raw request(ex encrypted one) with overriding processing params here use next api + // RecognitionResponse response = api.process(request, requestParams); + + var status = response.status(); + var docOverallStatus = status.getOverallStatus() == CheckResult.OK ? "valid" : "not valid"; + var docOpticalTextStatus = status.getDetailsOptical().getText(); + + var docNumberField = response.text().getField(DOCUMENT_NUMBER); + var docNumberFieldByName = response.text().getField("Document Number"); + + var docNumberVisual = docNumberField.getValue(Source.VISUAL); + var docNumberMrz = docNumberField.getValue(Source.MRZ); + var docNumberVisualValidity = docNumberField.sourceValidity(Source.VISUAL); + var docNumberMrzValidity = docNumberField.sourceValidity(Source.MRZ); + var docNumberMrzVisualMatching = docNumberField.crossSourceComparison(Source.MRZ, Source.VISUAL); + + System.out.println("-----------------------------------------------------------------"); + System.out.format(" Document Overall Status: %s%n", docOverallStatus); + System.out.format(" Document Number Visual: %s%n", docNumberVisual); + System.out.format(" Document Number MRZ: %s%n", docNumberMrz); + System.out.format("Validity Of Document Number Visual: %s%n", docNumberVisualValidity); + System.out.format(" Validity Of Document Number MRZ: %s%n", docNumberMrzValidity); + System.out.format(" MRZ-Visual values comparison: %s%n", docNumberMrzVisualMatching); + System.out.format("-----------------------------------------------------------------"); + + var documentImage = response.images().getField(DOCUMENT_FRONT).getValue(); + var portraitField = response.images().getField(PORTRAIT); + var portraitFromVisual = portraitField.getValue(Source.VISUAL); + saveFile("document-image.jpg", documentImage); + saveFile("portrait.jpg", portraitFromVisual); + + // how to get low lvl individual results + LexicalAnalysisResult lexResult = response.resultByType(Result.LEXICAL_ANALYSIS); + System.exit(0); + } + + @Nullable + private static byte[] readFile(String filePath) throws IOException { + var inputStream = Main.class.getClassLoader().getResourceAsStream(filePath); + if (inputStream != null) { + return inputStream.readAllBytes(); + } + return null; + } + + private static void saveFile(String filePath, byte[] data) throws IOException { + Files.write(Path.of(filePath), data); + } +} diff --git a/example/src/main/resources/encrypted-rcl.bin b/example/src/main/resources/encrypted-rcl.bin new file mode 100644 index 00000000..57434185 Binary files /dev/null and b/example/src/main/resources/encrypted-rcl.bin differ diff --git a/example/src/main/resources/license.bin b/example/src/main/resources/license.bin new file mode 100644 index 00000000..a34dc0a5 Binary files /dev/null and b/example/src/main/resources/license.bin differ