UNPKG

@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.

545 lines (509 loc) 23.2 kB
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 WorkflowSchemeDrafts { constructor(private client: Client) {} /** * 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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async createWorkflowSchemeDraftFromParent<T = Models.WorkflowScheme>( parameters: Parameters.CreateWorkflowSchemeDraftFromParent | string, callback: Callback<T>, ): Promise<void>; /** * 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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async createWorkflowSchemeDraftFromParent<T = Models.WorkflowScheme>( parameters: Parameters.CreateWorkflowSchemeDraftFromParent | string, callback?: never, ): Promise<T>; async createWorkflowSchemeDraftFromParent<T = Models.WorkflowScheme>( parameters: Parameters.CreateWorkflowSchemeDraftFromParent | string, callback?: Callback<T>, ): Promise<void | T> { const id = typeof parameters === 'string' ? parameters : parameters.id; const config: RequestConfig = { url: `/rest/api/2/workflowscheme/${id}/createdraft`, method: 'POST', }; return this.client.sendRequest(config, callback); } /** * 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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async getWorkflowSchemeDraft<T = Models.WorkflowScheme>( parameters: Parameters.GetWorkflowSchemeDraft | string, callback: Callback<T>, ): Promise<void>; /** * 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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async getWorkflowSchemeDraft<T = Models.WorkflowScheme>( parameters: Parameters.GetWorkflowSchemeDraft | string, callback?: never, ): Promise<T>; async getWorkflowSchemeDraft<T = Models.WorkflowScheme>( parameters: Parameters.GetWorkflowSchemeDraft | string, callback?: Callback<T>, ): Promise<void | T> { const id = typeof parameters === 'string' ? parameters : parameters.id; const config: RequestConfig = { url: `/rest/api/2/workflowscheme/${id}/draft`, method: 'GET', }; return this.client.sendRequest(config, callback); } /** * 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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async updateWorkflowSchemeDraft<T = Models.WorkflowScheme>( parameters: Parameters.UpdateWorkflowSchemeDraft, callback: Callback<T>, ): Promise<void>; /** * 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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async updateWorkflowSchemeDraft<T = Models.WorkflowScheme>( parameters: Parameters.UpdateWorkflowSchemeDraft, callback?: never, ): Promise<T>; async updateWorkflowSchemeDraft<T = Models.WorkflowScheme>( parameters: Parameters.UpdateWorkflowSchemeDraft, callback?: Callback<T>, ): Promise<void | T> { const config: RequestConfig = { url: `/rest/api/2/workflowscheme/${parameters.id}/draft`, method: 'PUT', data: { name: parameters.name, description: parameters.description, defaultWorkflow: parameters.defaultWorkflow, issueTypeMappings: parameters.issueTypeMappings, updateDraftIfNeeded: parameters.updateDraftIfNeeded, }, }; return this.client.sendRequest(config, callback); } /** * Deletes a draft workflow scheme. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async deleteWorkflowSchemeDraft<T = void>( parameters: Parameters.DeleteWorkflowSchemeDraft | string, callback: Callback<T>, ): Promise<void>; /** * Deletes a draft workflow scheme. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async deleteWorkflowSchemeDraft<T = void>( parameters: Parameters.DeleteWorkflowSchemeDraft | string, callback?: never, ): Promise<T>; async deleteWorkflowSchemeDraft<T = void>( parameters: Parameters.DeleteWorkflowSchemeDraft | string, callback?: Callback<T>, ): Promise<void | T> { const id = typeof parameters === 'string' ? parameters : parameters.id; const config: RequestConfig = { url: `/rest/api/2/workflowscheme/${id}/draft`, method: 'DELETE', }; return this.client.sendRequest(config, callback); } /** * 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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async getDraftDefaultWorkflow<T = Models.DefaultWorkflow>( parameters: Parameters.GetDraftDefaultWorkflow | string, callback: Callback<T>, ): Promise<void>; /** * 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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async getDraftDefaultWorkflow<T = Models.DefaultWorkflow>( parameters: Parameters.GetDraftDefaultWorkflow | string, callback?: never, ): Promise<T>; async getDraftDefaultWorkflow<T = Models.DefaultWorkflow>( parameters: Parameters.GetDraftDefaultWorkflow | string, callback?: Callback<T>, ): Promise<void | T> { const id = typeof parameters === 'string' ? parameters : parameters.id; const config: RequestConfig = { url: `/rest/api/2/workflowscheme/${id}/draft/default`, method: 'GET', }; return this.client.sendRequest(config, callback); } /** * Sets the default workflow for a workflow scheme's draft. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async updateDraftDefaultWorkflow<T = Models.WorkflowScheme>( parameters: Parameters.UpdateDraftDefaultWorkflow, callback: Callback<T>, ): Promise<void>; /** * Sets the default workflow for a workflow scheme's draft. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async updateDraftDefaultWorkflow<T = Models.WorkflowScheme>( parameters: Parameters.UpdateDraftDefaultWorkflow, callback?: never, ): Promise<T>; async updateDraftDefaultWorkflow<T = Models.WorkflowScheme>( parameters: Parameters.UpdateDraftDefaultWorkflow, callback?: Callback<T>, ): Promise<void | T> { const config: RequestConfig = { url: `/rest/api/2/workflowscheme/${parameters.id}/draft/default`, method: 'PUT', data: { updateDraftIfNeeded: parameters.updateDraftIfNeeded, workflow: parameters.workflow, }, }; return this.client.sendRequest(config, callback); } /** * 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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async deleteDraftDefaultWorkflow<T = Models.WorkflowScheme>( parameters: Parameters.DeleteDraftDefaultWorkflow | string, callback: Callback<T>, ): Promise<void>; /** * 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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async deleteDraftDefaultWorkflow<T = Models.WorkflowScheme>( parameters: Parameters.DeleteDraftDefaultWorkflow | string, callback?: never, ): Promise<T>; async deleteDraftDefaultWorkflow<T = Models.WorkflowScheme>( parameters: Parameters.DeleteDraftDefaultWorkflow | string, callback?: Callback<T>, ): Promise<void | T> { const id = typeof parameters === 'string' ? parameters : parameters.id; const config: RequestConfig = { url: `/rest/api/2/workflowscheme/${id}/draft/default`, method: 'DELETE', }; return this.client.sendRequest(config, callback); } /** * Returns the issue type-workflow mapping for an issue type in a workflow scheme's draft. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async getWorkflowSchemeDraftIssueType<T = Models.IssueTypeWorkflowMapping>( parameters: Parameters.GetWorkflowSchemeDraftIssueType, callback: Callback<T>, ): Promise<void>; /** * Returns the issue type-workflow mapping for an issue type in a workflow scheme's draft. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async getWorkflowSchemeDraftIssueType<T = Models.IssueTypeWorkflowMapping>( parameters: Parameters.GetWorkflowSchemeDraftIssueType, callback?: never, ): Promise<T>; async getWorkflowSchemeDraftIssueType<T = Models.IssueTypeWorkflowMapping>( parameters: Parameters.GetWorkflowSchemeDraftIssueType, callback?: Callback<T>, ): Promise<void | T> { const config: RequestConfig = { url: `/rest/api/2/workflowscheme/${parameters.id}/draft/issuetype/${parameters.issueType}`, method: 'GET', }; return this.client.sendRequest(config, callback); } /** * Sets the workflow for an issue type in a workflow scheme's draft. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async setWorkflowSchemeDraftIssueType<T = Models.WorkflowScheme>( parameters: Parameters.SetWorkflowSchemeDraftIssueType, callback: Callback<T>, ): Promise<void>; /** * Sets the workflow for an issue type in a workflow scheme's draft. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async setWorkflowSchemeDraftIssueType<T = Models.WorkflowScheme>( parameters: Parameters.SetWorkflowSchemeDraftIssueType, callback?: never, ): Promise<T>; async setWorkflowSchemeDraftIssueType<T = Models.WorkflowScheme>( parameters: Parameters.SetWorkflowSchemeDraftIssueType, callback?: Callback<T>, ): Promise<void | T> { const config: RequestConfig = { url: `/rest/api/2/workflowscheme/${parameters.id}/draft/issuetype/${parameters.issueType}`, method: 'PUT', data: parameters.details, }; return this.client.sendRequest(config, callback); } /** * Deletes the issue type-workflow mapping for an issue type in a workflow scheme's draft. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async deleteWorkflowSchemeDraftIssueType<T = Models.WorkflowScheme>( parameters: Parameters.DeleteWorkflowSchemeDraftIssueType, callback: Callback<T>, ): Promise<void>; /** * Deletes the issue type-workflow mapping for an issue type in a workflow scheme's draft. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async deleteWorkflowSchemeDraftIssueType<T = Models.WorkflowScheme>( parameters: Parameters.DeleteWorkflowSchemeDraftIssueType, callback?: never, ): Promise<T>; async deleteWorkflowSchemeDraftIssueType<T = Models.WorkflowScheme>( parameters: Parameters.DeleteWorkflowSchemeDraftIssueType, callback?: Callback<T>, ): Promise<void | T> { const config: RequestConfig = { url: `/rest/api/2/workflowscheme/${parameters.id}/draft/issuetype/${parameters.issueType}`, method: 'DELETE', }; return this.client.sendRequest(config, callback); } /** * Publishes a draft workflow scheme. * * Where the draft workflow includes new workflow statuses for an issue type, mappings are provided to update issues * with the original workflow status to the new workflow status. * * This operation is * [asynchronous](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#async-operations). Follow the * `location` link in the response to determine the status of the task and use [Get * task](#api-rest-api-2-task-taskId-get) to obtain updates. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async publishDraftWorkflowScheme<T = void>( parameters: Parameters.PublishDraftWorkflowScheme | string, callback: Callback<T>, ): Promise<void>; /** * Publishes a draft workflow scheme. * * Where the draft workflow includes new workflow statuses for an issue type, mappings are provided to update issues * with the original workflow status to the new workflow status. * * This operation is * [asynchronous](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#async-operations). Follow the * `location` link in the response to determine the status of the task and use [Get * task](#api-rest-api-2-task-taskId-get) to obtain updates. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async publishDraftWorkflowScheme<T = void>( parameters: Parameters.PublishDraftWorkflowScheme | string, callback?: never, ): Promise<T>; async publishDraftWorkflowScheme<T = void>( parameters: Parameters.PublishDraftWorkflowScheme | string, callback?: Callback<T>, ): Promise<void | T> { const id = typeof parameters === 'string' ? parameters : parameters.id; const config: RequestConfig = { url: `/rest/api/2/workflowscheme/${id}/draft/publish`, method: 'POST', params: { validateOnly: typeof parameters !== 'string' && parameters.validateOnly, }, data: { statusMappings: typeof parameters !== 'string' && parameters.statusMappings, }, }; return this.client.sendRequest(config, callback); } /** * Returns the workflow-issue type mappings for a workflow scheme's draft. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async getDraftWorkflow<T = Models.IssueTypesWorkflowMapping>( parameters: Parameters.GetDraftWorkflow, callback: Callback<T>, ): Promise<void>; /** * Returns the workflow-issue type mappings for a workflow scheme's draft. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async getDraftWorkflow<T = Models.IssueTypesWorkflowMapping>( parameters: Parameters.GetDraftWorkflow, callback?: never, ): Promise<T>; async getDraftWorkflow<T = Models.IssueTypesWorkflowMapping>( parameters: Parameters.GetDraftWorkflow, callback?: Callback<T>, ): Promise<void | T> { const config: RequestConfig = { url: `/rest/api/2/workflowscheme/${parameters.id}/draft/workflow`, method: 'GET', params: { workflowName: parameters.workflowName, }, }; return this.client.sendRequest(config, callback); } /** * 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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async updateDraftWorkflowMapping<T = Models.WorkflowScheme>( parameters: Parameters.UpdateDraftWorkflowMapping, callback: Callback<T>, ): Promise<void>; /** * 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](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async updateDraftWorkflowMapping<T = Models.WorkflowScheme>( parameters: Parameters.UpdateDraftWorkflowMapping, callback?: never, ): Promise<T>; async updateDraftWorkflowMapping<T = Models.WorkflowScheme>( parameters: Parameters.UpdateDraftWorkflowMapping, callback?: Callback<T>, ): Promise<void | T> { const config: RequestConfig = { url: `/rest/api/2/workflowscheme/${parameters.id}/draft/workflow`, method: 'PUT', params: { workflowName: parameters.workflowName, }, data: { defaultMapping: parameters.defaultMapping, issueTypes: parameters.issueTypes, updateDraftIfNeeded: parameters.updateDraftIfNeeded, workflow: parameters.workflow, }, }; return this.client.sendRequest(config, callback); } /** * Deletes the workflow-issue type mapping for a workflow in a workflow scheme's draft. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async deleteDraftWorkflowMapping<T = unknown>( parameters: Parameters.DeleteDraftWorkflowMapping, callback: Callback<T>, ): Promise<void>; /** * Deletes the workflow-issue type mapping for a workflow in a workflow scheme's draft. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async deleteDraftWorkflowMapping<T = unknown>( parameters: Parameters.DeleteDraftWorkflowMapping, callback?: never, ): Promise<T>; async deleteDraftWorkflowMapping<T = unknown>( parameters: Parameters.DeleteDraftWorkflowMapping, callback?: Callback<T>, ): Promise<void | T> { const config: RequestConfig = { url: `/rest/api/2/workflowscheme/${parameters.id}/draft/workflow`, method: 'DELETE', params: { workflowName: parameters.workflowName, }, }; return this.client.sendRequest(config, callback); } }