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,266 @@
1
+ # typed: strong
2
+
3
+ module Dataleon
4
+ module Models
5
+ module Individuals
6
+ class DocumentUploadParams < Dataleon::Internal::Type::BaseModel
7
+ extend Dataleon::Internal::Type::RequestParameters::Converter
8
+ include Dataleon::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Dataleon::Individuals::DocumentUploadParams,
14
+ Dataleon::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ # Filter by document type for upload (must be one of the allowed values)
19
+ sig do
20
+ returns(
21
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::OrSymbol
22
+ )
23
+ end
24
+ attr_accessor :document_type
25
+
26
+ # File to upload (required)
27
+ sig { returns(T.nilable(Dataleon::Internal::FileInput)) }
28
+ attr_reader :file
29
+
30
+ sig { params(file: Dataleon::Internal::FileInput).void }
31
+ attr_writer :file
32
+
33
+ # URL of the file to upload (either `file` or `url` is required)
34
+ sig { returns(T.nilable(String)) }
35
+ attr_reader :url
36
+
37
+ sig { params(url: String).void }
38
+ attr_writer :url
39
+
40
+ sig do
41
+ params(
42
+ document_type:
43
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::OrSymbol,
44
+ file: Dataleon::Internal::FileInput,
45
+ url: String,
46
+ request_options: Dataleon::RequestOptions::OrHash
47
+ ).returns(T.attached_class)
48
+ end
49
+ def self.new(
50
+ # Filter by document type for upload (must be one of the allowed values)
51
+ document_type:,
52
+ # File to upload (required)
53
+ file: nil,
54
+ # URL of the file to upload (either `file` or `url` is required)
55
+ url: nil,
56
+ request_options: {}
57
+ )
58
+ end
59
+
60
+ sig do
61
+ override.returns(
62
+ {
63
+ document_type:
64
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::OrSymbol,
65
+ file: Dataleon::Internal::FileInput,
66
+ url: String,
67
+ request_options: Dataleon::RequestOptions
68
+ }
69
+ )
70
+ end
71
+ def to_hash
72
+ end
73
+
74
+ # Filter by document type for upload (must be one of the allowed values)
75
+ module DocumentType
76
+ extend Dataleon::Internal::Type::Enum
77
+
78
+ TaggedSymbol =
79
+ T.type_alias do
80
+ T.all(
81
+ Symbol,
82
+ Dataleon::Individuals::DocumentUploadParams::DocumentType
83
+ )
84
+ end
85
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
86
+
87
+ LIASSE_FISCALE =
88
+ T.let(
89
+ :liasse_fiscale,
90
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
91
+ )
92
+ AMORTISED_LOAN_SCHEDULE =
93
+ T.let(
94
+ :amortised_loan_schedule,
95
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
96
+ )
97
+ INVOICE =
98
+ T.let(
99
+ :invoice,
100
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
101
+ )
102
+ RECEIPT =
103
+ T.let(
104
+ :receipt,
105
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
106
+ )
107
+ COMPANY_STATUTS =
108
+ T.let(
109
+ :company_statuts,
110
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
111
+ )
112
+ REGISTRATION_COMPANY_CERTIFICATE =
113
+ T.let(
114
+ :registration_company_certificate,
115
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
116
+ )
117
+ KBIS =
118
+ T.let(
119
+ :kbis,
120
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
121
+ )
122
+ RIB =
123
+ T.let(
124
+ :rib,
125
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
126
+ )
127
+ LIVRET_FAMILLE =
128
+ T.let(
129
+ :livret_famille,
130
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
131
+ )
132
+ BIRTH_CERTIFICATE =
133
+ T.let(
134
+ :birth_certificate,
135
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
136
+ )
137
+ PAYSLIP =
138
+ T.let(
139
+ :payslip,
140
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
141
+ )
142
+ SOCIAL_SECURITY_CARD =
143
+ T.let(
144
+ :social_security_card,
145
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
146
+ )
147
+ VEHICLE_REGISTRATION_CERTIFICATE =
148
+ T.let(
149
+ :vehicle_registration_certificate,
150
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
151
+ )
152
+ CARTE_GRISE =
153
+ T.let(
154
+ :carte_grise,
155
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
156
+ )
157
+ CRIMINAL_RECORD_EXTRACT =
158
+ T.let(
159
+ :criminal_record_extract,
160
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
161
+ )
162
+ PROOF_OF_ADDRESS =
163
+ T.let(
164
+ :proof_of_address,
165
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
166
+ )
167
+ IDENTITY_CARD_FRONT =
168
+ T.let(
169
+ :identity_card_front,
170
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
171
+ )
172
+ IDENTITY_CARD_BACK =
173
+ T.let(
174
+ :identity_card_back,
175
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
176
+ )
177
+ DRIVER_LICENSE_FRONT =
178
+ T.let(
179
+ :driver_license_front,
180
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
181
+ )
182
+ DRIVER_LICENSE_BACK =
183
+ T.let(
184
+ :driver_license_back,
185
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
186
+ )
187
+ IDENTITY_DOCUMENT =
188
+ T.let(
189
+ :identity_document,
190
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
191
+ )
192
+ DRIVER_LICENSE =
193
+ T.let(
194
+ :driver_license,
195
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
196
+ )
197
+ PASSPORT =
198
+ T.let(
199
+ :passport,
200
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
201
+ )
202
+ TAX =
203
+ T.let(
204
+ :tax,
205
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
206
+ )
207
+ CERTIFICATE_OF_INCORPORATION =
208
+ T.let(
209
+ :certificate_of_incorporation,
210
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
211
+ )
212
+ CERTIFICATE_OF_GOOD_STANDING =
213
+ T.let(
214
+ :certificate_of_good_standing,
215
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
216
+ )
217
+ LCB_FT_LAB_AML_POLICIES =
218
+ T.let(
219
+ :lcb_ft_lab_aml_policies,
220
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
221
+ )
222
+ NIU_ENTREPRISE =
223
+ T.let(
224
+ :niu_entreprise,
225
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
226
+ )
227
+ FINANCIAL_STATEMENTS =
228
+ T.let(
229
+ :financial_statements,
230
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
231
+ )
232
+ RCCM =
233
+ T.let(
234
+ :rccm,
235
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
236
+ )
237
+ PROOF_OF_SOURCE_FUNDS =
238
+ T.let(
239
+ :proof_of_source_funds,
240
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
241
+ )
242
+ ORGANIZATIONAL_CHART =
243
+ T.let(
244
+ :organizational_chart,
245
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
246
+ )
247
+ RISK_POLICIES =
248
+ T.let(
249
+ :risk_policies,
250
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
251
+ )
252
+
253
+ sig do
254
+ override.returns(
255
+ T::Array[
256
+ Dataleon::Individuals::DocumentUploadParams::DocumentType::TaggedSymbol
257
+ ]
258
+ )
259
+ end
260
+ def self.values
261
+ end
262
+ end
263
+ end
264
+ end
265
+ end
266
+ end
@@ -0,0 +1,252 @@
1
+ # typed: strong
2
+
3
+ module Dataleon
4
+ module Models
5
+ module Individuals
6
+ class GenericDocument < Dataleon::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Dataleon::Individuals::GenericDocument,
11
+ Dataleon::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # Unique identifier of the document.
16
+ sig { returns(T.nilable(String)) }
17
+ attr_reader :id
18
+
19
+ sig { params(id: String).void }
20
+ attr_writer :id
21
+
22
+ # List of verification checks performed on the document.
23
+ sig { returns(T.nilable(T::Array[Dataleon::Check])) }
24
+ attr_reader :checks
25
+
26
+ sig { params(checks: T::Array[Dataleon::Check::OrHash]).void }
27
+ attr_writer :checks
28
+
29
+ # Timestamp when the document was created or uploaded.
30
+ sig { returns(T.nilable(Time)) }
31
+ attr_reader :created_at
32
+
33
+ sig { params(created_at: Time).void }
34
+ attr_writer :created_at
35
+
36
+ # Type/category of the document.
37
+ sig { returns(T.nilable(String)) }
38
+ attr_reader :document_type
39
+
40
+ sig { params(document_type: String).void }
41
+ attr_writer :document_type
42
+
43
+ # Name or label for the document.
44
+ sig { returns(T.nilable(String)) }
45
+ attr_reader :name
46
+
47
+ sig { params(name: String).void }
48
+ attr_writer :name
49
+
50
+ # Signed URL for accessing the document file.
51
+ sig { returns(T.nilable(String)) }
52
+ attr_reader :signed_url
53
+
54
+ sig { params(signed_url: String).void }
55
+ attr_writer :signed_url
56
+
57
+ # Current processing state of the document (e.g., WAITING, PROCESSED).
58
+ sig { returns(T.nilable(String)) }
59
+ attr_reader :state
60
+
61
+ sig { params(state: String).void }
62
+ attr_writer :state
63
+
64
+ # Status of the document reception or approval.
65
+ sig { returns(T.nilable(String)) }
66
+ attr_reader :status
67
+
68
+ sig { params(status: String).void }
69
+ attr_writer :status
70
+
71
+ # List of tables extracted from the document, each containing operations.
72
+ sig do
73
+ returns(
74
+ T.nilable(T::Array[Dataleon::Individuals::GenericDocument::Table])
75
+ )
76
+ end
77
+ attr_reader :tables
78
+
79
+ sig do
80
+ params(
81
+ tables:
82
+ T::Array[Dataleon::Individuals::GenericDocument::Table::OrHash]
83
+ ).void
84
+ end
85
+ attr_writer :tables
86
+
87
+ # Extracted key-value pairs from the document, including confidence scores.
88
+ sig do
89
+ returns(
90
+ T.nilable(T::Array[Dataleon::Individuals::GenericDocument::Value])
91
+ )
92
+ end
93
+ attr_reader :values
94
+
95
+ sig do
96
+ params(
97
+ values:
98
+ T::Array[Dataleon::Individuals::GenericDocument::Value::OrHash]
99
+ ).void
100
+ end
101
+ attr_writer :values
102
+
103
+ # Represents a general document with metadata, verification checks, and extracted
104
+ # data.
105
+ sig do
106
+ params(
107
+ id: String,
108
+ checks: T::Array[Dataleon::Check::OrHash],
109
+ created_at: Time,
110
+ document_type: String,
111
+ name: String,
112
+ signed_url: String,
113
+ state: String,
114
+ status: String,
115
+ tables:
116
+ T::Array[Dataleon::Individuals::GenericDocument::Table::OrHash],
117
+ values:
118
+ T::Array[Dataleon::Individuals::GenericDocument::Value::OrHash]
119
+ ).returns(T.attached_class)
120
+ end
121
+ def self.new(
122
+ # Unique identifier of the document.
123
+ id: nil,
124
+ # List of verification checks performed on the document.
125
+ checks: nil,
126
+ # Timestamp when the document was created or uploaded.
127
+ created_at: nil,
128
+ # Type/category of the document.
129
+ document_type: nil,
130
+ # Name or label for the document.
131
+ name: nil,
132
+ # Signed URL for accessing the document file.
133
+ signed_url: nil,
134
+ # Current processing state of the document (e.g., WAITING, PROCESSED).
135
+ state: nil,
136
+ # Status of the document reception or approval.
137
+ status: nil,
138
+ # List of tables extracted from the document, each containing operations.
139
+ tables: nil,
140
+ # Extracted key-value pairs from the document, including confidence scores.
141
+ values: nil
142
+ )
143
+ end
144
+
145
+ sig do
146
+ override.returns(
147
+ {
148
+ id: String,
149
+ checks: T::Array[Dataleon::Check],
150
+ created_at: Time,
151
+ document_type: String,
152
+ name: String,
153
+ signed_url: String,
154
+ state: String,
155
+ status: String,
156
+ tables: T::Array[Dataleon::Individuals::GenericDocument::Table],
157
+ values: T::Array[Dataleon::Individuals::GenericDocument::Value]
158
+ }
159
+ )
160
+ end
161
+ def to_hash
162
+ end
163
+
164
+ class Table < Dataleon::Internal::Type::BaseModel
165
+ OrHash =
166
+ T.type_alias do
167
+ T.any(
168
+ Dataleon::Individuals::GenericDocument::Table,
169
+ Dataleon::Internal::AnyHash
170
+ )
171
+ end
172
+
173
+ # List of operations or actions associated with the table.
174
+ sig { returns(T.nilable(T::Array[T.anything])) }
175
+ attr_reader :operation
176
+
177
+ sig { params(operation: T::Array[T.anything]).void }
178
+ attr_writer :operation
179
+
180
+ sig do
181
+ params(operation: T::Array[T.anything]).returns(T.attached_class)
182
+ end
183
+ def self.new(
184
+ # List of operations or actions associated with the table.
185
+ operation: nil
186
+ )
187
+ end
188
+
189
+ sig { override.returns({ operation: T::Array[T.anything] }) }
190
+ def to_hash
191
+ end
192
+ end
193
+
194
+ class Value < Dataleon::Internal::Type::BaseModel
195
+ OrHash =
196
+ T.type_alias do
197
+ T.any(
198
+ Dataleon::Individuals::GenericDocument::Value,
199
+ Dataleon::Internal::AnyHash
200
+ )
201
+ end
202
+
203
+ # Confidence score (between 0 and 1) for the extracted value.
204
+ sig { returns(T.nilable(Float)) }
205
+ attr_reader :confidence
206
+
207
+ sig { params(confidence: Float).void }
208
+ attr_writer :confidence
209
+
210
+ # Name or label of the extracted field.
211
+ sig { returns(T.nilable(String)) }
212
+ attr_reader :name
213
+
214
+ sig { params(name: String).void }
215
+ attr_writer :name
216
+
217
+ # List of integer values related to the field (e.g., bounding box coordinates).
218
+ sig { returns(T.nilable(T::Array[Integer])) }
219
+ attr_reader :value
220
+
221
+ sig { params(value: T::Array[Integer]).void }
222
+ attr_writer :value
223
+
224
+ sig do
225
+ params(
226
+ confidence: Float,
227
+ name: String,
228
+ value: T::Array[Integer]
229
+ ).returns(T.attached_class)
230
+ end
231
+ def self.new(
232
+ # Confidence score (between 0 and 1) for the extracted value.
233
+ confidence: nil,
234
+ # Name or label of the extracted field.
235
+ name: nil,
236
+ # List of integer values related to the field (e.g., bounding box coordinates).
237
+ value: nil
238
+ )
239
+ end
240
+
241
+ sig do
242
+ override.returns(
243
+ { confidence: Float, name: String, value: T::Array[Integer] }
244
+ )
245
+ end
246
+ def to_hash
247
+ end
248
+ end
249
+ end
250
+ end
251
+ end
252
+ end