1use reqwest;
13use serde::{Deserialize, Serialize, de::Error as _};
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration, ContentType};
16
17#[derive(Clone, Debug)]
19pub struct CreateUserGroupParams {
20 pub x_request_id: Option<String>,
22 pub usergroup: Option<models::UserGroup>
23}
24
25#[derive(Clone, Debug)]
27pub struct DeleteUserGroupParams {
28 pub group_id: i32,
29 pub x_request_id: Option<String>
31}
32
33#[derive(Clone, Debug)]
35pub struct GetUserGroupParams {
36 pub group_id: i64,
38 pub x_request_id: Option<String>
40}
41
42#[derive(Clone, Debug)]
44pub struct ListUserGroupsParams {
45 pub x_request_id: Option<String>,
47 pub page: Option<i64>,
49 pub page_size: Option<i64>,
51 pub ldap_group_dn: Option<String>,
53 pub group_name: Option<String>
55}
56
57#[derive(Clone, Debug)]
59pub struct SearchUserGroupsParams {
60 pub groupname: String,
62 pub x_request_id: Option<String>,
64 pub page: Option<i64>,
66 pub page_size: Option<i64>
68}
69
70#[derive(Clone, Debug)]
72pub struct UpdateUserGroupParams {
73 pub group_id: i64,
75 pub x_request_id: Option<String>,
77 pub usergroup: Option<models::UserGroup>
78}
79
80
81#[derive(Debug, Clone, Serialize, Deserialize)]
83#[serde(untagged)]
84pub enum CreateUserGroupError {
85 Status400(models::Errors),
86 Status401(models::Errors),
87 Status403(models::Errors),
88 Status409(models::Errors),
89 Status500(models::Errors),
90 UnknownValue(serde_json::Value),
91}
92
93#[derive(Debug, Clone, Serialize, Deserialize)]
95#[serde(untagged)]
96pub enum DeleteUserGroupError {
97 Status400(models::Errors),
98 Status401(models::Errors),
99 Status403(models::Errors),
100 Status500(models::Errors),
101 UnknownValue(serde_json::Value),
102}
103
104#[derive(Debug, Clone, Serialize, Deserialize)]
106#[serde(untagged)]
107pub enum GetUserGroupError {
108 Status400(models::Errors),
109 Status401(models::Errors),
110 Status403(models::Errors),
111 Status404(models::Errors),
112 Status500(models::Errors),
113 UnknownValue(serde_json::Value),
114}
115
116#[derive(Debug, Clone, Serialize, Deserialize)]
118#[serde(untagged)]
119pub enum ListUserGroupsError {
120 Status401(models::Errors),
121 Status403(models::Errors),
122 Status500(models::Errors),
123 UnknownValue(serde_json::Value),
124}
125
126#[derive(Debug, Clone, Serialize, Deserialize)]
128#[serde(untagged)]
129pub enum SearchUserGroupsError {
130 Status401(models::Errors),
131 Status500(models::Errors),
132 UnknownValue(serde_json::Value),
133}
134
135#[derive(Debug, Clone, Serialize, Deserialize)]
137#[serde(untagged)]
138pub enum UpdateUserGroupError {
139 Status400(models::Errors),
140 Status401(models::Errors),
141 Status403(models::Errors),
142 Status404(models::Errors),
143 Status500(models::Errors),
144 UnknownValue(serde_json::Value),
145}
146
147
148pub async fn create_user_group(configuration: &configuration::Configuration, params: CreateUserGroupParams) -> Result<(), Error<CreateUserGroupError>> {
150
151 let uri_str = format!("{}/usergroups", configuration.base_path);
152 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
153
154 if let Some(ref user_agent) = configuration.user_agent {
155 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
156 }
157 if let Some(param_value) = params.x_request_id {
158 req_builder = req_builder.header("X-Request-Id", param_value.to_string());
159 }
160 if let Some(ref auth_conf) = configuration.basic_auth {
161 req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
162 };
163 req_builder = req_builder.json(¶ms.usergroup);
164
165 let req = req_builder.build()?;
166 let resp = configuration.client.execute(req).await?;
167
168 let status = resp.status();
169
170 if !status.is_client_error() && !status.is_server_error() {
171 Ok(())
172 } else {
173 let content = resp.text().await?;
174 let entity: Option<CreateUserGroupError> = serde_json::from_str(&content).ok();
175 Err(Error::ResponseError(ResponseContent { status, content, entity }))
176 }
177}
178
179pub async fn delete_user_group(configuration: &configuration::Configuration, params: DeleteUserGroupParams) -> Result<(), Error<DeleteUserGroupError>> {
181
182 let uri_str = format!("{}/usergroups/{group_id}", configuration.base_path, group_id=params.group_id);
183 let mut req_builder = configuration.client.request(reqwest::Method::DELETE, &uri_str);
184
185 if let Some(ref user_agent) = configuration.user_agent {
186 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
187 }
188 if let Some(param_value) = params.x_request_id {
189 req_builder = req_builder.header("X-Request-Id", param_value.to_string());
190 }
191 if let Some(ref auth_conf) = configuration.basic_auth {
192 req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
193 };
194
195 let req = req_builder.build()?;
196 let resp = configuration.client.execute(req).await?;
197
198 let status = resp.status();
199
200 if !status.is_client_error() && !status.is_server_error() {
201 Ok(())
202 } else {
203 let content = resp.text().await?;
204 let entity: Option<DeleteUserGroupError> = serde_json::from_str(&content).ok();
205 Err(Error::ResponseError(ResponseContent { status, content, entity }))
206 }
207}
208
209pub async fn get_user_group(configuration: &configuration::Configuration, params: GetUserGroupParams) -> Result<models::UserGroup, Error<GetUserGroupError>> {
211
212 let uri_str = format!("{}/usergroups/{group_id}", configuration.base_path, group_id=params.group_id);
213 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
214
215 if let Some(ref user_agent) = configuration.user_agent {
216 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
217 }
218 if let Some(param_value) = params.x_request_id {
219 req_builder = req_builder.header("X-Request-Id", param_value.to_string());
220 }
221 if let Some(ref auth_conf) = configuration.basic_auth {
222 req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
223 };
224
225 let req = req_builder.build()?;
226 let resp = configuration.client.execute(req).await?;
227
228 let status = resp.status();
229 let content_type = resp
230 .headers()
231 .get("content-type")
232 .and_then(|v| v.to_str().ok())
233 .unwrap_or("application/octet-stream");
234 let content_type = super::ContentType::from(content_type);
235
236 if !status.is_client_error() && !status.is_server_error() {
237 let content = resp.text().await?;
238 match content_type {
239 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
240 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::UserGroup`"))),
241 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::UserGroup`")))),
242 }
243 } else {
244 let content = resp.text().await?;
245 let entity: Option<GetUserGroupError> = serde_json::from_str(&content).ok();
246 Err(Error::ResponseError(ResponseContent { status, content, entity }))
247 }
248}
249
250pub async fn list_user_groups(configuration: &configuration::Configuration, params: ListUserGroupsParams) -> Result<Vec<models::UserGroup>, Error<ListUserGroupsError>> {
252
253 let uri_str = format!("{}/usergroups", configuration.base_path);
254 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
255
256 if let Some(ref param_value) = params.page {
257 req_builder = req_builder.query(&[("page", ¶m_value.to_string())]);
258 }
259 if let Some(ref param_value) = params.page_size {
260 req_builder = req_builder.query(&[("page_size", ¶m_value.to_string())]);
261 }
262 if let Some(ref param_value) = params.ldap_group_dn {
263 req_builder = req_builder.query(&[("ldap_group_dn", ¶m_value.to_string())]);
264 }
265 if let Some(ref param_value) = params.group_name {
266 req_builder = req_builder.query(&[("group_name", ¶m_value.to_string())]);
267 }
268 if let Some(ref user_agent) = configuration.user_agent {
269 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
270 }
271 if let Some(param_value) = params.x_request_id {
272 req_builder = req_builder.header("X-Request-Id", param_value.to_string());
273 }
274 if let Some(ref auth_conf) = configuration.basic_auth {
275 req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
276 };
277
278 let req = req_builder.build()?;
279 let resp = configuration.client.execute(req).await?;
280
281 let status = resp.status();
282 let content_type = resp
283 .headers()
284 .get("content-type")
285 .and_then(|v| v.to_str().ok())
286 .unwrap_or("application/octet-stream");
287 let content_type = super::ContentType::from(content_type);
288
289 if !status.is_client_error() && !status.is_server_error() {
290 let content = resp.text().await?;
291 match content_type {
292 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
293 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `Vec<models::UserGroup>`"))),
294 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `Vec<models::UserGroup>`")))),
295 }
296 } else {
297 let content = resp.text().await?;
298 let entity: Option<ListUserGroupsError> = serde_json::from_str(&content).ok();
299 Err(Error::ResponseError(ResponseContent { status, content, entity }))
300 }
301}
302
303pub async fn search_user_groups(configuration: &configuration::Configuration, params: SearchUserGroupsParams) -> Result<Vec<models::UserGroupSearchItem>, Error<SearchUserGroupsError>> {
305
306 let uri_str = format!("{}/usergroups/search", configuration.base_path);
307 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
308
309 if let Some(ref param_value) = params.page {
310 req_builder = req_builder.query(&[("page", ¶m_value.to_string())]);
311 }
312 if let Some(ref param_value) = params.page_size {
313 req_builder = req_builder.query(&[("page_size", ¶m_value.to_string())]);
314 }
315 req_builder = req_builder.query(&[("groupname", ¶ms.groupname.to_string())]);
316 if let Some(ref user_agent) = configuration.user_agent {
317 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
318 }
319 if let Some(param_value) = params.x_request_id {
320 req_builder = req_builder.header("X-Request-Id", param_value.to_string());
321 }
322 if let Some(ref auth_conf) = configuration.basic_auth {
323 req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
324 };
325
326 let req = req_builder.build()?;
327 let resp = configuration.client.execute(req).await?;
328
329 let status = resp.status();
330 let content_type = resp
331 .headers()
332 .get("content-type")
333 .and_then(|v| v.to_str().ok())
334 .unwrap_or("application/octet-stream");
335 let content_type = super::ContentType::from(content_type);
336
337 if !status.is_client_error() && !status.is_server_error() {
338 let content = resp.text().await?;
339 match content_type {
340 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
341 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `Vec<models::UserGroupSearchItem>`"))),
342 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `Vec<models::UserGroupSearchItem>`")))),
343 }
344 } else {
345 let content = resp.text().await?;
346 let entity: Option<SearchUserGroupsError> = serde_json::from_str(&content).ok();
347 Err(Error::ResponseError(ResponseContent { status, content, entity }))
348 }
349}
350
351pub async fn update_user_group(configuration: &configuration::Configuration, params: UpdateUserGroupParams) -> Result<(), Error<UpdateUserGroupError>> {
353
354 let uri_str = format!("{}/usergroups/{group_id}", configuration.base_path, group_id=params.group_id);
355 let mut req_builder = configuration.client.request(reqwest::Method::PUT, &uri_str);
356
357 if let Some(ref user_agent) = configuration.user_agent {
358 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
359 }
360 if let Some(param_value) = params.x_request_id {
361 req_builder = req_builder.header("X-Request-Id", param_value.to_string());
362 }
363 if let Some(ref auth_conf) = configuration.basic_auth {
364 req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
365 };
366 req_builder = req_builder.json(¶ms.usergroup);
367
368 let req = req_builder.build()?;
369 let resp = configuration.client.execute(req).await?;
370
371 let status = resp.status();
372
373 if !status.is_client_error() && !status.is_server_error() {
374 Ok(())
375 } else {
376 let content = resp.text().await?;
377 let entity: Option<UpdateUserGroupError> = serde_json::from_str(&content).ok();
378 Err(Error::ResponseError(ResponseContent { status, content, entity }))
379 }
380}
381