regula-facesdk-webclient 7.2.388.dev0__py3-none-any.whl → 8.1.433.dev0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. regula/facesdk/webclient/__init__.py +5 -5
  2. regula/facesdk/webclient/ext/api/group_api.py +2 -27
  3. regula/facesdk/webclient/ext/api/match_api.py +3 -29
  4. regula/facesdk/webclient/ext/api/person_api.py +8 -34
  5. regula/facesdk/webclient/ext/api/sdk.py +5 -3
  6. regula/facesdk/webclient/ext/api/search_api.py +2 -6
  7. regula/facesdk/webclient/ext/models/detect_request.py +6 -5
  8. regula/facesdk/webclient/ext/models/match_image.py +3 -3
  9. regula/facesdk/webclient/ext/models/match_request.py +7 -5
  10. regula/facesdk/webclient/gen/__init__.py +349 -18
  11. regula/facesdk/webclient/gen/api/__init__.py +30 -3
  12. regula/facesdk/webclient/gen/api/group_api.py +1854 -799
  13. regula/facesdk/webclient/gen/api/healthcheck_api.py +475 -215
  14. regula/facesdk/webclient/gen/api/liveness20_api.py +565 -0
  15. regula/facesdk/webclient/gen/api/match_api.py +801 -355
  16. regula/facesdk/webclient/gen/api/person_api.py +2399 -1039
  17. regula/facesdk/webclient/gen/api/search_api.py +286 -130
  18. regula/facesdk/webclient/gen/api_client.py +577 -476
  19. regula/facesdk/webclient/gen/api_response.py +21 -0
  20. regula/facesdk/webclient/gen/configuration.py +231 -105
  21. regula/facesdk/webclient/gen/exceptions.py +82 -33
  22. regula/facesdk/webclient/gen/models/__init__.py +202 -95
  23. regula/facesdk/webclient/gen/models/add_image_to_person_request.py +96 -0
  24. regula/facesdk/webclient/gen/models/add_image_to_person_request_data.py +92 -0
  25. regula/facesdk/webclient/gen/models/add_image_to_person_request_image.py +92 -0
  26. regula/facesdk/webclient/gen/models/add_image_to_person_response.py +92 -0
  27. regula/facesdk/webclient/gen/models/attribute_config.py +83 -0
  28. regula/facesdk/webclient/gen/models/attributes_data.py +82 -0
  29. regula/facesdk/webclient/gen/models/crop.py +88 -0
  30. regula/facesdk/webclient/gen/models/detail_item.py +136 -0
  31. regula/facesdk/webclient/gen/models/detect_attributes_details.py +84 -0
  32. regula/facesdk/webclient/gen/models/detect_details_meta.py +86 -0
  33. regula/facesdk/webclient/gen/models/detect_meta_data.py +84 -0
  34. regula/facesdk/webclient/gen/models/detect_request.py +94 -0
  35. regula/facesdk/webclient/gen/models/detect_request_data.py +90 -0
  36. regula/facesdk/webclient/gen/models/detect_response.py +89 -0
  37. regula/facesdk/webclient/gen/models/detect_response_results.py +86 -0
  38. regula/facesdk/webclient/gen/models/detect_result.py +98 -0
  39. regula/facesdk/webclient/gen/models/detection.py +98 -0
  40. regula/facesdk/webclient/gen/models/detection_attributes.py +92 -0
  41. regula/facesdk/webclient/gen/models/detection_attributes_details_inner.py +132 -0
  42. regula/facesdk/webclient/gen/models/detection_face.py +90 -0
  43. regula/facesdk/webclient/gen/models/detection_quality.py +107 -0
  44. regula/facesdk/webclient/gen/models/device_info.py +111 -0
  45. regula/facesdk/webclient/gen/models/face_attribute.py +40 -0
  46. regula/facesdk/webclient/gen/models/face_image_quality_align_type.py +32 -0
  47. regula/facesdk/webclient/gen/models/face_image_quality_groups.py +35 -0
  48. regula/facesdk/webclient/gen/models/face_image_quality_groups_strings.py +35 -0
  49. regula/facesdk/webclient/gen/models/face_image_quality_status.py +30 -0
  50. regula/facesdk/webclient/gen/models/face_quality_config_name.py +75 -0
  51. regula/facesdk/webclient/gen/models/face_quality_scenarios.py +37 -0
  52. regula/facesdk/webclient/gen/models/face_sdk_result.py +83 -0
  53. regula/facesdk/webclient/gen/models/face_sdk_result_code.py +68 -0
  54. regula/facesdk/webclient/gen/models/faces_response.py +100 -0
  55. regula/facesdk/webclient/gen/models/faces_response_data.py +90 -0
  56. regula/facesdk/webclient/gen/models/filter_op.py +29 -0
  57. regula/facesdk/webclient/gen/models/filter_search_request.py +87 -0
  58. regula/facesdk/webclient/gen/models/group.py +89 -0
  59. regula/facesdk/webclient/gen/models/group_data.py +85 -0
  60. regula/facesdk/webclient/gen/models/group_page.py +94 -0
  61. regula/facesdk/webclient/gen/models/group_page_items.py +90 -0
  62. regula/facesdk/webclient/gen/models/group_response.py +84 -0
  63. regula/facesdk/webclient/gen/models/group_to_create.py +86 -0
  64. regula/facesdk/webclient/gen/models/image.py +96 -0
  65. regula/facesdk/webclient/gen/models/image_fields.py +100 -0
  66. regula/facesdk/webclient/gen/models/image_fields_image.py +92 -0
  67. regula/facesdk/webclient/gen/models/image_page.py +94 -0
  68. regula/facesdk/webclient/gen/models/image_page_items.py +90 -0
  69. regula/facesdk/webclient/gen/models/image_source.py +34 -0
  70. regula/facesdk/webclient/gen/models/liveness_type.py +29 -0
  71. regula/facesdk/webclient/gen/models/match_and_search_request.py +103 -0
  72. regula/facesdk/webclient/gen/models/match_and_search_request_images_item.py +87 -0
  73. regula/facesdk/webclient/gen/models/match_and_search_response.py +107 -0
  74. regula/facesdk/webclient/gen/models/match_and_search_response_data.py +104 -0
  75. regula/facesdk/webclient/gen/models/match_and_search_response_data_detections_item.py +95 -0
  76. regula/facesdk/webclient/gen/models/match_image.py +89 -0
  77. regula/facesdk/webclient/gen/models/match_image_detection.py +95 -0
  78. regula/facesdk/webclient/gen/models/match_image_result.py +97 -0
  79. regula/facesdk/webclient/gen/models/match_request.py +102 -0
  80. regula/facesdk/webclient/gen/models/match_request_data.py +98 -0
  81. regula/facesdk/webclient/gen/models/match_response.py +105 -0
  82. regula/facesdk/webclient/gen/models/match_response_data.py +102 -0
  83. regula/facesdk/webclient/gen/models/operation_log.py +88 -0
  84. regula/facesdk/webclient/gen/models/output_image_params.py +89 -0
  85. regula/facesdk/webclient/gen/models/page.py +84 -0
  86. regula/facesdk/webclient/gen/models/person.py +97 -0
  87. regula/facesdk/webclient/gen/models/person_data.py +87 -0
  88. regula/facesdk/webclient/gen/models/person_fields.py +91 -0
  89. regula/facesdk/webclient/gen/models/person_items.py +90 -0
  90. regula/facesdk/webclient/gen/models/person_to_update_fields.py +89 -0
  91. regula/facesdk/webclient/gen/models/person_with_images.py +107 -0
  92. regula/facesdk/webclient/gen/models/person_with_images_data.py +90 -0
  93. regula/facesdk/webclient/gen/models/persons_page.py +94 -0
  94. regula/facesdk/webclient/gen/models/process_param.py +103 -0
  95. regula/facesdk/webclient/gen/models/process_param_attributes.py +90 -0
  96. regula/facesdk/webclient/gen/models/quality_config.py +86 -0
  97. regula/facesdk/webclient/gen/models/quality_detail.py +94 -0
  98. regula/facesdk/webclient/gen/models/quality_details_groups.py +90 -0
  99. regula/facesdk/webclient/gen/models/quality_request.py +93 -0
  100. regula/facesdk/webclient/gen/models/recognize_image.py +100 -0
  101. regula/facesdk/webclient/gen/models/recognize_image_data.py +84 -0
  102. regula/facesdk/webclient/gen/models/resize_options.py +86 -0
  103. regula/facesdk/webclient/gen/models/search_bad_params.py +86 -0
  104. regula/facesdk/webclient/gen/models/search_detection.py +102 -0
  105. regula/facesdk/webclient/gen/models/search_parameters.py +95 -0
  106. regula/facesdk/webclient/gen/models/search_parameters_create_person.py +86 -0
  107. regula/facesdk/webclient/gen/models/search_person.py +113 -0
  108. regula/facesdk/webclient/gen/models/search_person_data.py +96 -0
  109. regula/facesdk/webclient/gen/models/search_request.py +119 -0
  110. regula/facesdk/webclient/gen/models/search_result.py +92 -0
  111. regula/facesdk/webclient/gen/models/transaction_info.py +99 -0
  112. regula/facesdk/webclient/gen/models/transaction_labels.py +84 -0
  113. regula/facesdk/webclient/gen/models/update_group.py +85 -0
  114. regula/facesdk/webclient/gen/py.typed +0 -0
  115. regula/facesdk/webclient/gen/rest.py +136 -232
  116. {regula_facesdk_webclient-7.2.388.dev0.dist-info → regula_facesdk_webclient-8.1.433.dev0.dist-info}/METADATA +7 -4
  117. regula_facesdk_webclient-8.1.433.dev0.dist-info/RECORD +125 -0
  118. {regula_facesdk_webclient-7.2.388.dev0.dist-info → regula_facesdk_webclient-8.1.433.dev0.dist-info}/WHEEL +1 -1
  119. regula/facesdk/webclient/gen/api/diagnostics_api.py +0 -162
  120. regula/facesdk/webclient/gen/api/liveness_2_0_api.py +0 -306
  121. regula/facesdk/webclient/gen/api/liveness_api.py +0 -424
  122. regula/facesdk/webclient/gen/apis/__init__.py +0 -22
  123. regula/facesdk/webclient/gen/model/__init__.py +0 -5
  124. regula/facesdk/webclient/gen/model/add_image_to_person_request.py +0 -261
  125. regula/facesdk/webclient/gen/model/add_image_to_person_request_image.py +0 -204
  126. regula/facesdk/webclient/gen/model/add_image_to_person_response.py +0 -262
  127. regula/facesdk/webclient/gen/model/attribute_config.py +0 -120
  128. regula/facesdk/webclient/gen/model/attribute_config_list.py +0 -92
  129. regula/facesdk/webclient/gen/model/crop.py +0 -180
  130. regula/facesdk/webclient/gen/model/detect_attributes_details.py +0 -150
  131. regula/facesdk/webclient/gen/model/detect_details_meta.py +0 -178
  132. regula/facesdk/webclient/gen/model/detect_request.py +0 -232
  133. regula/facesdk/webclient/gen/model/detect_request_attributes.py +0 -120
  134. regula/facesdk/webclient/gen/model/detect_response.py +0 -147
  135. regula/facesdk/webclient/gen/model/detect_response_all_of.py +0 -120
  136. regula/facesdk/webclient/gen/model/detect_result.py +0 -235
  137. regula/facesdk/webclient/gen/model/detection.py +0 -230
  138. regula/facesdk/webclient/gen/model/detection_attributes.py +0 -150
  139. regula/facesdk/webclient/gen/model/detection_face.py +0 -232
  140. regula/facesdk/webclient/gen/model/detection_quality.py +0 -234
  141. regula/facesdk/webclient/gen/model/device_info.py +0 -231
  142. regula/facesdk/webclient/gen/model/face_align_type_quality.py +0 -109
  143. regula/facesdk/webclient/gen/model/face_attribute.py +0 -133
  144. regula/facesdk/webclient/gen/model/face_image_quality_align_type.py +0 -109
  145. regula/facesdk/webclient/gen/model/face_image_quality_groups.py +0 -118
  146. regula/facesdk/webclient/gen/model/face_image_quality_groups_strings.py +0 -118
  147. regula/facesdk/webclient/gen/model/face_image_quality_status.py +0 -103
  148. regula/facesdk/webclient/gen/model/face_quality_config_name.py +0 -238
  149. regula/facesdk/webclient/gen/model/face_quality_scenarios.py +0 -124
  150. regula/facesdk/webclient/gen/model/face_quality_status.py +0 -103
  151. regula/facesdk/webclient/gen/model/face_rectangular.py +0 -92
  152. regula/facesdk/webclient/gen/model/face_sdk_result.py +0 -121
  153. regula/facesdk/webclient/gen/model/face_sdk_result_code.py +0 -217
  154. regula/facesdk/webclient/gen/model/faces_response.py +0 -258
  155. regula/facesdk/webclient/gen/model/faces_response_all_of.py +0 -148
  156. regula/facesdk/webclient/gen/model/filter_op.py +0 -100
  157. regula/facesdk/webclient/gen/model/filter_search_request.py +0 -176
  158. regula/facesdk/webclient/gen/model/group.py +0 -206
  159. regula/facesdk/webclient/gen/model/group_all_of.py +0 -150
  160. regula/facesdk/webclient/gen/model/group_page.py +0 -178
  161. regula/facesdk/webclient/gen/model/group_page_all_of.py +0 -122
  162. regula/facesdk/webclient/gen/model/group_response.py +0 -150
  163. regula/facesdk/webclient/gen/model/group_to_create.py +0 -180
  164. regula/facesdk/webclient/gen/model/image.py +0 -318
  165. regula/facesdk/webclient/gen/model/image_fields.py +0 -258
  166. regula/facesdk/webclient/gen/model/image_fields_image.py +0 -204
  167. regula/facesdk/webclient/gen/model/image_page.py +0 -176
  168. regula/facesdk/webclient/gen/model/image_page_all_of.py +0 -120
  169. regula/facesdk/webclient/gen/model/image_source.py +0 -115
  170. regula/facesdk/webclient/gen/model/liveness_transaction.py +0 -334
  171. regula/facesdk/webclient/gen/model/liveness_type.py +0 -100
  172. regula/facesdk/webclient/gen/model/match_and_search_request.py +0 -290
  173. regula/facesdk/webclient/gen/model/match_and_search_request_all_of.py +0 -234
  174. regula/facesdk/webclient/gen/model/match_and_search_request_all_of_images.py +0 -148
  175. regula/facesdk/webclient/gen/model/match_and_search_request_images.py +0 -176
  176. regula/facesdk/webclient/gen/model/match_and_search_response.py +0 -233
  177. regula/facesdk/webclient/gen/model/match_and_search_response_all_of.py +0 -206
  178. regula/facesdk/webclient/gen/model/match_and_search_response_all_of_detections.py +0 -176
  179. regula/facesdk/webclient/gen/model/match_image.py +0 -205
  180. regula/facesdk/webclient/gen/model/match_image_detection.py +0 -178
  181. regula/facesdk/webclient/gen/model/match_image_result.py +0 -316
  182. regula/facesdk/webclient/gen/model/match_request.py +0 -233
  183. regula/facesdk/webclient/gen/model/match_request_output_image_params.py +0 -148
  184. regula/facesdk/webclient/gen/model/match_request_output_image_params_crop.py +0 -212
  185. regula/facesdk/webclient/gen/model/match_response.py +0 -205
  186. regula/facesdk/webclient/gen/model/match_response_all_of.py +0 -178
  187. regula/facesdk/webclient/gen/model/operation_log.py +0 -206
  188. regula/facesdk/webclient/gen/model/output_image_params.py +0 -146
  189. regula/facesdk/webclient/gen/model/page.py +0 -150
  190. regula/facesdk/webclient/gen/model/person.py +0 -319
  191. regula/facesdk/webclient/gen/model/person_all_of.py +0 -206
  192. regula/facesdk/webclient/gen/model/person_created_response.py +0 -178
  193. regula/facesdk/webclient/gen/model/person_fields.py +0 -235
  194. regula/facesdk/webclient/gen/model/person_to_update_fields.py +0 -206
  195. regula/facesdk/webclient/gen/model/person_with_images.py +0 -347
  196. regula/facesdk/webclient/gen/model/person_with_images_all_of.py +0 -122
  197. regula/facesdk/webclient/gen/model/persons_page.py +0 -176
  198. regula/facesdk/webclient/gen/model/persons_page_all_of.py +0 -120
  199. regula/facesdk/webclient/gen/model/persons_request.py +0 -291
  200. regula/facesdk/webclient/gen/model/persons_request_all_of.py +0 -150
  201. regula/facesdk/webclient/gen/model/process_param.py +0 -226
  202. regula/facesdk/webclient/gen/model/process_param_attributes.py +0 -120
  203. regula/facesdk/webclient/gen/model/quality_config.py +0 -154
  204. regula/facesdk/webclient/gen/model/quality_config_list.py +0 -92
  205. regula/facesdk/webclient/gen/model/quality_detail.py +0 -234
  206. regula/facesdk/webclient/gen/model/quality_details_groups.py +0 -202
  207. regula/facesdk/webclient/gen/model/quality_request.py +0 -146
  208. regula/facesdk/webclient/gen/model/recognize_image.py +0 -374
  209. regula/facesdk/webclient/gen/model/recognize_image_all_of.py +0 -150
  210. regula/facesdk/webclient/gen/model/resize_options.py +0 -178
  211. regula/facesdk/webclient/gen/model/rgb.py +0 -92
  212. regula/facesdk/webclient/gen/model/search_bad_params.py +0 -172
  213. regula/facesdk/webclient/gen/model/search_detection.py +0 -398
  214. regula/facesdk/webclient/gen/model/search_parameters.py +0 -174
  215. regula/facesdk/webclient/gen/model/search_parameters_create_person.py +0 -177
  216. regula/facesdk/webclient/gen/model/search_person.py +0 -373
  217. regula/facesdk/webclient/gen/model/search_person_all_of.py +0 -148
  218. regula/facesdk/webclient/gen/model/search_request.py +0 -394
  219. regula/facesdk/webclient/gen/model/search_request_all_of.py +0 -150
  220. regula/facesdk/webclient/gen/model/search_result.py +0 -150
  221. regula/facesdk/webclient/gen/model/search_result_all_of.py +0 -122
  222. regula/facesdk/webclient/gen/model/transaction_config.py +0 -92
  223. regula/facesdk/webclient/gen/model/transaction_info.py +0 -344
  224. regula/facesdk/webclient/gen/model/update_group.py +0 -150
  225. regula/facesdk/webclient/gen/model_utils.py +0 -2037
  226. regula_facesdk_webclient-7.2.388.dev0.dist-info/RECORD +0 -138
  227. {regula_facesdk_webclient-7.2.388.dev0.dist-info → regula_facesdk_webclient-8.1.433.dev0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,21 @@
1
+ """API response object."""
2
+
3
+ from __future__ import annotations
4
+ from typing import Optional, Generic, Mapping, TypeVar
5
+ from pydantic import Field, StrictInt, StrictBytes, BaseModel
6
+
7
+ T = TypeVar("T")
8
+
9
+ class ApiResponse(BaseModel, Generic[T]):
10
+ """
11
+ API response object
12
+ """
13
+
14
+ status_code: StrictInt = Field(description="HTTP status code")
15
+ headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers")
16
+ data: T = Field(description="Deserialized data given the data type")
17
+ raw_data: StrictBytes = Field(description="Raw data (HTTP response body)")
18
+
19
+ model_config = {
20
+ "arbitrary_types_allowed": True
21
+ }
@@ -1,21 +1,19 @@
1
- """
2
- Regula Face SDK Web API
3
-
4
- <a href=\"https://regulaforensics.com/products/face-recognition-sdk/ \" target=\"_blank\">Regula Face SDK</a> is a cross-platform biometric verification solution for a digital identity verification process and image quality assurance. The SDK enables convenient and reliable face capture on the client side (mobile, web, and desktop) and further processing on the client or server side. The Face SDK includes the following features: * <a href=\"https://docs.regulaforensics.com/develop/face-sdk/overview/introduction/#face-detection\" target=\"_blank\">Face detection and image quality assessment</a> * <a href=\"https://docs.regulaforensics.com/develop/face-sdk/overview/introduction/#face-comparison-11\" target=\"_blank\">Face match (1:1)</a> * <a href=\"https://docs.regulaforensics.com/develop/face-sdk/overview/introduction/#face-identification-1n\" target=\"_blank\">Face search (1:N)</a> * <a href=\"https://docs.regulaforensics.com/develop/face-sdk/overview/introduction/#liveness-assessment\" target=\"_blank\">Liveness detection</a> Here is the <a href=\"https://github.com/regulaforensics/FaceSDK-web-openapi \" target=\"_blank\">OpenAPI specification on GitHub</a>. ### Clients * [JavaScript](https://github.com/regulaforensics/FaceSDK-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/FaceSDK-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/FaceSDK-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/FaceSDK-web-csharp-client) client for .NET & .NET Core # noqa: E501
1
+ # coding: utf-8
5
2
 
6
- The version of the OpenAPI document: 7.2.0
3
+ """
7
4
  Generated by: https://openapi-generator.tech
8
5
  """
9
6
 
10
-
11
7
  import copy
8
+ import http.client as httplib
12
9
  import logging
10
+ from logging import FileHandler
13
11
  import multiprocessing
14
12
  import sys
15
- import urllib3
13
+ from typing import Any, ClassVar, Dict, List, Literal, Optional, TypedDict, Union
14
+ from typing_extensions import NotRequired, Self
16
15
 
17
- from http import client as http_client
18
- from regula.facesdk.webclient.gen.exceptions import ApiValueError
16
+ import urllib3
19
17
 
20
18
 
21
19
  JSON_SCHEMA_VALIDATION_KEYWORDS = {
@@ -24,46 +22,123 @@ JSON_SCHEMA_VALIDATION_KEYWORDS = {
24
22
  'minLength', 'pattern', 'maxItems', 'minItems'
25
23
  }
26
24
 
27
- class Configuration(object):
28
- """NOTE: This class is auto generated by OpenAPI Generator
29
-
30
- Ref: https://openapi-generator.tech
31
- Do not edit the class manually.
32
-
33
- :param host: Base url
25
+ ServerVariablesT = Dict[str, str]
26
+
27
+ GenericAuthSetting = TypedDict(
28
+ "GenericAuthSetting",
29
+ {
30
+ "type": str,
31
+ "in": str,
32
+ "key": str,
33
+ "value": str,
34
+ },
35
+ )
36
+
37
+
38
+ OAuth2AuthSetting = TypedDict(
39
+ "OAuth2AuthSetting",
40
+ {
41
+ "type": Literal["oauth2"],
42
+ "in": Literal["header"],
43
+ "key": Literal["Authorization"],
44
+ "value": str,
45
+ },
46
+ )
47
+
48
+
49
+ APIKeyAuthSetting = TypedDict(
50
+ "APIKeyAuthSetting",
51
+ {
52
+ "type": Literal["api_key"],
53
+ "in": str,
54
+ "key": str,
55
+ "value": Optional[str],
56
+ },
57
+ )
58
+
59
+
60
+ BasicAuthSetting = TypedDict(
61
+ "BasicAuthSetting",
62
+ {
63
+ "type": Literal["basic"],
64
+ "in": Literal["header"],
65
+ "key": Literal["Authorization"],
66
+ "value": Optional[str],
67
+ },
68
+ )
69
+
70
+
71
+ BearerFormatAuthSetting = TypedDict(
72
+ "BearerFormatAuthSetting",
73
+ {
74
+ "type": Literal["bearer"],
75
+ "in": Literal["header"],
76
+ "format": Literal["JWT"],
77
+ "key": Literal["Authorization"],
78
+ "value": str,
79
+ },
80
+ )
81
+
82
+
83
+ BearerAuthSetting = TypedDict(
84
+ "BearerAuthSetting",
85
+ {
86
+ "type": Literal["bearer"],
87
+ "in": Literal["header"],
88
+ "key": Literal["Authorization"],
89
+ "value": str,
90
+ },
91
+ )
92
+
93
+
94
+ HTTPSignatureAuthSetting = TypedDict(
95
+ "HTTPSignatureAuthSetting",
96
+ {
97
+ "type": Literal["http-signature"],
98
+ "in": Literal["header"],
99
+ "key": Literal["Authorization"],
100
+ "value": None,
101
+ },
102
+ )
103
+
104
+
105
+ AuthSettings = TypedDict(
106
+ "AuthSettings",
107
+ {
108
+ },
109
+ total=False,
110
+ )
111
+
112
+
113
+ class HostSettingVariable(TypedDict):
114
+ description: str
115
+ default_value: str
116
+ enum_values: List[str]
117
+
118
+
119
+ class HostSetting(TypedDict):
120
+ url: str
121
+ description: str
122
+ variables: NotRequired[Dict[str, HostSettingVariable]]
123
+
124
+
125
+ class Configuration:
126
+ """This class contains various settings of the API client.
127
+
128
+ :param host: Base url.
129
+ :param ignore_operation_servers
130
+ Boolean to ignore operation servers for the API client.
131
+ Config will use `host` as the base url regardless of the operation servers.
34
132
  :param api_key: Dict to store API key(s).
35
133
  Each entry in the dict specifies an API key.
36
134
  The dict key is the name of the security scheme in the OAS specification.
37
135
  The dict value is the API key secret.
38
- :param api_key_prefix: Dict to store API prefix (e.g. Bearer)
136
+ :param api_key_prefix: Dict to store API prefix (e.g. Bearer).
39
137
  The dict key is the name of the security scheme in the OAS specification.
40
138
  The dict value is an API key prefix when generating the auth data.
41
- :param username: Username for HTTP basic authentication
42
- :param password: Password for HTTP basic authentication
43
- :param discard_unknown_keys: Boolean value indicating whether to discard
44
- unknown properties. A server may send a response that includes additional
45
- properties that are not known by the client in the following scenarios:
46
- 1. The OpenAPI document is incomplete, i.e. it does not match the server
47
- implementation.
48
- 2. The client was generated using an older version of the OpenAPI document
49
- and the server has been upgraded since then.
50
- If a schema in the OpenAPI document defines the additionalProperties attribute,
51
- then all undeclared properties received by the server are injected into the
52
- additional properties map. In that case, there are undeclared properties, and
53
- nothing to discard.
54
- :param disabled_client_side_validations (string): Comma-separated list of
55
- JSON schema validation keywords to disable JSON schema structural validation
56
- rules. The following keywords may be specified: multipleOf, maximum,
57
- exclusiveMaximum, minimum, exclusiveMinimum, maxLength, minLength, pattern,
58
- maxItems, minItems.
59
- By default, the validation is performed for data generated locally by the client
60
- and data received from the server, independent of any validation performed by
61
- the server side. If the input data does not satisfy the JSON schema validation
62
- rules specified in the OpenAPI document, an exception is raised.
63
- If disabled_client_side_validations is set, structural validation is
64
- disabled. This can be useful to troubleshoot data validation problem, such as
65
- when the OpenAPI document validation rules do not match the actual API data
66
- received by the server.
139
+ :param username: Username for HTTP basic authentication.
140
+ :param password: Password for HTTP basic authentication.
141
+ :param access_token: Access token.
67
142
  :param server_index: Index to servers configuration.
68
143
  :param server_variables: Mapping with string values to replace variables in
69
144
  templated server configuration. The validation of enums is performed for
@@ -72,27 +147,40 @@ class Configuration(object):
72
147
  configuration.
73
148
  :param server_operation_variables: Mapping from operation ID to a mapping with
74
149
  string values to replace variables in templated server configuration.
75
- The validation of enums is performed for variables with defined enum values before.
150
+ The validation of enums is performed for variables with defined enum
151
+ values before.
76
152
  :param ssl_ca_cert: str - the path to a file of concatenated CA certificates
77
- in PEM format
153
+ in PEM format.
154
+ :param retries: Number of retries for API requests.
155
+ :param ca_cert_data: verify the peer using concatenated CA certificate data
156
+ in PEM (str) or DER (bytes) format.
78
157
 
79
158
  """
80
159
 
81
- _default = None
82
-
83
- def __init__(self, host=None,
84
- api_key=None, api_key_prefix=None,
85
- access_token=None,
86
- username=None, password=None,
87
- discard_unknown_keys=False,
88
- disabled_client_side_validations="",
89
- server_index=None, server_variables=None,
90
- server_operation_index=None, server_operation_variables=None,
91
- ssl_ca_cert=None,
92
- ):
160
+ _default: ClassVar[Optional[Self]] = None
161
+
162
+ def __init__(
163
+ self,
164
+ host: Optional[str]=None,
165
+ api_key: Optional[Dict[str, str]]=None,
166
+ api_key_prefix: Optional[Dict[str, str]]=None,
167
+ username: Optional[str]=None,
168
+ password: Optional[str]=None,
169
+ access_token: Optional[str]=None,
170
+ server_index: Optional[int]=None,
171
+ server_variables: Optional[ServerVariablesT]=None,
172
+ server_operation_index: Optional[Dict[int, int]]=None,
173
+ server_operation_variables: Optional[Dict[int, ServerVariablesT]]=None,
174
+ ignore_operation_servers: bool=False,
175
+ ssl_ca_cert: Optional[str]=None,
176
+ retries: Optional[int] = None,
177
+ ca_cert_data: Optional[Union[str, bytes]] = None,
178
+ *,
179
+ debug: Optional[bool] = None,
180
+ ) -> None:
93
181
  """Constructor
94
182
  """
95
- self._base_path = "http://localhost:41101" if host is None else host
183
+ self._base_path = "https://faceapi.regulaforensics.com" if host is None else host
96
184
  """Default Base url
97
185
  """
98
186
  self.server_index = 0 if server_index is None and host is None else server_index
@@ -103,11 +191,13 @@ class Configuration(object):
103
191
  self.server_operation_variables = server_operation_variables or {}
104
192
  """Default server variables
105
193
  """
194
+ self.ignore_operation_servers = ignore_operation_servers
195
+ """Ignore operation servers
196
+ """
106
197
  self.temp_folder_path = None
107
198
  """Temp file folder for downloading files
108
199
  """
109
200
  # Authentication Settings
110
- self.access_token = access_token
111
201
  self.api_key = {}
112
202
  if api_key:
113
203
  self.api_key = api_key
@@ -127,8 +217,9 @@ class Configuration(object):
127
217
  self.password = password
128
218
  """Password for HTTP basic authentication
129
219
  """
130
- self.discard_unknown_keys = discard_unknown_keys
131
- self.disabled_client_side_validations = disabled_client_side_validations
220
+ self.access_token = access_token
221
+ """Access token
222
+ """
132
223
  self.logger = {}
133
224
  """Logging Settings
134
225
  """
@@ -140,13 +231,16 @@ class Configuration(object):
140
231
  self.logger_stream_handler = None
141
232
  """Log stream handler
142
233
  """
143
- self.logger_file_handler = None
234
+ self.logger_file_handler: Optional[FileHandler] = None
144
235
  """Log file handler
145
236
  """
146
237
  self.logger_file = None
147
238
  """Debug file location
148
239
  """
149
- self.debug = False
240
+ if debug is not None:
241
+ self.debug = debug
242
+ else:
243
+ self.__debug = False
150
244
  """Debug switch
151
245
  """
152
246
 
@@ -158,6 +252,10 @@ class Configuration(object):
158
252
  self.ssl_ca_cert = ssl_ca_cert
159
253
  """Set this to customize the certificate file to verify the peer.
160
254
  """
255
+ self.ca_cert_data = ca_cert_data
256
+ """Set this to verify the peer using PEM (str) or DER (bytes)
257
+ certificate data.
258
+ """
161
259
  self.cert_file = None
162
260
  """client certificate file
163
261
  """
@@ -167,6 +265,10 @@ class Configuration(object):
167
265
  self.assert_hostname = None
168
266
  """Set this to True/False to enable/disable SSL hostname verification.
169
267
  """
268
+ self.tls_server_name = None
269
+ """SSL/TLS Server Name Indication (SNI)
270
+ Set this to the SNI value expected by the server.
271
+ """
170
272
 
171
273
  self.connection_pool_maxsize = multiprocessing.cpu_count() * 5
172
274
  """urllib3 connection pool's maximum number of connections saved
@@ -176,28 +278,34 @@ class Configuration(object):
176
278
  cpu_count * 5 is used as default value to increase performance.
177
279
  """
178
280
 
179
- self.proxy = None
281
+ self.proxy: Optional[str] = None
180
282
  """Proxy URL
181
283
  """
182
- self.no_proxy = None
183
- """bypass proxy for host in the no_proxy list.
184
- """
185
284
  self.proxy_headers = None
186
285
  """Proxy headers
187
286
  """
188
287
  self.safe_chars_for_path_param = ''
189
288
  """Safe chars for path_param
190
289
  """
191
- self.retries = None
290
+ self.retries = retries
192
291
  """Adding retries to override urllib3 default value 3
193
292
  """
194
293
  # Enable client side validation
195
294
  self.client_side_validation = True
196
295
 
197
- # Options to pass down to the underlying urllib3 socket
198
296
  self.socket_options = None
297
+ """Options to pass down to the underlying urllib3 socket
298
+ """
299
+
300
+ self.datetime_format = "%Y-%m-%dT%H:%M:%S.%f%z"
301
+ """datetime format
302
+ """
199
303
 
200
- def __deepcopy__(self, memo):
304
+ self.date_format = "%Y-%m-%d"
305
+ """date format
306
+ """
307
+
308
+ def __deepcopy__(self, memo: Dict[int, Any]) -> Self:
201
309
  cls = self.__class__
202
310
  result = cls.__new__(cls)
203
311
  memo[id(self)] = result
@@ -211,18 +319,11 @@ class Configuration(object):
211
319
  result.debug = self.debug
212
320
  return result
213
321
 
214
- def __setattr__(self, name, value):
322
+ def __setattr__(self, name: str, value: Any) -> None:
215
323
  object.__setattr__(self, name, value)
216
- if name == 'disabled_client_side_validations':
217
- s = set(filter(None, value.split(',')))
218
- for v in s:
219
- if v not in JSON_SCHEMA_VALIDATION_KEYWORDS:
220
- raise ApiValueError(
221
- "Invalid keyword: '{0}''".format(v))
222
- self._disabled_client_side_validations = s
223
324
 
224
325
  @classmethod
225
- def set_default(cls, default):
326
+ def set_default(cls, default: Optional[Self]) -> None:
226
327
  """Set default instance of configuration.
227
328
 
228
329
  It stores default configuration, which can be
@@ -230,24 +331,34 @@ class Configuration(object):
230
331
 
231
332
  :param default: object of Configuration
232
333
  """
233
- cls._default = copy.deepcopy(default)
334
+ cls._default = default
234
335
 
235
336
  @classmethod
236
- def get_default_copy(cls):
237
- """Return new instance of configuration.
337
+ def get_default_copy(cls) -> Self:
338
+ """Deprecated. Please use `get_default` instead.
339
+
340
+ Deprecated. Please use `get_default` instead.
341
+
342
+ :return: The configuration object.
343
+ """
344
+ return cls.get_default()
345
+
346
+ @classmethod
347
+ def get_default(cls) -> Self:
348
+ """Return the default configuration.
238
349
 
239
350
  This method returns newly created, based on default constructor,
240
351
  object of Configuration class or returns a copy of default
241
- configuration passed by the set_default method.
352
+ configuration.
242
353
 
243
354
  :return: The configuration object.
244
355
  """
245
- if cls._default is not None:
246
- return copy.deepcopy(cls._default)
247
- return Configuration()
356
+ if cls._default is None:
357
+ cls._default = cls()
358
+ return cls._default
248
359
 
249
360
  @property
250
- def logger_file(self):
361
+ def logger_file(self) -> Optional[str]:
251
362
  """The logger file.
252
363
 
253
364
  If the logger_file is None, then add stream handler and remove file
@@ -259,7 +370,7 @@ class Configuration(object):
259
370
  return self.__logger_file
260
371
 
261
372
  @logger_file.setter
262
- def logger_file(self, value):
373
+ def logger_file(self, value: Optional[str]) -> None:
263
374
  """The logger file.
264
375
 
265
376
  If the logger_file is None, then add stream handler and remove file
@@ -278,7 +389,7 @@ class Configuration(object):
278
389
  logger.addHandler(self.logger_file_handler)
279
390
 
280
391
  @property
281
- def debug(self):
392
+ def debug(self) -> bool:
282
393
  """Debug status
283
394
 
284
395
  :param value: The debug status, True or False.
@@ -287,7 +398,7 @@ class Configuration(object):
287
398
  return self.__debug
288
399
 
289
400
  @debug.setter
290
- def debug(self, value):
401
+ def debug(self, value: bool) -> None:
291
402
  """Debug status
292
403
 
293
404
  :param value: The debug status, True or False.
@@ -298,18 +409,18 @@ class Configuration(object):
298
409
  # if debug status is True, turn on debug logging
299
410
  for _, logger in self.logger.items():
300
411
  logger.setLevel(logging.DEBUG)
301
- # turn on http_client debug
302
- http_client.HTTPConnection.debuglevel = 1
412
+ # turn on httplib debug
413
+ httplib.HTTPConnection.debuglevel = 1
303
414
  else:
304
415
  # if debug status is False, turn off debug logging,
305
416
  # setting log level to default `logging.WARNING`
306
417
  for _, logger in self.logger.items():
307
418
  logger.setLevel(logging.WARNING)
308
- # turn off http_client debug
309
- http_client.HTTPConnection.debuglevel = 0
419
+ # turn off httplib debug
420
+ httplib.HTTPConnection.debuglevel = 0
310
421
 
311
422
  @property
312
- def logger_format(self):
423
+ def logger_format(self) -> str:
313
424
  """The logger format.
314
425
 
315
426
  The logger_formatter will be updated when sets logger_format.
@@ -320,7 +431,7 @@ class Configuration(object):
320
431
  return self.__logger_format
321
432
 
322
433
  @logger_format.setter
323
- def logger_format(self, value):
434
+ def logger_format(self, value: str) -> None:
324
435
  """The logger format.
325
436
 
326
437
  The logger_formatter will be updated when sets logger_format.
@@ -331,7 +442,7 @@ class Configuration(object):
331
442
  self.__logger_format = value
332
443
  self.logger_formatter = logging.Formatter(self.__logger_format)
333
444
 
334
- def get_api_key_with_prefix(self, identifier, alias=None):
445
+ def get_api_key_with_prefix(self, identifier: str, alias: Optional[str]=None) -> Optional[str]:
335
446
  """Gets API key (with prefix if set).
336
447
 
337
448
  :param identifier: The identifier of apiKey.
@@ -348,7 +459,9 @@ class Configuration(object):
348
459
  else:
349
460
  return key
350
461
 
351
- def get_basic_auth_token(self):
462
+ return None
463
+
464
+ def get_basic_auth_token(self) -> Optional[str]:
352
465
  """Gets HTTP basic authentication header (string).
353
466
 
354
467
  :return: The token for basic HTTP authentication.
@@ -363,15 +476,15 @@ class Configuration(object):
363
476
  basic_auth=username + ':' + password
364
477
  ).get('authorization')
365
478
 
366
- def auth_settings(self):
479
+ def auth_settings(self)-> AuthSettings:
367
480
  """Gets Auth Settings dict for api client.
368
481
 
369
482
  :return: The Auth Settings information dict.
370
483
  """
371
- auth = {}
484
+ auth: AuthSettings = {}
372
485
  return auth
373
486
 
374
- def to_debug_report(self):
487
+ def to_debug_report(self) -> str:
375
488
  """Gets the essential information for debugging.
376
489
 
377
490
  :return: The report for debugging.
@@ -383,19 +496,32 @@ class Configuration(object):
383
496
  "SDK Package Version: 1.0.0".\
384
497
  format(env=sys.platform, pyversion=sys.version)
385
498
 
386
- def get_host_settings(self):
499
+ def get_host_settings(self) -> List[HostSetting]:
387
500
  """Gets an array of host settings
388
501
 
389
502
  :return: An array of host settings
390
503
  """
391
504
  return [
505
+ {
506
+ 'url': "https://faceapi.regulaforensics.com",
507
+ 'description': "Latest stable Regula face demo endpoint",
508
+ },
509
+ {
510
+ 'url': "https://nightly-faceapi.regulaforensics.com",
511
+ 'description': "Nightly Regula face demo endpoint",
512
+ },
392
513
  {
393
514
  'url': "http://localhost:41101",
394
515
  'description': "Local on-premise installation",
395
516
  }
396
517
  ]
397
518
 
398
- def get_host_from_settings(self, index, variables=None, servers=None):
519
+ def get_host_from_settings(
520
+ self,
521
+ index: Optional[int],
522
+ variables: Optional[ServerVariablesT]=None,
523
+ servers: Optional[List[HostSetting]]=None,
524
+ ) -> str:
399
525
  """Gets host URL based on the index and variables
400
526
  :param index: array index of the host settings
401
527
  :param variables: hash of variable and the corresponding value
@@ -435,12 +561,12 @@ class Configuration(object):
435
561
  return url
436
562
 
437
563
  @property
438
- def host(self):
564
+ def host(self) -> str:
439
565
  """Return generated host."""
440
566
  return self.get_host_from_settings(self.server_index, variables=self.server_variables)
441
567
 
442
568
  @host.setter
443
- def host(self, value):
569
+ def host(self, value: str) -> None:
444
570
  """Fix base path."""
445
571
  self._base_path = value
446
572
  self.server_index = None