trieve_client/apis/
dataset_api.rs

1/*
2 * Trieve API
3 *
4 * Trieve OpenAPI Specification. This document describes all of the operations available through the Trieve API.
5 *
6 * The version of the OpenAPI document: 0.11.7
7 * Contact: developers@trieve.ai
8 * Generated by: https://openapi-generator.tech
9 */
10
11
12use reqwest;
13
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration};
16
17
18/// struct for typed errors of method [`clear_dataset`]
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum ClearDatasetError {
22    Status400(models::ErrorResponseBody),
23    Status404(models::ErrorResponseBody),
24    UnknownValue(serde_json::Value),
25}
26
27/// struct for typed errors of method [`create_dataset`]
28#[derive(Debug, Clone, Serialize, Deserialize)]
29#[serde(untagged)]
30pub enum CreateDatasetError {
31    Status400(models::ErrorResponseBody),
32    UnknownValue(serde_json::Value),
33}
34
35/// struct for typed errors of method [`delete_dataset`]
36#[derive(Debug, Clone, Serialize, Deserialize)]
37#[serde(untagged)]
38pub enum DeleteDatasetError {
39    Status400(models::ErrorResponseBody),
40    Status404(models::ErrorResponseBody),
41    UnknownValue(serde_json::Value),
42}
43
44/// struct for typed errors of method [`delete_dataset_by_tracking_id`]
45#[derive(Debug, Clone, Serialize, Deserialize)]
46#[serde(untagged)]
47pub enum DeleteDatasetByTrackingIdError {
48    Status400(models::ErrorResponseBody),
49    Status404(models::ErrorResponseBody),
50    UnknownValue(serde_json::Value),
51}
52
53/// struct for typed errors of method [`get_all_tags`]
54#[derive(Debug, Clone, Serialize, Deserialize)]
55#[serde(untagged)]
56pub enum GetAllTagsError {
57    Status400(models::ErrorResponseBody),
58    UnknownValue(serde_json::Value),
59}
60
61/// struct for typed errors of method [`get_dataset`]
62#[derive(Debug, Clone, Serialize, Deserialize)]
63#[serde(untagged)]
64pub enum GetDatasetError {
65    Status400(models::ErrorResponseBody),
66    Status404(models::ErrorResponseBody),
67    UnknownValue(serde_json::Value),
68}
69
70/// struct for typed errors of method [`get_datasets_from_organization`]
71#[derive(Debug, Clone, Serialize, Deserialize)]
72#[serde(untagged)]
73pub enum GetDatasetsFromOrganizationError {
74    Status400(models::ErrorResponseBody),
75    Status404(models::ErrorResponseBody),
76    UnknownValue(serde_json::Value),
77}
78
79/// struct for typed errors of method [`get_usage_by_dataset_id`]
80#[derive(Debug, Clone, Serialize, Deserialize)]
81#[serde(untagged)]
82pub enum GetUsageByDatasetIdError {
83    Status400(models::ErrorResponseBody),
84    Status404(models::ErrorResponseBody),
85    UnknownValue(serde_json::Value),
86}
87
88/// struct for typed errors of method [`update_dataset`]
89#[derive(Debug, Clone, Serialize, Deserialize)]
90#[serde(untagged)]
91pub enum UpdateDatasetError {
92    Status400(models::ErrorResponseBody),
93    Status404(models::ErrorResponseBody),
94    UnknownValue(serde_json::Value),
95}
96
97
98/// Removes all chunks, files, and groups from the dataset while retaining the analytics and dataset itself. The auth'ed user must be an owner of the organization to clear a dataset.
99pub async fn clear_dataset(configuration: &configuration::Configuration, tr_dataset: &str, dataset_id: &str) -> Result<(), Error<ClearDatasetError>> {
100    let local_var_configuration = configuration;
101
102    let local_var_client = &local_var_configuration.client;
103
104    let local_var_uri_str = format!("{}/api/dataset/clear/{dataset_id}", local_var_configuration.base_path, dataset_id=crate::apis::urlencode(dataset_id));
105    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
106
107    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
108        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
109    }
110    local_var_req_builder = local_var_req_builder.header("TR-Dataset", tr_dataset.to_string());
111    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
112        let local_var_key = local_var_apikey.key.clone();
113        let local_var_value = match local_var_apikey.prefix {
114            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
115            None => local_var_key,
116        };
117        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
118    };
119
120    let local_var_req = local_var_req_builder.build()?;
121    let local_var_resp = local_var_client.execute(local_var_req).await?;
122
123    let local_var_status = local_var_resp.status();
124    let local_var_content = local_var_resp.text().await?;
125
126    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
127        Ok(())
128    } else {
129        let local_var_entity: Option<ClearDatasetError> = serde_json::from_str(&local_var_content).ok();
130        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
131        Err(Error::ResponseError(local_var_error))
132    }
133}
134
135/// Auth'ed user must be an owner of the organization to create a dataset.
136pub async fn create_dataset(configuration: &configuration::Configuration, tr_organization: &str, create_dataset_request: models::CreateDatasetRequest) -> Result<models::Dataset, Error<CreateDatasetError>> {
137    let local_var_configuration = configuration;
138
139    let local_var_client = &local_var_configuration.client;
140
141    let local_var_uri_str = format!("{}/api/dataset", local_var_configuration.base_path);
142    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
143
144    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
145        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
146    }
147    local_var_req_builder = local_var_req_builder.header("TR-Organization", tr_organization.to_string());
148    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
149        let local_var_key = local_var_apikey.key.clone();
150        let local_var_value = match local_var_apikey.prefix {
151            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
152            None => local_var_key,
153        };
154        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
155    };
156    local_var_req_builder = local_var_req_builder.json(&create_dataset_request);
157
158    let local_var_req = local_var_req_builder.build()?;
159    let local_var_resp = local_var_client.execute(local_var_req).await?;
160
161    let local_var_status = local_var_resp.status();
162    let local_var_content = local_var_resp.text().await?;
163
164    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
165        serde_json::from_str(&local_var_content).map_err(Error::from)
166    } else {
167        let local_var_entity: Option<CreateDatasetError> = serde_json::from_str(&local_var_content).ok();
168        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
169        Err(Error::ResponseError(local_var_error))
170    }
171}
172
173/// Auth'ed user must be an owner of the organization to delete a dataset.
174pub async fn delete_dataset(configuration: &configuration::Configuration, tr_dataset: &str, dataset_id: &str) -> Result<(), Error<DeleteDatasetError>> {
175    let local_var_configuration = configuration;
176
177    let local_var_client = &local_var_configuration.client;
178
179    let local_var_uri_str = format!("{}/api/dataset/{dataset_id}", local_var_configuration.base_path, dataset_id=crate::apis::urlencode(dataset_id));
180    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
181
182    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
183        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
184    }
185    local_var_req_builder = local_var_req_builder.header("TR-Dataset", tr_dataset.to_string());
186    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
187        let local_var_key = local_var_apikey.key.clone();
188        let local_var_value = match local_var_apikey.prefix {
189            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
190            None => local_var_key,
191        };
192        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
193    };
194
195    let local_var_req = local_var_req_builder.build()?;
196    let local_var_resp = local_var_client.execute(local_var_req).await?;
197
198    let local_var_status = local_var_resp.status();
199    let local_var_content = local_var_resp.text().await?;
200
201    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
202        Ok(())
203    } else {
204        let local_var_entity: Option<DeleteDatasetError> = serde_json::from_str(&local_var_content).ok();
205        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
206        Err(Error::ResponseError(local_var_error))
207    }
208}
209
210/// Auth'ed user must be an owner of the organization to delete a dataset.
211pub async fn delete_dataset_by_tracking_id(configuration: &configuration::Configuration, tr_dataset: &str, tracking_id: &str) -> Result<(), Error<DeleteDatasetByTrackingIdError>> {
212    let local_var_configuration = configuration;
213
214    let local_var_client = &local_var_configuration.client;
215
216    let local_var_uri_str = format!("{}/api/dataset/tracking_id/{tracking_id}", local_var_configuration.base_path, tracking_id=crate::apis::urlencode(tracking_id));
217    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
218
219    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
220        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
221    }
222    local_var_req_builder = local_var_req_builder.header("TR-Dataset", tr_dataset.to_string());
223    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
224        let local_var_key = local_var_apikey.key.clone();
225        let local_var_value = match local_var_apikey.prefix {
226            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
227            None => local_var_key,
228        };
229        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
230    };
231
232    let local_var_req = local_var_req_builder.build()?;
233    let local_var_resp = local_var_client.execute(local_var_req).await?;
234
235    let local_var_status = local_var_resp.status();
236    let local_var_content = local_var_resp.text().await?;
237
238    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
239        Ok(())
240    } else {
241        let local_var_entity: Option<DeleteDatasetByTrackingIdError> = serde_json::from_str(&local_var_content).ok();
242        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
243        Err(Error::ResponseError(local_var_error))
244    }
245}
246
247/// Scroll through all tags in the dataset and get the number of chunks in the dataset with that tag plus the total number of unique tags for the whole datset.
248pub async fn get_all_tags(configuration: &configuration::Configuration, tr_dataset: &str, get_all_tags_req_payload: models::GetAllTagsReqPayload) -> Result<models::GetAllTagsResponse, Error<GetAllTagsError>> {
249    let local_var_configuration = configuration;
250
251    let local_var_client = &local_var_configuration.client;
252
253    let local_var_uri_str = format!("{}/api/dataset/get_all_tags", local_var_configuration.base_path);
254    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
255
256    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
257        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
258    }
259    local_var_req_builder = local_var_req_builder.header("TR-Dataset", tr_dataset.to_string());
260    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
261        let local_var_key = local_var_apikey.key.clone();
262        let local_var_value = match local_var_apikey.prefix {
263            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
264            None => local_var_key,
265        };
266        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
267    };
268    local_var_req_builder = local_var_req_builder.json(&get_all_tags_req_payload);
269
270    let local_var_req = local_var_req_builder.build()?;
271    let local_var_resp = local_var_client.execute(local_var_req).await?;
272
273    let local_var_status = local_var_resp.status();
274    let local_var_content = local_var_resp.text().await?;
275
276    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
277        serde_json::from_str(&local_var_content).map_err(Error::from)
278    } else {
279        let local_var_entity: Option<GetAllTagsError> = serde_json::from_str(&local_var_content).ok();
280        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
281        Err(Error::ResponseError(local_var_error))
282    }
283}
284
285/// Auth'ed user or api key must have an admin or owner role for the specified dataset's organization.
286pub async fn get_dataset(configuration: &configuration::Configuration, tr_dataset: &str, dataset_id: &str) -> Result<models::Dataset, Error<GetDatasetError>> {
287    let local_var_configuration = configuration;
288
289    let local_var_client = &local_var_configuration.client;
290
291    let local_var_uri_str = format!("{}/api/dataset/{dataset_id}", local_var_configuration.base_path, dataset_id=crate::apis::urlencode(dataset_id));
292    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
293
294    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
295        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
296    }
297    local_var_req_builder = local_var_req_builder.header("TR-Dataset", tr_dataset.to_string());
298    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
299        let local_var_key = local_var_apikey.key.clone();
300        let local_var_value = match local_var_apikey.prefix {
301            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
302            None => local_var_key,
303        };
304        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
305    };
306
307    let local_var_req = local_var_req_builder.build()?;
308    let local_var_resp = local_var_client.execute(local_var_req).await?;
309
310    let local_var_status = local_var_resp.status();
311    let local_var_content = local_var_resp.text().await?;
312
313    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
314        serde_json::from_str(&local_var_content).map_err(Error::from)
315    } else {
316        let local_var_entity: Option<GetDatasetError> = serde_json::from_str(&local_var_content).ok();
317        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
318        Err(Error::ResponseError(local_var_error))
319    }
320}
321
322/// Auth'ed user or api key must have an admin or owner role for the specified dataset's organization.
323pub async fn get_datasets_from_organization(configuration: &configuration::Configuration, tr_organization: &str, organization_id: &str, limit: Option<i64>, offset: Option<i64>) -> Result<Vec<models::DatasetAndUsage>, Error<GetDatasetsFromOrganizationError>> {
324    let local_var_configuration = configuration;
325
326    let local_var_client = &local_var_configuration.client;
327
328    let local_var_uri_str = format!("{}/api/dataset/organization/{organization_id}", local_var_configuration.base_path, organization_id=crate::apis::urlencode(organization_id));
329    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
330
331    if let Some(ref local_var_str) = limit {
332        local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
333    }
334    if let Some(ref local_var_str) = offset {
335        local_var_req_builder = local_var_req_builder.query(&[("offset", &local_var_str.to_string())]);
336    }
337    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
338        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
339    }
340    local_var_req_builder = local_var_req_builder.header("TR-Organization", tr_organization.to_string());
341    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
342        let local_var_key = local_var_apikey.key.clone();
343        let local_var_value = match local_var_apikey.prefix {
344            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
345            None => local_var_key,
346        };
347        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
348    };
349
350    let local_var_req = local_var_req_builder.build()?;
351    let local_var_resp = local_var_client.execute(local_var_req).await?;
352
353    let local_var_status = local_var_resp.status();
354    let local_var_content = local_var_resp.text().await?;
355
356    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
357        serde_json::from_str(&local_var_content).map_err(Error::from)
358    } else {
359        let local_var_entity: Option<GetDatasetsFromOrganizationError> = serde_json::from_str(&local_var_content).ok();
360        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
361        Err(Error::ResponseError(local_var_error))
362    }
363}
364
365/// Auth'ed user or api key must have an admin or owner role for the specified dataset's organization.
366pub async fn get_usage_by_dataset_id(configuration: &configuration::Configuration, tr_dataset: &str, dataset_id: &str) -> Result<models::DatasetUsageCount, Error<GetUsageByDatasetIdError>> {
367    let local_var_configuration = configuration;
368
369    let local_var_client = &local_var_configuration.client;
370
371    let local_var_uri_str = format!("{}/api/dataset/usage/{dataset_id}", local_var_configuration.base_path, dataset_id=crate::apis::urlencode(dataset_id));
372    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
373
374    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
375        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
376    }
377    local_var_req_builder = local_var_req_builder.header("TR-Dataset", tr_dataset.to_string());
378    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
379        let local_var_key = local_var_apikey.key.clone();
380        let local_var_value = match local_var_apikey.prefix {
381            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
382            None => local_var_key,
383        };
384        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
385    };
386
387    let local_var_req = local_var_req_builder.build()?;
388    let local_var_resp = local_var_client.execute(local_var_req).await?;
389
390    let local_var_status = local_var_resp.status();
391    let local_var_content = local_var_resp.text().await?;
392
393    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
394        serde_json::from_str(&local_var_content).map_err(Error::from)
395    } else {
396        let local_var_entity: Option<GetUsageByDatasetIdError> = serde_json::from_str(&local_var_content).ok();
397        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
398        Err(Error::ResponseError(local_var_error))
399    }
400}
401
402/// One of id or tracking_id must be provided. The auth'ed user must be an owner of the organization to update a dataset.
403pub async fn update_dataset(configuration: &configuration::Configuration, tr_organization: &str, update_dataset_request: models::UpdateDatasetRequest) -> Result<models::Dataset, Error<UpdateDatasetError>> {
404    let local_var_configuration = configuration;
405
406    let local_var_client = &local_var_configuration.client;
407
408    let local_var_uri_str = format!("{}/api/dataset", local_var_configuration.base_path);
409    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
410
411    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
412        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
413    }
414    local_var_req_builder = local_var_req_builder.header("TR-Organization", tr_organization.to_string());
415    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
416        let local_var_key = local_var_apikey.key.clone();
417        let local_var_value = match local_var_apikey.prefix {
418            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
419            None => local_var_key,
420        };
421        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
422    };
423    local_var_req_builder = local_var_req_builder.json(&update_dataset_request);
424
425    let local_var_req = local_var_req_builder.build()?;
426    let local_var_resp = local_var_client.execute(local_var_req).await?;
427
428    let local_var_status = local_var_resp.status();
429    let local_var_content = local_var_resp.text().await?;
430
431    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
432        serde_json::from_str(&local_var_content).map_err(Error::from)
433    } else {
434        let local_var_entity: Option<UpdateDatasetError> = serde_json::from_str(&local_var_content).ok();
435        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
436        Err(Error::ResponseError(local_var_error))
437    }
438}
439