UNPKG

@crowdin/crowdin-api-client

Version:
259 lines (258 loc) 10.2 kB
import { CrowdinApi, Pagination, PaginationOptions, PatchRequest, ProjectRole, ProjectRoles, ResponseList, ResponseObject } from '../core'; import { ProjectsGroupsModel } from '../projectsGroups'; import { TeamsModel } from '../teams'; /** * Users API gives you the possibility to get profile information about the currently authenticated user. * * In Crowdin Enterprise users are the members of your organization with the defined access levels. * Use API to get the list of organization users and to check the information on a specific user. */ export declare class Users extends CrowdinApi { /** * @param projectId project identifier * @param options optional parameters for the request * @see https://developer.crowdin.com/api/v2/#operation/api.projects.members.getMany */ listProjectMembers(projectId: number, options?: UsersModel.ListProjectMembersOptions): Promise<ResponseList<UsersModel.ProjectMember | UsersModel.EnterpriseProjectMember>>; /** * @param projectId project identifier * @param search search users by firstName, lastName or username * @param role defines role type * @param languageId language 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://developer.crowdin.com/api/v2/#operation/api.projects.members.getMany */ listProjectMembers(projectId: number, search?: string, role?: UsersModel.Role, languageId?: string, limit?: number, offset?: number): Promise<ResponseList<UsersModel.ProjectMember | UsersModel.EnterpriseProjectMember>>; /** * @param projectId project identifier * @param request request body * @see https://support.crowdin.com/enterprise/api/#operation/api.projects.members.post */ addProjectMember(projectId: number, request: UsersModel.AddProjectMemberRequest): Promise<UsersModel.AddProjectMemberResponse>; /** * @param projectId project identifier * @param memberId member identifier * @see https://developer.crowdin.com/api/v2/#operation/api.projects.members.get */ getProjectMemberPermissions(projectId: number, memberId: number): Promise<ResponseObject<UsersModel.ProjectMember | UsersModel.EnterpriseProjectMember>>; /** * @param projectId project identifier * @param memberId member identifier * @see https://support.crowdin.com/enterprise/api/#operation/api.projects.members.put */ replaceProjectMemberPermissions(projectId: number, memberId: number, request?: UsersModel.ReplaceProjectMemberRequest): Promise<ResponseObject<UsersModel.ProjectMember | UsersModel.EnterpriseProjectMember>>; /** * @param projectId project identifier * @param memberId member identifier * @see https://support.crowdin.com/enterprise/api/#operation/api.projects.members.delete */ deleteMemberFromProject(projectId: number, memberId: number): Promise<void>; /** * @param options optional parameters for the request * @see https://support.crowdin.com/enterprise/api/#operation/api.users.getMany */ listUsers(options?: UsersModel.ListUsersOptions): Promise<ResponseList<UsersModel.User>>; /** * @param status filter users by status * @param search search users by firstName, lastName, username, email * @param twoFactor filter users by two-factor authentication status * @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.users.getMany */ listUsers(status?: UsersModel.Status, search?: string, twoFactor?: UsersModel.TwoFactor, limit?: number, offset?: number): Promise<ResponseList<UsersModel.User>>; /** * @param request request body * @see https://support.crowdin.com/enterprise/api/#operation/api.users.post */ inviteUser(request: UsersModel.InviteUserRequest): Promise<ResponseObject<UsersModel.User>>; /** * @param userId user identifier * @see https://support.crowdin.com/enterprise/api/#operation/api.users.getById */ getUserInfo(userId: number): Promise<ResponseObject<UsersModel.User>>; /** * @param userId user identifier * @see https://support.crowdin.com/enterprise/api/#operation/api.users.delete */ deleteUser(userId: number): Promise<void>; /** * @param userId user identifier * @param request request body * @see https://support.crowdin.com/enterprise/api/#operation/api.users.patch */ editUser(userId: number, request: PatchRequest[]): Promise<ResponseObject<UsersModel.User>>; /** * @see https://developer.crowdin.com/api/v2/#operation/api.user.get */ getAuthenticatedUser(): Promise<ResponseObject<UsersModel.User>>; /** * @param request request body * @see https://developer.crowdin.com/api/v2/#operation/api.user.patch */ editAuthenticatedUser(request: PatchRequest[]): Promise<ResponseObject<UsersModel.User>>; /** * @param userId user identifier * @param options request options * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.users.projects.permissions.getMany */ listUserProjectPermissions(userId: number, options?: PaginationOptions): Promise<ResponseList<UsersModel.ProjectPermissions>>; /** * @param userId user identifier * @param request request body * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.users.projects.permissions.patch */ editUserProjectPermissions(userId: number, request: PatchRequest[]): Promise<ResponseList<UsersModel.ProjectPermissions>>; /** * @param userId user identifier * @param options request options * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.users.projects.contributions.getMany */ listUserProjectContributions(userId: number, options?: PaginationOptions): Promise<ResponseList<UsersModel.ProjectPermissions>>; } export declare namespace UsersModel { interface ListProjectMembersOptions extends PaginationOptions { search?: string; role?: Role; languageId?: string; workflowStepId?: number; orderBy?: string; } interface ListUsersOptions extends PaginationOptions { status?: Status; search?: string; twoFactor?: TwoFactor; orderBy?: string; organizationRoles?: OrganizationRoles[]; teamId?: number; projectIds?: string; projectRoles?: ProjectRoles[]; languageIds?: string; groupIds?: string; lastSeenFrom?: string; lastSeenTo?: string; } interface InviteUserRequest { email: string; firstName?: string; lastName?: string; timezone?: string; adminAccess?: boolean; } interface User { id: number; username: string; email: string; firstName: string; lastName: string; status: Status; avatarUrl: string; createdAt: string; lastSeen: string; twoFactor: string; isAdmin: boolean; timezone: string; } type Status = 'active' | 'pending' | 'blocked'; type TwoFactor = 'enabled' | 'disabled'; type OrganizationRoles = 'admin' | 'manager' | 'vendor' | 'client'; interface ProjectMember { id: number; username: string; fullName: string; role: Role; /** * @deprecated */ permissions: Permissions; avatarUrl: string; joinedAt: string; timezone: string; roles: ProjectRole[]; } interface EnterpriseProjectMember { id: number; username: string; firstName: string; lastName: string; isManager: boolean; isDeveloperr: boolean; managerOfGroup: Group; /** * @deprecated */ accessToAllWorkflowSteps: boolean; /** * @deprecated */ permissions: Permissions; givenAccessAt: string; roles: ProjectRole[]; } interface Group { id: number; name: string; } type Role = 'all' | 'owner' | 'manager' | 'proofreader' | 'translator' | 'blocked'; type LanguageRole = 'proofreader' | 'translator' | 'denied'; interface AddProjectMemberRequest { userIds?: number[]; usernames?: string[]; emails?: string[]; managerAccess?: boolean; roles?: ProjectRole[]; developerAccess?: boolean; /** * @deprecated */ accessToAllWorkflowSteps?: boolean; /** * @deprecated */ permissions?: Permissions; } interface AddProjectMemberResponse { skipped: ResponseObject<ProjectMember | EnterpriseProjectMember>[]; added: ResponseObject<ProjectMember | EnterpriseProjectMember>[]; pagination: Pagination; } interface ReplaceProjectMemberRequest { managerAccess?: boolean; developerAccess?: boolean; roles?: ProjectRole[]; /** * @deprecated */ accessToAllWorkflowSteps?: boolean; /** * @deprecated */ permissions?: Permissions; } interface ProjectPermissions { id: number; roles: ProjectRole[]; project: ProjectsGroupsModel.Project | ProjectsGroupsModel.ProjectSettings; teams: TeamsModel.Team[]; } interface Contributions { id: number; translated: Contribution; approved: Contribution; voted: Contribution; commented: Contribution; project: ProjectsGroupsModel.Project | ProjectsGroupsModel.ProjectSettings; } interface Contribution { strings: number; words?: number; } interface Permissions { [lang: string]: string | { workflowStepIds: number[] | 'all'; }; } }