/*
* The Jira Cloud platform REST API
*
* Jira Cloud platform REST API documentation
*
* The version of the OpenAPI document: 1001.0.0-SNAPSHOT
* Contact: ecosystem@atlassian.com
* Generated by: https://openapi-generator.tech
*/
use super::{configuration, Error};
use crate::gen::apis::ResponseContent;
use crate::gen::models;
/// struct for passing parameters to the method `add_issue_types_to_context`
#[derive(Clone, Debug)]
pub struct AddIssueTypesToContextParams {
/// The ID of the custom field.
pub field_id: String,
/// The ID of the context.
pub context_id: i64,
pub issue_type_ids: models::IssueTypeIds,
}
/// struct for passing parameters to the method `assign_projects_to_custom_field_context`
#[derive(Clone, Debug)]
pub struct AssignProjectsToCustomFieldContextParams {
/// The ID of the custom field.
pub field_id: String,
/// The ID of the context.
pub context_id: i64,
pub project_ids: models::ProjectIds,
}
/// struct for passing parameters to the method `create_custom_field_context`
#[derive(Clone, Debug)]
pub struct CreateCustomFieldContextParams {
/// The ID of the custom field.
pub field_id: String,
pub create_custom_field_context: models::CreateCustomFieldContext,
}
/// struct for passing parameters to the method `delete_custom_field_context`
#[derive(Clone, Debug)]
pub struct DeleteCustomFieldContextParams {
/// The ID of the custom field.
pub field_id: String,
/// The ID of the context.
pub context_id: i64,
}
/// struct for passing parameters to the method `get_contexts_for_field`
#[derive(Clone, Debug)]
pub struct GetContextsForFieldParams {
/// The ID of the custom field.
pub field_id: String,
/// Whether to return contexts that apply to all issue types.
pub is_any_issue_type: Option<bool>,
/// Whether to return contexts that apply to all projects.
pub is_global_context: Option<bool>,
/// The list of context IDs. To include multiple contexts, separate IDs with ampersand: `contextId=10000&contextId=10001`.
pub context_id: Option<Vec<i64>>,
/// The index of the first item to return in a page of results (page offset).
pub start_at: Option<i64>,
/// The maximum number of items to return per page.
pub max_results: Option<i32>,
}
/// struct for passing parameters to the method `get_custom_field_contexts_for_projects_and_issue_types`
#[derive(Clone, Debug)]
pub struct GetCustomFieldContextsForProjectsAndIssueTypesParams {
/// The ID of the custom field.
pub field_id: String,
/// The list of project and issue type mappings.
pub project_issue_type_mappings: models::ProjectIssueTypeMappings,
/// The index of the first item to return in a page of results (page offset).
pub start_at: Option<i64>,
/// The maximum number of items to return per page.
pub max_results: Option<i32>,
}
/// struct for passing parameters to the method `get_issue_type_mappings_for_contexts`
#[derive(Clone, Debug)]
pub struct GetIssueTypeMappingsForContextsParams {
/// The ID of the custom field.
pub field_id: String,
/// The ID of the context. To include multiple contexts, provide an ampersand-separated list. For example, `contextId=10001&contextId=10002`.
pub context_id: Option<Vec<i64>>,
/// The index of the first item to return in a page of results (page offset).
pub start_at: Option<i64>,
/// The maximum number of items to return per page.
pub max_results: Option<i32>,
}
/// struct for passing parameters to the method `get_project_context_mapping`
#[derive(Clone, Debug)]
pub struct GetProjectContextMappingParams {
/// The ID of the custom field.
pub field_id: String,
/// The list of context IDs. To include multiple context, separate IDs with ampersand: `contextId=10000&contextId=10001`.
pub context_id: Option<Vec<i64>>,
/// The index of the first item to return in a page of results (page offset).
pub start_at: Option<i64>,
/// The maximum number of items to return per page.
pub max_results: Option<i32>,
}
/// struct for passing parameters to the method `remove_custom_field_context_from_projects`
#[derive(Clone, Debug)]
pub struct RemoveCustomFieldContextFromProjectsParams {
/// The ID of the custom field.
pub field_id: String,
/// The ID of the context.
pub context_id: i64,
pub project_ids: models::ProjectIds,
}
/// struct for passing parameters to the method `remove_issue_types_from_context`
#[derive(Clone, Debug)]
pub struct RemoveIssueTypesFromContextParams {
/// The ID of the custom field.
pub field_id: String,
/// The ID of the context.
pub context_id: i64,
pub issue_type_ids: models::IssueTypeIds,
}
/// struct for passing parameters to the method `update_custom_field_context`
#[derive(Clone, Debug)]
pub struct UpdateCustomFieldContextParams {
/// The ID of the custom field.
pub field_id: String,
/// The ID of the context.
pub context_id: i64,
pub custom_field_context_update_details: models::CustomFieldContextUpdateDetails,
}
/// struct for typed errors of method `add_issue_types_to_context`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum AddIssueTypesToContextError {
Status400(),
Status401(),
Status403(),
Status404(),
Status409(),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `assign_projects_to_custom_field_context`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum AssignProjectsToCustomFieldContextError {
Status400(),
Status401(),
Status403(),
Status404(),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `create_custom_field_context`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum CreateCustomFieldContextError {
Status400(),
Status401(),
Status404(),
Status409(),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `delete_custom_field_context`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum DeleteCustomFieldContextError {
Status400(),
Status401(),
Status403(),
Status404(),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `get_contexts_for_field`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum GetContextsForFieldError {
Status401(),
Status403(),
Status404(),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `get_custom_field_contexts_for_projects_and_issue_types`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum GetCustomFieldContextsForProjectsAndIssueTypesError {
Status400(),
Status401(),
Status403(),
Status404(),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `get_issue_type_mappings_for_contexts`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum GetIssueTypeMappingsForContextsError {
Status401(),
Status403(),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `get_project_context_mapping`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum GetProjectContextMappingError {
Status401(),
Status403(),
Status404(),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `remove_custom_field_context_from_projects`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum RemoveCustomFieldContextFromProjectsError {
Status400(),
Status401(),
Status403(),
Status404(),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `remove_issue_types_from_context`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum RemoveIssueTypesFromContextError {
Status400(),
Status401(),
Status403(),
Status404(),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `update_custom_field_context`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum UpdateCustomFieldContextError {
Status400(),
Status401(),
Status403(),
Status404(),
UnknownValue(serde_json::Value),
}
/// Adds issue types to a custom field context, appending the issue types to the issue types list. A custom field context without any issue types applies to all issue types. Adding issue types to such a custom field context would result in it applying to only the listed issue types. If any of the issue types exists in the custom field context, the operation fails and no issue types are added. **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
pub async fn add_issue_types_to_context(
configuration: &configuration::Configuration,
params: AddIssueTypesToContextParams,
) -> Result<serde_json::Value, Error<AddIssueTypesToContextError>> {
// unbox the parameters
let field_id = params.field_id;
let context_id = params.context_id;
let issue_type_ids = params.issue_type_ids;
let local_var_client = &configuration.client;
let local_var_uri_str = format!(
"{}/rest/api/3/field/{fieldId}/context/{contextId}/issuetype",
configuration.base_path,
fieldId = crate::gen::apis::urlencode(field_id),
contextId = context_id
);
let mut local_var_req_builder = local_var_client.put(local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = configuration.oauth_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
if let Some(ref local_var_auth_conf) = configuration.basic_auth {
local_var_req_builder = local_var_req_builder.basic_auth(
local_var_auth_conf.0.to_owned(),
local_var_auth_conf.1.to_owned(),
);
};
local_var_req_builder = local_var_req_builder.json(&issue_type_ids);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<AddIssueTypesToContextError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Assigns a custom field context to projects. If any project in the request is assigned to any context of the custom field, the operation fails. **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
pub async fn assign_projects_to_custom_field_context(
configuration: &configuration::Configuration,
params: AssignProjectsToCustomFieldContextParams,
) -> Result<serde_json::Value, Error<AssignProjectsToCustomFieldContextError>> {
// unbox the parameters
let field_id = params.field_id;
let context_id = params.context_id;
let project_ids = params.project_ids;
let local_var_client = &configuration.client;
let local_var_uri_str = format!(
"{}/rest/api/3/field/{fieldId}/context/{contextId}/project",
configuration.base_path,
fieldId = crate::gen::apis::urlencode(field_id),
contextId = context_id
);
let mut local_var_req_builder = local_var_client.put(local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = configuration.oauth_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
if let Some(ref local_var_auth_conf) = configuration.basic_auth {
local_var_req_builder = local_var_req_builder.basic_auth(
local_var_auth_conf.0.to_owned(),
local_var_auth_conf.1.to_owned(),
);
};
local_var_req_builder = local_var_req_builder.json(&project_ids);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<AssignProjectsToCustomFieldContextError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Creates a custom field context. If `projectIds` is empty, a global context is created. A global context is one that applies to all project. If `issueTypeIds` is empty, the context applies to all issue types. **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
pub async fn create_custom_field_context(
configuration: &configuration::Configuration,
params: CreateCustomFieldContextParams,
) -> Result<models::CreateCustomFieldContext, Error<CreateCustomFieldContextError>> {
// unbox the parameters
let field_id = params.field_id;
let create_custom_field_context = params.create_custom_field_context;
let local_var_client = &configuration.client;
let local_var_uri_str = format!(
"{}/rest/api/3/field/{fieldId}/context",
configuration.base_path,
fieldId = crate::gen::apis::urlencode(field_id)
);
let mut local_var_req_builder = local_var_client.post(local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = configuration.oauth_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
if let Some(ref local_var_auth_conf) = configuration.basic_auth {
local_var_req_builder = local_var_req_builder.basic_auth(
local_var_auth_conf.0.to_owned(),
local_var_auth_conf.1.to_owned(),
);
};
local_var_req_builder = local_var_req_builder.json(&create_custom_field_context);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<CreateCustomFieldContextError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Deletes a [ custom field context](https://confluence.atlassian.com/adminjiracloud/what-are-custom-field-contexts-991923859.html). **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
pub async fn delete_custom_field_context(
configuration: &configuration::Configuration,
params: DeleteCustomFieldContextParams,
) -> Result<serde_json::Value, Error<DeleteCustomFieldContextError>> {
// unbox the parameters
let field_id = params.field_id;
let context_id = params.context_id;
let local_var_client = &configuration.client;
let local_var_uri_str = format!(
"{}/rest/api/3/field/{fieldId}/context/{contextId}",
configuration.base_path,
fieldId = crate::gen::apis::urlencode(field_id),
contextId = context_id
);
let mut local_var_req_builder = local_var_client.delete(local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = configuration.oauth_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
if let Some(ref local_var_auth_conf) = configuration.basic_auth {
local_var_req_builder = local_var_req_builder.basic_auth(
local_var_auth_conf.0.to_owned(),
local_var_auth_conf.1.to_owned(),
);
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<DeleteCustomFieldContextError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Returns a [paginated](#pagination) list of [ contexts](https://confluence.atlassian.com/adminjiracloud/what-are-custom-field-contexts-991923859.html) for a custom field. Contexts can be returned as follows: * With no other parameters set, all contexts. * By defining `id` only, all contexts from the list of IDs. * By defining `isAnyIssueType`, limit the list of contexts returned to either those that apply to all issue types (true) or those that apply to only a subset of issue types (false) * By defining `isGlobalContext`, limit the list of contexts return to either those that apply to all projects (global contexts) (true) or those that apply to only a subset of projects (false). **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
pub async fn get_contexts_for_field(
configuration: &configuration::Configuration,
params: GetContextsForFieldParams,
) -> Result<models::PageBeanCustomFieldContext, Error<GetContextsForFieldError>> {
// unbox the parameters
let field_id = params.field_id;
let is_any_issue_type = params.is_any_issue_type;
let is_global_context = params.is_global_context;
let context_id = params.context_id;
let start_at = params.start_at;
let max_results = params.max_results;
let local_var_client = &configuration.client;
let local_var_uri_str = format!(
"{}/rest/api/3/field/{fieldId}/context",
configuration.base_path,
fieldId = crate::gen::apis::urlencode(field_id)
);
let mut local_var_req_builder = local_var_client.get(local_var_uri_str.as_str());
if let Some(ref local_var_str) = is_any_issue_type {
local_var_req_builder =
local_var_req_builder.query(&[("isAnyIssueType", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = is_global_context {
local_var_req_builder =
local_var_req_builder.query(&[("isGlobalContext", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = context_id {
local_var_req_builder = local_var_req_builder.query(&[(
"contextId",
&local_var_str
.into_iter()
.map(|p| p.to_string())
.collect::<Vec<String>>()
.join(",")
.to_string(),
)]);
}
if let Some(ref local_var_str) = start_at {
local_var_req_builder =
local_var_req_builder.query(&[("startAt", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = max_results {
local_var_req_builder =
local_var_req_builder.query(&[("maxResults", &local_var_str.to_string())]);
}
if let Some(ref local_var_user_agent) = configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = configuration.oauth_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
if let Some(ref local_var_auth_conf) = configuration.basic_auth {
local_var_req_builder = local_var_req_builder.basic_auth(
local_var_auth_conf.0.to_owned(),
local_var_auth_conf.1.to_owned(),
);
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetContextsForFieldError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Returns a [paginated](#pagination) list of project and issue type mappings and, for each mapping, the ID of a [custom field context](https://confluence.atlassian.com/x/k44fOw) that applies to the project and issue type. If there is no custom field context assigned to the project then, if present, the custom field context that applies to all projects is returned if it also applies to the issue type or all issue types. If a custom field context is not found, the returned custom field context ID is `null`. Duplicate project and issue type mappings cannot be provided in the request. The order of the returned values is the same as provided in the request. **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
pub async fn get_custom_field_contexts_for_projects_and_issue_types(
configuration: &configuration::Configuration,
params: GetCustomFieldContextsForProjectsAndIssueTypesParams,
) -> Result<
models::PageBeanContextForProjectAndIssueType,
Error<GetCustomFieldContextsForProjectsAndIssueTypesError>,
> {
// unbox the parameters
let field_id = params.field_id;
let project_issue_type_mappings = params.project_issue_type_mappings;
let start_at = params.start_at;
let max_results = params.max_results;
let local_var_client = &configuration.client;
let local_var_uri_str = format!(
"{}/rest/api/3/field/{fieldId}/context/mapping",
configuration.base_path,
fieldId = crate::gen::apis::urlencode(field_id)
);
let mut local_var_req_builder = local_var_client.post(local_var_uri_str.as_str());
if let Some(ref local_var_str) = start_at {
local_var_req_builder =
local_var_req_builder.query(&[("startAt", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = max_results {
local_var_req_builder =
local_var_req_builder.query(&[("maxResults", &local_var_str.to_string())]);
}
if let Some(ref local_var_user_agent) = configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = configuration.oauth_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
if let Some(ref local_var_auth_conf) = configuration.basic_auth {
local_var_req_builder = local_var_req_builder.basic_auth(
local_var_auth_conf.0.to_owned(),
local_var_auth_conf.1.to_owned(),
);
};
local_var_req_builder = local_var_req_builder.json(&project_issue_type_mappings);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetCustomFieldContextsForProjectsAndIssueTypesError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Returns a [paginated](#pagination) list of context to issue type mappings for a custom field. Mappings are returned for all contexts or a list of contexts. Mappings are ordered first by context ID and then by issue type ID. **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
pub async fn get_issue_type_mappings_for_contexts(
configuration: &configuration::Configuration,
params: GetIssueTypeMappingsForContextsParams,
) -> Result<models::PageBeanIssueTypeToContextMapping, Error<GetIssueTypeMappingsForContextsError>>
{
// unbox the parameters
let field_id = params.field_id;
let context_id = params.context_id;
let start_at = params.start_at;
let max_results = params.max_results;
let local_var_client = &configuration.client;
let local_var_uri_str = format!(
"{}/rest/api/3/field/{fieldId}/context/issueTypeMapping",
configuration.base_path,
fieldId = crate::gen::apis::urlencode(field_id)
);
let mut local_var_req_builder = local_var_client.get(local_var_uri_str.as_str());
if let Some(ref local_var_str) = context_id {
local_var_req_builder = local_var_req_builder.query(&[(
"contextId",
&local_var_str
.into_iter()
.map(|p| p.to_string())
.collect::<Vec<String>>()
.join(",")
.to_string(),
)]);
}
if let Some(ref local_var_str) = start_at {
local_var_req_builder =
local_var_req_builder.query(&[("startAt", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = max_results {
local_var_req_builder =
local_var_req_builder.query(&[("maxResults", &local_var_str.to_string())]);
}
if let Some(ref local_var_user_agent) = configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = configuration.oauth_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
if let Some(ref local_var_auth_conf) = configuration.basic_auth {
local_var_req_builder = local_var_req_builder.basic_auth(
local_var_auth_conf.0.to_owned(),
local_var_auth_conf.1.to_owned(),
);
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetIssueTypeMappingsForContextsError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Returns a [paginated](#pagination) list of context to project mappings for a custom field. The result can be filtered by `contextId`, or otherwise all mappings are returned. Invalid IDs are ignored. **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
pub async fn get_project_context_mapping(
configuration: &configuration::Configuration,
params: GetProjectContextMappingParams,
) -> Result<models::PageBeanCustomFieldContextProjectMapping, Error<GetProjectContextMappingError>>
{
// unbox the parameters
let field_id = params.field_id;
let context_id = params.context_id;
let start_at = params.start_at;
let max_results = params.max_results;
let local_var_client = &configuration.client;
let local_var_uri_str = format!(
"{}/rest/api/3/field/{fieldId}/context/projectmapping",
configuration.base_path,
fieldId = crate::gen::apis::urlencode(field_id)
);
let mut local_var_req_builder = local_var_client.get(local_var_uri_str.as_str());
if let Some(ref local_var_str) = context_id {
local_var_req_builder = local_var_req_builder.query(&[(
"contextId",
&local_var_str
.into_iter()
.map(|p| p.to_string())
.collect::<Vec<String>>()
.join(",")
.to_string(),
)]);
}
if let Some(ref local_var_str) = start_at {
local_var_req_builder =
local_var_req_builder.query(&[("startAt", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = max_results {
local_var_req_builder =
local_var_req_builder.query(&[("maxResults", &local_var_str.to_string())]);
}
if let Some(ref local_var_user_agent) = configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = configuration.oauth_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
if let Some(ref local_var_auth_conf) = configuration.basic_auth {
local_var_req_builder = local_var_req_builder.basic_auth(
local_var_auth_conf.0.to_owned(),
local_var_auth_conf.1.to_owned(),
);
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetProjectContextMappingError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Removes a custom field context from projects. A custom field context without any projects applies to all projects. Removing all projects from a custom field context would result in it applying to all projects. If any project in the request is not assigned to the context, or the operation would result in two global contexts for the field, the operation fails. **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
pub async fn remove_custom_field_context_from_projects(
configuration: &configuration::Configuration,
params: RemoveCustomFieldContextFromProjectsParams,
) -> Result<serde_json::Value, Error<RemoveCustomFieldContextFromProjectsError>> {
// unbox the parameters
let field_id = params.field_id;
let context_id = params.context_id;
let project_ids = params.project_ids;
let local_var_client = &configuration.client;
let local_var_uri_str = format!(
"{}/rest/api/3/field/{fieldId}/context/{contextId}/project/remove",
configuration.base_path,
fieldId = crate::gen::apis::urlencode(field_id),
contextId = context_id
);
let mut local_var_req_builder = local_var_client.post(local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = configuration.oauth_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
if let Some(ref local_var_auth_conf) = configuration.basic_auth {
local_var_req_builder = local_var_req_builder.basic_auth(
local_var_auth_conf.0.to_owned(),
local_var_auth_conf.1.to_owned(),
);
};
local_var_req_builder = local_var_req_builder.json(&project_ids);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<RemoveCustomFieldContextFromProjectsError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Removes issue types from a custom field context. A custom field context without any issue types applies to all issue types. **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
pub async fn remove_issue_types_from_context(
configuration: &configuration::Configuration,
params: RemoveIssueTypesFromContextParams,
) -> Result<serde_json::Value, Error<RemoveIssueTypesFromContextError>> {
// unbox the parameters
let field_id = params.field_id;
let context_id = params.context_id;
let issue_type_ids = params.issue_type_ids;
let local_var_client = &configuration.client;
let local_var_uri_str = format!(
"{}/rest/api/3/field/{fieldId}/context/{contextId}/issuetype/remove",
configuration.base_path,
fieldId = crate::gen::apis::urlencode(field_id),
contextId = context_id
);
let mut local_var_req_builder = local_var_client.post(local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = configuration.oauth_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
if let Some(ref local_var_auth_conf) = configuration.basic_auth {
local_var_req_builder = local_var_req_builder.basic_auth(
local_var_auth_conf.0.to_owned(),
local_var_auth_conf.1.to_owned(),
);
};
local_var_req_builder = local_var_req_builder.json(&issue_type_ids);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<RemoveIssueTypesFromContextError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Updates a [ custom field context](https://confluence.atlassian.com/adminjiracloud/what-are-custom-field-contexts-991923859.html). **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
pub async fn update_custom_field_context(
configuration: &configuration::Configuration,
params: UpdateCustomFieldContextParams,
) -> Result<serde_json::Value, Error<UpdateCustomFieldContextError>> {
// unbox the parameters
let field_id = params.field_id;
let context_id = params.context_id;
let custom_field_context_update_details = params.custom_field_context_update_details;
let local_var_client = &configuration.client;
let local_var_uri_str = format!(
"{}/rest/api/3/field/{fieldId}/context/{contextId}",
configuration.base_path,
fieldId = crate::gen::apis::urlencode(field_id),
contextId = context_id
);
let mut local_var_req_builder = local_var_client.put(local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = configuration.oauth_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
if let Some(ref local_var_auth_conf) = configuration.basic_auth {
local_var_req_builder = local_var_req_builder.basic_auth(
local_var_auth_conf.0.to_owned(),
local_var_auth_conf.1.to_owned(),
);
};
local_var_req_builder = local_var_req_builder.json(&custom_field_context_update_details);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<UpdateCustomFieldContextError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}