@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
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 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);
}
}