1use reqwest;
13use serde::{Deserialize, Serialize, de::Error as _};
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration, ContentType};
16
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum TapeCreateRestoreError {
22 Status400(models::PbsError),
23 Status401(models::PbsError),
24 Status403(models::PbsError),
25 Status404(models::PbsError),
26 Status500(models::PbsError),
27 Status501(models::PbsError),
28 Status503(models::PbsError),
29 UnknownValue(serde_json::Value),
30}
31
32#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum TapeGetScanChangersError {
36 Status400(models::PbsError),
37 Status401(models::PbsError),
38 Status403(models::PbsError),
39 Status404(models::PbsError),
40 Status500(models::PbsError),
41 Status501(models::PbsError),
42 Status503(models::PbsError),
43 UnknownValue(serde_json::Value),
44}
45
46#[derive(Debug, Clone, Serialize, Deserialize)]
48#[serde(untagged)]
49pub enum TapeGetScanDrivesError {
50 Status400(models::PbsError),
51 Status401(models::PbsError),
52 Status403(models::PbsError),
53 Status404(models::PbsError),
54 Status500(models::PbsError),
55 Status501(models::PbsError),
56 Status503(models::PbsError),
57 UnknownValue(serde_json::Value),
58}
59
60#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(untagged)]
63pub enum TapeGetTapeError {
64 Status400(models::PbsError),
65 Status401(models::PbsError),
66 Status403(models::PbsError),
67 Status404(models::PbsError),
68 Status500(models::PbsError),
69 Status501(models::PbsError),
70 Status503(models::PbsError),
71 UnknownValue(serde_json::Value),
72}
73
74
75pub async fn tape_create_restore(configuration: &configuration::Configuration, tape_create_restore_request: models::TapeCreateRestoreRequest) -> Result<models::TapeCreateRestoreResponse, Error<TapeCreateRestoreError>> {
77 let p_body_tape_create_restore_request = tape_create_restore_request;
79
80 let uri_str = format!("{}/tape/restore", configuration.base_path);
81 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
82
83 if let Some(ref user_agent) = configuration.user_agent {
84 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
85 }
86 if let Some(ref apikey) = configuration.api_key {
87 let key = apikey.key.clone();
88 let value = match apikey.prefix {
89 Some(ref prefix) => format!("{} {}", prefix, key),
90 None => key,
91 };
92 req_builder = req_builder.header("Authorization", value);
93 };
94 if let Some(ref apikey) = configuration.api_key {
95 let key = apikey.key.clone();
96 let value = match apikey.prefix {
97 Some(ref prefix) => format!("{} {}", prefix, key),
98 None => key,
99 };
100 req_builder = req_builder.header("CSRFPreventionToken", value);
101 };
102 req_builder = req_builder.json(&p_body_tape_create_restore_request);
103
104 let req = req_builder.build()?;
105 let resp = configuration.client.execute(req).await?;
106
107 let status = resp.status();
108 let content_type = resp
109 .headers()
110 .get("content-type")
111 .and_then(|v| v.to_str().ok())
112 .unwrap_or("application/octet-stream");
113 let content_type = super::ContentType::from(content_type);
114
115 if !status.is_client_error() && !status.is_server_error() {
116 let content = resp.text().await?;
117 match content_type {
118 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
119 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::TapeCreateRestoreResponse`"))),
120 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::TapeCreateRestoreResponse`")))),
121 }
122 } else {
123 let content = resp.text().await?;
124 let entity: Option<TapeCreateRestoreError> = serde_json::from_str(&content).ok();
125 Err(Error::ResponseError(ResponseContent { status, content, entity }))
126 }
127}
128
129pub async fn tape_get_scan_changers(configuration: &configuration::Configuration, ) -> Result<models::TapeGetScanChangersResponse, Error<TapeGetScanChangersError>> {
131
132 let uri_str = format!("{}/tape/scan-changers", configuration.base_path);
133 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
134
135 if let Some(ref user_agent) = configuration.user_agent {
136 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
137 }
138 if let Some(ref apikey) = configuration.api_key {
139 let key = apikey.key.clone();
140 let value = match apikey.prefix {
141 Some(ref prefix) => format!("{} {}", prefix, key),
142 None => key,
143 };
144 req_builder = req_builder.header("Authorization", value);
145 };
146 if let Some(ref apikey) = configuration.api_key {
147 let key = apikey.key.clone();
148 let value = match apikey.prefix {
149 Some(ref prefix) => format!("{} {}", prefix, key),
150 None => key,
151 };
152 req_builder = req_builder.header("CSRFPreventionToken", value);
153 };
154
155 let req = req_builder.build()?;
156 let resp = configuration.client.execute(req).await?;
157
158 let status = resp.status();
159 let content_type = resp
160 .headers()
161 .get("content-type")
162 .and_then(|v| v.to_str().ok())
163 .unwrap_or("application/octet-stream");
164 let content_type = super::ContentType::from(content_type);
165
166 if !status.is_client_error() && !status.is_server_error() {
167 let content = resp.text().await?;
168 match content_type {
169 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
170 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::TapeGetScanChangersResponse`"))),
171 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::TapeGetScanChangersResponse`")))),
172 }
173 } else {
174 let content = resp.text().await?;
175 let entity: Option<TapeGetScanChangersError> = serde_json::from_str(&content).ok();
176 Err(Error::ResponseError(ResponseContent { status, content, entity }))
177 }
178}
179
180pub async fn tape_get_scan_drives(configuration: &configuration::Configuration, ) -> Result<models::TapeGetScanDrivesResponse, Error<TapeGetScanDrivesError>> {
182
183 let uri_str = format!("{}/tape/scan-drives", configuration.base_path);
184 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
185
186 if let Some(ref user_agent) = configuration.user_agent {
187 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
188 }
189 if let Some(ref apikey) = configuration.api_key {
190 let key = apikey.key.clone();
191 let value = match apikey.prefix {
192 Some(ref prefix) => format!("{} {}", prefix, key),
193 None => key,
194 };
195 req_builder = req_builder.header("Authorization", value);
196 };
197 if let Some(ref apikey) = configuration.api_key {
198 let key = apikey.key.clone();
199 let value = match apikey.prefix {
200 Some(ref prefix) => format!("{} {}", prefix, key),
201 None => key,
202 };
203 req_builder = req_builder.header("CSRFPreventionToken", value);
204 };
205
206 let req = req_builder.build()?;
207 let resp = configuration.client.execute(req).await?;
208
209 let status = resp.status();
210 let content_type = resp
211 .headers()
212 .get("content-type")
213 .and_then(|v| v.to_str().ok())
214 .unwrap_or("application/octet-stream");
215 let content_type = super::ContentType::from(content_type);
216
217 if !status.is_client_error() && !status.is_server_error() {
218 let content = resp.text().await?;
219 match content_type {
220 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
221 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::TapeGetScanDrivesResponse`"))),
222 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::TapeGetScanDrivesResponse`")))),
223 }
224 } else {
225 let content = resp.text().await?;
226 let entity: Option<TapeGetScanDrivesError> = serde_json::from_str(&content).ok();
227 Err(Error::ResponseError(ResponseContent { status, content, entity }))
228 }
229}
230
231pub async fn tape_get_tape(configuration: &configuration::Configuration, ) -> Result<models::TapeGetTapeResponse, Error<TapeGetTapeError>> {
233
234 let uri_str = format!("{}/tape", configuration.base_path);
235 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
236
237 if let Some(ref user_agent) = configuration.user_agent {
238 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
239 }
240 if let Some(ref apikey) = configuration.api_key {
241 let key = apikey.key.clone();
242 let value = match apikey.prefix {
243 Some(ref prefix) => format!("{} {}", prefix, key),
244 None => key,
245 };
246 req_builder = req_builder.header("Authorization", value);
247 };
248 if let Some(ref apikey) = configuration.api_key {
249 let key = apikey.key.clone();
250 let value = match apikey.prefix {
251 Some(ref prefix) => format!("{} {}", prefix, key),
252 None => key,
253 };
254 req_builder = req_builder.header("CSRFPreventionToken", value);
255 };
256
257 let req = req_builder.build()?;
258 let resp = configuration.client.execute(req).await?;
259
260 let status = resp.status();
261 let content_type = resp
262 .headers()
263 .get("content-type")
264 .and_then(|v| v.to_str().ok())
265 .unwrap_or("application/octet-stream");
266 let content_type = super::ContentType::from(content_type);
267
268 if !status.is_client_error() && !status.is_server_error() {
269 let content = resp.text().await?;
270 match content_type {
271 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
272 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::TapeGetTapeResponse`"))),
273 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::TapeGetTapeResponse`")))),
274 }
275 } else {
276 let content = resp.text().await?;
277 let entity: Option<TapeGetTapeError> = serde_json::from_str(&content).ok();
278 Err(Error::ResponseError(ResponseContent { status, content, entity }))
279 }
280}
281