fastly_api/apis/
iam_user_groups_api.rs

1/*
2 * Fastly API
3 *
4 * Via the Fastly API you can perform any of the operations that are possible within the management console,  including creating services, domains, and backends, configuring rules or uploading your own application code, as well as account operations such as user administration and billing reports. The API is organized into collections of endpoints that allow manipulation of objects related to Fastly services and accounts. For the most accurate and up-to-date API reference content, visit our [Developer Hub](https://www.fastly.com/documentation/reference/api/) 
5 *
6 */
7
8
9use reqwest;
10
11use crate::apis::ResponseContent;
12use super::{Error, configuration};
13
14/// struct for passing parameters to the method [`add_user_group_members`]
15#[derive(Clone, Debug, Default)]
16pub struct AddUserGroupMembersParams {
17    /// Alphanumeric string identifying the user group.
18    pub user_group_id: String,
19    pub request_body: Option<::std::collections::HashMap<String, serde_json::Value>>
20}
21
22/// struct for passing parameters to the method [`add_user_group_roles`]
23#[derive(Clone, Debug, Default)]
24pub struct AddUserGroupRolesParams {
25    /// Alphanumeric string identifying the user group.
26    pub user_group_id: String,
27    pub request_body: Option<::std::collections::HashMap<String, serde_json::Value>>
28}
29
30/// struct for passing parameters to the method [`add_user_group_service_groups`]
31#[derive(Clone, Debug, Default)]
32pub struct AddUserGroupServiceGroupsParams {
33    /// Alphanumeric string identifying the user group.
34    pub user_group_id: String,
35    pub request_body: Option<::std::collections::HashMap<String, serde_json::Value>>
36}
37
38/// struct for passing parameters to the method [`create_a_user_group`]
39#[derive(Clone, Debug, Default)]
40pub struct CreateAUserGroupParams {
41    pub request_body: Option<::std::collections::HashMap<String, serde_json::Value>>
42}
43
44/// struct for passing parameters to the method [`delete_a_user_group`]
45#[derive(Clone, Debug, Default)]
46pub struct DeleteAUserGroupParams {
47    /// Alphanumeric string identifying the user group.
48    pub user_group_id: String
49}
50
51/// struct for passing parameters to the method [`get_a_user_group`]
52#[derive(Clone, Debug, Default)]
53pub struct GetAUserGroupParams {
54    /// Alphanumeric string identifying the user group.
55    pub user_group_id: String
56}
57
58/// struct for passing parameters to the method [`list_user_group_members`]
59#[derive(Clone, Debug, Default)]
60pub struct ListUserGroupMembersParams {
61    /// Alphanumeric string identifying the user group.
62    pub user_group_id: String,
63    /// Number of records per page.
64    pub per_page: Option<i32>,
65    /// Current page.
66    pub page: Option<i32>
67}
68
69/// struct for passing parameters to the method [`list_user_group_roles`]
70#[derive(Clone, Debug, Default)]
71pub struct ListUserGroupRolesParams {
72    /// Alphanumeric string identifying the user group.
73    pub user_group_id: String,
74    /// Number of records per page.
75    pub per_page: Option<i32>,
76    /// Current page.
77    pub page: Option<i32>
78}
79
80/// struct for passing parameters to the method [`list_user_group_service_groups`]
81#[derive(Clone, Debug, Default)]
82pub struct ListUserGroupServiceGroupsParams {
83    /// Alphanumeric string identifying the user group.
84    pub user_group_id: String,
85    /// Number of records per page.
86    pub per_page: Option<i32>,
87    /// Current page.
88    pub page: Option<i32>
89}
90
91/// struct for passing parameters to the method [`list_user_groups`]
92#[derive(Clone, Debug, Default)]
93pub struct ListUserGroupsParams {
94    /// Number of records per page.
95    pub per_page: Option<i32>,
96    /// Current page.
97    pub page: Option<i32>
98}
99
100/// struct for passing parameters to the method [`remove_user_group_members`]
101#[derive(Clone, Debug, Default)]
102pub struct RemoveUserGroupMembersParams {
103    /// Alphanumeric string identifying the user group.
104    pub user_group_id: String,
105    pub request_body: Option<::std::collections::HashMap<String, serde_json::Value>>
106}
107
108/// struct for passing parameters to the method [`remove_user_group_roles`]
109#[derive(Clone, Debug, Default)]
110pub struct RemoveUserGroupRolesParams {
111    /// Alphanumeric string identifying the user group.
112    pub user_group_id: String,
113    pub request_body: Option<::std::collections::HashMap<String, serde_json::Value>>
114}
115
116/// struct for passing parameters to the method [`remove_user_group_service_groups`]
117#[derive(Clone, Debug, Default)]
118pub struct RemoveUserGroupServiceGroupsParams {
119    /// Alphanumeric string identifying the user group.
120    pub user_group_id: String,
121    pub request_body: Option<::std::collections::HashMap<String, serde_json::Value>>
122}
123
124/// struct for passing parameters to the method [`update_a_user_group`]
125#[derive(Clone, Debug, Default)]
126pub struct UpdateAUserGroupParams {
127    /// Alphanumeric string identifying the user group.
128    pub user_group_id: String,
129    pub request_body: Option<::std::collections::HashMap<String, serde_json::Value>>
130}
131
132
133/// struct for typed errors of method [`add_user_group_members`]
134#[derive(Debug, Clone, Serialize, Deserialize)]
135#[serde(untagged)]
136pub enum AddUserGroupMembersError {
137    UnknownValue(serde_json::Value),
138}
139
140/// struct for typed errors of method [`add_user_group_roles`]
141#[derive(Debug, Clone, Serialize, Deserialize)]
142#[serde(untagged)]
143pub enum AddUserGroupRolesError {
144    UnknownValue(serde_json::Value),
145}
146
147/// struct for typed errors of method [`add_user_group_service_groups`]
148#[derive(Debug, Clone, Serialize, Deserialize)]
149#[serde(untagged)]
150pub enum AddUserGroupServiceGroupsError {
151    UnknownValue(serde_json::Value),
152}
153
154/// struct for typed errors of method [`create_a_user_group`]
155#[derive(Debug, Clone, Serialize, Deserialize)]
156#[serde(untagged)]
157pub enum CreateAUserGroupError {
158    UnknownValue(serde_json::Value),
159}
160
161/// struct for typed errors of method [`delete_a_user_group`]
162#[derive(Debug, Clone, Serialize, Deserialize)]
163#[serde(untagged)]
164pub enum DeleteAUserGroupError {
165    UnknownValue(serde_json::Value),
166}
167
168/// struct for typed errors of method [`get_a_user_group`]
169#[derive(Debug, Clone, Serialize, Deserialize)]
170#[serde(untagged)]
171pub enum GetAUserGroupError {
172    UnknownValue(serde_json::Value),
173}
174
175/// struct for typed errors of method [`list_user_group_members`]
176#[derive(Debug, Clone, Serialize, Deserialize)]
177#[serde(untagged)]
178pub enum ListUserGroupMembersError {
179    UnknownValue(serde_json::Value),
180}
181
182/// struct for typed errors of method [`list_user_group_roles`]
183#[derive(Debug, Clone, Serialize, Deserialize)]
184#[serde(untagged)]
185pub enum ListUserGroupRolesError {
186    UnknownValue(serde_json::Value),
187}
188
189/// struct for typed errors of method [`list_user_group_service_groups`]
190#[derive(Debug, Clone, Serialize, Deserialize)]
191#[serde(untagged)]
192pub enum ListUserGroupServiceGroupsError {
193    UnknownValue(serde_json::Value),
194}
195
196/// struct for typed errors of method [`list_user_groups`]
197#[derive(Debug, Clone, Serialize, Deserialize)]
198#[serde(untagged)]
199pub enum ListUserGroupsError {
200    UnknownValue(serde_json::Value),
201}
202
203/// struct for typed errors of method [`remove_user_group_members`]
204#[derive(Debug, Clone, Serialize, Deserialize)]
205#[serde(untagged)]
206pub enum RemoveUserGroupMembersError {
207    UnknownValue(serde_json::Value),
208}
209
210/// struct for typed errors of method [`remove_user_group_roles`]
211#[derive(Debug, Clone, Serialize, Deserialize)]
212#[serde(untagged)]
213pub enum RemoveUserGroupRolesError {
214    UnknownValue(serde_json::Value),
215}
216
217/// struct for typed errors of method [`remove_user_group_service_groups`]
218#[derive(Debug, Clone, Serialize, Deserialize)]
219#[serde(untagged)]
220pub enum RemoveUserGroupServiceGroupsError {
221    UnknownValue(serde_json::Value),
222}
223
224/// struct for typed errors of method [`update_a_user_group`]
225#[derive(Debug, Clone, Serialize, Deserialize)]
226#[serde(untagged)]
227pub enum UpdateAUserGroupError {
228    UnknownValue(serde_json::Value),
229}
230
231
232/// Add members to a user group.
233pub async fn add_user_group_members(configuration: &mut configuration::Configuration, params: AddUserGroupMembersParams) -> Result<serde_json::Value, Error<AddUserGroupMembersError>> {
234    let local_var_configuration = configuration;
235
236    // unbox the parameters
237    let user_group_id = params.user_group_id;
238    let request_body = params.request_body;
239
240
241    let local_var_client = &local_var_configuration.client;
242
243    let local_var_uri_str = format!("{}/user-groups/{user_group_id}/members", local_var_configuration.base_path, user_group_id=crate::apis::urlencode(user_group_id));
244    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
245
246    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
247        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
248    }
249    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
250        let local_var_key = local_var_apikey.key.clone();
251        let local_var_value = match local_var_apikey.prefix {
252            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
253            None => local_var_key,
254        };
255        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
256    };
257    local_var_req_builder = local_var_req_builder.json(&request_body);
258
259    let local_var_req = local_var_req_builder.build()?;
260    let local_var_resp = local_var_client.execute(local_var_req).await?;
261
262    if "POST" != "GET" && "POST" != "HEAD" {
263      let headers = local_var_resp.headers();
264      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
265          Some(v) => v.to_str().unwrap().parse().unwrap(),
266          None => configuration::DEFAULT_RATELIMIT,
267      };
268      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
269          Some(v) => v.to_str().unwrap().parse().unwrap(),
270          None => 0,
271      };
272    }
273
274    let local_var_status = local_var_resp.status();
275    let local_var_content = local_var_resp.text().await?;
276
277    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
278        serde_json::from_str(&local_var_content).map_err(Error::from)
279    } else {
280        let local_var_entity: Option<AddUserGroupMembersError> = serde_json::from_str(&local_var_content).ok();
281        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
282        Err(Error::ResponseError(local_var_error))
283    }
284}
285
286/// Add roles to a user group.
287pub async fn add_user_group_roles(configuration: &mut configuration::Configuration, params: AddUserGroupRolesParams) -> Result<serde_json::Value, Error<AddUserGroupRolesError>> {
288    let local_var_configuration = configuration;
289
290    // unbox the parameters
291    let user_group_id = params.user_group_id;
292    let request_body = params.request_body;
293
294
295    let local_var_client = &local_var_configuration.client;
296
297    let local_var_uri_str = format!("{}/user-groups/{user_group_id}/roles", local_var_configuration.base_path, user_group_id=crate::apis::urlencode(user_group_id));
298    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
299
300    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
301        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
302    }
303    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
304        let local_var_key = local_var_apikey.key.clone();
305        let local_var_value = match local_var_apikey.prefix {
306            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
307            None => local_var_key,
308        };
309        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
310    };
311    local_var_req_builder = local_var_req_builder.json(&request_body);
312
313    let local_var_req = local_var_req_builder.build()?;
314    let local_var_resp = local_var_client.execute(local_var_req).await?;
315
316    if "POST" != "GET" && "POST" != "HEAD" {
317      let headers = local_var_resp.headers();
318      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
319          Some(v) => v.to_str().unwrap().parse().unwrap(),
320          None => configuration::DEFAULT_RATELIMIT,
321      };
322      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
323          Some(v) => v.to_str().unwrap().parse().unwrap(),
324          None => 0,
325      };
326    }
327
328    let local_var_status = local_var_resp.status();
329    let local_var_content = local_var_resp.text().await?;
330
331    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
332        serde_json::from_str(&local_var_content).map_err(Error::from)
333    } else {
334        let local_var_entity: Option<AddUserGroupRolesError> = serde_json::from_str(&local_var_content).ok();
335        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
336        Err(Error::ResponseError(local_var_error))
337    }
338}
339
340/// Add service groups to a user group.
341pub async fn add_user_group_service_groups(configuration: &mut configuration::Configuration, params: AddUserGroupServiceGroupsParams) -> Result<serde_json::Value, Error<AddUserGroupServiceGroupsError>> {
342    let local_var_configuration = configuration;
343
344    // unbox the parameters
345    let user_group_id = params.user_group_id;
346    let request_body = params.request_body;
347
348
349    let local_var_client = &local_var_configuration.client;
350
351    let local_var_uri_str = format!("{}/user-groups/{user_group_id}/service-groups", local_var_configuration.base_path, user_group_id=crate::apis::urlencode(user_group_id));
352    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
353
354    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
355        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
356    }
357    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
358        let local_var_key = local_var_apikey.key.clone();
359        let local_var_value = match local_var_apikey.prefix {
360            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
361            None => local_var_key,
362        };
363        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
364    };
365    local_var_req_builder = local_var_req_builder.json(&request_body);
366
367    let local_var_req = local_var_req_builder.build()?;
368    let local_var_resp = local_var_client.execute(local_var_req).await?;
369
370    if "POST" != "GET" && "POST" != "HEAD" {
371      let headers = local_var_resp.headers();
372      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
373          Some(v) => v.to_str().unwrap().parse().unwrap(),
374          None => configuration::DEFAULT_RATELIMIT,
375      };
376      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
377          Some(v) => v.to_str().unwrap().parse().unwrap(),
378          None => 0,
379      };
380    }
381
382    let local_var_status = local_var_resp.status();
383    let local_var_content = local_var_resp.text().await?;
384
385    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
386        serde_json::from_str(&local_var_content).map_err(Error::from)
387    } else {
388        let local_var_entity: Option<AddUserGroupServiceGroupsError> = serde_json::from_str(&local_var_content).ok();
389        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
390        Err(Error::ResponseError(local_var_error))
391    }
392}
393
394/// Create a user group.
395pub async fn create_a_user_group(configuration: &mut configuration::Configuration, params: CreateAUserGroupParams) -> Result<serde_json::Value, Error<CreateAUserGroupError>> {
396    let local_var_configuration = configuration;
397
398    // unbox the parameters
399    let request_body = params.request_body;
400
401
402    let local_var_client = &local_var_configuration.client;
403
404    let local_var_uri_str = format!("{}/user-groups", local_var_configuration.base_path);
405    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
406
407    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
408        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
409    }
410    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
411        let local_var_key = local_var_apikey.key.clone();
412        let local_var_value = match local_var_apikey.prefix {
413            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
414            None => local_var_key,
415        };
416        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
417    };
418    local_var_req_builder = local_var_req_builder.json(&request_body);
419
420    let local_var_req = local_var_req_builder.build()?;
421    let local_var_resp = local_var_client.execute(local_var_req).await?;
422
423    if "POST" != "GET" && "POST" != "HEAD" {
424      let headers = local_var_resp.headers();
425      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
426          Some(v) => v.to_str().unwrap().parse().unwrap(),
427          None => configuration::DEFAULT_RATELIMIT,
428      };
429      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
430          Some(v) => v.to_str().unwrap().parse().unwrap(),
431          None => 0,
432      };
433    }
434
435    let local_var_status = local_var_resp.status();
436    let local_var_content = local_var_resp.text().await?;
437
438    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
439        serde_json::from_str(&local_var_content).map_err(Error::from)
440    } else {
441        let local_var_entity: Option<CreateAUserGroupError> = serde_json::from_str(&local_var_content).ok();
442        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
443        Err(Error::ResponseError(local_var_error))
444    }
445}
446
447/// Delete a user group.
448pub async fn delete_a_user_group(configuration: &mut configuration::Configuration, params: DeleteAUserGroupParams) -> Result<(), Error<DeleteAUserGroupError>> {
449    let local_var_configuration = configuration;
450
451    // unbox the parameters
452    let user_group_id = params.user_group_id;
453
454
455    let local_var_client = &local_var_configuration.client;
456
457    let local_var_uri_str = format!("{}/user-groups/{user_group_id}", local_var_configuration.base_path, user_group_id=crate::apis::urlencode(user_group_id));
458    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
459
460    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
461        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
462    }
463    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
464        let local_var_key = local_var_apikey.key.clone();
465        let local_var_value = match local_var_apikey.prefix {
466            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
467            None => local_var_key,
468        };
469        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
470    };
471
472    let local_var_req = local_var_req_builder.build()?;
473    let local_var_resp = local_var_client.execute(local_var_req).await?;
474
475    if "DELETE" != "GET" && "DELETE" != "HEAD" {
476      let headers = local_var_resp.headers();
477      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
478          Some(v) => v.to_str().unwrap().parse().unwrap(),
479          None => configuration::DEFAULT_RATELIMIT,
480      };
481      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
482          Some(v) => v.to_str().unwrap().parse().unwrap(),
483          None => 0,
484      };
485    }
486
487    let local_var_status = local_var_resp.status();
488    let local_var_content = local_var_resp.text().await?;
489
490    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
491        Ok(())
492    } else {
493        let local_var_entity: Option<DeleteAUserGroupError> = serde_json::from_str(&local_var_content).ok();
494        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
495        Err(Error::ResponseError(local_var_error))
496    }
497}
498
499/// Get a user group.
500pub async fn get_a_user_group(configuration: &mut configuration::Configuration, params: GetAUserGroupParams) -> Result<serde_json::Value, Error<GetAUserGroupError>> {
501    let local_var_configuration = configuration;
502
503    // unbox the parameters
504    let user_group_id = params.user_group_id;
505
506
507    let local_var_client = &local_var_configuration.client;
508
509    let local_var_uri_str = format!("{}/user-groups/{user_group_id}", local_var_configuration.base_path, user_group_id=crate::apis::urlencode(user_group_id));
510    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
511
512    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
513        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
514    }
515    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
516        let local_var_key = local_var_apikey.key.clone();
517        let local_var_value = match local_var_apikey.prefix {
518            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
519            None => local_var_key,
520        };
521        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
522    };
523
524    let local_var_req = local_var_req_builder.build()?;
525    let local_var_resp = local_var_client.execute(local_var_req).await?;
526
527    if "GET" != "GET" && "GET" != "HEAD" {
528      let headers = local_var_resp.headers();
529      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
530          Some(v) => v.to_str().unwrap().parse().unwrap(),
531          None => configuration::DEFAULT_RATELIMIT,
532      };
533      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
534          Some(v) => v.to_str().unwrap().parse().unwrap(),
535          None => 0,
536      };
537    }
538
539    let local_var_status = local_var_resp.status();
540    let local_var_content = local_var_resp.text().await?;
541
542    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
543        serde_json::from_str(&local_var_content).map_err(Error::from)
544    } else {
545        let local_var_entity: Option<GetAUserGroupError> = serde_json::from_str(&local_var_content).ok();
546        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
547        Err(Error::ResponseError(local_var_error))
548    }
549}
550
551/// List members of a user group.
552pub async fn list_user_group_members(configuration: &mut configuration::Configuration, params: ListUserGroupMembersParams) -> Result<serde_json::Value, Error<ListUserGroupMembersError>> {
553    let local_var_configuration = configuration;
554
555    // unbox the parameters
556    let user_group_id = params.user_group_id;
557    let per_page = params.per_page;
558    let page = params.page;
559
560
561    let local_var_client = &local_var_configuration.client;
562
563    let local_var_uri_str = format!("{}/user-groups/{user_group_id}/members", local_var_configuration.base_path, user_group_id=crate::apis::urlencode(user_group_id));
564    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
565
566    if let Some(ref local_var_str) = per_page {
567        local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
568    }
569    if let Some(ref local_var_str) = page {
570        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
571    }
572    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
573        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
574    }
575    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
576        let local_var_key = local_var_apikey.key.clone();
577        let local_var_value = match local_var_apikey.prefix {
578            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
579            None => local_var_key,
580        };
581        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
582    };
583
584    let local_var_req = local_var_req_builder.build()?;
585    let local_var_resp = local_var_client.execute(local_var_req).await?;
586
587    if "GET" != "GET" && "GET" != "HEAD" {
588      let headers = local_var_resp.headers();
589      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
590          Some(v) => v.to_str().unwrap().parse().unwrap(),
591          None => configuration::DEFAULT_RATELIMIT,
592      };
593      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
594          Some(v) => v.to_str().unwrap().parse().unwrap(),
595          None => 0,
596      };
597    }
598
599    let local_var_status = local_var_resp.status();
600    let local_var_content = local_var_resp.text().await?;
601
602    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
603        serde_json::from_str(&local_var_content).map_err(Error::from)
604    } else {
605        let local_var_entity: Option<ListUserGroupMembersError> = serde_json::from_str(&local_var_content).ok();
606        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
607        Err(Error::ResponseError(local_var_error))
608    }
609}
610
611/// List roles in a user group.
612pub async fn list_user_group_roles(configuration: &mut configuration::Configuration, params: ListUserGroupRolesParams) -> Result<serde_json::Value, Error<ListUserGroupRolesError>> {
613    let local_var_configuration = configuration;
614
615    // unbox the parameters
616    let user_group_id = params.user_group_id;
617    let per_page = params.per_page;
618    let page = params.page;
619
620
621    let local_var_client = &local_var_configuration.client;
622
623    let local_var_uri_str = format!("{}/user-groups/{user_group_id}/roles", local_var_configuration.base_path, user_group_id=crate::apis::urlencode(user_group_id));
624    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
625
626    if let Some(ref local_var_str) = per_page {
627        local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
628    }
629    if let Some(ref local_var_str) = page {
630        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
631    }
632    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
633        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
634    }
635    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
636        let local_var_key = local_var_apikey.key.clone();
637        let local_var_value = match local_var_apikey.prefix {
638            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
639            None => local_var_key,
640        };
641        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
642    };
643
644    let local_var_req = local_var_req_builder.build()?;
645    let local_var_resp = local_var_client.execute(local_var_req).await?;
646
647    if "GET" != "GET" && "GET" != "HEAD" {
648      let headers = local_var_resp.headers();
649      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
650          Some(v) => v.to_str().unwrap().parse().unwrap(),
651          None => configuration::DEFAULT_RATELIMIT,
652      };
653      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
654          Some(v) => v.to_str().unwrap().parse().unwrap(),
655          None => 0,
656      };
657    }
658
659    let local_var_status = local_var_resp.status();
660    let local_var_content = local_var_resp.text().await?;
661
662    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
663        serde_json::from_str(&local_var_content).map_err(Error::from)
664    } else {
665        let local_var_entity: Option<ListUserGroupRolesError> = serde_json::from_str(&local_var_content).ok();
666        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
667        Err(Error::ResponseError(local_var_error))
668    }
669}
670
671/// List service groups in a user group.
672pub async fn list_user_group_service_groups(configuration: &mut configuration::Configuration, params: ListUserGroupServiceGroupsParams) -> Result<serde_json::Value, Error<ListUserGroupServiceGroupsError>> {
673    let local_var_configuration = configuration;
674
675    // unbox the parameters
676    let user_group_id = params.user_group_id;
677    let per_page = params.per_page;
678    let page = params.page;
679
680
681    let local_var_client = &local_var_configuration.client;
682
683    let local_var_uri_str = format!("{}/user-groups/{user_group_id}/service-groups", local_var_configuration.base_path, user_group_id=crate::apis::urlencode(user_group_id));
684    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
685
686    if let Some(ref local_var_str) = per_page {
687        local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
688    }
689    if let Some(ref local_var_str) = page {
690        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
691    }
692    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
693        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
694    }
695    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
696        let local_var_key = local_var_apikey.key.clone();
697        let local_var_value = match local_var_apikey.prefix {
698            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
699            None => local_var_key,
700        };
701        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
702    };
703
704    let local_var_req = local_var_req_builder.build()?;
705    let local_var_resp = local_var_client.execute(local_var_req).await?;
706
707    if "GET" != "GET" && "GET" != "HEAD" {
708      let headers = local_var_resp.headers();
709      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
710          Some(v) => v.to_str().unwrap().parse().unwrap(),
711          None => configuration::DEFAULT_RATELIMIT,
712      };
713      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
714          Some(v) => v.to_str().unwrap().parse().unwrap(),
715          None => 0,
716      };
717    }
718
719    let local_var_status = local_var_resp.status();
720    let local_var_content = local_var_resp.text().await?;
721
722    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
723        serde_json::from_str(&local_var_content).map_err(Error::from)
724    } else {
725        let local_var_entity: Option<ListUserGroupServiceGroupsError> = serde_json::from_str(&local_var_content).ok();
726        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
727        Err(Error::ResponseError(local_var_error))
728    }
729}
730
731/// List all user groups.
732pub async fn list_user_groups(configuration: &mut configuration::Configuration, params: ListUserGroupsParams) -> Result<serde_json::Value, Error<ListUserGroupsError>> {
733    let local_var_configuration = configuration;
734
735    // unbox the parameters
736    let per_page = params.per_page;
737    let page = params.page;
738
739
740    let local_var_client = &local_var_configuration.client;
741
742    let local_var_uri_str = format!("{}/user-groups", local_var_configuration.base_path);
743    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
744
745    if let Some(ref local_var_str) = per_page {
746        local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
747    }
748    if let Some(ref local_var_str) = page {
749        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
750    }
751    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
752        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
753    }
754    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
755        let local_var_key = local_var_apikey.key.clone();
756        let local_var_value = match local_var_apikey.prefix {
757            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
758            None => local_var_key,
759        };
760        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
761    };
762
763    let local_var_req = local_var_req_builder.build()?;
764    let local_var_resp = local_var_client.execute(local_var_req).await?;
765
766    if "GET" != "GET" && "GET" != "HEAD" {
767      let headers = local_var_resp.headers();
768      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
769          Some(v) => v.to_str().unwrap().parse().unwrap(),
770          None => configuration::DEFAULT_RATELIMIT,
771      };
772      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
773          Some(v) => v.to_str().unwrap().parse().unwrap(),
774          None => 0,
775      };
776    }
777
778    let local_var_status = local_var_resp.status();
779    let local_var_content = local_var_resp.text().await?;
780
781    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
782        serde_json::from_str(&local_var_content).map_err(Error::from)
783    } else {
784        let local_var_entity: Option<ListUserGroupsError> = serde_json::from_str(&local_var_content).ok();
785        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
786        Err(Error::ResponseError(local_var_error))
787    }
788}
789
790/// Remove members of a user group
791pub async fn remove_user_group_members(configuration: &mut configuration::Configuration, params: RemoveUserGroupMembersParams) -> Result<(), Error<RemoveUserGroupMembersError>> {
792    let local_var_configuration = configuration;
793
794    // unbox the parameters
795    let user_group_id = params.user_group_id;
796    let request_body = params.request_body;
797
798
799    let local_var_client = &local_var_configuration.client;
800
801    let local_var_uri_str = format!("{}/user-groups/{user_group_id}/members", local_var_configuration.base_path, user_group_id=crate::apis::urlencode(user_group_id));
802    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
803
804    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
805        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
806    }
807    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
808        let local_var_key = local_var_apikey.key.clone();
809        let local_var_value = match local_var_apikey.prefix {
810            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
811            None => local_var_key,
812        };
813        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
814    };
815    local_var_req_builder = local_var_req_builder.json(&request_body);
816
817    let local_var_req = local_var_req_builder.build()?;
818    let local_var_resp = local_var_client.execute(local_var_req).await?;
819
820    if "DELETE" != "GET" && "DELETE" != "HEAD" {
821      let headers = local_var_resp.headers();
822      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
823          Some(v) => v.to_str().unwrap().parse().unwrap(),
824          None => configuration::DEFAULT_RATELIMIT,
825      };
826      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
827          Some(v) => v.to_str().unwrap().parse().unwrap(),
828          None => 0,
829      };
830    }
831
832    let local_var_status = local_var_resp.status();
833    let local_var_content = local_var_resp.text().await?;
834
835    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
836        Ok(())
837    } else {
838        let local_var_entity: Option<RemoveUserGroupMembersError> = serde_json::from_str(&local_var_content).ok();
839        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
840        Err(Error::ResponseError(local_var_error))
841    }
842}
843
844/// Remove roles from a user group.
845pub async fn remove_user_group_roles(configuration: &mut configuration::Configuration, params: RemoveUserGroupRolesParams) -> Result<(), Error<RemoveUserGroupRolesError>> {
846    let local_var_configuration = configuration;
847
848    // unbox the parameters
849    let user_group_id = params.user_group_id;
850    let request_body = params.request_body;
851
852
853    let local_var_client = &local_var_configuration.client;
854
855    let local_var_uri_str = format!("{}/user-groups/{user_group_id}/roles", local_var_configuration.base_path, user_group_id=crate::apis::urlencode(user_group_id));
856    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
857
858    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
859        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
860    }
861    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
862        let local_var_key = local_var_apikey.key.clone();
863        let local_var_value = match local_var_apikey.prefix {
864            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
865            None => local_var_key,
866        };
867        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
868    };
869    local_var_req_builder = local_var_req_builder.json(&request_body);
870
871    let local_var_req = local_var_req_builder.build()?;
872    let local_var_resp = local_var_client.execute(local_var_req).await?;
873
874    if "DELETE" != "GET" && "DELETE" != "HEAD" {
875      let headers = local_var_resp.headers();
876      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
877          Some(v) => v.to_str().unwrap().parse().unwrap(),
878          None => configuration::DEFAULT_RATELIMIT,
879      };
880      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
881          Some(v) => v.to_str().unwrap().parse().unwrap(),
882          None => 0,
883      };
884    }
885
886    let local_var_status = local_var_resp.status();
887    let local_var_content = local_var_resp.text().await?;
888
889    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
890        Ok(())
891    } else {
892        let local_var_entity: Option<RemoveUserGroupRolesError> = serde_json::from_str(&local_var_content).ok();
893        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
894        Err(Error::ResponseError(local_var_error))
895    }
896}
897
898/// Remove service groups from a user group.
899pub async fn remove_user_group_service_groups(configuration: &mut configuration::Configuration, params: RemoveUserGroupServiceGroupsParams) -> Result<(), Error<RemoveUserGroupServiceGroupsError>> {
900    let local_var_configuration = configuration;
901
902    // unbox the parameters
903    let user_group_id = params.user_group_id;
904    let request_body = params.request_body;
905
906
907    let local_var_client = &local_var_configuration.client;
908
909    let local_var_uri_str = format!("{}/user-groups/{user_group_id}/service-groups", local_var_configuration.base_path, user_group_id=crate::apis::urlencode(user_group_id));
910    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
911
912    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
913        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
914    }
915    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
916        let local_var_key = local_var_apikey.key.clone();
917        let local_var_value = match local_var_apikey.prefix {
918            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
919            None => local_var_key,
920        };
921        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
922    };
923    local_var_req_builder = local_var_req_builder.json(&request_body);
924
925    let local_var_req = local_var_req_builder.build()?;
926    let local_var_resp = local_var_client.execute(local_var_req).await?;
927
928    if "DELETE" != "GET" && "DELETE" != "HEAD" {
929      let headers = local_var_resp.headers();
930      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
931          Some(v) => v.to_str().unwrap().parse().unwrap(),
932          None => configuration::DEFAULT_RATELIMIT,
933      };
934      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
935          Some(v) => v.to_str().unwrap().parse().unwrap(),
936          None => 0,
937      };
938    }
939
940    let local_var_status = local_var_resp.status();
941    let local_var_content = local_var_resp.text().await?;
942
943    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
944        Ok(())
945    } else {
946        let local_var_entity: Option<RemoveUserGroupServiceGroupsError> = serde_json::from_str(&local_var_content).ok();
947        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
948        Err(Error::ResponseError(local_var_error))
949    }
950}
951
952/// Update a user group.
953pub async fn update_a_user_group(configuration: &mut configuration::Configuration, params: UpdateAUserGroupParams) -> Result<serde_json::Value, Error<UpdateAUserGroupError>> {
954    let local_var_configuration = configuration;
955
956    // unbox the parameters
957    let user_group_id = params.user_group_id;
958    let request_body = params.request_body;
959
960
961    let local_var_client = &local_var_configuration.client;
962
963    let local_var_uri_str = format!("{}/user-groups/{user_group_id}", local_var_configuration.base_path, user_group_id=crate::apis::urlencode(user_group_id));
964    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
965
966    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
967        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
968    }
969    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
970        let local_var_key = local_var_apikey.key.clone();
971        let local_var_value = match local_var_apikey.prefix {
972            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
973            None => local_var_key,
974        };
975        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
976    };
977    local_var_req_builder = local_var_req_builder.json(&request_body);
978
979    let local_var_req = local_var_req_builder.build()?;
980    let local_var_resp = local_var_client.execute(local_var_req).await?;
981
982    if "PATCH" != "GET" && "PATCH" != "HEAD" {
983      let headers = local_var_resp.headers();
984      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
985          Some(v) => v.to_str().unwrap().parse().unwrap(),
986          None => configuration::DEFAULT_RATELIMIT,
987      };
988      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
989          Some(v) => v.to_str().unwrap().parse().unwrap(),
990          None => 0,
991      };
992    }
993
994    let local_var_status = local_var_resp.status();
995    let local_var_content = local_var_resp.text().await?;
996
997    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
998        serde_json::from_str(&local_var_content).map_err(Error::from)
999    } else {
1000        let local_var_entity: Option<UpdateAUserGroupError> = serde_json::from_str(&local_var_content).ok();
1001        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
1002        Err(Error::ResponseError(local_var_error))
1003    }
1004}
1005