onfido-python 4.6.0__py3-none-any.whl → 5.1.0__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 (81) hide show
  1. onfido/__init__.py +7 -4
  2. onfido/api/default_api.py +541 -0
  3. onfido/api_client.py +2 -2
  4. onfido/configuration.py +151 -39
  5. onfido/exceptions.py +17 -0
  6. onfido/models/__init__.py +6 -3
  7. onfido/models/applicant_consent.py +111 -0
  8. onfido/models/applicant_consent_name.py +1 -0
  9. onfido/models/check.py +2 -2
  10. onfido/models/check_response.py +2 -2
  11. onfido/models/check_status.py +1 -0
  12. onfido/models/country_codes.py +1 -0
  13. onfido/models/device_intelligence_breakdown.py +7 -1
  14. onfido/models/device_intelligence_breakdown_breakdown.py +3 -3
  15. onfido/models/{device_intelligence_breakdown_breakdown_device.py → device_intelligence_breakdown_device.py} +6 -6
  16. onfido/models/{device_intelligence_breakdown_breakdown_device_breakdown.py → device_intelligence_breakdown_device_breakdown.py} +4 -4
  17. onfido/models/device_intelligence_breakdown_properties_device.py +13 -13
  18. onfido/models/device_intelligence_properties.py +116 -0
  19. onfido/models/device_intelligence_report.py +8 -12
  20. onfido/models/document.py +2 -12
  21. onfido/models/document_properties.py +15 -11
  22. onfido/models/{document_properties_driving_licence_information.py → document_properties_driving_licence_information_item.py} +4 -4
  23. onfido/models/document_report.py +3 -3
  24. onfido/models/document_report_shared.py +108 -0
  25. onfido/models/document_shared.py +2 -12
  26. onfido/models/document_types.py +1 -0
  27. onfido/models/document_video_report.py +3 -3
  28. onfido/models/document_video_with_address_information_report.py +3 -3
  29. onfido/models/document_with_address_information_report.py +3 -3
  30. onfido/models/document_with_driver_verification_report.py +3 -3
  31. onfido/models/document_with_driver_verification_report_all_of_properties.py +15 -11
  32. onfido/models/document_with_driving_licence_information_report.py +3 -3
  33. onfido/models/extraction_document_classification.py +2 -2
  34. onfido/models/extraction_extracted_data.py +2 -2
  35. onfido/models/facial_similarity_motion_report.py +3 -3
  36. onfido/models/facial_similarity_photo_fully_auto_report.py +3 -3
  37. onfido/models/facial_similarity_photo_report.py +3 -3
  38. onfido/models/facial_similarity_report_shared.py +11 -1
  39. onfido/models/facial_similarity_video_report.py +3 -3
  40. onfido/models/id_number.py +2 -2
  41. onfido/models/identity_enhanced_report.py +1 -11
  42. onfido/models/india_pan_report.py +1 -11
  43. onfido/models/known_faces_report.py +1 -11
  44. onfido/models/proof_of_address_properties.py +2 -2
  45. onfido/models/proof_of_address_report.py +1 -11
  46. onfido/models/repeat_attempts_list_repeat_attempts_inner.py +6 -6
  47. onfido/models/report_name.py +1 -0
  48. onfido/models/report_result.py +1 -0
  49. onfido/models/report_shared.py +1 -11
  50. onfido/models/report_status.py +1 -0
  51. onfido/models/report_sub_result.py +1 -0
  52. onfido/models/results_feedback.py +2 -2
  53. onfido/models/us_driving_licence_builder.py +6 -6
  54. onfido/models/us_driving_licence_report.py +1 -11
  55. onfido/models/us_driving_licence_shared.py +6 -6
  56. onfido/models/watchlist_aml_properties.py +2 -2
  57. onfido/models/watchlist_aml_report.py +1 -11
  58. onfido/models/watchlist_enhanced_report.py +1 -11
  59. onfido/models/watchlist_monitor.py +2 -2
  60. onfido/models/watchlist_monitor_builder.py +2 -2
  61. onfido/models/watchlist_monitor_shared.py +2 -2
  62. onfido/models/watchlist_peps_only_report.py +1 -11
  63. onfido/models/watchlist_sanctions_only_report.py +1 -11
  64. onfido/models/watchlist_standard_properties.py +2 -2
  65. onfido/models/watchlist_standard_report.py +1 -11
  66. onfido/models/webhook.py +11 -1
  67. onfido/models/webhook_builder.py +11 -1
  68. onfido/models/webhook_event_object_status.py +1 -0
  69. onfido/models/webhook_event_payload_object.py +1 -1
  70. onfido/models/webhook_event_resource_type.py +1 -0
  71. onfido/models/webhook_event_type.py +1 -1
  72. onfido/models/webhook_shared.py +12 -2
  73. onfido/models/webhook_updater.py +11 -1
  74. onfido/models/workflow_run_link.py +2 -2
  75. onfido/models/workflow_run_status.py +1 -0
  76. onfido/webhook_event_verifier.py +3 -2
  77. {onfido_python-4.6.0.dist-info → onfido_python-5.1.0.dist-info}/METADATA +3 -2
  78. {onfido_python-4.6.0.dist-info → onfido_python-5.1.0.dist-info}/RECORD +81 -78
  79. {onfido_python-4.6.0.dist-info → onfido_python-5.1.0.dist-info}/WHEEL +1 -1
  80. {onfido_python-4.6.0.dist-info → onfido_python-5.1.0.dist-info/licenses}/LICENSE +0 -0
  81. {onfido_python-4.6.0.dist-info → onfido_python-5.1.0.dist-info}/top_level.txt +0 -0
@@ -43,8 +43,8 @@ class RepeatAttemptsListRepeatAttemptsInner(BaseModel):
43
43
  if value is None:
44
44
  return value
45
45
 
46
- if value not in set(['match', 'mismatch']):
47
- raise ValueError("must be one of enum values ('match', 'mismatch')")
46
+ if value not in set(['match', 'mismatch', 'unknown_default_open_api']):
47
+ raise ValueError("must be one of enum values ('match', 'mismatch', 'unknown_default_open_api')")
48
48
  return value
49
49
 
50
50
  @field_validator('names')
@@ -53,8 +53,8 @@ class RepeatAttemptsListRepeatAttemptsInner(BaseModel):
53
53
  if value is None:
54
54
  return value
55
55
 
56
- if value not in set(['match', 'mismatch']):
57
- raise ValueError("must be one of enum values ('match', 'mismatch')")
56
+ if value not in set(['match', 'mismatch', 'unknown_default_open_api']):
57
+ raise ValueError("must be one of enum values ('match', 'mismatch', 'unknown_default_open_api')")
58
58
  return value
59
59
 
60
60
  @field_validator('result')
@@ -63,8 +63,8 @@ class RepeatAttemptsListRepeatAttemptsInner(BaseModel):
63
63
  if value is None:
64
64
  return value
65
65
 
66
- if value not in set(['clear', 'consider']):
67
- raise ValueError("must be one of enum values ('clear', 'consider')")
66
+ if value not in set(['clear', 'consider', 'unknown_default_open_api']):
67
+ raise ValueError("must be one of enum values ('clear', 'consider', 'unknown_default_open_api')")
68
68
  return value
69
69
 
70
70
  model_config = ConfigDict(
@@ -47,6 +47,7 @@ class ReportName(str, Enum):
47
47
  US_DRIVING_LICENCE = 'us_driving_licence'
48
48
  DEVICE_INTELLIGENCE = 'device_intelligence'
49
49
  INDIA_PAN = 'india_pan'
50
+ UNKNOWN_DEFAULT_OPEN_API = 'unknown_default_open_api'
50
51
 
51
52
  @classmethod
52
53
  def from_json(cls, json_str: str) -> Self:
@@ -29,6 +29,7 @@ class ReportResult(str, Enum):
29
29
  CLEAR = 'clear'
30
30
  CONSIDER = 'consider'
31
31
  UNIDENTIFIED = 'unidentified'
32
+ UNKNOWN_DEFAULT_OPEN_API = 'unknown_default_open_api'
32
33
 
33
34
  @classmethod
34
35
  def from_json(cls, json_str: str) -> Self:
@@ -20,7 +20,6 @@ import json
20
20
  from datetime import datetime
21
21
  from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
22
  from typing import Any, ClassVar, Dict, List, Optional
23
- from onfido.models.report_document import ReportDocument
24
23
  from onfido.models.report_name import ReportName
25
24
  from onfido.models.report_result import ReportResult
26
25
  from onfido.models.report_status import ReportStatus
@@ -39,10 +38,9 @@ class ReportShared(BaseModel):
39
38
  result: Optional[ReportResult] = None
40
39
  sub_result: Optional[ReportSubResult] = None
41
40
  check_id: Optional[StrictStr] = Field(default=None, description="The ID of the check to which the report belongs. Read-only.")
42
- documents: Optional[List[ReportDocument]] = Field(default=None, description="Array of objects with document ids that were used in the Onfido engine. [ONLY POPULATED FOR DOCUMENT AND FACIAL SIMILARITY REPORTS]")
43
41
  name: ReportName
44
42
  additional_properties: Dict[str, Any] = {}
45
- __properties: ClassVar[List[str]] = ["id", "created_at", "href", "status", "result", "sub_result", "check_id", "documents", "name"]
43
+ __properties: ClassVar[List[str]] = ["id", "created_at", "href", "status", "result", "sub_result", "check_id", "name"]
46
44
 
47
45
  model_config = ConfigDict(
48
46
  populate_by_name=True,
@@ -85,13 +83,6 @@ class ReportShared(BaseModel):
85
83
  exclude=excluded_fields,
86
84
  exclude_none=True,
87
85
  )
88
- # override the default output from pydantic by calling `to_dict()` of each item in documents (list)
89
- _items = []
90
- if self.documents:
91
- for _item_documents in self.documents:
92
- if _item_documents:
93
- _items.append(_item_documents.to_dict())
94
- _dict['documents'] = _items
95
86
  # puts key-value pairs in additional_properties in the top level
96
87
  if self.additional_properties is not None:
97
88
  for _key, _value in self.additional_properties.items():
@@ -116,7 +107,6 @@ class ReportShared(BaseModel):
116
107
  "result": obj.get("result"),
117
108
  "sub_result": obj.get("sub_result"),
118
109
  "check_id": obj.get("check_id"),
119
- "documents": [ReportDocument.from_dict(_item) for _item in obj["documents"]] if obj.get("documents") is not None else None,
120
110
  "name": obj.get("name")
121
111
  })
122
112
  # store additional fields in additional_properties
@@ -31,6 +31,7 @@ class ReportStatus(str, Enum):
31
31
  CANCELLED = 'cancelled'
32
32
  COMPLETE = 'complete'
33
33
  WITHDRAWN = 'withdrawn'
34
+ UNKNOWN_DEFAULT_OPEN_API = 'unknown_default_open_api'
34
35
 
35
36
  @classmethod
36
37
  def from_json(cls, json_str: str) -> Self:
@@ -30,6 +30,7 @@ class ReportSubResult(str, Enum):
30
30
  REJECTED = 'rejected'
31
31
  SUSPECTED = 'suspected'
32
32
  CAUTION = 'caution'
33
+ UNKNOWN_DEFAULT_OPEN_API = 'unknown_default_open_api'
33
34
 
34
35
  @classmethod
35
36
  def from_json(cls, json_str: str) -> Self:
@@ -39,8 +39,8 @@ class ResultsFeedback(BaseModel):
39
39
  if value is None:
40
40
  return value
41
41
 
42
- if value not in set(['clear', 'consider']):
43
- raise ValueError("must be one of enum values ('clear', 'consider')")
42
+ if value not in set(['clear', 'consider', 'unknown_default_open_api']):
43
+ raise ValueError("must be one of enum values ('clear', 'consider', 'unknown_default_open_api')")
44
44
  return value
45
45
 
46
46
  model_config = ConfigDict(
@@ -62,8 +62,8 @@ class UsDrivingLicenceBuilder(BaseModel):
62
62
  if value is None:
63
63
  return value
64
64
 
65
- if value not in set(['driver license', 'driver permit', 'id card']):
66
- raise ValueError("must be one of enum values ('driver license', 'driver permit', 'id card')")
65
+ if value not in set(['driver license', 'driver permit', 'id card', 'unknown_default_open_api']):
66
+ raise ValueError("must be one of enum values ('driver license', 'driver permit', 'id card', 'unknown_default_open_api')")
67
67
  return value
68
68
 
69
69
  @field_validator('eye_color_code')
@@ -72,8 +72,8 @@ class UsDrivingLicenceBuilder(BaseModel):
72
72
  if value is None:
73
73
  return value
74
74
 
75
- if value not in set(['BLK', 'BLU', 'BRO', 'DIC', 'GRY', 'GRN', 'HAZ', 'MAR', 'PNK']):
76
- raise ValueError("must be one of enum values ('BLK', 'BLU', 'BRO', 'DIC', 'GRY', 'GRN', 'HAZ', 'MAR', 'PNK')")
75
+ if value not in set(['BLK', 'BLU', 'BRO', 'DIC', 'GRY', 'GRN', 'HAZ', 'MAR', 'PNK', 'unknown_default_open_api']):
76
+ raise ValueError("must be one of enum values ('BLK', 'BLU', 'BRO', 'DIC', 'GRY', 'GRN', 'HAZ', 'MAR', 'PNK', 'unknown_default_open_api')")
77
77
  return value
78
78
 
79
79
  @field_validator('gender')
@@ -82,8 +82,8 @@ class UsDrivingLicenceBuilder(BaseModel):
82
82
  if value is None:
83
83
  return value
84
84
 
85
- if value not in set(['Male', 'Female']):
86
- raise ValueError("must be one of enum values ('Male', 'Female')")
85
+ if value not in set(['Male', 'Female', 'unknown_default_open_api']):
86
+ raise ValueError("must be one of enum values ('Male', 'Female', 'unknown_default_open_api')")
87
87
  return value
88
88
 
89
89
  @field_validator('state')
@@ -21,7 +21,6 @@ from datetime import datetime
21
21
  from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
22
  from typing import Any, ClassVar, Dict, List, Optional
23
23
  from onfido.models.document_properties import DocumentProperties
24
- from onfido.models.report_document import ReportDocument
25
24
  from onfido.models.report_name import ReportName
26
25
  from onfido.models.report_result import ReportResult
27
26
  from onfido.models.report_status import ReportStatus
@@ -41,12 +40,11 @@ class UsDrivingLicenceReport(BaseModel):
41
40
  result: Optional[ReportResult] = None
42
41
  sub_result: Optional[ReportSubResult] = None
43
42
  check_id: Optional[StrictStr] = Field(default=None, description="The ID of the check to which the report belongs. Read-only.")
44
- documents: Optional[List[ReportDocument]] = Field(default=None, description="Array of objects with document ids that were used in the Onfido engine. [ONLY POPULATED FOR DOCUMENT AND FACIAL SIMILARITY REPORTS]")
45
43
  name: ReportName
46
44
  breakdown: Optional[UsDrivingLicenceBreakdown] = None
47
45
  properties: Optional[DocumentProperties] = None
48
46
  additional_properties: Dict[str, Any] = {}
49
- __properties: ClassVar[List[str]] = ["id", "created_at", "href", "status", "result", "sub_result", "check_id", "documents", "name", "breakdown", "properties"]
47
+ __properties: ClassVar[List[str]] = ["id", "created_at", "href", "status", "result", "sub_result", "check_id", "name", "breakdown", "properties"]
50
48
 
51
49
  model_config = ConfigDict(
52
50
  populate_by_name=True,
@@ -89,13 +87,6 @@ class UsDrivingLicenceReport(BaseModel):
89
87
  exclude=excluded_fields,
90
88
  exclude_none=True,
91
89
  )
92
- # override the default output from pydantic by calling `to_dict()` of each item in documents (list)
93
- _items = []
94
- if self.documents:
95
- for _item_documents in self.documents:
96
- if _item_documents:
97
- _items.append(_item_documents.to_dict())
98
- _dict['documents'] = _items
99
90
  # override the default output from pydantic by calling `to_dict()` of breakdown
100
91
  if self.breakdown:
101
92
  _dict['breakdown'] = self.breakdown.to_dict()
@@ -126,7 +117,6 @@ class UsDrivingLicenceReport(BaseModel):
126
117
  "result": obj.get("result"),
127
118
  "sub_result": obj.get("sub_result"),
128
119
  "check_id": obj.get("check_id"),
129
- "documents": [ReportDocument.from_dict(_item) for _item in obj["documents"]] if obj.get("documents") is not None else None,
130
120
  "name": obj.get("name"),
131
121
  "breakdown": UsDrivingLicenceBreakdown.from_dict(obj["breakdown"]) if obj.get("breakdown") is not None else None,
132
122
  "properties": DocumentProperties.from_dict(obj["properties"]) if obj.get("properties") is not None else None
@@ -62,8 +62,8 @@ class UsDrivingLicenceShared(BaseModel):
62
62
  if value is None:
63
63
  return value
64
64
 
65
- if value not in set(['driver license', 'driver permit', 'id card']):
66
- raise ValueError("must be one of enum values ('driver license', 'driver permit', 'id card')")
65
+ if value not in set(['driver license', 'driver permit', 'id card', 'unknown_default_open_api']):
66
+ raise ValueError("must be one of enum values ('driver license', 'driver permit', 'id card', 'unknown_default_open_api')")
67
67
  return value
68
68
 
69
69
  @field_validator('eye_color_code')
@@ -72,8 +72,8 @@ class UsDrivingLicenceShared(BaseModel):
72
72
  if value is None:
73
73
  return value
74
74
 
75
- if value not in set(['BLK', 'BLU', 'BRO', 'DIC', 'GRY', 'GRN', 'HAZ', 'MAR', 'PNK']):
76
- raise ValueError("must be one of enum values ('BLK', 'BLU', 'BRO', 'DIC', 'GRY', 'GRN', 'HAZ', 'MAR', 'PNK')")
75
+ if value not in set(['BLK', 'BLU', 'BRO', 'DIC', 'GRY', 'GRN', 'HAZ', 'MAR', 'PNK', 'unknown_default_open_api']):
76
+ raise ValueError("must be one of enum values ('BLK', 'BLU', 'BRO', 'DIC', 'GRY', 'GRN', 'HAZ', 'MAR', 'PNK', 'unknown_default_open_api')")
77
77
  return value
78
78
 
79
79
  @field_validator('gender')
@@ -82,8 +82,8 @@ class UsDrivingLicenceShared(BaseModel):
82
82
  if value is None:
83
83
  return value
84
84
 
85
- if value not in set(['Male', 'Female']):
86
- raise ValueError("must be one of enum values ('Male', 'Female')")
85
+ if value not in set(['Male', 'Female', 'unknown_default_open_api']):
86
+ raise ValueError("must be one of enum values ('Male', 'Female', 'unknown_default_open_api')")
87
87
  return value
88
88
 
89
89
  @field_validator('state')
@@ -17,7 +17,7 @@ import pprint
17
17
  import re # noqa: F401
18
18
  import json
19
19
 
20
- from pydantic import BaseModel, ConfigDict, Field, StrictStr
20
+ from pydantic import BaseModel, ConfigDict, Field
21
21
  from typing import Any, ClassVar, Dict, List, Optional
22
22
  from typing import Optional, Set
23
23
  from typing_extensions import Self
@@ -26,7 +26,7 @@ class WatchlistAmlProperties(BaseModel):
26
26
  """
27
27
  WatchlistAmlProperties
28
28
  """ # noqa: E501
29
- records: Optional[List[StrictStr]] = Field(default=None, description="Returns any matches including, but not limited to, name and date of birth of match, aliases and associates, and relevant events and sources.")
29
+ records: Optional[List[Dict[str, Any]]] = Field(default=None, description="Returns any matches including, but not limited to, name and date of birth of match, aliases and associates, and relevant events and sources.")
30
30
  additional_properties: Dict[str, Any] = {}
31
31
  __properties: ClassVar[List[str]] = ["records"]
32
32
 
@@ -20,7 +20,6 @@ import json
20
20
  from datetime import datetime
21
21
  from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
22
  from typing import Any, ClassVar, Dict, List, Optional
23
- from onfido.models.report_document import ReportDocument
24
23
  from onfido.models.report_name import ReportName
25
24
  from onfido.models.report_result import ReportResult
26
25
  from onfido.models.report_status import ReportStatus
@@ -41,12 +40,11 @@ class WatchlistAmlReport(BaseModel):
41
40
  result: Optional[ReportResult] = None
42
41
  sub_result: Optional[ReportSubResult] = None
43
42
  check_id: Optional[StrictStr] = Field(default=None, description="The ID of the check to which the report belongs. Read-only.")
44
- documents: Optional[List[ReportDocument]] = Field(default=None, description="Array of objects with document ids that were used in the Onfido engine. [ONLY POPULATED FOR DOCUMENT AND FACIAL SIMILARITY REPORTS]")
45
43
  name: ReportName
46
44
  breakdown: Optional[WatchlistAmlBreakdown] = None
47
45
  properties: Optional[WatchlistAmlProperties] = None
48
46
  additional_properties: Dict[str, Any] = {}
49
- __properties: ClassVar[List[str]] = ["id", "created_at", "href", "status", "result", "sub_result", "check_id", "documents", "name", "breakdown", "properties"]
47
+ __properties: ClassVar[List[str]] = ["id", "created_at", "href", "status", "result", "sub_result", "check_id", "name", "breakdown", "properties"]
50
48
 
51
49
  model_config = ConfigDict(
52
50
  populate_by_name=True,
@@ -89,13 +87,6 @@ class WatchlistAmlReport(BaseModel):
89
87
  exclude=excluded_fields,
90
88
  exclude_none=True,
91
89
  )
92
- # override the default output from pydantic by calling `to_dict()` of each item in documents (list)
93
- _items = []
94
- if self.documents:
95
- for _item_documents in self.documents:
96
- if _item_documents:
97
- _items.append(_item_documents.to_dict())
98
- _dict['documents'] = _items
99
90
  # override the default output from pydantic by calling `to_dict()` of breakdown
100
91
  if self.breakdown:
101
92
  _dict['breakdown'] = self.breakdown.to_dict()
@@ -126,7 +117,6 @@ class WatchlistAmlReport(BaseModel):
126
117
  "result": obj.get("result"),
127
118
  "sub_result": obj.get("sub_result"),
128
119
  "check_id": obj.get("check_id"),
129
- "documents": [ReportDocument.from_dict(_item) for _item in obj["documents"]] if obj.get("documents") is not None else None,
130
120
  "name": obj.get("name"),
131
121
  "breakdown": WatchlistAmlBreakdown.from_dict(obj["breakdown"]) if obj.get("breakdown") is not None else None,
132
122
  "properties": WatchlistAmlProperties.from_dict(obj["properties"]) if obj.get("properties") is not None else None
@@ -20,7 +20,6 @@ import json
20
20
  from datetime import datetime
21
21
  from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
22
  from typing import Any, ClassVar, Dict, List, Optional
23
- from onfido.models.report_document import ReportDocument
24
23
  from onfido.models.report_name import ReportName
25
24
  from onfido.models.report_result import ReportResult
26
25
  from onfido.models.report_status import ReportStatus
@@ -41,12 +40,11 @@ class WatchlistEnhancedReport(BaseModel):
41
40
  result: Optional[ReportResult] = None
42
41
  sub_result: Optional[ReportSubResult] = None
43
42
  check_id: Optional[StrictStr] = Field(default=None, description="The ID of the check to which the report belongs. Read-only.")
44
- documents: Optional[List[ReportDocument]] = Field(default=None, description="Array of objects with document ids that were used in the Onfido engine. [ONLY POPULATED FOR DOCUMENT AND FACIAL SIMILARITY REPORTS]")
45
43
  name: ReportName
46
44
  breakdown: Optional[WatchlistEnhancedBreakdown] = None
47
45
  properties: Optional[WatchlistEnhancedProperties] = None
48
46
  additional_properties: Dict[str, Any] = {}
49
- __properties: ClassVar[List[str]] = ["id", "created_at", "href", "status", "result", "sub_result", "check_id", "documents", "name", "breakdown", "properties"]
47
+ __properties: ClassVar[List[str]] = ["id", "created_at", "href", "status", "result", "sub_result", "check_id", "name", "breakdown", "properties"]
50
48
 
51
49
  model_config = ConfigDict(
52
50
  populate_by_name=True,
@@ -89,13 +87,6 @@ class WatchlistEnhancedReport(BaseModel):
89
87
  exclude=excluded_fields,
90
88
  exclude_none=True,
91
89
  )
92
- # override the default output from pydantic by calling `to_dict()` of each item in documents (list)
93
- _items = []
94
- if self.documents:
95
- for _item_documents in self.documents:
96
- if _item_documents:
97
- _items.append(_item_documents.to_dict())
98
- _dict['documents'] = _items
99
90
  # override the default output from pydantic by calling `to_dict()` of breakdown
100
91
  if self.breakdown:
101
92
  _dict['breakdown'] = self.breakdown.to_dict()
@@ -126,7 +117,6 @@ class WatchlistEnhancedReport(BaseModel):
126
117
  "result": obj.get("result"),
127
118
  "sub_result": obj.get("sub_result"),
128
119
  "check_id": obj.get("check_id"),
129
- "documents": [ReportDocument.from_dict(_item) for _item in obj["documents"]] if obj.get("documents") is not None else None,
130
120
  "name": obj.get("name"),
131
121
  "breakdown": WatchlistEnhancedBreakdown.from_dict(obj["breakdown"]) if obj.get("breakdown") is not None else None,
132
122
  "properties": WatchlistEnhancedProperties.from_dict(obj["properties"]) if obj.get("properties") is not None else None
@@ -40,8 +40,8 @@ class WatchlistMonitor(BaseModel):
40
40
  @field_validator('report_name')
41
41
  def report_name_validate_enum(cls, value):
42
42
  """Validates the enum"""
43
- if value not in set(['watchlist_standard', 'watchlist_aml']):
44
- raise ValueError("must be one of enum values ('watchlist_standard', 'watchlist_aml')")
43
+ if value not in set(['watchlist_standard', 'watchlist_aml', 'unknown_default_open_api']):
44
+ raise ValueError("must be one of enum values ('watchlist_standard', 'watchlist_aml', 'unknown_default_open_api')")
45
45
  return value
46
46
 
47
47
  model_config = ConfigDict(
@@ -35,8 +35,8 @@ class WatchlistMonitorBuilder(BaseModel):
35
35
  @field_validator('report_name')
36
36
  def report_name_validate_enum(cls, value):
37
37
  """Validates the enum"""
38
- if value not in set(['watchlist_standard', 'watchlist_aml']):
39
- raise ValueError("must be one of enum values ('watchlist_standard', 'watchlist_aml')")
38
+ if value not in set(['watchlist_standard', 'watchlist_aml', 'unknown_default_open_api']):
39
+ raise ValueError("must be one of enum values ('watchlist_standard', 'watchlist_aml', 'unknown_default_open_api')")
40
40
  return value
41
41
 
42
42
  model_config = ConfigDict(
@@ -35,8 +35,8 @@ class WatchlistMonitorShared(BaseModel):
35
35
  @field_validator('report_name')
36
36
  def report_name_validate_enum(cls, value):
37
37
  """Validates the enum"""
38
- if value not in set(['watchlist_standard', 'watchlist_aml']):
39
- raise ValueError("must be one of enum values ('watchlist_standard', 'watchlist_aml')")
38
+ if value not in set(['watchlist_standard', 'watchlist_aml', 'unknown_default_open_api']):
39
+ raise ValueError("must be one of enum values ('watchlist_standard', 'watchlist_aml', 'unknown_default_open_api')")
40
40
  return value
41
41
 
42
42
  model_config = ConfigDict(
@@ -20,7 +20,6 @@ import json
20
20
  from datetime import datetime
21
21
  from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
22
  from typing import Any, ClassVar, Dict, List, Optional
23
- from onfido.models.report_document import ReportDocument
24
23
  from onfido.models.report_name import ReportName
25
24
  from onfido.models.report_result import ReportResult
26
25
  from onfido.models.report_status import ReportStatus
@@ -41,12 +40,11 @@ class WatchlistPepsOnlyReport(BaseModel):
41
40
  result: Optional[ReportResult] = None
42
41
  sub_result: Optional[ReportSubResult] = None
43
42
  check_id: Optional[StrictStr] = Field(default=None, description="The ID of the check to which the report belongs. Read-only.")
44
- documents: Optional[List[ReportDocument]] = Field(default=None, description="Array of objects with document ids that were used in the Onfido engine. [ONLY POPULATED FOR DOCUMENT AND FACIAL SIMILARITY REPORTS]")
45
43
  name: ReportName
46
44
  breakdown: Optional[WatchlistStandardBreakdown] = None
47
45
  properties: Optional[WatchlistStandardProperties] = None
48
46
  additional_properties: Dict[str, Any] = {}
49
- __properties: ClassVar[List[str]] = ["id", "created_at", "href", "status", "result", "sub_result", "check_id", "documents", "name", "breakdown", "properties"]
47
+ __properties: ClassVar[List[str]] = ["id", "created_at", "href", "status", "result", "sub_result", "check_id", "name", "breakdown", "properties"]
50
48
 
51
49
  model_config = ConfigDict(
52
50
  populate_by_name=True,
@@ -89,13 +87,6 @@ class WatchlistPepsOnlyReport(BaseModel):
89
87
  exclude=excluded_fields,
90
88
  exclude_none=True,
91
89
  )
92
- # override the default output from pydantic by calling `to_dict()` of each item in documents (list)
93
- _items = []
94
- if self.documents:
95
- for _item_documents in self.documents:
96
- if _item_documents:
97
- _items.append(_item_documents.to_dict())
98
- _dict['documents'] = _items
99
90
  # override the default output from pydantic by calling `to_dict()` of breakdown
100
91
  if self.breakdown:
101
92
  _dict['breakdown'] = self.breakdown.to_dict()
@@ -126,7 +117,6 @@ class WatchlistPepsOnlyReport(BaseModel):
126
117
  "result": obj.get("result"),
127
118
  "sub_result": obj.get("sub_result"),
128
119
  "check_id": obj.get("check_id"),
129
- "documents": [ReportDocument.from_dict(_item) for _item in obj["documents"]] if obj.get("documents") is not None else None,
130
120
  "name": obj.get("name"),
131
121
  "breakdown": WatchlistStandardBreakdown.from_dict(obj["breakdown"]) if obj.get("breakdown") is not None else None,
132
122
  "properties": WatchlistStandardProperties.from_dict(obj["properties"]) if obj.get("properties") is not None else None
@@ -20,7 +20,6 @@ import json
20
20
  from datetime import datetime
21
21
  from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
22
  from typing import Any, ClassVar, Dict, List, Optional
23
- from onfido.models.report_document import ReportDocument
24
23
  from onfido.models.report_name import ReportName
25
24
  from onfido.models.report_result import ReportResult
26
25
  from onfido.models.report_status import ReportStatus
@@ -41,12 +40,11 @@ class WatchlistSanctionsOnlyReport(BaseModel):
41
40
  result: Optional[ReportResult] = None
42
41
  sub_result: Optional[ReportSubResult] = None
43
42
  check_id: Optional[StrictStr] = Field(default=None, description="The ID of the check to which the report belongs. Read-only.")
44
- documents: Optional[List[ReportDocument]] = Field(default=None, description="Array of objects with document ids that were used in the Onfido engine. [ONLY POPULATED FOR DOCUMENT AND FACIAL SIMILARITY REPORTS]")
45
43
  name: ReportName
46
44
  breakdown: Optional[WatchlistStandardBreakdown] = None
47
45
  properties: Optional[WatchlistStandardProperties] = None
48
46
  additional_properties: Dict[str, Any] = {}
49
- __properties: ClassVar[List[str]] = ["id", "created_at", "href", "status", "result", "sub_result", "check_id", "documents", "name", "breakdown", "properties"]
47
+ __properties: ClassVar[List[str]] = ["id", "created_at", "href", "status", "result", "sub_result", "check_id", "name", "breakdown", "properties"]
50
48
 
51
49
  model_config = ConfigDict(
52
50
  populate_by_name=True,
@@ -89,13 +87,6 @@ class WatchlistSanctionsOnlyReport(BaseModel):
89
87
  exclude=excluded_fields,
90
88
  exclude_none=True,
91
89
  )
92
- # override the default output from pydantic by calling `to_dict()` of each item in documents (list)
93
- _items = []
94
- if self.documents:
95
- for _item_documents in self.documents:
96
- if _item_documents:
97
- _items.append(_item_documents.to_dict())
98
- _dict['documents'] = _items
99
90
  # override the default output from pydantic by calling `to_dict()` of breakdown
100
91
  if self.breakdown:
101
92
  _dict['breakdown'] = self.breakdown.to_dict()
@@ -126,7 +117,6 @@ class WatchlistSanctionsOnlyReport(BaseModel):
126
117
  "result": obj.get("result"),
127
118
  "sub_result": obj.get("sub_result"),
128
119
  "check_id": obj.get("check_id"),
129
- "documents": [ReportDocument.from_dict(_item) for _item in obj["documents"]] if obj.get("documents") is not None else None,
130
120
  "name": obj.get("name"),
131
121
  "breakdown": WatchlistStandardBreakdown.from_dict(obj["breakdown"]) if obj.get("breakdown") is not None else None,
132
122
  "properties": WatchlistStandardProperties.from_dict(obj["properties"]) if obj.get("properties") is not None else None
@@ -17,7 +17,7 @@ import pprint
17
17
  import re # noqa: F401
18
18
  import json
19
19
 
20
- from pydantic import BaseModel, ConfigDict, Field, StrictStr
20
+ from pydantic import BaseModel, ConfigDict, Field
21
21
  from typing import Any, ClassVar, Dict, List, Optional
22
22
  from typing import Optional, Set
23
23
  from typing_extensions import Self
@@ -26,7 +26,7 @@ class WatchlistStandardProperties(BaseModel):
26
26
  """
27
27
  WatchlistStandardProperties
28
28
  """ # noqa: E501
29
- records: Optional[List[StrictStr]] = Field(default=None, description="Returns any matches including, but not limited to, name and date of birth of match, aliases and associates, and relevant events and sources.")
29
+ records: Optional[List[Dict[str, Any]]] = Field(default=None, description="Returns any matches including, but not limited to, name and date of birth of match, aliases and associates, and relevant events and sources.")
30
30
  additional_properties: Dict[str, Any] = {}
31
31
  __properties: ClassVar[List[str]] = ["records"]
32
32
 
@@ -20,7 +20,6 @@ import json
20
20
  from datetime import datetime
21
21
  from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
22
  from typing import Any, ClassVar, Dict, List, Optional
23
- from onfido.models.report_document import ReportDocument
24
23
  from onfido.models.report_name import ReportName
25
24
  from onfido.models.report_result import ReportResult
26
25
  from onfido.models.report_status import ReportStatus
@@ -41,12 +40,11 @@ class WatchlistStandardReport(BaseModel):
41
40
  result: Optional[ReportResult] = None
42
41
  sub_result: Optional[ReportSubResult] = None
43
42
  check_id: Optional[StrictStr] = Field(default=None, description="The ID of the check to which the report belongs. Read-only.")
44
- documents: Optional[List[ReportDocument]] = Field(default=None, description="Array of objects with document ids that were used in the Onfido engine. [ONLY POPULATED FOR DOCUMENT AND FACIAL SIMILARITY REPORTS]")
45
43
  name: ReportName
46
44
  breakdown: Optional[WatchlistStandardBreakdown] = None
47
45
  properties: Optional[WatchlistStandardProperties] = None
48
46
  additional_properties: Dict[str, Any] = {}
49
- __properties: ClassVar[List[str]] = ["id", "created_at", "href", "status", "result", "sub_result", "check_id", "documents", "name", "breakdown", "properties"]
47
+ __properties: ClassVar[List[str]] = ["id", "created_at", "href", "status", "result", "sub_result", "check_id", "name", "breakdown", "properties"]
50
48
 
51
49
  model_config = ConfigDict(
52
50
  populate_by_name=True,
@@ -89,13 +87,6 @@ class WatchlistStandardReport(BaseModel):
89
87
  exclude=excluded_fields,
90
88
  exclude_none=True,
91
89
  )
92
- # override the default output from pydantic by calling `to_dict()` of each item in documents (list)
93
- _items = []
94
- if self.documents:
95
- for _item_documents in self.documents:
96
- if _item_documents:
97
- _items.append(_item_documents.to_dict())
98
- _dict['documents'] = _items
99
90
  # override the default output from pydantic by calling `to_dict()` of breakdown
100
91
  if self.breakdown:
101
92
  _dict['breakdown'] = self.breakdown.to_dict()
@@ -126,7 +117,6 @@ class WatchlistStandardReport(BaseModel):
126
117
  "result": obj.get("result"),
127
118
  "sub_result": obj.get("sub_result"),
128
119
  "check_id": obj.get("check_id"),
129
- "documents": [ReportDocument.from_dict(_item) for _item in obj["documents"]] if obj.get("documents") is not None else None,
130
120
  "name": obj.get("name"),
131
121
  "breakdown": WatchlistStandardBreakdown.from_dict(obj["breakdown"]) if obj.get("breakdown") is not None else None,
132
122
  "properties": WatchlistStandardProperties.from_dict(obj["properties"]) if obj.get("properties") is not None else None
onfido/models/webhook.py CHANGED
@@ -31,12 +31,17 @@ class Webhook(BaseModel):
31
31
  events: Optional[List[WebhookEventType]] = Field(default=None, description="The events that will be published to the webhook. If the events parameter is omitted all the events will be subscribed. ")
32
32
  environments: Optional[List[StrictStr]] = Field(default=None, description="The environments from which the webhook will receive events. Allowed values are “sandbox” and “live”. If the environments parameter is omitted the webhook will receive events from both environments. ")
33
33
  payload_version: Optional[StrictInt] = Field(default=None, description="Webhook version used to control the payload object when sending webhooks.")
34
+ oauth_enabled: Optional[StrictBool] = Field(default=None, description="Determines if the webhook will fetch OAuth access tokens to send in the Authorization header.")
35
+ oauth_server_url: Optional[StrictStr] = Field(default=None, description="The url to fetch the OAuth access token using client credentials grant.")
36
+ oauth_server_client_id: Optional[StrictStr] = Field(default=None, description="The client id to authenticate the client credentials grant.")
37
+ oauth_server_client_secret: Optional[StrictStr] = Field(default=None, description="The client secret to authenticate the client credentials grant.")
38
+ oauth_server_scope: Optional[StrictStr] = Field(default=None, description="The scopes to be sent when requesting the access token.")
34
39
  id: StrictStr = Field(description="The unique identifier of the webhook.")
35
40
  url: Optional[StrictStr] = Field(default=None, description="The url that will listen to notifications (must be https).")
36
41
  token: Optional[StrictStr] = Field(default=None, description="Webhook secret token used to sign the webhook's payload.")
37
42
  href: Optional[StrictStr] = Field(default=None, description="The API endpoint to retrieve the webhook.")
38
43
  additional_properties: Dict[str, Any] = {}
39
- __properties: ClassVar[List[str]] = ["enabled", "events", "environments", "payload_version", "id", "url", "token", "href"]
44
+ __properties: ClassVar[List[str]] = ["enabled", "events", "environments", "payload_version", "oauth_enabled", "oauth_server_url", "oauth_server_client_id", "oauth_server_client_secret", "oauth_server_scope", "id", "url", "token", "href"]
40
45
 
41
46
  model_config = ConfigDict(
42
47
  populate_by_name=True,
@@ -100,6 +105,11 @@ class Webhook(BaseModel):
100
105
  "events": obj.get("events"),
101
106
  "environments": obj.get("environments"),
102
107
  "payload_version": obj.get("payload_version"),
108
+ "oauth_enabled": obj.get("oauth_enabled"),
109
+ "oauth_server_url": obj.get("oauth_server_url"),
110
+ "oauth_server_client_id": obj.get("oauth_server_client_id"),
111
+ "oauth_server_client_secret": obj.get("oauth_server_client_secret"),
112
+ "oauth_server_scope": obj.get("oauth_server_scope"),
103
113
  "id": obj.get("id"),
104
114
  "url": obj.get("url"),
105
115
  "token": obj.get("token"),
@@ -31,9 +31,14 @@ class WebhookBuilder(BaseModel):
31
31
  events: Optional[List[WebhookEventType]] = Field(default=None, description="The events that will be published to the webhook. If the events parameter is omitted all the events will be subscribed. ")
32
32
  environments: Optional[List[StrictStr]] = Field(default=None, description="The environments from which the webhook will receive events. Allowed values are “sandbox” and “live”. If the environments parameter is omitted the webhook will receive events from both environments. ")
33
33
  payload_version: Optional[StrictInt] = Field(default=None, description="Webhook version used to control the payload object when sending webhooks.")
34
+ oauth_enabled: Optional[StrictBool] = Field(default=None, description="Determines if the webhook will fetch OAuth access tokens to send in the Authorization header.")
35
+ oauth_server_url: Optional[StrictStr] = Field(default=None, description="The url to fetch the OAuth access token using client credentials grant.")
36
+ oauth_server_client_id: Optional[StrictStr] = Field(default=None, description="The client id to authenticate the client credentials grant.")
37
+ oauth_server_client_secret: Optional[StrictStr] = Field(default=None, description="The client secret to authenticate the client credentials grant.")
38
+ oauth_server_scope: Optional[StrictStr] = Field(default=None, description="The scopes to be sent when requesting the access token.")
34
39
  url: StrictStr = Field(description="The url that will listen to notifications (must be https).")
35
40
  additional_properties: Dict[str, Any] = {}
36
- __properties: ClassVar[List[str]] = ["enabled", "events", "environments", "payload_version", "url"]
41
+ __properties: ClassVar[List[str]] = ["enabled", "events", "environments", "payload_version", "oauth_enabled", "oauth_server_url", "oauth_server_client_id", "oauth_server_client_secret", "oauth_server_scope", "url"]
37
42
 
38
43
  model_config = ConfigDict(
39
44
  populate_by_name=True,
@@ -97,6 +102,11 @@ class WebhookBuilder(BaseModel):
97
102
  "events": obj.get("events"),
98
103
  "environments": obj.get("environments"),
99
104
  "payload_version": obj.get("payload_version"),
105
+ "oauth_enabled": obj.get("oauth_enabled"),
106
+ "oauth_server_url": obj.get("oauth_server_url"),
107
+ "oauth_server_client_id": obj.get("oauth_server_client_id"),
108
+ "oauth_server_client_secret": obj.get("oauth_server_client_secret"),
109
+ "oauth_server_scope": obj.get("oauth_server_scope"),
100
110
  "url": obj.get("url")
101
111
  })
102
112
  # store additional fields in additional_properties
@@ -45,6 +45,7 @@ class WebhookEventObjectStatus(str, Enum):
45
45
  AWAITING_APPLICANT = 'awaiting_applicant'
46
46
  PAUSED = 'paused'
47
47
  REOPENED = 'reopened'
48
+ UNKNOWN_DEFAULT_OPEN_API = 'unknown_default_open_api'
48
49
 
49
50
  @classmethod
50
51
  def from_json(cls, json_str: str) -> Self:
@@ -32,7 +32,7 @@ class WebhookEventPayloadObject(BaseModel):
32
32
  status: Optional[WebhookEventObjectStatus] = None
33
33
  started_at_iso8601: Optional[datetime] = Field(default=None, description="The date and time when the operation was started, if available.")
34
34
  completed_at_iso8601: Optional[datetime] = Field(default=None, description="The date and time when the operation was completed, if available.")
35
- href: StrictStr = Field(description="The uri of the resource.")
35
+ href: Optional[StrictStr] = Field(default=None, description="The uri of the resource.")
36
36
  additional_properties: Dict[str, Any] = {}
37
37
  __properties: ClassVar[List[str]] = ["id", "status", "started_at_iso8601", "completed_at_iso8601", "href"]
38
38
 
@@ -34,6 +34,7 @@ class WebhookEventResourceType(str, Enum):
34
34
  WATCHLIST_MONITOR = 'watchlist_monitor'
35
35
  WORKFLOW_TIMELINE_FILE = 'workflow_timeline_file'
36
36
  WORKFLOW_RUN_EVIDENCE_FOLDER = 'workflow_run_evidence_folder'
37
+ UNKNOWN_DEFAULT_OPEN_API = 'unknown_default_open_api'
37
38
 
38
39
  @classmethod
39
40
  def from_json(cls, json_str: str) -> Self: