caprover-api
Version:
API client for CapRover
133 lines (132 loc) • 7.36 kB
TypeScript
import { IAppDef } from '../models/AppDefinition';
import AppDefinitionsResponse from '../models/AppDefinitionsResponse';
import AppDeleteResponse from '../models/AppDeleteResponse';
import { IAutomatedCleanupConfigs } from '../models/AutomatedCleanupConfigs';
import { BuildLogsResponse } from '../models/BuildLogsResponse';
import CapRoverTheme from '../models/CapRoverTheme';
import CaptainInfo from '../models/CaptainInfo';
import { GoAccessInfo } from '../models/GoAccessInfo';
import GoAccessReportResponse from '../models/GoAccessReportResponse';
import { ICaptainDefinition } from '../models/ICaptainDefinition';
import IGoAccessInfo from '../models/IGoAccessInfo';
import { IProConfig, IProFeatures, TwoFactorAuthRequest, TwoFactorAuthResponse } from '../models/IProFeatures';
import { IRegistryInfo } from '../models/IRegistryInfo';
import { IVersionInfo } from '../models/IVersionInfo';
import LoadBalancerInfo from '../models/LoadBalancerInfo';
import LogsResponse from '../models/LogsResponse';
import { NetDataInfo } from '../models/NetDataInfo';
import NginxConfig from '../models/NginxConfig';
import OneClickAppDefinitionResponse from '../models/OneClickAppDefinitionResponse';
import OneClickAppDeploymentState from '../models/OneClickAppDeploymentState';
import OneClickAppRepositories from '../models/OneClickAppRepositories';
import OneClickAppResponse from '../models/OneClickAppResponse';
import { ProjectDefinition } from '../models/ProjectDefinition';
import ProjectsResponse from '../models/ProjectsResponse';
import RegistriesResponse from '../models/RegistriesResponse';
import { ServerDockerInfo } from '../models/ServerDockerInfo';
import UnusedImagesResponse from '../models/UnusedImagesResponse';
export type AuthenticationContent = {
password: string;
otpToken?: string;
};
export interface AuthenticationProvider {
onAuthTokenRequested(): Promise<string>;
onCredentialsRequested(): Promise<AuthenticationContent>;
onAuthTokenUpdated(authToken: string): void;
}
export declare class SimpleAuthenticationProvider implements AuthenticationProvider {
private onCredRequestedImpl;
private authToken;
constructor(onCredRequestedImpl: () => Promise<AuthenticationContent>);
onAuthTokenRequested(): Promise<string>;
onCredentialsRequested(): Promise<AuthenticationContent>;
onAuthTokenUpdated(newAuthToken: string): void;
}
export default class ApiManager {
private authProvider;
private http;
constructor(baseDomain: string, authProvider: AuthenticationProvider);
destroy(): void;
login(password: string, otpToken?: string): Promise<void>;
getAllThemes(): Promise<{
themes: CapRoverTheme[] | undefined;
}>;
getCurrentTheme(): Promise<{
theme: CapRoverTheme;
}>;
setCurrentTheme(themeName: string): Promise<{}>;
saveTheme(oldName: string, theme: CapRoverTheme): Promise<{}>;
deleteTheme(themeName: string): Promise<{}>;
getProFeaturesState(): Promise<{
proFeaturesState: IProFeatures;
}>;
setProApiKey(apiKey: string): Promise<void>;
getProConfigs(): Promise<{
proConfigs: IProConfig;
}>;
setProConfigs(data: IProConfig): Promise<void>;
getOtpStatus(): Promise<TwoFactorAuthResponse>;
setOtpStatus(data: TwoFactorAuthRequest): Promise<TwoFactorAuthResponse>;
getCaptainInfo(): Promise<CaptainInfo>;
updateRootDomain(rootDomain: string, force: boolean): Promise<void>;
enableRootSsl(emailAddress: string): Promise<void>;
forceSsl(isEnabled: boolean): Promise<void>;
getAllApps(): Promise<AppDefinitionsResponse>;
getAllProjects(): Promise<ProjectsResponse>;
fetchBuildLogs(appName: string): Promise<BuildLogsResponse>;
fetchAppLogsInHex(appName: string): Promise<LogsResponse>;
uploadAppData(appName: string, file: File): Promise<void>;
registerProject(selectedProject: ProjectDefinition): Promise<ProjectDefinition>;
updateProject(project: ProjectDefinition): Promise<void>;
uploadCaptainDefinitionContent(appName: string, captainDefinition: ICaptainDefinition, gitHash: string, detached: boolean): Promise<void>;
updateConfigAndSave(appName: string, appDefinition: IAppDef): Promise<void>;
renameApp(oldAppName: string, newAppName: string): Promise<void>;
registerNewApp(appName: string, projectId: string, hasPersistentData: boolean, detached: boolean): Promise<void>;
deleteApp(appName: string | undefined, volumes: string[], appNames: string[] | undefined): Promise<AppDeleteResponse>;
deleteProjects(projectIds: string[]): Promise<void>;
enableSslForBaseDomain(appName: string): Promise<void>;
attachNewCustomDomainToApp(appName: string, customDomain: string): Promise<void>;
enableSslForCustomDomain(appName: string, customDomain: string): Promise<void>;
removeCustomDomain(appName: string, customDomain: string): Promise<void>;
getLoadBalancerInfo(): Promise<LoadBalancerInfo>;
getNetDataInfo(): Promise<NetDataInfo>;
updateNetDataInfo(netDataInfo: NetDataInfo): Promise<void>;
getGoAccessInfo(): Promise<IGoAccessInfo>;
updateGoAccessInfo(goAccessInfo: GoAccessInfo): Promise<void>;
getGoAccessReports(appName: string): Promise<GoAccessReportResponse[]>;
getGoAccessReport(reportUrl: string): Promise<string>;
changePass(oldPassword: string, newPassword: string): Promise<void>;
getVersionInfo(): Promise<IVersionInfo>;
createBackup(): Promise<{
downloadToken: string;
}>;
performUpdate(latestVersion: string): Promise<void>;
getNginxConfig(): Promise<NginxConfig>;
setNginxConfig(customBase: string, customCaptain: string): Promise<void>;
getUnusedImages(mostRecentLimit: number): Promise<UnusedImagesResponse>;
deleteImages(imageIds: string[]): Promise<void>;
getDiskCleanUpSettings(): Promise<IAutomatedCleanupConfigs>;
setDiskCleanUpSettings(mostRecentLimit: number, cronSchedule: string, timezone: string): Promise<void>;
getDockerRegistries(): Promise<RegistriesResponse>;
enableSelfHostedDockerRegistry(): Promise<void>;
disableSelfHostedDockerRegistry(): Promise<void>;
addDockerRegistry(dockerRegistry: IRegistryInfo): Promise<void>;
updateDockerRegistry(dockerRegistry: IRegistryInfo): Promise<void>;
deleteDockerRegistry(registryId: string): Promise<void>;
setDefaultPushDockerRegistry(registryId: string): Promise<void>;
forceBuild(webhookPath: string): Promise<void>;
getAllNodes(): Promise<{
nodes: ServerDockerInfo[];
}>;
getAllOneClickApps(): Promise<OneClickAppResponse>;
getOneClickAppByName(appName: string, baseDomain: string): Promise<OneClickAppDefinitionResponse>;
getAllOneClickAppRepos(): Promise<OneClickAppRepositories>;
addNewCustomOneClickRepo(repositoryUrl: string): Promise<void>;
deleteCustomOneClickRepo(repositoryUrl: string): Promise<void>;
addDockerNode(nodeType: string, privateKey: string, remoteNodeIpAddress: string, sshPort: string, sshUser: string, captainIpAddress: string): Promise<void>;
startOneClickAppDeploy(template: any, values?: any, templateName?: string): Promise<{
jobId: string;
}>;
getOneClickAppDeployProgress(jobId: string): Promise<OneClickAppDeploymentState>;
executeGenericApiCommand(verb: 'GET' | 'POST', endpoint: string, data: any): Promise<any>;
}