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,1628 @@
1
+ # typed: strong
2
+
3
+ module Dataleon
4
+ module Models
5
+ class CompanyRegistration < Dataleon::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Dataleon::CompanyRegistration, Dataleon::Internal::AnyHash)
9
+ end
10
+
11
+ # List of AML (Anti-Money Laundering) suspicion entries linked to the company,
12
+ # including their details.
13
+ sig do
14
+ returns(
15
+ T.nilable(T::Array[Dataleon::CompanyRegistration::AmlSuspicion])
16
+ )
17
+ end
18
+ attr_reader :aml_suspicions
19
+
20
+ sig do
21
+ params(
22
+ aml_suspicions:
23
+ T::Array[Dataleon::CompanyRegistration::AmlSuspicion::OrHash]
24
+ ).void
25
+ end
26
+ attr_writer :aml_suspicions
27
+
28
+ # Digital certificate associated with the company, if any, including its creation
29
+ # timestamp and filename.
30
+ sig { returns(T.nilable(Dataleon::CompanyRegistration::Certificat)) }
31
+ attr_reader :certificat
32
+
33
+ sig do
34
+ params(
35
+ certificat: Dataleon::CompanyRegistration::Certificat::OrHash
36
+ ).void
37
+ end
38
+ attr_writer :certificat
39
+
40
+ # List of verification or validation checks applied to the company, including
41
+ # their results and messages.
42
+ sig { returns(T.nilable(T::Array[Dataleon::Check])) }
43
+ attr_reader :checks
44
+
45
+ sig { params(checks: T::Array[Dataleon::Check::OrHash]).void }
46
+ attr_writer :checks
47
+
48
+ # Main information about the company being registered, including legal name,
49
+ # registration ID, and address.
50
+ sig { returns(T.nilable(Dataleon::CompanyRegistration::Company)) }
51
+ attr_reader :company
52
+
53
+ sig do
54
+ params(company: Dataleon::CompanyRegistration::Company::OrHash).void
55
+ end
56
+ attr_writer :company
57
+
58
+ # All documents submitted or associated with the company, including their metadata
59
+ # and processing status.
60
+ sig do
61
+ returns(T.nilable(T::Array[Dataleon::Individuals::GenericDocument]))
62
+ end
63
+ attr_reader :documents
64
+
65
+ sig do
66
+ params(
67
+ documents: T::Array[Dataleon::Individuals::GenericDocument::OrHash]
68
+ ).void
69
+ end
70
+ attr_writer :documents
71
+
72
+ # List of members or actors associated with the company, including personal and
73
+ # ownership information.
74
+ sig do
75
+ returns(T.nilable(T::Array[Dataleon::CompanyRegistration::Member]))
76
+ end
77
+ attr_reader :members
78
+
79
+ sig do
80
+ params(
81
+ members: T::Array[Dataleon::CompanyRegistration::Member::OrHash]
82
+ ).void
83
+ end
84
+ attr_writer :members
85
+
86
+ # Admin or internal portal URL for viewing the company's details, typically used
87
+ # by internal users.
88
+ sig { returns(T.nilable(String)) }
89
+ attr_reader :portal_url
90
+
91
+ sig { params(portal_url: String).void }
92
+ attr_writer :portal_url
93
+
94
+ # Custom key-value metadata fields associated with the company, allowing for
95
+ # flexible data storage.
96
+ sig do
97
+ returns(T.nilable(T::Array[Dataleon::CompanyRegistration::Property]))
98
+ end
99
+ attr_reader :properties
100
+
101
+ sig do
102
+ params(
103
+ properties: T::Array[Dataleon::CompanyRegistration::Property::OrHash]
104
+ ).void
105
+ end
106
+ attr_writer :properties
107
+
108
+ # Risk assessment associated with the company, including a risk code, reason, and
109
+ # confidence score.
110
+ sig { returns(T.nilable(Dataleon::CompanyRegistration::Risk)) }
111
+ attr_reader :risk
112
+
113
+ sig { params(risk: Dataleon::CompanyRegistration::Risk::OrHash).void }
114
+ attr_writer :risk
115
+
116
+ # Optional identifier indicating the source of the company record, useful for
117
+ # tracking or integration purposes.
118
+ sig { returns(T.nilable(String)) }
119
+ attr_reader :source_id
120
+
121
+ sig { params(source_id: String).void }
122
+ attr_writer :source_id
123
+
124
+ # Technical metadata related to the request, such as IP address, QR code settings,
125
+ # and callback URLs.
126
+ sig { returns(T.nilable(Dataleon::CompanyRegistration::TechnicalData)) }
127
+ attr_reader :technical_data
128
+
129
+ sig do
130
+ params(
131
+ technical_data: Dataleon::CompanyRegistration::TechnicalData::OrHash
132
+ ).void
133
+ end
134
+ attr_writer :technical_data
135
+
136
+ # Public-facing webview URL for the company’s identification process, allowing
137
+ # external access to the company data.
138
+ sig { returns(T.nilable(String)) }
139
+ attr_reader :webview_url
140
+
141
+ sig { params(webview_url: String).void }
142
+ attr_writer :webview_url
143
+
144
+ sig do
145
+ params(
146
+ aml_suspicions:
147
+ T::Array[Dataleon::CompanyRegistration::AmlSuspicion::OrHash],
148
+ certificat: Dataleon::CompanyRegistration::Certificat::OrHash,
149
+ checks: T::Array[Dataleon::Check::OrHash],
150
+ company: Dataleon::CompanyRegistration::Company::OrHash,
151
+ documents: T::Array[Dataleon::Individuals::GenericDocument::OrHash],
152
+ members: T::Array[Dataleon::CompanyRegistration::Member::OrHash],
153
+ portal_url: String,
154
+ properties: T::Array[Dataleon::CompanyRegistration::Property::OrHash],
155
+ risk: Dataleon::CompanyRegistration::Risk::OrHash,
156
+ source_id: String,
157
+ technical_data: Dataleon::CompanyRegistration::TechnicalData::OrHash,
158
+ webview_url: String
159
+ ).returns(T.attached_class)
160
+ end
161
+ def self.new(
162
+ # List of AML (Anti-Money Laundering) suspicion entries linked to the company,
163
+ # including their details.
164
+ aml_suspicions: nil,
165
+ # Digital certificate associated with the company, if any, including its creation
166
+ # timestamp and filename.
167
+ certificat: nil,
168
+ # List of verification or validation checks applied to the company, including
169
+ # their results and messages.
170
+ checks: nil,
171
+ # Main information about the company being registered, including legal name,
172
+ # registration ID, and address.
173
+ company: nil,
174
+ # All documents submitted or associated with the company, including their metadata
175
+ # and processing status.
176
+ documents: nil,
177
+ # List of members or actors associated with the company, including personal and
178
+ # ownership information.
179
+ members: nil,
180
+ # Admin or internal portal URL for viewing the company's details, typically used
181
+ # by internal users.
182
+ portal_url: nil,
183
+ # Custom key-value metadata fields associated with the company, allowing for
184
+ # flexible data storage.
185
+ properties: nil,
186
+ # Risk assessment associated with the company, including a risk code, reason, and
187
+ # confidence score.
188
+ risk: nil,
189
+ # Optional identifier indicating the source of the company record, useful for
190
+ # tracking or integration purposes.
191
+ source_id: nil,
192
+ # Technical metadata related to the request, such as IP address, QR code settings,
193
+ # and callback URLs.
194
+ technical_data: nil,
195
+ # Public-facing webview URL for the company’s identification process, allowing
196
+ # external access to the company data.
197
+ webview_url: nil
198
+ )
199
+ end
200
+
201
+ sig do
202
+ override.returns(
203
+ {
204
+ aml_suspicions:
205
+ T::Array[Dataleon::CompanyRegistration::AmlSuspicion],
206
+ certificat: Dataleon::CompanyRegistration::Certificat,
207
+ checks: T::Array[Dataleon::Check],
208
+ company: Dataleon::CompanyRegistration::Company,
209
+ documents: T::Array[Dataleon::Individuals::GenericDocument],
210
+ members: T::Array[Dataleon::CompanyRegistration::Member],
211
+ portal_url: String,
212
+ properties: T::Array[Dataleon::CompanyRegistration::Property],
213
+ risk: Dataleon::CompanyRegistration::Risk,
214
+ source_id: String,
215
+ technical_data: Dataleon::CompanyRegistration::TechnicalData,
216
+ webview_url: String
217
+ }
218
+ )
219
+ end
220
+ def to_hash
221
+ end
222
+
223
+ class AmlSuspicion < Dataleon::Internal::Type::BaseModel
224
+ OrHash =
225
+ T.type_alias do
226
+ T.any(
227
+ Dataleon::CompanyRegistration::AmlSuspicion,
228
+ Dataleon::Internal::AnyHash
229
+ )
230
+ end
231
+
232
+ # Human-readable description or title for the suspicious finding.
233
+ sig { returns(T.nilable(String)) }
234
+ attr_reader :caption
235
+
236
+ sig { params(caption: String).void }
237
+ attr_writer :caption
238
+
239
+ # Country associated with the suspicion (ISO 3166-1 alpha-2 code).
240
+ sig { returns(T.nilable(String)) }
241
+ attr_reader :country
242
+
243
+ sig { params(country: String).void }
244
+ attr_writer :country
245
+
246
+ # Gender associated with the suspicion, if applicable.
247
+ sig { returns(T.nilable(String)) }
248
+ attr_reader :gender
249
+
250
+ sig { params(gender: String).void }
251
+ attr_writer :gender
252
+
253
+ # Nature of the relationship between the entity and the suspicious activity (e.g.,
254
+ # "linked", "associated").
255
+ sig { returns(T.nilable(String)) }
256
+ attr_reader :relation
257
+
258
+ sig { params(relation: String).void }
259
+ attr_writer :relation
260
+
261
+ # Version of the evaluation schema or rule engine used.
262
+ sig { returns(T.nilable(String)) }
263
+ attr_reader :schema
264
+
265
+ sig { params(schema: String).void }
266
+ attr_writer :schema
267
+
268
+ # Risk score between 0.0 and 1 indicating the severity of the suspicion.
269
+ sig { returns(T.nilable(Float)) }
270
+ attr_reader :score
271
+
272
+ sig { params(score: Float).void }
273
+ attr_writer :score
274
+
275
+ # Source system or service providing this suspicion.
276
+ sig { returns(T.nilable(String)) }
277
+ attr_reader :source
278
+
279
+ sig { params(source: String).void }
280
+ attr_writer :source
281
+
282
+ # Status of the suspicion review process. Possible values: "true_positive",
283
+ # "false_positive", "pending".
284
+ sig do
285
+ returns(
286
+ T.nilable(
287
+ Dataleon::CompanyRegistration::AmlSuspicion::Status::TaggedSymbol
288
+ )
289
+ )
290
+ end
291
+ attr_reader :status
292
+
293
+ sig do
294
+ params(
295
+ status:
296
+ Dataleon::CompanyRegistration::AmlSuspicion::Status::OrSymbol
297
+ ).void
298
+ end
299
+ attr_writer :status
300
+
301
+ # Category of the suspicion. Possible values: "crime", "sanction", "pep",
302
+ # "adverse_news", "other".
303
+ sig do
304
+ returns(
305
+ T.nilable(
306
+ Dataleon::CompanyRegistration::AmlSuspicion::Type::TaggedSymbol
307
+ )
308
+ )
309
+ end
310
+ attr_reader :type
311
+
312
+ sig do
313
+ params(
314
+ type: Dataleon::CompanyRegistration::AmlSuspicion::Type::OrSymbol
315
+ ).void
316
+ end
317
+ attr_writer :type
318
+
319
+ # Represents a record of suspicion raised during Anti-Money Laundering (AML)
320
+ # screening. Includes metadata such as risk score, origin, and linked watchlist
321
+ # types.
322
+ sig do
323
+ params(
324
+ caption: String,
325
+ country: String,
326
+ gender: String,
327
+ relation: String,
328
+ schema: String,
329
+ score: Float,
330
+ source: String,
331
+ status:
332
+ Dataleon::CompanyRegistration::AmlSuspicion::Status::OrSymbol,
333
+ type: Dataleon::CompanyRegistration::AmlSuspicion::Type::OrSymbol
334
+ ).returns(T.attached_class)
335
+ end
336
+ def self.new(
337
+ # Human-readable description or title for the suspicious finding.
338
+ caption: nil,
339
+ # Country associated with the suspicion (ISO 3166-1 alpha-2 code).
340
+ country: nil,
341
+ # Gender associated with the suspicion, if applicable.
342
+ gender: nil,
343
+ # Nature of the relationship between the entity and the suspicious activity (e.g.,
344
+ # "linked", "associated").
345
+ relation: nil,
346
+ # Version of the evaluation schema or rule engine used.
347
+ schema: nil,
348
+ # Risk score between 0.0 and 1 indicating the severity of the suspicion.
349
+ score: nil,
350
+ # Source system or service providing this suspicion.
351
+ source: nil,
352
+ # Status of the suspicion review process. Possible values: "true_positive",
353
+ # "false_positive", "pending".
354
+ status: nil,
355
+ # Category of the suspicion. Possible values: "crime", "sanction", "pep",
356
+ # "adverse_news", "other".
357
+ type: nil
358
+ )
359
+ end
360
+
361
+ sig do
362
+ override.returns(
363
+ {
364
+ caption: String,
365
+ country: String,
366
+ gender: String,
367
+ relation: String,
368
+ schema: String,
369
+ score: Float,
370
+ source: String,
371
+ status:
372
+ Dataleon::CompanyRegistration::AmlSuspicion::Status::TaggedSymbol,
373
+ type:
374
+ Dataleon::CompanyRegistration::AmlSuspicion::Type::TaggedSymbol
375
+ }
376
+ )
377
+ end
378
+ def to_hash
379
+ end
380
+
381
+ # Status of the suspicion review process. Possible values: "true_positive",
382
+ # "false_positive", "pending".
383
+ module Status
384
+ extend Dataleon::Internal::Type::Enum
385
+
386
+ TaggedSymbol =
387
+ T.type_alias do
388
+ T.all(Symbol, Dataleon::CompanyRegistration::AmlSuspicion::Status)
389
+ end
390
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
391
+
392
+ TRUE_POSITIVE =
393
+ T.let(
394
+ :true_positive,
395
+ Dataleon::CompanyRegistration::AmlSuspicion::Status::TaggedSymbol
396
+ )
397
+ FALSE_POSITIVE =
398
+ T.let(
399
+ :false_positive,
400
+ Dataleon::CompanyRegistration::AmlSuspicion::Status::TaggedSymbol
401
+ )
402
+ PENDING =
403
+ T.let(
404
+ :pending,
405
+ Dataleon::CompanyRegistration::AmlSuspicion::Status::TaggedSymbol
406
+ )
407
+
408
+ sig do
409
+ override.returns(
410
+ T::Array[
411
+ Dataleon::CompanyRegistration::AmlSuspicion::Status::TaggedSymbol
412
+ ]
413
+ )
414
+ end
415
+ def self.values
416
+ end
417
+ end
418
+
419
+ # Category of the suspicion. Possible values: "crime", "sanction", "pep",
420
+ # "adverse_news", "other".
421
+ module Type
422
+ extend Dataleon::Internal::Type::Enum
423
+
424
+ TaggedSymbol =
425
+ T.type_alias do
426
+ T.all(Symbol, Dataleon::CompanyRegistration::AmlSuspicion::Type)
427
+ end
428
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
429
+
430
+ CRIME =
431
+ T.let(
432
+ :crime,
433
+ Dataleon::CompanyRegistration::AmlSuspicion::Type::TaggedSymbol
434
+ )
435
+ SANCTION =
436
+ T.let(
437
+ :sanction,
438
+ Dataleon::CompanyRegistration::AmlSuspicion::Type::TaggedSymbol
439
+ )
440
+ PEP =
441
+ T.let(
442
+ :pep,
443
+ Dataleon::CompanyRegistration::AmlSuspicion::Type::TaggedSymbol
444
+ )
445
+ ADVERSE_NEWS =
446
+ T.let(
447
+ :adverse_news,
448
+ Dataleon::CompanyRegistration::AmlSuspicion::Type::TaggedSymbol
449
+ )
450
+ OTHER =
451
+ T.let(
452
+ :other,
453
+ Dataleon::CompanyRegistration::AmlSuspicion::Type::TaggedSymbol
454
+ )
455
+
456
+ sig do
457
+ override.returns(
458
+ T::Array[
459
+ Dataleon::CompanyRegistration::AmlSuspicion::Type::TaggedSymbol
460
+ ]
461
+ )
462
+ end
463
+ def self.values
464
+ end
465
+ end
466
+ end
467
+
468
+ class Certificat < Dataleon::Internal::Type::BaseModel
469
+ OrHash =
470
+ T.type_alias do
471
+ T.any(
472
+ Dataleon::CompanyRegistration::Certificat,
473
+ Dataleon::Internal::AnyHash
474
+ )
475
+ end
476
+
477
+ # Unique identifier for the certificate.
478
+ sig { returns(T.nilable(String)) }
479
+ attr_reader :id
480
+
481
+ sig { params(id: String).void }
482
+ attr_writer :id
483
+
484
+ # Timestamp when the certificate was created.
485
+ sig { returns(T.nilable(Time)) }
486
+ attr_reader :created_at
487
+
488
+ sig { params(created_at: Time).void }
489
+ attr_writer :created_at
490
+
491
+ # Name of the certificate file.
492
+ sig { returns(T.nilable(String)) }
493
+ attr_reader :filename
494
+
495
+ sig { params(filename: String).void }
496
+ attr_writer :filename
497
+
498
+ # Digital certificate associated with the company, if any, including its creation
499
+ # timestamp and filename.
500
+ sig do
501
+ params(id: String, created_at: Time, filename: String).returns(
502
+ T.attached_class
503
+ )
504
+ end
505
+ def self.new(
506
+ # Unique identifier for the certificate.
507
+ id: nil,
508
+ # Timestamp when the certificate was created.
509
+ created_at: nil,
510
+ # Name of the certificate file.
511
+ filename: nil
512
+ )
513
+ end
514
+
515
+ sig do
516
+ override.returns({ id: String, created_at: Time, filename: String })
517
+ end
518
+ def to_hash
519
+ end
520
+ end
521
+
522
+ class Company < Dataleon::Internal::Type::BaseModel
523
+ OrHash =
524
+ T.type_alias do
525
+ T.any(
526
+ Dataleon::CompanyRegistration::Company,
527
+ Dataleon::Internal::AnyHash
528
+ )
529
+ end
530
+
531
+ # Full registered address of the company.
532
+ sig { returns(T.nilable(String)) }
533
+ attr_reader :address
534
+
535
+ sig { params(address: String).void }
536
+ attr_writer :address
537
+
538
+ # Closure date of the company, if applicable.
539
+ sig { returns(T.nilable(Date)) }
540
+ attr_reader :closure_date
541
+
542
+ sig { params(closure_date: Date).void }
543
+ attr_writer :closure_date
544
+
545
+ # Trade or commercial name of the company.
546
+ sig { returns(T.nilable(String)) }
547
+ attr_reader :commercial_name
548
+
549
+ sig { params(commercial_name: String).void }
550
+ attr_writer :commercial_name
551
+
552
+ # Contact information for the company, including email, phone number, and address.
553
+ sig do
554
+ returns(T.nilable(Dataleon::CompanyRegistration::Company::Contact))
555
+ end
556
+ attr_reader :contact
557
+
558
+ sig do
559
+ params(
560
+ contact: Dataleon::CompanyRegistration::Company::Contact::OrHash
561
+ ).void
562
+ end
563
+ attr_writer :contact
564
+
565
+ # Country code where the company is registered.
566
+ sig { returns(T.nilable(String)) }
567
+ attr_reader :country
568
+
569
+ sig { params(country: String).void }
570
+ attr_writer :country
571
+
572
+ # Contact email address for the company.
573
+ sig { returns(T.nilable(String)) }
574
+ attr_reader :email
575
+
576
+ sig { params(email: String).void }
577
+ attr_writer :email
578
+
579
+ # Number of employees in the company.
580
+ sig { returns(T.nilable(Integer)) }
581
+ attr_reader :employees
582
+
583
+ sig { params(employees: Integer).void }
584
+ attr_writer :employees
585
+
586
+ # Employer Identification Number (EIN) or equivalent.
587
+ sig { returns(T.nilable(String)) }
588
+ attr_reader :employer_identification_number
589
+
590
+ sig { params(employer_identification_number: String).void }
591
+ attr_writer :employer_identification_number
592
+
593
+ # Indicates whether an insolvency procedure exists for the company.
594
+ sig { returns(T.nilable(T::Boolean)) }
595
+ attr_reader :insolvency_exists
596
+
597
+ sig { params(insolvency_exists: T::Boolean).void }
598
+ attr_writer :insolvency_exists
599
+
600
+ # Indicates whether an insolvency procedure is ongoing for the company.
601
+ sig { returns(T.nilable(T::Boolean)) }
602
+ attr_reader :insolvency_ongoing
603
+
604
+ sig { params(insolvency_ongoing: T::Boolean).void }
605
+ attr_writer :insolvency_ongoing
606
+
607
+ # Legal form or structure of the company (e.g., LLC, SARL).
608
+ sig { returns(T.nilable(String)) }
609
+ attr_reader :legal_form
610
+
611
+ sig { params(legal_form: String).void }
612
+ attr_writer :legal_form
613
+
614
+ # Legal registered name of the company.
615
+ sig { returns(T.nilable(String)) }
616
+ attr_reader :name
617
+
618
+ sig { params(name: String).void }
619
+ attr_writer :name
620
+
621
+ # Contact phone number for the company, including country code.
622
+ sig { returns(T.nilable(String)) }
623
+ attr_reader :phone_number
624
+
625
+ sig { params(phone_number: String).void }
626
+ attr_writer :phone_number
627
+
628
+ # Date when the company was officially registered.
629
+ sig { returns(T.nilable(Date)) }
630
+ attr_reader :registration_date
631
+
632
+ sig { params(registration_date: Date).void }
633
+ attr_writer :registration_date
634
+
635
+ # Official company registration number or ID.
636
+ sig { returns(T.nilable(String)) }
637
+ attr_reader :registration_id
638
+
639
+ sig { params(registration_id: String).void }
640
+ attr_writer :registration_id
641
+
642
+ # Total share capital of the company, including currency.
643
+ sig { returns(T.nilable(String)) }
644
+ attr_reader :share_capital
645
+
646
+ sig { params(share_capital: String).void }
647
+ attr_writer :share_capital
648
+
649
+ # Current status of the company (e.g., active, inactive).
650
+ sig { returns(T.nilable(String)) }
651
+ attr_reader :status
652
+
653
+ sig { params(status: String).void }
654
+ attr_writer :status
655
+
656
+ # Tax identification number for the company.
657
+ sig { returns(T.nilable(String)) }
658
+ attr_reader :tax_identification_number
659
+
660
+ sig { params(tax_identification_number: String).void }
661
+ attr_writer :tax_identification_number
662
+
663
+ # Type of company within the workspace, e.g., main or affiliated.
664
+ sig { returns(T.nilable(String)) }
665
+ attr_reader :type
666
+
667
+ sig { params(type: String).void }
668
+ attr_writer :type
669
+
670
+ # Official website URL of the company.
671
+ sig { returns(T.nilable(String)) }
672
+ attr_reader :website_url
673
+
674
+ sig { params(website_url: String).void }
675
+ attr_writer :website_url
676
+
677
+ # Main information about the company being registered, including legal name,
678
+ # registration ID, and address.
679
+ sig do
680
+ params(
681
+ address: String,
682
+ closure_date: Date,
683
+ commercial_name: String,
684
+ contact: Dataleon::CompanyRegistration::Company::Contact::OrHash,
685
+ country: String,
686
+ email: String,
687
+ employees: Integer,
688
+ employer_identification_number: String,
689
+ insolvency_exists: T::Boolean,
690
+ insolvency_ongoing: T::Boolean,
691
+ legal_form: String,
692
+ name: String,
693
+ phone_number: String,
694
+ registration_date: Date,
695
+ registration_id: String,
696
+ share_capital: String,
697
+ status: String,
698
+ tax_identification_number: String,
699
+ type: String,
700
+ website_url: String
701
+ ).returns(T.attached_class)
702
+ end
703
+ def self.new(
704
+ # Full registered address of the company.
705
+ address: nil,
706
+ # Closure date of the company, if applicable.
707
+ closure_date: nil,
708
+ # Trade or commercial name of the company.
709
+ commercial_name: nil,
710
+ # Contact information for the company, including email, phone number, and address.
711
+ contact: nil,
712
+ # Country code where the company is registered.
713
+ country: nil,
714
+ # Contact email address for the company.
715
+ email: nil,
716
+ # Number of employees in the company.
717
+ employees: nil,
718
+ # Employer Identification Number (EIN) or equivalent.
719
+ employer_identification_number: nil,
720
+ # Indicates whether an insolvency procedure exists for the company.
721
+ insolvency_exists: nil,
722
+ # Indicates whether an insolvency procedure is ongoing for the company.
723
+ insolvency_ongoing: nil,
724
+ # Legal form or structure of the company (e.g., LLC, SARL).
725
+ legal_form: nil,
726
+ # Legal registered name of the company.
727
+ name: nil,
728
+ # Contact phone number for the company, including country code.
729
+ phone_number: nil,
730
+ # Date when the company was officially registered.
731
+ registration_date: nil,
732
+ # Official company registration number or ID.
733
+ registration_id: nil,
734
+ # Total share capital of the company, including currency.
735
+ share_capital: nil,
736
+ # Current status of the company (e.g., active, inactive).
737
+ status: nil,
738
+ # Tax identification number for the company.
739
+ tax_identification_number: nil,
740
+ # Type of company within the workspace, e.g., main or affiliated.
741
+ type: nil,
742
+ # Official website URL of the company.
743
+ website_url: nil
744
+ )
745
+ end
746
+
747
+ sig do
748
+ override.returns(
749
+ {
750
+ address: String,
751
+ closure_date: Date,
752
+ commercial_name: String,
753
+ contact: Dataleon::CompanyRegistration::Company::Contact,
754
+ country: String,
755
+ email: String,
756
+ employees: Integer,
757
+ employer_identification_number: String,
758
+ insolvency_exists: T::Boolean,
759
+ insolvency_ongoing: T::Boolean,
760
+ legal_form: String,
761
+ name: String,
762
+ phone_number: String,
763
+ registration_date: Date,
764
+ registration_id: String,
765
+ share_capital: String,
766
+ status: String,
767
+ tax_identification_number: String,
768
+ type: String,
769
+ website_url: String
770
+ }
771
+ )
772
+ end
773
+ def to_hash
774
+ end
775
+
776
+ class Contact < Dataleon::Internal::Type::BaseModel
777
+ OrHash =
778
+ T.type_alias do
779
+ T.any(
780
+ Dataleon::CompanyRegistration::Company::Contact,
781
+ Dataleon::Internal::AnyHash
782
+ )
783
+ end
784
+
785
+ # Department of the contact person.
786
+ sig { returns(T.nilable(String)) }
787
+ attr_reader :department
788
+
789
+ sig { params(department: String).void }
790
+ attr_writer :department
791
+
792
+ # Email address of the contact person.
793
+ sig { returns(T.nilable(String)) }
794
+ attr_reader :email
795
+
796
+ sig { params(email: String).void }
797
+ attr_writer :email
798
+
799
+ # First name of the contact person.
800
+ sig { returns(T.nilable(String)) }
801
+ attr_reader :first_name
802
+
803
+ sig { params(first_name: String).void }
804
+ attr_writer :first_name
805
+
806
+ # Last name of the contact person.
807
+ sig { returns(T.nilable(String)) }
808
+ attr_reader :last_name
809
+
810
+ sig { params(last_name: String).void }
811
+ attr_writer :last_name
812
+
813
+ # Phone number of the contact person.
814
+ sig { returns(T.nilable(String)) }
815
+ attr_reader :phone_number
816
+
817
+ sig { params(phone_number: String).void }
818
+ attr_writer :phone_number
819
+
820
+ # Contact information for the company, including email, phone number, and address.
821
+ sig do
822
+ params(
823
+ department: String,
824
+ email: String,
825
+ first_name: String,
826
+ last_name: String,
827
+ phone_number: String
828
+ ).returns(T.attached_class)
829
+ end
830
+ def self.new(
831
+ # Department of the contact person.
832
+ department: nil,
833
+ # Email address of the contact person.
834
+ email: nil,
835
+ # First name of the contact person.
836
+ first_name: nil,
837
+ # Last name of the contact person.
838
+ last_name: nil,
839
+ # Phone number of the contact person.
840
+ phone_number: nil
841
+ )
842
+ end
843
+
844
+ sig do
845
+ override.returns(
846
+ {
847
+ department: String,
848
+ email: String,
849
+ first_name: String,
850
+ last_name: String,
851
+ phone_number: String
852
+ }
853
+ )
854
+ end
855
+ def to_hash
856
+ end
857
+ end
858
+ end
859
+
860
+ class Member < Dataleon::Internal::Type::BaseModel
861
+ OrHash =
862
+ T.type_alias do
863
+ T.any(
864
+ Dataleon::CompanyRegistration::Member,
865
+ Dataleon::Internal::AnyHash
866
+ )
867
+ end
868
+
869
+ sig { returns(T.nilable(String)) }
870
+ attr_reader :id
871
+
872
+ sig { params(id: String).void }
873
+ attr_writer :id
874
+
875
+ # Address of the member, which may include street, city, postal code, and country.
876
+ sig { returns(T.nilable(String)) }
877
+ attr_reader :address
878
+
879
+ sig { params(address: String).void }
880
+ attr_writer :address
881
+
882
+ # Birthday (available only if type = person)
883
+ sig { returns(T.nilable(Time)) }
884
+ attr_reader :birthday
885
+
886
+ sig { params(birthday: Time).void }
887
+ attr_writer :birthday
888
+
889
+ # Birthplace (available only if type = person)
890
+ sig { returns(T.nilable(String)) }
891
+ attr_reader :birthplace
892
+
893
+ sig { params(birthplace: String).void }
894
+ attr_writer :birthplace
895
+
896
+ # ISO 3166-1 alpha-2 country code of the member's address (e.g., "FR" for France).
897
+ sig { returns(T.nilable(String)) }
898
+ attr_reader :country
899
+
900
+ sig { params(country: String).void }
901
+ attr_writer :country
902
+
903
+ # List of documents associated with the member, including their metadata and
904
+ # processing status.
905
+ sig do
906
+ returns(T.nilable(T::Array[Dataleon::Individuals::GenericDocument]))
907
+ end
908
+ attr_reader :documents
909
+
910
+ sig do
911
+ params(
912
+ documents: T::Array[Dataleon::Individuals::GenericDocument::OrHash]
913
+ ).void
914
+ end
915
+ attr_writer :documents
916
+
917
+ # Email address of the member, which may be used for communication or verification
918
+ # purposes.
919
+ sig { returns(T.nilable(String)) }
920
+ attr_reader :email
921
+
922
+ sig { params(email: String).void }
923
+ attr_writer :email
924
+
925
+ # First name (available only if type = person)
926
+ sig { returns(T.nilable(String)) }
927
+ attr_reader :first_name
928
+
929
+ sig { params(first_name: String).void }
930
+ attr_writer :first_name
931
+
932
+ # Indicates whether the member is a beneficial owner of the company, meaning they
933
+ # have significant control or ownership.
934
+ sig { returns(T.nilable(T::Boolean)) }
935
+ attr_reader :is_beneficial_owner
936
+
937
+ sig { params(is_beneficial_owner: T::Boolean).void }
938
+ attr_writer :is_beneficial_owner
939
+
940
+ # Indicates whether the member is a delegator, meaning they have authority to act
941
+ # on behalf of the company.
942
+ sig { returns(T.nilable(T::Boolean)) }
943
+ attr_reader :is_delegator
944
+
945
+ sig { params(is_delegator: T::Boolean).void }
946
+ attr_writer :is_delegator
947
+
948
+ # Last name (available only if type = person)
949
+ sig { returns(T.nilable(String)) }
950
+ attr_reader :last_name
951
+
952
+ sig { params(last_name: String).void }
953
+ attr_writer :last_name
954
+
955
+ # Indicates whether liveness verification was performed for the member, typically
956
+ # in the context of identity checks.
957
+ sig { returns(T.nilable(T::Boolean)) }
958
+ attr_reader :liveness_verification
959
+
960
+ sig { params(liveness_verification: T::Boolean).void }
961
+ attr_writer :liveness_verification
962
+
963
+ # Company name (available only if type = company)
964
+ sig { returns(T.nilable(String)) }
965
+ attr_reader :name
966
+
967
+ sig { params(name: String).void }
968
+ attr_writer :name
969
+
970
+ # Percentage of ownership the member has in the company, expressed as an integer
971
+ # between 0 and 100.
972
+ sig { returns(T.nilable(Integer)) }
973
+ attr_reader :ownership_percentage
974
+
975
+ sig { params(ownership_percentage: Integer).void }
976
+ attr_writer :ownership_percentage
977
+
978
+ # Contact phone number of the member, including country code and area code.
979
+ sig { returns(T.nilable(String)) }
980
+ attr_reader :phone_number
981
+
982
+ sig { params(phone_number: String).void }
983
+ attr_writer :phone_number
984
+
985
+ # Postal code of the member's address, typically a numeric or alphanumeric code.
986
+ sig { returns(T.nilable(String)) }
987
+ attr_reader :postal_code
988
+
989
+ sig { params(postal_code: String).void }
990
+ attr_writer :postal_code
991
+
992
+ # Official registration identifier of the member, such as a national ID or company
993
+ # registration number.
994
+ sig { returns(T.nilable(String)) }
995
+ attr_reader :registration_id
996
+
997
+ sig { params(registration_id: String).void }
998
+ attr_writer :registration_id
999
+
1000
+ # Type of relationship the member has with the company, such as "shareholder",
1001
+ # "director", or "beneficial_owner".
1002
+ sig { returns(T.nilable(String)) }
1003
+ attr_reader :relation
1004
+
1005
+ sig { params(relation: String).void }
1006
+ attr_writer :relation
1007
+
1008
+ # Role of the member within the company, such as "legal_representative",
1009
+ # "director", or "manager".
1010
+ sig { returns(T.nilable(String)) }
1011
+ attr_reader :roles
1012
+
1013
+ sig { params(roles: String).void }
1014
+ attr_writer :roles
1015
+
1016
+ # Source of the data (e.g., government, user, company)
1017
+ sig do
1018
+ returns(
1019
+ T.nilable(
1020
+ Dataleon::CompanyRegistration::Member::Source::TaggedSymbol
1021
+ )
1022
+ )
1023
+ end
1024
+ attr_reader :source
1025
+
1026
+ sig do
1027
+ params(
1028
+ source: Dataleon::CompanyRegistration::Member::Source::OrSymbol
1029
+ ).void
1030
+ end
1031
+ attr_writer :source
1032
+
1033
+ # Current state of the member in the workflow, such as "WAITING", "STARTED",
1034
+ # "RUNNING", or "PROCESSED".
1035
+ sig { returns(T.nilable(String)) }
1036
+ attr_reader :state
1037
+
1038
+ sig { params(state: String).void }
1039
+ attr_writer :state
1040
+
1041
+ # Status of the member in the system, indicating whether they are approved,
1042
+ # pending, or rejected. Possible values include "approved", "need_review",
1043
+ # "rejected".
1044
+ sig { returns(T.nilable(String)) }
1045
+ attr_reader :status
1046
+
1047
+ sig { params(status: String).void }
1048
+ attr_writer :status
1049
+
1050
+ # Member type (person or company)
1051
+ sig do
1052
+ returns(
1053
+ T.nilable(Dataleon::CompanyRegistration::Member::Type::TaggedSymbol)
1054
+ )
1055
+ end
1056
+ attr_reader :type
1057
+
1058
+ sig do
1059
+ params(
1060
+ type: Dataleon::CompanyRegistration::Member::Type::OrSymbol
1061
+ ).void
1062
+ end
1063
+ attr_writer :type
1064
+
1065
+ # Identifier of the workspace to which the member belongs, used for organizational
1066
+ # purposes.
1067
+ sig { returns(T.nilable(String)) }
1068
+ attr_reader :workspace_id
1069
+
1070
+ sig { params(workspace_id: String).void }
1071
+ attr_writer :workspace_id
1072
+
1073
+ # Represents a member or actor of a company, including personal and ownership
1074
+ # information.
1075
+ sig do
1076
+ params(
1077
+ id: String,
1078
+ address: String,
1079
+ birthday: Time,
1080
+ birthplace: String,
1081
+ country: String,
1082
+ documents: T::Array[Dataleon::Individuals::GenericDocument::OrHash],
1083
+ email: String,
1084
+ first_name: String,
1085
+ is_beneficial_owner: T::Boolean,
1086
+ is_delegator: T::Boolean,
1087
+ last_name: String,
1088
+ liveness_verification: T::Boolean,
1089
+ name: String,
1090
+ ownership_percentage: Integer,
1091
+ phone_number: String,
1092
+ postal_code: String,
1093
+ registration_id: String,
1094
+ relation: String,
1095
+ roles: String,
1096
+ source: Dataleon::CompanyRegistration::Member::Source::OrSymbol,
1097
+ state: String,
1098
+ status: String,
1099
+ type: Dataleon::CompanyRegistration::Member::Type::OrSymbol,
1100
+ workspace_id: String
1101
+ ).returns(T.attached_class)
1102
+ end
1103
+ def self.new(
1104
+ id: nil,
1105
+ # Address of the member, which may include street, city, postal code, and country.
1106
+ address: nil,
1107
+ # Birthday (available only if type = person)
1108
+ birthday: nil,
1109
+ # Birthplace (available only if type = person)
1110
+ birthplace: nil,
1111
+ # ISO 3166-1 alpha-2 country code of the member's address (e.g., "FR" for France).
1112
+ country: nil,
1113
+ # List of documents associated with the member, including their metadata and
1114
+ # processing status.
1115
+ documents: nil,
1116
+ # Email address of the member, which may be used for communication or verification
1117
+ # purposes.
1118
+ email: nil,
1119
+ # First name (available only if type = person)
1120
+ first_name: nil,
1121
+ # Indicates whether the member is a beneficial owner of the company, meaning they
1122
+ # have significant control or ownership.
1123
+ is_beneficial_owner: nil,
1124
+ # Indicates whether the member is a delegator, meaning they have authority to act
1125
+ # on behalf of the company.
1126
+ is_delegator: nil,
1127
+ # Last name (available only if type = person)
1128
+ last_name: nil,
1129
+ # Indicates whether liveness verification was performed for the member, typically
1130
+ # in the context of identity checks.
1131
+ liveness_verification: nil,
1132
+ # Company name (available only if type = company)
1133
+ name: nil,
1134
+ # Percentage of ownership the member has in the company, expressed as an integer
1135
+ # between 0 and 100.
1136
+ ownership_percentage: nil,
1137
+ # Contact phone number of the member, including country code and area code.
1138
+ phone_number: nil,
1139
+ # Postal code of the member's address, typically a numeric or alphanumeric code.
1140
+ postal_code: nil,
1141
+ # Official registration identifier of the member, such as a national ID or company
1142
+ # registration number.
1143
+ registration_id: nil,
1144
+ # Type of relationship the member has with the company, such as "shareholder",
1145
+ # "director", or "beneficial_owner".
1146
+ relation: nil,
1147
+ # Role of the member within the company, such as "legal_representative",
1148
+ # "director", or "manager".
1149
+ roles: nil,
1150
+ # Source of the data (e.g., government, user, company)
1151
+ source: nil,
1152
+ # Current state of the member in the workflow, such as "WAITING", "STARTED",
1153
+ # "RUNNING", or "PROCESSED".
1154
+ state: nil,
1155
+ # Status of the member in the system, indicating whether they are approved,
1156
+ # pending, or rejected. Possible values include "approved", "need_review",
1157
+ # "rejected".
1158
+ status: nil,
1159
+ # Member type (person or company)
1160
+ type: nil,
1161
+ # Identifier of the workspace to which the member belongs, used for organizational
1162
+ # purposes.
1163
+ workspace_id: nil
1164
+ )
1165
+ end
1166
+
1167
+ sig do
1168
+ override.returns(
1169
+ {
1170
+ id: String,
1171
+ address: String,
1172
+ birthday: Time,
1173
+ birthplace: String,
1174
+ country: String,
1175
+ documents: T::Array[Dataleon::Individuals::GenericDocument],
1176
+ email: String,
1177
+ first_name: String,
1178
+ is_beneficial_owner: T::Boolean,
1179
+ is_delegator: T::Boolean,
1180
+ last_name: String,
1181
+ liveness_verification: T::Boolean,
1182
+ name: String,
1183
+ ownership_percentage: Integer,
1184
+ phone_number: String,
1185
+ postal_code: String,
1186
+ registration_id: String,
1187
+ relation: String,
1188
+ roles: String,
1189
+ source:
1190
+ Dataleon::CompanyRegistration::Member::Source::TaggedSymbol,
1191
+ state: String,
1192
+ status: String,
1193
+ type: Dataleon::CompanyRegistration::Member::Type::TaggedSymbol,
1194
+ workspace_id: String
1195
+ }
1196
+ )
1197
+ end
1198
+ def to_hash
1199
+ end
1200
+
1201
+ # Source of the data (e.g., government, user, company)
1202
+ module Source
1203
+ extend Dataleon::Internal::Type::Enum
1204
+
1205
+ TaggedSymbol =
1206
+ T.type_alias do
1207
+ T.all(Symbol, Dataleon::CompanyRegistration::Member::Source)
1208
+ end
1209
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1210
+
1211
+ GOUVE =
1212
+ T.let(
1213
+ :gouve,
1214
+ Dataleon::CompanyRegistration::Member::Source::TaggedSymbol
1215
+ )
1216
+ USER =
1217
+ T.let(
1218
+ :user,
1219
+ Dataleon::CompanyRegistration::Member::Source::TaggedSymbol
1220
+ )
1221
+ COMPANY =
1222
+ T.let(
1223
+ :company,
1224
+ Dataleon::CompanyRegistration::Member::Source::TaggedSymbol
1225
+ )
1226
+
1227
+ sig do
1228
+ override.returns(
1229
+ T::Array[
1230
+ Dataleon::CompanyRegistration::Member::Source::TaggedSymbol
1231
+ ]
1232
+ )
1233
+ end
1234
+ def self.values
1235
+ end
1236
+ end
1237
+
1238
+ # Member type (person or company)
1239
+ module Type
1240
+ extend Dataleon::Internal::Type::Enum
1241
+
1242
+ TaggedSymbol =
1243
+ T.type_alias do
1244
+ T.all(Symbol, Dataleon::CompanyRegistration::Member::Type)
1245
+ end
1246
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1247
+
1248
+ PERSON =
1249
+ T.let(
1250
+ :person,
1251
+ Dataleon::CompanyRegistration::Member::Type::TaggedSymbol
1252
+ )
1253
+ COMPANY =
1254
+ T.let(
1255
+ :company,
1256
+ Dataleon::CompanyRegistration::Member::Type::TaggedSymbol
1257
+ )
1258
+
1259
+ sig do
1260
+ override.returns(
1261
+ T::Array[
1262
+ Dataleon::CompanyRegistration::Member::Type::TaggedSymbol
1263
+ ]
1264
+ )
1265
+ end
1266
+ def self.values
1267
+ end
1268
+ end
1269
+ end
1270
+
1271
+ class Property < Dataleon::Internal::Type::BaseModel
1272
+ OrHash =
1273
+ T.type_alias do
1274
+ T.any(
1275
+ Dataleon::CompanyRegistration::Property,
1276
+ Dataleon::Internal::AnyHash
1277
+ )
1278
+ end
1279
+
1280
+ # Name/key of the property.
1281
+ sig { returns(T.nilable(String)) }
1282
+ attr_reader :name
1283
+
1284
+ sig { params(name: String).void }
1285
+ attr_writer :name
1286
+
1287
+ # Data type of the property value.
1288
+ sig { returns(T.nilable(String)) }
1289
+ attr_reader :type
1290
+
1291
+ sig { params(type: String).void }
1292
+ attr_writer :type
1293
+
1294
+ # Value associated with the property name.
1295
+ sig { returns(T.nilable(String)) }
1296
+ attr_reader :value
1297
+
1298
+ sig { params(value: String).void }
1299
+ attr_writer :value
1300
+
1301
+ # Represents a generic property key-value pair with a specified type.
1302
+ sig do
1303
+ params(name: String, type: String, value: String).returns(
1304
+ T.attached_class
1305
+ )
1306
+ end
1307
+ def self.new(
1308
+ # Name/key of the property.
1309
+ name: nil,
1310
+ # Data type of the property value.
1311
+ type: nil,
1312
+ # Value associated with the property name.
1313
+ value: nil
1314
+ )
1315
+ end
1316
+
1317
+ sig { override.returns({ name: String, type: String, value: String }) }
1318
+ def to_hash
1319
+ end
1320
+ end
1321
+
1322
+ class Risk < Dataleon::Internal::Type::BaseModel
1323
+ OrHash =
1324
+ T.type_alias do
1325
+ T.any(
1326
+ Dataleon::CompanyRegistration::Risk,
1327
+ Dataleon::Internal::AnyHash
1328
+ )
1329
+ end
1330
+
1331
+ # Risk category or code identifier.
1332
+ sig { returns(T.nilable(String)) }
1333
+ attr_reader :code
1334
+
1335
+ sig { params(code: String).void }
1336
+ attr_writer :code
1337
+
1338
+ # Explanation or justification for the assigned risk.
1339
+ sig { returns(T.nilable(String)) }
1340
+ attr_reader :reason
1341
+
1342
+ sig { params(reason: String).void }
1343
+ attr_writer :reason
1344
+
1345
+ # Numeric risk score between 0.0 and 1.0 indicating severity or confidence.
1346
+ sig { returns(T.nilable(Float)) }
1347
+ attr_reader :score
1348
+
1349
+ sig { params(score: Float).void }
1350
+ attr_writer :score
1351
+
1352
+ # Risk assessment associated with the company, including a risk code, reason, and
1353
+ # confidence score.
1354
+ sig do
1355
+ params(code: String, reason: String, score: Float).returns(
1356
+ T.attached_class
1357
+ )
1358
+ end
1359
+ def self.new(
1360
+ # Risk category or code identifier.
1361
+ code: nil,
1362
+ # Explanation or justification for the assigned risk.
1363
+ reason: nil,
1364
+ # Numeric risk score between 0.0 and 1.0 indicating severity or confidence.
1365
+ score: nil
1366
+ )
1367
+ end
1368
+
1369
+ sig { override.returns({ code: String, reason: String, score: Float }) }
1370
+ def to_hash
1371
+ end
1372
+ end
1373
+
1374
+ class TechnicalData < Dataleon::Internal::Type::BaseModel
1375
+ OrHash =
1376
+ T.type_alias do
1377
+ T.any(
1378
+ Dataleon::CompanyRegistration::TechnicalData,
1379
+ Dataleon::Internal::AnyHash
1380
+ )
1381
+ end
1382
+
1383
+ # Flag indicating whether there are active research AML (Anti-Money Laundering)
1384
+ # suspicions for the object when you apply for a new entry or get an existing one.
1385
+ sig { returns(T.nilable(T::Boolean)) }
1386
+ attr_reader :active_aml_suspicions
1387
+
1388
+ sig { params(active_aml_suspicions: T::Boolean).void }
1389
+ attr_writer :active_aml_suspicions
1390
+
1391
+ # Version number of the API used.
1392
+ sig { returns(T.nilable(Integer)) }
1393
+ attr_reader :api_version
1394
+
1395
+ sig { params(api_version: Integer).void }
1396
+ attr_writer :api_version
1397
+
1398
+ # Timestamp when the request or process was approved.
1399
+ sig { returns(T.nilable(Time)) }
1400
+ attr_reader :approved_at
1401
+
1402
+ sig { params(approved_at: Time).void }
1403
+ attr_writer :approved_at
1404
+
1405
+ # URL to receive callback data from the AML system.
1406
+ sig { returns(T.nilable(String)) }
1407
+ attr_reader :callback_url
1408
+
1409
+ sig { params(callback_url: String).void }
1410
+ attr_writer :callback_url
1411
+
1412
+ # URL to receive notification updates about the processing status.
1413
+ sig { returns(T.nilable(String)) }
1414
+ attr_reader :callback_url_notification
1415
+
1416
+ sig { params(callback_url_notification: String).void }
1417
+ attr_writer :callback_url_notification
1418
+
1419
+ # Flag to indicate if notifications are disabled.
1420
+ sig { returns(T.nilable(T::Boolean)) }
1421
+ attr_reader :disable_notification
1422
+
1423
+ sig { params(disable_notification: T::Boolean).void }
1424
+ attr_writer :disable_notification
1425
+
1426
+ # Timestamp when notifications were disabled; null if never disabled.
1427
+ sig { returns(T.nilable(Time)) }
1428
+ attr_accessor :disable_notification_date
1429
+
1430
+ # Export format defined by the API (e.g., "json", "xml").
1431
+ sig { returns(T.nilable(String)) }
1432
+ attr_reader :export_type
1433
+
1434
+ sig { params(export_type: String).void }
1435
+ attr_writer :export_type
1436
+
1437
+ # Timestamp when the process finished.
1438
+ sig { returns(T.nilable(Time)) }
1439
+ attr_reader :finished_at
1440
+
1441
+ sig { params(finished_at: Time).void }
1442
+ attr_writer :finished_at
1443
+
1444
+ # IP address of the our system handling the request.
1445
+ sig { returns(T.nilable(String)) }
1446
+ attr_reader :ip
1447
+
1448
+ sig { params(ip: String).void }
1449
+ attr_writer :ip
1450
+
1451
+ # Language preference used in the client workspace (e.g., "fra").
1452
+ sig { returns(T.nilable(String)) }
1453
+ attr_reader :language
1454
+
1455
+ sig { params(language: String).void }
1456
+ attr_writer :language
1457
+
1458
+ # IP address of the end client (final user) captured.
1459
+ sig { returns(T.nilable(String)) }
1460
+ attr_reader :location_ip
1461
+
1462
+ sig { params(location_ip: String).void }
1463
+ attr_writer :location_ip
1464
+
1465
+ # Timestamp indicating when the request or process needs review; null if none.
1466
+ sig { returns(T.nilable(Time)) }
1467
+ attr_accessor :need_review_at
1468
+
1469
+ # Flag indicating if notification confirmation is required or received.
1470
+ sig { returns(T.nilable(T::Boolean)) }
1471
+ attr_reader :notification_confirmation
1472
+
1473
+ sig { params(notification_confirmation: T::Boolean).void }
1474
+ attr_writer :notification_confirmation
1475
+
1476
+ # Indicates whether QR code is enabled ("true" or "false").
1477
+ sig { returns(T.nilable(String)) }
1478
+ attr_reader :qr_code
1479
+
1480
+ sig { params(qr_code: String).void }
1481
+ attr_writer :qr_code
1482
+
1483
+ # Flag indicating whether to include raw data in the response.
1484
+ sig { returns(T.nilable(T::Boolean)) }
1485
+ attr_reader :raw_data
1486
+
1487
+ sig { params(raw_data: T::Boolean).void }
1488
+ attr_writer :raw_data
1489
+
1490
+ # Timestamp when the request or process was rejected; null if not rejected.
1491
+ sig { returns(T.nilable(Time)) }
1492
+ attr_accessor :rejected_at
1493
+
1494
+ # Duration of the user session in seconds.
1495
+ sig { returns(T.nilable(Integer)) }
1496
+ attr_reader :session_duration
1497
+
1498
+ sig { params(session_duration: Integer).void }
1499
+ attr_writer :session_duration
1500
+
1501
+ # Timestamp when the process started.
1502
+ sig { returns(T.nilable(Time)) }
1503
+ attr_reader :started_at
1504
+
1505
+ sig { params(started_at: Time).void }
1506
+ attr_writer :started_at
1507
+
1508
+ # Date/time of data transfer.
1509
+ sig { returns(T.nilable(Time)) }
1510
+ attr_reader :transfer_at
1511
+
1512
+ sig { params(transfer_at: Time).void }
1513
+ attr_writer :transfer_at
1514
+
1515
+ # Mode of data transfer.
1516
+ sig { returns(T.nilable(String)) }
1517
+ attr_reader :transfer_mode
1518
+
1519
+ sig { params(transfer_mode: String).void }
1520
+ attr_writer :transfer_mode
1521
+
1522
+ # Technical metadata related to the request, such as IP address, QR code settings,
1523
+ # and callback URLs.
1524
+ sig do
1525
+ params(
1526
+ active_aml_suspicions: T::Boolean,
1527
+ api_version: Integer,
1528
+ approved_at: Time,
1529
+ callback_url: String,
1530
+ callback_url_notification: String,
1531
+ disable_notification: T::Boolean,
1532
+ disable_notification_date: T.nilable(Time),
1533
+ export_type: String,
1534
+ finished_at: Time,
1535
+ ip: String,
1536
+ language: String,
1537
+ location_ip: String,
1538
+ need_review_at: T.nilable(Time),
1539
+ notification_confirmation: T::Boolean,
1540
+ qr_code: String,
1541
+ raw_data: T::Boolean,
1542
+ rejected_at: T.nilable(Time),
1543
+ session_duration: Integer,
1544
+ started_at: Time,
1545
+ transfer_at: Time,
1546
+ transfer_mode: String
1547
+ ).returns(T.attached_class)
1548
+ end
1549
+ def self.new(
1550
+ # Flag indicating whether there are active research AML (Anti-Money Laundering)
1551
+ # suspicions for the object when you apply for a new entry or get an existing one.
1552
+ active_aml_suspicions: nil,
1553
+ # Version number of the API used.
1554
+ api_version: nil,
1555
+ # Timestamp when the request or process was approved.
1556
+ approved_at: nil,
1557
+ # URL to receive callback data from the AML system.
1558
+ callback_url: nil,
1559
+ # URL to receive notification updates about the processing status.
1560
+ callback_url_notification: nil,
1561
+ # Flag to indicate if notifications are disabled.
1562
+ disable_notification: nil,
1563
+ # Timestamp when notifications were disabled; null if never disabled.
1564
+ disable_notification_date: nil,
1565
+ # Export format defined by the API (e.g., "json", "xml").
1566
+ export_type: nil,
1567
+ # Timestamp when the process finished.
1568
+ finished_at: nil,
1569
+ # IP address of the our system handling the request.
1570
+ ip: nil,
1571
+ # Language preference used in the client workspace (e.g., "fra").
1572
+ language: nil,
1573
+ # IP address of the end client (final user) captured.
1574
+ location_ip: nil,
1575
+ # Timestamp indicating when the request or process needs review; null if none.
1576
+ need_review_at: nil,
1577
+ # Flag indicating if notification confirmation is required or received.
1578
+ notification_confirmation: nil,
1579
+ # Indicates whether QR code is enabled ("true" or "false").
1580
+ qr_code: nil,
1581
+ # Flag indicating whether to include raw data in the response.
1582
+ raw_data: nil,
1583
+ # Timestamp when the request or process was rejected; null if not rejected.
1584
+ rejected_at: nil,
1585
+ # Duration of the user session in seconds.
1586
+ session_duration: nil,
1587
+ # Timestamp when the process started.
1588
+ started_at: nil,
1589
+ # Date/time of data transfer.
1590
+ transfer_at: nil,
1591
+ # Mode of data transfer.
1592
+ transfer_mode: nil
1593
+ )
1594
+ end
1595
+
1596
+ sig do
1597
+ override.returns(
1598
+ {
1599
+ active_aml_suspicions: T::Boolean,
1600
+ api_version: Integer,
1601
+ approved_at: Time,
1602
+ callback_url: String,
1603
+ callback_url_notification: String,
1604
+ disable_notification: T::Boolean,
1605
+ disable_notification_date: T.nilable(Time),
1606
+ export_type: String,
1607
+ finished_at: Time,
1608
+ ip: String,
1609
+ language: String,
1610
+ location_ip: String,
1611
+ need_review_at: T.nilable(Time),
1612
+ notification_confirmation: T::Boolean,
1613
+ qr_code: String,
1614
+ raw_data: T::Boolean,
1615
+ rejected_at: T.nilable(Time),
1616
+ session_duration: Integer,
1617
+ started_at: Time,
1618
+ transfer_at: Time,
1619
+ transfer_mode: String
1620
+ }
1621
+ )
1622
+ end
1623
+ def to_hash
1624
+ end
1625
+ end
1626
+ end
1627
+ end
1628
+ end