@codesandbox/sdk
Version:
The CodeSandbox SDK
203 lines (202 loc) • 6.83 kB
TypeScript
import { Config } from "./api-clients/client/client";
import { Client } from "./api-clients/pint/client";
import type { WorkspaceCreateData, TokenCreateData, TokenUpdateData, SandboxListData, SandboxCreateData, SandboxForkData, PreviewTokenCreateData, PreviewTokenUpdateData, TemplatesCreateData, VmAssignTagAliasData, VmCreateTagData, VmHibernateData, VmUpdateHibernationTimeoutData, VmCreateSessionData, VmShutdownData, VmUpdateSpecsData, VmStartRequest, VmUpdateSpecs2Data, PreviewHostListData, PreviewHostCreateData, PreviewHostUpdateData } from "./api-clients/client";
import { PitcherManagerResponse } from "./types";
export interface APIOptions {
apiKey: string;
config?: Config;
instrumentation?: (request: Request) => Promise<Response>;
}
export interface StartVmOptions extends VmStartRequest {
retryDelay?: number;
}
export declare class API {
private client;
constructor(options: APIOptions);
getMetaInfo(): Promise<({
data: undefined;
error: unknown;
} | {
data: import("./api-clients/client").MetaInformation;
error: undefined;
}) & {
request: Request;
response: Response;
}>;
createWorkspace(data?: WorkspaceCreateData["body"]): Promise<{
id: string;
name: string;
}>;
createToken(teamId: string, data: TokenCreateData["body"]): Promise<{
description: string | null;
expires_at: string | null;
scopes: Array<string>;
team_id: string;
token: string;
token_id: string;
}>;
updateToken(teamId: string, tokenId: string, data: TokenUpdateData["body"]): Promise<{
description: string | null;
expires_at?: string | null;
scopes: Array<string>;
team_id: string;
token_id: string;
}>;
listSandboxes(query?: SandboxListData["query"]): Promise<{
pagination: {
current_page: number;
next_page: number | null;
total_records: number;
};
sandboxes: Array<import("./api-clients/client").Sandbox>;
}>;
createSandbox(data?: SandboxCreateData["body"]): Promise<{
alias: string;
id: string;
title: string | null;
}>;
getSandbox(id: string): Promise<import("./api-clients/client").Sandbox>;
forkSandbox(id: string, data?: SandboxForkData["body"]): Promise<{
alias: string;
id: string;
start_response?: {
bootup_type: string;
cluster: string;
id: string;
latest_pitcher_version: string;
pint_token?: string;
pint_url?: string;
pitcher_manager_version: string;
pitcher_token: string;
pitcher_url: string;
pitcher_version: string;
reconnect_token: string;
use_pint: boolean;
user_workspace_path: string;
workspace_path: string;
} | null;
title: string | null;
}>;
revokeAllPreviewTokens(id: string): Promise<{
[key: string]: unknown;
}>;
listPreviewTokens(id: string): Promise<{
sandbox_id: string;
tokens: Array<import("./api-clients/client").PreviewToken>;
}>;
createPreviewToken(id: string, data?: PreviewTokenCreateData["body"]): Promise<{
sandbox_id: string;
token: {
expires_at: string | null;
last_used_at: string | null;
token_id: string;
token_prefix: string;
} & {
token: string;
};
}>;
updatePreviewToken(id: string, tokenId: string, data: PreviewTokenUpdateData["body"]): Promise<{
sandbox_id: string;
token: import("./api-clients/client").PreviewToken;
}>;
createTemplate(data: TemplatesCreateData["body"]): Promise<{
sandboxes: Array<{
cluster: string;
id: string;
}>;
tag: string;
}>;
assignVmTagAlias(namespace: string, alias: string, data: VmAssignTagAliasData["body"]): Promise<{
alias: string;
namespace: string;
tag_alias_id: string;
tag_id: string;
team_id: string;
}>;
listVmClusters(): Promise<{
clusters: Array<{
host: string;
slug: string;
}>;
}>;
listRunningVms(): Promise<{
concurrent_vm_count: number;
concurrent_vm_limit: number;
vms: Array<{
credit_basis?: string;
id?: string;
last_active_at?: string;
session_started_at?: string;
specs?: {
cpu?: number;
memory?: number;
storage?: number;
};
}>;
}>;
createVmTag(data?: VmCreateTagData["body"]): Promise<{
tag_id: string;
}>;
deleteVm(id: string): Promise<{
[key: string]: unknown;
}>;
hibernate(id: string, data?: VmHibernateData["body"]): Promise<{
[key: string]: unknown;
}>;
updateHibernationTimeout(id: string, data: VmUpdateHibernationTimeoutData["body"]): Promise<{
hibernation_timeout_seconds: number;
id: string;
}>;
createSession(id: string, data: VmCreateSessionData["body"]): Promise<{
capabilities: Array<string>;
permissions: {
[key: string]: unknown;
};
pitcher_token: string;
pitcher_url: string;
user_workspace_path: string;
username: string;
}>;
shutdown(id: string, data?: VmShutdownData["body"]): Promise<{
[key: string]: unknown;
}>;
updateSpecs(id: string, data: VmUpdateSpecsData["body"]): Promise<{
id: string;
tier: string;
}>;
startVm(id: string, options?: StartVmOptions): Promise<{
bootupType: PitcherManagerResponse["bootupType"];
cluster: string;
pitcherURL: string;
workspacePath: string;
userWorkspacePath: string;
pitcherManagerVersion: string;
pitcherVersion: string;
latestPitcherVersion: string;
pitcherToken: string;
}>;
updateVmSpecs2(id: string, data: VmUpdateSpecs2Data["body"]): Promise<{
id: string;
tier: string;
}>;
listPreviewHosts(query?: PreviewHostListData["query"]): Promise<{
preview_hosts: Array<{
host: string;
inserted_at: string;
}>;
}>;
createPreviewHost(data: PreviewHostCreateData["body"]): Promise<{
preview_hosts: Array<{
host: string;
inserted_at: string;
}>;
}>;
updatePreviewHost(data: PreviewHostUpdateData["body"]): Promise<{
preview_hosts: Array<{
host: string;
inserted_at: string;
}>;
}>;
getClient(): Client;
getConfig(): Config;
}