Skip to main content

appwrite_openapi/apis/
functions_api.rs

1/*
2 * Appwrite
3 *
4 * Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https://appwrite.io/docs](https://appwrite.io/docs)
5 *
6 * The version of the OpenAPI document: 1.4.9
7 * Contact: team@appwrite.io
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 [`functions_create`]
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum FunctionsCreateError {
22    UnknownValue(serde_json::Value),
23}
24
25/// struct for typed errors of method [`functions_create_build`]
26#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(untagged)]
28pub enum FunctionsCreateBuildError {
29    UnknownValue(serde_json::Value),
30}
31
32/// struct for typed errors of method [`functions_create_deployment`]
33#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum FunctionsCreateDeploymentError {
36    UnknownValue(serde_json::Value),
37}
38
39/// struct for typed errors of method [`functions_create_execution`]
40#[derive(Debug, Clone, Serialize, Deserialize)]
41#[serde(untagged)]
42pub enum FunctionsCreateExecutionError {
43    UnknownValue(serde_json::Value),
44}
45
46/// struct for typed errors of method [`functions_create_variable`]
47#[derive(Debug, Clone, Serialize, Deserialize)]
48#[serde(untagged)]
49pub enum FunctionsCreateVariableError {
50    UnknownValue(serde_json::Value),
51}
52
53/// struct for typed errors of method [`functions_delete`]
54#[derive(Debug, Clone, Serialize, Deserialize)]
55#[serde(untagged)]
56pub enum FunctionsDeleteError {
57    UnknownValue(serde_json::Value),
58}
59
60/// struct for typed errors of method [`functions_delete_deployment`]
61#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(untagged)]
63pub enum FunctionsDeleteDeploymentError {
64    UnknownValue(serde_json::Value),
65}
66
67/// struct for typed errors of method [`functions_delete_variable`]
68#[derive(Debug, Clone, Serialize, Deserialize)]
69#[serde(untagged)]
70pub enum FunctionsDeleteVariableError {
71    UnknownValue(serde_json::Value),
72}
73
74/// struct for typed errors of method [`functions_download_deployment`]
75#[derive(Debug, Clone, Serialize, Deserialize)]
76#[serde(untagged)]
77pub enum FunctionsDownloadDeploymentError {
78    UnknownValue(serde_json::Value),
79}
80
81/// struct for typed errors of method [`functions_get`]
82#[derive(Debug, Clone, Serialize, Deserialize)]
83#[serde(untagged)]
84pub enum FunctionsGetError {
85    UnknownValue(serde_json::Value),
86}
87
88/// struct for typed errors of method [`functions_get_deployment`]
89#[derive(Debug, Clone, Serialize, Deserialize)]
90#[serde(untagged)]
91pub enum FunctionsGetDeploymentError {
92    UnknownValue(serde_json::Value),
93}
94
95/// struct for typed errors of method [`functions_get_execution`]
96#[derive(Debug, Clone, Serialize, Deserialize)]
97#[serde(untagged)]
98pub enum FunctionsGetExecutionError {
99    UnknownValue(serde_json::Value),
100}
101
102/// struct for typed errors of method [`functions_get_variable`]
103#[derive(Debug, Clone, Serialize, Deserialize)]
104#[serde(untagged)]
105pub enum FunctionsGetVariableError {
106    UnknownValue(serde_json::Value),
107}
108
109/// struct for typed errors of method [`functions_list`]
110#[derive(Debug, Clone, Serialize, Deserialize)]
111#[serde(untagged)]
112pub enum FunctionsListError {
113    UnknownValue(serde_json::Value),
114}
115
116/// struct for typed errors of method [`functions_list_deployments`]
117#[derive(Debug, Clone, Serialize, Deserialize)]
118#[serde(untagged)]
119pub enum FunctionsListDeploymentsError {
120    UnknownValue(serde_json::Value),
121}
122
123/// struct for typed errors of method [`functions_list_executions`]
124#[derive(Debug, Clone, Serialize, Deserialize)]
125#[serde(untagged)]
126pub enum FunctionsListExecutionsError {
127    UnknownValue(serde_json::Value),
128}
129
130/// struct for typed errors of method [`functions_list_runtimes`]
131#[derive(Debug, Clone, Serialize, Deserialize)]
132#[serde(untagged)]
133pub enum FunctionsListRuntimesError {
134    UnknownValue(serde_json::Value),
135}
136
137/// struct for typed errors of method [`functions_list_variables`]
138#[derive(Debug, Clone, Serialize, Deserialize)]
139#[serde(untagged)]
140pub enum FunctionsListVariablesError {
141    UnknownValue(serde_json::Value),
142}
143
144/// struct for typed errors of method [`functions_update`]
145#[derive(Debug, Clone, Serialize, Deserialize)]
146#[serde(untagged)]
147pub enum FunctionsUpdateError {
148    UnknownValue(serde_json::Value),
149}
150
151/// struct for typed errors of method [`functions_update_deployment`]
152#[derive(Debug, Clone, Serialize, Deserialize)]
153#[serde(untagged)]
154pub enum FunctionsUpdateDeploymentError {
155    UnknownValue(serde_json::Value),
156}
157
158/// struct for typed errors of method [`functions_update_variable`]
159#[derive(Debug, Clone, Serialize, Deserialize)]
160#[serde(untagged)]
161pub enum FunctionsUpdateVariableError {
162    UnknownValue(serde_json::Value),
163}
164
165
166/// Create a new function. You can pass a list of [permissions](https://appwrite.io/docs/permissions) to allow different project users or team with access to execute the function using the client API.
167pub async fn functions_create(configuration: &configuration::Configuration, payload: Option<crate::models::FunctionsCreateRequest>) -> Result<crate::models::Function, Error<FunctionsCreateError>> {
168    let local_var_configuration = configuration;
169
170    let local_var_client = &local_var_configuration.client;
171
172    let local_var_uri_str = format!("{}/functions", local_var_configuration.base_path);
173    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
174
175    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
176        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
177    }
178    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
179        let local_var_key = local_var_apikey.key.clone();
180        let local_var_value = match local_var_apikey.prefix {
181            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
182            None => local_var_key,
183        };
184        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Project", local_var_value);
185    };
186    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
187        let local_var_key = local_var_apikey.key.clone();
188        let local_var_value = match local_var_apikey.prefix {
189            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
190            None => local_var_key,
191        };
192        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Key", local_var_value);
193    };
194    local_var_req_builder = local_var_req_builder.json(&payload);
195
196    let local_var_req = local_var_req_builder.build()?;
197    let local_var_resp = local_var_client.execute(local_var_req).await?;
198
199    let local_var_status = local_var_resp.status();
200    let local_var_content = local_var_resp.text().await?;
201
202    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
203        serde_json::from_str(&local_var_content).map_err(Error::from)
204    } else {
205        let local_var_entity: Option<FunctionsCreateError> = serde_json::from_str(&local_var_content).ok();
206        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
207        Err(Error::ResponseError(local_var_error))
208    }
209}
210
211/// Create a new build for an Appwrite Function deployment. This endpoint can be used to retry a failed build.
212pub async fn functions_create_build(configuration: &configuration::Configuration, function_id: &str, deployment_id: &str, build_id: &str) -> Result<(), Error<FunctionsCreateBuildError>> {
213    let local_var_configuration = configuration;
214
215    let local_var_client = &local_var_configuration.client;
216
217    let local_var_uri_str = format!("{}/functions/{functionId}/deployments/{deploymentId}/builds/{buildId}", local_var_configuration.base_path, functionId=crate::apis::urlencode(function_id), deploymentId=crate::apis::urlencode(deployment_id), buildId=crate::apis::urlencode(build_id));
218    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
219
220    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
221        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
222    }
223    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
224        let local_var_key = local_var_apikey.key.clone();
225        let local_var_value = match local_var_apikey.prefix {
226            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
227            None => local_var_key,
228        };
229        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Project", local_var_value);
230    };
231    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
232        let local_var_key = local_var_apikey.key.clone();
233        let local_var_value = match local_var_apikey.prefix {
234            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
235            None => local_var_key,
236        };
237        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Key", local_var_value);
238    };
239
240    let local_var_req = local_var_req_builder.build()?;
241    let local_var_resp = local_var_client.execute(local_var_req).await?;
242
243    let local_var_status = local_var_resp.status();
244    let local_var_content = local_var_resp.text().await?;
245
246    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
247        Ok(())
248    } else {
249        let local_var_entity: Option<FunctionsCreateBuildError> = serde_json::from_str(&local_var_content).ok();
250        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
251        Err(Error::ResponseError(local_var_error))
252    }
253}
254
255/// Create a new function code deployment. Use this endpoint to upload a new version of your code function. To execute your newly uploaded code, you'll need to update the function's deployment to use your new deployment UID.  This endpoint accepts a tar.gz file compressed with your code. Make sure to include any dependencies your code has within the compressed file. You can learn more about code packaging in the [Appwrite Cloud Functions tutorial](https://appwrite.io/docs/functions).  Use the \"command\" param to set the entrypoint used to execute your code.
256pub async fn functions_create_deployment(configuration: &configuration::Configuration, function_id: &str, code: std::path::PathBuf, activate: bool, entrypoint: Option<&str>, commands: Option<&str>) -> Result<crate::models::Deployment, Error<FunctionsCreateDeploymentError>> {
257    let local_var_configuration = configuration;
258
259    let local_var_client = &local_var_configuration.client;
260
261    let local_var_uri_str = format!("{}/functions/{functionId}/deployments", local_var_configuration.base_path, functionId=crate::apis::urlencode(function_id));
262    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
263
264    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
265        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
266    }
267    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
268        let local_var_key = local_var_apikey.key.clone();
269        let local_var_value = match local_var_apikey.prefix {
270            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
271            None => local_var_key,
272        };
273        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Project", local_var_value);
274    };
275    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
276        let local_var_key = local_var_apikey.key.clone();
277        let local_var_value = match local_var_apikey.prefix {
278            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
279            None => local_var_key,
280        };
281        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Key", local_var_value);
282    };
283    let mut local_var_form = reqwest::multipart::Form::new();
284    if let Some(local_var_param_value) = entrypoint {
285        local_var_form = local_var_form.text("entrypoint", local_var_param_value.to_string());
286    }
287    if let Some(local_var_param_value) = commands {
288        local_var_form = local_var_form.text("commands", local_var_param_value.to_string());
289    }
290    // TODO: support file upload for 'code' parameter
291    local_var_form = local_var_form.text("activate", activate.to_string());
292    local_var_req_builder = local_var_req_builder.multipart(local_var_form);
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        serde_json::from_str(&local_var_content).map_err(Error::from)
302    } else {
303        let local_var_entity: Option<FunctionsCreateDeploymentError> = serde_json::from_str(&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
309/// Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.
310pub async fn functions_create_execution(configuration: &configuration::Configuration, function_id: &str, payload: Option<crate::models::FunctionsCreateExecutionRequest>) -> Result<crate::models::Execution, Error<FunctionsCreateExecutionError>> {
311    let local_var_configuration = configuration;
312
313    let local_var_client = &local_var_configuration.client;
314
315    let local_var_uri_str = format!("{}/functions/{functionId}/executions", local_var_configuration.base_path, functionId=crate::apis::urlencode(function_id));
316    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
317
318    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
319        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
320    }
321    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
322        let local_var_key = local_var_apikey.key.clone();
323        let local_var_value = match local_var_apikey.prefix {
324            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
325            None => local_var_key,
326        };
327        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Project", local_var_value);
328    };
329    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
330        let local_var_key = local_var_apikey.key.clone();
331        let local_var_value = match local_var_apikey.prefix {
332            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
333            None => local_var_key,
334        };
335        local_var_req_builder = local_var_req_builder.header("X-Appwrite-JWT", local_var_value);
336    };
337    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
338        let local_var_key = local_var_apikey.key.clone();
339        let local_var_value = match local_var_apikey.prefix {
340            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
341            None => local_var_key,
342        };
343        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Key", local_var_value);
344    };
345    local_var_req_builder = local_var_req_builder.json(&payload);
346
347    let local_var_req = local_var_req_builder.build()?;
348    let local_var_resp = local_var_client.execute(local_var_req).await?;
349
350    let local_var_status = local_var_resp.status();
351    let local_var_content = local_var_resp.text().await?;
352
353    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
354        serde_json::from_str(&local_var_content).map_err(Error::from)
355    } else {
356        let local_var_entity: Option<FunctionsCreateExecutionError> = serde_json::from_str(&local_var_content).ok();
357        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
358        Err(Error::ResponseError(local_var_error))
359    }
360}
361
362/// Create a new function environment variable. These variables can be accessed in the function at runtime as environment variables.
363pub async fn functions_create_variable(configuration: &configuration::Configuration, function_id: &str, payload: Option<crate::models::FunctionsCreateVariableRequest>) -> Result<crate::models::Variable, Error<FunctionsCreateVariableError>> {
364    let local_var_configuration = configuration;
365
366    let local_var_client = &local_var_configuration.client;
367
368    let local_var_uri_str = format!("{}/functions/{functionId}/variables", local_var_configuration.base_path, functionId=crate::apis::urlencode(function_id));
369    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
370
371    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
372        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
373    }
374    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
375        let local_var_key = local_var_apikey.key.clone();
376        let local_var_value = match local_var_apikey.prefix {
377            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
378            None => local_var_key,
379        };
380        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Project", local_var_value);
381    };
382    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
383        let local_var_key = local_var_apikey.key.clone();
384        let local_var_value = match local_var_apikey.prefix {
385            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
386            None => local_var_key,
387        };
388        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Key", local_var_value);
389    };
390    local_var_req_builder = local_var_req_builder.json(&payload);
391
392    let local_var_req = local_var_req_builder.build()?;
393    let local_var_resp = local_var_client.execute(local_var_req).await?;
394
395    let local_var_status = local_var_resp.status();
396    let local_var_content = local_var_resp.text().await?;
397
398    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
399        serde_json::from_str(&local_var_content).map_err(Error::from)
400    } else {
401        let local_var_entity: Option<FunctionsCreateVariableError> = serde_json::from_str(&local_var_content).ok();
402        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
403        Err(Error::ResponseError(local_var_error))
404    }
405}
406
407/// Delete a function by its unique ID.
408pub async fn functions_delete(configuration: &configuration::Configuration, function_id: &str) -> Result<(), Error<FunctionsDeleteError>> {
409    let local_var_configuration = configuration;
410
411    let local_var_client = &local_var_configuration.client;
412
413    let local_var_uri_str = format!("{}/functions/{functionId}", local_var_configuration.base_path, functionId=crate::apis::urlencode(function_id));
414    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
415
416    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
417        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
418    }
419    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
420        let local_var_key = local_var_apikey.key.clone();
421        let local_var_value = match local_var_apikey.prefix {
422            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
423            None => local_var_key,
424        };
425        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Project", local_var_value);
426    };
427    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
428        let local_var_key = local_var_apikey.key.clone();
429        let local_var_value = match local_var_apikey.prefix {
430            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
431            None => local_var_key,
432        };
433        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Key", local_var_value);
434    };
435
436    let local_var_req = local_var_req_builder.build()?;
437    let local_var_resp = local_var_client.execute(local_var_req).await?;
438
439    let local_var_status = local_var_resp.status();
440    let local_var_content = local_var_resp.text().await?;
441
442    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
443        Ok(())
444    } else {
445        let local_var_entity: Option<FunctionsDeleteError> = serde_json::from_str(&local_var_content).ok();
446        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
447        Err(Error::ResponseError(local_var_error))
448    }
449}
450
451/// Delete a code deployment by its unique ID.
452pub async fn functions_delete_deployment(configuration: &configuration::Configuration, function_id: &str, deployment_id: &str) -> Result<(), Error<FunctionsDeleteDeploymentError>> {
453    let local_var_configuration = configuration;
454
455    let local_var_client = &local_var_configuration.client;
456
457    let local_var_uri_str = format!("{}/functions/{functionId}/deployments/{deploymentId}", local_var_configuration.base_path, functionId=crate::apis::urlencode(function_id), deploymentId=crate::apis::urlencode(deployment_id));
458    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
459
460    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
461        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
462    }
463    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
464        let local_var_key = local_var_apikey.key.clone();
465        let local_var_value = match local_var_apikey.prefix {
466            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
467            None => local_var_key,
468        };
469        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Project", local_var_value);
470    };
471    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
472        let local_var_key = local_var_apikey.key.clone();
473        let local_var_value = match local_var_apikey.prefix {
474            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
475            None => local_var_key,
476        };
477        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Key", local_var_value);
478    };
479
480    let local_var_req = local_var_req_builder.build()?;
481    let local_var_resp = local_var_client.execute(local_var_req).await?;
482
483    let local_var_status = local_var_resp.status();
484    let local_var_content = local_var_resp.text().await?;
485
486    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
487        Ok(())
488    } else {
489        let local_var_entity: Option<FunctionsDeleteDeploymentError> = serde_json::from_str(&local_var_content).ok();
490        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
491        Err(Error::ResponseError(local_var_error))
492    }
493}
494
495/// Delete a variable by its unique ID.
496pub async fn functions_delete_variable(configuration: &configuration::Configuration, function_id: &str, variable_id: &str) -> Result<(), Error<FunctionsDeleteVariableError>> {
497    let local_var_configuration = configuration;
498
499    let local_var_client = &local_var_configuration.client;
500
501    let local_var_uri_str = format!("{}/functions/{functionId}/variables/{variableId}", local_var_configuration.base_path, functionId=crate::apis::urlencode(function_id), variableId=crate::apis::urlencode(variable_id));
502    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
503
504    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
505        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
506    }
507    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
508        let local_var_key = local_var_apikey.key.clone();
509        let local_var_value = match local_var_apikey.prefix {
510            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
511            None => local_var_key,
512        };
513        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Project", local_var_value);
514    };
515    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
516        let local_var_key = local_var_apikey.key.clone();
517        let local_var_value = match local_var_apikey.prefix {
518            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
519            None => local_var_key,
520        };
521        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Key", local_var_value);
522    };
523
524    let local_var_req = local_var_req_builder.build()?;
525    let local_var_resp = local_var_client.execute(local_var_req).await?;
526
527    let local_var_status = local_var_resp.status();
528    let local_var_content = local_var_resp.text().await?;
529
530    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
531        Ok(())
532    } else {
533        let local_var_entity: Option<FunctionsDeleteVariableError> = serde_json::from_str(&local_var_content).ok();
534        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
535        Err(Error::ResponseError(local_var_error))
536    }
537}
538
539/// Get a Deployment's contents by its unique ID. This endpoint supports range requests for partial or streaming file download.
540pub async fn functions_download_deployment(configuration: &configuration::Configuration, function_id: &str, deployment_id: &str) -> Result<std::path::PathBuf, Error<FunctionsDownloadDeploymentError>> {
541    let local_var_configuration = configuration;
542
543    let local_var_client = &local_var_configuration.client;
544
545    let local_var_uri_str = format!("{}/functions/{functionId}/deployments/{deploymentId}/download", local_var_configuration.base_path, functionId=crate::apis::urlencode(function_id), deploymentId=crate::apis::urlencode(deployment_id));
546    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
547
548    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
549        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
550    }
551    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
552        let local_var_key = local_var_apikey.key.clone();
553        let local_var_value = match local_var_apikey.prefix {
554            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
555            None => local_var_key,
556        };
557        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Project", local_var_value);
558    };
559    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
560        let local_var_key = local_var_apikey.key.clone();
561        let local_var_value = match local_var_apikey.prefix {
562            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
563            None => local_var_key,
564        };
565        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Key", local_var_value);
566    };
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<FunctionsDownloadDeploymentError> = 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
583/// Get a function by its unique ID.
584pub async fn functions_get(configuration: &configuration::Configuration, function_id: &str) -> Result<crate::models::Function, Error<FunctionsGetError>> {
585    let local_var_configuration = configuration;
586
587    let local_var_client = &local_var_configuration.client;
588
589    let local_var_uri_str = format!("{}/functions/{functionId}", local_var_configuration.base_path, functionId=crate::apis::urlencode(function_id));
590    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
591
592    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
593        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
594    }
595    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
596        let local_var_key = local_var_apikey.key.clone();
597        let local_var_value = match local_var_apikey.prefix {
598            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
599            None => local_var_key,
600        };
601        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Project", local_var_value);
602    };
603    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
604        let local_var_key = local_var_apikey.key.clone();
605        let local_var_value = match local_var_apikey.prefix {
606            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
607            None => local_var_key,
608        };
609        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Key", local_var_value);
610    };
611
612    let local_var_req = local_var_req_builder.build()?;
613    let local_var_resp = local_var_client.execute(local_var_req).await?;
614
615    let local_var_status = local_var_resp.status();
616    let local_var_content = local_var_resp.text().await?;
617
618    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
619        serde_json::from_str(&local_var_content).map_err(Error::from)
620    } else {
621        let local_var_entity: Option<FunctionsGetError> = serde_json::from_str(&local_var_content).ok();
622        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
623        Err(Error::ResponseError(local_var_error))
624    }
625}
626
627/// Get a code deployment by its unique ID.
628pub async fn functions_get_deployment(configuration: &configuration::Configuration, function_id: &str, deployment_id: &str) -> Result<crate::models::Deployment, Error<FunctionsGetDeploymentError>> {
629    let local_var_configuration = configuration;
630
631    let local_var_client = &local_var_configuration.client;
632
633    let local_var_uri_str = format!("{}/functions/{functionId}/deployments/{deploymentId}", local_var_configuration.base_path, functionId=crate::apis::urlencode(function_id), deploymentId=crate::apis::urlencode(deployment_id));
634    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
635
636    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
637        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
638    }
639    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
640        let local_var_key = local_var_apikey.key.clone();
641        let local_var_value = match local_var_apikey.prefix {
642            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
643            None => local_var_key,
644        };
645        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Project", local_var_value);
646    };
647    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
648        let local_var_key = local_var_apikey.key.clone();
649        let local_var_value = match local_var_apikey.prefix {
650            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
651            None => local_var_key,
652        };
653        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Key", local_var_value);
654    };
655
656    let local_var_req = local_var_req_builder.build()?;
657    let local_var_resp = local_var_client.execute(local_var_req).await?;
658
659    let local_var_status = local_var_resp.status();
660    let local_var_content = local_var_resp.text().await?;
661
662    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
663        serde_json::from_str(&local_var_content).map_err(Error::from)
664    } else {
665        let local_var_entity: Option<FunctionsGetDeploymentError> = serde_json::from_str(&local_var_content).ok();
666        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
667        Err(Error::ResponseError(local_var_error))
668    }
669}
670
671/// Get a function execution log by its unique ID.
672pub async fn functions_get_execution(configuration: &configuration::Configuration, function_id: &str, execution_id: &str) -> Result<crate::models::Execution, Error<FunctionsGetExecutionError>> {
673    let local_var_configuration = configuration;
674
675    let local_var_client = &local_var_configuration.client;
676
677    let local_var_uri_str = format!("{}/functions/{functionId}/executions/{executionId}", local_var_configuration.base_path, functionId=crate::apis::urlencode(function_id), executionId=crate::apis::urlencode(execution_id));
678    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
679
680    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
681        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
682    }
683    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
684        let local_var_key = local_var_apikey.key.clone();
685        let local_var_value = match local_var_apikey.prefix {
686            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
687            None => local_var_key,
688        };
689        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Project", local_var_value);
690    };
691    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
692        let local_var_key = local_var_apikey.key.clone();
693        let local_var_value = match local_var_apikey.prefix {
694            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
695            None => local_var_key,
696        };
697        local_var_req_builder = local_var_req_builder.header("X-Appwrite-JWT", local_var_value);
698    };
699    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
700        let local_var_key = local_var_apikey.key.clone();
701        let local_var_value = match local_var_apikey.prefix {
702            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
703            None => local_var_key,
704        };
705        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Key", local_var_value);
706    };
707
708    let local_var_req = local_var_req_builder.build()?;
709    let local_var_resp = local_var_client.execute(local_var_req).await?;
710
711    let local_var_status = local_var_resp.status();
712    let local_var_content = local_var_resp.text().await?;
713
714    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
715        serde_json::from_str(&local_var_content).map_err(Error::from)
716    } else {
717        let local_var_entity: Option<FunctionsGetExecutionError> = serde_json::from_str(&local_var_content).ok();
718        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
719        Err(Error::ResponseError(local_var_error))
720    }
721}
722
723/// Get a variable by its unique ID.
724pub async fn functions_get_variable(configuration: &configuration::Configuration, function_id: &str, variable_id: &str) -> Result<crate::models::Variable, Error<FunctionsGetVariableError>> {
725    let local_var_configuration = configuration;
726
727    let local_var_client = &local_var_configuration.client;
728
729    let local_var_uri_str = format!("{}/functions/{functionId}/variables/{variableId}", local_var_configuration.base_path, functionId=crate::apis::urlencode(function_id), variableId=crate::apis::urlencode(variable_id));
730    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
731
732    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
733        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
734    }
735    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
736        let local_var_key = local_var_apikey.key.clone();
737        let local_var_value = match local_var_apikey.prefix {
738            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
739            None => local_var_key,
740        };
741        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Project", local_var_value);
742    };
743    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
744        let local_var_key = local_var_apikey.key.clone();
745        let local_var_value = match local_var_apikey.prefix {
746            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
747            None => local_var_key,
748        };
749        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Key", local_var_value);
750    };
751
752    let local_var_req = local_var_req_builder.build()?;
753    let local_var_resp = local_var_client.execute(local_var_req).await?;
754
755    let local_var_status = local_var_resp.status();
756    let local_var_content = local_var_resp.text().await?;
757
758    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
759        serde_json::from_str(&local_var_content).map_err(Error::from)
760    } else {
761        let local_var_entity: Option<FunctionsGetVariableError> = serde_json::from_str(&local_var_content).ok();
762        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
763        Err(Error::ResponseError(local_var_error))
764    }
765}
766
767/// Get a list of all the project's functions. You can use the query params to filter your results.
768pub async fn functions_list(configuration: &configuration::Configuration, queries: Option<Vec<String>>, search: Option<&str>) -> Result<crate::models::FunctionList, Error<FunctionsListError>> {
769    let local_var_configuration = configuration;
770
771    let local_var_client = &local_var_configuration.client;
772
773    let local_var_uri_str = format!("{}/functions", local_var_configuration.base_path);
774    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
775
776    if let Some(ref local_var_str) = queries {
777        local_var_req_builder = match "multi" {
778            "multi" => local_var_req_builder.query(&local_var_str.into_iter().map(|p| ("queries".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
779            _ => local_var_req_builder.query(&[("queries", &local_var_str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
780        };
781    }
782    if let Some(ref local_var_str) = search {
783        local_var_req_builder = local_var_req_builder.query(&[("search", &local_var_str.to_string())]);
784    }
785    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
786        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
787    }
788    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
789        let local_var_key = local_var_apikey.key.clone();
790        let local_var_value = match local_var_apikey.prefix {
791            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
792            None => local_var_key,
793        };
794        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Project", local_var_value);
795    };
796    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
797        let local_var_key = local_var_apikey.key.clone();
798        let local_var_value = match local_var_apikey.prefix {
799            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
800            None => local_var_key,
801        };
802        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Key", local_var_value);
803    };
804
805    let local_var_req = local_var_req_builder.build()?;
806    let local_var_resp = local_var_client.execute(local_var_req).await?;
807
808    let local_var_status = local_var_resp.status();
809    let local_var_content = local_var_resp.text().await?;
810
811    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
812        serde_json::from_str(&local_var_content).map_err(Error::from)
813    } else {
814        let local_var_entity: Option<FunctionsListError> = serde_json::from_str(&local_var_content).ok();
815        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
816        Err(Error::ResponseError(local_var_error))
817    }
818}
819
820/// Get a list of all the project's code deployments. You can use the query params to filter your results.
821pub async fn functions_list_deployments(configuration: &configuration::Configuration, function_id: &str, queries: Option<Vec<String>>, search: Option<&str>) -> Result<crate::models::DeploymentList, Error<FunctionsListDeploymentsError>> {
822    let local_var_configuration = configuration;
823
824    let local_var_client = &local_var_configuration.client;
825
826    let local_var_uri_str = format!("{}/functions/{functionId}/deployments", local_var_configuration.base_path, functionId=crate::apis::urlencode(function_id));
827    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
828
829    if let Some(ref local_var_str) = queries {
830        local_var_req_builder = match "multi" {
831            "multi" => local_var_req_builder.query(&local_var_str.into_iter().map(|p| ("queries".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
832            _ => local_var_req_builder.query(&[("queries", &local_var_str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
833        };
834    }
835    if let Some(ref local_var_str) = search {
836        local_var_req_builder = local_var_req_builder.query(&[("search", &local_var_str.to_string())]);
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    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
842        let local_var_key = local_var_apikey.key.clone();
843        let local_var_value = match local_var_apikey.prefix {
844            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
845            None => local_var_key,
846        };
847        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Project", local_var_value);
848    };
849    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
850        let local_var_key = local_var_apikey.key.clone();
851        let local_var_value = match local_var_apikey.prefix {
852            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
853            None => local_var_key,
854        };
855        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Key", local_var_value);
856    };
857
858    let local_var_req = local_var_req_builder.build()?;
859    let local_var_resp = local_var_client.execute(local_var_req).await?;
860
861    let local_var_status = local_var_resp.status();
862    let local_var_content = local_var_resp.text().await?;
863
864    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
865        serde_json::from_str(&local_var_content).map_err(Error::from)
866    } else {
867        let local_var_entity: Option<FunctionsListDeploymentsError> = serde_json::from_str(&local_var_content).ok();
868        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
869        Err(Error::ResponseError(local_var_error))
870    }
871}
872
873/// Get a list of all the current user function execution logs. You can use the query params to filter your results.
874pub async fn functions_list_executions(configuration: &configuration::Configuration, function_id: &str, queries: Option<Vec<String>>, search: Option<&str>) -> Result<crate::models::ExecutionList, Error<FunctionsListExecutionsError>> {
875    let local_var_configuration = configuration;
876
877    let local_var_client = &local_var_configuration.client;
878
879    let local_var_uri_str = format!("{}/functions/{functionId}/executions", local_var_configuration.base_path, functionId=crate::apis::urlencode(function_id));
880    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
881
882    if let Some(ref local_var_str) = queries {
883        local_var_req_builder = match "multi" {
884            "multi" => local_var_req_builder.query(&local_var_str.into_iter().map(|p| ("queries".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
885            _ => local_var_req_builder.query(&[("queries", &local_var_str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
886        };
887    }
888    if let Some(ref local_var_str) = search {
889        local_var_req_builder = local_var_req_builder.query(&[("search", &local_var_str.to_string())]);
890    }
891    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
892        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
893    }
894    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
895        let local_var_key = local_var_apikey.key.clone();
896        let local_var_value = match local_var_apikey.prefix {
897            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
898            None => local_var_key,
899        };
900        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Project", local_var_value);
901    };
902    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
903        let local_var_key = local_var_apikey.key.clone();
904        let local_var_value = match local_var_apikey.prefix {
905            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
906            None => local_var_key,
907        };
908        local_var_req_builder = local_var_req_builder.header("X-Appwrite-JWT", local_var_value);
909    };
910    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
911        let local_var_key = local_var_apikey.key.clone();
912        let local_var_value = match local_var_apikey.prefix {
913            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
914            None => local_var_key,
915        };
916        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Key", local_var_value);
917    };
918
919    let local_var_req = local_var_req_builder.build()?;
920    let local_var_resp = local_var_client.execute(local_var_req).await?;
921
922    let local_var_status = local_var_resp.status();
923    let local_var_content = local_var_resp.text().await?;
924
925    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
926        serde_json::from_str(&local_var_content).map_err(Error::from)
927    } else {
928        let local_var_entity: Option<FunctionsListExecutionsError> = serde_json::from_str(&local_var_content).ok();
929        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
930        Err(Error::ResponseError(local_var_error))
931    }
932}
933
934/// Get a list of all runtimes that are currently active on your instance.
935pub async fn functions_list_runtimes(configuration: &configuration::Configuration, ) -> Result<crate::models::RuntimeList, Error<FunctionsListRuntimesError>> {
936    let local_var_configuration = configuration;
937
938    let local_var_client = &local_var_configuration.client;
939
940    let local_var_uri_str = format!("{}/functions/runtimes", local_var_configuration.base_path);
941    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
942
943    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
944        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
945    }
946    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
947        let local_var_key = local_var_apikey.key.clone();
948        let local_var_value = match local_var_apikey.prefix {
949            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
950            None => local_var_key,
951        };
952        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Project", local_var_value);
953    };
954    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
955        let local_var_key = local_var_apikey.key.clone();
956        let local_var_value = match local_var_apikey.prefix {
957            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
958            None => local_var_key,
959        };
960        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Key", local_var_value);
961    };
962
963    let local_var_req = local_var_req_builder.build()?;
964    let local_var_resp = local_var_client.execute(local_var_req).await?;
965
966    let local_var_status = local_var_resp.status();
967    let local_var_content = local_var_resp.text().await?;
968
969    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
970        serde_json::from_str(&local_var_content).map_err(Error::from)
971    } else {
972        let local_var_entity: Option<FunctionsListRuntimesError> = serde_json::from_str(&local_var_content).ok();
973        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
974        Err(Error::ResponseError(local_var_error))
975    }
976}
977
978/// Get a list of all variables of a specific function.
979pub async fn functions_list_variables(configuration: &configuration::Configuration, function_id: &str) -> Result<crate::models::VariableList, Error<FunctionsListVariablesError>> {
980    let local_var_configuration = configuration;
981
982    let local_var_client = &local_var_configuration.client;
983
984    let local_var_uri_str = format!("{}/functions/{functionId}/variables", local_var_configuration.base_path, functionId=crate::apis::urlencode(function_id));
985    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
986
987    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
988        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
989    }
990    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
991        let local_var_key = local_var_apikey.key.clone();
992        let local_var_value = match local_var_apikey.prefix {
993            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
994            None => local_var_key,
995        };
996        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Project", local_var_value);
997    };
998    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
999        let local_var_key = local_var_apikey.key.clone();
1000        let local_var_value = match local_var_apikey.prefix {
1001            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
1002            None => local_var_key,
1003        };
1004        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Key", local_var_value);
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<FunctionsListVariablesError> = 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
1022/// Update function by its unique ID.
1023pub async fn functions_update(configuration: &configuration::Configuration, function_id: &str, payload: Option<crate::models::FunctionsUpdateRequest>) -> Result<crate::models::Function, Error<FunctionsUpdateError>> {
1024    let local_var_configuration = configuration;
1025
1026    let local_var_client = &local_var_configuration.client;
1027
1028    let local_var_uri_str = format!("{}/functions/{functionId}", local_var_configuration.base_path, functionId=crate::apis::urlencode(function_id));
1029    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
1030
1031    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
1032        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
1033    }
1034    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
1035        let local_var_key = local_var_apikey.key.clone();
1036        let local_var_value = match local_var_apikey.prefix {
1037            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
1038            None => local_var_key,
1039        };
1040        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Project", local_var_value);
1041    };
1042    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
1043        let local_var_key = local_var_apikey.key.clone();
1044        let local_var_value = match local_var_apikey.prefix {
1045            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
1046            None => local_var_key,
1047        };
1048        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Key", local_var_value);
1049    };
1050    local_var_req_builder = local_var_req_builder.json(&payload);
1051
1052    let local_var_req = local_var_req_builder.build()?;
1053    let local_var_resp = local_var_client.execute(local_var_req).await?;
1054
1055    let local_var_status = local_var_resp.status();
1056    let local_var_content = local_var_resp.text().await?;
1057
1058    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
1059        serde_json::from_str(&local_var_content).map_err(Error::from)
1060    } else {
1061        let local_var_entity: Option<FunctionsUpdateError> = serde_json::from_str(&local_var_content).ok();
1062        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
1063        Err(Error::ResponseError(local_var_error))
1064    }
1065}
1066
1067/// Update the function code deployment ID using the unique function ID. Use this endpoint to switch the code deployment that should be executed by the execution endpoint.
1068pub async fn functions_update_deployment(configuration: &configuration::Configuration, function_id: &str, deployment_id: &str) -> Result<crate::models::Function, Error<FunctionsUpdateDeploymentError>> {
1069    let local_var_configuration = configuration;
1070
1071    let local_var_client = &local_var_configuration.client;
1072
1073    let local_var_uri_str = format!("{}/functions/{functionId}/deployments/{deploymentId}", local_var_configuration.base_path, functionId=crate::apis::urlencode(function_id), deploymentId=crate::apis::urlencode(deployment_id));
1074    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
1075
1076    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
1077        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
1078    }
1079    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
1080        let local_var_key = local_var_apikey.key.clone();
1081        let local_var_value = match local_var_apikey.prefix {
1082            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
1083            None => local_var_key,
1084        };
1085        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Project", local_var_value);
1086    };
1087    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
1088        let local_var_key = local_var_apikey.key.clone();
1089        let local_var_value = match local_var_apikey.prefix {
1090            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
1091            None => local_var_key,
1092        };
1093        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Key", local_var_value);
1094    };
1095
1096    let local_var_req = local_var_req_builder.build()?;
1097    let local_var_resp = local_var_client.execute(local_var_req).await?;
1098
1099    let local_var_status = local_var_resp.status();
1100    let local_var_content = local_var_resp.text().await?;
1101
1102    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
1103        serde_json::from_str(&local_var_content).map_err(Error::from)
1104    } else {
1105        let local_var_entity: Option<FunctionsUpdateDeploymentError> = serde_json::from_str(&local_var_content).ok();
1106        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
1107        Err(Error::ResponseError(local_var_error))
1108    }
1109}
1110
1111/// Update variable by its unique ID.
1112pub async fn functions_update_variable(configuration: &configuration::Configuration, function_id: &str, variable_id: &str, payload: Option<crate::models::FunctionsUpdateVariableRequest>) -> Result<crate::models::Variable, Error<FunctionsUpdateVariableError>> {
1113    let local_var_configuration = configuration;
1114
1115    let local_var_client = &local_var_configuration.client;
1116
1117    let local_var_uri_str = format!("{}/functions/{functionId}/variables/{variableId}", local_var_configuration.base_path, functionId=crate::apis::urlencode(function_id), variableId=crate::apis::urlencode(variable_id));
1118    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
1119
1120    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
1121        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
1122    }
1123    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
1124        let local_var_key = local_var_apikey.key.clone();
1125        let local_var_value = match local_var_apikey.prefix {
1126            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
1127            None => local_var_key,
1128        };
1129        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Project", local_var_value);
1130    };
1131    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
1132        let local_var_key = local_var_apikey.key.clone();
1133        let local_var_value = match local_var_apikey.prefix {
1134            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
1135            None => local_var_key,
1136        };
1137        local_var_req_builder = local_var_req_builder.header("X-Appwrite-Key", local_var_value);
1138    };
1139    local_var_req_builder = local_var_req_builder.json(&payload);
1140
1141    let local_var_req = local_var_req_builder.build()?;
1142    let local_var_resp = local_var_client.execute(local_var_req).await?;
1143
1144    let local_var_status = local_var_resp.status();
1145    let local_var_content = local_var_resp.text().await?;
1146
1147    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
1148        serde_json::from_str(&local_var_content).map_err(Error::from)
1149    } else {
1150        let local_var_entity: Option<FunctionsUpdateVariableError> = serde_json::from_str(&local_var_content).ok();
1151        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
1152        Err(Error::ResponseError(local_var_error))
1153    }
1154}
1155