decthings_api/client/rpc/dataset/
response.rs

1use crate::{
2    client::rpc::Tag,
3    tensor::{DecthingsParameterDefinition, OwnedDecthingsTensor},
4};
5use serde::Deserialize;
6
7#[derive(Debug, Clone, Deserialize)]
8#[serde(rename_all = "camelCase")]
9pub struct CreateDatasetResult {
10    /// A unique identifier which you should use in subsequent API calls.
11    pub dataset_id: String,
12    /// The initial version identifier.
13    pub dataset_version_id: String,
14}
15
16#[derive(Debug, Clone, Deserialize)]
17#[serde(rename_all = "snake_case", tag = "code")]
18pub enum CreateDatasetError {
19    NameAlreadyUsed,
20    OrganizationNotFound,
21    AccessDenied,
22    QuotaExceeded,
23    BadCredentials,
24    TooManyRequests,
25    PaymentRequired,
26    Unknown,
27    #[serde(rename_all = "camelCase")]
28    InvalidParameter {
29        parameter_name: String,
30        reason: String,
31    },
32}
33
34#[derive(Debug, Clone, Deserialize)]
35#[serde(rename_all = "camelCase")]
36pub struct UpdateDatasetResult {}
37
38#[derive(Debug, Clone, Deserialize)]
39#[serde(rename_all = "snake_case", tag = "code")]
40pub enum UpdateDatasetError {
41    DatasetNotFound,
42    AccessDenied,
43    NameAlreadyUsed,
44    BadCredentials,
45    TooManyRequests,
46    PaymentRequired,
47    Unknown,
48    #[serde(rename_all = "camelCase")]
49    InvalidParameter {
50        parameter_name: String,
51        reason: String,
52    },
53}
54
55#[derive(Debug, Clone, Deserialize)]
56#[serde(rename_all = "camelCase")]
57pub struct DeleteDatasetResult {}
58
59#[derive(Debug, Clone, Deserialize)]
60#[serde(rename_all = "snake_case", tag = "code")]
61pub enum DeleteDatasetError {
62    DatasetNotFound,
63    AccessDenied,
64    BadCredentials,
65    TooManyRequests,
66    PaymentRequired,
67    Unknown,
68    #[serde(rename_all = "camelCase")]
69    InvalidParameter {
70        parameter_name: String,
71        reason: String,
72    },
73}
74
75#[derive(Debug, Clone, Deserialize)]
76#[serde(rename_all = "camelCase", tag = "type")]
77pub enum DatasetOwner {
78    #[serde(rename_all = "camelCase")]
79    User { user_id: String, username: String },
80    #[serde(rename_all = "camelCase")]
81    Organization {
82        organization_id: String,
83        organization_name: String,
84    },
85}
86
87#[derive(Debug, Clone, Deserialize)]
88#[serde(rename_all = "camelCase")]
89pub enum DatasetAccess {
90    Read,
91    Readwrite,
92}
93
94#[derive(Debug, Clone, Deserialize)]
95#[serde(rename_all = "camelCase")]
96pub struct DatasetEntries {
97    pub count: u32,
98    pub total_byte_size: u64,
99}
100
101#[derive(Debug, Clone, Deserialize)]
102#[serde(rename_all = "camelCase")]
103pub struct Dataset {
104    pub id: String,
105    pub name: String,
106    pub description: String,
107    pub public_access: bool,
108    pub created_at: i64,
109    pub tags: Vec<Tag>,
110    pub owner: DatasetOwner,
111    pub access: DatasetAccess,
112    pub keys: Vec<DecthingsParameterDefinition>,
113    pub entries: DatasetEntries,
114    pub needs_review_entries: DatasetEntries,
115    pub entries_waiting_to_be_deleted: DatasetEntries,
116    /// The version identifier will be updated every time the data in the dataset changes, for example when an element
117    /// is added. It can be used to prevent synchronization issues if multiple sources edit a dataset simultaneously.
118    pub version_id: String,
119}
120
121#[derive(Debug, Clone, Deserialize)]
122#[serde(rename_all = "camelCase")]
123pub struct GetDatasetsResult {
124    pub datasets: Vec<Dataset>,
125    /// The total number of datasets that matched the filter.
126    pub total: u32,
127    pub offset: u32,
128    pub limit: u32,
129}
130
131#[derive(Debug, Clone, Deserialize)]
132#[serde(rename_all = "snake_case", tag = "code")]
133pub enum GetDatasetsError {
134    BadCredentials,
135    TooManyRequests,
136    PaymentRequired,
137    Unknown,
138    #[serde(rename_all = "camelCase")]
139    InvalidParameter {
140        parameter_name: String,
141        reason: String,
142    },
143}
144
145#[derive(Debug, Clone, Deserialize)]
146#[serde(rename_all = "camelCase")]
147pub struct AddEntriesResult {
148    /// The new dataset version identifier, which should be used as the version identifier in subsequent requests.
149    pub new_dataset_version_id: String,
150}
151
152#[derive(Debug, Clone, Deserialize)]
153#[serde(rename_all = "snake_case", tag = "code")]
154pub enum AddEntriesError {
155    DatasetNotFound,
156    AccessDenied,
157    LimitExceeded,
158    QuotaExceeded,
159    #[serde(rename_all = "camelCase")]
160    IncorrectVersionId {
161        /// The correct current dataset version ID, which should be used instead.
162        dataset_version_id: String,
163    },
164    BadCredentials,
165    TooManyRequests,
166    PaymentRequired,
167    Unknown,
168    #[serde(rename_all = "camelCase")]
169    InvalidParameter {
170        parameter_name: String,
171        reason: String,
172    },
173}
174
175#[derive(Debug, Clone, Deserialize)]
176#[serde(rename_all = "camelCase")]
177pub struct AddEntriesToNeedsReviewResult {
178    /// The new dataset version identifier, which should be used as the version identifier in subsequent requests.
179    pub new_dataset_version_id: String,
180}
181
182#[derive(Debug, Clone, Deserialize)]
183#[serde(rename_all = "snake_case", tag = "code")]
184pub enum AddEntriesToNeedsReviewError {
185    DatasetNotFound,
186    AccessDenied,
187    LimitExceeded,
188    QuotaExceeded,
189    #[serde(rename_all = "camelCase")]
190    IncorrectVersionId {
191        /// The correct current dataset version ID, which should be used instead.
192        dataset_version_id: String,
193    },
194    BadCredentials,
195    TooManyRequests,
196    PaymentRequired,
197    Unknown,
198    #[serde(rename_all = "camelCase")]
199    InvalidParameter {
200        parameter_name: String,
201        reason: String,
202    },
203}
204
205#[derive(Debug, Clone, Deserialize)]
206#[serde(rename_all = "camelCase")]
207pub struct FinalizeNeedsReviewEntriesResult {
208    /// The new dataset version identifier, which should be used as the version identifier in subsequent requests.
209    pub new_dataset_version_id: String,
210    /// The number of bytes that was removed from 'needs review'.
211    pub removed_bytes_from_needs_review: u64,
212}
213
214#[derive(Debug, Clone, Deserialize)]
215#[serde(rename_all = "snake_case", tag = "code")]
216pub enum FinalizeNeedsReviewEntriesError {
217    DatasetNotFound,
218    IndexOutOfRange,
219    AccessDenied,
220    QuotaExceeded,
221    #[serde(rename_all = "camelCase")]
222    IncorrectVersionId {
223        /// The correct current dataset version ID, which should be used instead.
224        dataset_version_id: String,
225    },
226    BadCredentials,
227    TooManyRequests,
228    PaymentRequired,
229    Unknown,
230    #[serde(rename_all = "camelCase")]
231    InvalidParameter {
232        parameter_name: String,
233        reason: String,
234    },
235}
236
237#[derive(Deserialize)]
238#[serde(rename_all = "camelCase")]
239pub(super) struct InnerGetEntriesResult {
240    pub keys: Vec<String>,
241    pub indexes: Vec<u32>,
242}
243
244#[derive(Debug, Clone)]
245pub struct FetchedEntry {
246    pub index: u32,
247    pub data: OwnedDecthingsTensor,
248}
249
250#[derive(Debug, Clone)]
251pub struct KeyData {
252    pub name: String,
253    pub data: Vec<FetchedEntry>,
254}
255
256#[derive(Debug, Clone)]
257pub struct GetEntriesResult {
258    pub keys: Vec<KeyData>,
259}
260
261#[derive(Debug, Clone, Deserialize)]
262#[serde(rename_all = "snake_case", tag = "code")]
263pub enum GetEntriesError {
264    DatasetNotFound,
265    #[serde(rename_all = "camelCase")]
266    IncorrectVersionId {
267        /// The correct current dataset version ID, which should be used instead.
268        dataset_version_id: String,
269    },
270    BadCredentials,
271    TooManyRequests,
272    PaymentRequired,
273    Unknown,
274    #[serde(rename_all = "camelCase")]
275    InvalidParameter {
276        parameter_name: String,
277        reason: String,
278    },
279}
280
281#[derive(Deserialize)]
282#[serde(rename_all = "camelCase")]
283pub(super) struct InnerGetNeedsReviewEntriesResult {
284    pub keys: Vec<String>,
285    pub indexes: Vec<u32>,
286}
287
288#[derive(Debug, Clone)]
289pub struct GetNeedsReviewEntriesResult {
290    pub keys: Vec<KeyData>,
291}
292
293#[derive(Debug, Clone, Deserialize)]
294#[serde(rename_all = "snake_case", tag = "code")]
295pub enum GetNeedsReviewEntriesError {
296    DatasetNotFound,
297    #[serde(rename_all = "camelCase")]
298    IncorrectVersionId {
299        /// The correct current dataset version ID, which should be used instead.
300        dataset_version_id: String,
301    },
302    BadCredentials,
303    TooManyRequests,
304    PaymentRequired,
305    Unknown,
306    #[serde(rename_all = "camelCase")]
307    InvalidParameter {
308        parameter_name: String,
309        reason: String,
310    },
311}
312
313#[derive(Debug, Clone, Deserialize)]
314#[serde(rename_all = "camelCase")]
315pub struct RemoveEntriesResult {
316    /// The new dataset version identifier, which should be used as the version identifier in subsequent requests.
317    pub new_dataset_version_id: String,
318    pub removed_bytes: u64,
319    pub new_waiting_to_remove_bytes: u64,
320    pub new_waiting_to_remove_amount: u64,
321}
322
323#[derive(Debug, Clone, Deserialize)]
324#[serde(rename_all = "snake_case", tag = "code")]
325pub enum RemoveEntriesError {
326    DatasetNotFound,
327    IndexOutOfRange,
328    AccessDenied,
329    #[serde(rename_all = "camelCase")]
330    IncorrectVersionId {
331        /// The correct current dataset version ID, which should be used instead.
332        dataset_version_id: String,
333    },
334    BadCredentials,
335    TooManyRequests,
336    PaymentRequired,
337    Unknown,
338    #[serde(rename_all = "camelCase")]
339    InvalidParameter {
340        parameter_name: String,
341        reason: String,
342    },
343}
344
345#[derive(Debug, Clone, Deserialize)]
346#[serde(rename_all = "camelCase")]
347pub struct RemoveNeedsReviewEntriesResult {
348    /// The new dataset version identifier, which should be used as the version identifier in subsequent requests.
349    pub new_dataset_version_id: String,
350    pub removed_bytes: u64,
351}
352
353#[derive(Debug, Clone, Deserialize)]
354#[serde(rename_all = "snake_case", tag = "code")]
355pub enum RemoveNeedsReviewEntriesError {
356    DatasetNotFound,
357    IndexOutOfRange,
358    AccessDenied,
359    #[serde(rename_all = "camelCase")]
360    IncorrectVersionId {
361        /// The correct current dataset version ID, which should be used instead.
362        dataset_version_id: String,
363    },
364    BadCredentials,
365    TooManyRequests,
366    PaymentRequired,
367    Unknown,
368    #[serde(rename_all = "camelCase")]
369    InvalidParameter {
370        parameter_name: String,
371        reason: String,
372    },
373}