1use super::{configuration, Error};
12use crate::{apis::ResponseContent, models};
13use reqwest;
14use serde::{Deserialize, Serialize};
15
16#[derive(Debug, Clone, Serialize, Deserialize)]
18#[serde(untagged)]
19pub enum CreateInstanceError {
20 Status400(models::ErrorResponseSchema),
21 Status401(String),
22 Status403(models::ErrorResponseSchema),
23 Status409(models::ErrorResponseSchema),
24 UnknownValue(serde_json::Value),
25}
26
27#[derive(Debug, Clone, Serialize, Deserialize)]
29#[serde(untagged)]
30pub enum DeleteInstanceError {
31 Status400(models::ErrorResponseSchema),
32 Status401(models::ErrorResponseSchema),
33 Status403(models::ErrorResponseSchema),
34 Status409(models::ErrorResponseSchema),
35 UnknownValue(serde_json::Value),
36}
37
38#[derive(Debug, Clone, Serialize, Deserialize)]
40#[serde(untagged)]
41pub enum GetAllError {
42 Status400(models::ErrorResponseSchema),
43 Status401(models::ErrorResponseSchema),
44 Status403(models::ErrorResponseSchema),
45 UnknownValue(serde_json::Value),
46}
47
48#[derive(Debug, Clone, Serialize, Deserialize)]
50#[serde(untagged)]
51pub enum GetInstanceError {
52 Status400(models::ErrorResponseSchema),
53 Status401(models::ErrorResponseSchema),
54 Status403(models::ErrorResponseSchema),
55 Status404(models::ErrorResponseSchema),
56 UnknownValue(serde_json::Value),
57}
58
59#[derive(Debug, Clone, Serialize, Deserialize)]
61#[serde(untagged)]
62pub enum GetInstanceHistoryError {
63 Status401(models::ErrorResponseSchema),
64 Status403(models::ErrorResponseSchema),
65 Status404(models::ErrorResponseSchema),
66 UnknownValue(serde_json::Value),
67}
68
69#[derive(Debug, Clone, Serialize, Deserialize)]
71#[serde(untagged)]
72pub enum GetInstanceTomlError {
73 Status401(models::ErrorResponseSchema),
74 Status403(serde_json::Value),
75 UnknownValue(serde_json::Value),
76}
77
78#[derive(Debug, Clone, Serialize, Deserialize)]
80#[serde(untagged)]
81pub enum GetSchemaError {
82 Status401(models::ErrorResponseSchema),
83 UnknownValue(serde_json::Value),
84}
85
86#[derive(Debug, Clone, Serialize, Deserialize)]
88#[serde(untagged)]
89pub enum InstanceEventError {
90 Status401(models::ErrorResponseSchema),
91 Status403(models::ErrorResponseSchema),
92 Status409(models::ErrorResponseSchema),
93 UnknownValue(serde_json::Value),
94}
95
96#[derive(Debug, Clone, Serialize, Deserialize)]
98#[serde(untagged)]
99pub enum PatchInstanceError {
100 Status400(models::ErrorResponseSchema),
101 Status401(String),
102 Status403(models::ErrorResponseSchema),
103 Status409(models::ErrorResponseSchema),
104 UnknownValue(serde_json::Value),
105}
106
107#[derive(Debug, Clone, Serialize, Deserialize)]
109#[serde(untagged)]
110pub enum RestoreInstanceError {
111 Status400(models::ErrorResponseSchema),
112 Status401(String),
113 Status403(models::ErrorResponseSchema),
114 Status409(models::ErrorResponseSchema),
115 UnknownValue(serde_json::Value),
116}
117
118pub async fn create_instance(
120 configuration: &configuration::Configuration,
121 org_id: &str,
122 create_instance: models::CreateInstance,
123) -> Result<models::Instance, Error<CreateInstanceError>> {
124 let p_org_id = org_id;
126 let p_create_instance = create_instance;
127
128 let uri_str = format!(
129 "{}/api/v1/orgs/{org_id}/instances",
130 configuration.base_path,
131 org_id = crate::apis::urlencode(p_org_id)
132 );
133 let mut req_builder = configuration
134 .client
135 .request(reqwest::Method::POST, &uri_str);
136
137 if let Some(ref user_agent) = configuration.user_agent {
138 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
139 }
140 if let Some(ref token) = configuration.bearer_access_token {
141 req_builder = req_builder.bearer_auth(token.to_owned());
142 };
143 req_builder = req_builder.json(&p_create_instance);
144
145 let req = req_builder.build()?;
146 let resp = configuration.client.execute(req).await?;
147
148 let status = resp.status();
149
150 if !status.is_client_error() && !status.is_server_error() {
151 let content = resp.text().await?;
152 serde_json::from_str(&content).map_err(Error::from)
153 } else {
154 let content = resp.text().await?;
155 let entity: Option<CreateInstanceError> = serde_json::from_str(&content).ok();
156 Err(Error::ResponseError(ResponseContent {
157 status,
158 content,
159 entity,
160 }))
161 }
162}
163
164pub async fn delete_instance(
166 configuration: &configuration::Configuration,
167 org_id: &str,
168 instance_id: &str,
169) -> Result<models::Instance, Error<DeleteInstanceError>> {
170 let p_org_id = org_id;
172 let p_instance_id = instance_id;
173
174 let uri_str = format!(
175 "{}/api/v1/orgs/{org_id}/instances/{instance_id}",
176 configuration.base_path,
177 org_id = crate::apis::urlencode(p_org_id),
178 instance_id = crate::apis::urlencode(p_instance_id)
179 );
180 let mut req_builder = configuration
181 .client
182 .request(reqwest::Method::DELETE, &uri_str);
183
184 if let Some(ref user_agent) = configuration.user_agent {
185 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
186 }
187 if let Some(ref token) = configuration.bearer_access_token {
188 req_builder = req_builder.bearer_auth(token.to_owned());
189 };
190
191 let req = req_builder.build()?;
192 let resp = configuration.client.execute(req).await?;
193
194 let status = resp.status();
195
196 if !status.is_client_error() && !status.is_server_error() {
197 let content = resp.text().await?;
198 serde_json::from_str(&content).map_err(Error::from)
199 } else {
200 let content = resp.text().await?;
201 let entity: Option<DeleteInstanceError> = serde_json::from_str(&content).ok();
202 Err(Error::ResponseError(ResponseContent {
203 status,
204 content,
205 entity,
206 }))
207 }
208}
209
210pub async fn get_all(
212 configuration: &configuration::Configuration,
213 org_id: &str,
214) -> Result<Vec<models::Instance>, Error<GetAllError>> {
215 let p_org_id = org_id;
217
218 let uri_str = format!(
219 "{}/api/v1/orgs/{org_id}/instances",
220 configuration.base_path,
221 org_id = crate::apis::urlencode(p_org_id)
222 );
223 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
224
225 if let Some(ref user_agent) = configuration.user_agent {
226 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
227 }
228 if let Some(ref token) = configuration.bearer_access_token {
229 req_builder = req_builder.bearer_auth(token.to_owned());
230 };
231
232 let req = req_builder.build()?;
233 let resp = configuration.client.execute(req).await?;
234
235 let status = resp.status();
236
237 if !status.is_client_error() && !status.is_server_error() {
238 let content = resp.text().await?;
239 serde_json::from_str(&content).map_err(Error::from)
240 } else {
241 let content = resp.text().await?;
242 let entity: Option<GetAllError> = serde_json::from_str(&content).ok();
243 Err(Error::ResponseError(ResponseContent {
244 status,
245 content,
246 entity,
247 }))
248 }
249}
250
251pub async fn get_instance(
253 configuration: &configuration::Configuration,
254 org_id: &str,
255 instance_id: &str,
256) -> Result<models::Instance, Error<GetInstanceError>> {
257 let p_org_id = org_id;
259 let p_instance_id = instance_id;
260
261 let uri_str = format!(
262 "{}/api/v1/orgs/{org_id}/instances/{instance_id}",
263 configuration.base_path,
264 org_id = crate::apis::urlencode(p_org_id),
265 instance_id = crate::apis::urlencode(p_instance_id)
266 );
267 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
268
269 if let Some(ref user_agent) = configuration.user_agent {
270 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
271 }
272 if let Some(ref token) = configuration.bearer_access_token {
273 req_builder = req_builder.bearer_auth(token.to_owned());
274 };
275
276 let req = req_builder.build()?;
277 let resp = configuration.client.execute(req).await?;
278
279 let status = resp.status();
280
281 if !status.is_client_error() && !status.is_server_error() {
282 let content = resp.text().await?;
283 serde_json::from_str(&content).map_err(Error::from)
284 } else {
285 let content = resp.text().await?;
286 let entity: Option<GetInstanceError> = serde_json::from_str(&content).ok();
287 Err(Error::ResponseError(ResponseContent {
288 status,
289 content,
290 entity,
291 }))
292 }
293}
294
295pub async fn get_instance_history(
297 configuration: &configuration::Configuration,
298 org_id: &str,
299 instance_id: &str,
300 field: &str,
301 start: Option<String>,
302 end: Option<String>,
303 page: Option<i32>,
304 limit: Option<i32>,
305) -> Result<models::HistoryPage, Error<GetInstanceHistoryError>> {
306 let p_org_id = org_id;
308 let p_instance_id = instance_id;
309 let p_field = field;
310 let p_start = start;
311 let p_end = end;
312 let p_page = page;
313 let p_limit = limit;
314
315 let uri_str = format!(
316 "{}/api/v1/orgs/{org_id}/instances/{instance_id}/history/{field}",
317 configuration.base_path,
318 org_id = crate::apis::urlencode(p_org_id),
319 instance_id = crate::apis::urlencode(p_instance_id),
320 field = crate::apis::urlencode(p_field)
321 );
322 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
323
324 if let Some(ref param_value) = p_start {
325 req_builder = req_builder.query(&[("start", ¶m_value.to_string())]);
326 }
327 if let Some(ref param_value) = p_end {
328 req_builder = req_builder.query(&[("end", ¶m_value.to_string())]);
329 }
330 if let Some(ref param_value) = p_page {
331 req_builder = req_builder.query(&[("page", ¶m_value.to_string())]);
332 }
333 if let Some(ref param_value) = p_limit {
334 req_builder = req_builder.query(&[("limit", ¶m_value.to_string())]);
335 }
336 if let Some(ref user_agent) = configuration.user_agent {
337 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
338 }
339 if let Some(ref token) = configuration.bearer_access_token {
340 req_builder = req_builder.bearer_auth(token.to_owned());
341 };
342
343 let req = req_builder.build()?;
344 let resp = configuration.client.execute(req).await?;
345
346 let status = resp.status();
347
348 if !status.is_client_error() && !status.is_server_error() {
349 let content = resp.text().await?;
350 serde_json::from_str(&content).map_err(Error::from)
351 } else {
352 let content = resp.text().await?;
353 let entity: Option<GetInstanceHistoryError> = serde_json::from_str(&content).ok();
354 Err(Error::ResponseError(ResponseContent {
355 status,
356 content,
357 entity,
358 }))
359 }
360}
361
362pub async fn get_instance_toml(
364 configuration: &configuration::Configuration,
365 org_id: &str,
366 instance_id: &str,
367) -> Result<serde_json::Value, Error<GetInstanceTomlError>> {
368 let p_org_id = org_id;
370 let p_instance_id = instance_id;
371
372 let uri_str = format!(
373 "{}/api/v1/orgs/{org_id}/instances/{instance_id}/toml",
374 configuration.base_path,
375 org_id = crate::apis::urlencode(p_org_id),
376 instance_id = crate::apis::urlencode(p_instance_id)
377 );
378 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
379
380 if let Some(ref user_agent) = configuration.user_agent {
381 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
382 }
383 if let Some(ref token) = configuration.bearer_access_token {
384 req_builder = req_builder.bearer_auth(token.to_owned());
385 };
386
387 let req = req_builder.build()?;
388 let resp = configuration.client.execute(req).await?;
389
390 let status = resp.status();
391
392 if !status.is_client_error() && !status.is_server_error() {
393 let content = resp.text().await?;
394 serde_json::from_str(&content).map_err(Error::from)
395 } else {
396 let content = resp.text().await?;
397 let entity: Option<GetInstanceTomlError> = serde_json::from_str(&content).ok();
398 Err(Error::ResponseError(ResponseContent {
399 status,
400 content,
401 entity,
402 }))
403 }
404}
405
406pub async fn get_schema(
408 configuration: &configuration::Configuration,
409) -> Result<models::ErrorResponseSchema, Error<GetSchemaError>> {
410 let uri_str = format!("{}/api/v1/orgs/instances/schema", configuration.base_path);
411 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
412
413 if let Some(ref user_agent) = configuration.user_agent {
414 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
415 }
416 if let Some(ref token) = configuration.bearer_access_token {
417 req_builder = req_builder.bearer_auth(token.to_owned());
418 };
419
420 let req = req_builder.build()?;
421 let resp = configuration.client.execute(req).await?;
422
423 let status = resp.status();
424
425 if !status.is_client_error() && !status.is_server_error() {
426 let content = resp.text().await?;
427 serde_json::from_str(&content).map_err(Error::from)
428 } else {
429 let content = resp.text().await?;
430 let entity: Option<GetSchemaError> = serde_json::from_str(&content).ok();
431 Err(Error::ResponseError(ResponseContent {
432 status,
433 content,
434 entity,
435 }))
436 }
437}
438
439pub async fn instance_event(
441 configuration: &configuration::Configuration,
442 org_id: &str,
443 event_type: models::InstanceEvent,
444 instance_id: &str,
445) -> Result<models::Instance, Error<InstanceEventError>> {
446 let p_org_id = org_id;
448 let p_event_type = event_type;
449 let p_instance_id = instance_id;
450
451 let uri_str = format!(
452 "{}/api/v1/orgs/{org_id}/instances/{instance_id}",
453 configuration.base_path,
454 org_id = crate::apis::urlencode(p_org_id),
455 instance_id = crate::apis::urlencode(p_instance_id)
456 );
457 let mut req_builder = configuration
458 .client
459 .request(reqwest::Method::POST, &uri_str);
460
461 req_builder = req_builder.query(&[("event_type", &p_event_type.to_string())]);
462 if let Some(ref user_agent) = configuration.user_agent {
463 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
464 }
465 if let Some(ref token) = configuration.bearer_access_token {
466 req_builder = req_builder.bearer_auth(token.to_owned());
467 };
468
469 let req = req_builder.build()?;
470 let resp = configuration.client.execute(req).await?;
471
472 let status = resp.status();
473
474 if !status.is_client_error() && !status.is_server_error() {
475 let content = resp.text().await?;
476 serde_json::from_str(&content).map_err(Error::from)
477 } else {
478 let content = resp.text().await?;
479 let entity: Option<InstanceEventError> = serde_json::from_str(&content).ok();
480 Err(Error::ResponseError(ResponseContent {
481 status,
482 content,
483 entity,
484 }))
485 }
486}
487
488pub async fn patch_instance(
490 configuration: &configuration::Configuration,
491 org_id: &str,
492 instance_id: &str,
493 patch_instance: models::PatchInstance,
494) -> Result<models::Instance, Error<PatchInstanceError>> {
495 let p_org_id = org_id;
497 let p_instance_id = instance_id;
498 let p_patch_instance = patch_instance;
499
500 let uri_str = format!(
501 "{}/api/v1/orgs/{org_id}/instances/{instance_id}",
502 configuration.base_path,
503 org_id = crate::apis::urlencode(p_org_id),
504 instance_id = crate::apis::urlencode(p_instance_id)
505 );
506 let mut req_builder = configuration
507 .client
508 .request(reqwest::Method::PATCH, &uri_str);
509
510 if let Some(ref user_agent) = configuration.user_agent {
511 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
512 }
513 if let Some(ref token) = configuration.bearer_access_token {
514 req_builder = req_builder.bearer_auth(token.to_owned());
515 };
516 req_builder = req_builder.json(&p_patch_instance);
517
518 let req = req_builder.build()?;
519 let resp = configuration.client.execute(req).await?;
520
521 let status = resp.status();
522
523 if !status.is_client_error() && !status.is_server_error() {
524 let content = resp.text().await?;
525 serde_json::from_str(&content).map_err(Error::from)
526 } else {
527 let content = resp.text().await?;
528 let entity: Option<PatchInstanceError> = serde_json::from_str(&content).ok();
529 Err(Error::ResponseError(ResponseContent {
530 status,
531 content,
532 entity,
533 }))
534 }
535}
536
537pub async fn restore_instance(
539 configuration: &configuration::Configuration,
540 org_id: &str,
541 restore_instance: models::RestoreInstance,
542) -> Result<models::Instance, Error<RestoreInstanceError>> {
543 let p_org_id = org_id;
545 let p_restore_instance = restore_instance;
546
547 let uri_str = format!(
548 "{}/api/v1/orgs/{org_id}/restore",
549 configuration.base_path,
550 org_id = crate::apis::urlencode(p_org_id)
551 );
552 let mut req_builder = configuration
553 .client
554 .request(reqwest::Method::POST, &uri_str);
555
556 if let Some(ref user_agent) = configuration.user_agent {
557 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
558 }
559 if let Some(ref token) = configuration.bearer_access_token {
560 req_builder = req_builder.bearer_auth(token.to_owned());
561 };
562 req_builder = req_builder.json(&p_restore_instance);
563
564 let req = req_builder.build()?;
565 let resp = configuration.client.execute(req).await?;
566
567 let status = resp.status();
568
569 if !status.is_client_error() && !status.is_server_error() {
570 let content = resp.text().await?;
571 serde_json::from_str(&content).map_err(Error::from)
572 } else {
573 let content = resp.text().await?;
574 let entity: Option<RestoreInstanceError> = serde_json::from_str(&content).ok();
575 Err(Error::ResponseError(ResponseContent {
576 status,
577 content,
578 entity,
579 }))
580 }
581}