jira_api_v2/apis/
workflow_scheme_drafts_api.rs

1/*
2 * The Jira Cloud platform REST API
3 *
4 * Jira Cloud platform REST API documentation
5 *
6 * The version of the OpenAPI document: 1001.0.0-SNAPSHOT
7 * Contact: ecosystem@atlassian.com
8 * Generated by: https://openapi-generator.tech
9 */
10
11
12use reqwest;
13use serde::{Deserialize, Serialize};
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration};
16
17
18/// struct for typed errors of method [`create_workflow_scheme_draft_from_parent`]
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum CreateWorkflowSchemeDraftFromParentError {
22    Status400(),
23    Status401(),
24    Status403(),
25    UnknownValue(serde_json::Value),
26}
27
28/// struct for typed errors of method [`delete_draft_default_workflow`]
29#[derive(Debug, Clone, Serialize, Deserialize)]
30#[serde(untagged)]
31pub enum DeleteDraftDefaultWorkflowError {
32    Status401(),
33    Status403(),
34    Status404(),
35    UnknownValue(serde_json::Value),
36}
37
38/// struct for typed errors of method [`delete_draft_workflow_mapping`]
39#[derive(Debug, Clone, Serialize, Deserialize)]
40#[serde(untagged)]
41pub enum DeleteDraftWorkflowMappingError {
42    Status401(),
43    Status403(),
44    Status404(),
45    UnknownValue(serde_json::Value),
46}
47
48/// struct for typed errors of method [`delete_workflow_scheme_draft`]
49#[derive(Debug, Clone, Serialize, Deserialize)]
50#[serde(untagged)]
51pub enum DeleteWorkflowSchemeDraftError {
52    Status401(),
53    Status403(),
54    Status404(),
55    UnknownValue(serde_json::Value),
56}
57
58/// struct for typed errors of method [`delete_workflow_scheme_draft_issue_type`]
59#[derive(Debug, Clone, Serialize, Deserialize)]
60#[serde(untagged)]
61pub enum DeleteWorkflowSchemeDraftIssueTypeError {
62    Status401(),
63    Status403(),
64    Status404(),
65    UnknownValue(serde_json::Value),
66}
67
68/// struct for typed errors of method [`get_draft_default_workflow`]
69#[derive(Debug, Clone, Serialize, Deserialize)]
70#[serde(untagged)]
71pub enum GetDraftDefaultWorkflowError {
72    Status401(),
73    Status403(),
74    Status404(),
75    UnknownValue(serde_json::Value),
76}
77
78/// struct for typed errors of method [`get_draft_workflow`]
79#[derive(Debug, Clone, Serialize, Deserialize)]
80#[serde(untagged)]
81pub enum GetDraftWorkflowError {
82    Status401(),
83    Status403(),
84    Status404(),
85    UnknownValue(serde_json::Value),
86}
87
88/// struct for typed errors of method [`get_workflow_scheme_draft`]
89#[derive(Debug, Clone, Serialize, Deserialize)]
90#[serde(untagged)]
91pub enum GetWorkflowSchemeDraftError {
92    Status401(),
93    Status403(),
94    Status404(),
95    UnknownValue(serde_json::Value),
96}
97
98/// struct for typed errors of method [`get_workflow_scheme_draft_issue_type`]
99#[derive(Debug, Clone, Serialize, Deserialize)]
100#[serde(untagged)]
101pub enum GetWorkflowSchemeDraftIssueTypeError {
102    Status401(),
103    Status403(),
104    Status404(),
105    UnknownValue(serde_json::Value),
106}
107
108/// struct for typed errors of method [`set_workflow_scheme_draft_issue_type`]
109#[derive(Debug, Clone, Serialize, Deserialize)]
110#[serde(untagged)]
111pub enum SetWorkflowSchemeDraftIssueTypeError {
112    Status400(),
113    Status401(),
114    Status403(),
115    Status404(),
116    UnknownValue(serde_json::Value),
117}
118
119/// struct for typed errors of method [`update_draft_default_workflow`]
120#[derive(Debug, Clone, Serialize, Deserialize)]
121#[serde(untagged)]
122pub enum UpdateDraftDefaultWorkflowError {
123    Status400(),
124    Status401(),
125    Status403(),
126    Status404(),
127    UnknownValue(serde_json::Value),
128}
129
130/// struct for typed errors of method [`update_draft_workflow_mapping`]
131#[derive(Debug, Clone, Serialize, Deserialize)]
132#[serde(untagged)]
133pub enum UpdateDraftWorkflowMappingError {
134    Status400(),
135    Status401(),
136    Status403(),
137    Status404(),
138    UnknownValue(serde_json::Value),
139}
140
141/// struct for typed errors of method [`update_workflow_scheme_draft`]
142#[derive(Debug, Clone, Serialize, Deserialize)]
143#[serde(untagged)]
144pub enum UpdateWorkflowSchemeDraftError {
145    Status400(),
146    Status401(),
147    Status403(),
148    Status404(),
149    UnknownValue(serde_json::Value),
150}
151
152
153/// Create a draft workflow scheme from an active workflow scheme, by copying the active workflow scheme. Note that an active workflow scheme can only have one draft workflow scheme.  **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
154pub async fn create_workflow_scheme_draft_from_parent(configuration: &configuration::Configuration, id: i64) -> Result<models::WorkflowScheme, Error<CreateWorkflowSchemeDraftFromParentError>> {
155    // add a prefix to parameters to efficiently prevent name collisions
156    let p_id = id;
157
158    let uri_str = format!("{}/rest/api/2/workflowscheme/{id}/createdraft", configuration.base_path, id=p_id);
159    let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
160
161    if let Some(ref user_agent) = configuration.user_agent {
162        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
163    }
164    if let Some(ref token) = configuration.oauth_access_token {
165        req_builder = req_builder.bearer_auth(token.to_owned());
166    };
167    if let Some(ref auth_conf) = configuration.basic_auth {
168        req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
169    };
170
171    let req = req_builder.build()?;
172    let resp = configuration.client.execute(req).await?;
173
174    let status = resp.status();
175
176    if !status.is_client_error() && !status.is_server_error() {
177        let content = resp.text().await?;
178        serde_json::from_str(&content).map_err(Error::from)
179    } else {
180        let content = resp.text().await?;
181        let entity: Option<CreateWorkflowSchemeDraftFromParentError> = serde_json::from_str(&content).ok();
182        Err(Error::ResponseError(ResponseContent { status, content, entity }))
183    }
184}
185
186/// Resets the default workflow for a workflow scheme's draft. That is, the default workflow is set to Jira's system workflow (the *jira* workflow).  **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
187pub async fn delete_draft_default_workflow(configuration: &configuration::Configuration, id: i64) -> Result<models::WorkflowScheme, Error<DeleteDraftDefaultWorkflowError>> {
188    // add a prefix to parameters to efficiently prevent name collisions
189    let p_id = id;
190
191    let uri_str = format!("{}/rest/api/2/workflowscheme/{id}/draft/default", configuration.base_path, id=p_id);
192    let mut req_builder = configuration.client.request(reqwest::Method::DELETE, &uri_str);
193
194    if let Some(ref user_agent) = configuration.user_agent {
195        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
196    }
197    if let Some(ref token) = configuration.oauth_access_token {
198        req_builder = req_builder.bearer_auth(token.to_owned());
199    };
200    if let Some(ref auth_conf) = configuration.basic_auth {
201        req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
202    };
203
204    let req = req_builder.build()?;
205    let resp = configuration.client.execute(req).await?;
206
207    let status = resp.status();
208
209    if !status.is_client_error() && !status.is_server_error() {
210        let content = resp.text().await?;
211        serde_json::from_str(&content).map_err(Error::from)
212    } else {
213        let content = resp.text().await?;
214        let entity: Option<DeleteDraftDefaultWorkflowError> = serde_json::from_str(&content).ok();
215        Err(Error::ResponseError(ResponseContent { status, content, entity }))
216    }
217}
218
219/// Deletes the workflow-issue type mapping for a workflow in a workflow scheme's draft.  **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
220pub async fn delete_draft_workflow_mapping(configuration: &configuration::Configuration, id: i64, workflow_name: &str) -> Result<(), Error<DeleteDraftWorkflowMappingError>> {
221    // add a prefix to parameters to efficiently prevent name collisions
222    let p_id = id;
223    let p_workflow_name = workflow_name;
224
225    let uri_str = format!("{}/rest/api/2/workflowscheme/{id}/draft/workflow", configuration.base_path, id=p_id);
226    let mut req_builder = configuration.client.request(reqwest::Method::DELETE, &uri_str);
227
228    req_builder = req_builder.query(&[("workflowName", &p_workflow_name.to_string())]);
229    if let Some(ref user_agent) = configuration.user_agent {
230        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
231    }
232    if let Some(ref token) = configuration.oauth_access_token {
233        req_builder = req_builder.bearer_auth(token.to_owned());
234    };
235    if let Some(ref auth_conf) = configuration.basic_auth {
236        req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
237    };
238
239    let req = req_builder.build()?;
240    let resp = configuration.client.execute(req).await?;
241
242    let status = resp.status();
243
244    if !status.is_client_error() && !status.is_server_error() {
245        Ok(())
246    } else {
247        let content = resp.text().await?;
248        let entity: Option<DeleteDraftWorkflowMappingError> = serde_json::from_str(&content).ok();
249        Err(Error::ResponseError(ResponseContent { status, content, entity }))
250    }
251}
252
253/// Deletes a draft workflow scheme.  **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
254pub async fn delete_workflow_scheme_draft(configuration: &configuration::Configuration, id: i64) -> Result<(), Error<DeleteWorkflowSchemeDraftError>> {
255    // add a prefix to parameters to efficiently prevent name collisions
256    let p_id = id;
257
258    let uri_str = format!("{}/rest/api/2/workflowscheme/{id}/draft", configuration.base_path, id=p_id);
259    let mut req_builder = configuration.client.request(reqwest::Method::DELETE, &uri_str);
260
261    if let Some(ref user_agent) = configuration.user_agent {
262        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
263    }
264    if let Some(ref token) = configuration.oauth_access_token {
265        req_builder = req_builder.bearer_auth(token.to_owned());
266    };
267    if let Some(ref auth_conf) = configuration.basic_auth {
268        req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
269    };
270
271    let req = req_builder.build()?;
272    let resp = configuration.client.execute(req).await?;
273
274    let status = resp.status();
275
276    if !status.is_client_error() && !status.is_server_error() {
277        Ok(())
278    } else {
279        let content = resp.text().await?;
280        let entity: Option<DeleteWorkflowSchemeDraftError> = serde_json::from_str(&content).ok();
281        Err(Error::ResponseError(ResponseContent { status, content, entity }))
282    }
283}
284
285/// Deletes the issue type-workflow mapping for an issue type in a workflow scheme's draft.  **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
286pub async fn delete_workflow_scheme_draft_issue_type(configuration: &configuration::Configuration, id: i64, issue_type: &str) -> Result<models::WorkflowScheme, Error<DeleteWorkflowSchemeDraftIssueTypeError>> {
287    // add a prefix to parameters to efficiently prevent name collisions
288    let p_id = id;
289    let p_issue_type = issue_type;
290
291    let uri_str = format!("{}/rest/api/2/workflowscheme/{id}/draft/issuetype/{issueType}", configuration.base_path, id=p_id, issueType=crate::apis::urlencode(p_issue_type));
292    let mut req_builder = configuration.client.request(reqwest::Method::DELETE, &uri_str);
293
294    if let Some(ref user_agent) = configuration.user_agent {
295        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
296    }
297    if let Some(ref token) = configuration.oauth_access_token {
298        req_builder = req_builder.bearer_auth(token.to_owned());
299    };
300    if let Some(ref auth_conf) = configuration.basic_auth {
301        req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
302    };
303
304    let req = req_builder.build()?;
305    let resp = configuration.client.execute(req).await?;
306
307    let status = resp.status();
308
309    if !status.is_client_error() && !status.is_server_error() {
310        let content = resp.text().await?;
311        serde_json::from_str(&content).map_err(Error::from)
312    } else {
313        let content = resp.text().await?;
314        let entity: Option<DeleteWorkflowSchemeDraftIssueTypeError> = serde_json::from_str(&content).ok();
315        Err(Error::ResponseError(ResponseContent { status, content, entity }))
316    }
317}
318
319/// Returns the default workflow for a workflow scheme's draft. The default workflow is the workflow that is assigned any issue types that have not been mapped to any other workflow. The default workflow has *All Unassigned Issue Types* listed in its issue types for the workflow scheme in Jira.  **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
320pub async fn get_draft_default_workflow(configuration: &configuration::Configuration, id: i64) -> Result<models::DefaultWorkflow, Error<GetDraftDefaultWorkflowError>> {
321    // add a prefix to parameters to efficiently prevent name collisions
322    let p_id = id;
323
324    let uri_str = format!("{}/rest/api/2/workflowscheme/{id}/draft/default", configuration.base_path, id=p_id);
325    let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
326
327    if let Some(ref user_agent) = configuration.user_agent {
328        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
329    }
330    if let Some(ref token) = configuration.oauth_access_token {
331        req_builder = req_builder.bearer_auth(token.to_owned());
332    };
333    if let Some(ref auth_conf) = configuration.basic_auth {
334        req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
335    };
336
337    let req = req_builder.build()?;
338    let resp = configuration.client.execute(req).await?;
339
340    let status = resp.status();
341
342    if !status.is_client_error() && !status.is_server_error() {
343        let content = resp.text().await?;
344        serde_json::from_str(&content).map_err(Error::from)
345    } else {
346        let content = resp.text().await?;
347        let entity: Option<GetDraftDefaultWorkflowError> = serde_json::from_str(&content).ok();
348        Err(Error::ResponseError(ResponseContent { status, content, entity }))
349    }
350}
351
352/// Returns the workflow-issue type mappings for a workflow scheme's draft.  **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
353pub async fn get_draft_workflow(configuration: &configuration::Configuration, id: i64, workflow_name: Option<&str>) -> Result<models::IssueTypesWorkflowMapping, Error<GetDraftWorkflowError>> {
354    // add a prefix to parameters to efficiently prevent name collisions
355    let p_id = id;
356    let p_workflow_name = workflow_name;
357
358    let uri_str = format!("{}/rest/api/2/workflowscheme/{id}/draft/workflow", configuration.base_path, id=p_id);
359    let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
360
361    if let Some(ref param_value) = p_workflow_name {
362        req_builder = req_builder.query(&[("workflowName", &param_value.to_string())]);
363    }
364    if let Some(ref user_agent) = configuration.user_agent {
365        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
366    }
367    if let Some(ref token) = configuration.oauth_access_token {
368        req_builder = req_builder.bearer_auth(token.to_owned());
369    };
370    if let Some(ref auth_conf) = configuration.basic_auth {
371        req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
372    };
373
374    let req = req_builder.build()?;
375    let resp = configuration.client.execute(req).await?;
376
377    let status = resp.status();
378
379    if !status.is_client_error() && !status.is_server_error() {
380        let content = resp.text().await?;
381        serde_json::from_str(&content).map_err(Error::from)
382    } else {
383        let content = resp.text().await?;
384        let entity: Option<GetDraftWorkflowError> = serde_json::from_str(&content).ok();
385        Err(Error::ResponseError(ResponseContent { status, content, entity }))
386    }
387}
388
389/// Returns the draft workflow scheme for an active workflow scheme. Draft workflow schemes allow changes to be made to the active workflow schemes: When an active workflow scheme is updated, a draft copy is created. The draft is modified, then the changes in the draft are copied back to the active workflow scheme. See [Configuring workflow schemes](https://confluence.atlassian.com/x/tohKLg) for more information.   Note that:   *  Only active workflow schemes can have draft workflow schemes.  *  An active workflow scheme can only have one draft workflow scheme.  **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
390pub async fn get_workflow_scheme_draft(configuration: &configuration::Configuration, id: i64) -> Result<models::WorkflowScheme, Error<GetWorkflowSchemeDraftError>> {
391    // add a prefix to parameters to efficiently prevent name collisions
392    let p_id = id;
393
394    let uri_str = format!("{}/rest/api/2/workflowscheme/{id}/draft", configuration.base_path, id=p_id);
395    let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
396
397    if let Some(ref user_agent) = configuration.user_agent {
398        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
399    }
400    if let Some(ref token) = configuration.oauth_access_token {
401        req_builder = req_builder.bearer_auth(token.to_owned());
402    };
403    if let Some(ref auth_conf) = configuration.basic_auth {
404        req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
405    };
406
407    let req = req_builder.build()?;
408    let resp = configuration.client.execute(req).await?;
409
410    let status = resp.status();
411
412    if !status.is_client_error() && !status.is_server_error() {
413        let content = resp.text().await?;
414        serde_json::from_str(&content).map_err(Error::from)
415    } else {
416        let content = resp.text().await?;
417        let entity: Option<GetWorkflowSchemeDraftError> = serde_json::from_str(&content).ok();
418        Err(Error::ResponseError(ResponseContent { status, content, entity }))
419    }
420}
421
422/// Returns the issue type-workflow mapping for an issue type in a workflow scheme's draft.  **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
423pub async fn get_workflow_scheme_draft_issue_type(configuration: &configuration::Configuration, id: i64, issue_type: &str) -> Result<models::IssueTypeWorkflowMapping, Error<GetWorkflowSchemeDraftIssueTypeError>> {
424    // add a prefix to parameters to efficiently prevent name collisions
425    let p_id = id;
426    let p_issue_type = issue_type;
427
428    let uri_str = format!("{}/rest/api/2/workflowscheme/{id}/draft/issuetype/{issueType}", configuration.base_path, id=p_id, issueType=crate::apis::urlencode(p_issue_type));
429    let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
430
431    if let Some(ref user_agent) = configuration.user_agent {
432        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
433    }
434    if let Some(ref token) = configuration.oauth_access_token {
435        req_builder = req_builder.bearer_auth(token.to_owned());
436    };
437    if let Some(ref auth_conf) = configuration.basic_auth {
438        req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
439    };
440
441    let req = req_builder.build()?;
442    let resp = configuration.client.execute(req).await?;
443
444    let status = resp.status();
445
446    if !status.is_client_error() && !status.is_server_error() {
447        let content = resp.text().await?;
448        serde_json::from_str(&content).map_err(Error::from)
449    } else {
450        let content = resp.text().await?;
451        let entity: Option<GetWorkflowSchemeDraftIssueTypeError> = serde_json::from_str(&content).ok();
452        Err(Error::ResponseError(ResponseContent { status, content, entity }))
453    }
454}
455
456/// Sets the workflow for an issue type in a workflow scheme's draft.  **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
457pub async fn set_workflow_scheme_draft_issue_type(configuration: &configuration::Configuration, id: i64, issue_type: &str, issue_type_workflow_mapping: models::IssueTypeWorkflowMapping) -> Result<models::WorkflowScheme, Error<SetWorkflowSchemeDraftIssueTypeError>> {
458    // add a prefix to parameters to efficiently prevent name collisions
459    let p_id = id;
460    let p_issue_type = issue_type;
461    let p_issue_type_workflow_mapping = issue_type_workflow_mapping;
462
463    let uri_str = format!("{}/rest/api/2/workflowscheme/{id}/draft/issuetype/{issueType}", configuration.base_path, id=p_id, issueType=crate::apis::urlencode(p_issue_type));
464    let mut req_builder = configuration.client.request(reqwest::Method::PUT, &uri_str);
465
466    if let Some(ref user_agent) = configuration.user_agent {
467        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
468    }
469    if let Some(ref token) = configuration.oauth_access_token {
470        req_builder = req_builder.bearer_auth(token.to_owned());
471    };
472    if let Some(ref auth_conf) = configuration.basic_auth {
473        req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
474    };
475    req_builder = req_builder.json(&p_issue_type_workflow_mapping);
476
477    let req = req_builder.build()?;
478    let resp = configuration.client.execute(req).await?;
479
480    let status = resp.status();
481
482    if !status.is_client_error() && !status.is_server_error() {
483        let content = resp.text().await?;
484        serde_json::from_str(&content).map_err(Error::from)
485    } else {
486        let content = resp.text().await?;
487        let entity: Option<SetWorkflowSchemeDraftIssueTypeError> = serde_json::from_str(&content).ok();
488        Err(Error::ResponseError(ResponseContent { status, content, entity }))
489    }
490}
491
492/// Sets the default workflow for a workflow scheme's draft.  **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
493pub async fn update_draft_default_workflow(configuration: &configuration::Configuration, id: i64, default_workflow: models::DefaultWorkflow) -> Result<models::WorkflowScheme, Error<UpdateDraftDefaultWorkflowError>> {
494    // add a prefix to parameters to efficiently prevent name collisions
495    let p_id = id;
496    let p_default_workflow = default_workflow;
497
498    let uri_str = format!("{}/rest/api/2/workflowscheme/{id}/draft/default", configuration.base_path, id=p_id);
499    let mut req_builder = configuration.client.request(reqwest::Method::PUT, &uri_str);
500
501    if let Some(ref user_agent) = configuration.user_agent {
502        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
503    }
504    if let Some(ref token) = configuration.oauth_access_token {
505        req_builder = req_builder.bearer_auth(token.to_owned());
506    };
507    if let Some(ref auth_conf) = configuration.basic_auth {
508        req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
509    };
510    req_builder = req_builder.json(&p_default_workflow);
511
512    let req = req_builder.build()?;
513    let resp = configuration.client.execute(req).await?;
514
515    let status = resp.status();
516
517    if !status.is_client_error() && !status.is_server_error() {
518        let content = resp.text().await?;
519        serde_json::from_str(&content).map_err(Error::from)
520    } else {
521        let content = resp.text().await?;
522        let entity: Option<UpdateDraftDefaultWorkflowError> = serde_json::from_str(&content).ok();
523        Err(Error::ResponseError(ResponseContent { status, content, entity }))
524    }
525}
526
527/// Sets the issue types for a workflow in a workflow scheme's draft. The workflow can also be set as the default workflow for the draft workflow scheme. Unmapped issues types are mapped to the default workflow.  **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
528pub async fn update_draft_workflow_mapping(configuration: &configuration::Configuration, id: i64, workflow_name: &str, issue_types_workflow_mapping: models::IssueTypesWorkflowMapping) -> Result<models::WorkflowScheme, Error<UpdateDraftWorkflowMappingError>> {
529    // add a prefix to parameters to efficiently prevent name collisions
530    let p_id = id;
531    let p_workflow_name = workflow_name;
532    let p_issue_types_workflow_mapping = issue_types_workflow_mapping;
533
534    let uri_str = format!("{}/rest/api/2/workflowscheme/{id}/draft/workflow", configuration.base_path, id=p_id);
535    let mut req_builder = configuration.client.request(reqwest::Method::PUT, &uri_str);
536
537    req_builder = req_builder.query(&[("workflowName", &p_workflow_name.to_string())]);
538    if let Some(ref user_agent) = configuration.user_agent {
539        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
540    }
541    if let Some(ref token) = configuration.oauth_access_token {
542        req_builder = req_builder.bearer_auth(token.to_owned());
543    };
544    if let Some(ref auth_conf) = configuration.basic_auth {
545        req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
546    };
547    req_builder = req_builder.json(&p_issue_types_workflow_mapping);
548
549    let req = req_builder.build()?;
550    let resp = configuration.client.execute(req).await?;
551
552    let status = resp.status();
553
554    if !status.is_client_error() && !status.is_server_error() {
555        let content = resp.text().await?;
556        serde_json::from_str(&content).map_err(Error::from)
557    } else {
558        let content = resp.text().await?;
559        let entity: Option<UpdateDraftWorkflowMappingError> = serde_json::from_str(&content).ok();
560        Err(Error::ResponseError(ResponseContent { status, content, entity }))
561    }
562}
563
564/// Updates a draft workflow scheme. If a draft workflow scheme does not exist for the active workflow scheme, then a draft is created. Note that an active workflow scheme can only have one draft workflow scheme.  **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
565pub async fn update_workflow_scheme_draft(configuration: &configuration::Configuration, id: i64, workflow_scheme: models::WorkflowScheme) -> Result<models::WorkflowScheme, Error<UpdateWorkflowSchemeDraftError>> {
566    // add a prefix to parameters to efficiently prevent name collisions
567    let p_id = id;
568    let p_workflow_scheme = workflow_scheme;
569
570    let uri_str = format!("{}/rest/api/2/workflowscheme/{id}/draft", configuration.base_path, id=p_id);
571    let mut req_builder = configuration.client.request(reqwest::Method::PUT, &uri_str);
572
573    if let Some(ref user_agent) = configuration.user_agent {
574        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
575    }
576    if let Some(ref token) = configuration.oauth_access_token {
577        req_builder = req_builder.bearer_auth(token.to_owned());
578    };
579    if let Some(ref auth_conf) = configuration.basic_auth {
580        req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
581    };
582    req_builder = req_builder.json(&p_workflow_scheme);
583
584    let req = req_builder.build()?;
585    let resp = configuration.client.execute(req).await?;
586
587    let status = resp.status();
588
589    if !status.is_client_error() && !status.is_server_error() {
590        let content = resp.text().await?;
591        serde_json::from_str(&content).map_err(Error::from)
592    } else {
593        let content = resp.text().await?;
594        let entity: Option<UpdateWorkflowSchemeDraftError> = serde_json::from_str(&content).ok();
595        Err(Error::ResponseError(ResponseContent { status, content, entity }))
596    }
597}
598