///
import { Injector } from 'reduct';
import { PodSpec } from '../schemas/PodSpec';
import { IncomingMessage } from 'http';
export interface HyperPodInfoResponse {
podID: string;
kind: string;
apiVersion: string;
vm: string;
createdAt: number;
spec: {
containers: {
args: string[];
containerID: string;
env: {
env: string;
value: string;
}[];
image: string;
imageID: string;
name: string;
volumeMounts: {
mountPath: string;
name: string;
};
workingDir: string;
}[];
memory: number;
vcpu: number;
volumes: {
driver: string;
name: string;
source: string;
}[];
};
status: {
phase: string;
hostIP: string;
podIP: string[];
containerStatus: {
containerID: string;
name: string;
phase: string;
running: {
startedAt: string;
};
terminated: object;
waiting: object;
}[];
};
podName: string;
}
export default class HyperClient {
private config;
constructor(deps: Injector);
getPodInfo(hash: string): Promise;
getPodIP(hash: string): Promise;
getPodList(): Promise>;
pullImages(podSpec: PodSpec): Promise;
pullImage(image: string): Promise;
createPod(podSpec: PodSpec): Promise;
startPod(podId: string): Promise;
runPod(podSpec: PodSpec): Promise;
deletePod(podId: string): Promise;
getLog(containerId: string, follow?: boolean): Promise;
}