From 6a19509310de6646a64528da73ddc0619507935e Mon Sep 17 00:00:00 2001 From: Artem Tsybulko Date: Fri, 11 Apr 2025 10:08:17 +0300 Subject: [PATCH 1/2] SP-22413 - fix authenticity --- .openapi-generator/FILES | 1 + README.md | 2 +- example/example.py | 4 +- .../authenticity/authenticity_check_list.py | 60 +++++-- .../ext/models/authenticity/fiber.py | 8 +- .../ext/models/authenticity/ident.py | 10 +- .../ext/models/authenticity/image_ident.py | 8 +- .../models/authenticity/ocr_security_text.py | 8 +- .../models/authenticity/security_feature.py | 10 +- .../webclient/ext/models/images.py | 4 +- .../ext/models/recognition_response.py | 6 +- .../webclient/ext/models/text.py | 12 +- .../documentreader/webclient/gen/__init__.py | 1 + .../webclient/gen/models/__init__.py | 1 + .../models/authenticity_check_result_item.py | 18 +-- .../gen/models/authenticity_result_type.py | 5 - .../webclient/gen/models/barcode_type.py | 1 - .../webclient/gen/models/document_image.py | 2 +- .../webclient/gen/models/image_data.py | 2 +- .../gen/models/parsing_error_codes.py | 153 ++++++++++++++++++ .../gen/models/transaction_process_request.py | 8 +- 21 files changed, 255 insertions(+), 69 deletions(-) create mode 100644 regula/documentreader/webclient/gen/models/parsing_error_codes.py diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES index ed84c6f..66cd1a0 100755 --- a/.openapi-generator/FILES +++ b/.openapi-generator/FILES @@ -135,6 +135,7 @@ regula/documentreader/webclient/gen/models/out_data.py regula/documentreader/webclient/gen/models/out_data_transaction_images_field_value.py regula/documentreader/webclient/gen/models/p_array_field.py regula/documentreader/webclient/gen/models/parsed_data.py +regula/documentreader/webclient/gen/models/parsing_error_codes.py regula/documentreader/webclient/gen/models/parsing_notification_codes.py regula/documentreader/webclient/gen/models/per_document_config.py regula/documentreader/webclient/gen/models/photo_ident_item.py diff --git a/README.md b/README.md index b8f2f4c..dc1ac86 100755 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ with open("australia_passport.jpg", "rb") as f: with DocumentReaderApi(host='http://localhost:8080') as api: params = ProcessParams( - scenario=Scenario.FULL_PROCESS, + scenario=Scenario.FULLPROCESS, result_type_output=[Result.DOCUMENT_IMAGE, Result.STATUS, Result.TEXT, Result.IMAGES] ) request = RecognitionRequest(process_params=params, images=[input_image]) diff --git a/example/example.py b/example/example.py index 7cad3ed..7790e3d 100755 --- a/example/example.py +++ b/example/example.py @@ -63,13 +63,13 @@ # if FULL_PROCESS then auth is None doc_ir_b900_blank = doc_ir_b900.checks_by_element(SecurityFeatureType.BLANK) \ - if doc_authenticity is not None else None + if doc_ir_b900 is not None else None doc_image_pattern = doc_authenticity.image_pattern_checks \ if doc_authenticity is not None else None doc_image_pattern_blank = doc_image_pattern.checks_by_element(SecurityFeatureType.BLANK) \ - if doc_authenticity is not None else None + if doc_image_pattern is not None else None # images fields example document_image = response.images.get_field(GraphicFieldType.DOCUMENT_FRONT).get_value() diff --git a/regula/documentreader/webclient/ext/models/authenticity/authenticity_check_list.py b/regula/documentreader/webclient/ext/models/authenticity/authenticity_check_list.py index 64c9819..a943ff6 100644 --- a/regula/documentreader/webclient/ext/models/authenticity/authenticity_check_list.py +++ b/regula/documentreader/webclient/ext/models/authenticity/authenticity_check_list.py @@ -14,77 +14,107 @@ class AuthenticityCheckList(GenAuthenticityCheckList): @property def uv_luminescence_checks(self) -> Optional[SecurityFeatureChecks]: result = self.__result_by_type(AuthenticityResultType.UV_LUMINESCENCE) - return SecurityFeatureChecks.from_dict(result.to_dict()) + if result: + return SecurityFeatureChecks.from_json(result.to_json()) + return None @property def ir_b900_checks(self) -> Optional[SecurityFeatureChecks]: result = self.__result_by_type(AuthenticityResultType.IR_B900) - return SecurityFeatureChecks.from_dict(result.to_dict()) + if result: + return SecurityFeatureChecks.from_json(result.to_json()) + return None @property def image_pattern_checks(self) -> Optional[IdentChecks]: result = self.__result_by_type(AuthenticityResultType.IMAGE_PATTERN) - return IdentChecks.from_dict(result.to_dict()) + if result: + return IdentChecks.from_json(result.to_json()) + return None @property def axial_protection_checks(self) -> Optional[SecurityFeatureChecks]: result = self.__result_by_type(AuthenticityResultType.AXIAL_PROTECTION) - return SecurityFeatureChecks.from_dict(result.to_dict()) + if result: + return SecurityFeatureChecks.from_json(result.to_json()) + return None @property def uv_fiber_checks(self) -> Optional[FiberChecks]: result = self.__result_by_type(AuthenticityResultType.UV_FIBERS) - return FiberChecks.from_dict(result.to_dict()) + if result: + return FiberChecks.from_json(result.to_json()) + return None @property def ir_visibility_checks(self) -> Optional[IdentChecks]: result = self.__result_by_type(AuthenticityResultType.IR_VISIBILITY) - return IdentChecks.from_dict(result.to_dict()) + if result: + return IdentChecks.from_json(result.to_json()) + return None @property def ocr_security_text_checks(self) -> Optional[OCRSecurityTextChecks]: result = self.__result_by_type(AuthenticityResultType.OCR_SECURITY_TEXT) - return OCRSecurityTextChecks.from_dict(result.to_dict()) + if result: + return OCRSecurityTextChecks.from_json(result.to_json()) + return None @property def ipi_checks(self) -> Optional[ImageIdentChecks]: result = self.__result_by_type(AuthenticityResultType.IPI) - return ImageIdentChecks.from_dict(result.to_dict()) + if result: + return ImageIdentChecks.from_json(result.to_json()) + return None @property def embed_image_checks(self) -> Optional[SecurityFeatureChecks]: result = self.__result_by_type(AuthenticityResultType.PHOTO_EMBED_TYPE) - return SecurityFeatureChecks.from_dict(result.to_dict()) + if result: + return SecurityFeatureChecks.from_json(result.to_json()) + return None @property def holograms_checks(self) -> Optional[SecurityFeatureChecks]: result = self.__result_by_type(AuthenticityResultType.HOLOGRAMS) - return SecurityFeatureChecks.from_dict(result.to_dict()) + if result: + return SecurityFeatureChecks.from_json(result.to_json()) + return None @property def photo_area_checks(self) -> Optional[SecurityFeatureChecks]: result = self.__result_by_type(AuthenticityResultType.PHOTO_AREA) - return SecurityFeatureChecks.from_dict(result.to_dict()) + if result: + return SecurityFeatureChecks.from_json(result.to_json()) + return None @property def portrait_comparison_checks(self) -> Optional[IdentChecks]: result = self.__result_by_type(AuthenticityResultType.PORTRAIT_COMPARISON) - return IdentChecks.from_dict(result.to_dict()) + if result: + return IdentChecks.from_json(result.to_json()) + return None @property def barcode_format_checks(self) -> Optional[SecurityFeatureChecks]: result = self.__result_by_type(AuthenticityResultType.BARCODE_FORMAT_CHECK) - return SecurityFeatureChecks.from_dict(result.to_dict()) + if result: + return SecurityFeatureChecks.from_json(result.to_json()) + return None @property def kinegram_checks(self) -> Optional[IdentChecks]: result = self.__result_by_type(AuthenticityResultType.KINEGRAM) - return IdentChecks.from_dict(result.to_dict()) + if result: + return IdentChecks.from_json(result.to_json()) + return None @property def letter_screen_checks(self) -> Optional[IdentChecks]: result = self.__result_by_type(AuthenticityResultType.LETTER_SCREEN) - return IdentChecks.from_dict(result.to_dict()) + if result: + return IdentChecks.from_json(result.to_json()) + return None def __result_by_type(self, authenticity_type: int) -> Optional[AuthenticityCheckResult]: for result in self.list: diff --git a/regula/documentreader/webclient/ext/models/authenticity/fiber.py b/regula/documentreader/webclient/ext/models/authenticity/fiber.py index 43c3039..ae2747f 100644 --- a/regula/documentreader/webclient/ext/models/authenticity/fiber.py +++ b/regula/documentreader/webclient/ext/models/authenticity/fiber.py @@ -1,4 +1,4 @@ -from typing import List +from typing import List, cast from regula.documentreader.webclient.gen.models import FiberResult, AuthenticityCheckResult @@ -6,6 +6,6 @@ class FiberChecks(AuthenticityCheckResult): @property - def list(self) -> List[FiberResult]: - # noinspection PyTypeChecker - return super().list + def checks_list(self) -> List[FiberResult]: + fiber_list: List[FiberResult] = cast(List[FiberResult], self.list) + return fiber_list diff --git a/regula/documentreader/webclient/ext/models/authenticity/ident.py b/regula/documentreader/webclient/ext/models/authenticity/ident.py index 2146849..46eb73a 100644 --- a/regula/documentreader/webclient/ext/models/authenticity/ident.py +++ b/regula/documentreader/webclient/ext/models/authenticity/ident.py @@ -1,4 +1,4 @@ -from typing import List +from typing import List, cast from regula.documentreader.webclient.gen.models import AuthenticityCheckResult, IdentResult @@ -6,10 +6,10 @@ class IdentChecks(AuthenticityCheckResult): @property - def list(self) -> List[IdentResult]: - # noinspection PyTypeChecker - return self.list + def checks_list(self) -> List[IdentResult]: + ident_list: List[IdentResult] = cast(List[IdentResult], self.list) + return ident_list # element_type is SecurityFeatureType def checks_by_element(self, element_type: int) -> List[IdentResult]: - return [check for check in self.list if check.element_type == element_type] + return [check for check in self.checks_list if check.element_type == element_type] \ No newline at end of file diff --git a/regula/documentreader/webclient/ext/models/authenticity/image_ident.py b/regula/documentreader/webclient/ext/models/authenticity/image_ident.py index 200fda9..ade3987 100644 --- a/regula/documentreader/webclient/ext/models/authenticity/image_ident.py +++ b/regula/documentreader/webclient/ext/models/authenticity/image_ident.py @@ -1,4 +1,4 @@ -from typing import List +from typing import List, cast from regula.documentreader.webclient.gen.models import AuthenticityCheckResult, PhotoIdentResult @@ -6,6 +6,6 @@ class ImageIdentChecks(AuthenticityCheckResult): @property - def list(self) -> List[PhotoIdentResult]: - # noinspection PyTypeChecker - return self.list + def checks_list(self) -> List[PhotoIdentResult]: + image_ident_list: List[PhotoIdentResult] = cast(List[PhotoIdentResult], self.list) + return image_ident_list diff --git a/regula/documentreader/webclient/ext/models/authenticity/ocr_security_text.py b/regula/documentreader/webclient/ext/models/authenticity/ocr_security_text.py index 2617639..282ea52 100644 --- a/regula/documentreader/webclient/ext/models/authenticity/ocr_security_text.py +++ b/regula/documentreader/webclient/ext/models/authenticity/ocr_security_text.py @@ -1,4 +1,4 @@ -from typing import List +from typing import List, cast from regula.documentreader.webclient.gen.models import AuthenticityCheckResult, OCRSecurityTextResult @@ -6,6 +6,6 @@ class OCRSecurityTextChecks(AuthenticityCheckResult): @property - def list(self) -> List[OCRSecurityTextResult]: - # noinspection PyTypeChecker - return self.list + def checks_list(self) -> List[OCRSecurityTextResult]: + ocr_security_text_list: List[OCRSecurityTextResult] = cast(List[OCRSecurityTextResult], self.list) + return ocr_security_text_list diff --git a/regula/documentreader/webclient/ext/models/authenticity/security_feature.py b/regula/documentreader/webclient/ext/models/authenticity/security_feature.py index 276a7c9..91a08d9 100644 --- a/regula/documentreader/webclient/ext/models/authenticity/security_feature.py +++ b/regula/documentreader/webclient/ext/models/authenticity/security_feature.py @@ -1,4 +1,4 @@ -from typing import List, Optional +from typing import List, cast from regula.documentreader.webclient.gen.models import AuthenticityCheckResult, SecurityFeatureResult @@ -6,10 +6,10 @@ class SecurityFeatureChecks(AuthenticityCheckResult): @property - def list(self) -> List[SecurityFeatureResult]: - # noinspection PyTypeChecker - return self.list + def checks_list(self) -> List[SecurityFeatureResult]: + security_feature_list: List[SecurityFeatureResult] = cast(List[SecurityFeatureResult], self.list) + return security_feature_list # element_type is SecurityFeatureType def checks_by_element(self, element_type: int) -> List[SecurityFeatureResult]: - return [check for check in self.list if check.element_type == element_type] + return [check for check in self.checks_list if check.element_type == element_type] diff --git a/regula/documentreader/webclient/ext/models/images.py b/regula/documentreader/webclient/ext/models/images.py index 42c0a98..affa1f1 100755 --- a/regula/documentreader/webclient/ext/models/images.py +++ b/regula/documentreader/webclient/ext/models/images.py @@ -33,8 +33,8 @@ class Images(GenImages): def get_field(self, field_type: int) -> Optional[ImagesField]: for field in self.field_list: if field.field_type == field_type: - return ImagesField.from_dict(field.to_dict()) + return ImagesField.from_json(field.to_json()) return None def get_fields(self, field_type: int) -> List[ImagesField]: - return [ImagesField.from_dict(field.to_dict()) for field in self.field_list if field.field_type == field_type] + return [ImagesField.from_json(field.to_json()) for field in self.field_list if field.field_type == field_type] diff --git a/regula/documentreader/webclient/ext/models/recognition_response.py b/regula/documentreader/webclient/ext/models/recognition_response.py index c977efa..48ef117 100755 --- a/regula/documentreader/webclient/ext/models/recognition_response.py +++ b/regula/documentreader/webclient/ext/models/recognition_response.py @@ -20,7 +20,7 @@ def __init__(self, process_response: ProcessResponse): def text(self) -> Optional[Text]: result = self.result_by_type(Result.TEXT) if result: - return Text.from_dict(result.text.to_dict()) + return Text.from_json(result.text.to_json()) return None @property @@ -34,13 +34,13 @@ def status(self) -> Optional[Status]: def images(self) -> Optional[Images]: result = self.result_by_type(Result.IMAGES) if result: - return Images.from_dict(result.images.to_dict()) + return Images.from_json(result.images.to_json()) return None def authenticity(self, page_idx=0) -> Optional[AuthenticityCheckList]: result = self.pageable_result_by_type(Result.AUTHENTICITY, page_idx) if result: - return AuthenticityCheckList.from_dict(result.authenticity_check_list.to_dict()) + return AuthenticityCheckList.from_json(result.authenticity_check_list.to_json()) return None def image_quality_checks(self, page_idx=0) -> Optional[ImageQualityCheckList]: diff --git a/regula/documentreader/webclient/ext/models/text.py b/regula/documentreader/webclient/ext/models/text.py index 754c27b..64dbe30 100755 --- a/regula/documentreader/webclient/ext/models/text.py +++ b/regula/documentreader/webclient/ext/models/text.py @@ -11,12 +11,12 @@ def get_field(self, field_type: int, lcid: int = None) -> Optional[TextField]: for field in self.field_list: if field.field_type == field_type: if lcid is not None and field.lcid == lcid: - return TextField.from_dict(field.to_dict()) + return TextField.from_json(field.to_json()) elif lcid is None and field.lcid == LCID.LATIN: - return TextField.from_dict(field.to_dict()) + return TextField.from_json(field.to_json()) elif lcid is None and result is None: result = field - return TextField.from_dict(result.to_dict()) + return TextField.from_json(result.to_json()) def get_field_value(self, field_type: int, lcid: int = None) -> Optional[str]: field = self.get_field(field_type, lcid) @@ -27,12 +27,12 @@ def get_field_by_name(self, field_name: str, lcid: int = None) -> Optional[TextF for field in self.field_list: if field.field_name == field_name: if lcid is not None and field.lcid == lcid: - return TextField.from_dict(field.to_dict()) + return TextField.from_json(field.to_json()) elif lcid is None and field.lcid == LCID.LATIN: - return TextField.from_dict(field.to_dict()) + return TextField.from_json(field.to_json()) elif lcid is None and result is None: result = field - return TextField.from_dict(result.to_dict()) + return TextField.from_json(result.to_json()) def get_field_value_by_name(self, field_name: str, lcid: int = None) -> Optional[str]: field = self.get_field_by_name(field_name, lcid) diff --git a/regula/documentreader/webclient/gen/__init__.py b/regula/documentreader/webclient/gen/__init__.py index e8ac421..ede538b 100644 --- a/regula/documentreader/webclient/gen/__init__.py +++ b/regula/documentreader/webclient/gen/__init__.py @@ -150,6 +150,7 @@ from regula.documentreader.webclient.gen.models.out_data_transaction_images_field_value import OutDataTransactionImagesFieldValue from regula.documentreader.webclient.gen.models.p_array_field import PArrayField from regula.documentreader.webclient.gen.models.parsed_data import ParsedData +from regula.documentreader.webclient.gen.models.parsing_error_codes import ParsingErrorCodes from regula.documentreader.webclient.gen.models.parsing_notification_codes import ParsingNotificationCodes from regula.documentreader.webclient.gen.models.per_document_config import PerDocumentConfig from regula.documentreader.webclient.gen.models.photo_ident_item import PhotoIdentItem diff --git a/regula/documentreader/webclient/gen/models/__init__.py b/regula/documentreader/webclient/gen/models/__init__.py index 34464de..4583a30 100644 --- a/regula/documentreader/webclient/gen/models/__init__.py +++ b/regula/documentreader/webclient/gen/models/__init__.py @@ -131,6 +131,7 @@ from regula.documentreader.webclient.gen.models.out_data_transaction_images_field_value import OutDataTransactionImagesFieldValue from regula.documentreader.webclient.gen.models.p_array_field import PArrayField from regula.documentreader.webclient.gen.models.parsed_data import ParsedData +from regula.documentreader.webclient.gen.models.parsing_error_codes import ParsingErrorCodes from regula.documentreader.webclient.gen.models.parsing_notification_codes import ParsingNotificationCodes from regula.documentreader.webclient.gen.models.per_document_config import PerDocumentConfig from regula.documentreader.webclient.gen.models.photo_ident_item import PhotoIdentItem diff --git a/regula/documentreader/webclient/gen/models/authenticity_check_result_item.py b/regula/documentreader/webclient/gen/models/authenticity_check_result_item.py index 5e2b254..6a2d68e 100644 --- a/regula/documentreader/webclient/gen/models/authenticity_check_result_item.py +++ b/regula/documentreader/webclient/gen/models/authenticity_check_result_item.py @@ -26,16 +26,16 @@ from regula.documentreader.webclient.gen.models.photo_ident_result import PhotoIdentResult from regula.documentreader.webclient.gen.models.ident_result import IdentResult from regula.documentreader.webclient.gen.models.fiber_result import FiberResult - from regula.documentreader.webclient.gen.models.fiber_result import FiberResult + from regula.documentreader.webclient.gen.models.ocr_security_text_result import OCRSecurityTextResult from regula.documentreader.webclient.gen.models.security_feature_result import SecurityFeatureResult from regula.documentreader.webclient.gen.models.ident_result import IdentResult - from regula.documentreader.webclient.gen.models.photo_ident_result import PhotoIdentResult from regula.documentreader.webclient.gen.models.ident_result import IdentResult from regula.documentreader.webclient.gen.models.ident_result import IdentResult from regula.documentreader.webclient.gen.models.ident_result import IdentResult from regula.documentreader.webclient.gen.models.ident_result import IdentResult from regula.documentreader.webclient.gen.models.security_feature_result import SecurityFeatureResult from regula.documentreader.webclient.gen.models.security_feature_result import SecurityFeatureResult + from regula.documentreader.webclient.gen.models.security_feature_result import SecurityFeatureResult from regula.documentreader.webclient.gen.models.ident_result import IdentResult from regula.documentreader.webclient.gen.models.ocr_security_text_result import OCRSecurityTextResult from regula.documentreader.webclient.gen.models.security_feature_result import SecurityFeatureResult @@ -65,7 +65,7 @@ class AuthenticityCheckResultItem(BaseModel): # discriminator mappings __discriminator_value_class_map: ClassVar[Dict[str, str]] = { - '1': 'SecurityFeatureResult','1024': 'IdentResult','1048576': 'IdentResult','128': 'PhotoIdentResult','131072': 'IdentResult','16': 'FiberResult','16384': 'FiberResult','2': 'SecurityFeatureResult','2048': 'IdentResult','256': 'PhotoIdentResult','262144': 'IdentResult','32': 'IdentResult','32768': 'IdentResult','4': 'IdentResult','4096': 'SecurityFeatureResult','512': 'SecurityFeatureResult','524288': 'IdentResult','64': 'OCRSecurityTextResult','65536': 'SecurityFeatureResult','8': 'SecurityFeatureResult','8192': 'SecurityFeatureResult','8388608': 'SecurityFeatureResult' + '1': 'SecurityFeatureResult','1024': 'IdentResult','1048576': 'IdentResult','128': 'PhotoIdentResult','131072': 'IdentResult','16': 'FiberResult','16777216': 'OCRSecurityTextResult','2': 'SecurityFeatureResult','2097152': 'IdentResult','262144': 'IdentResult','32': 'IdentResult','32768': 'IdentResult','4': 'IdentResult','4096': 'SecurityFeatureResult','4194304': 'SecurityFeatureResult','512': 'SecurityFeatureResult','524288': 'IdentResult','64': 'OCRSecurityTextResult','65536': 'SecurityFeatureResult','8': 'SecurityFeatureResult','8192': 'SecurityFeatureResult','8388608': 'SecurityFeatureResult' } @classmethod @@ -87,7 +87,7 @@ def to_json(self) -> str: return json.dumps(self.to_dict()) @classmethod - def from_json(cls, json_str: str) -> Optional[Union[SecurityFeatureResult, IdentResult, IdentResult, PhotoIdentResult, IdentResult, FiberResult, FiberResult, SecurityFeatureResult, IdentResult, PhotoIdentResult, IdentResult, IdentResult, IdentResult, IdentResult, SecurityFeatureResult, SecurityFeatureResult, IdentResult, OCRSecurityTextResult, SecurityFeatureResult, SecurityFeatureResult, SecurityFeatureResult, SecurityFeatureResult]]: + def from_json(cls, json_str: str) -> Optional[Union[SecurityFeatureResult, IdentResult, IdentResult, PhotoIdentResult, IdentResult, FiberResult, OCRSecurityTextResult, SecurityFeatureResult, IdentResult, IdentResult, IdentResult, IdentResult, IdentResult, SecurityFeatureResult, SecurityFeatureResult, SecurityFeatureResult, IdentResult, OCRSecurityTextResult, SecurityFeatureResult, SecurityFeatureResult, SecurityFeatureResult, SecurityFeatureResult]]: """Create an instance of AuthenticityCheckResultItem from a JSON string""" return cls.from_dict(json.loads(json_str)) @@ -112,7 +112,7 @@ def to_dict(self) -> Dict[str, Any]: return _dict @classmethod - def from_dict(cls, obj: Dict[str, Any]) -> Optional[Union[SecurityFeatureResult, IdentResult, IdentResult, PhotoIdentResult, IdentResult, FiberResult, FiberResult, SecurityFeatureResult, IdentResult, PhotoIdentResult, IdentResult, IdentResult, IdentResult, IdentResult, SecurityFeatureResult, SecurityFeatureResult, IdentResult, OCRSecurityTextResult, SecurityFeatureResult, SecurityFeatureResult, SecurityFeatureResult, SecurityFeatureResult]]: + def from_dict(cls, obj: Dict[str, Any]) -> Optional[Union[SecurityFeatureResult, IdentResult, IdentResult, PhotoIdentResult, IdentResult, FiberResult, OCRSecurityTextResult, SecurityFeatureResult, IdentResult, IdentResult, IdentResult, IdentResult, IdentResult, SecurityFeatureResult, SecurityFeatureResult, SecurityFeatureResult, IdentResult, OCRSecurityTextResult, SecurityFeatureResult, SecurityFeatureResult, SecurityFeatureResult, SecurityFeatureResult]]: """Create an instance of AuthenticityCheckResultItem from a dict""" # look up the object type based on discriminator mapping object_type = cls.get_discriminator_value(obj) @@ -128,14 +128,12 @@ def from_dict(cls, obj: Dict[str, Any]) -> Optional[Union[SecurityFeatureResult, return import_module("regula.documentreader.webclient.gen.models.ident_result").IdentResult.from_dict(obj) if object_type == 'FiberResult': return import_module("regula.documentreader.webclient.gen.models.fiber_result").FiberResult.from_dict(obj) - if object_type == 'FiberResult': - return import_module("regula.documentreader.webclient.gen.models.fiber_result").FiberResult.from_dict(obj) + if object_type == 'OCRSecurityTextResult': + return import_module("regula.documentreader.webclient.gen.models.ocr_security_text_result").OCRSecurityTextResult.from_dict(obj) if object_type == 'SecurityFeatureResult': return import_module("regula.documentreader.webclient.gen.models.security_feature_result").SecurityFeatureResult.from_dict(obj) if object_type == 'IdentResult': return import_module("regula.documentreader.webclient.gen.models.ident_result").IdentResult.from_dict(obj) - if object_type == 'PhotoIdentResult': - return import_module("regula.documentreader.webclient.gen.models.photo_ident_result").PhotoIdentResult.from_dict(obj) if object_type == 'IdentResult': return import_module("regula.documentreader.webclient.gen.models.ident_result").IdentResult.from_dict(obj) if object_type == 'IdentResult': @@ -148,6 +146,8 @@ def from_dict(cls, obj: Dict[str, Any]) -> Optional[Union[SecurityFeatureResult, return import_module("regula.documentreader.webclient.gen.models.security_feature_result").SecurityFeatureResult.from_dict(obj) if object_type == 'SecurityFeatureResult': return import_module("regula.documentreader.webclient.gen.models.security_feature_result").SecurityFeatureResult.from_dict(obj) + if object_type == 'SecurityFeatureResult': + return import_module("regula.documentreader.webclient.gen.models.security_feature_result").SecurityFeatureResult.from_dict(obj) if object_type == 'IdentResult': return import_module("regula.documentreader.webclient.gen.models.ident_result").IdentResult.from_dict(obj) if object_type == 'OCRSecurityTextResult': diff --git a/regula/documentreader/webclient/gen/models/authenticity_result_type.py b/regula/documentreader/webclient/gen/models/authenticity_result_type.py index 5d03eec..91e3c6a 100644 --- a/regula/documentreader/webclient/gen/models/authenticity_result_type.py +++ b/regula/documentreader/webclient/gen/models/authenticity_result_type.py @@ -18,7 +18,6 @@ class AuthenticityResultType(int, Enum): """ allowed enum values """ - NONE = 0 UV_LUMINESCENCE = 1 IR_B900 = 2 IMAGE_PATTERN = 4 @@ -27,13 +26,10 @@ class AuthenticityResultType(int, Enum): IR_VISIBILITY = 32 OCR_SECURITY_TEXT = 64 IPI = 128 - IR_PHOTO = 256 PHOTO_EMBED_TYPE = 512 OVI = 1024 - IR_LUMINESCENCE = 2048 HOLOGRAMS = 4096 PHOTO_AREA = 8192 - UV_BACKGROUND = 16384 PORTRAIT_COMPARISON = 32768 BARCODE_FORMAT_CHECK = 65536 KINEGRAM = 131072 @@ -44,7 +40,6 @@ class AuthenticityResultType(int, Enum): EXTENDED_OCR_CHECK = 4194304 EXTENDED_MRZ_CHECK = 8388608 ENCRYPTED_IPI = 16777216 - STATUS_ONLY = 2147483648 @classmethod def from_json(cls, json_str: str) -> Self: diff --git a/regula/documentreader/webclient/gen/models/barcode_type.py b/regula/documentreader/webclient/gen/models/barcode_type.py index 0d9a62a..fc9396a 100644 --- a/regula/documentreader/webclient/gen/models/barcode_type.py +++ b/regula/documentreader/webclient/gen/models/barcode_type.py @@ -38,7 +38,6 @@ class BarcodeType(int, Enum): ALL_1D = 17 CODE11 = 18 JABCODE = 19 - END = 20 @classmethod def from_json(cls, json_str: str) -> Self: diff --git a/regula/documentreader/webclient/gen/models/document_image.py b/regula/documentreader/webclient/gen/models/document_image.py index 66a1df4..cca1dbc 100644 --- a/regula/documentreader/webclient/gen/models/document_image.py +++ b/regula/documentreader/webclient/gen/models/document_image.py @@ -18,7 +18,7 @@ class DocumentImage(BaseModel): """ DocumentImage """ # noqa: E501 - image: StrictStr = Field(description="Base64 encoded image") + image: Optional[StrictStr] = Field(default=None, description="Base64 encoded image") format: Optional[StrictStr] = Field(default=None, description="Image format") __properties: ClassVar[List[str]] = ["image", "format"] diff --git a/regula/documentreader/webclient/gen/models/image_data.py b/regula/documentreader/webclient/gen/models/image_data.py index fbdd739..d827c58 100644 --- a/regula/documentreader/webclient/gen/models/image_data.py +++ b/regula/documentreader/webclient/gen/models/image_data.py @@ -18,7 +18,7 @@ class ImageData(BaseModel): """ ImageData """ # noqa: E501 - image: StrictStr = Field(description="Base64 encoded image") + image: Optional[StrictStr] = Field(default=None, description="Base64 encoded image") format: Optional[StrictStr] = Field(default=None, description="Image format") __properties: ClassVar[List[str]] = ["image", "format"] diff --git a/regula/documentreader/webclient/gen/models/parsing_error_codes.py b/regula/documentreader/webclient/gen/models/parsing_error_codes.py new file mode 100644 index 0000000..fdfe185 --- /dev/null +++ b/regula/documentreader/webclient/gen/models/parsing_error_codes.py @@ -0,0 +1,153 @@ +# coding: utf-8 + +""" + Generated by: https://openapi-generator.tech +""" + +from __future__ import annotations +import json +from enum import Enum +from typing_extensions import Self + + +class ParsingErrorCodes(int, Enum): + """ + The enumeration contains error codes that can return during the RFID chip processing. + """ + + """ + allowed enum values + """ + errLDS_Ok = 1 + errLDS_ASN_IncorrectData = 2147483649 + errLDS_ASN_NotEnoughData = 2147483650 + errLDS_ASN_Contents_UnexpectedData = 2147483651 + errLDS_ASN_SignedData_IncorrectData = 2147483656 + errLDS_ASN_SignedData_EncapContents_IncorrectData = 2147483657 + errLDS_ASN_SignedData_Version_IncorrectData = 2147483658 + errLDS_ASN_SignedData_DigestAlgorithms_IncorrectData = 2147483665 + errLDS_ASN_LDSObject_IncorrectData = 2147483667 + errLDS_ASN_LDSObject_Version_IncorrectData = 2147483668 + errLDS_ASN_LDSObject_DigestAlgorithm_IncorrectData = 2147483669 + errLDS_ASN_LDSObject_DGHashes_IncorrectData = 2147483670 + errLDS_ASN_LDSObject_VersionInfo_IncorrectData = 2147483666 + errLDS_ASN_Certificate_IncorrectData = 2147483671 + errLDS_ASN_Certificate_Version_IncorrectData = 2147483672 + errLDS_ASN_Certificate_SN_IncorrectData = 2147483673 + errLDS_ASN_Certificate_Signature_IncorrectData = 2147483674 + errLDS_ASN_Certificate_Issuer_IncorrectData = 2147483675 + errLDS_ASN_Certificate_Validity_IncorrectData = 2147483676 + errLDS_ASN_Certificate_Subject_IncorrectData = 2147483677 + errLDS_ASN_Certificate_SubjectPK_IncorrectData = 2147483678 + errLDS_ASN_Certificate_Extensions_IncorrectData = 2147483679 + errLDS_ASN_SignerInfo_IncorrectData = 2147483680 + errLDS_ASN_SignerInfo_Version_IncorrectData = 2147483681 + errLDS_ASN_SignerInfo_SID_IncorrectData = 2147483682 + errLDS_ASN_SignerInfo_DigestAlg_IncorrectData = 2147483683 + errLDS_ASN_SignerInfo_SignedAttrs_IncorrectData = 2147483684 + errLDS_ASN_SignerInfo_SignAlg_IncorrectData = 2147483685 + errLDS_ASN_SignerInfo_Signature_IncorrectData = 2147483686 + errLDS_ASN_SignerInfo_UnsignedAttrs_IncorrectData = 2147483687 + errLDS_ICAO_LDSObject_UnsupportedDigestAlgorithm = 2147483696 + errLDS_ICAO_SignedData_SignerInfos_Empty = 2147483697 + errLDS_ICAO_SignerInfo_UnsupportedDigestAlgorithm = 2147483698 + errLDS_ICAO_SignerInfo_UnsupportedSignatureAlgorithm = 2147483699 + errLDS_ICAO_SignerInfo_MessageDigestError = 2147483700 + errLDS_ICAO_SignerInfo_SignedAttrs_Missed = 2147483702 + errLDS_Auth_SignerInfo_CantFindCertificate = 2147483701 + errLDS_Auth_Error = 2147483728 + errLDS_Auth_UnsupportedSignatureAlgorithm = 2147483729 + errLDS_Auth_UnsupportedPublicKeyAlgorithm = 2147483730 + errLDS_Auth_MessedAlgorithms = 2147483731 + errLDS_Auth_PublicKeyDataInvalid = 2147483732 + errLDS_Auth_AlgorithmParametersDataInvalid = 2147483733 + errLDS_Auth_SignatureDataInvalid = 2147483734 + errLDS_Auth_UnsupportedDigestAlgorithm = 2147483735 + errLDS_Auth_SignatureDataIncorrect = 2147483736 + errLDS_Auth_AlgorithmParametersNotDefined = 2147483737 + errLDS_Auth_SignatureCheckFailed = 2147483738 + errLDS_DG_WrongTag = 2147483760 + errLDS_DG_Contents_UnexpectedData = 2147483761 + errLDS_BAP_SymmetricCypher_CantInitialize = 2164260881 + errLDS_PACE_Info_NotAvailable = 2164260896 + errLDS_PACE_SymmetricCypher_CantInitialize = 2164260897 + errLDS_PACE_KeyAgreement_CantInitialize = 2164260898 + errLDS_PACE_EphemeralKeys_CantCreate = 2164260899 + errLDS_PACE_Mapping_CantDecodeNonce = 2164260900 + errLDS_PACE_SharedSecret_CantCreate = 2164260901 + errLDS_PACE_DomainParams_UnsupportedFormat = 2164260902 + errLDS_PACE_EphemeralKeys_Incorrect = 2164260903 + errLDS_PACE_Mapping_EphemeralKeys_Incorrect = 2164260904 + errLDS_PACE_Mapping_CantPerform = 2164260905 + errLDS_PACE_NonMatchingAuthTokens = 2164260906 + errLDS_PACE_CAM_Data_Incorrect = 2164260907 + errLDS_PACE_CAM_Data_CantVerify = 2164260908 + errLDS_PACE_CAM_Data_NonMatching = 2164260909 + errLDS_PACE_IM_Scheme_Incorrect = 2164260910 + errLDS_PACE_IM_RandomMapping_Failed = 2164260911 + errLDS_CA_CantFindPublicKey = 2164260912 + errLDS_CA_CantFindInfo = 2164260913 + errLDS_CA_IncorrectVersion = 2164260914 + errLDS_CA_CantFindDomainParameters = 2164260915 + errLDS_CA_KeyAgreement_CantInitialize = 2164260916 + errLDS_CA_PublicKey_UnsupportedAlgorithm = 2164260917 + errLDS_CA_EphemeralKeys_CantCreate = 2164260918 + errLDS_CA_SharedSecret_CantCreate = 2164260919 + errLDS_CA_NonMatchingAuthTokens = 2164260920 + errLDS_TA_IncorrectVersion = 2164260928 + errLDS_TA_CantBuildCertificateChain = 2164260929 + errLDS_TA_CantFindISPrivateKey = 2164260930 + errLDS_TA_PublicKey_UnsupportedAlgorithm = 2164260931 + errLDS_TA_SignatureBuildingError = 2164260932 + errLDS_TA_InvalidKeyAlgorithmParameters = 2164260933 + errLDS_AA_PublicKey_UnsupportedAlgorithm = 2164260944 + errLDS_AA_PublicKey_IncorrectData = 2164260945 + errLDS_AA_PublicKey_IncorrectParameters = 2164260946 + errLDS_AA_PublicKey_UndefinedParameters = 2164260947 + errLDS_AA_Signature_IncorrectData = 2164260948 + errLDS_AA_UnsupportedRecoveryScheme = 2164260949 + errLDS_AA_IncorrectTrailer = 2164260950 + errLDS_AA_UnsupportedDigestAlgorithm = 2164260951 + errLDS_RI_SectorKey_CantFind = 2164260976 + errLDS_RI_SectorKey_IncorrectData = 2164260977 + errLDS_RI_SectorKey_IncompleteData = 2164260978 + errLDS_CV_Certificate_MissingMandatoryData_PK = 2164260960 + errLDS_CV_Certificate_PublicKey_Unsupported = 2164260962 + errLDS_CV_Certificate_CHAT_UnsupportedTerminalType = 2164260963 + errLDS_CV_Certificate_PrivateKey_Unsupported = 2164260964 + errLDS_CV_Certificate_PrivateKey_InvalidParams = 2164260965 + errLDS_CV_Certificate_IncorrectData = 2164261216 + errLDS_CV_Certificate_CPI_IncorrectData = 2164261217 + errLDS_CV_Certificate_CAR_IncorrectData = 2164261218 + errLDS_CV_Certificate_PublicKey_IncorrectData = 2164261219 + errLDS_CV_Certificate_CHR_IncorrectData = 2164261220 + errLDS_CV_Certificate_CHAT_IncorrectData = 2164261221 + errLDS_CV_Certificate_ValidFrom_IncorrectData = 2164261222 + errLDS_CV_Certificate_ValidTo_IncorrectData = 2164261223 + errLDS_CV_Certificate_Extensions_IncorrectData = 2164261224 + errLDS_CV_Certificate_PrivateKey_IncorrectData = 2164261225 + errLDS_CV_Certificate_PrivateKey_Missing = 2164261226 + errLDS_VDS_UnsupportedVersion = 2164261376 + errLDS_VDS_Issuing_Country_Size = 2164261377 + errLDS_VDS_Issuing_Country_IncorrectData = 2164261378 + errLDS_VDS_Signer_Certificate_Size = 2164261379 + errLDS_VDS_Signer_Certificate_Data = 2164261380 + errLDS_VDS_Signature_IncorrectData = 2164261381 + errLDS_VDS_NC_IncorrectData = 2164261632 + errLDS_VDS_NC_MissingOrIncorrect_Data = 2164261633 + errLDS_VDS_NC_MissingOrIncorrect_Header = 2164261634 + errLDS_VDS_NC_MissingOrIncorrect_Type = 2164261635 + errLDS_VDS_NC_MissingOrIncorrect_Version = 2164261636 + errLDS_VDS_NC_MissingOrIncorrect_IssuingCountry = 2164261637 + errLDS_VDS_NC_MissingOrIncorrect_Message = 2164261638 + errLDS_VDS_NC_MissingOrIncorrect_Signature = 2164261639 + errLDS_VDS_NC_MissingOrIncorrect_SigAlgorithm = 2164261640 + errLDS_VDS_NC_MissingOrIncorrect_Certificate = 2164261641 + errLDS_VDS_NC_MissingOrIncorrect_SigValue = 2164261642 + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of ParsingErrorCodes from a JSON string""" + return cls(json.loads(json_str)) + + diff --git a/regula/documentreader/webclient/gen/models/transaction_process_request.py b/regula/documentreader/webclient/gen/models/transaction_process_request.py index 39a726b..7d1a0c5 100644 --- a/regula/documentreader/webclient/gen/models/transaction_process_request.py +++ b/regula/documentreader/webclient/gen/models/transaction_process_request.py @@ -24,13 +24,16 @@ class TransactionProcessRequest(BaseModel): """ # noqa: E501 process_param: ProcessParams = Field(alias="processParam") list: Optional[List[ProcessRequestImage]] = Field(default=None, alias="List") + tag: Optional[StrictStr] = Field(default=None, description="Session ID") + tenant: Optional[StrictStr] = Field(default=None, description="Customer name") + env: Optional[StrictStr] = Field(default=None, description="Environment type") live_portrait: Optional[StrictStr] = Field(default=None, description="Live portrait photo", alias="livePortrait") ext_portrait: Optional[StrictStr] = Field(default=None, description="Portrait photo from an external source", alias="extPortrait") container_list: Optional[ContainerList] = Field(default=None, alias="ContainerList") system_info: Optional[ProcessSystemInfo] = Field(default=None, alias="systemInfo") pass_back_object: Optional[Dict[str, Any]] = Field(default=None, description="Free-form object to be included in response. Must be object, not list or simple value. Do not affect document processing. Use it freely to pass your app params. Stored in process logs.", alias="passBackObject") dtc: Optional[StrictStr] = Field(default=None, description="Digital Travel Credential (DTC-VC) data in base64 format for processing") - __properties: ClassVar[List[str]] = ["processParam", "List", "livePortrait", "extPortrait", "ContainerList", "systemInfo", "passBackObject", "dtc"] + __properties: ClassVar[List[str]] = ["processParam", "List", "tag", "tenant", "env", "livePortrait", "extPortrait", "ContainerList", "systemInfo", "passBackObject", "dtc"] model_config = ConfigDict( populate_by_name=True, @@ -101,6 +104,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: _obj = cls.model_validate({ "processParam": ProcessParams.from_dict(obj["processParam"]) if obj.get("processParam") is not None else None, "List": [ProcessRequestImage.from_dict(_item) for _item in obj["List"]] if obj.get("List") is not None else None, + "tag": obj.get("tag"), + "tenant": obj.get("tenant"), + "env": obj.get("env"), "livePortrait": obj.get("livePortrait"), "extPortrait": obj.get("extPortrait"), "ContainerList": ContainerList.from_dict(obj["ContainerList"]) if obj.get("ContainerList") is not None else None, From da6a23e1b045d37708d040cbab0888027d794735 Mon Sep 17 00:00:00 2001 From: Artem Tsybulko Date: Fri, 11 Apr 2025 10:56:36 +0300 Subject: [PATCH 2/2] SP-22413 - update authenticity models --- .../documentreader/webclient/gen/models/fiber_item.py | 6 ++++-- .../webclient/gen/models/fiber_result.py | 6 ++++-- .../documentreader/webclient/gen/models/ident_item.py | 10 +++++++--- .../webclient/gen/models/ident_result.py | 10 +++++++--- .../webclient/gen/models/ocr_security_text_item.py | 4 +++- .../webclient/gen/models/ocr_security_text_result.py | 4 +++- .../webclient/gen/models/photo_ident_item.py | 8 +++----- .../webclient/gen/models/photo_ident_result.py | 8 +++----- .../webclient/gen/models/security_feature_item.py | 4 +++- .../webclient/gen/models/security_feature_result.py | 4 +++- 10 files changed, 40 insertions(+), 24 deletions(-) diff --git a/regula/documentreader/webclient/gen/models/fiber_item.py b/regula/documentreader/webclient/gen/models/fiber_item.py index 87c240a..5dc367e 100644 --- a/regula/documentreader/webclient/gen/models/fiber_item.py +++ b/regula/documentreader/webclient/gen/models/fiber_item.py @@ -29,7 +29,8 @@ class FiberItem(BaseModel): length: List[StrictInt] = Field(description="Fibers length value for located areas (in pixels)", alias="Length") area: List[StrictInt] = Field(description="Fibers value for areas (in pixels)", alias="Area") color_values: List[StrictInt] = Field(description="Fibers color value", alias="ColorValues") - __properties: ClassVar[List[str]] = ["RectCount", "ExpectedCount", "LightValue", "LightDisp", "RectArray", "Width", "Length", "Area", "ColorValues"] + error_code: Optional[StrictInt] = Field(default=None, alias="ErrorCode") + __properties: ClassVar[List[str]] = ["RectCount", "ExpectedCount", "LightValue", "LightDisp", "RectArray", "Width", "Length", "Area", "ColorValues", "ErrorCode"] model_config = ConfigDict( populate_by_name=True, @@ -97,7 +98,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "Width": obj.get("Width"), "Length": obj.get("Length"), "Area": obj.get("Area"), - "ColorValues": obj.get("ColorValues") + "ColorValues": obj.get("ColorValues"), + "ErrorCode": obj.get("ErrorCode") }) return _obj diff --git a/regula/documentreader/webclient/gen/models/fiber_result.py b/regula/documentreader/webclient/gen/models/fiber_result.py index 9ea06e0..09eb34a 100644 --- a/regula/documentreader/webclient/gen/models/fiber_result.py +++ b/regula/documentreader/webclient/gen/models/fiber_result.py @@ -33,7 +33,8 @@ class FiberResult(AuthenticityCheckResultItem): length: List[StrictInt] = Field(description="Fibers length value for located areas (in pixels)", alias="Length") area: List[StrictInt] = Field(description="Fibers value for areas (in pixels)", alias="Area") color_values: List[StrictInt] = Field(description="Fibers color value", alias="ColorValues") - __properties: ClassVar[List[str]] = ["Type", "ElementResult", "ElementDiagnose", "PercentValue", "RectCount", "ExpectedCount", "LightValue", "LightDisp", "RectArray", "Width", "Length", "Area", "ColorValues"] + error_code: Optional[StrictInt] = Field(default=None, alias="ErrorCode") + __properties: ClassVar[List[str]] = ["Type", "ElementResult", "ElementDiagnose", "PercentValue", "RectCount", "ExpectedCount", "LightValue", "LightDisp", "RectArray", "Width", "Length", "Area", "ColorValues", "ErrorCode"] model_config = ConfigDict( populate_by_name=True, @@ -105,7 +106,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "Width": obj.get("Width"), "Length": obj.get("Length"), "Area": obj.get("Area"), - "ColorValues": obj.get("ColorValues") + "ColorValues": obj.get("ColorValues"), + "ErrorCode": obj.get("ErrorCode") }) return _obj diff --git a/regula/documentreader/webclient/gen/models/ident_item.py b/regula/documentreader/webclient/gen/models/ident_item.py index 5add572..31d1e3c 100644 --- a/regula/documentreader/webclient/gen/models/ident_item.py +++ b/regula/documentreader/webclient/gen/models/ident_item.py @@ -9,7 +9,7 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field +from pydantic import BaseModel, ConfigDict, Field, StrictInt from typing import Any, ClassVar, Dict, List, Optional from regula.documentreader.webclient.gen.models.area_container import AreaContainer from regula.documentreader.webclient.gen.models.image_data import ImageData @@ -29,7 +29,9 @@ class IdentItem(BaseModel): image: ImageData = Field(alias="Image") etalon_image: ImageData = Field(alias="EtalonImage") area_list: Optional[AreaContainer] = Field(default=None, alias="AreaList") - __properties: ClassVar[List[str]] = ["ElementType", "LightIndex", "Area", "Image", "EtalonImage", "AreaList"] + element_id: Optional[StrictInt] = Field(default=None, alias="ElementID") + result: Optional[StrictInt] = Field(default=None, alias="Result") + __properties: ClassVar[List[str]] = ["ElementType", "LightIndex", "Area", "Image", "EtalonImage", "AreaList", "ElementID", "Result"] model_config = ConfigDict( populate_by_name=True, @@ -99,7 +101,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "Area": RectangleCoordinates.from_dict(obj["Area"]) if obj.get("Area") is not None else None, "Image": ImageData.from_dict(obj["Image"]) if obj.get("Image") is not None else None, "EtalonImage": ImageData.from_dict(obj["EtalonImage"]) if obj.get("EtalonImage") is not None else None, - "AreaList": AreaContainer.from_dict(obj["AreaList"]) if obj.get("AreaList") is not None else None + "AreaList": AreaContainer.from_dict(obj["AreaList"]) if obj.get("AreaList") is not None else None, + "ElementID": obj.get("ElementID"), + "Result": obj.get("Result") }) return _obj diff --git a/regula/documentreader/webclient/gen/models/ident_result.py b/regula/documentreader/webclient/gen/models/ident_result.py index 1b94a03..5c10b47 100644 --- a/regula/documentreader/webclient/gen/models/ident_result.py +++ b/regula/documentreader/webclient/gen/models/ident_result.py @@ -9,7 +9,7 @@ import re # noqa: F401 import json -from pydantic import ConfigDict, Field +from pydantic import ConfigDict, Field, StrictInt from typing import Any, ClassVar, Dict, List, Optional from regula.documentreader.webclient.gen.models.area_container import AreaContainer from regula.documentreader.webclient.gen.models.authenticity_check_result_item import AuthenticityCheckResultItem @@ -33,7 +33,9 @@ class IdentResult(AuthenticityCheckResultItem): image: ImageData = Field(alias="Image") etalon_image: ImageData = Field(alias="EtalonImage") area_list: Optional[AreaContainer] = Field(default=None, alias="AreaList") - __properties: ClassVar[List[str]] = ["Type", "ElementResult", "ElementDiagnose", "PercentValue", "ElementType", "LightIndex", "Area", "Image", "EtalonImage", "AreaList"] + element_id: Optional[StrictInt] = Field(default=None, alias="ElementID") + result: Optional[StrictInt] = Field(default=None, alias="Result") + __properties: ClassVar[List[str]] = ["Type", "ElementResult", "ElementDiagnose", "PercentValue", "ElementType", "LightIndex", "Area", "Image", "EtalonImage", "AreaList", "ElementID", "Result"] model_config = ConfigDict( populate_by_name=True, @@ -107,7 +109,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "Area": RectangleCoordinates.from_dict(obj["Area"]) if obj.get("Area") is not None else None, "Image": ImageData.from_dict(obj["Image"]) if obj.get("Image") is not None else None, "EtalonImage": ImageData.from_dict(obj["EtalonImage"]) if obj.get("EtalonImage") is not None else None, - "AreaList": AreaContainer.from_dict(obj["AreaList"]) if obj.get("AreaList") is not None else None + "AreaList": AreaContainer.from_dict(obj["AreaList"]) if obj.get("AreaList") is not None else None, + "ElementID": obj.get("ElementID"), + "Result": obj.get("Result") }) return _obj diff --git a/regula/documentreader/webclient/gen/models/ocr_security_text_item.py b/regula/documentreader/webclient/gen/models/ocr_security_text_item.py index b1d43c7..dba015a 100644 --- a/regula/documentreader/webclient/gen/models/ocr_security_text_item.py +++ b/regula/documentreader/webclient/gen/models/ocr_security_text_item.py @@ -30,9 +30,10 @@ class OCRSecurityTextItem(BaseModel): etalon_field_rect: RectangleCoordinates = Field(alias="EtalonFieldRect") security_text_result_ocr: StrictStr = Field(alias="SecurityTextResultOCR") etalon_result_ocr: StrictStr = Field(alias="EtalonResultOCR") + result_code: Optional[StrictInt] = Field(default=None, alias="ResultCode") reserved1: Optional[StrictInt] = Field(default=None, alias="Reserved1") reserved2: Optional[StrictInt] = Field(default=None, alias="Reserved2") - __properties: ClassVar[List[str]] = ["CriticalFlag", "LightType", "FieldRect", "EtalonResultType", "EtalonFieldType", "EtalonLightType", "EtalonFieldRect", "SecurityTextResultOCR", "EtalonResultOCR", "Reserved1", "Reserved2"] + __properties: ClassVar[List[str]] = ["CriticalFlag", "LightType", "FieldRect", "EtalonResultType", "EtalonFieldType", "EtalonLightType", "EtalonFieldRect", "SecurityTextResultOCR", "EtalonResultOCR", "ResultCode", "Reserved1", "Reserved2"] model_config = ConfigDict( populate_by_name=True, @@ -100,6 +101,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "EtalonFieldRect": RectangleCoordinates.from_dict(obj["EtalonFieldRect"]) if obj.get("EtalonFieldRect") is not None else None, "SecurityTextResultOCR": obj.get("SecurityTextResultOCR"), "EtalonResultOCR": obj.get("EtalonResultOCR"), + "ResultCode": obj.get("ResultCode"), "Reserved1": obj.get("Reserved1"), "Reserved2": obj.get("Reserved2") }) diff --git a/regula/documentreader/webclient/gen/models/ocr_security_text_result.py b/regula/documentreader/webclient/gen/models/ocr_security_text_result.py index 67f8a22..e489431 100644 --- a/regula/documentreader/webclient/gen/models/ocr_security_text_result.py +++ b/regula/documentreader/webclient/gen/models/ocr_security_text_result.py @@ -34,9 +34,10 @@ class OCRSecurityTextResult(AuthenticityCheckResultItem): etalon_field_rect: RectangleCoordinates = Field(alias="EtalonFieldRect") security_text_result_ocr: StrictStr = Field(alias="SecurityTextResultOCR") etalon_result_ocr: StrictStr = Field(alias="EtalonResultOCR") + result_code: Optional[StrictInt] = Field(default=None, alias="ResultCode") reserved1: Optional[StrictInt] = Field(default=None, alias="Reserved1") reserved2: Optional[StrictInt] = Field(default=None, alias="Reserved2") - __properties: ClassVar[List[str]] = ["Type", "ElementResult", "ElementDiagnose", "PercentValue", "CriticalFlag", "LightType", "FieldRect", "EtalonResultType", "EtalonFieldType", "EtalonLightType", "EtalonFieldRect", "SecurityTextResultOCR", "EtalonResultOCR", "Reserved1", "Reserved2"] + __properties: ClassVar[List[str]] = ["Type", "ElementResult", "ElementDiagnose", "PercentValue", "CriticalFlag", "LightType", "FieldRect", "EtalonResultType", "EtalonFieldType", "EtalonLightType", "EtalonFieldRect", "SecurityTextResultOCR", "EtalonResultOCR", "ResultCode", "Reserved1", "Reserved2"] model_config = ConfigDict( populate_by_name=True, @@ -108,6 +109,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "EtalonFieldRect": RectangleCoordinates.from_dict(obj["EtalonFieldRect"]) if obj.get("EtalonFieldRect") is not None else None, "SecurityTextResultOCR": obj.get("SecurityTextResultOCR"), "EtalonResultOCR": obj.get("EtalonResultOCR"), + "ResultCode": obj.get("ResultCode"), "Reserved1": obj.get("Reserved1"), "Reserved2": obj.get("Reserved2") }) diff --git a/regula/documentreader/webclient/gen/models/photo_ident_item.py b/regula/documentreader/webclient/gen/models/photo_ident_item.py index fa0985c..59975bf 100644 --- a/regula/documentreader/webclient/gen/models/photo_ident_item.py +++ b/regula/documentreader/webclient/gen/models/photo_ident_item.py @@ -30,10 +30,9 @@ class PhotoIdentItem(BaseModel): field_types_list: Optional[List[StrictInt]] = Field(default=None, alias="FieldTypesList") step: Optional[StrictInt] = Field(default=None, alias="Step") angle: Optional[StrictInt] = Field(default=None, alias="Angle") - reserved1: Optional[StrictInt] = Field(default=None, alias="Reserved1") - reserved2: Optional[StrictInt] = Field(default=None, alias="Reserved2") + result: Optional[StrictInt] = Field(default=None, alias="Result") reserved3: Optional[StrictInt] = Field(default=None, alias="Reserved3") - __properties: ClassVar[List[str]] = ["LightIndex", "Area", "SourceImage", "ResultImages", "FieldTypesCount", "FieldTypesList", "Step", "Angle", "Reserved1", "Reserved2", "Reserved3"] + __properties: ClassVar[List[str]] = ["LightIndex", "Area", "SourceImage", "ResultImages", "FieldTypesCount", "FieldTypesList", "Step", "Angle", "Result", "Reserved3"] model_config = ConfigDict( populate_by_name=True, @@ -103,8 +102,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "FieldTypesList": obj.get("FieldTypesList"), "Step": obj.get("Step"), "Angle": obj.get("Angle"), - "Reserved1": obj.get("Reserved1"), - "Reserved2": obj.get("Reserved2"), + "Result": obj.get("Result"), "Reserved3": obj.get("Reserved3") }) return _obj diff --git a/regula/documentreader/webclient/gen/models/photo_ident_result.py b/regula/documentreader/webclient/gen/models/photo_ident_result.py index 2f23d80..1b522ab 100644 --- a/regula/documentreader/webclient/gen/models/photo_ident_result.py +++ b/regula/documentreader/webclient/gen/models/photo_ident_result.py @@ -34,10 +34,9 @@ class PhotoIdentResult(AuthenticityCheckResultItem): field_types_list: Optional[List[StrictInt]] = Field(default=None, alias="FieldTypesList") step: Optional[StrictInt] = Field(default=None, alias="Step") angle: Optional[StrictInt] = Field(default=None, alias="Angle") - reserved1: Optional[StrictInt] = Field(default=None, alias="Reserved1") - reserved2: Optional[StrictInt] = Field(default=None, alias="Reserved2") + result: Optional[StrictInt] = Field(default=None, alias="Result") reserved3: Optional[StrictInt] = Field(default=None, alias="Reserved3") - __properties: ClassVar[List[str]] = ["Type", "ElementResult", "ElementDiagnose", "PercentValue", "LightIndex", "Area", "SourceImage", "ResultImages", "FieldTypesCount", "FieldTypesList", "Step", "Angle", "Reserved1", "Reserved2", "Reserved3"] + __properties: ClassVar[List[str]] = ["Type", "ElementResult", "ElementDiagnose", "PercentValue", "LightIndex", "Area", "SourceImage", "ResultImages", "FieldTypesCount", "FieldTypesList", "Step", "Angle", "Result", "Reserved3"] model_config = ConfigDict( populate_by_name=True, @@ -111,8 +110,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "FieldTypesList": obj.get("FieldTypesList"), "Step": obj.get("Step"), "Angle": obj.get("Angle"), - "Reserved1": obj.get("Reserved1"), - "Reserved2": obj.get("Reserved2"), + "Result": obj.get("Result"), "Reserved3": obj.get("Reserved3") }) return _obj diff --git a/regula/documentreader/webclient/gen/models/security_feature_item.py b/regula/documentreader/webclient/gen/models/security_feature_item.py index 8f304b6..0d4f214 100644 --- a/regula/documentreader/webclient/gen/models/security_feature_item.py +++ b/regula/documentreader/webclient/gen/models/security_feature_item.py @@ -28,8 +28,9 @@ class SecurityFeatureItem(BaseModel): visibility: Visibility = Field(alias="Visibility") critical_flag: Critical = Field(alias="CriticalFlag") area_list: Optional[AreaContainer] = Field(default=None, alias="AreaList") + result: Optional[StrictInt] = Field(default=None, alias="Result") reserved2: Optional[StrictInt] = Field(default=None, alias="Reserved2") - __properties: ClassVar[List[str]] = ["ElementType", "ElementRect", "Visibility", "CriticalFlag", "AreaList", "Reserved2"] + __properties: ClassVar[List[str]] = ["ElementType", "ElementRect", "Visibility", "CriticalFlag", "AreaList", "Result", "Reserved2"] model_config = ConfigDict( populate_by_name=True, @@ -93,6 +94,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "Visibility": obj.get("Visibility"), "CriticalFlag": obj.get("CriticalFlag"), "AreaList": AreaContainer.from_dict(obj["AreaList"]) if obj.get("AreaList") is not None else None, + "Result": obj.get("Result"), "Reserved2": obj.get("Reserved2") }) return _obj diff --git a/regula/documentreader/webclient/gen/models/security_feature_result.py b/regula/documentreader/webclient/gen/models/security_feature_result.py index 5648bac..c531cfb 100644 --- a/regula/documentreader/webclient/gen/models/security_feature_result.py +++ b/regula/documentreader/webclient/gen/models/security_feature_result.py @@ -32,8 +32,9 @@ class SecurityFeatureResult(AuthenticityCheckResultItem): visibility: Visibility = Field(alias="Visibility") critical_flag: Critical = Field(alias="CriticalFlag") area_list: Optional[AreaContainer] = Field(default=None, alias="AreaList") + result: Optional[StrictInt] = Field(default=None, alias="Result") reserved2: Optional[StrictInt] = Field(default=None, alias="Reserved2") - __properties: ClassVar[List[str]] = ["Type", "ElementResult", "ElementDiagnose", "PercentValue", "ElementType", "ElementRect", "Visibility", "CriticalFlag", "AreaList", "Reserved2"] + __properties: ClassVar[List[str]] = ["Type", "ElementResult", "ElementDiagnose", "PercentValue", "ElementType", "ElementRect", "Visibility", "CriticalFlag", "AreaList", "Result", "Reserved2"] model_config = ConfigDict( populate_by_name=True, @@ -101,6 +102,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "Visibility": obj.get("Visibility"), "CriticalFlag": obj.get("CriticalFlag"), "AreaList": AreaContainer.from_dict(obj["AreaList"]) if obj.get("AreaList") is not None else None, + "Result": obj.get("Result"), "Reserved2": obj.get("Reserved2") }) return _obj