dataleon 0.1.0a8__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.

Potentially problematic release.


This version of dataleon might be problematic. Click here for more details.

Files changed (60) hide show
  1. dataleon/__init__.py +102 -0
  2. dataleon/_base_client.py +1995 -0
  3. dataleon/_client.py +412 -0
  4. dataleon/_compat.py +219 -0
  5. dataleon/_constants.py +14 -0
  6. dataleon/_exceptions.py +108 -0
  7. dataleon/_files.py +123 -0
  8. dataleon/_models.py +840 -0
  9. dataleon/_qs.py +150 -0
  10. dataleon/_resource.py +43 -0
  11. dataleon/_response.py +830 -0
  12. dataleon/_streaming.py +331 -0
  13. dataleon/_types.py +260 -0
  14. dataleon/_utils/__init__.py +64 -0
  15. dataleon/_utils/_compat.py +45 -0
  16. dataleon/_utils/_datetime_parse.py +136 -0
  17. dataleon/_utils/_logs.py +25 -0
  18. dataleon/_utils/_proxy.py +65 -0
  19. dataleon/_utils/_reflection.py +42 -0
  20. dataleon/_utils/_resources_proxy.py +24 -0
  21. dataleon/_utils/_streams.py +12 -0
  22. dataleon/_utils/_sync.py +58 -0
  23. dataleon/_utils/_transform.py +457 -0
  24. dataleon/_utils/_typing.py +156 -0
  25. dataleon/_utils/_utils.py +421 -0
  26. dataleon/_version.py +4 -0
  27. dataleon/lib/.keep +4 -0
  28. dataleon/py.typed +0 -0
  29. dataleon/resources/__init__.py +33 -0
  30. dataleon/resources/companies/__init__.py +33 -0
  31. dataleon/resources/companies/companies.py +706 -0
  32. dataleon/resources/companies/documents.py +361 -0
  33. dataleon/resources/individuals/__init__.py +33 -0
  34. dataleon/resources/individuals/documents.py +361 -0
  35. dataleon/resources/individuals/individuals.py +711 -0
  36. dataleon/types/__init__.py +17 -0
  37. dataleon/types/companies/__init__.py +5 -0
  38. dataleon/types/companies/document_upload_params.py +56 -0
  39. dataleon/types/company_create_params.py +101 -0
  40. dataleon/types/company_list_params.py +37 -0
  41. dataleon/types/company_list_response.py +10 -0
  42. dataleon/types/company_registration.py +439 -0
  43. dataleon/types/company_retrieve_params.py +15 -0
  44. dataleon/types/company_update_params.py +101 -0
  45. dataleon/types/individual.py +336 -0
  46. dataleon/types/individual_create_params.py +78 -0
  47. dataleon/types/individual_list_params.py +37 -0
  48. dataleon/types/individual_list_response.py +10 -0
  49. dataleon/types/individual_retrieve_params.py +15 -0
  50. dataleon/types/individual_update_params.py +78 -0
  51. dataleon/types/individuals/__init__.py +7 -0
  52. dataleon/types/individuals/document_response.py +41 -0
  53. dataleon/types/individuals/document_upload_params.py +56 -0
  54. dataleon/types/individuals/generic_document.py +57 -0
  55. dataleon/types/shared/__init__.py +3 -0
  56. dataleon/types/shared/check.py +26 -0
  57. dataleon-0.1.0a8.dist-info/METADATA +448 -0
  58. dataleon-0.1.0a8.dist-info/RECORD +60 -0
  59. dataleon-0.1.0a8.dist-info/WHEEL +4 -0
  60. dataleon-0.1.0a8.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,101 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import List
6
+ from typing_extensions import Literal, Required, TypedDict
7
+
8
+ __all__ = ["CompanyUpdateParams", "Company", "TechnicalData"]
9
+
10
+
11
+ class CompanyUpdateParams(TypedDict, total=False):
12
+ company: Required[Company]
13
+ """Main information about the company being registered."""
14
+
15
+ workspace_id: Required[str]
16
+ """Unique identifier of the workspace in which the company is being created."""
17
+
18
+ source_id: str
19
+ """
20
+ Optional identifier to track the origin of the request or integration from your
21
+ system.
22
+ """
23
+
24
+ technical_data: TechnicalData
25
+ """Technical metadata and callback configuration."""
26
+
27
+
28
+ class Company(TypedDict, total=False):
29
+ name: Required[str]
30
+ """Legal name of the company."""
31
+
32
+ address: str
33
+ """Registered address of the company."""
34
+
35
+ commercial_name: str
36
+ """Commercial or trade name of the company, if different from the legal name."""
37
+
38
+ country: str
39
+ """
40
+ ISO 3166-1 alpha-2 country code of company registration (e.g., "FR" for France).
41
+ """
42
+
43
+ email: str
44
+ """Contact email address for the company."""
45
+
46
+ employer_identification_number: str
47
+ """Employer Identification Number (EIN) or equivalent."""
48
+
49
+ legal_form: str
50
+ """Legal structure of the company (e.g., SARL, SAS)."""
51
+
52
+ phone_number: str
53
+ """Contact phone number for the company."""
54
+
55
+ registration_date: str
56
+ """Date of official company registration in YYYY-MM-DD format."""
57
+
58
+ registration_id: str
59
+ """Official company registration identifier."""
60
+
61
+ share_capital: str
62
+ """Declared share capital of the company, usually in euros."""
63
+
64
+ status: str
65
+ """Current status of the company (e.g., active, inactive)."""
66
+
67
+ tax_identification_number: str
68
+ """National tax identifier (e.g., VAT or TIN)."""
69
+
70
+ type: str
71
+ """Type of company, such as "main" or "affiliated"."""
72
+
73
+ website_url: str
74
+ """Company’s official website URL."""
75
+
76
+
77
+ class TechnicalData(TypedDict, total=False):
78
+ active_aml_suspicions: bool
79
+ """
80
+ Flag indicating whether there are active research AML (Anti-Money Laundering)
81
+ suspicions for the company when you apply for a new entry or get an existing
82
+ one.
83
+ """
84
+
85
+ callback_url: str
86
+ """URL to receive a callback once the company is processed."""
87
+
88
+ callback_url_notification: str
89
+ """URL to receive notifications about the processing state and status."""
90
+
91
+ filtering_score_aml_suspicions: float
92
+ """Minimum filtering score (between 0 and 1) for AML suspicions to be considered."""
93
+
94
+ language: str
95
+ """Preferred language for responses or notifications (e.g., "eng", "fra")."""
96
+
97
+ portal_steps: List[Literal["identity_verification", "document_signing", "proof_of_address", "selfie", "face_match"]]
98
+ """List of steps to include in the portal workflow."""
99
+
100
+ raw_data: bool
101
+ """Flag indicating whether to include raw data in the response."""
@@ -0,0 +1,336 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from pydantic import Field as FieldInfo
8
+
9
+ from .._models import BaseModel
10
+ from .shared.check import Check
11
+ from .individuals.generic_document import GenericDocument
12
+
13
+ __all__ = [
14
+ "Individual",
15
+ "AmlSuspicion",
16
+ "Certificat",
17
+ "IdentityCard",
18
+ "Person",
19
+ "Property",
20
+ "Risk",
21
+ "Tag",
22
+ "TechnicalData",
23
+ ]
24
+
25
+
26
+ class AmlSuspicion(BaseModel):
27
+ caption: Optional[str] = None
28
+ """Human-readable description or title for the suspicious finding."""
29
+
30
+ country: Optional[str] = None
31
+ """Country associated with the suspicion (ISO 3166-1 alpha-2 code)."""
32
+
33
+ gender: Optional[str] = None
34
+ """Gender associated with the suspicion, if applicable."""
35
+
36
+ relation: Optional[str] = None
37
+ """
38
+ Nature of the relationship between the entity and the suspicious activity (e.g.,
39
+ "linked", "associated").
40
+ """
41
+
42
+ schema_: Optional[str] = FieldInfo(alias="schema", default=None)
43
+ """Version of the evaluation schema or rule engine used."""
44
+
45
+ score: Optional[float] = None
46
+ """Risk score between 0.0 and 1 indicating the severity of the suspicion."""
47
+
48
+ source: Optional[str] = None
49
+ """Source system or service providing this suspicion."""
50
+
51
+ status: Optional[Literal["true_positive", "false_positive", "pending"]] = None
52
+ """Status of the suspicion review process.
53
+
54
+ Possible values: "true_positive", "false_positive", "pending".
55
+ """
56
+
57
+ type: Optional[Literal["crime", "sanction", "pep", "adverse_news", "other"]] = None
58
+ """Category of the suspicion.
59
+
60
+ Possible values: "crime", "sanction", "pep", "adverse_news", "other".
61
+ """
62
+
63
+
64
+ class Certificat(BaseModel):
65
+ id: Optional[str] = None
66
+ """Unique identifier for the certificate."""
67
+
68
+ created_at: Optional[datetime] = None
69
+ """Timestamp when the certificate was created."""
70
+
71
+ filename: Optional[str] = None
72
+ """Name of the certificate file."""
73
+
74
+
75
+ class IdentityCard(BaseModel):
76
+ id: Optional[str] = None
77
+ """Unique identifier for the document."""
78
+
79
+ back_document_signed_url: Optional[str] = None
80
+ """Signed URL linking to the back image of the document."""
81
+
82
+ birth_place: Optional[str] = None
83
+ """Place of birth as indicated on the document."""
84
+
85
+ birthday: Optional[str] = None
86
+ """Date of birth in DD/MM/YYYY format as shown on the document."""
87
+
88
+ country: Optional[str] = None
89
+ """Country code issuing the document (ISO 3166-1 alpha-2)."""
90
+
91
+ expiration_date: Optional[str] = None
92
+ """Expiration date of the document, in YYYY-MM-DD format."""
93
+
94
+ first_name: Optional[str] = None
95
+ """First name as shown on the document."""
96
+
97
+ front_document_signed_url: Optional[str] = None
98
+ """Signed URL linking to the front image of the document."""
99
+
100
+ gender: Optional[str] = None
101
+ """Gender indicated on the document (e.g., "M" or "F")."""
102
+
103
+ issue_date: Optional[str] = None
104
+ """Date when the document was issued, in YYYY-MM-DD format."""
105
+
106
+ last_name: Optional[str] = None
107
+ """Last name as shown on the document."""
108
+
109
+ mrz_line_1: Optional[str] = None
110
+ """First line of the Machine Readable Zone (MRZ) on the document."""
111
+
112
+ mrz_line_2: Optional[str] = None
113
+ """Second line of the MRZ on the document."""
114
+
115
+ mrz_line_3: Optional[str] = None
116
+ """Third line of the MRZ if applicable; otherwise null."""
117
+
118
+ type: Optional[str] = None
119
+ """Type of document (e.g., passport, identity card)."""
120
+
121
+
122
+ class Person(BaseModel):
123
+ birthday: Optional[str] = None
124
+ """Date of birth, formatted as DD/MM/YYYY."""
125
+
126
+ email: Optional[str] = None
127
+ """Email address of the individual."""
128
+
129
+ face_image_signed_url: Optional[str] = None
130
+ """Signed URL linking to the person’s face image."""
131
+
132
+ first_name: Optional[str] = None
133
+ """First (given) name of the person."""
134
+
135
+ full_name: Optional[str] = None
136
+ """Full name of the person, typically concatenation of first and last names."""
137
+
138
+ gender: Optional[str] = None
139
+ """Gender of the individual (e.g., "M" for male, "F" for female)."""
140
+
141
+ last_name: Optional[str] = None
142
+ """Last (family) name of the person."""
143
+
144
+ maiden_name: Optional[str] = None
145
+ """Maiden name of the person, if applicable."""
146
+
147
+ nationality: Optional[str] = None
148
+ """Nationality of the individual (ISO 3166-1 alpha-3 country code)."""
149
+
150
+ phone_number: Optional[str] = None
151
+ """Contact phone number including country code."""
152
+
153
+
154
+ class Property(BaseModel):
155
+ name: Optional[str] = None
156
+ """Name/key of the property."""
157
+
158
+ type: Optional[str] = None
159
+ """Data type of the property value."""
160
+
161
+ value: Optional[str] = None
162
+ """Value associated with the property name."""
163
+
164
+
165
+ class Risk(BaseModel):
166
+ code: Optional[str] = None
167
+ """Risk category or code identifier."""
168
+
169
+ reason: Optional[str] = None
170
+ """Explanation or justification for the assigned risk."""
171
+
172
+ score: Optional[float] = None
173
+ """Numeric risk score between 0.0 and 1.0 indicating severity or confidence."""
174
+
175
+
176
+ class Tag(BaseModel):
177
+ key: Optional[str] = None
178
+ """Name of the tag used to identify the metadata field."""
179
+
180
+ private: Optional[bool] = None
181
+ """Indicates whether the tag is private (not visible to external users)."""
182
+
183
+ type: Optional[str] = None
184
+ """Data type of the tag value (e.g., "string", "number", "boolean")."""
185
+
186
+ value: Optional[str] = None
187
+ """Value assigned to the tag."""
188
+
189
+
190
+ class TechnicalData(BaseModel):
191
+ active_aml_suspicions: Optional[bool] = None
192
+ """
193
+ Flag indicating whether there are active research AML (Anti-Money Laundering)
194
+ suspicions for the object when you apply for a new entry or get an existing one.
195
+ """
196
+
197
+ api_version: Optional[int] = None
198
+ """Version number of the API used."""
199
+
200
+ approved_at: Optional[datetime] = None
201
+ """Timestamp when the request or process was approved."""
202
+
203
+ callback_url: Optional[str] = None
204
+ """URL to receive callback data from the AML system."""
205
+
206
+ callback_url_notification: Optional[str] = None
207
+ """URL to receive notification updates about the processing status."""
208
+
209
+ disable_notification: Optional[bool] = None
210
+ """Flag to indicate if notifications are disabled."""
211
+
212
+ disable_notification_date: Optional[datetime] = None
213
+ """Timestamp when notifications were disabled; null if never disabled."""
214
+
215
+ export_type: Optional[str] = None
216
+ """Export format defined by the API (e.g., "json", "xml")."""
217
+
218
+ filtering_score_aml_suspicions: Optional[float] = None
219
+ """Minimum filtering score (between 0 and 1) for AML suspicions to be considered."""
220
+
221
+ finished_at: Optional[datetime] = None
222
+ """Timestamp when the process finished."""
223
+
224
+ ip: Optional[str] = None
225
+ """IP address of the our system handling the request."""
226
+
227
+ language: Optional[str] = None
228
+ """Language preference used in the client workspace (e.g., "fra")."""
229
+
230
+ location_ip: Optional[str] = None
231
+ """IP address of the end client (final user) captured."""
232
+
233
+ need_review_at: Optional[datetime] = None
234
+ """Timestamp indicating when the request or process needs review; null if none."""
235
+
236
+ notification_confirmation: Optional[bool] = None
237
+ """Flag indicating if notification confirmation is required or received."""
238
+
239
+ portal_steps: Optional[
240
+ List[Literal["identity_verification", "document_signing", "proof_of_address", "selfie", "face_match"]]
241
+ ] = None
242
+ """List of steps to include in the portal workflow."""
243
+
244
+ qr_code: Optional[str] = None
245
+ """Indicates whether QR code is enabled ("true" or "false")."""
246
+
247
+ raw_data: Optional[bool] = None
248
+ """Flag indicating whether to include raw data in the response."""
249
+
250
+ rejected_at: Optional[datetime] = None
251
+ """Timestamp when the request or process was rejected; null if not rejected."""
252
+
253
+ session_duration: Optional[int] = None
254
+ """Duration of the user session in seconds."""
255
+
256
+ started_at: Optional[datetime] = None
257
+ """Timestamp when the process started."""
258
+
259
+ transfer_at: Optional[datetime] = None
260
+ """Date/time of data transfer."""
261
+
262
+ transfer_mode: Optional[str] = None
263
+ """Mode of data transfer."""
264
+
265
+
266
+ class Individual(BaseModel):
267
+ id: Optional[str] = None
268
+ """Unique identifier of the individual."""
269
+
270
+ aml_suspicions: Optional[List[AmlSuspicion]] = None
271
+ """List of AML (Anti-Money Laundering) suspicion entries linked to the individual."""
272
+
273
+ auth_url: Optional[str] = None
274
+ """URL to authenticate the individual, usually for document signing or onboarding."""
275
+
276
+ certificat: Optional[Certificat] = None
277
+ """Digital certificate associated with the individual, if any."""
278
+
279
+ checks: Optional[List[Check]] = None
280
+ """List of verification or validation checks applied to the individual."""
281
+
282
+ created_at: Optional[datetime] = None
283
+ """Timestamp of the individual's creation in ISO 8601 format."""
284
+
285
+ documents: Optional[List[GenericDocument]] = None
286
+ """All documents submitted or associated with the individual."""
287
+
288
+ identity_card: Optional[IdentityCard] = None
289
+ """Reference to the individual's identity document."""
290
+
291
+ number: Optional[int] = None
292
+ """Internal sequential number or reference for the individual."""
293
+
294
+ person: Optional[Person] = None
295
+ """
296
+ Personal details of the individual, such as name, date of birth, and contact
297
+ info.
298
+ """
299
+
300
+ portal_url: Optional[str] = None
301
+ """Admin or internal portal URL for viewing the individual's details."""
302
+
303
+ properties: Optional[List[Property]] = None
304
+ """Custom key-value metadata fields associated with the individual."""
305
+
306
+ risk: Optional[Risk] = None
307
+ """Risk assessment associated with the individual."""
308
+
309
+ source_id: Optional[str] = None
310
+ """Optional identifier indicating the source of the individual record."""
311
+
312
+ state: Optional[str] = None
313
+ """
314
+ Current operational state in the workflow (e.g., WAITING, IN_PROGRESS,
315
+ COMPLETED).
316
+ """
317
+
318
+ status: Optional[str] = None
319
+ """
320
+ Overall processing status of the individual (e.g., rejected, need_review,
321
+ approved).
322
+ """
323
+
324
+ tags: Optional[List[Tag]] = None
325
+ """
326
+ List of tags assigned to the individual for categorization or metadata purposes.
327
+ """
328
+
329
+ technical_data: Optional[TechnicalData] = None
330
+ """Technical metadata related to the request (e.g., QR code settings, language)."""
331
+
332
+ webview_url: Optional[str] = None
333
+ """Public-facing webview URL for the individual’s identification process."""
334
+
335
+ workspace_id: Optional[str] = None
336
+ """Identifier of the workspace to which the individual belongs."""
@@ -0,0 +1,78 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import List
6
+ from typing_extensions import Literal, Required, TypedDict
7
+
8
+ __all__ = ["IndividualCreateParams", "Person", "TechnicalData"]
9
+
10
+
11
+ class IndividualCreateParams(TypedDict, total=False):
12
+ workspace_id: Required[str]
13
+ """Unique identifier of the workspace where the individual is being registered."""
14
+
15
+ person: Person
16
+ """Personal information about the individual."""
17
+
18
+ source_id: str
19
+ """
20
+ Optional identifier for tracking the source system or integration from your
21
+ system.
22
+ """
23
+
24
+ technical_data: TechnicalData
25
+ """Technical metadata related to the request or processing."""
26
+
27
+
28
+ class Person(TypedDict, total=False):
29
+ birthday: str
30
+ """Date of birth in DD/MM/YYYY format."""
31
+
32
+ email: str
33
+ """Email address of the individual."""
34
+
35
+ first_name: str
36
+ """First name of the individual."""
37
+
38
+ gender: Literal["M", "F"]
39
+ """Gender of the individual (M for male, F for female)."""
40
+
41
+ last_name: str
42
+ """Last name (family name) of the individual."""
43
+
44
+ maiden_name: str
45
+ """Maiden name, if applicable."""
46
+
47
+ nationality: str
48
+ """Nationality of the individual (ISO 3166-1 alpha-3 country code)."""
49
+
50
+ phone_number: str
51
+ """Phone number of the individual."""
52
+
53
+
54
+ class TechnicalData(TypedDict, total=False):
55
+ active_aml_suspicions: bool
56
+ """
57
+ Flag indicating whether there are active research AML (Anti-Money Laundering)
58
+ suspicions for the individual when you apply for a new entry or get an existing
59
+ one.
60
+ """
61
+
62
+ callback_url: str
63
+ """URL to call back upon completion of processing."""
64
+
65
+ callback_url_notification: str
66
+ """URL for receive notifications about the processing state or status."""
67
+
68
+ filtering_score_aml_suspicions: float
69
+ """Minimum filtering score (between 0 and 1) for AML suspicions to be considered."""
70
+
71
+ language: str
72
+ """Preferred language for communication (e.g., "eng", "fra")."""
73
+
74
+ portal_steps: List[Literal["identity_verification", "document_signing", "proof_of_address", "selfie", "face_match"]]
75
+ """List of steps to include in the portal workflow."""
76
+
77
+ raw_data: bool
78
+ """Flag indicating whether to include raw data in the response."""
@@ -0,0 +1,37 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Union
6
+ from datetime import date
7
+ from typing_extensions import Literal, Annotated, TypedDict
8
+
9
+ from .._utils import PropertyInfo
10
+
11
+ __all__ = ["IndividualListParams"]
12
+
13
+
14
+ class IndividualListParams(TypedDict, total=False):
15
+ end_date: Annotated[Union[str, date], PropertyInfo(format="iso8601")]
16
+ """Filter individuals created before this date (format YYYY-MM-DD)"""
17
+
18
+ limit: int
19
+ """Number of results to return (between 1 and 100)"""
20
+
21
+ offset: int
22
+ """Number of results to offset (must be ≥ 0)"""
23
+
24
+ source_id: str
25
+ """Filter by source ID"""
26
+
27
+ start_date: Annotated[Union[str, date], PropertyInfo(format="iso8601")]
28
+ """Filter individuals created after this date (format YYYY-MM-DD)"""
29
+
30
+ state: Literal["VOID", "WAITING", "STARTED", "RUNNING", "PROCESSED", "FAILED", "ABORTED", "EXPIRED", "DELETED"]
31
+ """Filter by individual status (must be one of the allowed values)"""
32
+
33
+ status: Literal["rejected", "need_review", "approved"]
34
+ """Filter by individual status (must be one of the allowed values)"""
35
+
36
+ workspace_id: str
37
+ """Filter by workspace ID"""
@@ -0,0 +1,10 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+ from typing_extensions import TypeAlias
5
+
6
+ from .individual import Individual
7
+
8
+ __all__ = ["IndividualListResponse"]
9
+
10
+ IndividualListResponse: TypeAlias = List[Individual]
@@ -0,0 +1,15 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import TypedDict
6
+
7
+ __all__ = ["IndividualRetrieveParams"]
8
+
9
+
10
+ class IndividualRetrieveParams(TypedDict, total=False):
11
+ document: bool
12
+ """Include document information"""
13
+
14
+ scope: str
15
+ """Scope filter (id or scope)"""
@@ -0,0 +1,78 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import List
6
+ from typing_extensions import Literal, Required, TypedDict
7
+
8
+ __all__ = ["IndividualUpdateParams", "Person", "TechnicalData"]
9
+
10
+
11
+ class IndividualUpdateParams(TypedDict, total=False):
12
+ workspace_id: Required[str]
13
+ """Unique identifier of the workspace where the individual is being registered."""
14
+
15
+ person: Person
16
+ """Personal information about the individual."""
17
+
18
+ source_id: str
19
+ """
20
+ Optional identifier for tracking the source system or integration from your
21
+ system.
22
+ """
23
+
24
+ technical_data: TechnicalData
25
+ """Technical metadata related to the request or processing."""
26
+
27
+
28
+ class Person(TypedDict, total=False):
29
+ birthday: str
30
+ """Date of birth in DD/MM/YYYY format."""
31
+
32
+ email: str
33
+ """Email address of the individual."""
34
+
35
+ first_name: str
36
+ """First name of the individual."""
37
+
38
+ gender: Literal["M", "F"]
39
+ """Gender of the individual (M for male, F for female)."""
40
+
41
+ last_name: str
42
+ """Last name (family name) of the individual."""
43
+
44
+ maiden_name: str
45
+ """Maiden name, if applicable."""
46
+
47
+ nationality: str
48
+ """Nationality of the individual (ISO 3166-1 alpha-3 country code)."""
49
+
50
+ phone_number: str
51
+ """Phone number of the individual."""
52
+
53
+
54
+ class TechnicalData(TypedDict, total=False):
55
+ active_aml_suspicions: bool
56
+ """
57
+ Flag indicating whether there are active research AML (Anti-Money Laundering)
58
+ suspicions for the individual when you apply for a new entry or get an existing
59
+ one.
60
+ """
61
+
62
+ callback_url: str
63
+ """URL to call back upon completion of processing."""
64
+
65
+ callback_url_notification: str
66
+ """URL for receive notifications about the processing state or status."""
67
+
68
+ filtering_score_aml_suspicions: float
69
+ """Minimum filtering score (between 0 and 1) for AML suspicions to be considered."""
70
+
71
+ language: str
72
+ """Preferred language for communication (e.g., "eng", "fra")."""
73
+
74
+ portal_steps: List[Literal["identity_verification", "document_signing", "proof_of_address", "selfie", "face_match"]]
75
+ """List of steps to include in the portal workflow."""
76
+
77
+ raw_data: bool
78
+ """Flag indicating whether to include raw data in the response."""
@@ -0,0 +1,7 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from .generic_document import GenericDocument as GenericDocument
6
+ from .document_response import DocumentResponse as DocumentResponse
7
+ from .document_upload_params import DocumentUploadParams as DocumentUploadParams