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,323 @@
1
+ # typed: strong
2
+
3
+ module Dataleon
4
+ module Models
5
+ class IndividualUpdateParams < Dataleon::Internal::Type::BaseModel
6
+ extend Dataleon::Internal::Type::RequestParameters::Converter
7
+ include Dataleon::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Dataleon::IndividualUpdateParams, Dataleon::Internal::AnyHash)
12
+ end
13
+
14
+ # Unique identifier of the workspace where the individual is being registered.
15
+ sig { returns(String) }
16
+ attr_accessor :workspace_id
17
+
18
+ # Personal information about the individual.
19
+ sig { returns(T.nilable(Dataleon::IndividualUpdateParams::Person)) }
20
+ attr_reader :person
21
+
22
+ sig do
23
+ params(person: Dataleon::IndividualUpdateParams::Person::OrHash).void
24
+ end
25
+ attr_writer :person
26
+
27
+ # Optional identifier for tracking the source system or integration from your
28
+ # system.
29
+ sig { returns(T.nilable(String)) }
30
+ attr_reader :source_id
31
+
32
+ sig { params(source_id: String).void }
33
+ attr_writer :source_id
34
+
35
+ # Technical metadata related to the request or processing.
36
+ sig do
37
+ returns(T.nilable(Dataleon::IndividualUpdateParams::TechnicalData))
38
+ end
39
+ attr_reader :technical_data
40
+
41
+ sig do
42
+ params(
43
+ technical_data:
44
+ Dataleon::IndividualUpdateParams::TechnicalData::OrHash
45
+ ).void
46
+ end
47
+ attr_writer :technical_data
48
+
49
+ sig do
50
+ params(
51
+ workspace_id: String,
52
+ person: Dataleon::IndividualUpdateParams::Person::OrHash,
53
+ source_id: String,
54
+ technical_data:
55
+ Dataleon::IndividualUpdateParams::TechnicalData::OrHash,
56
+ request_options: Dataleon::RequestOptions::OrHash
57
+ ).returns(T.attached_class)
58
+ end
59
+ def self.new(
60
+ # Unique identifier of the workspace where the individual is being registered.
61
+ workspace_id:,
62
+ # Personal information about the individual.
63
+ person: nil,
64
+ # Optional identifier for tracking the source system or integration from your
65
+ # system.
66
+ source_id: nil,
67
+ # Technical metadata related to the request or processing.
68
+ technical_data: nil,
69
+ request_options: {}
70
+ )
71
+ end
72
+
73
+ sig do
74
+ override.returns(
75
+ {
76
+ workspace_id: String,
77
+ person: Dataleon::IndividualUpdateParams::Person,
78
+ source_id: String,
79
+ technical_data: Dataleon::IndividualUpdateParams::TechnicalData,
80
+ request_options: Dataleon::RequestOptions
81
+ }
82
+ )
83
+ end
84
+ def to_hash
85
+ end
86
+
87
+ class Person < Dataleon::Internal::Type::BaseModel
88
+ OrHash =
89
+ T.type_alias do
90
+ T.any(
91
+ Dataleon::IndividualUpdateParams::Person,
92
+ Dataleon::Internal::AnyHash
93
+ )
94
+ end
95
+
96
+ # Date of birth in DD/MM/YYYY format.
97
+ sig { returns(T.nilable(String)) }
98
+ attr_reader :birthday
99
+
100
+ sig { params(birthday: String).void }
101
+ attr_writer :birthday
102
+
103
+ # Email address of the individual.
104
+ sig { returns(T.nilable(String)) }
105
+ attr_reader :email
106
+
107
+ sig { params(email: String).void }
108
+ attr_writer :email
109
+
110
+ # First name of the individual.
111
+ sig { returns(T.nilable(String)) }
112
+ attr_reader :first_name
113
+
114
+ sig { params(first_name: String).void }
115
+ attr_writer :first_name
116
+
117
+ # Gender of the individual (M for male, F for female).
118
+ sig do
119
+ returns(
120
+ T.nilable(
121
+ Dataleon::IndividualUpdateParams::Person::Gender::OrSymbol
122
+ )
123
+ )
124
+ end
125
+ attr_reader :gender
126
+
127
+ sig do
128
+ params(
129
+ gender: Dataleon::IndividualUpdateParams::Person::Gender::OrSymbol
130
+ ).void
131
+ end
132
+ attr_writer :gender
133
+
134
+ # Last name (family name) of the individual.
135
+ sig { returns(T.nilable(String)) }
136
+ attr_reader :last_name
137
+
138
+ sig { params(last_name: String).void }
139
+ attr_writer :last_name
140
+
141
+ # Maiden name, if applicable.
142
+ sig { returns(T.nilable(String)) }
143
+ attr_reader :maiden_name
144
+
145
+ sig { params(maiden_name: String).void }
146
+ attr_writer :maiden_name
147
+
148
+ # Phone number of the individual.
149
+ sig { returns(T.nilable(String)) }
150
+ attr_reader :phone_number
151
+
152
+ sig { params(phone_number: String).void }
153
+ attr_writer :phone_number
154
+
155
+ # Personal information about the individual.
156
+ sig do
157
+ params(
158
+ birthday: String,
159
+ email: String,
160
+ first_name: String,
161
+ gender: Dataleon::IndividualUpdateParams::Person::Gender::OrSymbol,
162
+ last_name: String,
163
+ maiden_name: String,
164
+ phone_number: String
165
+ ).returns(T.attached_class)
166
+ end
167
+ def self.new(
168
+ # Date of birth in DD/MM/YYYY format.
169
+ birthday: nil,
170
+ # Email address of the individual.
171
+ email: nil,
172
+ # First name of the individual.
173
+ first_name: nil,
174
+ # Gender of the individual (M for male, F for female).
175
+ gender: nil,
176
+ # Last name (family name) of the individual.
177
+ last_name: nil,
178
+ # Maiden name, if applicable.
179
+ maiden_name: nil,
180
+ # Phone number of the individual.
181
+ phone_number: nil
182
+ )
183
+ end
184
+
185
+ sig do
186
+ override.returns(
187
+ {
188
+ birthday: String,
189
+ email: String,
190
+ first_name: String,
191
+ gender:
192
+ Dataleon::IndividualUpdateParams::Person::Gender::OrSymbol,
193
+ last_name: String,
194
+ maiden_name: String,
195
+ phone_number: String
196
+ }
197
+ )
198
+ end
199
+ def to_hash
200
+ end
201
+
202
+ # Gender of the individual (M for male, F for female).
203
+ module Gender
204
+ extend Dataleon::Internal::Type::Enum
205
+
206
+ TaggedSymbol =
207
+ T.type_alias do
208
+ T.all(Symbol, Dataleon::IndividualUpdateParams::Person::Gender)
209
+ end
210
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
211
+
212
+ M =
213
+ T.let(
214
+ :M,
215
+ Dataleon::IndividualUpdateParams::Person::Gender::TaggedSymbol
216
+ )
217
+ F =
218
+ T.let(
219
+ :F,
220
+ Dataleon::IndividualUpdateParams::Person::Gender::TaggedSymbol
221
+ )
222
+
223
+ sig do
224
+ override.returns(
225
+ T::Array[
226
+ Dataleon::IndividualUpdateParams::Person::Gender::TaggedSymbol
227
+ ]
228
+ )
229
+ end
230
+ def self.values
231
+ end
232
+ end
233
+ end
234
+
235
+ class TechnicalData < Dataleon::Internal::Type::BaseModel
236
+ OrHash =
237
+ T.type_alias do
238
+ T.any(
239
+ Dataleon::IndividualUpdateParams::TechnicalData,
240
+ Dataleon::Internal::AnyHash
241
+ )
242
+ end
243
+
244
+ # Flag indicating whether there are active research AML (Anti-Money Laundering)
245
+ # suspicions for the individual when you apply for a new entry or get an existing
246
+ # one.
247
+ sig { returns(T.nilable(T::Boolean)) }
248
+ attr_reader :active_aml_suspicions
249
+
250
+ sig { params(active_aml_suspicions: T::Boolean).void }
251
+ attr_writer :active_aml_suspicions
252
+
253
+ # URL to call back upon completion of processing.
254
+ sig { returns(T.nilable(String)) }
255
+ attr_reader :callback_url
256
+
257
+ sig { params(callback_url: String).void }
258
+ attr_writer :callback_url
259
+
260
+ # URL for receive notifications about the processing state or status.
261
+ sig { returns(T.nilable(String)) }
262
+ attr_reader :callback_url_notification
263
+
264
+ sig { params(callback_url_notification: String).void }
265
+ attr_writer :callback_url_notification
266
+
267
+ # Preferred language for communication (e.g., "eng", "fra").
268
+ sig { returns(T.nilable(String)) }
269
+ attr_reader :language
270
+
271
+ sig { params(language: String).void }
272
+ attr_writer :language
273
+
274
+ # Flag indicating whether to include raw data in the response.
275
+ sig { returns(T.nilable(T::Boolean)) }
276
+ attr_reader :raw_data
277
+
278
+ sig { params(raw_data: T::Boolean).void }
279
+ attr_writer :raw_data
280
+
281
+ # Technical metadata related to the request or processing.
282
+ sig do
283
+ params(
284
+ active_aml_suspicions: T::Boolean,
285
+ callback_url: String,
286
+ callback_url_notification: String,
287
+ language: String,
288
+ raw_data: T::Boolean
289
+ ).returns(T.attached_class)
290
+ end
291
+ def self.new(
292
+ # Flag indicating whether there are active research AML (Anti-Money Laundering)
293
+ # suspicions for the individual when you apply for a new entry or get an existing
294
+ # one.
295
+ active_aml_suspicions: nil,
296
+ # URL to call back upon completion of processing.
297
+ callback_url: nil,
298
+ # URL for receive notifications about the processing state or status.
299
+ callback_url_notification: nil,
300
+ # Preferred language for communication (e.g., "eng", "fra").
301
+ language: nil,
302
+ # Flag indicating whether to include raw data in the response.
303
+ raw_data: nil
304
+ )
305
+ end
306
+
307
+ sig do
308
+ override.returns(
309
+ {
310
+ active_aml_suspicions: T::Boolean,
311
+ callback_url: String,
312
+ callback_url_notification: String,
313
+ language: String,
314
+ raw_data: T::Boolean
315
+ }
316
+ )
317
+ end
318
+ def to_hash
319
+ end
320
+ end
321
+ end
322
+ end
323
+ end
@@ -0,0 +1,32 @@
1
+ # typed: strong
2
+
3
+ module Dataleon
4
+ module Models
5
+ module Individuals
6
+ class DocumentListParams < 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::DocumentListParams,
14
+ Dataleon::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig do
19
+ params(request_options: Dataleon::RequestOptions::OrHash).returns(
20
+ T.attached_class
21
+ )
22
+ end
23
+ def self.new(request_options: {})
24
+ end
25
+
26
+ sig { override.returns({ request_options: Dataleon::RequestOptions }) }
27
+ def to_hash
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,190 @@
1
+ # typed: strong
2
+
3
+ module Dataleon
4
+ module Models
5
+ module Individuals
6
+ class DocumentResponse < Dataleon::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Dataleon::Individuals::DocumentResponse,
11
+ Dataleon::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # List of documents associated with the response.
16
+ sig do
17
+ returns(
18
+ T.nilable(
19
+ T::Array[Dataleon::Individuals::DocumentResponse::Document]
20
+ )
21
+ )
22
+ end
23
+ attr_reader :documents
24
+
25
+ sig do
26
+ params(
27
+ documents:
28
+ T::Array[
29
+ Dataleon::Individuals::DocumentResponse::Document::OrHash
30
+ ]
31
+ ).void
32
+ end
33
+ attr_writer :documents
34
+
35
+ # Total number of documents available in the response.
36
+ sig { returns(T.nilable(Integer)) }
37
+ attr_reader :total_document
38
+
39
+ sig { params(total_document: Integer).void }
40
+ attr_writer :total_document
41
+
42
+ sig do
43
+ params(
44
+ documents:
45
+ T::Array[
46
+ Dataleon::Individuals::DocumentResponse::Document::OrHash
47
+ ],
48
+ total_document: Integer
49
+ ).returns(T.attached_class)
50
+ end
51
+ def self.new(
52
+ # List of documents associated with the response.
53
+ documents: nil,
54
+ # Total number of documents available in the response.
55
+ total_document: nil
56
+ )
57
+ end
58
+
59
+ sig do
60
+ override.returns(
61
+ {
62
+ documents:
63
+ T::Array[Dataleon::Individuals::DocumentResponse::Document],
64
+ total_document: Integer
65
+ }
66
+ )
67
+ end
68
+ def to_hash
69
+ end
70
+
71
+ class Document < Dataleon::Internal::Type::BaseModel
72
+ OrHash =
73
+ T.type_alias do
74
+ T.any(
75
+ Dataleon::Individuals::DocumentResponse::Document,
76
+ Dataleon::Internal::AnyHash
77
+ )
78
+ end
79
+
80
+ # Unique identifier of the document.
81
+ sig { returns(T.nilable(String)) }
82
+ attr_reader :id
83
+
84
+ sig { params(id: String).void }
85
+ attr_writer :id
86
+
87
+ # Functional type of the document (e.g., identity document, invoice).
88
+ sig { returns(T.nilable(String)) }
89
+ attr_reader :document_type
90
+
91
+ sig { params(document_type: String).void }
92
+ attr_writer :document_type
93
+
94
+ # Original filename of the uploaded document.
95
+ sig { returns(T.nilable(String)) }
96
+ attr_reader :filename
97
+
98
+ sig { params(filename: String).void }
99
+ attr_writer :filename
100
+
101
+ # Human-readable name of the document.
102
+ sig { returns(T.nilable(String)) }
103
+ attr_reader :name
104
+
105
+ sig { params(name: String).void }
106
+ attr_writer :name
107
+
108
+ # Secure URL to access the document.
109
+ sig { returns(T.nilable(String)) }
110
+ attr_reader :signed_url
111
+
112
+ sig { params(signed_url: String).void }
113
+ attr_writer :signed_url
114
+
115
+ # Processing state of the document (e.g., WAITING, STARTED, RUNNING, PROCESSED).
116
+ sig { returns(T.nilable(String)) }
117
+ attr_reader :state
118
+
119
+ sig { params(state: String).void }
120
+ attr_writer :state
121
+
122
+ # Validation status of the document (e.g., need_review, approved, rejected).
123
+ sig { returns(T.nilable(String)) }
124
+ attr_reader :status
125
+
126
+ sig { params(status: String).void }
127
+ attr_writer :status
128
+
129
+ # Identifier of the workspace to which the document belongs.
130
+ sig { returns(T.nilable(String)) }
131
+ attr_reader :workspace_id
132
+
133
+ sig { params(workspace_id: String).void }
134
+ attr_writer :workspace_id
135
+
136
+ # Represents a document stored and processed by the system, such as an identity
137
+ # card or a PDF contract.
138
+ sig do
139
+ params(
140
+ id: String,
141
+ document_type: String,
142
+ filename: String,
143
+ name: String,
144
+ signed_url: String,
145
+ state: String,
146
+ status: String,
147
+ workspace_id: String
148
+ ).returns(T.attached_class)
149
+ end
150
+ def self.new(
151
+ # Unique identifier of the document.
152
+ id: nil,
153
+ # Functional type of the document (e.g., identity document, invoice).
154
+ document_type: nil,
155
+ # Original filename of the uploaded document.
156
+ filename: nil,
157
+ # Human-readable name of the document.
158
+ name: nil,
159
+ # Secure URL to access the document.
160
+ signed_url: nil,
161
+ # Processing state of the document (e.g., WAITING, STARTED, RUNNING, PROCESSED).
162
+ state: nil,
163
+ # Validation status of the document (e.g., need_review, approved, rejected).
164
+ status: nil,
165
+ # Identifier of the workspace to which the document belongs.
166
+ workspace_id: nil
167
+ )
168
+ end
169
+
170
+ sig do
171
+ override.returns(
172
+ {
173
+ id: String,
174
+ document_type: String,
175
+ filename: String,
176
+ name: String,
177
+ signed_url: String,
178
+ state: String,
179
+ status: String,
180
+ workspace_id: String
181
+ }
182
+ )
183
+ end
184
+ def to_hash
185
+ end
186
+ end
187
+ end
188
+ end
189
+ end
190
+ end