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 TapeChangerCreateTransferError {
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 TapeChangerGetChangerError {
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 TapeChangerGetStatusError {
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 TapeChangerGetTapeChangerByNameError {
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_changer_create_transfer(configuration: &configuration::Configuration, name: &str, tape_changer_create_transfer_request: models::TapeChangerCreateTransferRequest) -> Result<models::TapeChangerCreateTransferResponse, Error<TapeChangerCreateTransferError>> {
77 let p_path_name = name;
79 let p_body_tape_changer_create_transfer_request = tape_changer_create_transfer_request;
80
81 let uri_str = format!("{}/tape/changer/{name}/transfer", configuration.base_path, name=crate::apis::urlencode(p_path_name));
82 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
83
84 if let Some(ref user_agent) = configuration.user_agent {
85 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
86 }
87 if let Some(ref apikey) = configuration.api_key {
88 let key = apikey.key.clone();
89 let value = match apikey.prefix {
90 Some(ref prefix) => format!("{} {}", prefix, key),
91 None => key,
92 };
93 req_builder = req_builder.header("Authorization", value);
94 };
95 if let Some(ref apikey) = configuration.api_key {
96 let key = apikey.key.clone();
97 let value = match apikey.prefix {
98 Some(ref prefix) => format!("{} {}", prefix, key),
99 None => key,
100 };
101 req_builder = req_builder.header("CSRFPreventionToken", value);
102 };
103 req_builder = req_builder.json(&p_body_tape_changer_create_transfer_request);
104
105 let req = req_builder.build()?;
106 let resp = configuration.client.execute(req).await?;
107
108 let status = resp.status();
109 let content_type = resp
110 .headers()
111 .get("content-type")
112 .and_then(|v| v.to_str().ok())
113 .unwrap_or("application/octet-stream");
114 let content_type = super::ContentType::from(content_type);
115
116 if !status.is_client_error() && !status.is_server_error() {
117 let content = resp.text().await?;
118 match content_type {
119 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
120 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::TapeChangerCreateTransferResponse`"))),
121 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::TapeChangerCreateTransferResponse`")))),
122 }
123 } else {
124 let content = resp.text().await?;
125 let entity: Option<TapeChangerCreateTransferError> = serde_json::from_str(&content).ok();
126 Err(Error::ResponseError(ResponseContent { status, content, entity }))
127 }
128}
129
130pub async fn tape_changer_get_changer(configuration: &configuration::Configuration, ) -> Result<models::TapeChangerGetChangerResponse, Error<TapeChangerGetChangerError>> {
132
133 let uri_str = format!("{}/tape/changer", configuration.base_path);
134 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
135
136 if let Some(ref user_agent) = configuration.user_agent {
137 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
138 }
139 if let Some(ref apikey) = configuration.api_key {
140 let key = apikey.key.clone();
141 let value = match apikey.prefix {
142 Some(ref prefix) => format!("{} {}", prefix, key),
143 None => key,
144 };
145 req_builder = req_builder.header("Authorization", value);
146 };
147 if let Some(ref apikey) = configuration.api_key {
148 let key = apikey.key.clone();
149 let value = match apikey.prefix {
150 Some(ref prefix) => format!("{} {}", prefix, key),
151 None => key,
152 };
153 req_builder = req_builder.header("CSRFPreventionToken", value);
154 };
155
156 let req = req_builder.build()?;
157 let resp = configuration.client.execute(req).await?;
158
159 let status = resp.status();
160 let content_type = resp
161 .headers()
162 .get("content-type")
163 .and_then(|v| v.to_str().ok())
164 .unwrap_or("application/octet-stream");
165 let content_type = super::ContentType::from(content_type);
166
167 if !status.is_client_error() && !status.is_server_error() {
168 let content = resp.text().await?;
169 match content_type {
170 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
171 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::TapeChangerGetChangerResponse`"))),
172 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::TapeChangerGetChangerResponse`")))),
173 }
174 } else {
175 let content = resp.text().await?;
176 let entity: Option<TapeChangerGetChangerError> = serde_json::from_str(&content).ok();
177 Err(Error::ResponseError(ResponseContent { status, content, entity }))
178 }
179}
180
181pub async fn tape_changer_get_status(configuration: &configuration::Configuration, name: &str, cache: Option<bool>) -> Result<models::TapeChangerGetStatusResponse, Error<TapeChangerGetStatusError>> {
183 let p_path_name = name;
185 let p_query_cache = cache;
186
187 let uri_str = format!("{}/tape/changer/{name}/status", configuration.base_path, name=crate::apis::urlencode(p_path_name));
188 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
189
190 if let Some(ref param_value) = p_query_cache {
191 req_builder = req_builder.query(&[("cache", ¶m_value.to_string())]);
192 }
193 if let Some(ref user_agent) = configuration.user_agent {
194 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
195 }
196 if let Some(ref apikey) = configuration.api_key {
197 let key = apikey.key.clone();
198 let value = match apikey.prefix {
199 Some(ref prefix) => format!("{} {}", prefix, key),
200 None => key,
201 };
202 req_builder = req_builder.header("Authorization", value);
203 };
204 if let Some(ref apikey) = configuration.api_key {
205 let key = apikey.key.clone();
206 let value = match apikey.prefix {
207 Some(ref prefix) => format!("{} {}", prefix, key),
208 None => key,
209 };
210 req_builder = req_builder.header("CSRFPreventionToken", value);
211 };
212
213 let req = req_builder.build()?;
214 let resp = configuration.client.execute(req).await?;
215
216 let status = resp.status();
217 let content_type = resp
218 .headers()
219 .get("content-type")
220 .and_then(|v| v.to_str().ok())
221 .unwrap_or("application/octet-stream");
222 let content_type = super::ContentType::from(content_type);
223
224 if !status.is_client_error() && !status.is_server_error() {
225 let content = resp.text().await?;
226 match content_type {
227 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
228 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::TapeChangerGetStatusResponse`"))),
229 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::TapeChangerGetStatusResponse`")))),
230 }
231 } else {
232 let content = resp.text().await?;
233 let entity: Option<TapeChangerGetStatusError> = serde_json::from_str(&content).ok();
234 Err(Error::ResponseError(ResponseContent { status, content, entity }))
235 }
236}
237
238pub async fn tape_changer_get_tape_changer_by_name(configuration: &configuration::Configuration, name: &str) -> Result<models::TapeChangerGetTapeChangerByNameResponse, Error<TapeChangerGetTapeChangerByNameError>> {
240 let p_path_name = name;
242
243 let uri_str = format!("{}/tape/changer/{name}", configuration.base_path, name=crate::apis::urlencode(p_path_name));
244 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
245
246 if let Some(ref user_agent) = configuration.user_agent {
247 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
248 }
249 if let Some(ref apikey) = configuration.api_key {
250 let key = apikey.key.clone();
251 let value = match apikey.prefix {
252 Some(ref prefix) => format!("{} {}", prefix, key),
253 None => key,
254 };
255 req_builder = req_builder.header("Authorization", value);
256 };
257 if let Some(ref apikey) = configuration.api_key {
258 let key = apikey.key.clone();
259 let value = match apikey.prefix {
260 Some(ref prefix) => format!("{} {}", prefix, key),
261 None => key,
262 };
263 req_builder = req_builder.header("CSRFPreventionToken", value);
264 };
265
266 let req = req_builder.build()?;
267 let resp = configuration.client.execute(req).await?;
268
269 let status = resp.status();
270 let content_type = resp
271 .headers()
272 .get("content-type")
273 .and_then(|v| v.to_str().ok())
274 .unwrap_or("application/octet-stream");
275 let content_type = super::ContentType::from(content_type);
276
277 if !status.is_client_error() && !status.is_server_error() {
278 let content = resp.text().await?;
279 match content_type {
280 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
281 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::TapeChangerGetTapeChangerByNameResponse`"))),
282 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::TapeChangerGetTapeChangerByNameResponse`")))),
283 }
284 } else {
285 let content = resp.text().await?;
286 let entity: Option<TapeChangerGetTapeChangerByNameError> = serde_json::from_str(&content).ok();
287 Err(Error::ResponseError(ResponseContent { status, content, entity }))
288 }
289}
290