pipedrive_rs/apis/
roles_api.rs

1/*
2 * Pipedrive API v1
3 *
4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5 *
6 * The version of the OpenAPI document: 1.0.0
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11
12use reqwest;
13
14use crate::apis::ResponseContent;
15use super::{Error, configuration};
16
17
18/// struct for typed errors of method [`add_or_update_role_setting`]
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum AddOrUpdateRoleSettingError {
22    UnknownValue(serde_json::Value),
23}
24
25/// struct for typed errors of method [`add_role`]
26#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(untagged)]
28pub enum AddRoleError {
29    UnknownValue(serde_json::Value),
30}
31
32/// struct for typed errors of method [`add_role_assignment`]
33#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum AddRoleAssignmentError {
36    UnknownValue(serde_json::Value),
37}
38
39/// struct for typed errors of method [`delete_role`]
40#[derive(Debug, Clone, Serialize, Deserialize)]
41#[serde(untagged)]
42pub enum DeleteRoleError {
43    UnknownValue(serde_json::Value),
44}
45
46/// struct for typed errors of method [`delete_role_assignment`]
47#[derive(Debug, Clone, Serialize, Deserialize)]
48#[serde(untagged)]
49pub enum DeleteRoleAssignmentError {
50    UnknownValue(serde_json::Value),
51}
52
53/// struct for typed errors of method [`get_role`]
54#[derive(Debug, Clone, Serialize, Deserialize)]
55#[serde(untagged)]
56pub enum GetRoleError {
57    UnknownValue(serde_json::Value),
58}
59
60/// struct for typed errors of method [`get_role_assignments`]
61#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(untagged)]
63pub enum GetRoleAssignmentsError {
64    UnknownValue(serde_json::Value),
65}
66
67/// struct for typed errors of method [`get_role_pipelines`]
68#[derive(Debug, Clone, Serialize, Deserialize)]
69#[serde(untagged)]
70pub enum GetRolePipelinesError {
71    UnknownValue(serde_json::Value),
72}
73
74/// struct for typed errors of method [`get_role_settings`]
75#[derive(Debug, Clone, Serialize, Deserialize)]
76#[serde(untagged)]
77pub enum GetRoleSettingsError {
78    UnknownValue(serde_json::Value),
79}
80
81/// struct for typed errors of method [`get_roles`]
82#[derive(Debug, Clone, Serialize, Deserialize)]
83#[serde(untagged)]
84pub enum GetRolesError {
85    UnknownValue(serde_json::Value),
86}
87
88/// struct for typed errors of method [`update_role`]
89#[derive(Debug, Clone, Serialize, Deserialize)]
90#[serde(untagged)]
91pub enum UpdateRoleError {
92    UnknownValue(serde_json::Value),
93}
94
95/// struct for typed errors of method [`update_role_pipelines`]
96#[derive(Debug, Clone, Serialize, Deserialize)]
97#[serde(untagged)]
98pub enum UpdateRolePipelinesError {
99    UnknownValue(serde_json::Value),
100}
101
102
103/// Adds or updates the visibility setting for a role.
104pub async fn add_or_update_role_setting(configuration: &configuration::Configuration, id: i32, add_or_update_role_setting_request: Option<crate::models::AddOrUpdateRoleSettingRequest>) -> Result<crate::models::AddOrUpdateRoleSettingResponse200, Error<AddOrUpdateRoleSettingError>> {
105    let local_var_configuration = configuration;
106
107    let local_var_client = &local_var_configuration.client;
108
109    let local_var_uri_str = format!("{}/roles/{id}/settings", local_var_configuration.base_path, id=id);
110    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
111
112    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
113        let local_var_key = local_var_apikey.key.clone();
114        let local_var_value = match local_var_apikey.prefix {
115            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
116            None => local_var_key,
117        };
118        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
119    }
120    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
121        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
122    }
123    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
124        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
125    };
126    local_var_req_builder = local_var_req_builder.json(&add_or_update_role_setting_request);
127
128    let local_var_req = local_var_req_builder.build()?;
129    let local_var_resp = local_var_client.execute(local_var_req).await?;
130
131    let local_var_status = local_var_resp.status();
132    let local_var_content = local_var_resp.text().await?;
133
134    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
135        serde_json::from_str(&local_var_content).map_err(Error::from)
136    } else {
137        let local_var_entity: Option<AddOrUpdateRoleSettingError> = serde_json::from_str(&local_var_content).ok();
138        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
139        Err(Error::ResponseError(local_var_error))
140    }
141}
142
143/// Adds a new role.
144pub async fn add_role(configuration: &configuration::Configuration, add_role_request: Option<crate::models::AddRoleRequest>) -> Result<crate::models::AddRoleResponse200, Error<AddRoleError>> {
145    let local_var_configuration = configuration;
146
147    let local_var_client = &local_var_configuration.client;
148
149    let local_var_uri_str = format!("{}/roles", local_var_configuration.base_path);
150    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
151
152    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
153        let local_var_key = local_var_apikey.key.clone();
154        let local_var_value = match local_var_apikey.prefix {
155            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
156            None => local_var_key,
157        };
158        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
159    }
160    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
161        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
162    }
163    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
164        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
165    };
166    local_var_req_builder = local_var_req_builder.json(&add_role_request);
167
168    let local_var_req = local_var_req_builder.build()?;
169    let local_var_resp = local_var_client.execute(local_var_req).await?;
170
171    let local_var_status = local_var_resp.status();
172    let local_var_content = local_var_resp.text().await?;
173
174    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
175        serde_json::from_str(&local_var_content).map_err(Error::from)
176    } else {
177        let local_var_entity: Option<AddRoleError> = serde_json::from_str(&local_var_content).ok();
178        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
179        Err(Error::ResponseError(local_var_error))
180    }
181}
182
183/// Assigns a user to a role.
184pub async fn add_role_assignment(configuration: &configuration::Configuration, id: i32, add_role_assignment_request: Option<crate::models::AddRoleAssignmentRequest>) -> Result<crate::models::AddRoleAssignmentResponse200, Error<AddRoleAssignmentError>> {
185    let local_var_configuration = configuration;
186
187    let local_var_client = &local_var_configuration.client;
188
189    let local_var_uri_str = format!("{}/roles/{id}/assignments", local_var_configuration.base_path, id=id);
190    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
191
192    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
193        let local_var_key = local_var_apikey.key.clone();
194        let local_var_value = match local_var_apikey.prefix {
195            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
196            None => local_var_key,
197        };
198        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
199    }
200    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
201        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
202    }
203    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
204        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
205    };
206    local_var_req_builder = local_var_req_builder.json(&add_role_assignment_request);
207
208    let local_var_req = local_var_req_builder.build()?;
209    let local_var_resp = local_var_client.execute(local_var_req).await?;
210
211    let local_var_status = local_var_resp.status();
212    let local_var_content = local_var_resp.text().await?;
213
214    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
215        serde_json::from_str(&local_var_content).map_err(Error::from)
216    } else {
217        let local_var_entity: Option<AddRoleAssignmentError> = serde_json::from_str(&local_var_content).ok();
218        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
219        Err(Error::ResponseError(local_var_error))
220    }
221}
222
223/// Marks a role as deleted.
224pub async fn delete_role(configuration: &configuration::Configuration, id: i32) -> Result<crate::models::DeleteRoleResponse200, Error<DeleteRoleError>> {
225    let local_var_configuration = configuration;
226
227    let local_var_client = &local_var_configuration.client;
228
229    let local_var_uri_str = format!("{}/roles/{id}", local_var_configuration.base_path, id=id);
230    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
231
232    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
233        let local_var_key = local_var_apikey.key.clone();
234        let local_var_value = match local_var_apikey.prefix {
235            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
236            None => local_var_key,
237        };
238        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
239    }
240    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
241        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
242    }
243    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
244        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
245    };
246
247    let local_var_req = local_var_req_builder.build()?;
248    let local_var_resp = local_var_client.execute(local_var_req).await?;
249
250    let local_var_status = local_var_resp.status();
251    let local_var_content = local_var_resp.text().await?;
252
253    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
254        serde_json::from_str(&local_var_content).map_err(Error::from)
255    } else {
256        let local_var_entity: Option<DeleteRoleError> = serde_json::from_str(&local_var_content).ok();
257        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
258        Err(Error::ResponseError(local_var_error))
259    }
260}
261
262/// Removes the assigned user from a role and adds to the default role.
263pub async fn delete_role_assignment(configuration: &configuration::Configuration, id: i32, delete_role_assignment_request: Option<crate::models::DeleteRoleAssignmentRequest>) -> Result<crate::models::DeleteRoleAssignmentResponse200, Error<DeleteRoleAssignmentError>> {
264    let local_var_configuration = configuration;
265
266    let local_var_client = &local_var_configuration.client;
267
268    let local_var_uri_str = format!("{}/roles/{id}/assignments", local_var_configuration.base_path, id=id);
269    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
270
271    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
272        let local_var_key = local_var_apikey.key.clone();
273        let local_var_value = match local_var_apikey.prefix {
274            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
275            None => local_var_key,
276        };
277        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
278    }
279    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
280        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
281    }
282    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
283        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
284    };
285    local_var_req_builder = local_var_req_builder.json(&delete_role_assignment_request);
286
287    let local_var_req = local_var_req_builder.build()?;
288    let local_var_resp = local_var_client.execute(local_var_req).await?;
289
290    let local_var_status = local_var_resp.status();
291    let local_var_content = local_var_resp.text().await?;
292
293    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
294        serde_json::from_str(&local_var_content).map_err(Error::from)
295    } else {
296        let local_var_entity: Option<DeleteRoleAssignmentError> = serde_json::from_str(&local_var_content).ok();
297        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
298        Err(Error::ResponseError(local_var_error))
299    }
300}
301
302/// Returns the details of a specific role.
303pub async fn get_role(configuration: &configuration::Configuration, id: i32) -> Result<crate::models::GetRoleResponse200, Error<GetRoleError>> {
304    let local_var_configuration = configuration;
305
306    let local_var_client = &local_var_configuration.client;
307
308    let local_var_uri_str = format!("{}/roles/{id}", local_var_configuration.base_path, id=id);
309    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
310
311    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
312        let local_var_key = local_var_apikey.key.clone();
313        let local_var_value = match local_var_apikey.prefix {
314            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
315            None => local_var_key,
316        };
317        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
318    }
319    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
320        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
321    }
322    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
323        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
324    };
325
326    let local_var_req = local_var_req_builder.build()?;
327    let local_var_resp = local_var_client.execute(local_var_req).await?;
328
329    let local_var_status = local_var_resp.status();
330    let local_var_content = local_var_resp.text().await?;
331
332    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
333        serde_json::from_str(&local_var_content).map_err(Error::from)
334    } else {
335        let local_var_entity: Option<GetRoleError> = serde_json::from_str(&local_var_content).ok();
336        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
337        Err(Error::ResponseError(local_var_error))
338    }
339}
340
341/// Returns all users assigned to a role.
342pub async fn get_role_assignments(configuration: &configuration::Configuration, id: i32, start: Option<i32>, limit: Option<i32>) -> Result<crate::models::GetUserRoleAssignmentsResponse200, Error<GetRoleAssignmentsError>> {
343    let local_var_configuration = configuration;
344
345    let local_var_client = &local_var_configuration.client;
346
347    let local_var_uri_str = format!("{}/roles/{id}/assignments", local_var_configuration.base_path, id=id);
348    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
349
350    if let Some(ref local_var_str) = start {
351        local_var_req_builder = local_var_req_builder.query(&[("start", &local_var_str.to_string())]);
352    }
353    if let Some(ref local_var_str) = limit {
354        local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
355    }
356    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
357        let local_var_key = local_var_apikey.key.clone();
358        let local_var_value = match local_var_apikey.prefix {
359            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
360            None => local_var_key,
361        };
362        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
363    }
364    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
365        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
366    }
367    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
368        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
369    };
370
371    let local_var_req = local_var_req_builder.build()?;
372    let local_var_resp = local_var_client.execute(local_var_req).await?;
373
374    let local_var_status = local_var_resp.status();
375    let local_var_content = local_var_resp.text().await?;
376
377    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
378        serde_json::from_str(&local_var_content).map_err(Error::from)
379    } else {
380        let local_var_entity: Option<GetRoleAssignmentsError> = serde_json::from_str(&local_var_content).ok();
381        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
382        Err(Error::ResponseError(local_var_error))
383    }
384}
385
386/// Returns the list of either visible or hidden pipeline IDs for a specific role. For more information on pipeline visibility, please refer to the <a href=\"https://support.pipedrive.com/en/article/visibility-groups\" target=\"_blank\" rel=\"noopener noreferrer\">Visibility groups article</a>.
387pub async fn get_role_pipelines(configuration: &configuration::Configuration, id: i32, visible: Option<bool>) -> Result<crate::models::GetRolePipelines200, Error<GetRolePipelinesError>> {
388    let local_var_configuration = configuration;
389
390    let local_var_client = &local_var_configuration.client;
391
392    let local_var_uri_str = format!("{}/roles/{id}/pipelines", local_var_configuration.base_path, id=id);
393    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
394
395    if let Some(ref local_var_str) = visible {
396        local_var_req_builder = local_var_req_builder.query(&[("visible", &local_var_str.to_string())]);
397    }
398    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
399        let local_var_key = local_var_apikey.key.clone();
400        let local_var_value = match local_var_apikey.prefix {
401            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
402            None => local_var_key,
403        };
404        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
405    }
406    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
407        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
408    }
409    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
410        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
411    };
412
413    let local_var_req = local_var_req_builder.build()?;
414    let local_var_resp = local_var_client.execute(local_var_req).await?;
415
416    let local_var_status = local_var_resp.status();
417    let local_var_content = local_var_resp.text().await?;
418
419    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
420        serde_json::from_str(&local_var_content).map_err(Error::from)
421    } else {
422        let local_var_entity: Option<GetRolePipelinesError> = serde_json::from_str(&local_var_content).ok();
423        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
424        Err(Error::ResponseError(local_var_error))
425    }
426}
427
428/// Returns the visibility settings of a specific role.
429pub async fn get_role_settings(configuration: &configuration::Configuration, id: i32) -> Result<crate::models::GetRoleSettingsResponse200, Error<GetRoleSettingsError>> {
430    let local_var_configuration = configuration;
431
432    let local_var_client = &local_var_configuration.client;
433
434    let local_var_uri_str = format!("{}/roles/{id}/settings", local_var_configuration.base_path, id=id);
435    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
436
437    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
438        let local_var_key = local_var_apikey.key.clone();
439        let local_var_value = match local_var_apikey.prefix {
440            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
441            None => local_var_key,
442        };
443        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
444    }
445    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
446        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
447    }
448    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
449        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
450    };
451
452    let local_var_req = local_var_req_builder.build()?;
453    let local_var_resp = local_var_client.execute(local_var_req).await?;
454
455    let local_var_status = local_var_resp.status();
456    let local_var_content = local_var_resp.text().await?;
457
458    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
459        serde_json::from_str(&local_var_content).map_err(Error::from)
460    } else {
461        let local_var_entity: Option<GetRoleSettingsError> = serde_json::from_str(&local_var_content).ok();
462        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
463        Err(Error::ResponseError(local_var_error))
464    }
465}
466
467/// Returns all the roles within the company.
468pub async fn get_roles(configuration: &configuration::Configuration, start: Option<i32>, limit: Option<i32>) -> Result<crate::models::GetRolesResponse200, Error<GetRolesError>> {
469    let local_var_configuration = configuration;
470
471    let local_var_client = &local_var_configuration.client;
472
473    let local_var_uri_str = format!("{}/roles", local_var_configuration.base_path);
474    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
475
476    if let Some(ref local_var_str) = start {
477        local_var_req_builder = local_var_req_builder.query(&[("start", &local_var_str.to_string())]);
478    }
479    if let Some(ref local_var_str) = limit {
480        local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
481    }
482    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
483        let local_var_key = local_var_apikey.key.clone();
484        let local_var_value = match local_var_apikey.prefix {
485            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
486            None => local_var_key,
487        };
488        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
489    }
490    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
491        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
492    }
493    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
494        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
495    };
496
497    let local_var_req = local_var_req_builder.build()?;
498    let local_var_resp = local_var_client.execute(local_var_req).await?;
499
500    let local_var_status = local_var_resp.status();
501    let local_var_content = local_var_resp.text().await?;
502
503    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
504        serde_json::from_str(&local_var_content).map_err(Error::from)
505    } else {
506        let local_var_entity: Option<GetRolesError> = serde_json::from_str(&local_var_content).ok();
507        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
508        Err(Error::ResponseError(local_var_error))
509    }
510}
511
512/// Updates the parent role and/or the name of a specific role.
513pub async fn update_role(configuration: &configuration::Configuration, id: i32, base_role_request: Option<crate::models::BaseRoleRequest>) -> Result<crate::models::UpdateRoleResponse200, Error<UpdateRoleError>> {
514    let local_var_configuration = configuration;
515
516    let local_var_client = &local_var_configuration.client;
517
518    let local_var_uri_str = format!("{}/roles/{id}", local_var_configuration.base_path, id=id);
519    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
520
521    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
522        let local_var_key = local_var_apikey.key.clone();
523        let local_var_value = match local_var_apikey.prefix {
524            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
525            None => local_var_key,
526        };
527        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
528    }
529    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
530        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
531    }
532    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
533        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
534    };
535    local_var_req_builder = local_var_req_builder.json(&base_role_request);
536
537    let local_var_req = local_var_req_builder.build()?;
538    let local_var_resp = local_var_client.execute(local_var_req).await?;
539
540    let local_var_status = local_var_resp.status();
541    let local_var_content = local_var_resp.text().await?;
542
543    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
544        serde_json::from_str(&local_var_content).map_err(Error::from)
545    } else {
546        let local_var_entity: Option<UpdateRoleError> = serde_json::from_str(&local_var_content).ok();
547        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
548        Err(Error::ResponseError(local_var_error))
549    }
550}
551
552/// Updates the specified pipelines to be visible and/or hidden for a specific role. For more information on pipeline visibility, please refer to the <a href=\"https://support.pipedrive.com/en/article/visibility-groups\" target=\"_blank\" rel=\"noopener noreferrer\">Visibility groups article</a>.
553pub async fn update_role_pipelines(configuration: &configuration::Configuration, id: i32, put_role_pipelines_body: Option<crate::models::PutRolePipelinesBody>) -> Result<crate::models::GetRolePipelines200, Error<UpdateRolePipelinesError>> {
554    let local_var_configuration = configuration;
555
556    let local_var_client = &local_var_configuration.client;
557
558    let local_var_uri_str = format!("{}/roles/{id}/pipelines", local_var_configuration.base_path, id=id);
559    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
560
561    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
562        let local_var_key = local_var_apikey.key.clone();
563        let local_var_value = match local_var_apikey.prefix {
564            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
565            None => local_var_key,
566        };
567        local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
568    }
569    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
570        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
571    }
572    if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
573        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
574    };
575    local_var_req_builder = local_var_req_builder.json(&put_role_pipelines_body);
576
577    let local_var_req = local_var_req_builder.build()?;
578    let local_var_resp = local_var_client.execute(local_var_req).await?;
579
580    let local_var_status = local_var_resp.status();
581    let local_var_content = local_var_resp.text().await?;
582
583    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
584        serde_json::from_str(&local_var_content).map_err(Error::from)
585    } else {
586        let local_var_entity: Option<UpdateRolePipelinesError> = serde_json::from_str(&local_var_content).ok();
587        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
588        Err(Error::ResponseError(local_var_error))
589    }
590}
591