Skip to main content

windmill_api/apis/
ai_api.rs

1/*
2 * Windmill API
3 *
4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5 *
6 * The version of the OpenAPI document: 1.841.0
7 * Contact: contact@windmill.dev
8 * Generated by: https://openapi-generator.tech
9 */
10
11
12use reqwest;
13use serde::{Deserialize, Serialize};
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration};
16
17
18/// struct for typed errors of method [`get_ai_artifact_share_status`]
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum GetAiArtifactShareStatusError {
22    UnknownValue(serde_json::Value),
23}
24
25/// struct for typed errors of method [`get_ai_session_share_status`]
26#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(untagged)]
28pub enum GetAiSessionShareStatusError {
29    UnknownValue(serde_json::Value),
30}
31
32/// struct for typed errors of method [`get_shared_ai_artifact`]
33#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum GetSharedAiArtifactError {
36    UnknownValue(serde_json::Value),
37}
38
39/// struct for typed errors of method [`get_shared_ai_session`]
40#[derive(Debug, Clone, Serialize, Deserialize)]
41#[serde(untagged)]
42pub enum GetSharedAiSessionError {
43    UnknownValue(serde_json::Value),
44}
45
46/// struct for typed errors of method [`list_ai_session_backups`]
47#[derive(Debug, Clone, Serialize, Deserialize)]
48#[serde(untagged)]
49pub enum ListAiSessionBackupsError {
50    UnknownValue(serde_json::Value),
51}
52
53/// struct for typed errors of method [`list_ai_usage`]
54#[derive(Debug, Clone, Serialize, Deserialize)]
55#[serde(untagged)]
56pub enum ListAiUsageError {
57    UnknownValue(serde_json::Value),
58}
59
60/// struct for typed errors of method [`pull_ai_session_backups`]
61#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(untagged)]
63pub enum PullAiSessionBackupsError {
64    UnknownValue(serde_json::Value),
65}
66
67/// struct for typed errors of method [`push_ai_session_backups`]
68#[derive(Debug, Clone, Serialize, Deserialize)]
69#[serde(untagged)]
70pub enum PushAiSessionBackupsError {
71    UnknownValue(serde_json::Value),
72}
73
74/// struct for typed errors of method [`record_ai_usage`]
75#[derive(Debug, Clone, Serialize, Deserialize)]
76#[serde(untagged)]
77pub enum RecordAiUsageError {
78    UnknownValue(serde_json::Value),
79}
80
81/// struct for typed errors of method [`set_ai_session_share_public`]
82#[derive(Debug, Clone, Serialize, Deserialize)]
83#[serde(untagged)]
84pub enum SetAiSessionSharePublicError {
85    UnknownValue(serde_json::Value),
86}
87
88/// struct for typed errors of method [`share_ai_artifact`]
89#[derive(Debug, Clone, Serialize, Deserialize)]
90#[serde(untagged)]
91pub enum ShareAiArtifactError {
92    UnknownValue(serde_json::Value),
93}
94
95/// struct for typed errors of method [`share_ai_session`]
96#[derive(Debug, Clone, Serialize, Deserialize)]
97#[serde(untagged)]
98pub enum ShareAiSessionError {
99    UnknownValue(serde_json::Value),
100}
101
102/// struct for typed errors of method [`unshare_ai_artifact`]
103#[derive(Debug, Clone, Serialize, Deserialize)]
104#[serde(untagged)]
105pub enum UnshareAiArtifactError {
106    UnknownValue(serde_json::Value),
107}
108
109/// struct for typed errors of method [`unshare_ai_session`]
110#[derive(Debug, Clone, Serialize, Deserialize)]
111#[serde(untagged)]
112pub enum UnshareAiSessionError {
113    UnknownValue(serde_json::Value),
114}
115
116
117pub async fn get_ai_artifact_share_status(configuration: &configuration::Configuration, workspace: &str, artifact_id: &str) -> Result<models::GetAiArtifactShareStatus200Response, Error<GetAiArtifactShareStatusError>> {
118    let local_var_configuration = configuration;
119
120    let local_var_client = &local_var_configuration.client;
121
122    let local_var_uri_str = format!("{}/w/{workspace}/ai/shared_artifacts/status", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
123    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
124
125    local_var_req_builder = local_var_req_builder.query(&[("artifact_id", &artifact_id.to_string())]);
126    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
127        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
128    }
129    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
130        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
131    };
132
133    let local_var_req = local_var_req_builder.build()?;
134    let local_var_resp = local_var_client.execute(local_var_req).await?;
135
136    let local_var_status = local_var_resp.status();
137    let local_var_content = local_var_resp.text().await?;
138
139    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
140        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
141    } else {
142        let local_var_entity: Option<GetAiArtifactShareStatusError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
143        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
144        Err(Error::ResponseError(local_var_error))
145    }
146}
147
148pub async fn get_ai_session_share_status(configuration: &configuration::Configuration, workspace: &str, session_id: &str) -> Result<models::GetAiSessionShareStatus200Response, Error<GetAiSessionShareStatusError>> {
149    let local_var_configuration = configuration;
150
151    let local_var_client = &local_var_configuration.client;
152
153    let local_var_uri_str = format!("{}/w/{workspace}/ai/shared_sessions/status", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
154    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
155
156    local_var_req_builder = local_var_req_builder.query(&[("session_id", &session_id.to_string())]);
157    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
158        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
159    }
160    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
161        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
162    };
163
164    let local_var_req = local_var_req_builder.build()?;
165    let local_var_resp = local_var_client.execute(local_var_req).await?;
166
167    let local_var_status = local_var_resp.status();
168    let local_var_content = local_var_resp.text().await?;
169
170    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
171        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
172    } else {
173        let local_var_entity: Option<GetAiSessionShareStatusError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
174        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
175        Err(Error::ResponseError(local_var_error))
176    }
177}
178
179pub async fn get_shared_ai_artifact(configuration: &configuration::Configuration, workspace: &str, id: &str) -> Result<models::GetSharedAiArtifact200Response, Error<GetSharedAiArtifactError>> {
180    let local_var_configuration = configuration;
181
182    let local_var_client = &local_var_configuration.client;
183
184    let local_var_uri_str = format!("{}/w/{workspace}/ai/shared_artifacts/get/{id}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), id=crate::apis::urlencode(id));
185    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
186
187    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
188        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
189    }
190    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
191        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
192    };
193
194    let local_var_req = local_var_req_builder.build()?;
195    let local_var_resp = local_var_client.execute(local_var_req).await?;
196
197    let local_var_status = local_var_resp.status();
198    let local_var_content = local_var_resp.text().await?;
199
200    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
201        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
202    } else {
203        let local_var_entity: Option<GetSharedAiArtifactError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
204        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
205        Err(Error::ResponseError(local_var_error))
206    }
207}
208
209/// A public share is served without authentication; any other one only to a member of the workspace. 
210pub async fn get_shared_ai_session(configuration: &configuration::Configuration, workspace: &str, id: &str) -> Result<models::GetSharedAiSession200Response, Error<GetSharedAiSessionError>> {
211    let local_var_configuration = configuration;
212
213    let local_var_client = &local_var_configuration.client;
214
215    let local_var_uri_str = format!("{}/w/{workspace}/ai_u/shared_sessions/get/{id}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), id=crate::apis::urlencode(id));
216    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
217
218    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
219        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
220    }
221    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
222        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
223    };
224
225    let local_var_req = local_var_req_builder.build()?;
226    let local_var_resp = local_var_client.execute(local_var_req).await?;
227
228    let local_var_status = local_var_resp.status();
229    let local_var_content = local_var_resp.text().await?;
230
231    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
232        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
233    } else {
234        let local_var_entity: Option<GetSharedAiSessionError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
235        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
236        Err(Error::ResponseError(local_var_error))
237    }
238}
239
240pub async fn list_ai_session_backups(configuration: &configuration::Configuration, workspace: &str) -> Result<models::ListAiSessionBackups200Response, Error<ListAiSessionBackupsError>> {
241    let local_var_configuration = configuration;
242
243    let local_var_client = &local_var_configuration.client;
244
245    let local_var_uri_str = format!("{}/w/{workspace}/ai/sessions/list", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
246    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
247
248    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
249        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
250    }
251    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
252        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
253    };
254
255    let local_var_req = local_var_req_builder.build()?;
256    let local_var_resp = local_var_client.execute(local_var_req).await?;
257
258    let local_var_status = local_var_resp.status();
259    let local_var_content = local_var_resp.text().await?;
260
261    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
262        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
263    } else {
264        let local_var_entity: Option<ListAiSessionBackupsError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
265        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
266        Err(Error::ResponseError(local_var_error))
267    }
268}
269
270pub async fn list_ai_usage(configuration: &configuration::Configuration, workspace: &str, days: Option<i32>, group_by: Option<&str>, scope: Option<&str>) -> Result<models::ListAiUsage200Response, Error<ListAiUsageError>> {
271    let local_var_configuration = configuration;
272
273    let local_var_client = &local_var_configuration.client;
274
275    let local_var_uri_str = format!("{}/w/{workspace}/ai/usage", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
276    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
277
278    if let Some(ref local_var_str) = days {
279        local_var_req_builder = local_var_req_builder.query(&[("days", &local_var_str.to_string())]);
280    }
281    if let Some(ref local_var_str) = group_by {
282        local_var_req_builder = local_var_req_builder.query(&[("group_by", &local_var_str.to_string())]);
283    }
284    if let Some(ref local_var_str) = scope {
285        local_var_req_builder = local_var_req_builder.query(&[("scope", &local_var_str.to_string())]);
286    }
287    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
288        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
289    }
290    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
291        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
292    };
293
294    let local_var_req = local_var_req_builder.build()?;
295    let local_var_resp = local_var_client.execute(local_var_req).await?;
296
297    let local_var_status = local_var_resp.status();
298    let local_var_content = local_var_resp.text().await?;
299
300    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
301        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
302    } else {
303        let local_var_entity: Option<ListAiUsageError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
304        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
305        Err(Error::ResponseError(local_var_error))
306    }
307}
308
309pub async fn pull_ai_session_backups(configuration: &configuration::Configuration, workspace: &str, pull_ai_session_backups_request: models::PullAiSessionBackupsRequest) -> Result<models::PullAiSessionBackups200Response, Error<PullAiSessionBackupsError>> {
310    let local_var_configuration = configuration;
311
312    let local_var_client = &local_var_configuration.client;
313
314    let local_var_uri_str = format!("{}/w/{workspace}/ai/sessions/pull", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
315    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
316
317    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
318        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
319    }
320    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
321        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
322    };
323    local_var_req_builder = local_var_req_builder.json(&pull_ai_session_backups_request);
324
325    let local_var_req = local_var_req_builder.build()?;
326    let local_var_resp = local_var_client.execute(local_var_req).await?;
327
328    let local_var_status = local_var_resp.status();
329    let local_var_content = local_var_resp.text().await?;
330
331    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
332        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
333    } else {
334        let local_var_entity: Option<PullAiSessionBackupsError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
335        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
336        Err(Error::ResponseError(local_var_error))
337    }
338}
339
340pub async fn push_ai_session_backups(configuration: &configuration::Configuration, workspace: &str, push_ai_session_backups_request: models::PushAiSessionBackupsRequest) -> Result<models::PushAiSessionBackups200Response, Error<PushAiSessionBackupsError>> {
341    let local_var_configuration = configuration;
342
343    let local_var_client = &local_var_configuration.client;
344
345    let local_var_uri_str = format!("{}/w/{workspace}/ai/sessions/push", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
346    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
347
348    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
349        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
350    }
351    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
352        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
353    };
354    local_var_req_builder = local_var_req_builder.json(&push_ai_session_backups_request);
355
356    let local_var_req = local_var_req_builder.build()?;
357    let local_var_resp = local_var_client.execute(local_var_req).await?;
358
359    let local_var_status = local_var_resp.status();
360    let local_var_content = local_var_resp.text().await?;
361
362    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
363        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
364    } else {
365        let local_var_entity: Option<PushAiSessionBackupsError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
366        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
367        Err(Error::ResponseError(local_var_error))
368    }
369}
370
371pub async fn record_ai_usage(configuration: &configuration::Configuration, workspace: &str, record_ai_usage_request: models::RecordAiUsageRequest) -> Result<(), Error<RecordAiUsageError>> {
372    let local_var_configuration = configuration;
373
374    let local_var_client = &local_var_configuration.client;
375
376    let local_var_uri_str = format!("{}/w/{workspace}/ai/usage", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
377    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
378
379    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
380        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
381    }
382    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
383        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
384    };
385    local_var_req_builder = local_var_req_builder.json(&record_ai_usage_request);
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        Ok(())
395    } else {
396        let local_var_entity: Option<RecordAiUsageError> = crate::from_str_patched/* Externally injected from /build.nu */(&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
402pub async fn set_ai_session_share_public(configuration: &configuration::Configuration, workspace: &str, id: &str, set_ai_session_share_public_request: models::SetAiSessionSharePublicRequest) -> Result<models::SharedAiSessionInfo, Error<SetAiSessionSharePublicError>> {
403    let local_var_configuration = configuration;
404
405    let local_var_client = &local_var_configuration.client;
406
407    let local_var_uri_str = format!("{}/w/{workspace}/ai/shared_sessions/set_public/{id}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), id=crate::apis::urlencode(id));
408    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
409
410    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
411        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
412    }
413    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
414        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
415    };
416    local_var_req_builder = local_var_req_builder.json(&set_ai_session_share_public_request);
417
418    let local_var_req = local_var_req_builder.build()?;
419    let local_var_resp = local_var_client.execute(local_var_req).await?;
420
421    let local_var_status = local_var_resp.status();
422    let local_var_content = local_var_resp.text().await?;
423
424    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
425        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
426    } else {
427        let local_var_entity: Option<SetAiSessionSharePublicError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
428        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
429        Err(Error::ResponseError(local_var_error))
430    }
431}
432
433/// Stores a read-only copy that any member of the workspace can open by id. Sharing the same artifact again updates that copy, keeps its id, and restarts its retention window. 
434pub async fn share_ai_artifact(configuration: &configuration::Configuration, workspace: &str, share_ai_artifact_request: models::ShareAiArtifactRequest) -> Result<models::SharedAiArtifactInfo, Error<ShareAiArtifactError>> {
435    let local_var_configuration = configuration;
436
437    let local_var_client = &local_var_configuration.client;
438
439    let local_var_uri_str = format!("{}/w/{workspace}/ai/shared_artifacts/share", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
440    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
441
442    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
443        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
444    }
445    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
446        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
447    };
448    local_var_req_builder = local_var_req_builder.json(&share_ai_artifact_request);
449
450    let local_var_req = local_var_req_builder.build()?;
451    let local_var_resp = local_var_client.execute(local_var_req).await?;
452
453    let local_var_status = local_var_resp.status();
454    let local_var_content = local_var_resp.text().await?;
455
456    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
457        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
458    } else {
459        let local_var_entity: Option<ShareAiArtifactError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
460        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
461        Err(Error::ResponseError(local_var_error))
462    }
463}
464
465/// Stores a read-only snapshot of the session that members of the workspace can open by id, or anyone with the link once it is public. Sharing the same session again updates that snapshot and keeps its id. 
466pub async fn share_ai_session(configuration: &configuration::Configuration, workspace: &str, share_ai_session_request: models::ShareAiSessionRequest) -> Result<models::SharedAiSessionInfo, Error<ShareAiSessionError>> {
467    let local_var_configuration = configuration;
468
469    let local_var_client = &local_var_configuration.client;
470
471    let local_var_uri_str = format!("{}/w/{workspace}/ai/shared_sessions/share", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
472    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
473
474    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
475        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
476    }
477    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
478        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
479    };
480    local_var_req_builder = local_var_req_builder.json(&share_ai_session_request);
481
482    let local_var_req = local_var_req_builder.build()?;
483    let local_var_resp = local_var_client.execute(local_var_req).await?;
484
485    let local_var_status = local_var_resp.status();
486    let local_var_content = local_var_resp.text().await?;
487
488    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
489        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
490    } else {
491        let local_var_entity: Option<ShareAiSessionError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
492        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
493        Err(Error::ResponseError(local_var_error))
494    }
495}
496
497pub async fn unshare_ai_artifact(configuration: &configuration::Configuration, workspace: &str, id: &str) -> Result<String, Error<UnshareAiArtifactError>> {
498    let local_var_configuration = configuration;
499
500    let local_var_client = &local_var_configuration.client;
501
502    let local_var_uri_str = format!("{}/w/{workspace}/ai/shared_artifacts/delete/{id}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), id=crate::apis::urlencode(id));
503    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
504
505    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
506        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
507    }
508    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
509        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
510    };
511
512    let local_var_req = local_var_req_builder.build()?;
513    let local_var_resp = local_var_client.execute(local_var_req).await?;
514
515    let local_var_status = local_var_resp.status();
516    let local_var_content = local_var_resp.text().await?;
517
518    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
519        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
520    } else {
521        let local_var_entity: Option<UnshareAiArtifactError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
522        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
523        Err(Error::ResponseError(local_var_error))
524    }
525}
526
527pub async fn unshare_ai_session(configuration: &configuration::Configuration, workspace: &str, id: &str) -> Result<String, Error<UnshareAiSessionError>> {
528    let local_var_configuration = configuration;
529
530    let local_var_client = &local_var_configuration.client;
531
532    let local_var_uri_str = format!("{}/w/{workspace}/ai/shared_sessions/delete/{id}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), id=crate::apis::urlencode(id));
533    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
534
535    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
536        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
537    }
538    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
539        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
540    };
541
542    let local_var_req = local_var_req_builder.build()?;
543    let local_var_resp = local_var_client.execute(local_var_req).await?;
544
545    let local_var_status = local_var_resp.status();
546    let local_var_content = local_var_resp.text().await?;
547
548    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
549        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
550    } else {
551        let local_var_entity: Option<UnshareAiSessionError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
552        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
553        Err(Error::ResponseError(local_var_error))
554    }
555}
556