UNPKG

@altostra/core

Version:

Core library for shared types and logic

37 lines (36 loc) 2.15 kB
import type { NonEmptyString } from "../../../common/CustomTypes/NonEmptyString"; import type { Logger, OperationLoggingSeverity } from "../../../common/Logging"; import type { Void } from "../../../common/Types"; import type { AxiosInstance } from 'axios'; import type { TemplateDescriptor } from "../../TemplateManager"; import type { ErrorMapping, IdentityToken } from "../common"; import type { ItemSelection } from "../ItemSelection"; import { ServiceClientBase } from "../ServiceClientBase"; import type { ApplyTemplateResponse, GetProjectsResponse, ProjectId, ProjectResponse as AltostraProject, ProjectUpdate } from "./Types"; export type { AltostraProject }; export interface IAltostraProjectsManager { getProject(projectSelection: ItemSelection | NonEmptyString): Promise<AltostraProject>; listProjects(): Promise<GetProjectsResponse>; deleteProject(projectSelection: ItemSelection): Promise<Void>; updateProject(projectSelection: ItemSelection, update: ProjectUpdate): Promise<Void>; applyTemplate(projectId: ProjectId, template: TemplateDescriptor): Promise<ApplyTemplateResponse>; } export interface AltostraProjectsManagerOptions { axios?: AxiosInstance; endpoint: string; getToken: () => Promise<IdentityToken>; logger?: Logger<OperationLoggingSeverity>; errorMapping?: ErrorMapping; } export declare const ERR_NO_PROJECT = "project-not-exist"; export declare const ERR_SYSTEM_ERROR = "get-project-from-server"; export declare class AltostraProjectsManager extends ServiceClientBase implements IAltostraProjectsManager { #private; constructor({ axios, endpoint, getToken, logger, errorMapping, }: AltostraProjectsManagerOptions); exists(projectId: NonEmptyString): Promise<boolean>; getProject(projectSelection: ItemSelection | NonEmptyString): Promise<AltostraProject>; listProjects(): Promise<GetProjectsResponse>; deleteProject(projectSelection: ItemSelection): Promise<Void>; updateProject(projectSelection: ItemSelection, update: ProjectUpdate): Promise<Void>; applyTemplate(projectId: ProjectId, template: TemplateDescriptor): Promise<ApplyTemplateResponse>; }