UNPKG

@crowdin/crowdin-api-client

Version:
579 lines (578 loc) 23.5 kB
import { BooleanInt, CrowdinApi, DownloadLink, PaginationOptions, PatchRequest, ResponseList, ResponseObject } from '../core'; import { LanguagesModel } from '../languages'; /** * Using projects, you can keep your source files sorted. * * Use API to manage projects, change their settings, or remove them if required. * * Only Crowdin Enterprise: Groups allow you to organize your projects based on specific characteristics. * Using projects, you can keep your source files sorted. */ export declare class ProjectsGroups extends CrowdinApi { /** * @param options optional parameters for the request * @see https://support.crowdin.com/enterprise/api/#operation/api.groups.getMany */ listGroups(options?: ProjectsGroupsModel.ListGroupsOptions): Promise<ResponseList<ProjectsGroupsModel.Group>>; /** * @param parentId parent group identifier * @param offset starting offset in the collection (default 0) * @param userId get user own projects * @param limit maximum number of items to retrieve (default 25) * @deprecated optional parameters should be passed through an object * @see https://support.crowdin.com/enterprise/api/#operation/api.groups.getMany */ listGroups(parentId?: number, offset?: number, userId?: number, limit?: number): Promise<ResponseList<ProjectsGroupsModel.Group>>; /** * @param request request body * @see https://support.crowdin.com/enterprise/api/#operation/api.groups.post */ addGroup(request: ProjectsGroupsModel.AddGroupRequest): Promise<ResponseObject<ProjectsGroupsModel.Group>>; /** * @param group group identifier * @see https://support.crowdin.com/enterprise/api/#operation/api.groups.get */ getGroup(groupId: number): Promise<ResponseObject<ProjectsGroupsModel.Group>>; /** * @param groupId group identifier * @see https://support.crowdin.com/enterprise/api/#operation/api.groups.delete */ deleteGroup(groupId: number): Promise<void>; /** * @param groupId group identifier * @param request request body * @see https://support.crowdin.com/enterprise/api/#operation/api.groups.patch */ editGroup(groupId: number, request: PatchRequest[]): Promise<ResponseObject<ProjectsGroupsModel.Group>>; /** * @param options optional parameters for the request * @see https://developer.crowdin.com/api/v2/#operation/api.projects.getMany */ listProjects(options?: ProjectsGroupsModel.ListProjectsOptions): Promise<ResponseList<ProjectsGroupsModel.Project | ProjectsGroupsModel.ProjectSettings>>; /** * @param groupId group identifier * @param hasManagerAccess projects with manager access (default 0) * @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.getMany */ listProjects(groupId?: number, hasManagerAccess?: BooleanInt, limit?: number, offset?: number): Promise<ResponseList<ProjectsGroupsModel.Project | ProjectsGroupsModel.ProjectSettings>>; /** * @param request request body * @see https://developer.crowdin.com/api/v2/#operation/api.projects.post */ addProject(request: ProjectsGroupsModel.CreateProjectEnterpriseRequest | ProjectsGroupsModel.CreateProjectRequest): Promise<ResponseObject<ProjectsGroupsModel.Project | ProjectsGroupsModel.ProjectSettings>>; /** * @param projectId project identifier * @see https://developer.crowdin.com/api/v2/#operation/api.projects.get */ getProject(projectId: number): Promise<ResponseObject<ProjectsGroupsModel.Project | ProjectsGroupsModel.ProjectSettings>>; /** * @param projectId project identifier * @see https://developer.crowdin.com/api/v2/#operation/api.projects.delete */ deleteProject(projectId: number): Promise<void>; /** * @param projectId project identifier * @param request request body * @see https://developer.crowdin.com/api/v2/#operation/api.projects.patch */ editProject(projectId: number, request: PatchRequest[]): Promise<ResponseObject<ProjectsGroupsModel.Project | ProjectsGroupsModel.ProjectSettings>>; /** * @param projectId project identifier * @param fileFormatSettingsId file format settings identifier * @see https://developer.crowdin.com/api/v2/#operation/api.projects.file-format-settings.custom-segmentations.get */ downloadProjectFileFormatSettingsCustomSegmentation(projectId: number, fileFormatSettingsId: number): Promise<ResponseObject<DownloadLink>>; /** * @param projectId project identifier * @param fileFormatSettingsId file format settings identifier * @see https://developer.crowdin.com/api/v2/#operation/api.projects.file-format-settings.custom-segmentations.delete */ resetProjectFileFormatSettingsCustomSegmentation(projectId: number, fileFormatSettingsId: number): Promise<ResponseObject<DownloadLink>>; /** * @param projectId project identifier * @param options optional parameters for the request * @see https://developer.crowdin.com/api/v2/#operation/api.projects.file-format-settings.getMany */ listProjectFileFormatSettings(projectId: number, options?: PaginationOptions): Promise<ResponseList<ProjectsGroupsModel.ProjectFileFormatSettings>>; /** * @param projectId project identifier * @param request request body * @see https://developer.crowdin.com/api/v2/#operation/api.projects.file-format-settings.post */ addProjectFileFormatSettings(projectId: number, request: ProjectsGroupsModel.AddProjectFileFormatSettingsRequest): Promise<ResponseObject<ProjectsGroupsModel.ProjectFileFormatSettings>>; /** * @param projectId project identifier * @param fileFormatSettingsId file format settings identifier * @see https://developer.crowdin.com/api/v2/#operation/api.projects.file-format-settings.get */ getProjectFileFormatSettings(projectId: number, fileFormatSettingsId: number): Promise<ResponseObject<ProjectsGroupsModel.ProjectFileFormatSettings>>; /** * @param projectId project identifier * @param fileFormatSettingsId file format settings identifier * @see https://developer.crowdin.com/api/v2/#operation/api.projects.file-format-settings.delete */ deleteProjectFileFormatSettings(projectId: number, fileFormatSettingsId: number): Promise<void>; /** * @param projectId project identifier * @param fileFormatSettingsId file format settings identifier * @param request request body * @see https://developer.crowdin.com/api/v2/#operation/api.projects.file-format-settings.patch */ editProjectFileFormatSettings(projectId: number, fileFormatSettingsId: number, request: PatchRequest[]): Promise<ResponseObject<ProjectsGroupsModel.ProjectFileFormatSettings>>; /** * @param projectId project identifier * @param options optional parameters for the request * @see https://developer.crowdin.com/api/v2/#operation/api.projects.strings-exporter-settings.getMany */ listProjectStringsExporterSettings(projectId: number, options?: PaginationOptions): Promise<ResponseList<ProjectsGroupsModel.ProjectStringsExporterSettings>>; /** * @param projectId project identifier * @param request request body * @see https://developer.crowdin.com/api/v2/#operation/api.projects.strings-exporter-settings.post */ addProjectStringsExporterSettings(projectId: number, request: ProjectsGroupsModel.AddProjectStringsExporterSettingsRequest): Promise<ResponseObject<ProjectsGroupsModel.ProjectStringsExporterSettings>>; /** * @param projectId project identifier * @param systemStringsExporterSettingsId file format settings identifier * @see https://developer.crowdin.com/api/v2/#operation/api.projects.strings-exporter-settings.get */ getProjectStringsExporterSettings(projectId: number, systemStringsExporterSettingsId: number): Promise<ResponseObject<ProjectsGroupsModel.ProjectStringsExporterSettings>>; /** * @param projectId project identifier * @param systemStringsExporterSettingsId file format settings identifier * @see https://developer.crowdin.com/api/v2/#operation/api.projects.strings-exporter-settings.delete */ deleteProjectStringsExporterSettings(projectId: number, systemStringsExporterSettingsId: number): Promise<void>; /** * @param projectId project identifier * @param systemStringsExporterSettingsId file format settings identifier * @param request request body * @see https://developer.crowdin.com/api/v2/#operation/api.projects.strings-exporter-settings.patch */ editProjectStringsExporterSettings(projectId: number, systemStringsExporterSettingsId: number, request: ProjectsGroupsModel.AddProjectStringsExporterSettingsRequest): Promise<ResponseObject<ProjectsGroupsModel.ProjectStringsExporterSettings>>; } export declare namespace ProjectsGroupsModel { interface Group { id: number; name: string; description: string; parentId: number; organizationId: number; userId: number; subgroupsCount: number; projectsCount: number; webUrl: string; createdAt: string; updatedAt: string; } interface AddGroupRequest { name: string; parentId?: number; description?: string; } interface Project { id: number; type: Type; userId: number; sourceLanguageId: string; targetLanguageIds: string[]; languageAccessPolicy: LanguageAccessPolicy; name: string; identifier: string; description: string; visibility: string; logo: string; publicDownloads: boolean; createdAt: string; updatedAt: string; lastActivity: string; sourceLanguage: LanguagesModel.Language; targetLanguages: LanguagesModel.Language[]; webUrl: string; savingsReportSettingsTemplateId: number; cname: string; groupId: number; background: string; isExternal: boolean; externalType: string; externalProjectId: number; externalOrganizationId: number; workflowId: number; hasCrowdsourcing: boolean; publicUrl: string; } interface CreateProjectRequest { name: string; identifier: string; sourceLanguageId: string; targetLanguageIds?: string[]; visibility?: JoinPolicy; languageAccessPolicy?: LanguageAccessPolicy; cname?: string; description?: string; tagDetection?: TagDetection; isMtAllowed?: boolean; taskBasedAccessControl?: boolean; autoSubstitution?: boolean; autoTranslateDialects?: boolean; publicDownloads?: boolean; hiddenStringsProofreadersAccess?: boolean; useGlobalTm?: boolean; showTmSuggestionsDialects?: boolean; skipUntranslatedStrings?: boolean; exportApprovedOnly?: boolean; qaCheckIsActive?: boolean; qaCheckCategories?: CheckCategories; qaChecksIgnorableCategories?: CheckCategories; languageMapping?: LanguageMapping; /** * @deprecated */ glossaryAccess?: boolean; glossaryAccessOption?: GlossaryAccessOption; normalizePlaceholder?: boolean; notificationSettings?: NotificationSettings; tmPreTranslate?: ProjectSettings['tmPreTranslate']; mtPreTranslate?: ProjectSettings['mtPreTranslate']; aiPreTranslate?: ProjectSettings['aiPreTranslate']; assistActionAiPromptId?: number; editorSuggestionAiPromptId?: number; savingsReportSettingsTemplateId?: number; defaultTmId?: number; defaultGlossaryId?: number; inContext?: boolean; inContextProcessHiddenStrings?: boolean; inContextPseudoLanguageId?: string; saveMetaInfoInSource?: boolean; type?: BooleanInt; skipUntranslatedFiles?: boolean; tmContextType?: TmContextType; } interface CreateProjectEnterpriseRequest { name: string; sourceLanguageId: string; templateId?: number; steps?: WorkflowTemplateStepConfig[]; groupId?: number; targetLanguageIds?: string[]; vendorId?: number; mtEngineId?: number; description?: string; translateDuplicates?: TranslateDuplicates; tagsDetection?: TagDetection; isMtAllowed?: boolean; taskBasedAccessControl?: boolean; taskReviewerIds?: number[]; autoSubstitution?: boolean; showTmSuggestionsDialects?: boolean; autoTranslateDialects?: boolean; publicDownloads?: boolean; hiddenStringsProofreadersAccess?: boolean; delayedWorkflowStart?: boolean; skipUntranslatedStrings?: boolean; exportWithMinApprovalsCount?: number; exportStringsThatPassedWorkflow?: number; normalizePlaceholder?: boolean; qaCheckIsActive?: boolean; qaApprovalsCount?: number; qaCheckCategories?: CheckCategories; qaChecksIgnorableCategories?: CheckCategories; customQaCheckIds?: number[]; languageMapping?: LanguageMapping; /** * @deprecated */ glossaryAccess?: boolean; glossaryAccessOption?: GlossaryAccessOption; notificationSettings?: NotificationSettings; savingsReportSettingsTemplateId?: number; assistActionAiPromptId?: number; editorSuggestionAiPromptId?: number; alignmentActionAiPromptId?: number; defaultTmId?: number; defaultGlossaryId?: number; inContext?: boolean; inContextProcessHiddenStrings?: boolean; inContextPseudoLanguageId?: string; saveMetaInfoInSource?: boolean; type?: BooleanInt; skipUntranslatedFiles?: boolean; tmContextType?: TmContextType; } type GlossaryAccessOption = 'readOnly' | 'fullAccess' | 'manageDrafts'; interface ProjectSettings extends Project { translateDuplicates: TranslateDuplicates; tagsDetection: TagDetection; glossaryAccess: boolean; glossaryAccessOption: GlossaryAccessOption; isMtAllowed: boolean; taskBasedAccessControl: boolean; hiddenStringsProofreadersAccess: boolean; autoSubstitution: boolean; exportTranslatedOnly: boolean; skipUntranslatedStrings: boolean; exportApprovedOnly: boolean; autoTranslateDialects: boolean; useGlobalTm: boolean; showTmSuggestionsDialects: boolean; isSuspended: boolean; qaCheckIsActive: boolean; qaCheckCategories: CheckCategories; qaChecksIgnorableCategories: CheckCategories; languageMapping: LanguageMapping; notificationSettings: NotificationSettings; defaultTmId: number; defaultGlossaryId: number; assignedTms: { [id: string]: { priority: number; }; }; assignedGlossaries: number[]; tmPenalties: { autoSubstitution: number; tmPriority: { priority: number; penalty: number; }; multipleTranslations: number; timeSinceLastUsage: { months: number; penalty: number; }; timeSinceLastModified: { months: number; penalty: number; }; }; normalizePlaceholder: boolean; tmPreTranslate: { enabled: boolean; autoApproveOption: 'all' | 'perfectMatchOnly' | 'exceptAutoSubstituted' | 'perfectMatchApprovedOnly' | 'none'; minimumMatchRatio: 'perfect' | '100'; }; mtPreTranslate: { enabled: boolean; mts: { mtId: number; languageIds: string[]; }[]; }; aiPreTranslate: { enabled: boolean; aiPrompts: { aiPromptId: number; languageIds: string[]; }[]; }; assistActionAiPromptId: number; editorSuggestionAiPromptId: number; inContext: boolean; inContextProcessHiddenStrings: string; inContextPseudoLanguageId: string; inContextPseudoLanguage: LanguagesModel.Language; saveMetaInfoInSource: boolean; skipUntranslatedFiles: boolean; tmContextType: TmContextType; clientOrganizationId: number; taskReviewerIds: number[]; exportWithMinApprovalsCount: number; exportStringsThatPassedWorkflow: boolean; qaApprovalsCount: number; customQaCheckIds: number[]; externalQaCheckIds: number[]; delayedWorkflowStart: boolean; alignmentActionAiPromptId: number; } enum Type { FILES_BASED = 0, STRINGS_BASED = 1 } enum TagDetection { AUTO = 0, COUNT_TAGS = 1, SKIP_TAGS = 2 } type JoinPolicy = 'open' | 'private'; type LanguageAccessPolicy = 'open' | 'moderate'; interface CheckCategories { empty: boolean; size: boolean; tags: boolean; spaces: boolean; variables: boolean; punctuation: boolean; symbolRegister: boolean; specialSymbols: boolean; wrongTranslation: boolean; spellcheck: boolean; icu: boolean; terms: boolean; duplicate: boolean; ftl: boolean; android: boolean; } interface LanguageMapping { [key: string]: LanguageMappingEntity; } interface LanguageMappingEntity { name: string; two_letters_code: string; three_letters_code: string; locale: string; locale_with_underscore: string; android_code: string; osx_code: string; osx_locale: string; } enum TranslateDuplicates { SHOW = 0, HIDE_REGULAR_DETECTION = 1, SHOW_AUTO_TRANSLATE = 2, SHOW_WITHIN_VERION_BRANCH_REGULAR_DETECTION = 3, HIDE_STRICT_DETECTION = 4, SHOW_WITHIN_VERION_BRANCH_STRICT_DETECTION = 5 } interface NotificationSettings { translatorNewStrings?: boolean; managerNewStrings?: boolean; managerLanguageCompleted?: boolean; } interface ListGroupsOptions extends PaginationOptions { parentId?: number; userId?: number; orderBy?: string; } interface ListProjectsOptions extends PaginationOptions { groupId?: number; hasManagerAccess?: BooleanInt; orderBy?: string; type?: BooleanInt; } type Settings = PropertyFileFormatSettings | CommonFileFormatSettings | XmlFileFormatSettings | MdxV2FormatSettings | FmHtmlFormatSettings | HtmlFormatSettings | JsonFormatSettings | MdxV1FormatSettings | JavaScriptFileFormatSettings | DocxFileFormatSettings; interface ProjectFileFormatSettings { id: number; name: string; format: string; extensions: string[]; settings: Settings; createdAt: string; updatedAt: string; } interface AddProjectFileFormatSettingsRequest { format: string; settings: Settings; } interface PropertyFileFormatSettings { escapeQuotes?: 0 | 1 | 2 | 3; escapeSpecialCharacters?: 0 | 1; exportPattern?: string; } interface JavaScriptFileFormatSettings { exportPattern?: 'string'; exportQuotes?: 'single' | 'double'; } interface CommonFileFormatSettings { contentSegmentation?: boolean; srxStorageId?: number; exportPattern?: string; } interface XmlFileFormatSettings extends CommonFileFormatSettings { translateContent?: boolean; translateAttributes?: boolean; translatableElements?: string[]; } interface JsonFormatSettings extends CommonFileFormatSettings { type?: 'i18next_json' | 'nestjs_i18n'; } interface MdxV2FormatSettings extends CommonFileFormatSettings { excludeCodeBlocks?: boolean; excludedFrontMatterElements?: string[]; } interface MdxV1FormatSettings extends CommonFileFormatSettings { excludeCodeBlocks?: boolean; excludedFrontMatterElements?: string[]; type?: 'mdx_v1' | 'mdx_v2'; } interface FmHtmlFormatSettings extends CommonFileFormatSettings { excludedElements?: boolean; excludedFrontMatterElements?: string[]; } interface HtmlFormatSettings extends CommonFileFormatSettings { excludedElements?: boolean; } interface DocxFileFormatSettings extends CommonFileFormatSettings { cleanTagsAggressively?: boolean; translateHiddenText?: boolean; translateHyperlinkUrls?: boolean; translateHiddenRowsAndColumns?: boolean; importNotes?: boolean; importHiddenSlides?: boolean; } type TmContextType = 'segmentContext' | 'auto' | 'prevAndNextSegment'; type WorkflowTemplateStepConfig = WorkflowTemplateStepConfigTranslateProofread | WorkflowTemplateStepConfigVendor | WorkflowTemplateStepConfigTMPreTranslate | WorkflowTemplateStepConfigMTPreTranslate; interface WorkflowTemplateStepConfigTranslateProofread { id: number; languages?: string[]; /** * @deprecated */ assignees?: number[]; config?: { assignees: { [key: string]: number[]; }; }; } interface WorkflowTemplateStepConfigVendor { id: number; languages?: string[]; vendorId?: number; } interface WorkflowTemplateStepConfigTMPreTranslate { id: number; languages?: string[]; config?: { minRelevant?: number; autoSubstitution?: boolean; }; } interface WorkflowTemplateStepConfigMTPreTranslate { id: number; languages?: string[]; mtId?: number; } type StringsExporterSettings = AndroidStringsExporterSettings | MacOSXStringsExporterSettings | XliffStringsExporterSettings; interface ProjectStringsExporterSettings { id: number; format: string; settings: StringsExporterSettings; createdAt: string; updatedAt: string; } interface AndroidStringsExporterSettings { convertPlaceholders?: boolean; convertLineBreaks?: boolean; useCdataForStringsWithTags?: boolean; } interface MacOSXStringsExporterSettings { convertPlaceholders?: boolean; convertLineBreaks?: boolean; } interface XliffStringsExporterSettings { languagePairMapping?: { [key: string]: { sourceLanguageId: string; }; }; copySourceToEmptyTarget?: boolean; exportTranslatorsComment?: boolean; } interface AddProjectStringsExporterSettingsRequest { format: string; settings: StringsExporterSettings; } }