@crowdin/crowdin-api-client
Version:
JavaScript library for Crowdin API
166 lines (165 loc) • 6.34 kB
TypeScript
import { CrowdinApi, Pagination, PaginationOptions, PatchRequest, ProjectRole, ProjectRoles, ResponseList, ResponseObject } from '../core';
import { ProjectsGroupsModel } from '../projectsGroups';
export declare class Teams extends CrowdinApi {
/**
* @param teamId team identifier
* @param options request options
* @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.teams.projects.permissions.getMany
*/
listTeamProjectPermissions(teamId: number, options?: PaginationOptions): Promise<ResponseList<TeamsModel.ProjectPermissions>>;
/**
* @param teamId team identifier
* @param request request body
* @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.teams.projects.permissions.patch
*/
editTeamProjectPermissions(teamId: number, request: PatchRequest[]): Promise<ResponseList<TeamsModel.ProjectPermissions>>;
/**
* @param projectId project identifier
* @param request request body
* @see https://support.crowdin.com/enterprise/api/#operation/api.projects.teams.post
*/
addTeamToProject(projectId: number, request: TeamsModel.AddTeamToProjectRequest): Promise<TeamsModel.ProjectTeamResources>;
/**
* @param options optional pagination parameters for the request
* @see https://support.crowdin.com/enterprise/api/#operation/api.teams.getMany
*/
listTeams(options?: TeamsModel.ListTeamsOptions): Promise<ResponseList<TeamsModel.Team>>;
/**
* @param limit maximum number of items to retrieve (default 25)
* @param offset starting offset in the collection (default 0)
* @deprecated optional parameters should be passed through an object
* @see https://support.crowdin.com/enterprise/api/#operation/api.teams.getMany
*/
listTeams(limit?: number, offset?: number): Promise<ResponseList<TeamsModel.Team>>;
/**
* @param request request body
* @see https://support.crowdin.com/enterprise/api/#operation/api.teams.post
*/
addTeam(request: TeamsModel.AddTeamRequest): Promise<ResponseObject<TeamsModel.Team>>;
/**
* @param teamId team identifier
* @see https://support.crowdin.com/enterprise/api/#operation/api.teams.get
*/
getTeam(teamId: number): Promise<ResponseObject<TeamsModel.Team>>;
/**
* @param teamId team identifier
* @see https://support.crowdin.com/enterprise/api/#operation/api.teams.delete
*/
deleteTeam(teamId: number): Promise<void>;
/**
* @param teamId team identifier
* @param request request body
* @see https://support.crowdin.com/enterprise/api/#operation/api.teams.patch
*/
editTeam(teamId: number, request: PatchRequest[]): Promise<ResponseObject<TeamsModel.Team>>;
/**
* @param teamId team identifier
* @param options optional pagination parameters for the request
* @see https://support.crowdin.com/enterprise/api/#operation/api.teams.members.getMany
*/
teamMembersList(teamId: number, options?: PaginationOptions): Promise<ResponseList<TeamsModel.TeamMember>>;
/**
* @param teamId team identifier
* @param limit maximum number of items to retrieve (default 25)
* @param offset starting offset in the collection (default 0)
* @deprecated optional parameters should be passed through an object
* @see https://support.crowdin.com/enterprise/api/#operation/api.teams.members.getMany
*/
teamMembersList(teamId: number, limit?: number, offset?: number): Promise<ResponseList<TeamsModel.TeamMember>>;
/**
* @param teamId team identifier
* @param request request body
* @see https://support.crowdin.com/enterprise/api/#operation/api.teams.members.post
*/
addTeamMembers(teamId: number, request: TeamsModel.AddTeamMembersRequest): Promise<TeamsModel.AddTeamMembersResponse>;
/**
* @param teamId team identifier
* @see https://support.crowdin.com/enterprise/api/#operation/api.teams.members.deleteMany
*/
deleteAllTeamMembers(teamId: number): Promise<void>;
/**
* @param teamId team identifier
* @param memberId member identifier
* @see https://support.crowdin.com/enterprise/api/#operation/api.teams.members.delete
*/
deleteTeamMember(teamId: number, memberId: number): Promise<void>;
}
export declare namespace TeamsModel {
interface ProjectPermissions {
id: number;
roles: ProjectRole[];
project: ProjectsGroupsModel.Project | ProjectsGroupsModel.ProjectSettings;
}
interface AddTeamToProjectRequest {
teamId: number;
managerAccess?: boolean;
developerAccess?: boolean;
roles?: ProjectRole[];
/**
* @deprecated
*/
accessToAllWorkflowSteps?: boolean;
/**
* @deprecated
*/
permissions?: Permissions;
}
interface ListTeamsOptions extends PaginationOptions {
search?: string;
projectIds?: string;
projectRoles?: ProjectRoles[];
languageIds?: string;
groupIds?: string;
orderBy?: string;
}
interface ProjectTeamResources {
skipped: ProjectTeamResource;
added: ProjectTeamResource;
}
interface ProjectTeamResource {
id: number;
hasManagerAccess: boolean;
hasDeveloperAccess: boolean;
/**
* @deprecated
*/
hasAccessToAllWorkflowSteps: boolean;
/**
* @deprecated
*/
permissions: Permissions;
roles: ProjectRole[];
}
interface Permissions {
[lang: string]: {
workflowStepIds: number[] | 'all';
};
}
interface Team {
id: number;
name: string;
totalMembers: number;
webUrl: string;
createdAt: string;
updatedAt: string;
}
interface AddTeamRequest {
name: string;
}
interface TeamMember {
id: number;
username: string;
firstName: string;
lastName: string;
avatarUrl: string;
addedAt: string;
}
interface AddTeamMembersRequest {
userIds: number[];
}
interface AddTeamMembersResponse {
skipped: ResponseObject<TeamMember>[];
added: ResponseObject<TeamMember>[];
pagination: Pagination;
}
}