@crowdin/crowdin-api-client
Version:
JavaScript library for Crowdin API
107 lines (106 loc) • 4.54 kB
TypeScript
import { CrowdinApi, ResponseObject, PatchRequest, Pagination, ResponseList } from '../core';
/**
* Crowdin Apps are web applications that can be integrated with Crowdin to extend its functionality.
*
* Use the API to manage the necessary app data.
*/
export declare class Applications extends CrowdinApi {
/**
* @param options optional pagination parameters for the request
* @see https://developer.crowdin.com/api/v2/#operation/api.applications.installations.getMany
*/
listApplicationInstallations(options?: Pagination): Promise<ResponseList<ApplicationsModel.Application>>;
/**
* @param request request body
* @see https://developer.crowdin.com/api/v2/#operation/api.applications.installations.post
*/
installApplication(request: ApplicationsModel.InstallApplication): Promise<ResponseObject<ApplicationsModel.Application>>;
/**
* @param applicationId application identifier
* @see https://developer.crowdin.com/api/v2/#operation/api.applications.installations.get
*/
getApplicationInstallation(applicationId: string): Promise<ResponseObject<ApplicationsModel.Application>>;
/**
* @param applicationId application identifier
* @param force force delete the application
* @see https://developer.crowdin.com/api/v2/#operation/api.applications.installations.delete
*/
deleteApplicationInstallation(applicationId: string, force?: boolean): Promise<ResponseObject<ApplicationsModel.Application>>;
/**
* @param applicationId application identifier
* @param request request body
* @see https://developer.crowdin.com/api/v2/#operation/api.applications.installations.patch
*/
editApplicationInstallation(applicationId: string, request: PatchRequest[]): Promise<ResponseObject<ApplicationsModel.Application>>;
/**
* @param applicationId application identifier
* @param path path implemented by the application
* @see https://developer.crowdin.com/api/v2/#operation/api.applications.api.get
*/
getApplicationData(applicationId: string, path: string): Promise<ResponseObject<any>>;
/**
* @param applicationId application identifier
* @param path path implemented by the application
* @param request request body
* @see https://developer.crowdin.com/api/v2/#operation/api.applications.api.put
*/
updateOrRestoreApplicationData(applicationId: string, path: string, request: any): Promise<ResponseObject<any>>;
/**
* @param applicationId application identifier
* @param path path implemented by the application
* @param request request body
* @see https://developer.crowdin.com/api/v2/#operation/api.applications.api.post
*/
addApplicationData(applicationId: string, path: string, request: any): Promise<ResponseObject<any>>;
/**
* @param applicationId application identifier
* @param path path implemented by the application
* @see https://developer.crowdin.com/api/v2/#operation/api.applications.api.delete
*/
deleteApplicationData(applicationId: string, path: string): Promise<void>;
/**
* @param applicationId application identifier
* @param path path implemented by the application
* @param request request body
* @see https://developer.crowdin.com/api/v2/#operation/api.applications.api.patch
*/
editApplicationData(applicationId: string, path: string, request: any): Promise<ResponseObject<any>>;
}
export declare namespace ApplicationsModel {
interface Application {
identifier: string;
name: string;
description: string;
logo: string;
baseUrl: string;
manifestUrl: string;
createdAt: string;
modules: ApplicationModule[];
scopes: string[];
permissions: ApplicationPermissions;
defaultPermissions: any;
limitReached: boolean;
}
interface InstallApplication {
url: string;
permissions?: ApplicationPermissions;
modules?: ApplicationModule[];
}
interface ApplicationPermissions {
user: {
value: 'all' | 'owner' | 'managers' | 'guests' | 'restricted';
ids: number[];
};
project: {
value: 'own' | 'restricted';
ids: number[];
};
}
interface ApplicationModule {
key: string;
type?: string;
data?: any;
authenticationType?: string;
permissions: Omit<ApplicationPermissions, 'project'>;
}
}