dataleon 0.1.0.pre.alpha.1

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 (149) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +50 -0
  4. data/README.md +257 -0
  5. data/SECURITY.md +27 -0
  6. data/lib/dataleon/client.rb +80 -0
  7. data/lib/dataleon/errors.rb +214 -0
  8. data/lib/dataleon/file_part.rb +55 -0
  9. data/lib/dataleon/internal/transport/base_client.rb +563 -0
  10. data/lib/dataleon/internal/transport/pooled_net_requester.rb +201 -0
  11. data/lib/dataleon/internal/type/array_of.rb +168 -0
  12. data/lib/dataleon/internal/type/base_model.rb +531 -0
  13. data/lib/dataleon/internal/type/base_page.rb +55 -0
  14. data/lib/dataleon/internal/type/boolean.rb +77 -0
  15. data/lib/dataleon/internal/type/converter.rb +327 -0
  16. data/lib/dataleon/internal/type/enum.rb +131 -0
  17. data/lib/dataleon/internal/type/file_input.rb +108 -0
  18. data/lib/dataleon/internal/type/hash_of.rb +188 -0
  19. data/lib/dataleon/internal/type/request_parameters.rb +42 -0
  20. data/lib/dataleon/internal/type/union.rb +237 -0
  21. data/lib/dataleon/internal/type/unknown.rb +81 -0
  22. data/lib/dataleon/internal/util.rb +914 -0
  23. data/lib/dataleon/internal.rb +20 -0
  24. data/lib/dataleon/models/check.rb +50 -0
  25. data/lib/dataleon/models/companies/document_list_params.rb +16 -0
  26. data/lib/dataleon/models/companies/document_upload_params.rb +82 -0
  27. data/lib/dataleon/models/company_create_params.rb +228 -0
  28. data/lib/dataleon/models/company_delete_params.rb +14 -0
  29. data/lib/dataleon/models/company_list_params.rb +108 -0
  30. data/lib/dataleon/models/company_list_response.rb +8 -0
  31. data/lib/dataleon/models/company_registration.rb +964 -0
  32. data/lib/dataleon/models/company_retrieve_params.rb +30 -0
  33. data/lib/dataleon/models/company_update_params.rb +228 -0
  34. data/lib/dataleon/models/individual.rb +805 -0
  35. data/lib/dataleon/models/individual_create_params.rb +174 -0
  36. data/lib/dataleon/models/individual_delete_params.rb +14 -0
  37. data/lib/dataleon/models/individual_list_params.rb +108 -0
  38. data/lib/dataleon/models/individual_list_response.rb +8 -0
  39. data/lib/dataleon/models/individual_retrieve_params.rb +30 -0
  40. data/lib/dataleon/models/individual_update_params.rb +174 -0
  41. data/lib/dataleon/models/individuals/document_list_params.rb +16 -0
  42. data/lib/dataleon/models/individuals/document_response.rb +98 -0
  43. data/lib/dataleon/models/individuals/document_upload_params.rb +82 -0
  44. data/lib/dataleon/models/individuals/generic_document.rb +132 -0
  45. data/lib/dataleon/models/individuals/kbis.rb +326 -0
  46. data/lib/dataleon/models.rb +71 -0
  47. data/lib/dataleon/request_options.rb +77 -0
  48. data/lib/dataleon/resources/companies/documents.rb +65 -0
  49. data/lib/dataleon/resources/companies.rb +164 -0
  50. data/lib/dataleon/resources/individuals/documents.rb +65 -0
  51. data/lib/dataleon/resources/individuals.rb +164 -0
  52. data/lib/dataleon/version.rb +5 -0
  53. data/lib/dataleon.rb +79 -0
  54. data/manifest.yaml +15 -0
  55. data/rbi/dataleon/client.rbi +56 -0
  56. data/rbi/dataleon/errors.rbi +178 -0
  57. data/rbi/dataleon/file_part.rbi +37 -0
  58. data/rbi/dataleon/internal/transport/base_client.rbi +293 -0
  59. data/rbi/dataleon/internal/transport/pooled_net_requester.rbi +79 -0
  60. data/rbi/dataleon/internal/type/array_of.rbi +104 -0
  61. data/rbi/dataleon/internal/type/base_model.rbi +302 -0
  62. data/rbi/dataleon/internal/type/base_page.rbi +42 -0
  63. data/rbi/dataleon/internal/type/boolean.rbi +58 -0
  64. data/rbi/dataleon/internal/type/converter.rbi +216 -0
  65. data/rbi/dataleon/internal/type/enum.rbi +82 -0
  66. data/rbi/dataleon/internal/type/file_input.rbi +59 -0
  67. data/rbi/dataleon/internal/type/hash_of.rbi +104 -0
  68. data/rbi/dataleon/internal/type/request_parameters.rbi +29 -0
  69. data/rbi/dataleon/internal/type/union.rbi +128 -0
  70. data/rbi/dataleon/internal/type/unknown.rbi +58 -0
  71. data/rbi/dataleon/internal/util.rbi +487 -0
  72. data/rbi/dataleon/internal.rbi +16 -0
  73. data/rbi/dataleon/models/check.rbi +83 -0
  74. data/rbi/dataleon/models/companies/document_list_params.rbi +32 -0
  75. data/rbi/dataleon/models/companies/document_upload_params.rbi +266 -0
  76. data/rbi/dataleon/models/company_create_params.rbi +361 -0
  77. data/rbi/dataleon/models/company_delete_params.rbi +27 -0
  78. data/rbi/dataleon/models/company_list_params.rbi +182 -0
  79. data/rbi/dataleon/models/company_list_response.rbi +11 -0
  80. data/rbi/dataleon/models/company_registration.rbi +1628 -0
  81. data/rbi/dataleon/models/company_retrieve_params.rbi +57 -0
  82. data/rbi/dataleon/models/company_update_params.rbi +361 -0
  83. data/rbi/dataleon/models/individual.rbi +1281 -0
  84. data/rbi/dataleon/models/individual_create_params.rbi +323 -0
  85. data/rbi/dataleon/models/individual_delete_params.rbi +27 -0
  86. data/rbi/dataleon/models/individual_list_params.rbi +193 -0
  87. data/rbi/dataleon/models/individual_list_response.rbi +11 -0
  88. data/rbi/dataleon/models/individual_retrieve_params.rbi +57 -0
  89. data/rbi/dataleon/models/individual_update_params.rbi +323 -0
  90. data/rbi/dataleon/models/individuals/document_list_params.rbi +32 -0
  91. data/rbi/dataleon/models/individuals/document_response.rbi +190 -0
  92. data/rbi/dataleon/models/individuals/document_upload_params.rbi +266 -0
  93. data/rbi/dataleon/models/individuals/generic_document.rbi +252 -0
  94. data/rbi/dataleon/models/individuals/kbis.rbi +513 -0
  95. data/rbi/dataleon/models.rbi +33 -0
  96. data/rbi/dataleon/request_options.rbi +59 -0
  97. data/rbi/dataleon/resources/companies/documents.rbi +52 -0
  98. data/rbi/dataleon/resources/companies.rbi +135 -0
  99. data/rbi/dataleon/resources/individuals/documents.rbi +52 -0
  100. data/rbi/dataleon/resources/individuals.rbi +137 -0
  101. data/rbi/dataleon/version.rbi +5 -0
  102. data/sig/dataleon/client.rbs +28 -0
  103. data/sig/dataleon/errors.rbs +110 -0
  104. data/sig/dataleon/file_part.rbs +21 -0
  105. data/sig/dataleon/internal/transport/base_client.rbs +131 -0
  106. data/sig/dataleon/internal/transport/pooled_net_requester.rbs +45 -0
  107. data/sig/dataleon/internal/type/array_of.rbs +48 -0
  108. data/sig/dataleon/internal/type/base_model.rbs +102 -0
  109. data/sig/dataleon/internal/type/base_page.rbs +24 -0
  110. data/sig/dataleon/internal/type/boolean.rbs +26 -0
  111. data/sig/dataleon/internal/type/converter.rbs +79 -0
  112. data/sig/dataleon/internal/type/enum.rbs +32 -0
  113. data/sig/dataleon/internal/type/file_input.rbs +25 -0
  114. data/sig/dataleon/internal/type/hash_of.rbs +48 -0
  115. data/sig/dataleon/internal/type/request_parameters.rbs +17 -0
  116. data/sig/dataleon/internal/type/union.rbs +52 -0
  117. data/sig/dataleon/internal/type/unknown.rbs +26 -0
  118. data/sig/dataleon/internal/util.rbs +185 -0
  119. data/sig/dataleon/internal.rbs +9 -0
  120. data/sig/dataleon/models/check.rbs +50 -0
  121. data/sig/dataleon/models/companies/document_list_params.rbs +17 -0
  122. data/sig/dataleon/models/companies/document_upload_params.rbs +119 -0
  123. data/sig/dataleon/models/company_create_params.rbs +209 -0
  124. data/sig/dataleon/models/company_delete_params.rbs +15 -0
  125. data/sig/dataleon/models/company_list_params.rbs +120 -0
  126. data/sig/dataleon/models/company_list_response.rbs +7 -0
  127. data/sig/dataleon/models/company_registration.rbs +847 -0
  128. data/sig/dataleon/models/company_retrieve_params.rbs +32 -0
  129. data/sig/dataleon/models/company_update_params.rbs +209 -0
  130. data/sig/dataleon/models/individual.rbs +717 -0
  131. data/sig/dataleon/models/individual_create_params.rbs +172 -0
  132. data/sig/dataleon/models/individual_delete_params.rbs +15 -0
  133. data/sig/dataleon/models/individual_list_params.rbs +120 -0
  134. data/sig/dataleon/models/individual_list_response.rbs +7 -0
  135. data/sig/dataleon/models/individual_retrieve_params.rbs +32 -0
  136. data/sig/dataleon/models/individual_update_params.rbs +172 -0
  137. data/sig/dataleon/models/individuals/document_list_params.rbs +17 -0
  138. data/sig/dataleon/models/individuals/document_response.rbs +101 -0
  139. data/sig/dataleon/models/individuals/document_upload_params.rbs +119 -0
  140. data/sig/dataleon/models/individuals/generic_document.rbs +132 -0
  141. data/sig/dataleon/models/individuals/kbis.rbs +303 -0
  142. data/sig/dataleon/models.rbs +31 -0
  143. data/sig/dataleon/request_options.rbs +34 -0
  144. data/sig/dataleon/resources/companies/documents.rbs +22 -0
  145. data/sig/dataleon/resources/companies.rbs +50 -0
  146. data/sig/dataleon/resources/individuals/documents.rbs +22 -0
  147. data/sig/dataleon/resources/individuals.rbs +50 -0
  148. data/sig/dataleon/version.rbs +3 -0
  149. metadata +206 -0
@@ -0,0 +1,1281 @@
1
+ # typed: strong
2
+
3
+ module Dataleon
4
+ module Models
5
+ class Individual < Dataleon::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Dataleon::Individual, Dataleon::Internal::AnyHash)
9
+ end
10
+
11
+ # Unique identifier of the individual.
12
+ sig { returns(T.nilable(String)) }
13
+ attr_reader :id
14
+
15
+ sig { params(id: String).void }
16
+ attr_writer :id
17
+
18
+ # List of AML (Anti-Money Laundering) suspicion entries linked to the individual.
19
+ sig { returns(T.nilable(T::Array[Dataleon::Individual::AmlSuspicion])) }
20
+ attr_reader :aml_suspicions
21
+
22
+ sig do
23
+ params(
24
+ aml_suspicions: T::Array[Dataleon::Individual::AmlSuspicion::OrHash]
25
+ ).void
26
+ end
27
+ attr_writer :aml_suspicions
28
+
29
+ # URL to authenticate the individual, usually for document signing or onboarding.
30
+ sig { returns(T.nilable(String)) }
31
+ attr_reader :auth_url
32
+
33
+ sig { params(auth_url: String).void }
34
+ attr_writer :auth_url
35
+
36
+ # Digital certificate associated with the individual, if any.
37
+ sig { returns(T.nilable(Dataleon::Individual::Certificat)) }
38
+ attr_reader :certificat
39
+
40
+ sig { params(certificat: Dataleon::Individual::Certificat::OrHash).void }
41
+ attr_writer :certificat
42
+
43
+ # List of verification or validation checks applied to the individual.
44
+ sig { returns(T.nilable(T::Array[Dataleon::Check])) }
45
+ attr_reader :checks
46
+
47
+ sig { params(checks: T::Array[Dataleon::Check::OrHash]).void }
48
+ attr_writer :checks
49
+
50
+ # Timestamp of the individual's creation in ISO 8601 format.
51
+ sig { returns(T.nilable(Time)) }
52
+ attr_reader :created_at
53
+
54
+ sig { params(created_at: Time).void }
55
+ attr_writer :created_at
56
+
57
+ # All documents submitted or associated with the individual.
58
+ sig do
59
+ returns(T.nilable(T::Array[Dataleon::Individuals::GenericDocument]))
60
+ end
61
+ attr_reader :documents
62
+
63
+ sig do
64
+ params(
65
+ documents: T::Array[Dataleon::Individuals::GenericDocument::OrHash]
66
+ ).void
67
+ end
68
+ attr_writer :documents
69
+
70
+ # Reference to the individual's identity document.
71
+ sig { returns(T.nilable(Dataleon::Individual::IdentityCard)) }
72
+ attr_reader :identity_card
73
+
74
+ sig do
75
+ params(identity_card: Dataleon::Individual::IdentityCard::OrHash).void
76
+ end
77
+ attr_writer :identity_card
78
+
79
+ # Internal sequential number or reference for the individual.
80
+ sig { returns(T.nilable(Integer)) }
81
+ attr_reader :number
82
+
83
+ sig { params(number: Integer).void }
84
+ attr_writer :number
85
+
86
+ # Personal details of the individual, such as name, date of birth, and contact
87
+ # info.
88
+ sig { returns(T.nilable(Dataleon::Individual::Person)) }
89
+ attr_reader :person
90
+
91
+ sig { params(person: Dataleon::Individual::Person::OrHash).void }
92
+ attr_writer :person
93
+
94
+ # Admin or internal portal URL for viewing the individual's details.
95
+ sig { returns(T.nilable(String)) }
96
+ attr_reader :portal_url
97
+
98
+ sig { params(portal_url: String).void }
99
+ attr_writer :portal_url
100
+
101
+ # Custom key-value metadata fields associated with the individual.
102
+ sig { returns(T.nilable(T::Array[Dataleon::Individual::Property])) }
103
+ attr_reader :properties
104
+
105
+ sig do
106
+ params(
107
+ properties: T::Array[Dataleon::Individual::Property::OrHash]
108
+ ).void
109
+ end
110
+ attr_writer :properties
111
+
112
+ # Risk assessment associated with the individual.
113
+ sig { returns(T.nilable(Dataleon::Individual::Risk)) }
114
+ attr_reader :risk
115
+
116
+ sig { params(risk: Dataleon::Individual::Risk::OrHash).void }
117
+ attr_writer :risk
118
+
119
+ # Optional identifier indicating the source of the individual record.
120
+ sig { returns(T.nilable(String)) }
121
+ attr_reader :source_id
122
+
123
+ sig { params(source_id: String).void }
124
+ attr_writer :source_id
125
+
126
+ # Current operational state in the workflow (e.g., WAITING, IN_PROGRESS,
127
+ # COMPLETED).
128
+ sig { returns(T.nilable(String)) }
129
+ attr_reader :state
130
+
131
+ sig { params(state: String).void }
132
+ attr_writer :state
133
+
134
+ # Overall processing status of the individual (e.g., rejected, need_review,
135
+ # approved).
136
+ sig { returns(T.nilable(String)) }
137
+ attr_reader :status
138
+
139
+ sig { params(status: String).void }
140
+ attr_writer :status
141
+
142
+ # List of tags assigned to the individual for categorization or metadata purposes.
143
+ sig { returns(T.nilable(T::Array[Dataleon::Individual::Tag])) }
144
+ attr_reader :tags
145
+
146
+ sig { params(tags: T::Array[Dataleon::Individual::Tag::OrHash]).void }
147
+ attr_writer :tags
148
+
149
+ # Technical metadata related to the request (e.g., QR code settings, language).
150
+ sig { returns(T.nilable(Dataleon::Individual::TechnicalData)) }
151
+ attr_reader :technical_data
152
+
153
+ sig do
154
+ params(technical_data: Dataleon::Individual::TechnicalData::OrHash).void
155
+ end
156
+ attr_writer :technical_data
157
+
158
+ # Public-facing webview URL for the individual’s identification process.
159
+ sig { returns(T.nilable(String)) }
160
+ attr_reader :webview_url
161
+
162
+ sig { params(webview_url: String).void }
163
+ attr_writer :webview_url
164
+
165
+ # Identifier of the workspace to which the individual belongs.
166
+ sig { returns(T.nilable(String)) }
167
+ attr_reader :workspace_id
168
+
169
+ sig { params(workspace_id: String).void }
170
+ attr_writer :workspace_id
171
+
172
+ # Represents a single individual record, including identification, status, and
173
+ # associated metadata.
174
+ sig do
175
+ params(
176
+ id: String,
177
+ aml_suspicions: T::Array[Dataleon::Individual::AmlSuspicion::OrHash],
178
+ auth_url: String,
179
+ certificat: Dataleon::Individual::Certificat::OrHash,
180
+ checks: T::Array[Dataleon::Check::OrHash],
181
+ created_at: Time,
182
+ documents: T::Array[Dataleon::Individuals::GenericDocument::OrHash],
183
+ identity_card: Dataleon::Individual::IdentityCard::OrHash,
184
+ number: Integer,
185
+ person: Dataleon::Individual::Person::OrHash,
186
+ portal_url: String,
187
+ properties: T::Array[Dataleon::Individual::Property::OrHash],
188
+ risk: Dataleon::Individual::Risk::OrHash,
189
+ source_id: String,
190
+ state: String,
191
+ status: String,
192
+ tags: T::Array[Dataleon::Individual::Tag::OrHash],
193
+ technical_data: Dataleon::Individual::TechnicalData::OrHash,
194
+ webview_url: String,
195
+ workspace_id: String
196
+ ).returns(T.attached_class)
197
+ end
198
+ def self.new(
199
+ # Unique identifier of the individual.
200
+ id: nil,
201
+ # List of AML (Anti-Money Laundering) suspicion entries linked to the individual.
202
+ aml_suspicions: nil,
203
+ # URL to authenticate the individual, usually for document signing or onboarding.
204
+ auth_url: nil,
205
+ # Digital certificate associated with the individual, if any.
206
+ certificat: nil,
207
+ # List of verification or validation checks applied to the individual.
208
+ checks: nil,
209
+ # Timestamp of the individual's creation in ISO 8601 format.
210
+ created_at: nil,
211
+ # All documents submitted or associated with the individual.
212
+ documents: nil,
213
+ # Reference to the individual's identity document.
214
+ identity_card: nil,
215
+ # Internal sequential number or reference for the individual.
216
+ number: nil,
217
+ # Personal details of the individual, such as name, date of birth, and contact
218
+ # info.
219
+ person: nil,
220
+ # Admin or internal portal URL for viewing the individual's details.
221
+ portal_url: nil,
222
+ # Custom key-value metadata fields associated with the individual.
223
+ properties: nil,
224
+ # Risk assessment associated with the individual.
225
+ risk: nil,
226
+ # Optional identifier indicating the source of the individual record.
227
+ source_id: nil,
228
+ # Current operational state in the workflow (e.g., WAITING, IN_PROGRESS,
229
+ # COMPLETED).
230
+ state: nil,
231
+ # Overall processing status of the individual (e.g., rejected, need_review,
232
+ # approved).
233
+ status: nil,
234
+ # List of tags assigned to the individual for categorization or metadata purposes.
235
+ tags: nil,
236
+ # Technical metadata related to the request (e.g., QR code settings, language).
237
+ technical_data: nil,
238
+ # Public-facing webview URL for the individual’s identification process.
239
+ webview_url: nil,
240
+ # Identifier of the workspace to which the individual belongs.
241
+ workspace_id: nil
242
+ )
243
+ end
244
+
245
+ sig do
246
+ override.returns(
247
+ {
248
+ id: String,
249
+ aml_suspicions: T::Array[Dataleon::Individual::AmlSuspicion],
250
+ auth_url: String,
251
+ certificat: Dataleon::Individual::Certificat,
252
+ checks: T::Array[Dataleon::Check],
253
+ created_at: Time,
254
+ documents: T::Array[Dataleon::Individuals::GenericDocument],
255
+ identity_card: Dataleon::Individual::IdentityCard,
256
+ number: Integer,
257
+ person: Dataleon::Individual::Person,
258
+ portal_url: String,
259
+ properties: T::Array[Dataleon::Individual::Property],
260
+ risk: Dataleon::Individual::Risk,
261
+ source_id: String,
262
+ state: String,
263
+ status: String,
264
+ tags: T::Array[Dataleon::Individual::Tag],
265
+ technical_data: Dataleon::Individual::TechnicalData,
266
+ webview_url: String,
267
+ workspace_id: String
268
+ }
269
+ )
270
+ end
271
+ def to_hash
272
+ end
273
+
274
+ class AmlSuspicion < Dataleon::Internal::Type::BaseModel
275
+ OrHash =
276
+ T.type_alias do
277
+ T.any(
278
+ Dataleon::Individual::AmlSuspicion,
279
+ Dataleon::Internal::AnyHash
280
+ )
281
+ end
282
+
283
+ # Human-readable description or title for the suspicious finding.
284
+ sig { returns(T.nilable(String)) }
285
+ attr_reader :caption
286
+
287
+ sig { params(caption: String).void }
288
+ attr_writer :caption
289
+
290
+ # Country associated with the suspicion (ISO 3166-1 alpha-2 code).
291
+ sig { returns(T.nilable(String)) }
292
+ attr_reader :country
293
+
294
+ sig { params(country: String).void }
295
+ attr_writer :country
296
+
297
+ # Gender associated with the suspicion, if applicable.
298
+ sig { returns(T.nilable(String)) }
299
+ attr_reader :gender
300
+
301
+ sig { params(gender: String).void }
302
+ attr_writer :gender
303
+
304
+ # Nature of the relationship between the entity and the suspicious activity (e.g.,
305
+ # "linked", "associated").
306
+ sig { returns(T.nilable(String)) }
307
+ attr_reader :relation
308
+
309
+ sig { params(relation: String).void }
310
+ attr_writer :relation
311
+
312
+ # Version of the evaluation schema or rule engine used.
313
+ sig { returns(T.nilable(String)) }
314
+ attr_reader :schema
315
+
316
+ sig { params(schema: String).void }
317
+ attr_writer :schema
318
+
319
+ # Risk score between 0.0 and 1 indicating the severity of the suspicion.
320
+ sig { returns(T.nilable(Float)) }
321
+ attr_reader :score
322
+
323
+ sig { params(score: Float).void }
324
+ attr_writer :score
325
+
326
+ # Source system or service providing this suspicion.
327
+ sig { returns(T.nilable(String)) }
328
+ attr_reader :source
329
+
330
+ sig { params(source: String).void }
331
+ attr_writer :source
332
+
333
+ # Status of the suspicion review process. Possible values: "true_positive",
334
+ # "false_positive", "pending".
335
+ sig do
336
+ returns(
337
+ T.nilable(Dataleon::Individual::AmlSuspicion::Status::TaggedSymbol)
338
+ )
339
+ end
340
+ attr_reader :status
341
+
342
+ sig do
343
+ params(
344
+ status: Dataleon::Individual::AmlSuspicion::Status::OrSymbol
345
+ ).void
346
+ end
347
+ attr_writer :status
348
+
349
+ # Category of the suspicion. Possible values: "crime", "sanction", "pep",
350
+ # "adverse_news", "other".
351
+ sig do
352
+ returns(
353
+ T.nilable(Dataleon::Individual::AmlSuspicion::Type::TaggedSymbol)
354
+ )
355
+ end
356
+ attr_reader :type
357
+
358
+ sig do
359
+ params(type: Dataleon::Individual::AmlSuspicion::Type::OrSymbol).void
360
+ end
361
+ attr_writer :type
362
+
363
+ # Represents a record of suspicion raised during Anti-Money Laundering (AML)
364
+ # screening. Includes metadata such as risk score, origin, and linked watchlist
365
+ # types.
366
+ sig do
367
+ params(
368
+ caption: String,
369
+ country: String,
370
+ gender: String,
371
+ relation: String,
372
+ schema: String,
373
+ score: Float,
374
+ source: String,
375
+ status: Dataleon::Individual::AmlSuspicion::Status::OrSymbol,
376
+ type: Dataleon::Individual::AmlSuspicion::Type::OrSymbol
377
+ ).returns(T.attached_class)
378
+ end
379
+ def self.new(
380
+ # Human-readable description or title for the suspicious finding.
381
+ caption: nil,
382
+ # Country associated with the suspicion (ISO 3166-1 alpha-2 code).
383
+ country: nil,
384
+ # Gender associated with the suspicion, if applicable.
385
+ gender: nil,
386
+ # Nature of the relationship between the entity and the suspicious activity (e.g.,
387
+ # "linked", "associated").
388
+ relation: nil,
389
+ # Version of the evaluation schema or rule engine used.
390
+ schema: nil,
391
+ # Risk score between 0.0 and 1 indicating the severity of the suspicion.
392
+ score: nil,
393
+ # Source system or service providing this suspicion.
394
+ source: nil,
395
+ # Status of the suspicion review process. Possible values: "true_positive",
396
+ # "false_positive", "pending".
397
+ status: nil,
398
+ # Category of the suspicion. Possible values: "crime", "sanction", "pep",
399
+ # "adverse_news", "other".
400
+ type: nil
401
+ )
402
+ end
403
+
404
+ sig do
405
+ override.returns(
406
+ {
407
+ caption: String,
408
+ country: String,
409
+ gender: String,
410
+ relation: String,
411
+ schema: String,
412
+ score: Float,
413
+ source: String,
414
+ status: Dataleon::Individual::AmlSuspicion::Status::TaggedSymbol,
415
+ type: Dataleon::Individual::AmlSuspicion::Type::TaggedSymbol
416
+ }
417
+ )
418
+ end
419
+ def to_hash
420
+ end
421
+
422
+ # Status of the suspicion review process. Possible values: "true_positive",
423
+ # "false_positive", "pending".
424
+ module Status
425
+ extend Dataleon::Internal::Type::Enum
426
+
427
+ TaggedSymbol =
428
+ T.type_alias do
429
+ T.all(Symbol, Dataleon::Individual::AmlSuspicion::Status)
430
+ end
431
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
432
+
433
+ TRUE_POSITIVE =
434
+ T.let(
435
+ :true_positive,
436
+ Dataleon::Individual::AmlSuspicion::Status::TaggedSymbol
437
+ )
438
+ FALSE_POSITIVE =
439
+ T.let(
440
+ :false_positive,
441
+ Dataleon::Individual::AmlSuspicion::Status::TaggedSymbol
442
+ )
443
+ PENDING =
444
+ T.let(
445
+ :pending,
446
+ Dataleon::Individual::AmlSuspicion::Status::TaggedSymbol
447
+ )
448
+
449
+ sig do
450
+ override.returns(
451
+ T::Array[Dataleon::Individual::AmlSuspicion::Status::TaggedSymbol]
452
+ )
453
+ end
454
+ def self.values
455
+ end
456
+ end
457
+
458
+ # Category of the suspicion. Possible values: "crime", "sanction", "pep",
459
+ # "adverse_news", "other".
460
+ module Type
461
+ extend Dataleon::Internal::Type::Enum
462
+
463
+ TaggedSymbol =
464
+ T.type_alias do
465
+ T.all(Symbol, Dataleon::Individual::AmlSuspicion::Type)
466
+ end
467
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
468
+
469
+ CRIME =
470
+ T.let(
471
+ :crime,
472
+ Dataleon::Individual::AmlSuspicion::Type::TaggedSymbol
473
+ )
474
+ SANCTION =
475
+ T.let(
476
+ :sanction,
477
+ Dataleon::Individual::AmlSuspicion::Type::TaggedSymbol
478
+ )
479
+ PEP =
480
+ T.let(:pep, Dataleon::Individual::AmlSuspicion::Type::TaggedSymbol)
481
+ ADVERSE_NEWS =
482
+ T.let(
483
+ :adverse_news,
484
+ Dataleon::Individual::AmlSuspicion::Type::TaggedSymbol
485
+ )
486
+ OTHER =
487
+ T.let(
488
+ :other,
489
+ Dataleon::Individual::AmlSuspicion::Type::TaggedSymbol
490
+ )
491
+
492
+ sig do
493
+ override.returns(
494
+ T::Array[Dataleon::Individual::AmlSuspicion::Type::TaggedSymbol]
495
+ )
496
+ end
497
+ def self.values
498
+ end
499
+ end
500
+ end
501
+
502
+ class Certificat < Dataleon::Internal::Type::BaseModel
503
+ OrHash =
504
+ T.type_alias do
505
+ T.any(Dataleon::Individual::Certificat, Dataleon::Internal::AnyHash)
506
+ end
507
+
508
+ # Unique identifier for the certificate.
509
+ sig { returns(T.nilable(String)) }
510
+ attr_reader :id
511
+
512
+ sig { params(id: String).void }
513
+ attr_writer :id
514
+
515
+ # Timestamp when the certificate was created.
516
+ sig { returns(T.nilable(Time)) }
517
+ attr_reader :created_at
518
+
519
+ sig { params(created_at: Time).void }
520
+ attr_writer :created_at
521
+
522
+ # Name of the certificate file.
523
+ sig { returns(T.nilable(String)) }
524
+ attr_reader :filename
525
+
526
+ sig { params(filename: String).void }
527
+ attr_writer :filename
528
+
529
+ # Digital certificate associated with the individual, if any.
530
+ sig do
531
+ params(id: String, created_at: Time, filename: String).returns(
532
+ T.attached_class
533
+ )
534
+ end
535
+ def self.new(
536
+ # Unique identifier for the certificate.
537
+ id: nil,
538
+ # Timestamp when the certificate was created.
539
+ created_at: nil,
540
+ # Name of the certificate file.
541
+ filename: nil
542
+ )
543
+ end
544
+
545
+ sig do
546
+ override.returns({ id: String, created_at: Time, filename: String })
547
+ end
548
+ def to_hash
549
+ end
550
+ end
551
+
552
+ class IdentityCard < Dataleon::Internal::Type::BaseModel
553
+ OrHash =
554
+ T.type_alias do
555
+ T.any(
556
+ Dataleon::Individual::IdentityCard,
557
+ Dataleon::Internal::AnyHash
558
+ )
559
+ end
560
+
561
+ # Unique identifier for the document.
562
+ sig { returns(T.nilable(String)) }
563
+ attr_reader :id
564
+
565
+ sig { params(id: String).void }
566
+ attr_writer :id
567
+
568
+ # Signed URL linking to the back image of the document.
569
+ sig { returns(T.nilable(String)) }
570
+ attr_reader :back_document_signed_url
571
+
572
+ sig { params(back_document_signed_url: String).void }
573
+ attr_writer :back_document_signed_url
574
+
575
+ # Place of birth as indicated on the document.
576
+ sig { returns(T.nilable(String)) }
577
+ attr_reader :birth_place
578
+
579
+ sig { params(birth_place: String).void }
580
+ attr_writer :birth_place
581
+
582
+ # Date of birth in DD/MM/YYYY format as shown on the document.
583
+ sig { returns(T.nilable(String)) }
584
+ attr_reader :birthday
585
+
586
+ sig { params(birthday: String).void }
587
+ attr_writer :birthday
588
+
589
+ # Country code issuing the document (ISO 3166-1 alpha-2).
590
+ sig { returns(T.nilable(String)) }
591
+ attr_reader :country
592
+
593
+ sig { params(country: String).void }
594
+ attr_writer :country
595
+
596
+ # Expiration date of the document, in YYYY-MM-DD format.
597
+ sig { returns(T.nilable(String)) }
598
+ attr_reader :expiration_date
599
+
600
+ sig { params(expiration_date: String).void }
601
+ attr_writer :expiration_date
602
+
603
+ # First name as shown on the document.
604
+ sig { returns(T.nilable(String)) }
605
+ attr_reader :first_name
606
+
607
+ sig { params(first_name: String).void }
608
+ attr_writer :first_name
609
+
610
+ # Signed URL linking to the front image of the document.
611
+ sig { returns(T.nilable(String)) }
612
+ attr_reader :front_document_signed_url
613
+
614
+ sig { params(front_document_signed_url: String).void }
615
+ attr_writer :front_document_signed_url
616
+
617
+ # Gender indicated on the document (e.g., "M" or "F").
618
+ sig { returns(T.nilable(String)) }
619
+ attr_reader :gender
620
+
621
+ sig { params(gender: String).void }
622
+ attr_writer :gender
623
+
624
+ # Date when the document was issued, in YYYY-MM-DD format.
625
+ sig { returns(T.nilable(String)) }
626
+ attr_reader :issue_date
627
+
628
+ sig { params(issue_date: String).void }
629
+ attr_writer :issue_date
630
+
631
+ # Last name as shown on the document.
632
+ sig { returns(T.nilable(String)) }
633
+ attr_reader :last_name
634
+
635
+ sig { params(last_name: String).void }
636
+ attr_writer :last_name
637
+
638
+ # First line of the Machine Readable Zone (MRZ) on the document.
639
+ sig { returns(T.nilable(String)) }
640
+ attr_reader :mrz_line_1
641
+
642
+ sig { params(mrz_line_1: String).void }
643
+ attr_writer :mrz_line_1
644
+
645
+ # Second line of the MRZ on the document.
646
+ sig { returns(T.nilable(String)) }
647
+ attr_reader :mrz_line_2
648
+
649
+ sig { params(mrz_line_2: String).void }
650
+ attr_writer :mrz_line_2
651
+
652
+ # Third line of the MRZ if applicable; otherwise null.
653
+ sig { returns(T.nilable(String)) }
654
+ attr_accessor :mrz_line_3
655
+
656
+ # Type of document (e.g., passport, identity card).
657
+ sig { returns(T.nilable(String)) }
658
+ attr_reader :type
659
+
660
+ sig { params(type: String).void }
661
+ attr_writer :type
662
+
663
+ # Reference to the individual's identity document.
664
+ sig do
665
+ params(
666
+ id: String,
667
+ back_document_signed_url: String,
668
+ birth_place: String,
669
+ birthday: String,
670
+ country: String,
671
+ expiration_date: String,
672
+ first_name: String,
673
+ front_document_signed_url: String,
674
+ gender: String,
675
+ issue_date: String,
676
+ last_name: String,
677
+ mrz_line_1: String,
678
+ mrz_line_2: String,
679
+ mrz_line_3: T.nilable(String),
680
+ type: String
681
+ ).returns(T.attached_class)
682
+ end
683
+ def self.new(
684
+ # Unique identifier for the document.
685
+ id: nil,
686
+ # Signed URL linking to the back image of the document.
687
+ back_document_signed_url: nil,
688
+ # Place of birth as indicated on the document.
689
+ birth_place: nil,
690
+ # Date of birth in DD/MM/YYYY format as shown on the document.
691
+ birthday: nil,
692
+ # Country code issuing the document (ISO 3166-1 alpha-2).
693
+ country: nil,
694
+ # Expiration date of the document, in YYYY-MM-DD format.
695
+ expiration_date: nil,
696
+ # First name as shown on the document.
697
+ first_name: nil,
698
+ # Signed URL linking to the front image of the document.
699
+ front_document_signed_url: nil,
700
+ # Gender indicated on the document (e.g., "M" or "F").
701
+ gender: nil,
702
+ # Date when the document was issued, in YYYY-MM-DD format.
703
+ issue_date: nil,
704
+ # Last name as shown on the document.
705
+ last_name: nil,
706
+ # First line of the Machine Readable Zone (MRZ) on the document.
707
+ mrz_line_1: nil,
708
+ # Second line of the MRZ on the document.
709
+ mrz_line_2: nil,
710
+ # Third line of the MRZ if applicable; otherwise null.
711
+ mrz_line_3: nil,
712
+ # Type of document (e.g., passport, identity card).
713
+ type: nil
714
+ )
715
+ end
716
+
717
+ sig do
718
+ override.returns(
719
+ {
720
+ id: String,
721
+ back_document_signed_url: String,
722
+ birth_place: String,
723
+ birthday: String,
724
+ country: String,
725
+ expiration_date: String,
726
+ first_name: String,
727
+ front_document_signed_url: String,
728
+ gender: String,
729
+ issue_date: String,
730
+ last_name: String,
731
+ mrz_line_1: String,
732
+ mrz_line_2: String,
733
+ mrz_line_3: T.nilable(String),
734
+ type: String
735
+ }
736
+ )
737
+ end
738
+ def to_hash
739
+ end
740
+ end
741
+
742
+ class Person < Dataleon::Internal::Type::BaseModel
743
+ OrHash =
744
+ T.type_alias do
745
+ T.any(Dataleon::Individual::Person, Dataleon::Internal::AnyHash)
746
+ end
747
+
748
+ # Date of birth, formatted as DD/MM/YYYY.
749
+ sig { returns(T.nilable(String)) }
750
+ attr_reader :birthday
751
+
752
+ sig { params(birthday: String).void }
753
+ attr_writer :birthday
754
+
755
+ # Email address of the individual.
756
+ sig { returns(T.nilable(String)) }
757
+ attr_reader :email
758
+
759
+ sig { params(email: String).void }
760
+ attr_writer :email
761
+
762
+ # Signed URL linking to the person’s face image.
763
+ sig { returns(T.nilable(String)) }
764
+ attr_reader :face_image_signed_url
765
+
766
+ sig { params(face_image_signed_url: String).void }
767
+ attr_writer :face_image_signed_url
768
+
769
+ # First (given) name of the person.
770
+ sig { returns(T.nilable(String)) }
771
+ attr_reader :first_name
772
+
773
+ sig { params(first_name: String).void }
774
+ attr_writer :first_name
775
+
776
+ # Full name of the person, typically concatenation of first and last names.
777
+ sig { returns(T.nilable(String)) }
778
+ attr_reader :full_name
779
+
780
+ sig { params(full_name: String).void }
781
+ attr_writer :full_name
782
+
783
+ # Gender of the individual (e.g., "M" for male, "F" for female).
784
+ sig { returns(T.nilable(String)) }
785
+ attr_reader :gender
786
+
787
+ sig { params(gender: String).void }
788
+ attr_writer :gender
789
+
790
+ # Last (family) name of the person.
791
+ sig { returns(T.nilable(String)) }
792
+ attr_reader :last_name
793
+
794
+ sig { params(last_name: String).void }
795
+ attr_writer :last_name
796
+
797
+ # Maiden name of the person, if applicable.
798
+ sig { returns(T.nilable(String)) }
799
+ attr_reader :maiden_name
800
+
801
+ sig { params(maiden_name: String).void }
802
+ attr_writer :maiden_name
803
+
804
+ # Contact phone number including country code.
805
+ sig { returns(T.nilable(String)) }
806
+ attr_reader :phone_number
807
+
808
+ sig { params(phone_number: String).void }
809
+ attr_writer :phone_number
810
+
811
+ # Personal details of the individual, such as name, date of birth, and contact
812
+ # info.
813
+ sig do
814
+ params(
815
+ birthday: String,
816
+ email: String,
817
+ face_image_signed_url: String,
818
+ first_name: String,
819
+ full_name: String,
820
+ gender: String,
821
+ last_name: String,
822
+ maiden_name: String,
823
+ phone_number: String
824
+ ).returns(T.attached_class)
825
+ end
826
+ def self.new(
827
+ # Date of birth, formatted as DD/MM/YYYY.
828
+ birthday: nil,
829
+ # Email address of the individual.
830
+ email: nil,
831
+ # Signed URL linking to the person’s face image.
832
+ face_image_signed_url: nil,
833
+ # First (given) name of the person.
834
+ first_name: nil,
835
+ # Full name of the person, typically concatenation of first and last names.
836
+ full_name: nil,
837
+ # Gender of the individual (e.g., "M" for male, "F" for female).
838
+ gender: nil,
839
+ # Last (family) name of the person.
840
+ last_name: nil,
841
+ # Maiden name of the person, if applicable.
842
+ maiden_name: nil,
843
+ # Contact phone number including country code.
844
+ phone_number: nil
845
+ )
846
+ end
847
+
848
+ sig do
849
+ override.returns(
850
+ {
851
+ birthday: String,
852
+ email: String,
853
+ face_image_signed_url: String,
854
+ first_name: String,
855
+ full_name: String,
856
+ gender: String,
857
+ last_name: String,
858
+ maiden_name: String,
859
+ phone_number: String
860
+ }
861
+ )
862
+ end
863
+ def to_hash
864
+ end
865
+ end
866
+
867
+ class Property < Dataleon::Internal::Type::BaseModel
868
+ OrHash =
869
+ T.type_alias do
870
+ T.any(Dataleon::Individual::Property, Dataleon::Internal::AnyHash)
871
+ end
872
+
873
+ # Name/key of the property.
874
+ sig { returns(T.nilable(String)) }
875
+ attr_reader :name
876
+
877
+ sig { params(name: String).void }
878
+ attr_writer :name
879
+
880
+ # Data type of the property value.
881
+ sig { returns(T.nilable(String)) }
882
+ attr_reader :type
883
+
884
+ sig { params(type: String).void }
885
+ attr_writer :type
886
+
887
+ # Value associated with the property name.
888
+ sig { returns(T.nilable(String)) }
889
+ attr_reader :value
890
+
891
+ sig { params(value: String).void }
892
+ attr_writer :value
893
+
894
+ # Represents a generic property key-value pair with a specified type.
895
+ sig do
896
+ params(name: String, type: String, value: String).returns(
897
+ T.attached_class
898
+ )
899
+ end
900
+ def self.new(
901
+ # Name/key of the property.
902
+ name: nil,
903
+ # Data type of the property value.
904
+ type: nil,
905
+ # Value associated with the property name.
906
+ value: nil
907
+ )
908
+ end
909
+
910
+ sig { override.returns({ name: String, type: String, value: String }) }
911
+ def to_hash
912
+ end
913
+ end
914
+
915
+ class Risk < Dataleon::Internal::Type::BaseModel
916
+ OrHash =
917
+ T.type_alias do
918
+ T.any(Dataleon::Individual::Risk, Dataleon::Internal::AnyHash)
919
+ end
920
+
921
+ # Risk category or code identifier.
922
+ sig { returns(T.nilable(String)) }
923
+ attr_reader :code
924
+
925
+ sig { params(code: String).void }
926
+ attr_writer :code
927
+
928
+ # Explanation or justification for the assigned risk.
929
+ sig { returns(T.nilable(String)) }
930
+ attr_reader :reason
931
+
932
+ sig { params(reason: String).void }
933
+ attr_writer :reason
934
+
935
+ # Numeric risk score between 0.0 and 1.0 indicating severity or confidence.
936
+ sig { returns(T.nilable(Float)) }
937
+ attr_reader :score
938
+
939
+ sig { params(score: Float).void }
940
+ attr_writer :score
941
+
942
+ # Risk assessment associated with the individual.
943
+ sig do
944
+ params(code: String, reason: String, score: Float).returns(
945
+ T.attached_class
946
+ )
947
+ end
948
+ def self.new(
949
+ # Risk category or code identifier.
950
+ code: nil,
951
+ # Explanation or justification for the assigned risk.
952
+ reason: nil,
953
+ # Numeric risk score between 0.0 and 1.0 indicating severity or confidence.
954
+ score: nil
955
+ )
956
+ end
957
+
958
+ sig { override.returns({ code: String, reason: String, score: Float }) }
959
+ def to_hash
960
+ end
961
+ end
962
+
963
+ class Tag < Dataleon::Internal::Type::BaseModel
964
+ OrHash =
965
+ T.type_alias do
966
+ T.any(Dataleon::Individual::Tag, Dataleon::Internal::AnyHash)
967
+ end
968
+
969
+ # Name of the tag used to identify the metadata field.
970
+ sig { returns(T.nilable(String)) }
971
+ attr_reader :key
972
+
973
+ sig { params(key: String).void }
974
+ attr_writer :key
975
+
976
+ # Indicates whether the tag is private (not visible to external users).
977
+ sig { returns(T.nilable(T::Boolean)) }
978
+ attr_reader :private
979
+
980
+ sig { params(private: T::Boolean).void }
981
+ attr_writer :private
982
+
983
+ # Data type of the tag value (e.g., "string", "number", "boolean").
984
+ sig { returns(T.nilable(String)) }
985
+ attr_reader :type
986
+
987
+ sig { params(type: String).void }
988
+ attr_writer :type
989
+
990
+ # Value assigned to the tag.
991
+ sig { returns(T.nilable(String)) }
992
+ attr_reader :value
993
+
994
+ sig { params(value: String).void }
995
+ attr_writer :value
996
+
997
+ # Represents a key-value metadata tag that can be associated with entities such as
998
+ # individuals or companies.
999
+ sig do
1000
+ params(
1001
+ key: String,
1002
+ private: T::Boolean,
1003
+ type: String,
1004
+ value: String
1005
+ ).returns(T.attached_class)
1006
+ end
1007
+ def self.new(
1008
+ # Name of the tag used to identify the metadata field.
1009
+ key: nil,
1010
+ # Indicates whether the tag is private (not visible to external users).
1011
+ private: nil,
1012
+ # Data type of the tag value (e.g., "string", "number", "boolean").
1013
+ type: nil,
1014
+ # Value assigned to the tag.
1015
+ value: nil
1016
+ )
1017
+ end
1018
+
1019
+ sig do
1020
+ override.returns(
1021
+ { key: String, private: T::Boolean, type: String, value: String }
1022
+ )
1023
+ end
1024
+ def to_hash
1025
+ end
1026
+ end
1027
+
1028
+ class TechnicalData < Dataleon::Internal::Type::BaseModel
1029
+ OrHash =
1030
+ T.type_alias do
1031
+ T.any(
1032
+ Dataleon::Individual::TechnicalData,
1033
+ Dataleon::Internal::AnyHash
1034
+ )
1035
+ end
1036
+
1037
+ # Flag indicating whether there are active research AML (Anti-Money Laundering)
1038
+ # suspicions for the object when you apply for a new entry or get an existing one.
1039
+ sig { returns(T.nilable(T::Boolean)) }
1040
+ attr_reader :active_aml_suspicions
1041
+
1042
+ sig { params(active_aml_suspicions: T::Boolean).void }
1043
+ attr_writer :active_aml_suspicions
1044
+
1045
+ # Version number of the API used.
1046
+ sig { returns(T.nilable(Integer)) }
1047
+ attr_reader :api_version
1048
+
1049
+ sig { params(api_version: Integer).void }
1050
+ attr_writer :api_version
1051
+
1052
+ # Timestamp when the request or process was approved.
1053
+ sig { returns(T.nilable(Time)) }
1054
+ attr_reader :approved_at
1055
+
1056
+ sig { params(approved_at: Time).void }
1057
+ attr_writer :approved_at
1058
+
1059
+ # URL to receive callback data from the AML system.
1060
+ sig { returns(T.nilable(String)) }
1061
+ attr_reader :callback_url
1062
+
1063
+ sig { params(callback_url: String).void }
1064
+ attr_writer :callback_url
1065
+
1066
+ # URL to receive notification updates about the processing status.
1067
+ sig { returns(T.nilable(String)) }
1068
+ attr_reader :callback_url_notification
1069
+
1070
+ sig { params(callback_url_notification: String).void }
1071
+ attr_writer :callback_url_notification
1072
+
1073
+ # Flag to indicate if notifications are disabled.
1074
+ sig { returns(T.nilable(T::Boolean)) }
1075
+ attr_reader :disable_notification
1076
+
1077
+ sig { params(disable_notification: T::Boolean).void }
1078
+ attr_writer :disable_notification
1079
+
1080
+ # Timestamp when notifications were disabled; null if never disabled.
1081
+ sig { returns(T.nilable(Time)) }
1082
+ attr_accessor :disable_notification_date
1083
+
1084
+ # Export format defined by the API (e.g., "json", "xml").
1085
+ sig { returns(T.nilable(String)) }
1086
+ attr_reader :export_type
1087
+
1088
+ sig { params(export_type: String).void }
1089
+ attr_writer :export_type
1090
+
1091
+ # Timestamp when the process finished.
1092
+ sig { returns(T.nilable(Time)) }
1093
+ attr_reader :finished_at
1094
+
1095
+ sig { params(finished_at: Time).void }
1096
+ attr_writer :finished_at
1097
+
1098
+ # IP address of the our system handling the request.
1099
+ sig { returns(T.nilable(String)) }
1100
+ attr_reader :ip
1101
+
1102
+ sig { params(ip: String).void }
1103
+ attr_writer :ip
1104
+
1105
+ # Language preference used in the client workspace (e.g., "fra").
1106
+ sig { returns(T.nilable(String)) }
1107
+ attr_reader :language
1108
+
1109
+ sig { params(language: String).void }
1110
+ attr_writer :language
1111
+
1112
+ # IP address of the end client (final user) captured.
1113
+ sig { returns(T.nilable(String)) }
1114
+ attr_reader :location_ip
1115
+
1116
+ sig { params(location_ip: String).void }
1117
+ attr_writer :location_ip
1118
+
1119
+ # Timestamp indicating when the request or process needs review; null if none.
1120
+ sig { returns(T.nilable(Time)) }
1121
+ attr_accessor :need_review_at
1122
+
1123
+ # Flag indicating if notification confirmation is required or received.
1124
+ sig { returns(T.nilable(T::Boolean)) }
1125
+ attr_reader :notification_confirmation
1126
+
1127
+ sig { params(notification_confirmation: T::Boolean).void }
1128
+ attr_writer :notification_confirmation
1129
+
1130
+ # Indicates whether QR code is enabled ("true" or "false").
1131
+ sig { returns(T.nilable(String)) }
1132
+ attr_reader :qr_code
1133
+
1134
+ sig { params(qr_code: String).void }
1135
+ attr_writer :qr_code
1136
+
1137
+ # Flag indicating whether to include raw data in the response.
1138
+ sig { returns(T.nilable(T::Boolean)) }
1139
+ attr_reader :raw_data
1140
+
1141
+ sig { params(raw_data: T::Boolean).void }
1142
+ attr_writer :raw_data
1143
+
1144
+ # Timestamp when the request or process was rejected; null if not rejected.
1145
+ sig { returns(T.nilable(Time)) }
1146
+ attr_accessor :rejected_at
1147
+
1148
+ # Duration of the user session in seconds.
1149
+ sig { returns(T.nilable(Integer)) }
1150
+ attr_reader :session_duration
1151
+
1152
+ sig { params(session_duration: Integer).void }
1153
+ attr_writer :session_duration
1154
+
1155
+ # Timestamp when the process started.
1156
+ sig { returns(T.nilable(Time)) }
1157
+ attr_reader :started_at
1158
+
1159
+ sig { params(started_at: Time).void }
1160
+ attr_writer :started_at
1161
+
1162
+ # Date/time of data transfer.
1163
+ sig { returns(T.nilable(Time)) }
1164
+ attr_reader :transfer_at
1165
+
1166
+ sig { params(transfer_at: Time).void }
1167
+ attr_writer :transfer_at
1168
+
1169
+ # Mode of data transfer.
1170
+ sig { returns(T.nilable(String)) }
1171
+ attr_reader :transfer_mode
1172
+
1173
+ sig { params(transfer_mode: String).void }
1174
+ attr_writer :transfer_mode
1175
+
1176
+ # Technical metadata related to the request (e.g., QR code settings, language).
1177
+ sig do
1178
+ params(
1179
+ active_aml_suspicions: T::Boolean,
1180
+ api_version: Integer,
1181
+ approved_at: Time,
1182
+ callback_url: String,
1183
+ callback_url_notification: String,
1184
+ disable_notification: T::Boolean,
1185
+ disable_notification_date: T.nilable(Time),
1186
+ export_type: String,
1187
+ finished_at: Time,
1188
+ ip: String,
1189
+ language: String,
1190
+ location_ip: String,
1191
+ need_review_at: T.nilable(Time),
1192
+ notification_confirmation: T::Boolean,
1193
+ qr_code: String,
1194
+ raw_data: T::Boolean,
1195
+ rejected_at: T.nilable(Time),
1196
+ session_duration: Integer,
1197
+ started_at: Time,
1198
+ transfer_at: Time,
1199
+ transfer_mode: String
1200
+ ).returns(T.attached_class)
1201
+ end
1202
+ def self.new(
1203
+ # Flag indicating whether there are active research AML (Anti-Money Laundering)
1204
+ # suspicions for the object when you apply for a new entry or get an existing one.
1205
+ active_aml_suspicions: nil,
1206
+ # Version number of the API used.
1207
+ api_version: nil,
1208
+ # Timestamp when the request or process was approved.
1209
+ approved_at: nil,
1210
+ # URL to receive callback data from the AML system.
1211
+ callback_url: nil,
1212
+ # URL to receive notification updates about the processing status.
1213
+ callback_url_notification: nil,
1214
+ # Flag to indicate if notifications are disabled.
1215
+ disable_notification: nil,
1216
+ # Timestamp when notifications were disabled; null if never disabled.
1217
+ disable_notification_date: nil,
1218
+ # Export format defined by the API (e.g., "json", "xml").
1219
+ export_type: nil,
1220
+ # Timestamp when the process finished.
1221
+ finished_at: nil,
1222
+ # IP address of the our system handling the request.
1223
+ ip: nil,
1224
+ # Language preference used in the client workspace (e.g., "fra").
1225
+ language: nil,
1226
+ # IP address of the end client (final user) captured.
1227
+ location_ip: nil,
1228
+ # Timestamp indicating when the request or process needs review; null if none.
1229
+ need_review_at: nil,
1230
+ # Flag indicating if notification confirmation is required or received.
1231
+ notification_confirmation: nil,
1232
+ # Indicates whether QR code is enabled ("true" or "false").
1233
+ qr_code: nil,
1234
+ # Flag indicating whether to include raw data in the response.
1235
+ raw_data: nil,
1236
+ # Timestamp when the request or process was rejected; null if not rejected.
1237
+ rejected_at: nil,
1238
+ # Duration of the user session in seconds.
1239
+ session_duration: nil,
1240
+ # Timestamp when the process started.
1241
+ started_at: nil,
1242
+ # Date/time of data transfer.
1243
+ transfer_at: nil,
1244
+ # Mode of data transfer.
1245
+ transfer_mode: nil
1246
+ )
1247
+ end
1248
+
1249
+ sig do
1250
+ override.returns(
1251
+ {
1252
+ active_aml_suspicions: T::Boolean,
1253
+ api_version: Integer,
1254
+ approved_at: Time,
1255
+ callback_url: String,
1256
+ callback_url_notification: String,
1257
+ disable_notification: T::Boolean,
1258
+ disable_notification_date: T.nilable(Time),
1259
+ export_type: String,
1260
+ finished_at: Time,
1261
+ ip: String,
1262
+ language: String,
1263
+ location_ip: String,
1264
+ need_review_at: T.nilable(Time),
1265
+ notification_confirmation: T::Boolean,
1266
+ qr_code: String,
1267
+ raw_data: T::Boolean,
1268
+ rejected_at: T.nilable(Time),
1269
+ session_duration: Integer,
1270
+ started_at: Time,
1271
+ transfer_at: Time,
1272
+ transfer_mode: String
1273
+ }
1274
+ )
1275
+ end
1276
+ def to_hash
1277
+ end
1278
+ end
1279
+ end
1280
+ end
1281
+ end