openai/apis/
open_ai_api.rs

1/*
2 * OpenAI API
3 *
4 * APIs for sampling from and fine-tuning language models
5 *
6 * The version of the OpenAPI document: 1.2.0
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11
12use reqwest;
13
14use crate::apis::ResponseContent;
15use super::{Error, configuration};
16
17
18/// struct for typed errors of method [`cancel_fine_tune`]
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum CancelFineTuneError {
22    UnknownValue(serde_json::Value),
23}
24
25/// struct for typed errors of method [`create_answer`]
26#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(untagged)]
28pub enum CreateAnswerError {
29    UnknownValue(serde_json::Value),
30}
31
32/// struct for typed errors of method [`create_chat_completion`]
33#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum CreateChatCompletionError {
36    UnknownValue(serde_json::Value),
37}
38
39/// struct for typed errors of method [`create_classification`]
40#[derive(Debug, Clone, Serialize, Deserialize)]
41#[serde(untagged)]
42pub enum CreateClassificationError {
43    UnknownValue(serde_json::Value),
44}
45
46/// struct for typed errors of method [`create_completion`]
47#[derive(Debug, Clone, Serialize, Deserialize)]
48#[serde(untagged)]
49pub enum CreateCompletionError {
50    UnknownValue(serde_json::Value),
51}
52
53/// struct for typed errors of method [`create_edit`]
54#[derive(Debug, Clone, Serialize, Deserialize)]
55#[serde(untagged)]
56pub enum CreateEditError {
57    UnknownValue(serde_json::Value),
58}
59
60/// struct for typed errors of method [`create_embedding`]
61#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(untagged)]
63pub enum CreateEmbeddingError {
64    UnknownValue(serde_json::Value),
65}
66
67/// struct for typed errors of method [`create_file`]
68#[derive(Debug, Clone, Serialize, Deserialize)]
69#[serde(untagged)]
70pub enum CreateFileError {
71    UnknownValue(serde_json::Value),
72}
73
74/// struct for typed errors of method [`create_fine_tune`]
75#[derive(Debug, Clone, Serialize, Deserialize)]
76#[serde(untagged)]
77pub enum CreateFineTuneError {
78    UnknownValue(serde_json::Value),
79}
80
81/// struct for typed errors of method [`create_image`]
82#[derive(Debug, Clone, Serialize, Deserialize)]
83#[serde(untagged)]
84pub enum CreateImageError {
85    UnknownValue(serde_json::Value),
86}
87
88/// struct for typed errors of method [`create_image_edit`]
89#[derive(Debug, Clone, Serialize, Deserialize)]
90#[serde(untagged)]
91pub enum CreateImageEditError {
92    UnknownValue(serde_json::Value),
93}
94
95/// struct for typed errors of method [`create_image_variation`]
96#[derive(Debug, Clone, Serialize, Deserialize)]
97#[serde(untagged)]
98pub enum CreateImageVariationError {
99    UnknownValue(serde_json::Value),
100}
101
102/// struct for typed errors of method [`create_moderation`]
103#[derive(Debug, Clone, Serialize, Deserialize)]
104#[serde(untagged)]
105pub enum CreateModerationError {
106    UnknownValue(serde_json::Value),
107}
108
109/// struct for typed errors of method [`create_search`]
110#[derive(Debug, Clone, Serialize, Deserialize)]
111#[serde(untagged)]
112pub enum CreateSearchError {
113    UnknownValue(serde_json::Value),
114}
115
116/// struct for typed errors of method [`create_transcription`]
117#[derive(Debug, Clone, Serialize, Deserialize)]
118#[serde(untagged)]
119pub enum CreateTranscriptionError {
120    UnknownValue(serde_json::Value),
121}
122
123/// struct for typed errors of method [`create_translation`]
124#[derive(Debug, Clone, Serialize, Deserialize)]
125#[serde(untagged)]
126pub enum CreateTranslationError {
127    UnknownValue(serde_json::Value),
128}
129
130/// struct for typed errors of method [`delete_file`]
131#[derive(Debug, Clone, Serialize, Deserialize)]
132#[serde(untagged)]
133pub enum DeleteFileError {
134    UnknownValue(serde_json::Value),
135}
136
137/// struct for typed errors of method [`delete_model`]
138#[derive(Debug, Clone, Serialize, Deserialize)]
139#[serde(untagged)]
140pub enum DeleteModelError {
141    UnknownValue(serde_json::Value),
142}
143
144/// struct for typed errors of method [`download_file`]
145#[derive(Debug, Clone, Serialize, Deserialize)]
146#[serde(untagged)]
147pub enum DownloadFileError {
148    UnknownValue(serde_json::Value),
149}
150
151/// struct for typed errors of method [`list_engines`]
152#[derive(Debug, Clone, Serialize, Deserialize)]
153#[serde(untagged)]
154pub enum ListEnginesError {
155    UnknownValue(serde_json::Value),
156}
157
158/// struct for typed errors of method [`list_files`]
159#[derive(Debug, Clone, Serialize, Deserialize)]
160#[serde(untagged)]
161pub enum ListFilesError {
162    UnknownValue(serde_json::Value),
163}
164
165/// struct for typed errors of method [`list_fine_tune_events`]
166#[derive(Debug, Clone, Serialize, Deserialize)]
167#[serde(untagged)]
168pub enum ListFineTuneEventsError {
169    UnknownValue(serde_json::Value),
170}
171
172/// struct for typed errors of method [`list_fine_tunes`]
173#[derive(Debug, Clone, Serialize, Deserialize)]
174#[serde(untagged)]
175pub enum ListFineTunesError {
176    UnknownValue(serde_json::Value),
177}
178
179/// struct for typed errors of method [`list_models`]
180#[derive(Debug, Clone, Serialize, Deserialize)]
181#[serde(untagged)]
182pub enum ListModelsError {
183    UnknownValue(serde_json::Value),
184}
185
186/// struct for typed errors of method [`retrieve_engine`]
187#[derive(Debug, Clone, Serialize, Deserialize)]
188#[serde(untagged)]
189pub enum RetrieveEngineError {
190    UnknownValue(serde_json::Value),
191}
192
193/// struct for typed errors of method [`retrieve_file`]
194#[derive(Debug, Clone, Serialize, Deserialize)]
195#[serde(untagged)]
196pub enum RetrieveFileError {
197    UnknownValue(serde_json::Value),
198}
199
200/// struct for typed errors of method [`retrieve_fine_tune`]
201#[derive(Debug, Clone, Serialize, Deserialize)]
202#[serde(untagged)]
203pub enum RetrieveFineTuneError {
204    UnknownValue(serde_json::Value),
205}
206
207/// struct for typed errors of method [`retrieve_model`]
208#[derive(Debug, Clone, Serialize, Deserialize)]
209#[serde(untagged)]
210pub enum RetrieveModelError {
211    UnknownValue(serde_json::Value),
212}
213
214
215pub async fn cancel_fine_tune(configuration: &configuration::Configuration, fine_tune_id: &str) -> Result<crate::models::FineTune, Error<CancelFineTuneError>> {
216    let local_var_configuration = configuration;
217
218    let local_var_client = &local_var_configuration.client;
219
220    let local_var_uri_str = format!("{}/fine-tunes/{fine_tune_id}/cancel", local_var_configuration.base_path, fine_tune_id=crate::apis::urlencode(fine_tune_id));
221    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
222
223    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
224        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
225    }
226
227    let local_var_req = local_var_req_builder.build()?;
228    let local_var_resp = local_var_client.execute(local_var_req).await?;
229
230    let local_var_status = local_var_resp.status();
231    let local_var_content = local_var_resp.text().await?;
232
233    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
234        serde_json::from_str(&local_var_content).map_err(Error::from)
235    } else {
236        let local_var_entity: Option<CancelFineTuneError> = serde_json::from_str(&local_var_content).ok();
237        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
238        Err(Error::ResponseError(local_var_error))
239    }
240}
241
242pub async fn create_answer(configuration: &configuration::Configuration, create_answer_request: crate::models::CreateAnswerRequest) -> Result<crate::models::CreateAnswerResponse, Error<CreateAnswerError>> {
243    let local_var_configuration = configuration;
244
245    let local_var_client = &local_var_configuration.client;
246
247    let local_var_uri_str = format!("{}/answers", local_var_configuration.base_path);
248    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
249
250    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
251        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
252    }
253    local_var_req_builder = local_var_req_builder.json(&create_answer_request);
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        serde_json::from_str(&local_var_content).map_err(Error::from)
263    } else {
264        let local_var_entity: Option<CreateAnswerError> = serde_json::from_str(&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 create_chat_completion(configuration: &configuration::Configuration, create_chat_completion_request: crate::models::CreateChatCompletionRequest) -> Result<crate::models::CreateChatCompletionResponse, Error<CreateChatCompletionError>> {
271    let local_var_configuration = configuration;
272
273    let local_var_client = &local_var_configuration.client;
274
275    let local_var_uri_str = format!("{}/chat/completions", local_var_configuration.base_path);
276    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
277
278    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
279        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
280    }
281    local_var_req_builder = local_var_req_builder.json(&create_chat_completion_request);
282
283    let local_var_req = local_var_req_builder.build()?;
284    let local_var_resp = local_var_client.execute(local_var_req).await?;
285
286    let local_var_status = local_var_resp.status();
287    let local_var_content = local_var_resp.text().await?;
288
289    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
290        serde_json::from_str(&local_var_content).map_err(Error::from)
291    } else {
292        let local_var_entity: Option<CreateChatCompletionError> = serde_json::from_str(&local_var_content).ok();
293        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
294        Err(Error::ResponseError(local_var_error))
295    }
296}
297
298pub async fn create_classification(configuration: &configuration::Configuration, create_classification_request: crate::models::CreateClassificationRequest) -> Result<crate::models::CreateClassificationResponse, Error<CreateClassificationError>> {
299    let local_var_configuration = configuration;
300
301    let local_var_client = &local_var_configuration.client;
302
303    let local_var_uri_str = format!("{}/classifications", local_var_configuration.base_path);
304    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
305
306    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
307        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
308    }
309    local_var_req_builder = local_var_req_builder.json(&create_classification_request);
310
311    let local_var_req = local_var_req_builder.build()?;
312    let local_var_resp = local_var_client.execute(local_var_req).await?;
313
314    let local_var_status = local_var_resp.status();
315    let local_var_content = local_var_resp.text().await?;
316
317    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
318        serde_json::from_str(&local_var_content).map_err(Error::from)
319    } else {
320        let local_var_entity: Option<CreateClassificationError> = serde_json::from_str(&local_var_content).ok();
321        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
322        Err(Error::ResponseError(local_var_error))
323    }
324}
325
326pub async fn create_completion(configuration: &configuration::Configuration, create_completion_request: crate::models::CreateCompletionRequest) -> Result<crate::models::CreateCompletionResponse, Error<CreateCompletionError>> {
327    let local_var_configuration = configuration;
328
329    let local_var_client = &local_var_configuration.client;
330
331    let local_var_uri_str = format!("{}/completions", local_var_configuration.base_path);
332    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
333
334    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
335        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
336    }
337    local_var_req_builder = local_var_req_builder.json(&create_completion_request);
338
339    let local_var_req = local_var_req_builder.build()?;
340    let local_var_resp = local_var_client.execute(local_var_req).await?;
341
342    let local_var_status = local_var_resp.status();
343    let local_var_content = local_var_resp.text().await?;
344
345    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
346        serde_json::from_str(&local_var_content).map_err(Error::from)
347    } else {
348        let local_var_entity: Option<CreateCompletionError> = serde_json::from_str(&local_var_content).ok();
349        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
350        Err(Error::ResponseError(local_var_error))
351    }
352}
353
354pub async fn create_edit(configuration: &configuration::Configuration, create_edit_request: crate::models::CreateEditRequest) -> Result<crate::models::CreateEditResponse, Error<CreateEditError>> {
355    let local_var_configuration = configuration;
356
357    let local_var_client = &local_var_configuration.client;
358
359    let local_var_uri_str = format!("{}/edits", local_var_configuration.base_path);
360    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
361
362    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
363        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
364    }
365    local_var_req_builder = local_var_req_builder.json(&create_edit_request);
366
367    let local_var_req = local_var_req_builder.build()?;
368    let local_var_resp = local_var_client.execute(local_var_req).await?;
369
370    let local_var_status = local_var_resp.status();
371    let local_var_content = local_var_resp.text().await?;
372
373    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
374        serde_json::from_str(&local_var_content).map_err(Error::from)
375    } else {
376        let local_var_entity: Option<CreateEditError> = serde_json::from_str(&local_var_content).ok();
377        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
378        Err(Error::ResponseError(local_var_error))
379    }
380}
381
382pub async fn create_embedding(configuration: &configuration::Configuration, create_embedding_request: crate::models::CreateEmbeddingRequest) -> Result<crate::models::CreateEmbeddingResponse, Error<CreateEmbeddingError>> {
383    let local_var_configuration = configuration;
384
385    let local_var_client = &local_var_configuration.client;
386
387    let local_var_uri_str = format!("{}/embeddings", local_var_configuration.base_path);
388    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
389
390    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
391        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
392    }
393    local_var_req_builder = local_var_req_builder.json(&create_embedding_request);
394
395    let local_var_req = local_var_req_builder.build()?;
396    let local_var_resp = local_var_client.execute(local_var_req).await?;
397
398    let local_var_status = local_var_resp.status();
399    let local_var_content = local_var_resp.text().await?;
400
401    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
402        serde_json::from_str(&local_var_content).map_err(Error::from)
403    } else {
404        let local_var_entity: Option<CreateEmbeddingError> = serde_json::from_str(&local_var_content).ok();
405        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
406        Err(Error::ResponseError(local_var_error))
407    }
408}
409
410pub async fn create_file(configuration: &configuration::Configuration, file: std::path::PathBuf, purpose: &str) -> Result<crate::models::OpenAiFile, Error<CreateFileError>> {
411    let local_var_configuration = configuration;
412
413    let local_var_client = &local_var_configuration.client;
414
415    let local_var_uri_str = format!("{}/files", local_var_configuration.base_path);
416    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
417
418    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
419        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
420    }
421    let mut local_var_form = reqwest::multipart::Form::new();
422    // TODO: support file upload for 'file' parameter
423    local_var_form = local_var_form.text("purpose", purpose.to_string());
424    local_var_req_builder = local_var_req_builder.multipart(local_var_form);
425
426    let local_var_req = local_var_req_builder.build()?;
427    let local_var_resp = local_var_client.execute(local_var_req).await?;
428
429    let local_var_status = local_var_resp.status();
430    let local_var_content = local_var_resp.text().await?;
431
432    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
433        serde_json::from_str(&local_var_content).map_err(Error::from)
434    } else {
435        let local_var_entity: Option<CreateFileError> = serde_json::from_str(&local_var_content).ok();
436        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
437        Err(Error::ResponseError(local_var_error))
438    }
439}
440
441pub async fn create_fine_tune(configuration: &configuration::Configuration, create_fine_tune_request: crate::models::CreateFineTuneRequest) -> Result<crate::models::FineTune, Error<CreateFineTuneError>> {
442    let local_var_configuration = configuration;
443
444    let local_var_client = &local_var_configuration.client;
445
446    let local_var_uri_str = format!("{}/fine-tunes", local_var_configuration.base_path);
447    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
448
449    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
450        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
451    }
452    local_var_req_builder = local_var_req_builder.json(&create_fine_tune_request);
453
454    let local_var_req = local_var_req_builder.build()?;
455    let local_var_resp = local_var_client.execute(local_var_req).await?;
456
457    let local_var_status = local_var_resp.status();
458    let local_var_content = local_var_resp.text().await?;
459
460    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
461        serde_json::from_str(&local_var_content).map_err(Error::from)
462    } else {
463        let local_var_entity: Option<CreateFineTuneError> = serde_json::from_str(&local_var_content).ok();
464        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
465        Err(Error::ResponseError(local_var_error))
466    }
467}
468
469pub async fn create_image(configuration: &configuration::Configuration, create_image_request: crate::models::CreateImageRequest) -> Result<crate::models::ImagesResponse, Error<CreateImageError>> {
470    let local_var_configuration = configuration;
471
472    let local_var_client = &local_var_configuration.client;
473
474    let local_var_uri_str = format!("{}/images/generations", local_var_configuration.base_path);
475    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
476
477    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
478        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
479    }
480    local_var_req_builder = local_var_req_builder.json(&create_image_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        serde_json::from_str(&local_var_content).map_err(Error::from)
490    } else {
491        let local_var_entity: Option<CreateImageError> = serde_json::from_str(&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 create_image_edit(configuration: &configuration::Configuration, image: std::path::PathBuf, prompt: &str, mask: Option<std::path::PathBuf>, n: Option<i32>, size: Option<&str>, response_format: Option<&str>, user: Option<&str>) -> Result<crate::models::ImagesResponse, Error<CreateImageEditError>> {
498    let local_var_configuration = configuration;
499
500    let local_var_client = &local_var_configuration.client;
501
502    let local_var_uri_str = format!("{}/images/edits", local_var_configuration.base_path);
503    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, 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    let mut local_var_form = reqwest::multipart::Form::new();
509    // TODO: support file upload for 'image' parameter
510    // TODO: support file upload for 'mask' parameter
511    local_var_form = local_var_form.text("prompt", prompt.to_string());
512    if let Some(local_var_param_value) = n {
513        local_var_form = local_var_form.text("n", local_var_param_value.to_string());
514    }
515    if let Some(local_var_param_value) = size {
516        local_var_form = local_var_form.text("size", local_var_param_value.to_string());
517    }
518    if let Some(local_var_param_value) = response_format {
519        local_var_form = local_var_form.text("response_format", local_var_param_value.to_string());
520    }
521    if let Some(local_var_param_value) = user {
522        local_var_form = local_var_form.text("user", local_var_param_value.to_string());
523    }
524    local_var_req_builder = local_var_req_builder.multipart(local_var_form);
525
526    let local_var_req = local_var_req_builder.build()?;
527    let local_var_resp = local_var_client.execute(local_var_req).await?;
528
529    let local_var_status = local_var_resp.status();
530    let local_var_content = local_var_resp.text().await?;
531
532    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
533        serde_json::from_str(&local_var_content).map_err(Error::from)
534    } else {
535        let local_var_entity: Option<CreateImageEditError> = serde_json::from_str(&local_var_content).ok();
536        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
537        Err(Error::ResponseError(local_var_error))
538    }
539}
540
541pub async fn create_image_variation(configuration: &configuration::Configuration, image: std::path::PathBuf, n: Option<i32>, size: Option<&str>, response_format: Option<&str>, user: Option<&str>) -> Result<crate::models::ImagesResponse, Error<CreateImageVariationError>> {
542    let local_var_configuration = configuration;
543
544    let local_var_client = &local_var_configuration.client;
545
546    let local_var_uri_str = format!("{}/images/variations", local_var_configuration.base_path);
547    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
548
549    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
550        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
551    }
552    let mut local_var_form = reqwest::multipart::Form::new();
553    // TODO: support file upload for 'image' parameter
554    if let Some(local_var_param_value) = n {
555        local_var_form = local_var_form.text("n", local_var_param_value.to_string());
556    }
557    if let Some(local_var_param_value) = size {
558        local_var_form = local_var_form.text("size", local_var_param_value.to_string());
559    }
560    if let Some(local_var_param_value) = response_format {
561        local_var_form = local_var_form.text("response_format", local_var_param_value.to_string());
562    }
563    if let Some(local_var_param_value) = user {
564        local_var_form = local_var_form.text("user", local_var_param_value.to_string());
565    }
566    local_var_req_builder = local_var_req_builder.multipart(local_var_form);
567
568    let local_var_req = local_var_req_builder.build()?;
569    let local_var_resp = local_var_client.execute(local_var_req).await?;
570
571    let local_var_status = local_var_resp.status();
572    let local_var_content = local_var_resp.text().await?;
573
574    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
575        serde_json::from_str(&local_var_content).map_err(Error::from)
576    } else {
577        let local_var_entity: Option<CreateImageVariationError> = serde_json::from_str(&local_var_content).ok();
578        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
579        Err(Error::ResponseError(local_var_error))
580    }
581}
582
583pub async fn create_moderation(configuration: &configuration::Configuration, create_moderation_request: crate::models::CreateModerationRequest) -> Result<crate::models::CreateModerationResponse, Error<CreateModerationError>> {
584    let local_var_configuration = configuration;
585
586    let local_var_client = &local_var_configuration.client;
587
588    let local_var_uri_str = format!("{}/moderations", local_var_configuration.base_path);
589    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
590
591    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
592        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
593    }
594    local_var_req_builder = local_var_req_builder.json(&create_moderation_request);
595
596    let local_var_req = local_var_req_builder.build()?;
597    let local_var_resp = local_var_client.execute(local_var_req).await?;
598
599    let local_var_status = local_var_resp.status();
600    let local_var_content = local_var_resp.text().await?;
601
602    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
603        serde_json::from_str(&local_var_content).map_err(Error::from)
604    } else {
605        let local_var_entity: Option<CreateModerationError> = serde_json::from_str(&local_var_content).ok();
606        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
607        Err(Error::ResponseError(local_var_error))
608    }
609}
610
611pub async fn create_search(configuration: &configuration::Configuration, engine_id: &str, create_search_request: crate::models::CreateSearchRequest) -> Result<crate::models::CreateSearchResponse, Error<CreateSearchError>> {
612    let local_var_configuration = configuration;
613
614    let local_var_client = &local_var_configuration.client;
615
616    let local_var_uri_str = format!("{}/engines/{engine_id}/search", local_var_configuration.base_path, engine_id=crate::apis::urlencode(engine_id));
617    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
618
619    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
620        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
621    }
622    local_var_req_builder = local_var_req_builder.json(&create_search_request);
623
624    let local_var_req = local_var_req_builder.build()?;
625    let local_var_resp = local_var_client.execute(local_var_req).await?;
626
627    let local_var_status = local_var_resp.status();
628    let local_var_content = local_var_resp.text().await?;
629
630    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
631        serde_json::from_str(&local_var_content).map_err(Error::from)
632    } else {
633        let local_var_entity: Option<CreateSearchError> = serde_json::from_str(&local_var_content).ok();
634        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
635        Err(Error::ResponseError(local_var_error))
636    }
637}
638
639pub async fn create_transcription(configuration: &configuration::Configuration, file: std::path::PathBuf, model: &str, prompt: Option<&str>, response_format: Option<&str>, temperature: Option<f32>, language: Option<&str>) -> Result<crate::models::CreateTranscriptionResponse, Error<CreateTranscriptionError>> {
640    let local_var_configuration = configuration;
641
642    let local_var_client = &local_var_configuration.client;
643
644    let local_var_uri_str = format!("{}/audio/transcriptions", local_var_configuration.base_path);
645    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
646
647    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
648        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
649    }
650    let mut local_var_form = reqwest::multipart::Form::new();
651    // TODO: support file upload for 'file' parameter
652    local_var_form = local_var_form.text("model", model.to_string());
653    if let Some(local_var_param_value) = prompt {
654        local_var_form = local_var_form.text("prompt", local_var_param_value.to_string());
655    }
656    if let Some(local_var_param_value) = response_format {
657        local_var_form = local_var_form.text("response_format", local_var_param_value.to_string());
658    }
659    if let Some(local_var_param_value) = temperature {
660        local_var_form = local_var_form.text("temperature", local_var_param_value.to_string());
661    }
662    if let Some(local_var_param_value) = language {
663        local_var_form = local_var_form.text("language", local_var_param_value.to_string());
664    }
665    local_var_req_builder = local_var_req_builder.multipart(local_var_form);
666
667    let local_var_req = local_var_req_builder.build()?;
668    let local_var_resp = local_var_client.execute(local_var_req).await?;
669
670    let local_var_status = local_var_resp.status();
671    let local_var_content = local_var_resp.text().await?;
672
673    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
674        serde_json::from_str(&local_var_content).map_err(Error::from)
675    } else {
676        let local_var_entity: Option<CreateTranscriptionError> = serde_json::from_str(&local_var_content).ok();
677        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
678        Err(Error::ResponseError(local_var_error))
679    }
680}
681
682pub async fn create_translation(configuration: &configuration::Configuration, file: std::path::PathBuf, model: &str, prompt: Option<&str>, response_format: Option<&str>, temperature: Option<f32>) -> Result<crate::models::CreateTranslationResponse, Error<CreateTranslationError>> {
683    let local_var_configuration = configuration;
684
685    let local_var_client = &local_var_configuration.client;
686
687    let local_var_uri_str = format!("{}/audio/translations", local_var_configuration.base_path);
688    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
689
690    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
691        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
692    }
693    let mut local_var_form = reqwest::multipart::Form::new();
694    // TODO: support file upload for 'file' parameter
695    local_var_form = local_var_form.text("model", model.to_string());
696    if let Some(local_var_param_value) = prompt {
697        local_var_form = local_var_form.text("prompt", local_var_param_value.to_string());
698    }
699    if let Some(local_var_param_value) = response_format {
700        local_var_form = local_var_form.text("response_format", local_var_param_value.to_string());
701    }
702    if let Some(local_var_param_value) = temperature {
703        local_var_form = local_var_form.text("temperature", local_var_param_value.to_string());
704    }
705    local_var_req_builder = local_var_req_builder.multipart(local_var_form);
706
707    let local_var_req = local_var_req_builder.build()?;
708    let local_var_resp = local_var_client.execute(local_var_req).await?;
709
710    let local_var_status = local_var_resp.status();
711    let local_var_content = local_var_resp.text().await?;
712
713    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
714        serde_json::from_str(&local_var_content).map_err(Error::from)
715    } else {
716        let local_var_entity: Option<CreateTranslationError> = serde_json::from_str(&local_var_content).ok();
717        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
718        Err(Error::ResponseError(local_var_error))
719    }
720}
721
722pub async fn delete_file(configuration: &configuration::Configuration, file_id: &str) -> Result<crate::models::DeleteFileResponse, Error<DeleteFileError>> {
723    let local_var_configuration = configuration;
724
725    let local_var_client = &local_var_configuration.client;
726
727    let local_var_uri_str = format!("{}/files/{file_id}", local_var_configuration.base_path, file_id=crate::apis::urlencode(file_id));
728    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
729
730    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
731        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
732    }
733
734    let local_var_req = local_var_req_builder.build()?;
735    let local_var_resp = local_var_client.execute(local_var_req).await?;
736
737    let local_var_status = local_var_resp.status();
738    let local_var_content = local_var_resp.text().await?;
739
740    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
741        serde_json::from_str(&local_var_content).map_err(Error::from)
742    } else {
743        let local_var_entity: Option<DeleteFileError> = serde_json::from_str(&local_var_content).ok();
744        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
745        Err(Error::ResponseError(local_var_error))
746    }
747}
748
749pub async fn delete_model(configuration: &configuration::Configuration, model: &str) -> Result<crate::models::DeleteModelResponse, Error<DeleteModelError>> {
750    let local_var_configuration = configuration;
751
752    let local_var_client = &local_var_configuration.client;
753
754    let local_var_uri_str = format!("{}/models/{model}", local_var_configuration.base_path, model=crate::apis::urlencode(model));
755    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
756
757    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
758        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
759    }
760
761    let local_var_req = local_var_req_builder.build()?;
762    let local_var_resp = local_var_client.execute(local_var_req).await?;
763
764    let local_var_status = local_var_resp.status();
765    let local_var_content = local_var_resp.text().await?;
766
767    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
768        serde_json::from_str(&local_var_content).map_err(Error::from)
769    } else {
770        let local_var_entity: Option<DeleteModelError> = serde_json::from_str(&local_var_content).ok();
771        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
772        Err(Error::ResponseError(local_var_error))
773    }
774}
775
776pub async fn download_file(configuration: &configuration::Configuration, file_id: &str) -> Result<String, Error<DownloadFileError>> {
777    let local_var_configuration = configuration;
778
779    let local_var_client = &local_var_configuration.client;
780
781    let local_var_uri_str = format!("{}/files/{file_id}/content", local_var_configuration.base_path, file_id=crate::apis::urlencode(file_id));
782    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
783
784    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
785        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
786    }
787
788    let local_var_req = local_var_req_builder.build()?;
789    let local_var_resp = local_var_client.execute(local_var_req).await?;
790
791    let local_var_status = local_var_resp.status();
792    let local_var_content = local_var_resp.text().await?;
793
794    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
795        serde_json::from_str(&local_var_content).map_err(Error::from)
796    } else {
797        let local_var_entity: Option<DownloadFileError> = serde_json::from_str(&local_var_content).ok();
798        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
799        Err(Error::ResponseError(local_var_error))
800    }
801}
802
803pub async fn list_engines(configuration: &configuration::Configuration, ) -> Result<crate::models::ListEnginesResponse, Error<ListEnginesError>> {
804    let local_var_configuration = configuration;
805
806    let local_var_client = &local_var_configuration.client;
807
808    let local_var_uri_str = format!("{}/engines", local_var_configuration.base_path);
809    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
810
811    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
812        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
813    }
814
815    let local_var_req = local_var_req_builder.build()?;
816    let local_var_resp = local_var_client.execute(local_var_req).await?;
817
818    let local_var_status = local_var_resp.status();
819    let local_var_content = local_var_resp.text().await?;
820
821    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
822        serde_json::from_str(&local_var_content).map_err(Error::from)
823    } else {
824        let local_var_entity: Option<ListEnginesError> = serde_json::from_str(&local_var_content).ok();
825        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
826        Err(Error::ResponseError(local_var_error))
827    }
828}
829
830pub async fn list_files(configuration: &configuration::Configuration, ) -> Result<crate::models::ListFilesResponse, Error<ListFilesError>> {
831    let local_var_configuration = configuration;
832
833    let local_var_client = &local_var_configuration.client;
834
835    let local_var_uri_str = format!("{}/files", local_var_configuration.base_path);
836    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
837
838    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
839        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
840    }
841
842    let local_var_req = local_var_req_builder.build()?;
843    let local_var_resp = local_var_client.execute(local_var_req).await?;
844
845    let local_var_status = local_var_resp.status();
846    let local_var_content = local_var_resp.text().await?;
847
848    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
849        serde_json::from_str(&local_var_content).map_err(Error::from)
850    } else {
851        let local_var_entity: Option<ListFilesError> = serde_json::from_str(&local_var_content).ok();
852        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
853        Err(Error::ResponseError(local_var_error))
854    }
855}
856
857pub async fn list_fine_tune_events(configuration: &configuration::Configuration, fine_tune_id: &str, stream: Option<bool>) -> Result<crate::models::ListFineTuneEventsResponse, Error<ListFineTuneEventsError>> {
858    let local_var_configuration = configuration;
859
860    let local_var_client = &local_var_configuration.client;
861
862    let local_var_uri_str = format!("{}/fine-tunes/{fine_tune_id}/events", local_var_configuration.base_path, fine_tune_id=crate::apis::urlencode(fine_tune_id));
863    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
864
865    if let Some(ref local_var_str) = stream {
866        local_var_req_builder = local_var_req_builder.query(&[("stream", &local_var_str.to_string())]);
867    }
868    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
869        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
870    }
871
872    let local_var_req = local_var_req_builder.build()?;
873    let local_var_resp = local_var_client.execute(local_var_req).await?;
874
875    let local_var_status = local_var_resp.status();
876    let local_var_content = local_var_resp.text().await?;
877
878    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
879        serde_json::from_str(&local_var_content).map_err(Error::from)
880    } else {
881        let local_var_entity: Option<ListFineTuneEventsError> = serde_json::from_str(&local_var_content).ok();
882        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
883        Err(Error::ResponseError(local_var_error))
884    }
885}
886
887pub async fn list_fine_tunes(configuration: &configuration::Configuration, ) -> Result<crate::models::ListFineTunesResponse, Error<ListFineTunesError>> {
888    let local_var_configuration = configuration;
889
890    let local_var_client = &local_var_configuration.client;
891
892    let local_var_uri_str = format!("{}/fine-tunes", local_var_configuration.base_path);
893    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
894
895    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
896        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
897    }
898
899    let local_var_req = local_var_req_builder.build()?;
900    let local_var_resp = local_var_client.execute(local_var_req).await?;
901
902    let local_var_status = local_var_resp.status();
903    let local_var_content = local_var_resp.text().await?;
904
905    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
906        serde_json::from_str(&local_var_content).map_err(Error::from)
907    } else {
908        let local_var_entity: Option<ListFineTunesError> = serde_json::from_str(&local_var_content).ok();
909        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
910        Err(Error::ResponseError(local_var_error))
911    }
912}
913
914pub async fn list_models(configuration: &configuration::Configuration, ) -> Result<crate::models::ListModelsResponse, Error<ListModelsError>> {
915    let local_var_configuration = configuration;
916
917    let local_var_client = &local_var_configuration.client;
918
919    let local_var_uri_str = format!("{}/models", local_var_configuration.base_path);
920    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
921
922    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
923        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
924    }
925
926    let local_var_req = local_var_req_builder.build()?;
927    let local_var_resp = local_var_client.execute(local_var_req).await?;
928
929    let local_var_status = local_var_resp.status();
930    let local_var_content = local_var_resp.text().await?;
931
932    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
933        serde_json::from_str(&local_var_content).map_err(Error::from)
934    } else {
935        let local_var_entity: Option<ListModelsError> = serde_json::from_str(&local_var_content).ok();
936        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
937        Err(Error::ResponseError(local_var_error))
938    }
939}
940
941pub async fn retrieve_engine(configuration: &configuration::Configuration, engine_id: &str) -> Result<crate::models::Engine, Error<RetrieveEngineError>> {
942    let local_var_configuration = configuration;
943
944    let local_var_client = &local_var_configuration.client;
945
946    let local_var_uri_str = format!("{}/engines/{engine_id}", local_var_configuration.base_path, engine_id=crate::apis::urlencode(engine_id));
947    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
948
949    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
950        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
951    }
952
953    let local_var_req = local_var_req_builder.build()?;
954    let local_var_resp = local_var_client.execute(local_var_req).await?;
955
956    let local_var_status = local_var_resp.status();
957    let local_var_content = local_var_resp.text().await?;
958
959    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
960        serde_json::from_str(&local_var_content).map_err(Error::from)
961    } else {
962        let local_var_entity: Option<RetrieveEngineError> = serde_json::from_str(&local_var_content).ok();
963        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
964        Err(Error::ResponseError(local_var_error))
965    }
966}
967
968pub async fn retrieve_file(configuration: &configuration::Configuration, file_id: &str) -> Result<crate::models::OpenAiFile, Error<RetrieveFileError>> {
969    let local_var_configuration = configuration;
970
971    let local_var_client = &local_var_configuration.client;
972
973    let local_var_uri_str = format!("{}/files/{file_id}", local_var_configuration.base_path, file_id=crate::apis::urlencode(file_id));
974    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
975
976    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
977        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
978    }
979
980    let local_var_req = local_var_req_builder.build()?;
981    let local_var_resp = local_var_client.execute(local_var_req).await?;
982
983    let local_var_status = local_var_resp.status();
984    let local_var_content = local_var_resp.text().await?;
985
986    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
987        serde_json::from_str(&local_var_content).map_err(Error::from)
988    } else {
989        let local_var_entity: Option<RetrieveFileError> = serde_json::from_str(&local_var_content).ok();
990        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
991        Err(Error::ResponseError(local_var_error))
992    }
993}
994
995pub async fn retrieve_fine_tune(configuration: &configuration::Configuration, fine_tune_id: &str) -> Result<crate::models::FineTune, Error<RetrieveFineTuneError>> {
996    let local_var_configuration = configuration;
997
998    let local_var_client = &local_var_configuration.client;
999
1000    let local_var_uri_str = format!("{}/fine-tunes/{fine_tune_id}", local_var_configuration.base_path, fine_tune_id=crate::apis::urlencode(fine_tune_id));
1001    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
1002
1003    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
1004        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
1005    }
1006
1007    let local_var_req = local_var_req_builder.build()?;
1008    let local_var_resp = local_var_client.execute(local_var_req).await?;
1009
1010    let local_var_status = local_var_resp.status();
1011    let local_var_content = local_var_resp.text().await?;
1012
1013    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
1014        serde_json::from_str(&local_var_content).map_err(Error::from)
1015    } else {
1016        let local_var_entity: Option<RetrieveFineTuneError> = serde_json::from_str(&local_var_content).ok();
1017        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
1018        Err(Error::ResponseError(local_var_error))
1019    }
1020}
1021
1022pub async fn retrieve_model(configuration: &configuration::Configuration, model: &str) -> Result<crate::models::Model, Error<RetrieveModelError>> {
1023    let local_var_configuration = configuration;
1024
1025    let local_var_client = &local_var_configuration.client;
1026
1027    let local_var_uri_str = format!("{}/models/{model}", local_var_configuration.base_path, model=crate::apis::urlencode(model));
1028    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
1029
1030    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
1031        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
1032    }
1033
1034    let local_var_req = local_var_req_builder.build()?;
1035    let local_var_resp = local_var_client.execute(local_var_req).await?;
1036
1037    let local_var_status = local_var_resp.status();
1038    let local_var_content = local_var_resp.text().await?;
1039
1040    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
1041        serde_json::from_str(&local_var_content).map_err(Error::from)
1042    } else {
1043        let local_var_entity: Option<RetrieveModelError> = serde_json::from_str(&local_var_content).ok();
1044        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
1045        Err(Error::ResponseError(local_var_error))
1046    }
1047}
1048