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.

250 lines (235 loc) 10.8 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 ProjectRoleActors { constructor(private client: Client) {} /** * Adds actors to a project role for the project. * * To replace all actors for the project, use [Set actors for project * role](#api-rest-api-2-project-projectIdOrKey-role-id-put). * * This operation can be accessed anonymously. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Projects_ [project permission](https://confluence.atlassian.com/x/yodKLg) for the project or * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async addActorUsers<T = Models.ProjectRole>( parameters: Parameters.AddActorUsers, callback: Callback<T>, ): Promise<void>; /** * Adds actors to a project role for the project. * * To replace all actors for the project, use [Set actors for project * role](#api-rest-api-2-project-projectIdOrKey-role-id-put). * * This operation can be accessed anonymously. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Projects_ [project permission](https://confluence.atlassian.com/x/yodKLg) for the project or * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async addActorUsers<T = Models.ProjectRole>(parameters: Parameters.AddActorUsers, callback?: never): Promise<T>; async addActorUsers<T = Models.ProjectRole>( parameters: Parameters.AddActorUsers, callback?: Callback<T>, ): Promise<void | T> { const config: RequestConfig = { url: `/rest/api/2/project/${parameters.projectIdOrKey}/role/${parameters.id}`, method: 'POST', data: { user: parameters.user, group: parameters.group, groupId: parameters.groupId, }, }; return this.client.sendRequest(config, callback); } /** * Sets the actors for a project role for a project, replacing all existing actors. * * To add actors to the project without overwriting the existing list, use [Add actors to project * role](#api-rest-api-2-project-projectIdOrKey-role-id-post). * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Projects_ [project permission](https://confluence.atlassian.com/x/yodKLg) for the project or * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async setActors<T = Models.ProjectRole>(parameters: Parameters.SetActors, callback: Callback<T>): Promise<void>; /** * Sets the actors for a project role for a project, replacing all existing actors. * * To add actors to the project without overwriting the existing list, use [Add actors to project * role](#api-rest-api-2-project-projectIdOrKey-role-id-post). * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Projects_ [project permission](https://confluence.atlassian.com/x/yodKLg) for the project or * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async setActors<T = Models.ProjectRole>(parameters: Parameters.SetActors, callback?: never): Promise<T>; async setActors<T = Models.ProjectRole>(parameters: Parameters.SetActors, callback?: Callback<T>): Promise<void | T> { const config: RequestConfig = { url: `/rest/api/2/project/${parameters.projectIdOrKey}/role/${parameters.id}`, method: 'PUT', data: { categorisedActors: parameters.categorisedActors, }, }; return this.client.sendRequest(config, callback); } /** * Deletes actors from a project role for the project. * * To remove default actors from the project role, use [Delete default actors from project * role](#api-rest-api-2-role-id-actors-delete). * * This operation can be accessed anonymously. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Projects_ [project permission](https://confluence.atlassian.com/x/yodKLg) for the project or * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async deleteActor<T = void>(parameters: Parameters.DeleteActor, callback: Callback<T>): Promise<void>; /** * Deletes actors from a project role for the project. * * To remove default actors from the project role, use [Delete default actors from project * role](#api-rest-api-2-role-id-actors-delete). * * This operation can be accessed anonymously. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Projects_ [project permission](https://confluence.atlassian.com/x/yodKLg) for the project or * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async deleteActor<T = void>(parameters: Parameters.DeleteActor, callback?: never): Promise<T>; async deleteActor<T = void>(parameters: Parameters.DeleteActor, callback?: Callback<T>): Promise<void | T> { const config: RequestConfig = { url: `/rest/api/2/project/${parameters.projectIdOrKey}/role/${parameters.id}`, method: 'DELETE', params: { user: parameters.user, group: parameters.group, groupId: parameters.groupId, }, }; return this.client.sendRequest(config, callback); } /** * Returns the [default actors](#api-rest-api-2-resolution-get) for the project role. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async getProjectRoleActorsForRole<T = Models.ProjectRole>( parameters: Parameters.GetProjectRoleActorsForRole | string, callback: Callback<T>, ): Promise<void>; /** * Returns the [default actors](#api-rest-api-2-resolution-get) for the project role. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async getProjectRoleActorsForRole<T = Models.ProjectRole>( parameters: Parameters.GetProjectRoleActorsForRole | string, callback?: never, ): Promise<T>; async getProjectRoleActorsForRole<T = Models.ProjectRole>( parameters: Parameters.GetProjectRoleActorsForRole | string, callback?: Callback<T>, ): Promise<void | T> { const id = typeof parameters === 'string' ? parameters : parameters.id; const config: RequestConfig = { url: `/rest/api/2/role/${id}/actors`, method: 'GET', }; return this.client.sendRequest(config, callback); } /** * Adds [default actors](#api-rest-api-2-resolution-get) to a role. You may add groups or users, but you cannot add * groups and users in the same request. * * Changing a project role's default actors does not affect project role members for projects already created. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async addProjectRoleActorsToRole<T = Models.ProjectRole>( parameters: Parameters.AddProjectRoleActorsToRole, callback: Callback<T>, ): Promise<void>; /** * Adds [default actors](#api-rest-api-2-resolution-get) to a role. You may add groups or users, but you cannot add * groups and users in the same request. * * Changing a project role's default actors does not affect project role members for projects already created. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async addProjectRoleActorsToRole<T = Models.ProjectRole>( parameters: Parameters.AddProjectRoleActorsToRole, callback?: never, ): Promise<T>; async addProjectRoleActorsToRole<T = Models.ProjectRole>( parameters: Parameters.AddProjectRoleActorsToRole, callback?: Callback<T>, ): Promise<void | T> { const config: RequestConfig = { url: `/rest/api/2/role/${parameters.id}/actors`, method: 'POST', data: { user: parameters.user, groupId: parameters.groupId, group: parameters.group, }, }; return this.client.sendRequest(config, callback); } /** * Deletes the [default actors](#api-rest-api-2-resolution-get) from a project role. You may delete a group or user, * but you cannot delete a group and a user in the same request. * * Changing a project role's default actors does not affect project role members for projects already created. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async deleteProjectRoleActorsFromRole<T = Models.ProjectRole>( parameters: Parameters.DeleteProjectRoleActorsFromRole, callback: Callback<T>, ): Promise<void>; /** * Deletes the [default actors](#api-rest-api-2-resolution-get) from a project role. You may delete a group or user, * but you cannot delete a group and a user in the same request. * * Changing a project role's default actors does not affect project role members for projects already created. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async deleteProjectRoleActorsFromRole<T = Models.ProjectRole>( parameters: Parameters.DeleteProjectRoleActorsFromRole, callback?: never, ): Promise<T>; async deleteProjectRoleActorsFromRole<T = Models.ProjectRole>( parameters: Parameters.DeleteProjectRoleActorsFromRole, callback?: Callback<T>, ): Promise<void | T> { const config: RequestConfig = { url: `/rest/api/2/role/${parameters.id}/actors`, method: 'DELETE', params: { user: parameters.user, groupId: parameters.groupId, group: parameters.group, }, }; return this.client.sendRequest(config, callback); } }