nile_client_rs/apis/
entities_api.rs

1/*
2 * Nile API
3 *
4 * Making SaaS chill.
5 *
6 * The version of the OpenAPI document: 0.1.0-fdd7cd5
7 * Contact: support@thenile.dev
8 * Generated by: https://openapi-generator.tech
9 */
10
11use reqwest;
12
13use super::{configuration, Error};
14use crate::apis::ResponseContent;
15use serde::{Deserialize, Serialize};
16
17/// struct for typed errors of method [`create_entity`]
18#[derive(Debug, Clone, Serialize, Deserialize)]
19#[serde(untagged)]
20pub enum CreateEntityError {
21    UnknownValue(serde_json::Value),
22}
23
24/// struct for typed errors of method [`create_instance`]
25#[derive(Debug, Clone, Serialize, Deserialize)]
26#[serde(untagged)]
27pub enum CreateInstanceError {
28    UnknownValue(serde_json::Value),
29}
30
31/// struct for typed errors of method [`delete_instance`]
32#[derive(Debug, Clone, Serialize, Deserialize)]
33#[serde(untagged)]
34pub enum DeleteInstanceError {
35    UnknownValue(serde_json::Value),
36}
37
38/// struct for typed errors of method [`get_entity`]
39#[derive(Debug, Clone, Serialize, Deserialize)]
40#[serde(untagged)]
41pub enum GetEntityError {
42    UnknownValue(serde_json::Value),
43}
44
45/// struct for typed errors of method [`get_instance`]
46#[derive(Debug, Clone, Serialize, Deserialize)]
47#[serde(untagged)]
48pub enum GetInstanceError {
49    UnknownValue(serde_json::Value),
50}
51
52/// struct for typed errors of method [`get_open_api`]
53#[derive(Debug, Clone, Serialize, Deserialize)]
54#[serde(untagged)]
55pub enum GetOpenApiError {
56    UnknownValue(serde_json::Value),
57}
58
59/// struct for typed errors of method [`instance_period_events`]
60#[derive(Debug, Clone, Serialize, Deserialize)]
61#[serde(untagged)]
62pub enum InstancePeriodEventsError {
63    UnknownValue(serde_json::Value),
64}
65
66/// struct for typed errors of method [`list_entities`]
67#[derive(Debug, Clone, Serialize, Deserialize)]
68#[serde(untagged)]
69pub enum ListEntitiesError {
70    UnknownValue(serde_json::Value),
71}
72
73/// struct for typed errors of method [`list_instances`]
74#[derive(Debug, Clone, Serialize, Deserialize)]
75#[serde(untagged)]
76pub enum ListInstancesError {
77    UnknownValue(serde_json::Value),
78}
79
80/// struct for typed errors of method [`list_instances_in_workspace`]
81#[derive(Debug, Clone, Serialize, Deserialize)]
82#[serde(untagged)]
83pub enum ListInstancesInWorkspaceError {
84    UnknownValue(serde_json::Value),
85}
86
87/// struct for typed errors of method [`patch_instance`]
88#[derive(Debug, Clone, Serialize, Deserialize)]
89#[serde(untagged)]
90pub enum PatchInstanceError {
91    UnknownValue(serde_json::Value),
92}
93
94/// struct for typed errors of method [`update_entity`]
95#[derive(Debug, Clone, Serialize, Deserialize)]
96#[serde(untagged)]
97pub enum UpdateEntityError {
98    UnknownValue(serde_json::Value),
99}
100
101/// struct for typed errors of method [`update_instance`]
102#[derive(Debug, Clone, Serialize, Deserialize)]
103#[serde(untagged)]
104pub enum UpdateInstanceError {
105    UnknownValue(serde_json::Value),
106}
107
108pub async fn create_entity(
109    configuration: &configuration::Configuration,
110    workspace: &str,
111    create_entity_request: crate::models::CreateEntityRequest,
112) -> Result<crate::models::Entity, Error<CreateEntityError>> {
113    let local_var_configuration = configuration;
114
115    let local_var_client = &local_var_configuration.client;
116
117    let local_var_uri_str = format!(
118        "{}/workspaces/{workspace}/entities",
119        local_var_configuration.base_path,
120        workspace = crate::apis::urlencode(workspace)
121    );
122    let mut local_var_req_builder =
123        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
124
125    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
126        local_var_req_builder =
127            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
128    }
129    local_var_req_builder = local_var_req_builder.json(&create_entity_request);
130
131    let local_var_req = local_var_req_builder.build()?;
132    let local_var_resp = local_var_client.execute(local_var_req).await?;
133
134    let local_var_status = local_var_resp.status();
135    let local_var_content = local_var_resp.text().await?;
136
137    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
138        serde_json::from_str(&local_var_content).map_err(Error::from)
139    } else {
140        let local_var_entity: Option<CreateEntityError> =
141            serde_json::from_str(&local_var_content).ok();
142        let local_var_error = ResponseContent {
143            status: local_var_status,
144            content: local_var_content,
145            entity: local_var_entity,
146        };
147        Err(Error::ResponseError(local_var_error))
148    }
149}
150
151pub async fn create_instance(
152    configuration: &configuration::Configuration,
153    workspace: &str,
154    org: &str,
155    r#type: &str,
156    body: serde_json::Value,
157) -> Result<crate::models::Instance, Error<CreateInstanceError>> {
158    let local_var_configuration = configuration;
159
160    let local_var_client = &local_var_configuration.client;
161
162    let local_var_uri_str = format!("{}/workspaces/{workspace}/orgs/{org}/instances/{type}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), org=crate::apis::urlencode(org), type=crate::apis::urlencode(r#type));
163    let mut local_var_req_builder =
164        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
165
166    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
167        local_var_req_builder =
168            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
169    }
170    local_var_req_builder = local_var_req_builder.json(&body);
171
172    let local_var_req = local_var_req_builder.build()?;
173    let local_var_resp = local_var_client.execute(local_var_req).await?;
174
175    let local_var_status = local_var_resp.status();
176    let local_var_content = local_var_resp.text().await?;
177
178    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
179        serde_json::from_str(&local_var_content).map_err(Error::from)
180    } else {
181        let local_var_entity: Option<CreateInstanceError> =
182            serde_json::from_str(&local_var_content).ok();
183        let local_var_error = ResponseContent {
184            status: local_var_status,
185            content: local_var_content,
186            entity: local_var_entity,
187        };
188        Err(Error::ResponseError(local_var_error))
189    }
190}
191
192pub async fn delete_instance(
193    configuration: &configuration::Configuration,
194    workspace: &str,
195    org: &str,
196    r#type: &str,
197    id: &str,
198) -> Result<(), Error<DeleteInstanceError>> {
199    let local_var_configuration = configuration;
200
201    let local_var_client = &local_var_configuration.client;
202
203    let local_var_uri_str = format!("{}/workspaces/{workspace}/orgs/{org}/instances/{type}/{id}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), org=crate::apis::urlencode(org), type=crate::apis::urlencode(r#type), id=crate::apis::urlencode(id));
204    let mut local_var_req_builder =
205        local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
206
207    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
208        local_var_req_builder =
209            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
210    }
211
212    let local_var_req = local_var_req_builder.build()?;
213    let local_var_resp = local_var_client.execute(local_var_req).await?;
214
215    let local_var_status = local_var_resp.status();
216    let local_var_content = local_var_resp.text().await?;
217
218    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
219        Ok(())
220    } else {
221        let local_var_entity: Option<DeleteInstanceError> =
222            serde_json::from_str(&local_var_content).ok();
223        let local_var_error = ResponseContent {
224            status: local_var_status,
225            content: local_var_content,
226            entity: local_var_entity,
227        };
228        Err(Error::ResponseError(local_var_error))
229    }
230}
231
232pub async fn get_entity(
233    configuration: &configuration::Configuration,
234    workspace: &str,
235    r#type: &str,
236) -> Result<crate::models::Entity, Error<GetEntityError>> {
237    let local_var_configuration = configuration;
238
239    let local_var_client = &local_var_configuration.client;
240
241    let local_var_uri_str = format!("{}/workspaces/{workspace}/entities/{type}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), type=crate::apis::urlencode(r#type));
242    let mut local_var_req_builder =
243        local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
244
245    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
246        local_var_req_builder =
247            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
248    }
249
250    let local_var_req = local_var_req_builder.build()?;
251    let local_var_resp = local_var_client.execute(local_var_req).await?;
252
253    let local_var_status = local_var_resp.status();
254    let local_var_content = local_var_resp.text().await?;
255
256    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
257        serde_json::from_str(&local_var_content).map_err(Error::from)
258    } else {
259        let local_var_entity: Option<GetEntityError> =
260            serde_json::from_str(&local_var_content).ok();
261        let local_var_error = ResponseContent {
262            status: local_var_status,
263            content: local_var_content,
264            entity: local_var_entity,
265        };
266        Err(Error::ResponseError(local_var_error))
267    }
268}
269
270pub async fn get_instance(
271    configuration: &configuration::Configuration,
272    workspace: &str,
273    org: &str,
274    r#type: &str,
275    id: &str,
276) -> Result<crate::models::Instance, Error<GetInstanceError>> {
277    let local_var_configuration = configuration;
278
279    let local_var_client = &local_var_configuration.client;
280
281    let local_var_uri_str = format!("{}/workspaces/{workspace}/orgs/{org}/instances/{type}/{id}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), org=crate::apis::urlencode(org), type=crate::apis::urlencode(r#type), id=crate::apis::urlencode(id));
282    let mut local_var_req_builder =
283        local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
284
285    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
286        local_var_req_builder =
287            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
288    }
289
290    let local_var_req = local_var_req_builder.build()?;
291    let local_var_resp = local_var_client.execute(local_var_req).await?;
292
293    let local_var_status = local_var_resp.status();
294    let local_var_content = local_var_resp.text().await?;
295
296    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
297        serde_json::from_str(&local_var_content).map_err(Error::from)
298    } else {
299        let local_var_entity: Option<GetInstanceError> =
300            serde_json::from_str(&local_var_content).ok();
301        let local_var_error = ResponseContent {
302            status: local_var_status,
303            content: local_var_content,
304            entity: local_var_entity,
305        };
306        Err(Error::ResponseError(local_var_error))
307    }
308}
309
310pub async fn get_open_api(
311    configuration: &configuration::Configuration,
312    workspace: &str,
313    r#type: &str,
314) -> Result<String, Error<GetOpenApiError>> {
315    let local_var_configuration = configuration;
316
317    let local_var_client = &local_var_configuration.client;
318
319    let local_var_uri_str = format!("{}/workspaces/{workspace}/entities/{type}/openapi", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), type=crate::apis::urlencode(r#type));
320    let mut local_var_req_builder =
321        local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
322
323    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
324        local_var_req_builder =
325            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
326    }
327
328    let local_var_req = local_var_req_builder.build()?;
329    let local_var_resp = local_var_client.execute(local_var_req).await?;
330
331    let local_var_status = local_var_resp.status();
332    let local_var_content = local_var_resp.text().await?;
333
334    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
335        serde_json::from_str(&local_var_content).map_err(Error::from)
336    } else {
337        let local_var_entity: Option<GetOpenApiError> =
338            serde_json::from_str(&local_var_content).ok();
339        let local_var_error = ResponseContent {
340            status: local_var_status,
341            content: local_var_content,
342            entity: local_var_entity,
343        };
344        Err(Error::ResponseError(local_var_error))
345    }
346}
347
348/// Gets all events for the given entity type. As access policies are enforced on events, if the `before` instance fails access control, it will be omitted.
349pub async fn instance_period_events(
350    configuration: &configuration::Configuration,
351    workspace: &str,
352    r#type: &str,
353    seq: Option<i64>,
354    limit: Option<i64>,
355) -> Result<Vec<crate::models::InstanceEvent>, Error<InstancePeriodEventsError>> {
356    let local_var_configuration = configuration;
357
358    let local_var_client = &local_var_configuration.client;
359
360    let local_var_uri_str = format!("{}/workspaces/{workspace}/events/{type}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), type=crate::apis::urlencode(r#type));
361    let mut local_var_req_builder =
362        local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
363
364    if let Some(ref local_var_str) = seq {
365        local_var_req_builder = local_var_req_builder.query(&[("seq", &local_var_str.to_string())]);
366    }
367    if let Some(ref local_var_str) = limit {
368        local_var_req_builder =
369            local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
370    }
371    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
372        local_var_req_builder =
373            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
374    }
375
376    let local_var_req = local_var_req_builder.build()?;
377    let local_var_resp = local_var_client.execute(local_var_req).await?;
378
379    let local_var_status = local_var_resp.status();
380    let local_var_content = local_var_resp.text().await?;
381
382    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
383        serde_json::from_str(&local_var_content).map_err(Error::from)
384    } else {
385        let local_var_entity: Option<InstancePeriodEventsError> =
386            serde_json::from_str(&local_var_content).ok();
387        let local_var_error = ResponseContent {
388            status: local_var_status,
389            content: local_var_content,
390            entity: local_var_entity,
391        };
392        Err(Error::ResponseError(local_var_error))
393    }
394}
395
396pub async fn list_entities(
397    configuration: &configuration::Configuration,
398    workspace: &str,
399) -> Result<Vec<crate::models::Entity>, Error<ListEntitiesError>> {
400    let local_var_configuration = configuration;
401
402    let local_var_client = &local_var_configuration.client;
403
404    let local_var_uri_str = format!(
405        "{}/workspaces/{workspace}/entities",
406        local_var_configuration.base_path,
407        workspace = crate::apis::urlencode(workspace)
408    );
409    let mut local_var_req_builder =
410        local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
411
412    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
413        local_var_req_builder =
414            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
415    }
416
417    let local_var_req = local_var_req_builder.build()?;
418    let local_var_resp = local_var_client.execute(local_var_req).await?;
419
420    let local_var_status = local_var_resp.status();
421    let local_var_content = local_var_resp.text().await?;
422
423    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
424        serde_json::from_str(&local_var_content).map_err(Error::from)
425    } else {
426        let local_var_entity: Option<ListEntitiesError> =
427            serde_json::from_str(&local_var_content).ok();
428        let local_var_error = ResponseContent {
429            status: local_var_status,
430            content: local_var_content,
431            entity: local_var_entity,
432        };
433        Err(Error::ResponseError(local_var_error))
434    }
435}
436
437pub async fn list_instances(
438    configuration: &configuration::Configuration,
439    workspace: &str,
440    org: &str,
441    r#type: &str,
442) -> Result<Vec<crate::models::Instance>, Error<ListInstancesError>> {
443    let local_var_configuration = configuration;
444
445    let local_var_client = &local_var_configuration.client;
446
447    let local_var_uri_str = format!("{}/workspaces/{workspace}/orgs/{org}/instances/{type}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), org=crate::apis::urlencode(org), type=crate::apis::urlencode(r#type));
448    let mut local_var_req_builder =
449        local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
450
451    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
452        local_var_req_builder =
453            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
454    }
455
456    let local_var_req = local_var_req_builder.build()?;
457    let local_var_resp = local_var_client.execute(local_var_req).await?;
458
459    let local_var_status = local_var_resp.status();
460    let local_var_content = local_var_resp.text().await?;
461
462    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
463        serde_json::from_str(&local_var_content).map_err(Error::from)
464    } else {
465        let local_var_entity: Option<ListInstancesError> =
466            serde_json::from_str(&local_var_content).ok();
467        let local_var_error = ResponseContent {
468            status: local_var_status,
469            content: local_var_content,
470            entity: local_var_entity,
471        };
472        Err(Error::ResponseError(local_var_error))
473    }
474}
475
476pub async fn list_instances_in_workspace(
477    configuration: &configuration::Configuration,
478    workspace: &str,
479    r#type: &str,
480) -> Result<Vec<crate::models::Instance>, Error<ListInstancesInWorkspaceError>> {
481    let local_var_configuration = configuration;
482
483    let local_var_client = &local_var_configuration.client;
484
485    let local_var_uri_str = format!("{}/workspaces/{workspace}/instances/{type}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), type=crate::apis::urlencode(r#type));
486    let mut local_var_req_builder =
487        local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
488
489    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
490        local_var_req_builder =
491            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
492    }
493
494    let local_var_req = local_var_req_builder.build()?;
495    let local_var_resp = local_var_client.execute(local_var_req).await?;
496
497    let local_var_status = local_var_resp.status();
498    let local_var_content = local_var_resp.text().await?;
499
500    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
501        serde_json::from_str(&local_var_content).map_err(Error::from)
502    } else {
503        let local_var_entity: Option<ListInstancesInWorkspaceError> =
504            serde_json::from_str(&local_var_content).ok();
505        let local_var_error = ResponseContent {
506            status: local_var_status,
507            content: local_var_content,
508            entity: local_var_entity,
509        };
510        Err(Error::ResponseError(local_var_error))
511    }
512}
513
514/// If the instance field `seq` is provided in the `If-Match` header then this will be a Compare And Set operation, i.e., if the seq of the current instance doesn't match the one provided then a 412 status will be returned. If the header is not provided then this patch may overwrite other updates
515pub async fn patch_instance(
516    configuration: &configuration::Configuration,
517    workspace: &str,
518    org: &str,
519    r#type: &str,
520    id: &str,
521    patch_operation: Vec<crate::models::PatchOperation>,
522    if_match: Option<&str>,
523) -> Result<(), Error<PatchInstanceError>> {
524    let local_var_configuration = configuration;
525
526    let local_var_client = &local_var_configuration.client;
527
528    let local_var_uri_str = format!("{}/workspaces/{workspace}/orgs/{org}/instances/{type}/{id}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), org=crate::apis::urlencode(org), type=crate::apis::urlencode(r#type), id=crate::apis::urlencode(id));
529    let mut local_var_req_builder =
530        local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
531
532    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
533        local_var_req_builder =
534            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
535    }
536    if let Some(local_var_param_value) = if_match {
537        local_var_req_builder =
538            local_var_req_builder.header("If-Match", local_var_param_value.to_string());
539    }
540    local_var_req_builder = local_var_req_builder.json(&patch_operation);
541
542    let local_var_req = local_var_req_builder.build()?;
543    let local_var_resp = local_var_client.execute(local_var_req).await?;
544
545    let local_var_status = local_var_resp.status();
546    let local_var_content = local_var_resp.text().await?;
547
548    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
549        Ok(())
550    } else {
551        let local_var_entity: Option<PatchInstanceError> =
552            serde_json::from_str(&local_var_content).ok();
553        let local_var_error = ResponseContent {
554            status: local_var_status,
555            content: local_var_content,
556            entity: local_var_entity,
557        };
558        Err(Error::ResponseError(local_var_error))
559    }
560}
561
562pub async fn update_entity(
563    configuration: &configuration::Configuration,
564    workspace: &str,
565    r#type: &str,
566    update_entity_request: crate::models::UpdateEntityRequest,
567) -> Result<crate::models::Entity, Error<UpdateEntityError>> {
568    let local_var_configuration = configuration;
569
570    let local_var_client = &local_var_configuration.client;
571
572    let local_var_uri_str = format!("{}/workspaces/{workspace}/entities/{type}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), type=crate::apis::urlencode(r#type));
573    let mut local_var_req_builder =
574        local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
575
576    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
577        local_var_req_builder =
578            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
579    }
580    local_var_req_builder = local_var_req_builder.json(&update_entity_request);
581
582    let local_var_req = local_var_req_builder.build()?;
583    let local_var_resp = local_var_client.execute(local_var_req).await?;
584
585    let local_var_status = local_var_resp.status();
586    let local_var_content = local_var_resp.text().await?;
587
588    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
589        serde_json::from_str(&local_var_content).map_err(Error::from)
590    } else {
591        let local_var_entity: Option<UpdateEntityError> =
592            serde_json::from_str(&local_var_content).ok();
593        let local_var_error = ResponseContent {
594            status: local_var_status,
595            content: local_var_content,
596            entity: local_var_entity,
597        };
598        Err(Error::ResponseError(local_var_error))
599    }
600}
601
602/// If the instance field `seq` is provided in the `If-Match` header then this will be a Compare And Set operation, i.e., if the seq of the current instance doesn't match the one provided then a 412 status will be returned. If the header is not provided then this update will overwrite any other updates
603pub async fn update_instance(
604    configuration: &configuration::Configuration,
605    workspace: &str,
606    org: &str,
607    r#type: &str,
608    id: &str,
609    update_instance_request: crate::models::UpdateInstanceRequest,
610    if_match: Option<&str>,
611) -> Result<crate::models::Instance, Error<UpdateInstanceError>> {
612    let local_var_configuration = configuration;
613
614    let local_var_client = &local_var_configuration.client;
615
616    let local_var_uri_str = format!("{}/workspaces/{workspace}/orgs/{org}/instances/{type}/{id}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), org=crate::apis::urlencode(org), type=crate::apis::urlencode(r#type), id=crate::apis::urlencode(id));
617    let mut local_var_req_builder =
618        local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
619
620    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
621        local_var_req_builder =
622            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
623    }
624    if let Some(local_var_param_value) = if_match {
625        local_var_req_builder =
626            local_var_req_builder.header("If-Match", local_var_param_value.to_string());
627    }
628    local_var_req_builder = local_var_req_builder.json(&update_instance_request);
629
630    let local_var_req = local_var_req_builder.build()?;
631    let local_var_resp = local_var_client.execute(local_var_req).await?;
632
633    let local_var_status = local_var_resp.status();
634    let local_var_content = local_var_resp.text().await?;
635
636    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
637        serde_json::from_str(&local_var_content).map_err(Error::from)
638    } else {
639        let local_var_entity: Option<UpdateInstanceError> =
640            serde_json::from_str(&local_var_content).ok();
641        let local_var_error = ResponseContent {
642            status: local_var_status,
643            content: local_var_content,
644            entity: local_var_entity,
645        };
646        Err(Error::ResponseError(local_var_error))
647    }
648}