@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.
754 lines (710 loc) • 32.9 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 WorkflowSchemes {
constructor(private client: Client) {}
/**
* Returns a [paginated](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#pagination) list of all
* workflow schemes, not including draft workflow schemes.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async getAllWorkflowSchemes<T = Models.PageWorkflowScheme>(
parameters: Parameters.GetAllWorkflowSchemes | undefined,
callback: Callback<T>,
): Promise<void>;
/**
* Returns a [paginated](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#pagination) list of all
* workflow schemes, not including draft workflow schemes.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async getAllWorkflowSchemes<T = Models.PageWorkflowScheme>(
parameters?: Parameters.GetAllWorkflowSchemes,
callback?: never,
): Promise<T>;
async getAllWorkflowSchemes<T = Models.PageWorkflowScheme>(
parameters?: Parameters.GetAllWorkflowSchemes,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: '/rest/api/2/workflowscheme',
method: 'GET',
params: {
startAt: parameters?.startAt,
maxResults: parameters?.maxResults,
},
};
return this.client.sendRequest(config, callback);
}
/**
* Creates a 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 createWorkflowScheme<T = Models.WorkflowScheme>(
parameters: Parameters.CreateWorkflowScheme,
callback: Callback<T>,
): Promise<void>;
/**
* Creates a 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 createWorkflowScheme<T = Models.WorkflowScheme>(
parameters: Parameters.CreateWorkflowScheme,
callback?: never,
): Promise<T>;
async createWorkflowScheme<T = Models.WorkflowScheme>(
parameters: Parameters.CreateWorkflowScheme,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: '/rest/api/2/workflowscheme',
method: 'POST',
data: {
defaultWorkflow: parameters.defaultWorkflow,
description: parameters.description,
draft: parameters.draft,
id: parameters.id,
issueTypeMappings: parameters.issueTypeMappings,
issueTypes: parameters.issueTypes,
lastModified: parameters.lastModified,
lastModifiedUser: parameters.lastModifiedUser,
name: parameters.name,
originalDefaultWorkflow: parameters.originalDefaultWorkflow,
originalIssueTypeMappings: parameters.originalIssueTypeMappings,
self: parameters.self,
updateDraftIfNeeded: parameters.updateDraftIfNeeded,
},
};
return this.client.sendRequest(config, callback);
}
/**
* Returns a list of workflow schemes by providing workflow scheme IDs or project IDs.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
*
* - _Administer Jira_ global permission to access all, including project-scoped, workflow schemes
* - _Administer projects_ project permissions to access project-scoped workflow schemes
*/
async readWorkflowSchemes<T = Models.WorkflowSchemeReadResponse[]>(
parameters: Parameters.ReadWorkflowSchemes,
callback: Callback<T>,
): Promise<void>;
/**
* Returns a list of workflow schemes by providing workflow scheme IDs or project IDs.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
*
* - _Administer Jira_ global permission to access all, including project-scoped, workflow schemes
* - _Administer projects_ project permissions to access project-scoped workflow schemes
*/
async readWorkflowSchemes<T = Models.WorkflowSchemeReadResponse[]>(
parameters: Parameters.ReadWorkflowSchemes,
callback?: never,
): Promise<T>;
async readWorkflowSchemes<T = Models.WorkflowSchemeReadResponse[]>(
parameters: Parameters.ReadWorkflowSchemes,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: '/rest/api/2/workflowscheme/read',
method: 'POST',
params: {
expand: parameters.expand,
},
data: {
projectIds: parameters.projectIds,
workflowSchemeIds: parameters.workflowSchemeIds,
},
};
return this.client.sendRequest(config, callback);
}
/**
* Updates company-managed and team-managed project workflow schemes. This API doesn't have a concept of draft, so any
* changes made to a workflow scheme are immediately available. When changing the available statuses for issue types,
* an [asynchronous task](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#async-operations)
* migrates the issues as defined in the provided mappings.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
*
* - _Administer Jira_ project permission to update all, including global-scoped, workflow schemes.
* - _Administer projects_ project permission to update project-scoped workflow schemes.
*/
async updateSchemes<T = unknown>(parameters: Parameters.UpdateSchemes, callback: Callback<T>): Promise<void>;
/**
* Updates company-managed and team-managed project workflow schemes. This API doesn't have a concept of draft, so any
* changes made to a workflow scheme are immediately available. When changing the available statuses for issue types,
* an [asynchronous task](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#async-operations)
* migrates the issues as defined in the provided mappings.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
*
* - _Administer Jira_ project permission to update all, including global-scoped, workflow schemes.
* - _Administer projects_ project permission to update project-scoped workflow schemes.
*/
async updateSchemes<T = unknown>(parameters: Parameters.UpdateSchemes, callback?: never): Promise<T>;
async updateSchemes<T = unknown>(parameters: Parameters.UpdateSchemes, callback?: Callback<T>): Promise<void | T> {
const config: RequestConfig = {
url: '/rest/api/2/workflowscheme/update',
method: 'POST',
data: {
defaultWorkflowId: parameters.defaultWorkflowId,
description: parameters.description,
id: parameters.id,
name: parameters.name,
statusMappingsByIssueTypeOverride: parameters.statusMappingsByIssueTypeOverride,
statusMappingsByWorkflows: parameters.statusMappingsByWorkflows,
version: parameters.version,
workflowsForIssueTypes: parameters.workflowsForIssueTypes,
},
};
return this.client.sendRequest(config, callback);
}
/**
* Gets the required status mappings for the desired changes to a workflow scheme. The results are provided per issue
* type and workflow. When updating a workflow scheme, status mappings can be provided per issue type, per workflow,
* or both.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
*
* - _Administer Jira_ permission to update all, including global-scoped, workflow schemes.
* - _Administer projects_ project permission to update project-scoped workflow schemes.
*/
async updateWorkflowSchemeMappings<T = Models.WorkflowSchemeUpdateRequiredMappingsResponse>(
parameters: Parameters.UpdateWorkflowSchemeMappings,
callback: Callback<T>,
): Promise<void>;
/**
* Gets the required status mappings for the desired changes to a workflow scheme. The results are provided per issue
* type and workflow. When updating a workflow scheme, status mappings can be provided per issue type, per workflow,
* or both.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
*
* - _Administer Jira_ permission to update all, including global-scoped, workflow schemes.
* - _Administer projects_ project permission to update project-scoped workflow schemes.
*/
async updateWorkflowSchemeMappings<T = Models.WorkflowSchemeUpdateRequiredMappingsResponse>(
parameters: Parameters.UpdateWorkflowSchemeMappings,
callback?: never,
): Promise<T>;
async updateWorkflowSchemeMappings<T = Models.WorkflowSchemeUpdateRequiredMappingsResponse>(
parameters: Parameters.UpdateWorkflowSchemeMappings,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: '/rest/api/2/workflowscheme/update/mappings',
method: 'POST',
data: {
defaultWorkflowId: parameters.defaultWorkflowId,
id: parameters.id,
workflowsForIssueTypes: parameters.workflowsForIssueTypes,
},
};
return this.client.sendRequest(config, callback);
}
/**
* Returns a 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 getWorkflowScheme<T = Models.WorkflowScheme>(
parameters: Parameters.GetWorkflowScheme | string,
callback: Callback<T>,
): Promise<void>;
/**
* Returns a 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 getWorkflowScheme<T = Models.WorkflowScheme>(
parameters: Parameters.GetWorkflowScheme | string,
callback?: never,
): Promise<T>;
async getWorkflowScheme<T = Models.WorkflowScheme>(
parameters: Parameters.GetWorkflowScheme | string,
callback?: Callback<T>,
): Promise<void | T> {
const id = typeof parameters === 'string' ? parameters : parameters.id;
const config: RequestConfig = {
url: `/rest/api/2/workflowscheme/${id}`,
method: 'GET',
params: {
returnDraftIfExists: typeof parameters !== 'string' && parameters.returnDraftIfExists,
},
};
return this.client.sendRequest(config, callback);
}
/**
* Updates a company-manged project workflow scheme, including the name, default workflow, issue type to project
* mappings, and more. If the workflow scheme is active (that is, being used by at least one project), then a draft
* workflow scheme is created or updated instead, provided that `updateDraftIfNeeded` is set to `true`.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async updateWorkflowScheme<T = Models.WorkflowScheme>(
parameters: Parameters.UpdateWorkflowScheme,
callback: Callback<T>,
): Promise<void>;
/**
* Updates a company-manged project workflow scheme, including the name, default workflow, issue type to project
* mappings, and more. If the workflow scheme is active (that is, being used by at least one project), then a draft
* workflow scheme is created or updated instead, provided that `updateDraftIfNeeded` is set to `true`.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async updateWorkflowScheme<T = Models.WorkflowScheme>(
parameters: Parameters.UpdateWorkflowScheme,
callback?: never,
): Promise<T>;
async updateWorkflowScheme<T = Models.WorkflowScheme>(
parameters: Parameters.UpdateWorkflowScheme,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: `/rest/api/2/workflowscheme/${parameters.id}`,
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 workflow scheme. Note that a workflow scheme cannot be deleted if it is active (that is, being used by at
* least one project).
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async deleteWorkflowScheme<T = void>(
parameters: Parameters.DeleteWorkflowScheme | string,
callback: Callback<T>,
): Promise<void>;
/**
* Deletes a workflow scheme. Note that a workflow scheme cannot be deleted if it is active (that is, being used by at
* least one project).
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async deleteWorkflowScheme<T = void>(
parameters: Parameters.DeleteWorkflowScheme | string,
callback?: never,
): Promise<T>;
async deleteWorkflowScheme<T = void>(
parameters: Parameters.DeleteWorkflowScheme | string,
callback?: Callback<T>,
): Promise<void | T> {
const id = typeof parameters === 'string' ? parameters : parameters.id;
const config: RequestConfig = {
url: `/rest/api/2/workflowscheme/${id}`,
method: 'DELETE',
};
return this.client.sendRequest(config, callback);
}
/**
* Returns the default workflow for a workflow scheme. 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 getDefaultWorkflow<T = Models.DefaultWorkflow>(
parameters: Parameters.GetDefaultWorkflow | string,
callback: Callback<T>,
): Promise<void>;
/**
* Returns the default workflow for a workflow scheme. 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 getDefaultWorkflow<T = Models.DefaultWorkflow>(
parameters: Parameters.GetDefaultWorkflow | string,
callback?: never,
): Promise<T>;
async getDefaultWorkflow<T = Models.DefaultWorkflow>(
parameters: Parameters.GetDefaultWorkflow | string,
callback?: Callback<T>,
): Promise<void | T> {
const id = typeof parameters === 'string' ? parameters : parameters.id;
const config: RequestConfig = {
url: `/rest/api/2/workflowscheme/${id}/default`,
method: 'GET',
params: {
returnDraftIfExists: typeof parameters !== 'string' && parameters.returnDraftIfExists,
},
};
return this.client.sendRequest(config, callback);
}
/**
* Sets the default workflow for a workflow scheme.
*
* Note that active workflow schemes cannot be edited. If the workflow scheme is active, set `updateDraftIfNeeded` to
* `true` in the request object and a draft workflow scheme is created or updated with the new default workflow. The
* draft workflow scheme can be published 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 updateDefaultWorkflow<T = Models.WorkflowScheme>(
parameters: Parameters.UpdateDefaultWorkflow,
callback: Callback<T>,
): Promise<void>;
/**
* Sets the default workflow for a workflow scheme.
*
* Note that active workflow schemes cannot be edited. If the workflow scheme is active, set `updateDraftIfNeeded` to
* `true` in the request object and a draft workflow scheme is created or updated with the new default workflow. The
* draft workflow scheme can be published 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 updateDefaultWorkflow<T = Models.WorkflowScheme>(
parameters: Parameters.UpdateDefaultWorkflow,
callback?: never,
): Promise<T>;
async updateDefaultWorkflow<T = Models.WorkflowScheme>(
parameters: Parameters.UpdateDefaultWorkflow,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: `/rest/api/2/workflowscheme/${parameters.id}/default`,
method: 'PUT',
data: {
updateDraftIfNeeded: parameters.updateDraftIfNeeded,
workflow: parameters.workflow,
},
};
return this.client.sendRequest(config, callback);
}
/**
* Resets the default workflow for a workflow scheme. That is, the default workflow is set to Jira's system workflow
* (the _jira_ workflow).
*
* Note that active workflow schemes cannot be edited. If the workflow scheme is active, set `updateDraftIfNeeded` to
* `true` and a draft workflow scheme is created or updated with the default workflow reset. The draft workflow scheme
* can be published 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 deleteDefaultWorkflow<T = Models.WorkflowScheme>(
parameters: Parameters.DeleteDefaultWorkflow | string,
callback: Callback<T>,
): Promise<void>;
/**
* Resets the default workflow for a workflow scheme. That is, the default workflow is set to Jira's system workflow
* (the _jira_ workflow).
*
* Note that active workflow schemes cannot be edited. If the workflow scheme is active, set `updateDraftIfNeeded` to
* `true` and a draft workflow scheme is created or updated with the default workflow reset. The draft workflow scheme
* can be published 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 deleteDefaultWorkflow<T = Models.WorkflowScheme>(
parameters: Parameters.DeleteDefaultWorkflow | string,
callback?: never,
): Promise<T>;
async deleteDefaultWorkflow<T = Models.WorkflowScheme>(
parameters: Parameters.DeleteDefaultWorkflow | string,
callback?: Callback<T>,
): Promise<void | T> {
const id = typeof parameters === 'string' ? parameters : parameters.id;
const config: RequestConfig = {
url: `/rest/api/2/workflowscheme/${id}/default`,
method: 'DELETE',
params: {
updateDraftIfNeeded: typeof parameters !== 'string' && parameters.updateDraftIfNeeded,
},
};
return this.client.sendRequest(config, callback);
}
/**
* Returns the issue type-workflow mapping for an issue type in a 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 getWorkflowSchemeIssueType<T = Models.IssueTypeWorkflowMapping>(
parameters: Parameters.GetWorkflowSchemeIssueType,
callback: Callback<T>,
): Promise<void>;
/**
* Returns the issue type-workflow mapping for an issue type in a 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 getWorkflowSchemeIssueType<T = Models.IssueTypeWorkflowMapping>(
parameters: Parameters.GetWorkflowSchemeIssueType,
callback?: never,
): Promise<T>;
async getWorkflowSchemeIssueType<T = Models.IssueTypeWorkflowMapping>(
parameters: Parameters.GetWorkflowSchemeIssueType,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: `/rest/api/2/workflowscheme/${parameters.id}/issuetype/${parameters.issueType}`,
method: 'GET',
params: {
returnDraftIfExists: parameters.returnDraftIfExists,
},
};
return this.client.sendRequest(config, callback);
}
/**
* Sets the workflow for an issue type in a workflow scheme.
*
* Note that active workflow schemes cannot be edited. If the workflow scheme is active, set `updateDraftIfNeeded` to
* `true` in the request body and a draft workflow scheme is created or updated with the new issue type-workflow
* mapping. The draft workflow scheme can be published 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 setWorkflowSchemeIssueType<T = Models.WorkflowScheme>(
parameters: Parameters.SetWorkflowSchemeIssueType,
callback: Callback<T>,
): Promise<void>;
/**
* Sets the workflow for an issue type in a workflow scheme.
*
* Note that active workflow schemes cannot be edited. If the workflow scheme is active, set `updateDraftIfNeeded` to
* `true` in the request body and a draft workflow scheme is created or updated with the new issue type-workflow
* mapping. The draft workflow scheme can be published 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 setWorkflowSchemeIssueType<T = Models.WorkflowScheme>(
parameters: Parameters.SetWorkflowSchemeIssueType,
callback?: never,
): Promise<T>;
async setWorkflowSchemeIssueType<T = Models.WorkflowScheme>(
parameters: Parameters.SetWorkflowSchemeIssueType,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: `/rest/api/2/workflowscheme/${parameters.id}/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.
*
* Note that active workflow schemes cannot be edited. If the workflow scheme is active, set `updateDraftIfNeeded` to
* `true` and a draft workflow scheme is created or updated with the issue type-workflow mapping deleted. The draft
* workflow scheme can be published 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 deleteWorkflowSchemeIssueType<T = Models.WorkflowScheme>(
parameters: Parameters.DeleteWorkflowSchemeIssueType,
callback: Callback<T>,
): Promise<void>;
/**
* Deletes the issue type-workflow mapping for an issue type in a workflow scheme.
*
* Note that active workflow schemes cannot be edited. If the workflow scheme is active, set `updateDraftIfNeeded` to
* `true` and a draft workflow scheme is created or updated with the issue type-workflow mapping deleted. The draft
* workflow scheme can be published 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 deleteWorkflowSchemeIssueType<T = Models.WorkflowScheme>(
parameters: Parameters.DeleteWorkflowSchemeIssueType,
callback?: never,
): Promise<T>;
async deleteWorkflowSchemeIssueType<T = Models.WorkflowScheme>(
parameters: Parameters.DeleteWorkflowSchemeIssueType,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: `/rest/api/2/workflowscheme/${parameters.id}/issuetype/${parameters.issueType}`,
method: 'DELETE',
params: {
updateDraftIfNeeded: parameters.updateDraftIfNeeded,
},
};
return this.client.sendRequest(config, callback);
}
/**
* Returns the workflow-issue type mappings for a 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 getWorkflow<T = Models.IssueTypesWorkflowMapping>(
parameters: Parameters.GetWorkflow | string,
callback: Callback<T>,
): Promise<void>;
/**
* Returns the workflow-issue type mappings for a 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 getWorkflow<T = Models.IssueTypesWorkflowMapping>(
parameters: Parameters.GetWorkflow | string,
callback?: never,
): Promise<T>;
async getWorkflow<T = Models.IssueTypesWorkflowMapping>(
parameters: Parameters.GetWorkflow | string,
callback?: Callback<T>,
): Promise<void | T> {
const id = typeof parameters === 'string' ? parameters : parameters.id;
const config: RequestConfig = {
url: `/rest/api/2/workflowscheme/${id}/workflow`,
method: 'GET',
params: {
workflowName: typeof parameters !== 'string' && parameters.workflowName,
returnDraftIfExists: typeof parameters !== 'string' && parameters.returnDraftIfExists,
},
};
return this.client.sendRequest(config, callback);
}
/**
* Sets the issue types for a workflow in a workflow scheme. The workflow can also be set as the default workflow for
* the workflow scheme. Unmapped issues types are mapped to the default workflow.
*
* Note that active workflow schemes cannot be edited. If the workflow scheme is active, set `updateDraftIfNeeded` to
* `true` in the request body and a draft workflow scheme is created or updated with the new workflow-issue types
* mappings. The draft workflow scheme can be published 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 updateWorkflowMapping<T = Models.WorkflowScheme>(
parameters: Parameters.UpdateWorkflowMapping,
callback: Callback<T>,
): Promise<void>;
/**
* Sets the issue types for a workflow in a workflow scheme. The workflow can also be set as the default workflow for
* the workflow scheme. Unmapped issues types are mapped to the default workflow.
*
* Note that active workflow schemes cannot be edited. If the workflow scheme is active, set `updateDraftIfNeeded` to
* `true` in the request body and a draft workflow scheme is created or updated with the new workflow-issue types
* mappings. The draft workflow scheme can be published 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 updateWorkflowMapping<T = Models.WorkflowScheme>(
parameters: Parameters.UpdateWorkflowMapping,
callback?: never,
): Promise<T>;
async updateWorkflowMapping<T = Models.WorkflowScheme>(
parameters: Parameters.UpdateWorkflowMapping,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: `/rest/api/2/workflowscheme/${parameters.id}/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.
*
* Note that active workflow schemes cannot be edited. If the workflow scheme is active, set `updateDraftIfNeeded` to
* `true` and a draft workflow scheme is created or updated with the workflow-issue type mapping deleted. The draft
* workflow scheme can be published 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 deleteWorkflowMapping<T = unknown>(
parameters: Parameters.DeleteWorkflowMapping | string,
callback: Callback<T>,
): Promise<void>;
/**
* Deletes the workflow-issue type mapping for a workflow in a workflow scheme.
*
* Note that active workflow schemes cannot be edited. If the workflow scheme is active, set `updateDraftIfNeeded` to
* `true` and a draft workflow scheme is created or updated with the workflow-issue type mapping deleted. The draft
* workflow scheme can be published 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 deleteWorkflowMapping<T = unknown>(
parameters: Parameters.DeleteWorkflowMapping | string,
callback?: never,
): Promise<T>;
async deleteWorkflowMapping<T = unknown>(
parameters: Parameters.DeleteWorkflowMapping | string,
callback?: Callback<T>,
): Promise<void | T> {
const id = typeof parameters === 'string' ? parameters : parameters.id;
const config: RequestConfig = {
url: `/rest/api/2/workflowscheme/${id}/workflow`,
method: 'DELETE',
params: {
workflowName: typeof parameters !== 'string' && parameters.workflowName,
updateDraftIfNeeded: typeof parameters !== 'string' && parameters.updateDraftIfNeeded,
},
};
return this.client.sendRequest(config, callback);
}
/** Returns a page of projects using a given workflow scheme. */
async getProjectUsagesForWorkflowScheme<T = Models.WorkflowSchemeProjectUsage>(
parameters: Parameters.GetProjectUsagesForWorkflowScheme,
callback: Callback<T>,
): Promise<void>;
/** Returns a page of projects using a given workflow scheme. */
async getProjectUsagesForWorkflowScheme<T = Models.WorkflowSchemeProjectUsage>(
parameters: Parameters.GetProjectUsagesForWorkflowScheme,
callback?: never,
): Promise<T>;
async getProjectUsagesForWorkflowScheme<T = Models.WorkflowSchemeProjectUsage>(
parameters: Parameters.GetProjectUsagesForWorkflowScheme,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: `/rest/api/2/workflowscheme/${parameters.workflowSchemeId}/projectUsages`,
method: 'GET',
params: {
nextPageToken: parameters.nextPageToken,
maxResults: parameters.maxResults,
},
};
return this.client.sendRequest(config, callback);
}
}