Skip to main content

windmill_api/apis/
asset_api.rs

1/*
2 * Windmill API
3 *
4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5 *
6 * The version of the OpenAPI document: 1.814.0
7 * Contact: contact@windmill.dev
8 * Generated by: https://openapi-generator.tech
9 */
10
11
12use reqwest;
13use serde::{Deserialize, Serialize};
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration};
16
17
18/// struct for typed errors of method [`get_assets_graph`]
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum GetAssetsGraphError {
22    UnknownValue(serde_json::Value),
23}
24
25/// struct for typed errors of method [`get_dbt_column_lineage`]
26#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(untagged)]
28pub enum GetDbtColumnLineageError {
29    UnknownValue(serde_json::Value),
30}
31
32/// struct for typed errors of method [`list_asset_partitions`]
33#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum ListAssetPartitionsError {
36    UnknownValue(serde_json::Value),
37}
38
39/// struct for typed errors of method [`list_asset_partitions_in_range`]
40#[derive(Debug, Clone, Serialize, Deserialize)]
41#[serde(untagged)]
42pub enum ListAssetPartitionsInRangeError {
43    UnknownValue(serde_json::Value),
44}
45
46/// struct for typed errors of method [`list_asset_schemas`]
47#[derive(Debug, Clone, Serialize, Deserialize)]
48#[serde(untagged)]
49pub enum ListAssetSchemasError {
50    UnknownValue(serde_json::Value),
51}
52
53/// struct for typed errors of method [`list_assets`]
54#[derive(Debug, Clone, Serialize, Deserialize)]
55#[serde(untagged)]
56pub enum ListAssetsError {
57    UnknownValue(serde_json::Value),
58}
59
60/// struct for typed errors of method [`list_assets_by_usage`]
61#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(untagged)]
63pub enum ListAssetsByUsageError {
64    UnknownValue(serde_json::Value),
65}
66
67/// struct for typed errors of method [`list_favorite_assets`]
68#[derive(Debug, Clone, Serialize, Deserialize)]
69#[serde(untagged)]
70pub enum ListFavoriteAssetsError {
71    UnknownValue(serde_json::Value),
72}
73
74/// struct for typed errors of method [`list_pipeline_folders`]
75#[derive(Debug, Clone, Serialize, Deserialize)]
76#[serde(untagged)]
77pub enum ListPipelineFoldersError {
78    UnknownValue(serde_json::Value),
79}
80
81/// struct for typed errors of method [`list_workspace_macros`]
82#[derive(Debug, Clone, Serialize, Deserialize)]
83#[serde(untagged)]
84pub enum ListWorkspaceMacrosError {
85    UnknownValue(serde_json::Value),
86}
87
88
89pub async fn get_assets_graph(configuration: &configuration::Configuration, workspace: &str, asset_kinds: Option<&str>, folder: Option<&str>, dbt_script_hash: Option<&str>) -> Result<models::AssetGraph, Error<GetAssetsGraphError>> {
90    let local_var_configuration = configuration;
91
92    let local_var_client = &local_var_configuration.client;
93
94    let local_var_uri_str = format!("{}/w/{workspace}/assets/graph", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
95    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
96
97    if let Some(ref local_var_str) = asset_kinds {
98        local_var_req_builder = local_var_req_builder.query(&[("asset_kinds", &local_var_str.to_string())]);
99    }
100    if let Some(ref local_var_str) = folder {
101        local_var_req_builder = local_var_req_builder.query(&[("folder", &local_var_str.to_string())]);
102    }
103    if let Some(ref local_var_str) = dbt_script_hash {
104        local_var_req_builder = local_var_req_builder.query(&[("dbt_script_hash", &local_var_str.to_string())]);
105    }
106    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
107        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
108    }
109    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
110        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
111    };
112
113    let local_var_req = local_var_req_builder.build()?;
114    let local_var_resp = local_var_client.execute(local_var_req).await?;
115
116    let local_var_status = local_var_resp.status();
117    let local_var_content = local_var_resp.text().await?;
118
119    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
120        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
121    } else {
122        let local_var_entity: Option<GetAssetsGraphError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
123        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
124        Err(Error::ResponseError(local_var_error))
125    }
126}
127
128/// The direct (`copy` / `mod`) column-to-column lineage the given relations' columns sit in — the connected component around them, from the engine's static analysis. Not their own edges, which would stop one hop out since a column trace walks transitively, and not a whole project's, which carries model families the selection cannot reach. Several relations, answered as one union, because one selection reaches several: a script's output column can derive from columns of several dbt models. Unpinned, the component crosses projects — a relation one project produces is another's source — and the caller's access is decided again for every project it reaches, so a trace ends where their grants do. A pinned answer, by version here or by job on the run route, is one project's. Its own endpoint rather than a field on the asset graph: the graph is folder-wide and polled by a run page, while this is rendered for one selection at a time. Empty for projects that did not opt into the analysis pass (`column_lineage: true`), which is the ordinary case. The indirect `scan` kind is stored but never served: it reaches every output column of its model. 
129pub async fn get_dbt_column_lineage(configuration: &configuration::Configuration, workspace: &str, asset_path: Vec<String>, dbt_script_hash: Option<&str>) -> Result<models::DbtColumnLineage, Error<GetDbtColumnLineageError>> {
130    let local_var_configuration = configuration;
131
132    let local_var_client = &local_var_configuration.client;
133
134    let local_var_uri_str = format!("{}/w/{workspace}/assets/column_lineage", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
135    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
136
137    local_var_req_builder = match "multi" {
138        "multi" => local_var_req_builder.query(&asset_path.into_iter().map(|p| ("asset_path".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
139        _ => local_var_req_builder.query(&[("asset_path", &asset_path.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
140    };
141    if let Some(ref local_var_str) = dbt_script_hash {
142        local_var_req_builder = local_var_req_builder.query(&[("dbt_script_hash", &local_var_str.to_string())]);
143    }
144    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
145        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
146    }
147    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
148        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
149    };
150
151    let local_var_req = local_var_req_builder.build()?;
152    let local_var_resp = local_var_client.execute(local_var_req).await?;
153
154    let local_var_status = local_var_resp.status();
155    let local_var_content = local_var_resp.text().await?;
156
157    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
158        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
159    } else {
160        let local_var_entity: Option<GetDbtColumnLineageError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
161        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
162        Err(Error::ResponseError(local_var_error))
163    }
164}
165
166pub async fn list_asset_partitions(configuration: &configuration::Configuration, workspace: &str, path: &str) -> Result<Vec<models::MaterializedPartition>, Error<ListAssetPartitionsError>> {
167    let local_var_configuration = configuration;
168
169    let local_var_client = &local_var_configuration.client;
170
171    let local_var_uri_str = format!("{}/w/{workspace}/assets/partitions", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
172    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
173
174    local_var_req_builder = local_var_req_builder.query(&[("path", &path.to_string())]);
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_token) = local_var_configuration.bearer_access_token {
179        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
180    };
181
182    let local_var_req = local_var_req_builder.build()?;
183    let local_var_resp = local_var_client.execute(local_var_req).await?;
184
185    let local_var_status = local_var_resp.status();
186    let local_var_content = local_var_resp.text().await?;
187
188    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
189        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
190    } else {
191        let local_var_entity: Option<ListAssetPartitionsError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
192        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
193        Err(Error::ResponseError(local_var_error))
194    }
195}
196
197pub async fn list_asset_partitions_in_range(configuration: &configuration::Configuration, workspace: &str, path: &str, from: String, to: String) -> Result<models::PartitionsInRange, Error<ListAssetPartitionsInRangeError>> {
198    let local_var_configuration = configuration;
199
200    let local_var_client = &local_var_configuration.client;
201
202    let local_var_uri_str = format!("{}/w/{workspace}/assets/partitions_in_range", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
203    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
204
205    local_var_req_builder = local_var_req_builder.query(&[("path", &path.to_string())]);
206    local_var_req_builder = local_var_req_builder.query(&[("from", &from.to_string())]);
207    local_var_req_builder = local_var_req_builder.query(&[("to", &to.to_string())]);
208    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
209        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
210    }
211    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
212        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
213    };
214
215    let local_var_req = local_var_req_builder.build()?;
216    let local_var_resp = local_var_client.execute(local_var_req).await?;
217
218    let local_var_status = local_var_resp.status();
219    let local_var_content = local_var_resp.text().await?;
220
221    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
222        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
223    } else {
224        let local_var_entity: Option<ListAssetPartitionsInRangeError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
225        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
226        Err(Error::ResponseError(local_var_error))
227    }
228}
229
230pub async fn list_asset_schemas(configuration: &configuration::Configuration, workspace: &str, path: &str) -> Result<Vec<models::AssetSchemaVersion>, Error<ListAssetSchemasError>> {
231    let local_var_configuration = configuration;
232
233    let local_var_client = &local_var_configuration.client;
234
235    let local_var_uri_str = format!("{}/w/{workspace}/assets/asset_schemas", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
236    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
237
238    local_var_req_builder = local_var_req_builder.query(&[("path", &path.to_string())]);
239    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
240        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
241    }
242    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
243        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
244    };
245
246    let local_var_req = local_var_req_builder.build()?;
247    let local_var_resp = local_var_client.execute(local_var_req).await?;
248
249    let local_var_status = local_var_resp.status();
250    let local_var_content = local_var_resp.text().await?;
251
252    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
253        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
254    } else {
255        let local_var_entity: Option<ListAssetSchemasError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
256        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
257        Err(Error::ResponseError(local_var_error))
258    }
259}
260
261pub async fn list_assets(configuration: &configuration::Configuration, workspace: &str, per_page: Option<i32>, cursor_created_at: Option<String>, cursor_id: Option<i64>, asset_path: Option<&str>, usage_path: Option<&str>, asset_kinds: Option<&str>, path: Option<&str>, columns: Option<&str>, broad_filter: Option<&str>) -> Result<models::ListAssets200Response, Error<ListAssetsError>> {
262    let local_var_configuration = configuration;
263
264    let local_var_client = &local_var_configuration.client;
265
266    let local_var_uri_str = format!("{}/w/{workspace}/assets/list", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
267    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
268
269    if let Some(ref local_var_str) = per_page {
270        local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
271    }
272    if let Some(ref local_var_str) = cursor_created_at {
273        local_var_req_builder = local_var_req_builder.query(&[("cursor_created_at", &local_var_str.to_string())]);
274    }
275    if let Some(ref local_var_str) = cursor_id {
276        local_var_req_builder = local_var_req_builder.query(&[("cursor_id", &local_var_str.to_string())]);
277    }
278    if let Some(ref local_var_str) = asset_path {
279        local_var_req_builder = local_var_req_builder.query(&[("asset_path", &local_var_str.to_string())]);
280    }
281    if let Some(ref local_var_str) = usage_path {
282        local_var_req_builder = local_var_req_builder.query(&[("usage_path", &local_var_str.to_string())]);
283    }
284    if let Some(ref local_var_str) = asset_kinds {
285        local_var_req_builder = local_var_req_builder.query(&[("asset_kinds", &local_var_str.to_string())]);
286    }
287    if let Some(ref local_var_str) = path {
288        local_var_req_builder = local_var_req_builder.query(&[("path", &local_var_str.to_string())]);
289    }
290    if let Some(ref local_var_str) = columns {
291        local_var_req_builder = local_var_req_builder.query(&[("columns", &local_var_str.to_string())]);
292    }
293    if let Some(ref local_var_str) = broad_filter {
294        local_var_req_builder = local_var_req_builder.query(&[("broad_filter", &local_var_str.to_string())]);
295    }
296    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
297        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
298    }
299    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
300        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
301    };
302
303    let local_var_req = local_var_req_builder.build()?;
304    let local_var_resp = local_var_client.execute(local_var_req).await?;
305
306    let local_var_status = local_var_resp.status();
307    let local_var_content = local_var_resp.text().await?;
308
309    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
310        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
311    } else {
312        let local_var_entity: Option<ListAssetsError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
313        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
314        Err(Error::ResponseError(local_var_error))
315    }
316}
317
318pub async fn list_assets_by_usage(configuration: &configuration::Configuration, workspace: &str, list_assets_by_usage_request: models::ListAssetsByUsageRequest) -> Result<Vec<Vec<models::ListAssetsByUsage200ResponseInnerInner>>, Error<ListAssetsByUsageError>> {
319    let local_var_configuration = configuration;
320
321    let local_var_client = &local_var_configuration.client;
322
323    let local_var_uri_str = format!("{}/w/{workspace}/assets/list_by_usages", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
324    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
325
326    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
327        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
328    }
329    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
330        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
331    };
332    local_var_req_builder = local_var_req_builder.json(&list_assets_by_usage_request);
333
334    let local_var_req = local_var_req_builder.build()?;
335    let local_var_resp = local_var_client.execute(local_var_req).await?;
336
337    let local_var_status = local_var_resp.status();
338    let local_var_content = local_var_resp.text().await?;
339
340    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
341        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
342    } else {
343        let local_var_entity: Option<ListAssetsByUsageError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
344        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
345        Err(Error::ResponseError(local_var_error))
346    }
347}
348
349pub async fn list_favorite_assets(configuration: &configuration::Configuration, workspace: &str) -> Result<Vec<models::ListFavoriteAssets200ResponseInner>, Error<ListFavoriteAssetsError>> {
350    let local_var_configuration = configuration;
351
352    let local_var_client = &local_var_configuration.client;
353
354    let local_var_uri_str = format!("{}/w/{workspace}/assets/list_favorites", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
355    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
356
357    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
358        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
359    }
360    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
361        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
362    };
363
364    let local_var_req = local_var_req_builder.build()?;
365    let local_var_resp = local_var_client.execute(local_var_req).await?;
366
367    let local_var_status = local_var_resp.status();
368    let local_var_content = local_var_resp.text().await?;
369
370    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
371        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
372    } else {
373        let local_var_entity: Option<ListFavoriteAssetsError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
374        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
375        Err(Error::ResponseError(local_var_error))
376    }
377}
378
379pub async fn list_pipeline_folders(configuration: &configuration::Configuration, workspace: &str) -> Result<Vec<models::ListPipelineFolders200ResponseInner>, Error<ListPipelineFoldersError>> {
380    let local_var_configuration = configuration;
381
382    let local_var_client = &local_var_configuration.client;
383
384    let local_var_uri_str = format!("{}/w/{workspace}/assets/pipelines", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
385    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
386
387    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
388        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
389    }
390    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
391        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
392    };
393
394    let local_var_req = local_var_req_builder.build()?;
395    let local_var_resp = local_var_client.execute(local_var_req).await?;
396
397    let local_var_status = local_var_resp.status();
398    let local_var_content = local_var_resp.text().await?;
399
400    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
401        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
402    } else {
403        let local_var_entity: Option<ListPipelineFoldersError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
404        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
405        Err(Error::ResponseError(local_var_error))
406    }
407}
408
409pub async fn list_workspace_macros(configuration: &configuration::Configuration, workspace: &str) -> Result<Vec<models::ListWorkspaceMacros200ResponseInner>, Error<ListWorkspaceMacrosError>> {
410    let local_var_configuration = configuration;
411
412    let local_var_client = &local_var_configuration.client;
413
414    let local_var_uri_str = format!("{}/w/{workspace}/assets/macros", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
415    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
416
417    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
418        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
419    }
420    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
421        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
422    };
423
424    let local_var_req = local_var_req_builder.build()?;
425    let local_var_resp = local_var_client.execute(local_var_req).await?;
426
427    let local_var_status = local_var_resp.status();
428    let local_var_content = local_var_resp.text().await?;
429
430    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
431        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
432    } else {
433        let local_var_entity: Option<ListWorkspaceMacrosError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
434        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
435        Err(Error::ResponseError(local_var_error))
436    }
437}
438