1use reqwest;
13use serde::{Deserialize, Serialize};
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration};
16
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum AddUserToGroupError {
22 Status400(),
23 Status401(),
24 Status403(),
25 Status404(),
26 UnknownValue(serde_json::Value),
27}
28
29#[derive(Debug, Clone, Serialize, Deserialize)]
31#[serde(untagged)]
32pub enum BulkGetGroupsError {
33 Status400(),
34 Status401(),
35 Status403(),
36 UnknownValue(serde_json::Value),
37}
38
39#[derive(Debug, Clone, Serialize, Deserialize)]
41#[serde(untagged)]
42pub enum CreateGroupError {
43 Status400(),
44 Status401(),
45 Status403(),
46 UnknownValue(serde_json::Value),
47}
48
49#[derive(Debug, Clone, Serialize, Deserialize)]
51#[serde(untagged)]
52pub enum FindGroupsError {
53 UnknownValue(serde_json::Value),
54}
55
56#[derive(Debug, Clone, Serialize, Deserialize)]
58#[serde(untagged)]
59pub enum GetGroupError {
60 Status400(),
61 Status401(),
62 Status403(),
63 Status404(),
64 UnknownValue(serde_json::Value),
65}
66
67#[derive(Debug, Clone, Serialize, Deserialize)]
69#[serde(untagged)]
70pub enum GetUsersFromGroupError {
71 Status400(),
72 Status401(),
73 Status403(),
74 Status404(),
75 UnknownValue(serde_json::Value),
76}
77
78#[derive(Debug, Clone, Serialize, Deserialize)]
80#[serde(untagged)]
81pub enum RemoveGroupError {
82 Status400(),
83 Status401(),
84 Status403(),
85 Status404(),
86 UnknownValue(serde_json::Value),
87}
88
89#[derive(Debug, Clone, Serialize, Deserialize)]
91#[serde(untagged)]
92pub enum RemoveUserFromGroupError {
93 Status400(),
94 Status401(),
95 Status403(),
96 Status404(),
97 UnknownValue(serde_json::Value),
98}
99
100
101pub async fn add_user_to_group(configuration: &configuration::Configuration, groupname: &str, update_user_to_group_bean: models::UpdateUserToGroupBean) -> Result<models::Group, Error<AddUserToGroupError>> {
103 let p_groupname = groupname;
105 let p_update_user_to_group_bean = update_user_to_group_bean;
106
107 let uri_str = format!("{}/rest/api/2/group/user", configuration.base_path);
108 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
109
110 req_builder = req_builder.query(&[("groupname", &p_groupname.to_string())]);
111 if let Some(ref user_agent) = configuration.user_agent {
112 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
113 }
114 if let Some(ref token) = configuration.oauth_access_token {
115 req_builder = req_builder.bearer_auth(token.to_owned());
116 };
117 if let Some(ref auth_conf) = configuration.basic_auth {
118 req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
119 };
120 req_builder = req_builder.json(&p_update_user_to_group_bean);
121
122 let req = req_builder.build()?;
123 let resp = configuration.client.execute(req).await?;
124
125 let status = resp.status();
126
127 if !status.is_client_error() && !status.is_server_error() {
128 let content = resp.text().await?;
129 serde_json::from_str(&content).map_err(Error::from)
130 } else {
131 let content = resp.text().await?;
132 let entity: Option<AddUserToGroupError> = serde_json::from_str(&content).ok();
133 Err(Error::ResponseError(ResponseContent { status, content, entity }))
134 }
135}
136
137pub async fn bulk_get_groups(configuration: &configuration::Configuration, start_at: Option<i64>, max_results: Option<i32>, group_id: Option<Vec<String>>, group_name: Option<Vec<String>>) -> Result<models::PageBeanGroupDetails, Error<BulkGetGroupsError>> {
139 let p_start_at = start_at;
141 let p_max_results = max_results;
142 let p_group_id = group_id;
143 let p_group_name = group_name;
144
145 let uri_str = format!("{}/rest/api/2/group/bulk", configuration.base_path);
146 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
147
148 if let Some(ref param_value) = p_start_at {
149 req_builder = req_builder.query(&[("startAt", ¶m_value.to_string())]);
150 }
151 if let Some(ref param_value) = p_max_results {
152 req_builder = req_builder.query(&[("maxResults", ¶m_value.to_string())]);
153 }
154 if let Some(ref param_value) = p_group_id {
155 req_builder = match "multi" {
156 "multi" => req_builder.query(¶m_value.into_iter().map(|p| ("groupId".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
157 _ => req_builder.query(&[("groupId", ¶m_value.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
158 };
159 }
160 if let Some(ref param_value) = p_group_name {
161 req_builder = match "multi" {
162 "multi" => req_builder.query(¶m_value.into_iter().map(|p| ("groupName".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
163 _ => req_builder.query(&[("groupName", ¶m_value.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
164 };
165 }
166 if let Some(ref user_agent) = configuration.user_agent {
167 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
168 }
169 if let Some(ref token) = configuration.oauth_access_token {
170 req_builder = req_builder.bearer_auth(token.to_owned());
171 };
172 if let Some(ref auth_conf) = configuration.basic_auth {
173 req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
174 };
175
176 let req = req_builder.build()?;
177 let resp = configuration.client.execute(req).await?;
178
179 let status = resp.status();
180
181 if !status.is_client_error() && !status.is_server_error() {
182 let content = resp.text().await?;
183 serde_json::from_str(&content).map_err(Error::from)
184 } else {
185 let content = resp.text().await?;
186 let entity: Option<BulkGetGroupsError> = serde_json::from_str(&content).ok();
187 Err(Error::ResponseError(ResponseContent { status, content, entity }))
188 }
189}
190
191pub async fn create_group(configuration: &configuration::Configuration, add_group_bean: models::AddGroupBean) -> Result<models::Group, Error<CreateGroupError>> {
193 let p_add_group_bean = add_group_bean;
195
196 let uri_str = format!("{}/rest/api/2/group", configuration.base_path);
197 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
198
199 if let Some(ref user_agent) = configuration.user_agent {
200 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
201 }
202 if let Some(ref token) = configuration.oauth_access_token {
203 req_builder = req_builder.bearer_auth(token.to_owned());
204 };
205 if let Some(ref auth_conf) = configuration.basic_auth {
206 req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
207 };
208 req_builder = req_builder.json(&p_add_group_bean);
209
210 let req = req_builder.build()?;
211 let resp = configuration.client.execute(req).await?;
212
213 let status = resp.status();
214
215 if !status.is_client_error() && !status.is_server_error() {
216 let content = resp.text().await?;
217 serde_json::from_str(&content).map_err(Error::from)
218 } else {
219 let content = resp.text().await?;
220 let entity: Option<CreateGroupError> = serde_json::from_str(&content).ok();
221 Err(Error::ResponseError(ResponseContent { status, content, entity }))
222 }
223}
224
225pub async fn find_groups(configuration: &configuration::Configuration, account_id: Option<&str>, query: Option<&str>, exclude: Option<Vec<String>>, max_results: Option<i32>, user_name: Option<&str>) -> Result<models::FoundGroups, Error<FindGroupsError>> {
227 let p_account_id = account_id;
229 let p_query = query;
230 let p_exclude = exclude;
231 let p_max_results = max_results;
232 let p_user_name = user_name;
233
234 let uri_str = format!("{}/rest/api/2/groups/picker", configuration.base_path);
235 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
236
237 if let Some(ref param_value) = p_account_id {
238 req_builder = req_builder.query(&[("accountId", ¶m_value.to_string())]);
239 }
240 if let Some(ref param_value) = p_query {
241 req_builder = req_builder.query(&[("query", ¶m_value.to_string())]);
242 }
243 if let Some(ref param_value) = p_exclude {
244 req_builder = match "multi" {
245 "multi" => req_builder.query(¶m_value.into_iter().map(|p| ("exclude".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
246 _ => req_builder.query(&[("exclude", ¶m_value.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
247 };
248 }
249 if let Some(ref param_value) = p_max_results {
250 req_builder = req_builder.query(&[("maxResults", ¶m_value.to_string())]);
251 }
252 if let Some(ref param_value) = p_user_name {
253 req_builder = req_builder.query(&[("userName", ¶m_value.to_string())]);
254 }
255 if let Some(ref user_agent) = configuration.user_agent {
256 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
257 }
258 if let Some(ref token) = configuration.oauth_access_token {
259 req_builder = req_builder.bearer_auth(token.to_owned());
260 };
261 if let Some(ref auth_conf) = configuration.basic_auth {
262 req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
263 };
264
265 let req = req_builder.build()?;
266 let resp = configuration.client.execute(req).await?;
267
268 let status = resp.status();
269
270 if !status.is_client_error() && !status.is_server_error() {
271 let content = resp.text().await?;
272 serde_json::from_str(&content).map_err(Error::from)
273 } else {
274 let content = resp.text().await?;
275 let entity: Option<FindGroupsError> = serde_json::from_str(&content).ok();
276 Err(Error::ResponseError(ResponseContent { status, content, entity }))
277 }
278}
279
280pub async fn get_group(configuration: &configuration::Configuration, groupname: &str, expand: Option<&str>) -> Result<models::Group, Error<GetGroupError>> {
282 let p_groupname = groupname;
284 let p_expand = expand;
285
286 let uri_str = format!("{}/rest/api/2/group", configuration.base_path);
287 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
288
289 req_builder = req_builder.query(&[("groupname", &p_groupname.to_string())]);
290 if let Some(ref param_value) = p_expand {
291 req_builder = req_builder.query(&[("expand", ¶m_value.to_string())]);
292 }
293 if let Some(ref user_agent) = configuration.user_agent {
294 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
295 }
296 if let Some(ref token) = configuration.oauth_access_token {
297 req_builder = req_builder.bearer_auth(token.to_owned());
298 };
299 if let Some(ref auth_conf) = configuration.basic_auth {
300 req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
301 };
302
303 let req = req_builder.build()?;
304 let resp = configuration.client.execute(req).await?;
305
306 let status = resp.status();
307
308 if !status.is_client_error() && !status.is_server_error() {
309 let content = resp.text().await?;
310 serde_json::from_str(&content).map_err(Error::from)
311 } else {
312 let content = resp.text().await?;
313 let entity: Option<GetGroupError> = serde_json::from_str(&content).ok();
314 Err(Error::ResponseError(ResponseContent { status, content, entity }))
315 }
316}
317
318pub async fn get_users_from_group(configuration: &configuration::Configuration, groupname: &str, include_inactive_users: Option<bool>, start_at: Option<i64>, max_results: Option<i32>) -> Result<models::PageBeanUserDetails, Error<GetUsersFromGroupError>> {
320 let p_groupname = groupname;
322 let p_include_inactive_users = include_inactive_users;
323 let p_start_at = start_at;
324 let p_max_results = max_results;
325
326 let uri_str = format!("{}/rest/api/2/group/member", configuration.base_path);
327 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
328
329 req_builder = req_builder.query(&[("groupname", &p_groupname.to_string())]);
330 if let Some(ref param_value) = p_include_inactive_users {
331 req_builder = req_builder.query(&[("includeInactiveUsers", ¶m_value.to_string())]);
332 }
333 if let Some(ref param_value) = p_start_at {
334 req_builder = req_builder.query(&[("startAt", ¶m_value.to_string())]);
335 }
336 if let Some(ref param_value) = p_max_results {
337 req_builder = req_builder.query(&[("maxResults", ¶m_value.to_string())]);
338 }
339 if let Some(ref user_agent) = configuration.user_agent {
340 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
341 }
342 if let Some(ref token) = configuration.oauth_access_token {
343 req_builder = req_builder.bearer_auth(token.to_owned());
344 };
345 if let Some(ref auth_conf) = configuration.basic_auth {
346 req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
347 };
348
349 let req = req_builder.build()?;
350 let resp = configuration.client.execute(req).await?;
351
352 let status = resp.status();
353
354 if !status.is_client_error() && !status.is_server_error() {
355 let content = resp.text().await?;
356 serde_json::from_str(&content).map_err(Error::from)
357 } else {
358 let content = resp.text().await?;
359 let entity: Option<GetUsersFromGroupError> = serde_json::from_str(&content).ok();
360 Err(Error::ResponseError(ResponseContent { status, content, entity }))
361 }
362}
363
364pub async fn remove_group(configuration: &configuration::Configuration, groupname: &str, swap_group: Option<&str>) -> Result<(), Error<RemoveGroupError>> {
366 let p_groupname = groupname;
368 let p_swap_group = swap_group;
369
370 let uri_str = format!("{}/rest/api/2/group", configuration.base_path);
371 let mut req_builder = configuration.client.request(reqwest::Method::DELETE, &uri_str);
372
373 req_builder = req_builder.query(&[("groupname", &p_groupname.to_string())]);
374 if let Some(ref param_value) = p_swap_group {
375 req_builder = req_builder.query(&[("swapGroup", ¶m_value.to_string())]);
376 }
377 if let Some(ref user_agent) = configuration.user_agent {
378 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
379 }
380 if let Some(ref token) = configuration.oauth_access_token {
381 req_builder = req_builder.bearer_auth(token.to_owned());
382 };
383 if let Some(ref auth_conf) = configuration.basic_auth {
384 req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.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 Ok(())
394 } else {
395 let content = resp.text().await?;
396 let entity: Option<RemoveGroupError> = serde_json::from_str(&content).ok();
397 Err(Error::ResponseError(ResponseContent { status, content, entity }))
398 }
399}
400
401pub async fn remove_user_from_group(configuration: &configuration::Configuration, groupname: &str, account_id: &str, username: Option<&str>) -> Result<(), Error<RemoveUserFromGroupError>> {
403 let p_groupname = groupname;
405 let p_account_id = account_id;
406 let p_username = username;
407
408 let uri_str = format!("{}/rest/api/2/group/user", configuration.base_path);
409 let mut req_builder = configuration.client.request(reqwest::Method::DELETE, &uri_str);
410
411 req_builder = req_builder.query(&[("groupname", &p_groupname.to_string())]);
412 if let Some(ref param_value) = p_username {
413 req_builder = req_builder.query(&[("username", ¶m_value.to_string())]);
414 }
415 req_builder = req_builder.query(&[("accountId", &p_account_id.to_string())]);
416 if let Some(ref user_agent) = configuration.user_agent {
417 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
418 }
419 if let Some(ref token) = configuration.oauth_access_token {
420 req_builder = req_builder.bearer_auth(token.to_owned());
421 };
422 if let Some(ref auth_conf) = configuration.basic_auth {
423 req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
424 };
425
426 let req = req_builder.build()?;
427 let resp = configuration.client.execute(req).await?;
428
429 let status = resp.status();
430
431 if !status.is_client_error() && !status.is_server_error() {
432 Ok(())
433 } else {
434 let content = resp.text().await?;
435 let entity: Option<RemoveUserFromGroupError> = serde_json::from_str(&content).ok();
436 Err(Error::ResponseError(ResponseContent { status, content, entity }))
437 }
438}
439