import * as Models from './models'; import * as Parameters from './parameters'; import { Callback } from '../callback'; import { Client } from '../clients'; import { paramSerializer } from '../paramSerializer'; import { RequestConfig } from '../requestConfig'; export class IssuePriorities { constructor(private client: Client) {} /** * Returns the list of all issue priorities. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** * Permission to access Jira. */ async getPriorities(callback: Callback): Promise; /** * Returns the list of all issue priorities. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** * Permission to access Jira. */ async getPriorities(callback?: never): Promise; async getPriorities(callback?: Callback): Promise { const config: RequestConfig = { url: '/rest/api/3/priority', method: 'GET', }; return this.client.sendRequest(config, callback); } /** * Creates an issue priority. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async createPriority( parameters: Parameters.CreatePriority, callback: Callback, ): Promise; /** * Creates an issue priority. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async createPriority(parameters: Parameters.CreatePriority, callback?: never): Promise; async createPriority( parameters: Parameters.CreatePriority, callback?: Callback, ): Promise { const config: RequestConfig = { url: '/rest/api/3/priority', method: 'POST', data: { description: parameters.description, iconUrl: parameters.iconUrl, name: parameters.name, statusColor: parameters.statusColor, }, }; return this.client.sendRequest(config, callback); } /** * Sets default issue priority. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async setDefaultPriority( parameters: Parameters.SetDefaultPriority | undefined, callback: Callback, ): Promise; /** * Sets default issue priority. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async setDefaultPriority(parameters?: Parameters.SetDefaultPriority, callback?: never): Promise; async setDefaultPriority( parameters?: Parameters.SetDefaultPriority, callback?: Callback, ): Promise { const config: RequestConfig = { url: '/rest/api/3/priority/default', method: 'PUT', data: { id: parameters?.id, }, }; return this.client.sendRequest(config, callback); } /** * Changes the order of issue priorities. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async movePriorities(parameters: Parameters.MovePriorities, callback: Callback): Promise; /** * Changes the order of issue priorities. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async movePriorities(parameters: Parameters.MovePriorities, callback?: never): Promise; async movePriorities(parameters: Parameters.MovePriorities, callback?: Callback): Promise { const config: RequestConfig = { url: '/rest/api/3/priority/move', method: 'PUT', data: { after: parameters.after, ids: parameters.ids, position: parameters.position, }, }; return this.client.sendRequest(config, callback); } /** * Returns a [paginated](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#pagination) list of * priorities. The list can contain all priorities or a subset determined by any combination of these criteria: * * - A list of priority IDs. Any invalid priority IDs are ignored. * - A list of project IDs. Only priorities that are available in these projects will be returned. Any invalid project * IDs are ignored. * - Whether the field configuration is a default. This returns priorities from company-managed (classic) projects only, * as there is no concept of default priorities in team-managed projects. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** * Permission to access Jira. */ async searchPriorities( parameters: Parameters.SearchPriorities | undefined, callback: Callback, ): Promise; /** * Returns a [paginated](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#pagination) list of * priorities. The list can contain all priorities or a subset determined by any combination of these criteria: * * - A list of priority IDs. Any invalid priority IDs are ignored. * - A list of project IDs. Only priorities that are available in these projects will be returned. Any invalid project * IDs are ignored. * - Whether the field configuration is a default. This returns priorities from company-managed (classic) projects only, * as there is no concept of default priorities in team-managed projects. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** * Permission to access Jira. */ async searchPriorities( parameters?: Parameters.SearchPriorities, callback?: never, ): Promise; async searchPriorities( parameters?: Parameters.SearchPriorities, callback?: Callback, ): Promise { const config: RequestConfig = { url: '/rest/api/3/priority/search', method: 'GET', params: { startAt: parameters?.startAt, maxResults: parameters?.maxResults, id: parameters?.id, projectId: paramSerializer('projectId', parameters?.projectId), onlyDefault: parameters?.onlyDefault, }, }; return this.client.sendRequest(config, callback); } /** * Returns an issue priority. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** * Permission to access Jira. */ async getPriority(parameters: Parameters.GetPriority, callback: Callback): Promise; /** * Returns an issue priority. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** * Permission to access Jira. */ async getPriority(parameters: Parameters.GetPriority, callback?: never): Promise; async getPriority( parameters: Parameters.GetPriority, callback?: Callback, ): Promise { const config: RequestConfig = { url: `/rest/api/3/priority/${parameters.id}`, method: 'GET', }; return this.client.sendRequest(config, callback); } /** * Updates an issue priority. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async updatePriority(parameters: Parameters.UpdatePriority, callback: Callback): Promise; /** * Updates an issue priority. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async updatePriority(parameters: Parameters.UpdatePriority, callback?: never): Promise; async updatePriority(parameters: Parameters.UpdatePriority, callback?: Callback): Promise { const config: RequestConfig = { url: `/rest/api/3/priority/${parameters.id}`, method: 'PUT', data: { description: parameters.description, iconUrl: parameters.iconUrl, name: parameters.name, statusColor: parameters.statusColor, }, }; return this.client.sendRequest(config, callback); } }