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 ConfigEncryptionKeysCreateConfigEncryptionKeysByIdError {
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 ConfigEncryptionKeysCreateEncryptionKeysError {
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 ConfigEncryptionKeysDeleteEncryptionKeysError {
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 ConfigEncryptionKeysGetEncryptionKeysError {
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 config_encryption_keys_create_config_encryption_keys_by_id(configuration: &configuration::Configuration, id: &str, config_encryption_keys_create_config_encryption_keys_by_id_request: Option<models::ConfigEncryptionKeysCreateConfigEncryptionKeysByIdRequest>) -> Result<models::ConfigEncryptionKeysCreateConfigEncryptionKeysByIdResponse, Error<ConfigEncryptionKeysCreateConfigEncryptionKeysByIdError>> {
77 let p_path_id = id;
79 let p_body_config_encryption_keys_create_config_encryption_keys_by_id_request = config_encryption_keys_create_config_encryption_keys_by_id_request;
80
81 let uri_str = format!("{}/config/encryption-keys/{id}", configuration.base_path, id=crate::apis::urlencode(p_path_id));
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_config_encryption_keys_create_config_encryption_keys_by_id_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::ConfigEncryptionKeysCreateConfigEncryptionKeysByIdResponse`"))),
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::ConfigEncryptionKeysCreateConfigEncryptionKeysByIdResponse`")))),
122 }
123 } else {
124 let content = resp.text().await?;
125 let entity: Option<ConfigEncryptionKeysCreateConfigEncryptionKeysByIdError> = serde_json::from_str(&content).ok();
126 Err(Error::ResponseError(ResponseContent { status, content, entity }))
127 }
128}
129
130pub async fn config_encryption_keys_create_encryption_keys(configuration: &configuration::Configuration, config_encryption_keys_create_encryption_keys_request: models::ConfigEncryptionKeysCreateEncryptionKeysRequest) -> Result<models::ConfigEncryptionKeysCreateEncryptionKeysResponse, Error<ConfigEncryptionKeysCreateEncryptionKeysError>> {
132 let p_body_config_encryption_keys_create_encryption_keys_request = config_encryption_keys_create_encryption_keys_request;
134
135 let uri_str = format!("{}/config/encryption-keys", configuration.base_path);
136 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
137
138 if let Some(ref user_agent) = configuration.user_agent {
139 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
140 }
141 if let Some(ref apikey) = configuration.api_key {
142 let key = apikey.key.clone();
143 let value = match apikey.prefix {
144 Some(ref prefix) => format!("{} {}", prefix, key),
145 None => key,
146 };
147 req_builder = req_builder.header("Authorization", value);
148 };
149 if let Some(ref apikey) = configuration.api_key {
150 let key = apikey.key.clone();
151 let value = match apikey.prefix {
152 Some(ref prefix) => format!("{} {}", prefix, key),
153 None => key,
154 };
155 req_builder = req_builder.header("CSRFPreventionToken", value);
156 };
157 req_builder = req_builder.json(&p_body_config_encryption_keys_create_encryption_keys_request);
158
159 let req = req_builder.build()?;
160 let resp = configuration.client.execute(req).await?;
161
162 let status = resp.status();
163 let content_type = resp
164 .headers()
165 .get("content-type")
166 .and_then(|v| v.to_str().ok())
167 .unwrap_or("application/octet-stream");
168 let content_type = super::ContentType::from(content_type);
169
170 if !status.is_client_error() && !status.is_server_error() {
171 let content = resp.text().await?;
172 match content_type {
173 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
174 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::ConfigEncryptionKeysCreateEncryptionKeysResponse`"))),
175 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::ConfigEncryptionKeysCreateEncryptionKeysResponse`")))),
176 }
177 } else {
178 let content = resp.text().await?;
179 let entity: Option<ConfigEncryptionKeysCreateEncryptionKeysError> = serde_json::from_str(&content).ok();
180 Err(Error::ResponseError(ResponseContent { status, content, entity }))
181 }
182}
183
184pub async fn config_encryption_keys_delete_encryption_keys(configuration: &configuration::Configuration, id: &str, digest: Option<&str>) -> Result<models::ConfigEncryptionKeysDeleteEncryptionKeysResponse, Error<ConfigEncryptionKeysDeleteEncryptionKeysError>> {
186 let p_path_id = id;
188 let p_query_digest = digest;
189
190 let uri_str = format!("{}/config/encryption-keys/{id}", configuration.base_path, id=crate::apis::urlencode(p_path_id));
191 let mut req_builder = configuration.client.request(reqwest::Method::DELETE, &uri_str);
192
193 if let Some(ref param_value) = p_query_digest {
194 req_builder = req_builder.query(&[("digest", ¶m_value.to_string())]);
195 }
196 if let Some(ref user_agent) = configuration.user_agent {
197 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
198 }
199 if let Some(ref apikey) = configuration.api_key {
200 let key = apikey.key.clone();
201 let value = match apikey.prefix {
202 Some(ref prefix) => format!("{} {}", prefix, key),
203 None => key,
204 };
205 req_builder = req_builder.header("Authorization", value);
206 };
207 if let Some(ref apikey) = configuration.api_key {
208 let key = apikey.key.clone();
209 let value = match apikey.prefix {
210 Some(ref prefix) => format!("{} {}", prefix, key),
211 None => key,
212 };
213 req_builder = req_builder.header("CSRFPreventionToken", value);
214 };
215
216 let req = req_builder.build()?;
217 let resp = configuration.client.execute(req).await?;
218
219 let status = resp.status();
220 let content_type = resp
221 .headers()
222 .get("content-type")
223 .and_then(|v| v.to_str().ok())
224 .unwrap_or("application/octet-stream");
225 let content_type = super::ContentType::from(content_type);
226
227 if !status.is_client_error() && !status.is_server_error() {
228 let content = resp.text().await?;
229 match content_type {
230 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
231 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::ConfigEncryptionKeysDeleteEncryptionKeysResponse`"))),
232 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::ConfigEncryptionKeysDeleteEncryptionKeysResponse`")))),
233 }
234 } else {
235 let content = resp.text().await?;
236 let entity: Option<ConfigEncryptionKeysDeleteEncryptionKeysError> = serde_json::from_str(&content).ok();
237 Err(Error::ResponseError(ResponseContent { status, content, entity }))
238 }
239}
240
241pub async fn config_encryption_keys_get_encryption_keys(configuration: &configuration::Configuration, include_archived: Option<bool>) -> Result<models::ConfigEncryptionKeysGetEncryptionKeysResponse, Error<ConfigEncryptionKeysGetEncryptionKeysError>> {
243 let p_query_include_archived = include_archived;
245
246 let uri_str = format!("{}/config/encryption-keys", configuration.base_path);
247 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
248
249 if let Some(ref param_value) = p_query_include_archived {
250 req_builder = req_builder.query(&[("include-archived", ¶m_value.to_string())]);
251 }
252 if let Some(ref user_agent) = configuration.user_agent {
253 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
254 }
255 if let Some(ref apikey) = configuration.api_key {
256 let key = apikey.key.clone();
257 let value = match apikey.prefix {
258 Some(ref prefix) => format!("{} {}", prefix, key),
259 None => key,
260 };
261 req_builder = req_builder.header("Authorization", value);
262 };
263 if let Some(ref apikey) = configuration.api_key {
264 let key = apikey.key.clone();
265 let value = match apikey.prefix {
266 Some(ref prefix) => format!("{} {}", prefix, key),
267 None => key,
268 };
269 req_builder = req_builder.header("CSRFPreventionToken", value);
270 };
271
272 let req = req_builder.build()?;
273 let resp = configuration.client.execute(req).await?;
274
275 let status = resp.status();
276 let content_type = resp
277 .headers()
278 .get("content-type")
279 .and_then(|v| v.to_str().ok())
280 .unwrap_or("application/octet-stream");
281 let content_type = super::ContentType::from(content_type);
282
283 if !status.is_client_error() && !status.is_server_error() {
284 let content = resp.text().await?;
285 match content_type {
286 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
287 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::ConfigEncryptionKeysGetEncryptionKeysResponse`"))),
288 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::ConfigEncryptionKeysGetEncryptionKeysResponse`")))),
289 }
290 } else {
291 let content = resp.text().await?;
292 let entity: Option<ConfigEncryptionKeysGetEncryptionKeysError> = serde_json::from_str(&content).ok();
293 Err(Error::ResponseError(ResponseContent { status, content, entity }))
294 }
295}
296