trieve_client/apis/
organization_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 [`create_organization`]
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum CreateOrganizationError {
22    Status400(models::ErrorResponseBody),
23    UnknownValue(serde_json::Value),
24}
25
26/// struct for typed errors of method [`delete_organization`]
27#[derive(Debug, Clone, Serialize, Deserialize)]
28#[serde(untagged)]
29pub enum DeleteOrganizationError {
30    Status400(models::ErrorResponseBody),
31    UnknownValue(serde_json::Value),
32}
33
34/// struct for typed errors of method [`get_organization`]
35#[derive(Debug, Clone, Serialize, Deserialize)]
36#[serde(untagged)]
37pub enum GetOrganizationError {
38    Status400(models::ErrorResponseBody),
39    Status404(models::ErrorResponseBody),
40    UnknownValue(serde_json::Value),
41}
42
43/// struct for typed errors of method [`get_organization_usage`]
44#[derive(Debug, Clone, Serialize, Deserialize)]
45#[serde(untagged)]
46pub enum GetOrganizationUsageError {
47    Status400(models::ErrorResponseBody),
48    UnknownValue(serde_json::Value),
49}
50
51/// struct for typed errors of method [`get_organization_users`]
52#[derive(Debug, Clone, Serialize, Deserialize)]
53#[serde(untagged)]
54pub enum GetOrganizationUsersError {
55    Status400(models::ErrorResponseBody),
56    UnknownValue(serde_json::Value),
57}
58
59/// struct for typed errors of method [`update_all_org_dataset_configs`]
60#[derive(Debug, Clone, Serialize, Deserialize)]
61#[serde(untagged)]
62pub enum UpdateAllOrgDatasetConfigsError {
63    Status400(models::ErrorResponseBody),
64    UnknownValue(serde_json::Value),
65}
66
67/// struct for typed errors of method [`update_organization`]
68#[derive(Debug, Clone, Serialize, Deserialize)]
69#[serde(untagged)]
70pub enum UpdateOrganizationError {
71    Status400(models::ErrorResponseBody),
72    UnknownValue(serde_json::Value),
73}
74
75
76/// Create a new organization. The auth'ed user who creates the organization will be the default owner of the organization.
77pub async fn create_organization(configuration: &configuration::Configuration, create_organization_req_payload: models::CreateOrganizationReqPayload) -> Result<models::Organization, Error<CreateOrganizationError>> {
78    let local_var_configuration = configuration;
79
80    let local_var_client = &local_var_configuration.client;
81
82    let local_var_uri_str = format!("{}/api/organization", local_var_configuration.base_path);
83    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
84
85    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
86        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
87    }
88    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
89        let local_var_key = local_var_apikey.key.clone();
90        let local_var_value = match local_var_apikey.prefix {
91            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
92            None => local_var_key,
93        };
94        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
95    };
96    local_var_req_builder = local_var_req_builder.json(&create_organization_req_payload);
97
98    let local_var_req = local_var_req_builder.build()?;
99    let local_var_resp = local_var_client.execute(local_var_req).await?;
100
101    let local_var_status = local_var_resp.status();
102    let local_var_content = local_var_resp.text().await?;
103
104    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
105        serde_json::from_str(&local_var_content).map_err(Error::from)
106    } else {
107        let local_var_entity: Option<CreateOrganizationError> = serde_json::from_str(&local_var_content).ok();
108        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
109        Err(Error::ResponseError(local_var_error))
110    }
111}
112
113/// Delete an organization by its id. The auth'ed user must be an owner of the organization to delete it.
114pub async fn delete_organization(configuration: &configuration::Configuration, tr_organization: &str, organization_id: &str) -> Result<(), Error<DeleteOrganizationError>> {
115    let local_var_configuration = configuration;
116
117    let local_var_client = &local_var_configuration.client;
118
119    let local_var_uri_str = format!("{}/api/organization/{organization_id}", local_var_configuration.base_path, organization_id=crate::apis::urlencode(organization_id));
120    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
121
122    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
123        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
124    }
125    local_var_req_builder = local_var_req_builder.header("TR-Organization", tr_organization.to_string());
126    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
127        let local_var_key = local_var_apikey.key.clone();
128        let local_var_value = match local_var_apikey.prefix {
129            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
130            None => local_var_key,
131        };
132        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
133    };
134
135    let local_var_req = local_var_req_builder.build()?;
136    let local_var_resp = local_var_client.execute(local_var_req).await?;
137
138    let local_var_status = local_var_resp.status();
139    let local_var_content = local_var_resp.text().await?;
140
141    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
142        Ok(())
143    } else {
144        let local_var_entity: Option<DeleteOrganizationError> = serde_json::from_str(&local_var_content).ok();
145        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
146        Err(Error::ResponseError(local_var_error))
147    }
148}
149
150/// Fetch the details of an organization by its id. Auth'ed user or api key must have an admin or owner role for the specified dataset's organization.
151pub async fn get_organization(configuration: &configuration::Configuration, tr_organization: &str, organization_id: &str) -> Result<models::Organization, Error<GetOrganizationError>> {
152    let local_var_configuration = configuration;
153
154    let local_var_client = &local_var_configuration.client;
155
156    let local_var_uri_str = format!("{}/api/organization/{organization_id}", local_var_configuration.base_path, organization_id=crate::apis::urlencode(organization_id));
157    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
158
159    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
160        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
161    }
162    local_var_req_builder = local_var_req_builder.header("TR-Organization", tr_organization.to_string());
163    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
164        let local_var_key = local_var_apikey.key.clone();
165        let local_var_value = match local_var_apikey.prefix {
166            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
167            None => local_var_key,
168        };
169        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
170    };
171
172    let local_var_req = local_var_req_builder.build()?;
173    let local_var_resp = local_var_client.execute(local_var_req).await?;
174
175    let local_var_status = local_var_resp.status();
176    let local_var_content = local_var_resp.text().await?;
177
178    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
179        serde_json::from_str(&local_var_content).map_err(Error::from)
180    } else {
181        let local_var_entity: Option<GetOrganizationError> = serde_json::from_str(&local_var_content).ok();
182        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
183        Err(Error::ResponseError(local_var_error))
184    }
185}
186
187/// Fetch the current usage specification of an organization by its id. Auth'ed user or api key must have an admin or owner role for the specified dataset's organization.
188pub async fn get_organization_usage(configuration: &configuration::Configuration, tr_organization: &str, organization_id: &str) -> Result<models::OrganizationUsageCount, Error<GetOrganizationUsageError>> {
189    let local_var_configuration = configuration;
190
191    let local_var_client = &local_var_configuration.client;
192
193    let local_var_uri_str = format!("{}/api/organization/usage/{organization_id}", local_var_configuration.base_path, organization_id=crate::apis::urlencode(organization_id));
194    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
195
196    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
197        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
198    }
199    local_var_req_builder = local_var_req_builder.header("TR-Organization", tr_organization.to_string());
200    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
201        let local_var_key = local_var_apikey.key.clone();
202        let local_var_value = match local_var_apikey.prefix {
203            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
204            None => local_var_key,
205        };
206        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
207    };
208
209    let local_var_req = local_var_req_builder.build()?;
210    let local_var_resp = local_var_client.execute(local_var_req).await?;
211
212    let local_var_status = local_var_resp.status();
213    let local_var_content = local_var_resp.text().await?;
214
215    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
216        serde_json::from_str(&local_var_content).map_err(Error::from)
217    } else {
218        let local_var_entity: Option<GetOrganizationUsageError> = serde_json::from_str(&local_var_content).ok();
219        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
220        Err(Error::ResponseError(local_var_error))
221    }
222}
223
224/// Fetch the users of an organization by its id. Auth'ed user or api key must have an admin or owner role for the specified dataset's organization.
225pub async fn get_organization_users(configuration: &configuration::Configuration, tr_organization: &str, organization_id: &str) -> Result<Vec<models::SlimUser>, Error<GetOrganizationUsersError>> {
226    let local_var_configuration = configuration;
227
228    let local_var_client = &local_var_configuration.client;
229
230    let local_var_uri_str = format!("{}/api/organization/users/{organization_id}", local_var_configuration.base_path, organization_id=crate::apis::urlencode(organization_id));
231    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
232
233    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
234        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
235    }
236    local_var_req_builder = local_var_req_builder.header("TR-Organization", tr_organization.to_string());
237    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
238        let local_var_key = local_var_apikey.key.clone();
239        let local_var_value = match local_var_apikey.prefix {
240            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
241            None => local_var_key,
242        };
243        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
244    };
245
246    let local_var_req = local_var_req_builder.build()?;
247    let local_var_resp = local_var_client.execute(local_var_req).await?;
248
249    let local_var_status = local_var_resp.status();
250    let local_var_content = local_var_resp.text().await?;
251
252    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
253        serde_json::from_str(&local_var_content).map_err(Error::from)
254    } else {
255        let local_var_entity: Option<GetOrganizationUsersError> = serde_json::from_str(&local_var_content).ok();
256        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
257        Err(Error::ResponseError(local_var_error))
258    }
259}
260
261/// Update the configurations for all datasets in an organization. Only the specified keys in the configuration object will be changed per dataset such that you can preserve dataset unique values. Auth'ed user or api key must have an owner role for the specified organization.
262pub async fn update_all_org_dataset_configs(configuration: &configuration::Configuration, tr_organization: &str, update_all_org_dataset_configs_req_payload: models::UpdateAllOrgDatasetConfigsReqPayload) -> Result<(), Error<UpdateAllOrgDatasetConfigsError>> {
263    let local_var_configuration = configuration;
264
265    let local_var_client = &local_var_configuration.client;
266
267    let local_var_uri_str = format!("{}/api/organization/update_dataset_configs", local_var_configuration.base_path);
268    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
269
270    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
271        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
272    }
273    local_var_req_builder = local_var_req_builder.header("TR-Organization", tr_organization.to_string());
274    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
275        let local_var_key = local_var_apikey.key.clone();
276        let local_var_value = match local_var_apikey.prefix {
277            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
278            None => local_var_key,
279        };
280        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
281    };
282    local_var_req_builder = local_var_req_builder.json(&update_all_org_dataset_configs_req_payload);
283
284    let local_var_req = local_var_req_builder.build()?;
285    let local_var_resp = local_var_client.execute(local_var_req).await?;
286
287    let local_var_status = local_var_resp.status();
288    let local_var_content = local_var_resp.text().await?;
289
290    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
291        Ok(())
292    } else {
293        let local_var_entity: Option<UpdateAllOrgDatasetConfigsError> = serde_json::from_str(&local_var_content).ok();
294        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
295        Err(Error::ResponseError(local_var_error))
296    }
297}
298
299/// Update an organization. Only the owner of the organization can update it.
300pub async fn update_organization(configuration: &configuration::Configuration, tr_organization: &str, update_organization_req_payload: models::UpdateOrganizationReqPayload) -> Result<models::Organization, Error<UpdateOrganizationError>> {
301    let local_var_configuration = configuration;
302
303    let local_var_client = &local_var_configuration.client;
304
305    let local_var_uri_str = format!("{}/api/organization", local_var_configuration.base_path);
306    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
307
308    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
309        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
310    }
311    local_var_req_builder = local_var_req_builder.header("TR-Organization", tr_organization.to_string());
312    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
313        let local_var_key = local_var_apikey.key.clone();
314        let local_var_value = match local_var_apikey.prefix {
315            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
316            None => local_var_key,
317        };
318        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
319    };
320    local_var_req_builder = local_var_req_builder.json(&update_organization_req_payload);
321
322    let local_var_req = local_var_req_builder.build()?;
323    let local_var_resp = local_var_client.execute(local_var_req).await?;
324
325    let local_var_status = local_var_resp.status();
326    let local_var_content = local_var_resp.text().await?;
327
328    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
329        serde_json::from_str(&local_var_content).map_err(Error::from)
330    } else {
331        let local_var_entity: Option<UpdateOrganizationError> = serde_json::from_str(&local_var_content).ok();
332        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
333        Err(Error::ResponseError(local_var_error))
334    }
335}
336