UNPKG

@crowdin/crowdin-api-client

Version:
413 lines (412 loc) 18.2 kB
import { BooleanInt, CrowdinApi, DownloadLink, PaginationOptions, PatchRequest, ResponseList, ResponseObject } from '../core'; import { LanguagesModel } from '../languages'; /** * Create and assign tasks to get files translated or proofread by specific people. * You can set the due dates, split words between people, and receive notifications about the changes and updates on tasks. * Tasks are project-specific, so you’ll have to create them within a project. * * Use API to create, modify, and delete specific tasks. */ export declare class Tasks extends CrowdinApi { /** * @param projectId project identifier * @param options optional parameters for the request * @see https://developer.crowdin.com/api/v2/#operation/api.projects.tasks.getMany */ listTasks(projectId: number, options?: TasksModel.ListTasksOptions): Promise<ResponseList<TasksModel.Task>>; /** * @param projectId project identifier * @param limit maximum number of items to retrieve (default 25) * @param offset starting offset in the collection (default 0) * @param status list tasks with specified statuses. It can be one status or a list of comma-separated status values * @deprecated optional parameters should be passed through an object * @see https://developer.crowdin.com/api/v2/#operation/api.projects.tasks.getMany */ listTasks(projectId: number, limit?: number, offset?: number, status?: TasksModel.Status): Promise<ResponseList<TasksModel.Task>>; /** * @param projectId project identifier * @param request request body * @see https://developer.crowdin.com/api/v2/#operation/api.projects.tasks.post */ addTask(projectId: number, request: TasksModel.CreateTaskRequest): Promise<ResponseObject<TasksModel.Task>>; /** * @param projectId project identifier * @param taskId task identifier * @see https://developer.crowdin.com/api/v2/#operation/api.projects.tasks.exports.post */ exportTaskStrings(projectId: number, taskId: number): Promise<ResponseObject<DownloadLink>>; /** * @param projectId project identifier * @param taskId task identifier * @see https://developer.crowdin.com/api/v2/#operation/api.projects.tasks.get */ getTask(projectId: number, taskId: number): Promise<ResponseObject<TasksModel.Task>>; /** * @param projectId project identifier * @param taskId task identifier * @see https://developer.crowdin.com/api/v2/#operation/api.projects.tasks.delete */ deleteTask(projectId: number, taskId: number): Promise<void>; /** * @param projectId project identifier * @param taskId task identifier * @param request request body * @see https://developer.crowdin.com/api/v2/#operation/api.projects.tasks.patch */ editTask(projectId: number, taskId: number, request: PatchRequest[]): Promise<ResponseObject<TasksModel.Task>>; /** * @param options optional parameters for the request * @see https://developer.crowdin.com/api/v2/#operation/api.user.tasks.getMany */ listUserTasks(options?: TasksModel.ListUserTasksOptions): Promise<ResponseList<TasksModel.UserTask>>; /** * @param limit maximum number of items to retrieve (default 25) * @param offset starting offset in the collection (default 0) * @param status list tasks with specified statuses. It can be one status or a list of comma-separated status values * @param isArchived list archived/not archived tasks for the authorized user. 1 - archived, 0 - not archived * @deprecated optional parameters should be passed through an object * @see https://developer.crowdin.com/api/v2/#operation/api.user.tasks.getMany */ listUserTasks(limit?: number, offset?: number, status?: TasksModel.Status, isArchived?: BooleanInt): Promise<ResponseList<TasksModel.UserTask>>; /** * @param projectId project identifier * @param taskId task identifier * @param request request body * @see https://developer.crowdin.com/api/v2/#operation/api.user.tasks.patch */ editTaskArchivedStatus(projectId: number, taskId: number, request: PatchRequest[]): Promise<ResponseObject<TasksModel.UserTask>>; /** * @param projectId project identifier * @param options optional parameters for the request * @see https://developer.crowdin.com/api/v2/#operation/api.projects.tasks.settings-templates.getMany */ listTaskSettingsTemplates(projectId: number, options?: PaginationOptions): Promise<ResponseList<TasksModel.TaskSettingsTemplate>>; /** * @param projectId project identifier * @param request request body * @see https://developer.crowdin.com/api/v2/#operation/api.projects.tasks.settings-templates.post */ addTaskSettingsTemplate(projectId: number, request: TasksModel.AddTaskSettingsTemplate): Promise<ResponseObject<TasksModel.TaskSettingsTemplate>>; /** * @param projectId project identifier * @param taskSettingsId task settings identifier * @see https://developer.crowdin.com/api/v2/#operation/api.projects.tasks.settings-templates.get */ getTaskSettingsTemplate(projectId: number, taskSettingsId: number): Promise<ResponseObject<TasksModel.TaskSettingsTemplate>>; /** * @param projectId project identifier * @param taskSettingsId task settings identifier * @see https://developer.crowdin.com/api/v2/#operation/api.projects.tasks.settings-templates.delete */ deleteTaskSettingsTemplate(projectId: number, taskSettingsId: number): Promise<void>; /** * @param projectId project identifier * @param taskSettingsId task settings identifier * @param request request body * @see https://developer.crowdin.com/api/v2/#operation/api.projects.tasks.settings-templates.patch */ editTaskSettingsTemplate(projectId: number, taskSettingsId: number, request: PatchRequest[]): Promise<ResponseObject<TasksModel.TaskSettingsTemplate>>; } export declare namespace TasksModel { interface Task { id: number; projectId: number; creatorId: number; type: Type | TypeVendor; status: Status; title: string; assignees: Assignee[]; assignedTeams: AssignedTeam[]; progress: Progress; translateProgress: Progress; sourceLanguageId: string; targetLanguageId: string; description: string; translationUrl: string; webUrl: string; wordsCount: number; commentsCount: number; deadline: string; startedAt: string; resolvedAt: string; timeRange: string; workflowStepId: number; buyUrl: string; createdAt: string; updatedAt: string; sourceLanguage: LanguagesModel.Language; targetLanguages: LanguagesModel.Language[]; labelIds: number[]; excludeLabelIds: number[]; precedingTaskId: number; filesCount: number; fileIds: number[]; branchIds: number[]; vendor: string; } interface ListUserTasksOptions extends PaginationOptions { status?: Status; isArchived?: BooleanInt; orderBy?: string; } interface UserTask extends Task { isArchived: boolean; } type CreateTaskRequest = CreateTaskEnterpriseByBranchIds | CreateTaskEnterpriseByFileIds | CreateTaskEnterpriseByStringIds | CreateTaskEnterpriseVendorByBranchIds | CreateTaskEnterpriseVendorByFileIds | CreateTaskEnterpriseVendorByStringIds | CreateTaskEnterprisePendingTask | CreateTaskByFileIds | CreateTaskByStringIds | CreateTaskByBranchIds | CreateTaskByFileIdsLanguageService | CreateTaskByStringIdsLanguageService | CreateTaskByBranchIdsLanguageService | CreateTaskVendorOhtByFileIds | CreateTaskVendorOhtByStringIds | CreateTaskVendorOhtByBranchIds | CreateTaskVendorGengoByFileIds | CreateTaskVendorGengoByStringIds | CreateTaskVendorGengoByBranchIds | CreateTaskVendorManualByFileIds | CreateTaskVendorManualByStringIds | CreateTaskVendorManualByBranchIds | CreateTaskPendingTask | CreateTaskPendingTaskLanguageService | CreateTaskPendingTaskVendorManual; interface CreateTaskEnterpriseByBranchIds { type: Type; workflowStepId: number; title: string; languageId: string; branchIds: number[]; labelIds?: number[]; excludeLabelIds?: number[]; status?: RequestStatus; description?: string; splitContent?: boolean; skipAssignedStrings?: boolean; assignees?: CreateTaskAssignee[]; assignedTeams?: AssignedTeam[]; includePreTranslatedStringsOnly?: boolean; deadline?: string; startedAt?: string; dateFrom?: string; dateTo?: string; } interface CreateTaskEnterpriseByStringIds { type: Type; workflowStepId: number; title: string; languageId: string; stringIds: number[]; status?: RequestStatus; description?: string; splitContent?: boolean; skipAssignedStrings?: boolean; assignees?: CreateTaskAssignee[]; assignedTeams?: AssignedTeam[]; includePreTranslatedStringsOnly?: boolean; deadline?: string; startedAt?: string; dateFrom?: string; dateTo?: string; } type CreateTaskEnterpriseVendorByStringIds = Omit<CreateTaskEnterpriseByStringIds, 'type' | 'status' | 'splitContent' | 'assignees' | 'assignedTeams'>; type CreateTaskEnterpriseVendorByBranchIds = Omit<CreateTaskEnterpriseByBranchIds, 'type' | 'status' | 'splitContent' | 'assignees' | 'assignedTeams'>; type CreateTaskEnterpriseByFileIds = Omit<CreateTaskEnterpriseByBranchIds, 'branchIds'> & { fileIds: number[]; }; type CreateTaskEnterpriseVendorByFileIds = Omit<CreateTaskEnterpriseByFileIds, 'type' | 'status' | 'splitContent' | 'assignees' | 'assignedTeams'>; interface CreateTaskEnterprisePendingTask { precedingTaskId: number; type: Type.PROOFREAD; title: string; description?: string; assignees?: CreateTaskAssignee[]; assignedTeams?: AssignedTeam[]; deadline?: string; } interface CreateTaskByFileIds { title: string; languageId: string; type: Type; fileIds: number[]; labelIds?: number[]; excludeLabelIds?: number[]; status?: RequestStatus; description?: string; splitContent?: boolean; skipAssignedStrings?: boolean; includePreTranslatedStringsOnly?: boolean; assignees?: CreateTaskAssignee[]; deadline?: string; startedAt?: string; dateFrom?: string; dateTo?: string; } type CreateTaskByStringIds = Omit<CreateTaskByFileIds, 'fileIds' | 'labelIds' | 'excludeLabelIds'> & { stringIds: number; }; type CreateTaskByBranchIds = Omit<CreateTaskByFileIds, 'fileIds'> & { branchIds: number; }; interface CreateTaskByFileIdsLanguageService { title: string; languageId: string; type: TypeVendor; vendor: 'crowdin_language_service'; fileIds: number[]; labelIds?: number[]; excludeLabelIds?: number[]; status?: RequestStatus; description?: string; includePreTranslatedStringsOnly?: boolean; assignees?: CreateTaskAssignee[]; dateFrom?: string; dateTo?: string; } type CreateTaskByStringIdsLanguageService = Omit<CreateTaskByFileIdsLanguageService, 'fileIds' | 'labelIds' | 'excludeLabelIds'> & { stringIds: number[]; }; type CreateTaskByBranchIdsLanguageService = Omit<CreateTaskByFileIdsLanguageService, 'fileIds'> & { branchIds: number[]; }; interface CreateTaskVendorOhtByFileIds { title: string; languageId: string; type: TypeVendor; vendor: 'oht'; fileIds: number[]; labelIds?: number[]; excludeLabelIds?: number[]; status?: RequestStatus; description?: string; expertise?: Expertise; editService?: boolean; includePreTranslatedStringsOnly?: boolean; dateFrom?: string; dateTo?: string; } type CreateTaskVendorOhtByStringIds = Omit<CreateTaskVendorOhtByFileIds, 'fileIds' | 'labelIds' | 'excludeLabelIds'> & { stringIds: number[]; }; type CreateTaskVendorOhtByBranchIds = Omit<CreateTaskVendorOhtByFileIds, 'fileIds'> & { branchIds: number[]; }; interface CreateTaskVendorGengoByFileIds { title: string; languageId: string; type: TypeVendor.TRANSLATE_BY_VENDOR; vendor: 'gengo'; fileIds: number[]; labelIds?: number[]; excludeLabelIds?: number[]; status?: RequestStatus; description?: string; expertise?: 'standard' | 'pro'; tone?: Tone; purpose?: Purpose; customerMessage?: string; usePreferred?: boolean; editService?: boolean; dateFrom?: string; dateTo?: string; } type CreateTaskVendorGengoByStringIds = Omit<CreateTaskVendorGengoByFileIds, 'fileIds' | 'labelIds' | 'excludeLabelIds'> & { stringIds: number[]; }; type CreateTaskVendorGengoByBranchIds = Omit<CreateTaskVendorGengoByFileIds, 'fileIds'> & { branchIds: number[]; }; interface CreateTaskVendorManualByFileIds { title: string; languageId: string; type: TypeVendor; vendor: 'alconost' | 'babbleon' | 'tomedes' | 'e2f' | 'write_path_admin' | 'inlingo' | 'acclaro' | 'translate_by_humans' | 'lingo24' | 'assertio_language_services' | 'gte_localize' | 'kettu_solutions' | 'languageline_solutions'; fileIds: number[]; labelIds?: number[]; excludeLabelIds?: number[]; status?: RequestStatus; description?: string; skipAssignedStrings?: boolean; includePreTranslatedStringsOnly?: boolean; assignees?: CreateTaskAssignee[]; deadline?: string; startedAt?: string; dateFrom?: string; dateTo?: string; } type CreateTaskVendorManualByStringIds = Omit<CreateTaskVendorManualByFileIds, 'fileIds' | 'labelIds' | 'excludeLabelIds'> & { stringIds: number[]; }; type CreateTaskVendorManualByBranchIds = Omit<CreateTaskVendorManualByFileIds, 'fileIds'> & { branchIds: number[]; }; interface CreateTaskPendingTask { precedingTaskId: number; type: Type.PROOFREAD; title: string; description?: string; assignees?: CreateTaskAssignee[]; deadline?: string; } interface CreateTaskPendingTaskLanguageService { precedingTaskId: number; type: TypeVendor.PROOFREAD_BY_VENDOR; vendor: 'crowdin_language_service'; title: string; description?: string; deadline?: string; } interface CreateTaskPendingTaskVendorManual { precedingTaskId: number; type: TypeVendor.PROOFREAD_BY_VENDOR; vendor: CreateTaskVendorManualByFileIds['vendor']; title: string; description?: string; deadline?: string; } interface CreateTaskAssignee { id: number; wordsCount?: number; } type Status = 'todo' | 'in_progress' | 'done' | 'closed'; type RequestStatus = Extract<Status, 'todo' | 'in_progress'>; enum Type { TRANSLATE = 0, PROOFREAD = 1 } enum TypeVendor { TRANSLATE_BY_VENDOR = 2, PROOFREAD_BY_VENDOR = 3 } interface Assignee { id: number; username: string; fullName: string; avatarUrl: string; wordsCount: number; wordsLeft: number; } interface AssignedTeam { id: number; wordsCount: number; } interface Progress { total: number; done: number; percent: number; } type Expertise = 'standard' | 'mobile-applications' | 'software-it' | 'gaming-video-games' | 'technical-engineering' | 'marketing-consumer-media' | 'business-finance' | 'legal-certificate' | 'medical' | 'ad-words-banners' | 'automotive-aerospace' | 'scientific' | 'scientific-academic' | 'tourism' | 'training-employee-handbooks' | 'forex-crypto'; enum TranslatedExpertise { ECONOMY = "P", PROFESSIONAL = "T", PREMIUM = "R" } type Tone = '' | 'Informal' | 'Friendly' | 'Business' | 'Formal' | 'other'; type Purpose = 'standard' | 'Personal use' | 'Business' | 'Online content' | 'App/Web localization' | 'Media content' | 'Semi-technical' | 'other'; type Subject = 'general' | 'accounting_finance' | 'aerospace_defence' | 'architecture' | 'art' | 'automotive' | 'certificates_diplomas_licences_cv_etc' | 'chemical' | 'civil_engineering_construction' | 'corporate_social_responsibility' | 'cosmetics' | 'culinary' | 'electronics_electrical_engineering' | 'energy_power_generation_oil_gas' | 'environment' | 'fashion' | 'games_viseogames_casino' | 'general_business_commerce' | 'history_archaeology' | 'information_technology' | 'insurance' | 'internet_e-commerce' | 'legal_documents_contracts' | 'literary_translations' | 'marketing_advertising_material_public_relations' | 'matematics_and_physics' | 'mechanical_manufacturing' | 'media_journalism_publishing' | 'medical_pharmaceutical' | 'music' | 'private_correspondence_letters' | 'religion' | 'science' | 'shipping_sailing_maritime' | 'social_science' | 'telecommunications' | 'travel_tourism'; interface ListTasksOptions extends PaginationOptions { status?: TasksModel.Status; assigneeId?: number; orderBy?: string; } interface TaskSettingsTemplate { id: number; name: string; config: TaskSettingsTemplateConfig; createdAt: string; updatedAt: string; } interface AddTaskSettingsTemplate { name: string; config: TaskSettingsTemplateConfig; } interface TaskSettingsTemplateConfig { languages: { languageId?: string; userIds?: number[]; teamIds?: number[]; }[]; } }