jira_api_v2/apis/
project_permission_schemes_api.rs1use 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 AssignPermissionSchemeError {
22 Status401(),
23 Status403(),
24 Status404(),
25 UnknownValue(serde_json::Value),
26}
27
28#[derive(Debug, Clone, Serialize, Deserialize)]
30#[serde(untagged)]
31pub enum GetAssignedPermissionSchemeError {
32 Status401(),
33 Status403(),
34 Status404(),
35 UnknownValue(serde_json::Value),
36}
37
38#[derive(Debug, Clone, Serialize, Deserialize)]
40#[serde(untagged)]
41pub enum GetProjectIssueSecuritySchemeError {
42 Status400(),
43 Status401(),
44 Status403(),
45 Status404(),
46 UnknownValue(serde_json::Value),
47}
48
49#[derive(Debug, Clone, Serialize, Deserialize)]
51#[serde(untagged)]
52pub enum GetSecurityLevelsForProjectError {
53 Status404(),
54 UnknownValue(serde_json::Value),
55}
56
57
58pub async fn assign_permission_scheme(configuration: &configuration::Configuration, project_key_or_id: &str, id_bean: models::IdBean, expand: Option<&str>) -> Result<models::PermissionScheme, Error<AssignPermissionSchemeError>> {
60 let p_project_key_or_id = project_key_or_id;
62 let p_id_bean = id_bean;
63 let p_expand = expand;
64
65 let uri_str = format!("{}/rest/api/2/project/{projectKeyOrId}/permissionscheme", configuration.base_path, projectKeyOrId=crate::apis::urlencode(p_project_key_or_id));
66 let mut req_builder = configuration.client.request(reqwest::Method::PUT, &uri_str);
67
68 if let Some(ref param_value) = p_expand {
69 req_builder = req_builder.query(&[("expand", ¶m_value.to_string())]);
70 }
71 if let Some(ref user_agent) = configuration.user_agent {
72 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
73 }
74 if let Some(ref token) = configuration.oauth_access_token {
75 req_builder = req_builder.bearer_auth(token.to_owned());
76 };
77 if let Some(ref auth_conf) = configuration.basic_auth {
78 req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
79 };
80 req_builder = req_builder.json(&p_id_bean);
81
82 let req = req_builder.build()?;
83 let resp = configuration.client.execute(req).await?;
84
85 let status = resp.status();
86
87 if !status.is_client_error() && !status.is_server_error() {
88 let content = resp.text().await?;
89 serde_json::from_str(&content).map_err(Error::from)
90 } else {
91 let content = resp.text().await?;
92 let entity: Option<AssignPermissionSchemeError> = serde_json::from_str(&content).ok();
93 Err(Error::ResponseError(ResponseContent { status, content, entity }))
94 }
95}
96
97pub async fn get_assigned_permission_scheme(configuration: &configuration::Configuration, project_key_or_id: &str, expand: Option<&str>) -> Result<models::PermissionScheme, Error<GetAssignedPermissionSchemeError>> {
99 let p_project_key_or_id = project_key_or_id;
101 let p_expand = expand;
102
103 let uri_str = format!("{}/rest/api/2/project/{projectKeyOrId}/permissionscheme", configuration.base_path, projectKeyOrId=crate::apis::urlencode(p_project_key_or_id));
104 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
105
106 if let Some(ref param_value) = p_expand {
107 req_builder = req_builder.query(&[("expand", ¶m_value.to_string())]);
108 }
109 if let Some(ref user_agent) = configuration.user_agent {
110 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
111 }
112 if let Some(ref token) = configuration.oauth_access_token {
113 req_builder = req_builder.bearer_auth(token.to_owned());
114 };
115 if let Some(ref auth_conf) = configuration.basic_auth {
116 req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
117 };
118
119 let req = req_builder.build()?;
120 let resp = configuration.client.execute(req).await?;
121
122 let status = resp.status();
123
124 if !status.is_client_error() && !status.is_server_error() {
125 let content = resp.text().await?;
126 serde_json::from_str(&content).map_err(Error::from)
127 } else {
128 let content = resp.text().await?;
129 let entity: Option<GetAssignedPermissionSchemeError> = serde_json::from_str(&content).ok();
130 Err(Error::ResponseError(ResponseContent { status, content, entity }))
131 }
132}
133
134pub async fn get_project_issue_security_scheme(configuration: &configuration::Configuration, project_key_or_id: &str) -> Result<models::SecurityScheme, Error<GetProjectIssueSecuritySchemeError>> {
136 let p_project_key_or_id = project_key_or_id;
138
139 let uri_str = format!("{}/rest/api/2/project/{projectKeyOrId}/issuesecuritylevelscheme", configuration.base_path, projectKeyOrId=crate::apis::urlencode(p_project_key_or_id));
140 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
141
142 if let Some(ref user_agent) = configuration.user_agent {
143 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
144 }
145 if let Some(ref token) = configuration.oauth_access_token {
146 req_builder = req_builder.bearer_auth(token.to_owned());
147 };
148 if let Some(ref auth_conf) = configuration.basic_auth {
149 req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
150 };
151
152 let req = req_builder.build()?;
153 let resp = configuration.client.execute(req).await?;
154
155 let status = resp.status();
156
157 if !status.is_client_error() && !status.is_server_error() {
158 let content = resp.text().await?;
159 serde_json::from_str(&content).map_err(Error::from)
160 } else {
161 let content = resp.text().await?;
162 let entity: Option<GetProjectIssueSecuritySchemeError> = serde_json::from_str(&content).ok();
163 Err(Error::ResponseError(ResponseContent { status, content, entity }))
164 }
165}
166
167pub async fn get_security_levels_for_project(configuration: &configuration::Configuration, project_key_or_id: &str) -> Result<models::ProjectIssueSecurityLevels, Error<GetSecurityLevelsForProjectError>> {
169 let p_project_key_or_id = project_key_or_id;
171
172 let uri_str = format!("{}/rest/api/2/project/{projectKeyOrId}/securitylevel", configuration.base_path, projectKeyOrId=crate::apis::urlencode(p_project_key_or_id));
173 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
174
175 if let Some(ref user_agent) = configuration.user_agent {
176 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
177 }
178 if let Some(ref token) = configuration.oauth_access_token {
179 req_builder = req_builder.bearer_auth(token.to_owned());
180 };
181 if let Some(ref auth_conf) = configuration.basic_auth {
182 req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
183 };
184
185 let req = req_builder.build()?;
186 let resp = configuration.client.execute(req).await?;
187
188 let status = resp.status();
189
190 if !status.is_client_error() && !status.is_server_error() {
191 let content = resp.text().await?;
192 serde_json::from_str(&content).map_err(Error::from)
193 } else {
194 let content = resp.text().await?;
195 let entity: Option<GetSecurityLevelsForProjectError> = serde_json::from_str(&content).ok();
196 Err(Error::ResponseError(ResponseContent { status, content, entity }))
197 }
198}
199