@esm-js/jira.js
Version:
A comprehensive JavaScript/TypeScript library designed for both Node.JS and browsers, facilitating seamless interaction with the Atlassian Jira API.
729 lines (697 loc) • 38.6 kB
text/typescript
import type * as Models from './models';
import type * as Parameters from './parameters';
import type { Client } from '../clients';
import type { Callback } from '../callback';
import type { RequestConfig } from '../requestConfig';
export class IssueCustomFieldContexts {
constructor(private client: Client) {}
/**
* Returns a [paginated](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). _Edit Workflow_ [edit workflow
* permission](https://support.atlassian.com/jira-cloud-administration/docs/permissions-for-company-managed-projects/#Edit-Workflows)
*/
async getContextsForField<T = Models.PageCustomFieldContext>(
parameters: Parameters.GetContextsForField | string,
callback: Callback<T>,
): Promise<void>;
/**
* Returns a [paginated](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). _Edit Workflow_ [edit workflow
* permission](https://support.atlassian.com/jira-cloud-administration/docs/permissions-for-company-managed-projects/#Edit-Workflows)
*/
async getContextsForField<T = Models.PageCustomFieldContext>(
parameters: Parameters.GetContextsForField | string,
callback?: never,
): Promise<T>;
async getContextsForField<T = Models.PageCustomFieldContext>(
parameters: Parameters.GetContextsForField | string,
callback?: Callback<T>,
): Promise<void | T> {
const fieldId = typeof parameters === 'string' ? parameters : parameters.fieldId;
const config: RequestConfig = {
url: `/rest/api/2/field/${fieldId}/context`,
method: 'GET',
params: {
isAnyIssueType: typeof parameters !== 'string' && parameters.isAnyIssueType,
isGlobalContext: typeof parameters !== 'string' && parameters.isGlobalContext,
contextId: typeof parameters !== 'string' && parameters.contextId,
startAt: typeof parameters !== 'string' && parameters.startAt,
maxResults: typeof parameters !== 'string' && parameters.maxResults,
},
};
return this.client.sendRequest(config, callback);
}
/**
* 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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async createCustomFieldContext<T = Models.CreateCustomFieldContext>(
parameters: Parameters.CreateCustomFieldContext,
callback: Callback<T>,
): Promise<void>;
/**
* 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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async createCustomFieldContext<T = Models.CreateCustomFieldContext>(
parameters: Parameters.CreateCustomFieldContext,
callback?: never,
): Promise<T>;
async createCustomFieldContext<T = Models.CreateCustomFieldContext>(
parameters: Parameters.CreateCustomFieldContext,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: `/rest/api/2/field/${parameters.fieldId}/context`,
method: 'POST',
data: {
description: parameters.description,
id: parameters.id,
issueTypeIds: parameters.issueTypeIds,
name: parameters.name,
projectIds: parameters.projectIds,
},
};
return this.client.sendRequest(config, callback);
}
/**
* Returns a [paginated](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#pagination) list of
* defaults for a custom field. The results can be filtered by `contextId`, otherwise all values are returned. If no
* defaults are set for a context, nothing is returned.\
* The returned object depends on type of the custom field:
*
* - `CustomFieldContextDefaultValueDate` (type `datepicker`) for date fields.
* - `CustomFieldContextDefaultValueDateTime` (type `datetimepicker`) for date-time fields.
* - `CustomFieldContextDefaultValueSingleOption` (type `option.single`) for single choice select lists and radio
* buttons.
* - `CustomFieldContextDefaultValueMultipleOption` (type `option.multiple`) for multiple choice select lists and
* checkboxes.
* - `CustomFieldContextDefaultValueCascadingOption` (type `option.cascading`) for cascading select lists.
* - `CustomFieldContextSingleUserPickerDefaults` (type `single.user.select`) for single users.
* - `CustomFieldContextDefaultValueMultiUserPicker` (type `multi.user.select`) for user lists.
* - `CustomFieldContextDefaultValueSingleGroupPicker` (type `grouppicker.single`) for single choice group pickers.
* - `CustomFieldContextDefaultValueMultipleGroupPicker` (type `grouppicker.multiple`) for multiple choice group
* pickers.
* - `CustomFieldContextDefaultValueURL` (type `url`) for URLs.
* - `CustomFieldContextDefaultValueProject` (type `project`) for project pickers.
* - `CustomFieldContextDefaultValueFloat` (type `float`) for floats (floating-point numbers).
* - `CustomFieldContextDefaultValueLabels` (type `labels`) for labels.
* - `CustomFieldContextDefaultValueTextField` (type `textfield`) for text fields.
* - `CustomFieldContextDefaultValueTextArea` (type `textarea`) for text area fields.
* - `CustomFieldContextDefaultValueReadOnly` (type `readonly`) for read only (text) fields.
* - `CustomFieldContextDefaultValueMultipleVersion` (type `version.multiple`) for single choice version pickers.
* - `CustomFieldContextDefaultValueSingleVersion` (type `version.single`) for multiple choice version pickers.
*
* Forge custom fields
* [types](https://developer.atlassian.com/platform/forge/manifest-reference/modules/jira-custom-field-type/#data-types)
* are also supported, returning:
*
* - `CustomFieldContextDefaultValueForgeStringFieldBean` (type `forge.string`) for Forge string fields.
* - `CustomFieldContextDefaultValueForgeMultiStringFieldBean` (type `forge.string.list`) for Forge string collection
* fields.
* - `CustomFieldContextDefaultValueForgeObjectFieldBean` (type `forge.object`) for Forge object fields.
* - `CustomFieldContextDefaultValueForgeDateTimeFieldBean` (type `forge.datetime`) for Forge date-time fields.
* - `CustomFieldContextDefaultValueForgeGroupFieldBean` (type `forge.group`) for Forge group fields.
* - `CustomFieldContextDefaultValueForgeMultiGroupFieldBean` (type `forge.group.list`) for Forge group collection
* fields.
* - `CustomFieldContextDefaultValueForgeNumberFieldBean` (type `forge.number`) for Forge number fields.
* - `CustomFieldContextDefaultValueForgeUserFieldBean` (type `forge.user`) for Forge user fields.
* - `CustomFieldContextDefaultValueForgeMultiUserFieldBean` (type `forge.user.list`) for Forge user collection fields.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async getDefaultValues<T = Models.PageCustomFieldContextDefaultValue>(
parameters: Parameters.GetDefaultValues | string,
callback: Callback<T>,
): Promise<void>;
/**
* Returns a [paginated](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#pagination) list of
* defaults for a custom field. The results can be filtered by `contextId`, otherwise all values are returned. If no
* defaults are set for a context, nothing is returned.\
* The returned object depends on type of the custom field:
*
* - `CustomFieldContextDefaultValueDate` (type `datepicker`) for date fields.
* - `CustomFieldContextDefaultValueDateTime` (type `datetimepicker`) for date-time fields.
* - `CustomFieldContextDefaultValueSingleOption` (type `option.single`) for single choice select lists and radio
* buttons.
* - `CustomFieldContextDefaultValueMultipleOption` (type `option.multiple`) for multiple choice select lists and
* checkboxes.
* - `CustomFieldContextDefaultValueCascadingOption` (type `option.cascading`) for cascading select lists.
* - `CustomFieldContextSingleUserPickerDefaults` (type `single.user.select`) for single users.
* - `CustomFieldContextDefaultValueMultiUserPicker` (type `multi.user.select`) for user lists.
* - `CustomFieldContextDefaultValueSingleGroupPicker` (type `grouppicker.single`) for single choice group pickers.
* - `CustomFieldContextDefaultValueMultipleGroupPicker` (type `grouppicker.multiple`) for multiple choice group
* pickers.
* - `CustomFieldContextDefaultValueURL` (type `url`) for URLs.
* - `CustomFieldContextDefaultValueProject` (type `project`) for project pickers.
* - `CustomFieldContextDefaultValueFloat` (type `float`) for floats (floating-point numbers).
* - `CustomFieldContextDefaultValueLabels` (type `labels`) for labels.
* - `CustomFieldContextDefaultValueTextField` (type `textfield`) for text fields.
* - `CustomFieldContextDefaultValueTextArea` (type `textarea`) for text area fields.
* - `CustomFieldContextDefaultValueReadOnly` (type `readonly`) for read only (text) fields.
* - `CustomFieldContextDefaultValueMultipleVersion` (type `version.multiple`) for single choice version pickers.
* - `CustomFieldContextDefaultValueSingleVersion` (type `version.single`) for multiple choice version pickers.
*
* Forge custom fields
* [types](https://developer.atlassian.com/platform/forge/manifest-reference/modules/jira-custom-field-type/#data-types)
* are also supported, returning:
*
* - `CustomFieldContextDefaultValueForgeStringFieldBean` (type `forge.string`) for Forge string fields.
* - `CustomFieldContextDefaultValueForgeMultiStringFieldBean` (type `forge.string.list`) for Forge string collection
* fields.
* - `CustomFieldContextDefaultValueForgeObjectFieldBean` (type `forge.object`) for Forge object fields.
* - `CustomFieldContextDefaultValueForgeDateTimeFieldBean` (type `forge.datetime`) for Forge date-time fields.
* - `CustomFieldContextDefaultValueForgeGroupFieldBean` (type `forge.group`) for Forge group fields.
* - `CustomFieldContextDefaultValueForgeMultiGroupFieldBean` (type `forge.group.list`) for Forge group collection
* fields.
* - `CustomFieldContextDefaultValueForgeNumberFieldBean` (type `forge.number`) for Forge number fields.
* - `CustomFieldContextDefaultValueForgeUserFieldBean` (type `forge.user`) for Forge user fields.
* - `CustomFieldContextDefaultValueForgeMultiUserFieldBean` (type `forge.user.list`) for Forge user collection fields.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async getDefaultValues<T = Models.PageCustomFieldContextDefaultValue>(
parameters: Parameters.GetDefaultValues | string,
callback?: never,
): Promise<T>;
async getDefaultValues<T = Models.PageCustomFieldContextDefaultValue>(
parameters: Parameters.GetDefaultValues | string,
callback?: Callback<T>,
): Promise<void | T> {
const fieldId = typeof parameters === 'string' ? parameters : parameters.fieldId;
const config: RequestConfig = {
url: `/rest/api/2/field/${fieldId}/context/defaultValue`,
method: 'GET',
params: {
contextId: typeof parameters !== 'string' && parameters.contextId,
startAt: typeof parameters !== 'string' && parameters.startAt,
maxResults: typeof parameters !== 'string' && parameters.maxResults,
},
};
return this.client.sendRequest(config, callback);
}
/**
* Sets default for contexts of a custom field. Default are defined using these objects:
*
* - `CustomFieldContextDefaultValueDate` (type `datepicker`) for date fields.
* - `CustomFieldContextDefaultValueDateTime` (type `datetimepicker`) for date-time fields.
* - `CustomFieldContextDefaultValueSingleOption` (type `option.single`) for single choice select lists and radio
* buttons.
* - `CustomFieldContextDefaultValueMultipleOption` (type `option.multiple`) for multiple choice select lists and
* checkboxes.
* - `CustomFieldContextDefaultValueCascadingOption` (type `option.cascading`) for cascading select lists.
* - `CustomFieldContextSingleUserPickerDefaults` (type `single.user.select`) for single users.
* - `CustomFieldContextDefaultValueMultiUserPicker` (type `multi.user.select`) for user lists.
* - `CustomFieldContextDefaultValueSingleGroupPicker` (type `grouppicker.single`) for single choice group pickers.
* - `CustomFieldContextDefaultValueMultipleGroupPicker` (type `grouppicker.multiple`) for multiple choice group
* pickers.
* - `CustomFieldContextDefaultValueURL` (type `url`) for URLs.
* - `CustomFieldContextDefaultValueProject` (type `project`) for project pickers.
* - `CustomFieldContextDefaultValueFloat` (type `float`) for floats (floating-point numbers).
* - `CustomFieldContextDefaultValueLabels` (type `labels`) for labels.
* - `CustomFieldContextDefaultValueTextField` (type `textfield`) for text fields.
* - `CustomFieldContextDefaultValueTextArea` (type `textarea`) for text area fields.
* - `CustomFieldContextDefaultValueReadOnly` (type `readonly`) for read only (text) fields.
* - `CustomFieldContextDefaultValueMultipleVersion` (type `version.multiple`) for single choice version pickers.
* - `CustomFieldContextDefaultValueSingleVersion` (type `version.single`) for multiple choice version pickers.
*
* Forge custom fields
* [types](https://developer.atlassian.com/platform/forge/manifest-reference/modules/jira-custom-field-type/#data-types)
* are also supported, returning:
*
* - `CustomFieldContextDefaultValueForgeStringFieldBean` (type `forge.string`) for Forge string fields.
* - `CustomFieldContextDefaultValueForgeMultiStringFieldBean` (type `forge.string.list`) for Forge string collection
* fields.
* - `CustomFieldContextDefaultValueForgeObjectFieldBean` (type `forge.object`) for Forge object fields.
* - `CustomFieldContextDefaultValueForgeDateTimeFieldBean` (type `forge.datetime`) for Forge date-time fields.
* - `CustomFieldContextDefaultValueForgeGroupFieldBean` (type `forge.group`) for Forge group fields.
* - `CustomFieldContextDefaultValueForgeMultiGroupFieldBean` (type `forge.group.list`) for Forge group collection
* fields.
* - `CustomFieldContextDefaultValueForgeNumberFieldBean` (type `forge.number`) for Forge number fields.
* - `CustomFieldContextDefaultValueForgeUserFieldBean` (type `forge.user`) for Forge user fields.
* - `CustomFieldContextDefaultValueForgeMultiUserFieldBean` (type `forge.user.list`) for Forge user collection fields.
*
* Only one type of default object can be included in a request. To remove a default for a context, set the default
* parameter to `null`.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async setDefaultValues<T = void>(parameters: Parameters.SetDefaultValues, callback: Callback<T>): Promise<void>;
/**
* Sets default for contexts of a custom field. Default are defined using these objects:
*
* - `CustomFieldContextDefaultValueDate` (type `datepicker`) for date fields.
* - `CustomFieldContextDefaultValueDateTime` (type `datetimepicker`) for date-time fields.
* - `CustomFieldContextDefaultValueSingleOption` (type `option.single`) for single choice select lists and radio
* buttons.
* - `CustomFieldContextDefaultValueMultipleOption` (type `option.multiple`) for multiple choice select lists and
* checkboxes.
* - `CustomFieldContextDefaultValueCascadingOption` (type `option.cascading`) for cascading select lists.
* - `CustomFieldContextSingleUserPickerDefaults` (type `single.user.select`) for single users.
* - `CustomFieldContextDefaultValueMultiUserPicker` (type `multi.user.select`) for user lists.
* - `CustomFieldContextDefaultValueSingleGroupPicker` (type `grouppicker.single`) for single choice group pickers.
* - `CustomFieldContextDefaultValueMultipleGroupPicker` (type `grouppicker.multiple`) for multiple choice group
* pickers.
* - `CustomFieldContextDefaultValueURL` (type `url`) for URLs.
* - `CustomFieldContextDefaultValueProject` (type `project`) for project pickers.
* - `CustomFieldContextDefaultValueFloat` (type `float`) for floats (floating-point numbers).
* - `CustomFieldContextDefaultValueLabels` (type `labels`) for labels.
* - `CustomFieldContextDefaultValueTextField` (type `textfield`) for text fields.
* - `CustomFieldContextDefaultValueTextArea` (type `textarea`) for text area fields.
* - `CustomFieldContextDefaultValueReadOnly` (type `readonly`) for read only (text) fields.
* - `CustomFieldContextDefaultValueMultipleVersion` (type `version.multiple`) for single choice version pickers.
* - `CustomFieldContextDefaultValueSingleVersion` (type `version.single`) for multiple choice version pickers.
*
* Forge custom fields
* [types](https://developer.atlassian.com/platform/forge/manifest-reference/modules/jira-custom-field-type/#data-types)
* are also supported, returning:
*
* - `CustomFieldContextDefaultValueForgeStringFieldBean` (type `forge.string`) for Forge string fields.
* - `CustomFieldContextDefaultValueForgeMultiStringFieldBean` (type `forge.string.list`) for Forge string collection
* fields.
* - `CustomFieldContextDefaultValueForgeObjectFieldBean` (type `forge.object`) for Forge object fields.
* - `CustomFieldContextDefaultValueForgeDateTimeFieldBean` (type `forge.datetime`) for Forge date-time fields.
* - `CustomFieldContextDefaultValueForgeGroupFieldBean` (type `forge.group`) for Forge group fields.
* - `CustomFieldContextDefaultValueForgeMultiGroupFieldBean` (type `forge.group.list`) for Forge group collection
* fields.
* - `CustomFieldContextDefaultValueForgeNumberFieldBean` (type `forge.number`) for Forge number fields.
* - `CustomFieldContextDefaultValueForgeUserFieldBean` (type `forge.user`) for Forge user fields.
* - `CustomFieldContextDefaultValueForgeMultiUserFieldBean` (type `forge.user.list`) for Forge user collection fields.
*
* Only one type of default object can be included in a request. To remove a default for a context, set the default
* parameter to `null`.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async setDefaultValues<T = void>(parameters: Parameters.SetDefaultValues, callback?: never): Promise<T>;
async setDefaultValues<T = void>(parameters: Parameters.SetDefaultValues, callback?: Callback<T>): Promise<void | T> {
const config: RequestConfig = {
url: `/rest/api/2/field/${parameters.fieldId}/context/defaultValue`,
method: 'PUT',
data: {
defaultValues: parameters.defaultValues,
},
};
return this.client.sendRequest(config, callback);
}
/**
* Returns a [paginated](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async getIssueTypeMappingsForContexts<T = Models.PageIssueTypeToContextMapping>(
parameters: Parameters.GetIssueTypeMappingsForContexts | string,
callback: Callback<T>,
): Promise<void>;
/**
* Returns a [paginated](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async getIssueTypeMappingsForContexts<T = Models.PageIssueTypeToContextMapping>(
parameters: Parameters.GetIssueTypeMappingsForContexts | string,
callback?: never,
): Promise<T>;
async getIssueTypeMappingsForContexts<T = Models.PageIssueTypeToContextMapping>(
parameters: Parameters.GetIssueTypeMappingsForContexts | string,
callback?: Callback<T>,
): Promise<void | T> {
const fieldId = typeof parameters === 'string' ? parameters : parameters.fieldId;
const config: RequestConfig = {
url: `/rest/api/2/field/${fieldId}/context/issuetypemapping`,
method: 'GET',
params: {
contextId: typeof parameters !== 'string' && parameters.contextId,
startAt: typeof parameters !== 'string' && parameters.startAt,
maxResults: typeof parameters !== 'string' && parameters.maxResults,
},
};
return this.client.sendRequest(config, callback);
}
/**
* Returns a [paginated](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async getCustomFieldContextsForProjectsAndIssueTypes<T = Models.PageContextForProjectAndIssueType>(
parameters: Parameters.GetCustomFieldContextsForProjectsAndIssueTypes,
callback: Callback<T>,
): Promise<void>;
/**
* Returns a [paginated](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async getCustomFieldContextsForProjectsAndIssueTypes<T = Models.PageContextForProjectAndIssueType>(
parameters: Parameters.GetCustomFieldContextsForProjectsAndIssueTypes,
callback?: never,
): Promise<T>;
async getCustomFieldContextsForProjectsAndIssueTypes<T = Models.PageContextForProjectAndIssueType>(
parameters: Parameters.GetCustomFieldContextsForProjectsAndIssueTypes,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: `/rest/api/2/field/${parameters.fieldId}/context/mapping`,
method: 'POST',
params: {
startAt: parameters.startAt,
maxResults: parameters.maxResults,
},
data: {
mappings: parameters.mappings,
},
};
return this.client.sendRequest(config, callback);
}
/**
* Returns a [paginated](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#pagination) list of
* context to project mappings for a custom field. The result can be filtered by `contextId`. Otherwise, all mappings
* are returned. Invalid IDs are ignored.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async getProjectContextMapping<T = Models.PageCustomFieldContextProjectMapping>(
parameters: Parameters.GetProjectContextMapping | string,
callback: Callback<T>,
): Promise<void>;
/**
* Returns a [paginated](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#pagination) list of
* context to project mappings for a custom field. The result can be filtered by `contextId`. Otherwise, all mappings
* are returned. Invalid IDs are ignored.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async getProjectContextMapping<T = Models.PageCustomFieldContextProjectMapping>(
parameters: Parameters.GetProjectContextMapping | string,
callback?: never,
): Promise<T>;
async getProjectContextMapping<T = Models.PageCustomFieldContextProjectMapping>(
parameters: Parameters.GetProjectContextMapping | string,
callback?: Callback<T>,
): Promise<void | T> {
const fieldId = typeof parameters === 'string' ? parameters : parameters.fieldId;
const config: RequestConfig = {
url: `/rest/api/2/field/${fieldId}/context/projectmapping`,
method: 'GET',
params: {
contextId: typeof parameters !== 'string' && parameters.contextId,
startAt: typeof parameters !== 'string' && parameters.startAt,
maxResults: typeof parameters !== 'string' && parameters.maxResults,
},
};
return this.client.sendRequest(config, callback);
}
/**
* Updates a [ custom field
* context](https://confluence.atlassian.com/adminjiracloud/what-are-custom-field-contexts-991923859.html).
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async updateCustomFieldContext<T = void>(
parameters: Parameters.UpdateCustomFieldContext,
callback: Callback<T>,
): Promise<void>;
/**
* Updates a [ custom field
* context](https://confluence.atlassian.com/adminjiracloud/what-are-custom-field-contexts-991923859.html).
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async updateCustomFieldContext<T = void>(
parameters: Parameters.UpdateCustomFieldContext,
callback?: never,
): Promise<T>;
async updateCustomFieldContext<T = void>(
parameters: Parameters.UpdateCustomFieldContext,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: `/rest/api/2/field/${parameters.fieldId}/context/${parameters.contextId}`,
method: 'PUT',
data: {
description: parameters.description,
name: parameters.name,
},
};
return this.client.sendRequest(config, callback);
}
/**
* Deletes a [custom field
* context](https://confluence.atlassian.com/adminjiracloud/what-are-custom-field-contexts-991923859.html).
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async deleteCustomFieldContext<T = void>(
parameters: Parameters.DeleteCustomFieldContext,
callback: Callback<T>,
): Promise<void>;
/**
* Deletes a [custom field
* context](https://confluence.atlassian.com/adminjiracloud/what-are-custom-field-contexts-991923859.html).
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async deleteCustomFieldContext<T = void>(
parameters: Parameters.DeleteCustomFieldContext,
callback?: never,
): Promise<T>;
async deleteCustomFieldContext<T = void>(
parameters: Parameters.DeleteCustomFieldContext,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: `/rest/api/2/field/${parameters.fieldId}/context/${parameters.contextId}`,
method: 'DELETE',
};
return this.client.sendRequest(config, callback);
}
/**
* 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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async addIssueTypesToContext<T = void>(
parameters: Parameters.AddIssueTypesToContext,
callback: Callback<T>,
): Promise<void>;
/**
* 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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async addIssueTypesToContext<T = void>(parameters: Parameters.AddIssueTypesToContext, callback?: never): Promise<T>;
async addIssueTypesToContext<T = void>(
parameters: Parameters.AddIssueTypesToContext,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: `/rest/api/2/field/${parameters.fieldId}/context/${parameters.contextId}/issuetype`,
method: 'PUT',
data: {
issueTypeIds: parameters.issueTypeIds,
},
};
return this.client.sendRequest(config, callback);
}
/**
* Removes issue types from a custom field context.
*
* A custom field context without any issue types applies to all issue types.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async removeIssueTypesFromContext<T = void>(
parameters: Parameters.RemoveIssueTypesFromContext,
callback: Callback<T>,
): Promise<void>;
/**
* Removes issue types from a custom field context.
*
* A custom field context without any issue types applies to all issue types.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async removeIssueTypesFromContext<T = void>(
parameters: Parameters.RemoveIssueTypesFromContext,
callback?: never,
): Promise<T>;
async removeIssueTypesFromContext<T = void>(
parameters: Parameters.RemoveIssueTypesFromContext,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: `/rest/api/2/field/${parameters.fieldId}/context/${parameters.contextId}/issuetype/remove`,
method: 'POST',
data: {
issueTypeIds: parameters.issueTypeIds,
},
};
return this.client.sendRequest(config, callback);
}
/**
* 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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async assignProjectsToCustomFieldContext<T = void>(
parameters: Parameters.AssignProjectsToCustomFieldContext,
callback: Callback<T>,
): Promise<void>;
/**
* 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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async assignProjectsToCustomFieldContext<T = void>(
parameters: Parameters.AssignProjectsToCustomFieldContext,
callback?: never,
): Promise<T>;
async assignProjectsToCustomFieldContext<T = void>(
parameters: Parameters.AssignProjectsToCustomFieldContext,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: `/rest/api/2/field/${parameters.fieldId}/context/${parameters.contextId}/project`,
method: 'PUT',
data: {
projectIds: parameters.projectIds,
},
};
return this.client.sendRequest(config, callback);
}
/**
* 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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async removeCustomFieldContextFromProjects<T = void>(
parameters: Parameters.RemoveCustomFieldContextFromProjects,
callback: Callback<T>,
): Promise<void>;
/**
* 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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async removeCustomFieldContextFromProjects<T = void>(
parameters: Parameters.RemoveCustomFieldContextFromProjects,
callback?: never,
): Promise<T>;
async removeCustomFieldContextFromProjects<T = void>(
parameters: Parameters.RemoveCustomFieldContextFromProjects,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: `/rest/api/2/field/${parameters.fieldId}/context/${parameters.contextId}/project/remove`,
method: 'POST',
data: {
projectIds: parameters.projectIds,
},
};
return this.client.sendRequest(config, callback);
}
}