@pelican.ts/sdk
Version:
Pelican panel SDK for TypeScript
1,429 lines (1,390 loc) • 56.2 kB
TypeScript
import { AxiosInstance } from 'axios';
import WebSocket from 'isomorphic-ws';
import z from 'zod';
type ExactlyOneKey<K extends keyof any, V, KK extends keyof any = K> = {
[P in K]: {
[Q in P]: V;
} & {
[Q in Exclude<KK, P>]?: never;
} extends infer O ? {
[Q in keyof O]: O[Q];
} : never;
}[K];
type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
type Nullable<T> = T | null;
type User = {
uuid: string;
username: string;
email: string;
language: string;
image: string;
admin: boolean;
root_admin: boolean;
"2fa_enabled": boolean;
created_at: string;
updated_at: string;
};
type APIKey = {
identifier: string;
description: string;
allowed_ips: string[];
last_used_at: Nullable<string>;
created_at: string;
};
type SSHKey = {
name: string;
fingerprint: string;
pubic_key: string;
created_at: string;
};
type Permission = {
description: string;
keys: Record<string, string>;
};
declare class Account {
private readonly r;
constructor(requester: AxiosInstance);
info: () => Promise<User>;
updateEmail: (newEmail: string, password: string) => Promise<void>;
updatePassword: (newPassword: string) => Promise<void>;
apiKeys: {
list: () => Promise<APIKey[]>;
create: (description: string, allowed_ips?: string[]) => Promise<APIKey & {
secret_token: string;
}>;
delete: (identifier: string) => Promise<void>;
};
sshKeys: {
list: () => Promise<SSHKey[]>;
create: (name: string, public_key: string) => Promise<SSHKey>;
delete: (fingerprint: string) => Promise<void>;
};
}
type GenericResponse<T, N extends string = string, M = undefined> = {
object: N;
attributes: T;
meta?: M;
};
type PaginationMeta = {
total: number;
count: number;
per_page: number;
current_page: number;
total_pages: number;
links: any;
};
type GenericListResponse<T> = {
object: "list";
data: T[];
meta?: {
pagination: PaginationMeta;
};
};
type CustomListResponse<T, M> = {
object: "list";
data: T[];
meta?: M;
};
type EggVariable = {
name: string;
description: string;
env_variable: string;
default_value: string;
server_value: string;
is_editable: boolean;
rules: string;
};
type ServerSubuser = {
uuid: string;
username: string;
email: string;
language: string;
image: string;
admin: false;
root_admin: false;
"2fa_enabled": boolean;
created_at: string;
permissions: SubuserPermission[] | string[];
};
type SubuserPermission = "activity.read" | "allocation.create" | "allocation.delete" | "allocation.read" | "allocation.update" | "backup.create" | "backup.delete" | "backup.download" | "backup.read" | "backup.restore" | "control.console" | "control.restart" | "control.start" | "control.stop" | "database.create" | "database.delete" | "database.read" | "database.update" | "database.view-password" | "file.archive" | "file.create" | "file.delete" | "file.read" | "file.read-content" | "file.sftp" | "file.update" | "schedule.create" | "schedule.delete" | "schedule.read" | "schedule.update" | "settings.description" | "settings.reinstall" | "settings.rename" | "startup.docker-image" | "startup.read" | "startup.update" | "user.create" | "user.delete" | "user.read" | "user.update" | "websocket.connect";
type ServerLimits = {
memory: number;
swap: number;
disk: number;
io: number;
cpu: number;
threads: Nullable<number | string>;
oom_disabled: boolean;
oom_killer: boolean;
};
type FeatureLimits = {
databases: number;
allocations: number;
backups: number;
};
type ServerAllocation = {
id: number;
ip: string;
ip_alias: Nullable<string>;
port: number;
notes: Nullable<string>;
is_default: boolean;
};
type Server = {
server_owner: boolean;
identifier: string;
internal_id?: number;
uuid: string;
name: string;
node: string;
is_node_under_maintenance: boolean;
sftp_details: {
ip: string;
alias: Nullable<string>;
port: number;
};
description: string;
limits: ServerLimits;
invocation: string;
docker_image: string;
egg_features: Nullable<string[]>;
feature_limits: FeatureLimits;
status: Nullable<unknown>;
is_suspended: boolean;
is_installing: boolean;
is_transferring: boolean;
relationships: {
allocations: GenericListResponse<GenericResponse<ServerAllocation, "allocation">>;
variables: GenericListResponse<GenericResponse<EggVariable, "egg_variable">>;
egg?: GenericResponse<{
uuid: string;
name: string;
}, "egg">;
subusers?: GenericListResponse<GenericResponse<ServerSubuser, "server_subuser">>;
};
};
type ServerStats = {
current_state: "installing" | "install_failed" | "reinstall_failed" | "suspended" | "restoring_backup" | "running" | "stopped" | "offline";
is_suspended: boolean;
resources: ServerResources;
};
type ServerResources = {
memory_bytes: number;
cpu_absolute: number;
disk_bytes: number;
network_tx_bytes: number;
network_rx_bytes: number;
uptime: number;
};
type ServerActivityLog = {
id: string;
event: string;
is_api: boolean;
ip: string;
description: Nullable<string>;
properties: Record<string, string>;
has_additional_metadata: boolean;
timestamp: string;
};
type ServerDatabase = {
id: string;
host: {
address: string;
port: number;
};
name: string;
username: string;
connections_from: string;
max_connections: number;
relationships?: {
password: GenericResponse<{
password: string;
}, "database_password">;
};
};
declare class ServerDatabases {
private readonly r;
private readonly id;
constructor(requester: AxiosInstance, id: string);
list: (include?: "password"[], page?: number) => Promise<ServerDatabase[]>;
create: (database: string, remote: string) => Promise<ServerDatabase>;
rotatePassword: (database_id: string) => Promise<ServerDatabase>;
delete: (database_id: string) => Promise<void>;
}
type FileObject = {
name: string;
mode: string;
mode_bits: string;
size: number;
is_file: boolean;
is_symlink: boolean;
mimetype: string;
created_at: string;
modified_at: string;
};
declare class ServerFiles {
private readonly r;
private readonly id;
constructor(requester: AxiosInstance, id: string);
list: (path?: string) => Promise<FileObject[]>;
/**
* Return the contents of a file. To read binary file (non-editable) use {@link download} instead
*/
contents: (path: string) => Promise<string>;
downloadGetUrl: (path: string) => Promise<string>;
download: (path: string) => Promise<ArrayBuffer>;
rename: (root: string | undefined, files: {
from: string;
to: string;
}[]) => Promise<void>;
copy: (location: string) => Promise<void>;
write: (path: string, content: string) => Promise<void>;
compress: (root: string | undefined, files: string[], archive_name?: string, extension?: "zip" | "tgz" | "tar.gz" | "txz" | "tar.xz" | "tbz2" | "tar.bz2") => Promise<FileObject>;
decompress: (root: string | undefined, file: string) => Promise<void>;
delete: (root: string | undefined, files: string[]) => Promise<void>;
createFolder: (root: string | undefined, name: string) => Promise<void>;
chmod: (root: string | undefined, files: Array<{
file: string;
mode: number;
}>) => Promise<void>;
pullFromRemote: (url: string, directory?: string, filename?: string, // Unused
use_header?: boolean, // Unused
foreground?: boolean) => Promise<void>;
uploadGetUrl: () => Promise<string>;
upload: (file: File, root?: string) => Promise<void>;
}
type Schedule = {
id: number;
name: string;
cron: {
day_of_week: string;
day_of_month: string;
hour: string;
minute: string;
};
is_active: boolean;
is_processing: boolean;
only_when_online: boolean;
last_run_at: Nullable<string>;
next_run_at: string;
created_at: string;
updated_at: string;
relationships: {
tasks: GenericListResponse<GenericResponse<ScheduleTask, "schedule_task">>;
};
};
type ScheduleTask = {
id: number;
sequence_id: number;
action: "command" | "power" | "backup" | "delete_files";
payload: string;
time_offset: number;
is_queued: boolean;
continue_on_failure: boolean;
created_at: string;
updated_at: Nullable<string>;
};
declare class ServerSchedules {
private readonly r;
private readonly id;
constructor(requester: AxiosInstance, id: string);
list: () => Promise<Schedule[]>;
create: (params: ScheduleCreateParams) => Promise<Schedule>;
control: (sched_id: number) => ScheduleControl;
}
type ScheduleCreateParams = {
name: string;
is_active?: boolean;
only_when_online?: boolean;
minute: string;
hour: string;
day_of_week: string;
month: string;
day_of_month: string;
};
declare class ScheduleControl {
private r;
private readonly id;
private readonly sched_id;
constructor(requester: AxiosInstance, id: string, sched_id: number);
info: () => Promise<Schedule>;
update: (params: ScheduleCreateParams) => Promise<Schedule>;
delete: () => Promise<void>;
execute: () => Promise<void>;
tasks: {
create: (opts: PartialBy<Pick<ScheduleTask, "action" | "payload" | "time_offset" | "sequence_id" | "continue_on_failure">, "payload" | "sequence_id" | "continue_on_failure">) => Promise<ScheduleTask>;
update: <T extends "command" | "power" | "backup" | "delete_files">(task_id: number, opts: PartialBy<Pick<ScheduleTask, "action" | "payload" | "time_offset" | "sequence_id" | "continue_on_failure">, "payload" | "sequence_id" | "continue_on_failure">) => Promise<ScheduleTask>;
delete: (task_id: number) => Promise<void>;
};
}
declare class ServerAllocations {
private readonly r;
private readonly id;
constructor(requester: AxiosInstance, id: string);
list: () => Promise<ServerAllocation[]>;
autoAssign: () => Promise<ServerAllocation>;
setNotes: (alloc_id: number, notes: string) => Promise<ServerAllocation>;
setPrimary: (alloc_id: number) => Promise<ServerAllocation>;
unassign: (alloc_id: number) => Promise<void>;
}
declare class ServerUsers {
private readonly r;
private readonly id;
constructor(requester: AxiosInstance, id: string);
list: () => Promise<ServerSubuser[]>;
create: (email: string, permissions: SubuserPermission[] | string[]) => Promise<ServerSubuser>;
info: (user_uuid: string) => Promise<ServerSubuser>;
update: (user_uuid: string, permissions: SubuserPermission[] | string[]) => Promise<ServerSubuser>;
delete: (user_uuid: string) => Promise<void>;
}
type ServerBackup = {
uuid: string;
is_successful: boolean;
is_locked: boolean;
name: string;
ignored_files: string[];
checksum: Nullable<string>;
bytes: number;
created_at: string;
completed_at: Nullable<string>;
};
declare class ServerBackups {
private readonly r;
private readonly id;
constructor(requester: AxiosInstance, id: string);
list: (page?: number) => Promise<ServerBackup[]>;
create: (args: {
name?: string;
is_locked: boolean;
ignored_files: string[];
}) => Promise<ServerBackup>;
info: (backup_uuid: string) => Promise<ServerBackup>;
downloadGetUrl: (backup_uuid: string) => Promise<string>;
download: (backup_uuid: string) => Promise<ArrayBuffer>;
delete: (backup_uuid: string) => Promise<void>;
rename: (backup_uuid: string, name: string) => Promise<void>;
toggleLock: (backup_uuid: string) => Promise<void>;
restore: (backup_uuid: string, truncate: boolean) => Promise<void>;
}
type StartupParams = {
name: string;
description: string;
env_variables: string;
default_value: string;
server_value: string;
is_editable: boolean;
rules: string;
};
type StartupMeta = {
startup_command: string;
raw_startup_command: string;
};
declare class ServerStartup {
private readonly r;
private readonly id;
constructor(requester: AxiosInstance, id: string);
list: () => Promise<CustomListResponse<StartupParams, StartupMeta>>;
set: (key: string, value: string) => Promise<StartupParams>;
}
declare class ServerSettings {
private readonly r;
private readonly id;
constructor(requester: AxiosInstance, id: string);
rename: (name: string) => Promise<void>;
updateDescription: (description: Nullable<string>) => Promise<void>;
reinstall: () => Promise<void>;
changeDockerImage: (image: string) => Promise<void>;
}
/**
* Source: https://github.com/pterodactyl/panel/blob/1.0-develop/resources/scripts/components/server/events.ts
*/
declare enum SOCKET_EVENT {
AUTH_SUCCESS = "auth success",
DAEMON_MESSAGE = "daemon message",
DAEMON_ERROR = "daemon error",
INSTALL_OUTPUT = "install output",
INSTALL_STARTED = "install started",
INSTALL_COMPLETED = "install completed",
CONSOLE_OUTPUT = "console output",
STATUS = "status",
STATS = "stats",
TRANSFER_LOGS = "transfer logs",
TRANSFER_STATUS = "transfer status",
BACKUP_COMPLETED = "backup completed",
BACKUP_RESTORE_COMPLETED = "backup restore completed",
TOKEN_EXPIRING = "token expiring",
TOKEN_EXPIRED = "token expired",
JWT_ERROR = "jwt error"
}
type BackupCompletedJson = {
checksum: string;
checksum_type: "sha1";
file_size: number;
is_successful: boolean;
uuid: string;
};
type PowerState = "starting" | "stopping" | "running" | "offline";
type StatsWsJson = {
memory_bytes: number;
memory_limit_bytes: number;
cpu_absolute: number;
network: {
rx_bytes: number;
tx_bytes: number;
};
state: PowerState;
uptime: number;
disk_bytes: number;
};
type ServerSignalOption = "start" | "stop" | "restart" | "kill";
type SocketEventPayloadMap = {
[SOCKET_EVENT.AUTH_SUCCESS]: undefined;
[SOCKET_EVENT.STATUS]: PowerState;
[SOCKET_EVENT.CONSOLE_OUTPUT]: string;
[SOCKET_EVENT.STATS]: StatsWsJson;
[SOCKET_EVENT.DAEMON_ERROR]: undefined;
[SOCKET_EVENT.DAEMON_MESSAGE]: string;
[SOCKET_EVENT.INSTALL_OUTPUT]: string;
[SOCKET_EVENT.INSTALL_STARTED]: undefined;
[SOCKET_EVENT.INSTALL_COMPLETED]: undefined;
[SOCKET_EVENT.TRANSFER_LOGS]: string;
[SOCKET_EVENT.TRANSFER_STATUS]: string;
[SOCKET_EVENT.BACKUP_COMPLETED]: BackupCompletedJson;
[SOCKET_EVENT.BACKUP_RESTORE_COMPLETED]: undefined;
[SOCKET_EVENT.TOKEN_EXPIRING]: undefined;
[SOCKET_EVENT.TOKEN_EXPIRED]: undefined;
[SOCKET_EVENT.JWT_ERROR]: string;
};
type Listener<E extends SOCKET_EVENT> = SocketEventPayloadMap[E] extends undefined ? () => void : (payload: SocketEventPayloadMap[E]) => void;
type CloseEventLike = Parameters<NonNullable<WebSocket["onclose"]>>[0];
type ErrorEventLike = Parameters<NonNullable<WebSocket["onerror"]>>[0];
declare class ServerWebsocket {
private readonly r;
private readonly serverId;
private socket?;
private currentToken?;
private readonly bus;
private debugLogging;
private stripColors;
private detachMessageListener?;
constructor(requester: AxiosInstance, id: string, stripColors?: boolean);
on<E extends SOCKET_EVENT>(event: E, listener: Listener<E>): () => void;
deregister<E extends SOCKET_EVENT>(event: E, listener: Listener<E>): void;
private emit;
connect(resumable?: boolean, debugLogging?: boolean): Promise<void>;
onSocketDisconnect(handler: (event: CloseEventLike) => void): void;
onSocketError(handler: (event: ErrorEventLike) => void): void;
makeResumable(disconnectsToo: boolean): void;
private attachMessageListener;
private handleIncomingMessage;
private parseMessage;
private normalisePayload;
private dispatchMessage;
private refreshCredentials;
private authenticate;
disconnect(): void;
requestStats(): void;
requestLogs(): void;
private send;
getStats(): Promise<StatsWsJson>;
getLogs(): Promise<string[]>;
sendPoweraction(action: ServerSignalOption): void;
sendCommand(cmd: string): void;
}
declare class ServerActivity {
private readonly r;
private readonly id;
constructor(r: AxiosInstance, id: string);
list: (page?: number, per_page?: number) => Promise<ServerActivityLog[]>;
}
declare class ServerClient {
private readonly r;
private readonly id;
activity: ServerActivity;
databases: ServerDatabases;
files: ServerFiles;
schedules: ServerSchedules;
allocations: ServerAllocations;
users: ServerUsers;
backups: ServerBackups;
startup: ServerStartup;
variables: ServerStartup;
settings: ServerSettings;
constructor(requester: AxiosInstance, id: string);
info: (include?: ("egg" | "subusers")[]) => Promise<Server>;
websocket: (stripColors?: boolean) => ServerWebsocket;
resources: () => Promise<ServerStats>;
command: (command: string) => Promise<void>;
power: (signal: "start" | "stop" | "restart" | "kill") => Promise<void>;
}
declare class Client$1 {
account: Account;
private readonly r;
constructor(requester: AxiosInstance);
get $r(): AxiosInstance;
listPermissions: () => Promise<Record<string, Permission>>;
listServers: (type?: "accessible" | "mine" | "admin" | "admin-all", page?: number, per_page?: number, include?: ("egg" | "subusers")[]) => Promise<Server[]>;
server: (uuid: string) => ServerClient;
}
type Container = {
startup_command: string;
image: string;
installed: number;
docker_labels: Record<string, string>;
environment: Record<string, string>;
ports: number[];
volumes: string[];
network_mode: string;
};
type ApplicationServer = {
id: number;
external_id: Nullable<string>;
uuid: string;
identifier: string;
name: string;
description: string;
status: Nullable<unknown>;
suspended: boolean;
limits: ServerLimits;
feature_limits: FeatureLimits;
user: number;
node: number;
allocation: number;
egg: number;
container: Container;
created_at: string;
updated_at: Nullable<string>;
};
type ApplicationUser = {
id: number;
external_id: Nullable<string>;
uuid: string;
username: string;
email: string;
language: string;
root_admin: string;
"2fa_enabled": boolean;
"2fa": boolean;
created_at: string;
updated_at: Nullable<string>;
relationships?: {
servers: GenericListResponse<GenericResponse<ApplicationServer>>;
};
};
type ApplicationUserApiKey = {
id: number;
user_id: number;
key_type: 1;
identifier: string;
memo: string;
allowed_ips: Array<string>;
permissions: [];
last_used_at: Nullable<string>;
expires_at: Nullable<string>;
created_at: string;
updated_at: string;
};
declare class Users {
private readonly r;
constructor(requester: AxiosInstance);
list: (opts: ListType, page?: number) => Promise<ApplicationUser[]>;
info: (id: number, { include }: {
include?: "servers"[];
}) => Promise<ApplicationUser>;
infoByExternal: (external_id: string, { include }: {
include?: "servers"[];
}) => Promise<ApplicationUser>;
create: (user: z.infer<typeof CreateSchema>) => Promise<ApplicationUser>;
update: (id: number, user: z.infer<typeof CreateSchema>) => Promise<ApplicationUser>;
delete: (id: number) => Promise<void>;
addRoles: (id: number, roles: number[]) => Promise<void>;
removeRoles: (id: number, roles: number[]) => Promise<void>;
apiKeys: {
list: (id: number) => Promise<ApplicationUserApiKey[]>;
create: (id: number, description: string, allowed_ips?: string[]) => Promise<ApplicationUserApiKey & {
secret_token: string;
}>;
delete: (id: number, identifier: string) => Promise<void>;
};
}
type ListType = {
include?: "servers"[];
filters?: ListFilters;
sort?: ListSort;
};
type ListFilters = {
[key in "email" | "uuid" | "username" | "external_id"]: string;
};
type ListSort = ExactlyOneKey<"id" | "uuid", "asc" | "desc">;
declare const CreateSchema: z.ZodObject<{
email: z.ZodEmail;
external_id: z.ZodOptional<z.ZodString>;
username: z.ZodString;
password: z.ZodOptional<z.ZodString>;
language: z.ZodEnum<{
id: "id";
af: "af";
ak: "ak";
am: "am";
ar: "ar";
as: "as";
az: "az";
be: "be";
bg: "bg";
bm: "bm";
bn: "bn";
bo: "bo";
br: "br";
bs: "bs";
ca: "ca";
ce: "ce";
cs: "cs";
cv: "cv";
cy: "cy";
da: "da";
de: "de";
dz: "dz";
ee: "ee";
el: "el";
en: "en";
eo: "eo";
es: "es";
et: "et";
eu: "eu";
fa: "fa";
ff: "ff";
fi: "fi";
fo: "fo";
fr: "fr";
fy: "fy";
ga: "ga";
gd: "gd";
gl: "gl";
gu: "gu";
gv: "gv";
ha: "ha";
he: "he";
hi: "hi";
hr: "hr";
hu: "hu";
hy: "hy";
ia: "ia";
ig: "ig";
ii: "ii";
is: "is";
it: "it";
ja: "ja";
jv: "jv";
ka: "ka";
ki: "ki";
kk: "kk";
kl: "kl";
km: "km";
kn: "kn";
ko: "ko";
ks: "ks";
ku: "ku";
kw: "kw";
ky: "ky";
lb: "lb";
lg: "lg";
ln: "ln";
lo: "lo";
lt: "lt";
lu: "lu";
lv: "lv";
mg: "mg";
mi: "mi";
mk: "mk";
ml: "ml";
mn: "mn";
mr: "mr";
ms: "ms";
mt: "mt";
my: "my";
nb: "nb";
nd: "nd";
ne: "ne";
nl: "nl";
nn: "nn";
no: "no";
om: "om";
or: "or";
os: "os";
pa: "pa";
pl: "pl";
ps: "ps";
pt: "pt";
qu: "qu";
rm: "rm";
rn: "rn";
ro: "ro";
ru: "ru";
rw: "rw";
sa: "sa";
sc: "sc";
sd: "sd";
se: "se";
sg: "sg";
si: "si";
sk: "sk";
sl: "sl";
sn: "sn";
so: "so";
sq: "sq";
sr: "sr";
su: "su";
sv: "sv";
sw: "sw";
ta: "ta";
te: "te";
tg: "tg";
th: "th";
ti: "ti";
tk: "tk";
to: "to";
tr: "tr";
tt: "tt";
ug: "ug";
uk: "uk";
ur: "ur";
uz: "uz";
vi: "vi";
wo: "wo";
xh: "xh";
yi: "yi";
yo: "yo";
zh: "zh";
zu: "zu";
}>;
timezone: z.ZodEnum<{
"Africa/Abidjan": "Africa/Abidjan";
"Africa/Accra": "Africa/Accra";
"Africa/Addis_Ababa": "Africa/Addis_Ababa";
"Africa/Algiers": "Africa/Algiers";
"Africa/Asmara": "Africa/Asmara";
"Africa/Bamako": "Africa/Bamako";
"Africa/Bangui": "Africa/Bangui";
"Africa/Banjul": "Africa/Banjul";
"Africa/Bissau": "Africa/Bissau";
"Africa/Blantyre": "Africa/Blantyre";
"Africa/Brazzaville": "Africa/Brazzaville";
"Africa/Bujumbura": "Africa/Bujumbura";
"Africa/Cairo": "Africa/Cairo";
"Africa/Casablanca": "Africa/Casablanca";
"Africa/Ceuta": "Africa/Ceuta";
"Africa/Conakry": "Africa/Conakry";
"Africa/Dakar": "Africa/Dakar";
"Africa/Dar_es_Salaam": "Africa/Dar_es_Salaam";
"Africa/Djibouti": "Africa/Djibouti";
"Africa/Douala": "Africa/Douala";
"Africa/El_Aaiun": "Africa/El_Aaiun";
"Africa/Freetown": "Africa/Freetown";
"Africa/Gaborone": "Africa/Gaborone";
"Africa/Harare": "Africa/Harare";
"Africa/Johannesburg": "Africa/Johannesburg";
"Africa/Juba": "Africa/Juba";
"Africa/Kampala": "Africa/Kampala";
"Africa/Khartoum": "Africa/Khartoum";
"Africa/Kigali": "Africa/Kigali";
"Africa/Kinshasa": "Africa/Kinshasa";
"Africa/Lagos": "Africa/Lagos";
"Africa/Libreville": "Africa/Libreville";
"Africa/Lome": "Africa/Lome";
"Africa/Luanda": "Africa/Luanda";
"Africa/Lubumbashi": "Africa/Lubumbashi";
"Africa/Lusaka": "Africa/Lusaka";
"Africa/Malabo": "Africa/Malabo";
"Africa/Maputo": "Africa/Maputo";
"Africa/Maseru": "Africa/Maseru";
"Africa/Mbabane": "Africa/Mbabane";
"Africa/Mogadishu": "Africa/Mogadishu";
"Africa/Monrovia": "Africa/Monrovia";
"Africa/Nairobi": "Africa/Nairobi";
"Africa/Ndjamena": "Africa/Ndjamena";
"Africa/Niamey": "Africa/Niamey";
"Africa/Nouakchott": "Africa/Nouakchott";
"Africa/Ouagadougou": "Africa/Ouagadougou";
"Africa/Porto-Novo": "Africa/Porto-Novo";
"Africa/Sao_Tome": "Africa/Sao_Tome";
"Africa/Tripoli": "Africa/Tripoli";
"Africa/Tunis": "Africa/Tunis";
"Africa/Windhoek": "Africa/Windhoek";
"America/Adak": "America/Adak";
"America/Anchorage": "America/Anchorage";
"America/Anguilla": "America/Anguilla";
"America/Antigua": "America/Antigua";
"America/Araguaina": "America/Araguaina";
"America/Argentina/Buenos_Aires": "America/Argentina/Buenos_Aires";
"America/Argentina/Catamarca": "America/Argentina/Catamarca";
"America/Argentina/Cordoba": "America/Argentina/Cordoba";
"America/Argentina/Jujuy": "America/Argentina/Jujuy";
"America/Argentina/La_Rioja": "America/Argentina/La_Rioja";
"America/Argentina/Mendoza": "America/Argentina/Mendoza";
"America/Argentina/Rio_Gallegos": "America/Argentina/Rio_Gallegos";
"America/Argentina/Salta": "America/Argentina/Salta";
"America/Argentina/San_Juan": "America/Argentina/San_Juan";
"America/Argentina/San_Luis": "America/Argentina/San_Luis";
"America/Argentina/Tucuman": "America/Argentina/Tucuman";
"America/Argentina/Ushuaia": "America/Argentina/Ushuaia";
"America/Aruba": "America/Aruba";
"America/Asuncion": "America/Asuncion";
"America/Atikokan": "America/Atikokan";
"America/Bahia": "America/Bahia";
"America/Bahia_Banderas": "America/Bahia_Banderas";
"America/Barbados": "America/Barbados";
"America/Belem": "America/Belem";
"America/Belize": "America/Belize";
"America/Blanc-Sablon": "America/Blanc-Sablon";
"America/Boa_Vista": "America/Boa_Vista";
"America/Bogota": "America/Bogota";
"America/Boise": "America/Boise";
"America/Cambridge_Bay": "America/Cambridge_Bay";
"America/Campo_Grande": "America/Campo_Grande";
"America/Cancun": "America/Cancun";
"America/Caracas": "America/Caracas";
"America/Cayenne": "America/Cayenne";
"America/Cayman": "America/Cayman";
"America/Chicago": "America/Chicago";
"America/Chihuahua": "America/Chihuahua";
"America/Ciudad_Juarez": "America/Ciudad_Juarez";
"America/Costa_Rica": "America/Costa_Rica";
"America/Coyhaique": "America/Coyhaique";
"America/Creston": "America/Creston";
"America/Cuiaba": "America/Cuiaba";
"America/Curacao": "America/Curacao";
"America/Danmarkshavn": "America/Danmarkshavn";
"America/Dawson": "America/Dawson";
"America/Dawson_Creek": "America/Dawson_Creek";
"America/Denver": "America/Denver";
"America/Detroit": "America/Detroit";
"America/Dominica": "America/Dominica";
"America/Edmonton": "America/Edmonton";
"America/Eirunepe": "America/Eirunepe";
"America/El_Salvador": "America/El_Salvador";
"America/Fort_Nelson": "America/Fort_Nelson";
"America/Fortaleza": "America/Fortaleza";
"America/Glace_Bay": "America/Glace_Bay";
"America/Goose_Bay": "America/Goose_Bay";
"America/Grand_Turk": "America/Grand_Turk";
"America/Grenada": "America/Grenada";
"America/Guadeloupe": "America/Guadeloupe";
"America/Guatemala": "America/Guatemala";
"America/Guayaquil": "America/Guayaquil";
"America/Guyana": "America/Guyana";
"America/Halifax": "America/Halifax";
"America/Havana": "America/Havana";
"America/Hermosillo": "America/Hermosillo";
"America/Indiana/Indianapolis": "America/Indiana/Indianapolis";
"America/Indiana/Knox": "America/Indiana/Knox";
"America/Indiana/Marengo": "America/Indiana/Marengo";
"America/Indiana/Petersburg": "America/Indiana/Petersburg";
"America/Indiana/Tell_City": "America/Indiana/Tell_City";
"America/Indiana/Vevay": "America/Indiana/Vevay";
"America/Indiana/Vincennes": "America/Indiana/Vincennes";
"America/Indiana/Winamac": "America/Indiana/Winamac";
"America/Inuvik": "America/Inuvik";
"America/Iqaluit": "America/Iqaluit";
"America/Jamaica": "America/Jamaica";
"America/Juneau": "America/Juneau";
"America/Kentucky/Louisville": "America/Kentucky/Louisville";
"America/Kentucky/Monticello": "America/Kentucky/Monticello";
"America/Kralendijk": "America/Kralendijk";
"America/La_Paz": "America/La_Paz";
"America/Lima": "America/Lima";
"America/Los_Angeles": "America/Los_Angeles";
"America/Lower_Princes": "America/Lower_Princes";
"America/Maceio": "America/Maceio";
"America/Managua": "America/Managua";
"America/Manaus": "America/Manaus";
"America/Marigot": "America/Marigot";
"America/Martinique": "America/Martinique";
"America/Matamoros": "America/Matamoros";
"America/Mazatlan": "America/Mazatlan";
"America/Menominee": "America/Menominee";
"America/Merida": "America/Merida";
"America/Metlakatla": "America/Metlakatla";
"America/Mexico_City": "America/Mexico_City";
"America/Miquelon": "America/Miquelon";
"America/Moncton": "America/Moncton";
"America/Monterrey": "America/Monterrey";
"America/Montevideo": "America/Montevideo";
"America/Montserrat": "America/Montserrat";
"America/Nassau": "America/Nassau";
"America/New_York": "America/New_York";
"America/Nome": "America/Nome";
"America/Noronha": "America/Noronha";
"America/North_Dakota/Beulah": "America/North_Dakota/Beulah";
"America/North_Dakota/Center": "America/North_Dakota/Center";
"America/North_Dakota/New_Salem": "America/North_Dakota/New_Salem";
"America/Nuuk": "America/Nuuk";
"America/Ojinaga": "America/Ojinaga";
"America/Panama": "America/Panama";
"America/Paramaribo": "America/Paramaribo";
"America/Phoenix": "America/Phoenix";
"America/Port-au-Prince": "America/Port-au-Prince";
"America/Port_of_Spain": "America/Port_of_Spain";
"America/Porto_Velho": "America/Porto_Velho";
"America/Puerto_Rico": "America/Puerto_Rico";
"America/Punta_Arenas": "America/Punta_Arenas";
"America/Rankin_Inlet": "America/Rankin_Inlet";
"America/Recife": "America/Recife";
"America/Regina": "America/Regina";
"America/Resolute": "America/Resolute";
"America/Rio_Branco": "America/Rio_Branco";
"America/Santarem": "America/Santarem";
"America/Santiago": "America/Santiago";
"America/Santo_Domingo": "America/Santo_Domingo";
"America/Sao_Paulo": "America/Sao_Paulo";
"America/Scoresbysund": "America/Scoresbysund";
"America/Sitka": "America/Sitka";
"America/St_Barthelemy": "America/St_Barthelemy";
"America/St_Johns": "America/St_Johns";
"America/St_Kitts": "America/St_Kitts";
"America/St_Lucia": "America/St_Lucia";
"America/St_Thomas": "America/St_Thomas";
"America/St_Vincent": "America/St_Vincent";
"America/Swift_Current": "America/Swift_Current";
"America/Tegucigalpa": "America/Tegucigalpa";
"America/Thule": "America/Thule";
"America/Tijuana": "America/Tijuana";
"America/Toronto": "America/Toronto";
"America/Tortola": "America/Tortola";
"America/Vancouver": "America/Vancouver";
"America/Whitehorse": "America/Whitehorse";
"America/Winnipeg": "America/Winnipeg";
"America/Yakutat": "America/Yakutat";
"Antarctica/Casey": "Antarctica/Casey";
"Antarctica/Davis": "Antarctica/Davis";
"Antarctica/DumontDUrville": "Antarctica/DumontDUrville";
"Antarctica/Macquarie": "Antarctica/Macquarie";
"Antarctica/Mawson": "Antarctica/Mawson";
"Antarctica/McMurdo": "Antarctica/McMurdo";
"Antarctica/Palmer": "Antarctica/Palmer";
"Antarctica/Rothera": "Antarctica/Rothera";
"Antarctica/Syowa": "Antarctica/Syowa";
"Antarctica/Troll": "Antarctica/Troll";
"Antarctica/Vostok": "Antarctica/Vostok";
"Arctic/Longyearbyen": "Arctic/Longyearbyen";
"Asia/Aden": "Asia/Aden";
"Asia/Almaty": "Asia/Almaty";
"Asia/Amman": "Asia/Amman";
"Asia/Anadyr": "Asia/Anadyr";
"Asia/Aqtau": "Asia/Aqtau";
"Asia/Aqtobe": "Asia/Aqtobe";
"Asia/Ashgabat": "Asia/Ashgabat";
"Asia/Atyrau": "Asia/Atyrau";
"Asia/Baghdad": "Asia/Baghdad";
"Asia/Bahrain": "Asia/Bahrain";
"Asia/Baku": "Asia/Baku";
"Asia/Bangkok": "Asia/Bangkok";
"Asia/Barnaul": "Asia/Barnaul";
"Asia/Beirut": "Asia/Beirut";
"Asia/Bishkek": "Asia/Bishkek";
"Asia/Brunei": "Asia/Brunei";
"Asia/Chita": "Asia/Chita";
"Asia/Colombo": "Asia/Colombo";
"Asia/Damascus": "Asia/Damascus";
"Asia/Dhaka": "Asia/Dhaka";
"Asia/Dili": "Asia/Dili";
"Asia/Dubai": "Asia/Dubai";
"Asia/Dushanbe": "Asia/Dushanbe";
"Asia/Famagusta": "Asia/Famagusta";
"Asia/Gaza": "Asia/Gaza";
"Asia/Hebron": "Asia/Hebron";
"Asia/Ho_Chi_Minh": "Asia/Ho_Chi_Minh";
"Asia/Hong_Kong": "Asia/Hong_Kong";
"Asia/Hovd": "Asia/Hovd";
"Asia/Irkutsk": "Asia/Irkutsk";
"Asia/Jakarta": "Asia/Jakarta";
"Asia/Jayapura": "Asia/Jayapura";
"Asia/Jerusalem": "Asia/Jerusalem";
"Asia/Kabul": "Asia/Kabul";
"Asia/Kamchatka": "Asia/Kamchatka";
"Asia/Karachi": "Asia/Karachi";
"Asia/Kathmandu": "Asia/Kathmandu";
"Asia/Khandyga": "Asia/Khandyga";
"Asia/Kolkata": "Asia/Kolkata";
"Asia/Krasnoyarsk": "Asia/Krasnoyarsk";
"Asia/Kuala_Lumpur": "Asia/Kuala_Lumpur";
"Asia/Kuching": "Asia/Kuching";
"Asia/Kuwait": "Asia/Kuwait";
"Asia/Macau": "Asia/Macau";
"Asia/Magadan": "Asia/Magadan";
"Asia/Makassar": "Asia/Makassar";
"Asia/Manila": "Asia/Manila";
"Asia/Muscat": "Asia/Muscat";
"Asia/Nicosia": "Asia/Nicosia";
"Asia/Novokuznetsk": "Asia/Novokuznetsk";
"Asia/Novosibirsk": "Asia/Novosibirsk";
"Asia/Omsk": "Asia/Omsk";
"Asia/Oral": "Asia/Oral";
"Asia/Phnom_Penh": "Asia/Phnom_Penh";
"Asia/Pontianak": "Asia/Pontianak";
"Asia/Pyongyang": "Asia/Pyongyang";
"Asia/Qatar": "Asia/Qatar";
"Asia/Qostanay": "Asia/Qostanay";
"Asia/Qyzylorda": "Asia/Qyzylorda";
"Asia/Riyadh": "Asia/Riyadh";
"Asia/Sakhalin": "Asia/Sakhalin";
"Asia/Samarkand": "Asia/Samarkand";
"Asia/Seoul": "Asia/Seoul";
"Asia/Shanghai": "Asia/Shanghai";
"Asia/Singapore": "Asia/Singapore";
"Asia/Srednekolymsk": "Asia/Srednekolymsk";
"Asia/Taipei": "Asia/Taipei";
"Asia/Tashkent": "Asia/Tashkent";
"Asia/Tbilisi": "Asia/Tbilisi";
"Asia/Tehran": "Asia/Tehran";
"Asia/Thimphu": "Asia/Thimphu";
"Asia/Tokyo": "Asia/Tokyo";
"Asia/Tomsk": "Asia/Tomsk";
"Asia/Ulaanbaatar": "Asia/Ulaanbaatar";
"Asia/Urumqi": "Asia/Urumqi";
"Asia/Ust-Nera": "Asia/Ust-Nera";
"Asia/Vientiane": "Asia/Vientiane";
"Asia/Vladivostok": "Asia/Vladivostok";
"Asia/Yakutsk": "Asia/Yakutsk";
"Asia/Yangon": "Asia/Yangon";
"Asia/Yekaterinburg": "Asia/Yekaterinburg";
"Asia/Yerevan": "Asia/Yerevan";
"Atlantic/Azores": "Atlantic/Azores";
"Atlantic/Bermuda": "Atlantic/Bermuda";
"Atlantic/Canary": "Atlantic/Canary";
"Atlantic/Cape_Verde": "Atlantic/Cape_Verde";
"Atlantic/Faroe": "Atlantic/Faroe";
"Atlantic/Madeira": "Atlantic/Madeira";
"Atlantic/Reykjavik": "Atlantic/Reykjavik";
"Atlantic/South_Georgia": "Atlantic/South_Georgia";
"Atlantic/St_Helena": "Atlantic/St_Helena";
"Atlantic/Stanley": "Atlantic/Stanley";
"Australia/Adelaide": "Australia/Adelaide";
"Australia/Brisbane": "Australia/Brisbane";
"Australia/Broken_Hill": "Australia/Broken_Hill";
"Australia/Darwin": "Australia/Darwin";
"Australia/Eucla": "Australia/Eucla";
"Australia/Hobart": "Australia/Hobart";
"Australia/Lindeman": "Australia/Lindeman";
"Australia/Lord_Howe": "Australia/Lord_Howe";
"Australia/Melbourne": "Australia/Melbourne";
"Australia/Perth": "Australia/Perth";
"Australia/Sydney": "Australia/Sydney";
"Europe/Amsterdam": "Europe/Amsterdam";
"Europe/Andorra": "Europe/Andorra";
"Europe/Astrakhan": "Europe/Astrakhan";
"Europe/Athens": "Europe/Athens";
"Europe/Belgrade": "Europe/Belgrade";
"Europe/Berlin": "Europe/Berlin";
"Europe/Bratislava": "Europe/Bratislava";
"Europe/Brussels": "Europe/Brussels";
"Europe/Bucharest": "Europe/Bucharest";
"Europe/Budapest": "Europe/Budapest";
"Europe/Busingen": "Europe/Busingen";
"Europe/Chisinau": "Europe/Chisinau";
"Europe/Copenhagen": "Europe/Copenhagen";
"Europe/Dublin": "Europe/Dublin";
"Europe/Gibraltar": "Europe/Gibraltar";
"Europe/Guernsey": "Europe/Guernsey";
"Europe/Helsinki": "Europe/Helsinki";
"Europe/Isle_of_Man": "Europe/Isle_of_Man";
"Europe/Istanbul": "Europe/Istanbul";
"Europe/Jersey": "Europe/Jersey";
"Europe/Kaliningrad": "Europe/Kaliningrad";
"Europe/Kirov": "Europe/Kirov";
"Europe/Kyiv": "Europe/Kyiv";
"Europe/Lisbon": "Europe/Lisbon";
"Europe/Ljubljana": "Europe/Ljubljana";
"Europe/London": "Europe/London";
"Europe/Luxembourg": "Europe/Luxembourg";
"Europe/Madrid": "Europe/Madrid";
"Europe/Malta": "Europe/Malta";
"Europe/Mariehamn": "Europe/Mariehamn";
"Europe/Minsk": "Europe/Minsk";
"Europe/Monaco": "Europe/Monaco";
"Europe/Moscow": "Europe/Moscow";
"Europe/Oslo": "Europe/Oslo";
"Europe/Paris": "Europe/Paris";
"Europe/Podgorica": "Europe/Podgorica";
"Europe/Prague": "Europe/Prague";
"Europe/Riga": "Europe/Riga";
"Europe/Rome": "Europe/Rome";
"Europe/Samara": "Europe/Samara";
"Europe/San_Marino": "Europe/San_Marino";
"Europe/Sarajevo": "Europe/Sarajevo";
"Europe/Saratov": "Europe/Saratov";
"Europe/Simferopol": "Europe/Simferopol";
"Europe/Skopje": "Europe/Skopje";
"Europe/Sofia": "Europe/Sofia";
"Europe/Stockholm": "Europe/Stockholm";
"Europe/Tallinn": "Europe/Tallinn";
"Europe/Tirane": "Europe/Tirane";
"Europe/Ulyanovsk": "Europe/Ulyanovsk";
"Europe/Vaduz": "Europe/Vaduz";
"Europe/Vatican": "Europe/Vatican";
"Europe/Vienna": "Europe/Vienna";
"Europe/Vilnius": "Europe/Vilnius";
"Europe/Volgograd": "Europe/Volgograd";
"Europe/Warsaw": "Europe/Warsaw";
"Europe/Zagreb": "Europe/Zagreb";
"Europe/Zurich": "Europe/Zurich";
"Indian/Antananarivo": "Indian/Antananarivo";
"Indian/Chagos": "Indian/Chagos";
"Indian/Christmas": "Indian/Christmas";
"Indian/Cocos": "Indian/Cocos";
"Indian/Comoro": "Indian/Comoro";
"Indian/Kerguelen": "Indian/Kerguelen";
"Indian/Mahe": "Indian/Mahe";
"Indian/Maldives": "Indian/Maldives";
"Indian/Mauritius": "Indian/Mauritius";
"Indian/Mayotte": "Indian/Mayotte";
"Indian/Reunion": "Indian/Reunion";
"Pacific/Apia": "Pacific/Apia";
"Pacific/Auckland": "Pacific/Auckland";
"Pacific/Bougainville": "Pacific/Bougainville";
"Pacific/Chatham": "Pacific/Chatham";
"Pacific/Chuuk": "Pacific/Chuuk";
"Pacific/Easter": "Pacific/Easter";
"Pacific/Efate": "Pacific/Efate";
"Pacific/Fakaofo": "Pacific/Fakaofo";
"Pacific/Fiji": "Pacific/Fiji";
"Pacific/Funafuti": "Pacific/Funafuti";
"Pacific/Galapagos": "Pacific/Galapagos";
"Pacific/Gambier": "Pacific/Gambier";
"Pacific/Guadalcanal": "Pacific/Guadalcanal";
"Pacific/Guam": "Pacific/Guam";
"Pacific/Honolulu": "Pacific/Honolulu";
"Pacific/Kanton": "Pacific/Kanton";
"Pacific/Kiritimati": "Pacific/Kiritimati";
"Pacific/Kosrae": "Pacific/Kosrae";
"Pacific/Kwajalein": "Pacific/Kwajalein";
"Pacific/Majuro": "Pacific/Majuro";
"Pacific/Marquesas": "Pacific/Marquesas";
"Pacific/Midway": "Pacific/Midway";
"Pacific/Nauru": "Pacific/Nauru";
"Pacific/Niue": "Pacific/Niue";
"Pacific/Norfolk": "Pacific/Norfolk";
"Pacific/Noumea": "Pacific/Noumea";
"Pacific/Pago_Pago": "Pacific/Pago_Pago";
"Pacific/Palau": "Pacific/Palau";
"Pacific/Pitcairn": "Pacific/Pitcairn";
"Pacific/Pohnpei": "Pacific/Pohnpei";
"Pacific/Port_Moresby": "Pacific/Port_Moresby";
"Pacific/Rarotonga": "Pacific/Rarotonga";
"Pacific/Saipan": "Pacific/Saipan";
"Pacific/Tahiti": "Pacific/Tahiti";
"Pacific/Tarawa": "Pacific/Tarawa";
"Pacific/Tongatapu": "Pacific/Tongatapu";
"Pacific/Wake": "Pacific/Wake";
"Pacific/Wallis": "Pacific/Wallis";
UTC: "UTC";
}>;
}, z.core.$strip>;
type Location = {
id: number;
short: string;
long: string;
created_at: string;
updated_at: string | null;
};
type Node$1 = {
id: number;
uuid: string;
public: boolean;
name: string;
description: Nullable<string>;
fqdn: string;
scheme: "https" | "http";
behind_proxy: boolean;
maintenance_mode: boolean;
memory: number;
memory_overallocate: number;
disk: number;
disk_overallocate: number;
cpu: number;
cpu_overallocate: number;
upload_size: number;
daemon_listen: number;
daemon_sftp: number;
daemon_sftp_alias: Nullable<string>;
daemon_base: string;
daemon_connect: number;
created_at: string;
updated_at: Nullable<string>;
tags: string[];
allocated_resources: {
memory: number;
disk: number;
cpu: number;
};
relationships?: {
allocations?: GenericListResponse<GenericResponse<Allocation, "allocation">>;
location?: GenericResponse<Location, "location">;
servers?: GenericListResponse<GenericResponse<ApplicationServer, "server">>;
};
};
type NodeConfiguration = {
debug: boolean;
uuid: string;
token_id: string;
token: string;
api: {
host: string;
port: number;
upload_limit: number;
ssl: {
enabled: boolean;
cert: string;
key: string;
};
};
system: {
data: string;
sftp: {
bind_port: number;
};
};
allowed_mounts: string[];
remote: string;
};
type Allocation = {
id: number;
ip: string;
alias: Nullable<string>;
port: number;
notes: Nullable<string>;
assigned: boolean;
};
type AllocationRel = Allocation & {
relationships?: {
node?: GenericResponse<Node$1, "node">;
server?: GenericResponse<ApplicationServer, "server">;
};
};
declare class NodesAllocations {
private readonly r;
private readonly id;
constructor(requester: AxiosInstance, id: number);
list: (include?: ("node" | "server")[]) => Promise<AllocationRel[]>;
create: (ip: string, ports: string[], alias?: string) => Promise<void>;
delete: (alloc_id: number) => Promise<void>;
}
declare class Nodes {
private readonly r;
constructor(requester: AxiosInstance);
list: (include?: ("allocations" | "location" | "servers")[], page?: number) => Promise<Node$1[]>;
listDeployable: (filters: {
disk: number;
memory: number;
cpu?: number;
location_ids?: string[];
tags?: string[];
}, include?: ("allocations" | "location" | "servers")[], page?: number) => Promise<Node$1[]>;
info: (id: number, include?: ("allocations" | "location" | "servers")[]) => Promise<Node$1>;
create: (node: z.infer<typeof NodeCreateSchema>) => Promise<Node$1>;
get_configuration: (id: number) => Promise<NodeConfiguration>;
update: (id: number, node: z.infer<typeof NodeCreateSchema>) => Promise<Node$1>;
delete: (id: number) => Promise<void>;
allocations: (server_id: number) => NodesAllocations;
}
declare const NodeCreateSchema: z.ZodObject<{
name: z.ZodString;
description: z.ZodOptional<z.ZodString>;
public: z.ZodOptional<z.ZodBoolean>;
fqdn: z.ZodString;
scheme: z.ZodEnum<{
https: "https";
http: "http";
}>;
behind_proxy: z.ZodOptional<z.ZodBoolean>;
memory: z.ZodNumber;
memory_overallocate: z.ZodNumber;
disk: z.ZodNumber;
disk_overallocate: z.ZodNumber;
cpu: z.ZodNumber;
cpu_overallocate: z.ZodNumber;
daemon_base: z.ZodOptional<z.ZodString>;
daemon_sftp: z.ZodNumber;
daemon_sftp_alias: z.ZodOptional<z.ZodString>;
daemon_listen: z.ZodNumber;
daemon_connect: z.ZodNumber;
maintenance_mode: z.ZodOptional<z.ZodBoolean>;
upload_size: z.ZodNumber;
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
declare class ServersDatabases {
private readonly r;
private readonly id;
constructor(r: AxiosInstance, server_id: number);
list: () => Promise<ServerDatabase[]>;
create: (database: string, remote: string, host: string) => Promise<ServerDatabase>;
info: (database_id: number) => Promise<ServerDatabase>;
delete: (database_id: number) => Promise<void>;
resetPassword: (database_id: number) => Promise<void>;
}
declare class Servers {
private readonly r;
private readonly id;
databases: ServersDatabases;
constructor(r: AxiosInstance, server_id: number);
info: (include?: ("egg" | "subusers")[]) => Promise<ApplicationServer>;
delete: (force?: boolean) => Promise<void>;
updateDetails: (opts: z.infer<typeof UpdateDetailsSchema>) => Promise<void>;
updateBuild: (opts: z.infer<typeof UpdateBuildSchema>) => Promise<void>;
updateStartup: (opts: z.infer<typeof UpdateStartupSchema>) => Promise<void>;
suspend: () => Promise<void>;
unsuspend: () => Promise<void>;
reinstall: () => Promise<void>;
transferStart: (node_id: number, allocation_id: number, allocation_additional?: number[]) => Promise<void>;
transferCancel: () => Promise<void>;
}
declare const CreateServerSchema: z.ZodObject<{
external_id: z.ZodOptional<z.ZodString>;
name: z.ZodString;
description: z.ZodOptional<z.ZodString>;
user: z.ZodNumber;
egg: z.ZodNumber;
docker_image: z.ZodOptional<z.ZodString>;
startup: z.ZodOptional<z.ZodString>;
environment: z.ZodRecord<z.ZodString, z.ZodString>;
skip_scripts: z.ZodOptional<z.ZodBoolean>;
oom_killer: z.ZodOptional<z.ZodBoolean>;
start_on_completion: z.ZodOptional<z.ZodBoolean>;
docker_labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
limits: z.ZodObject<{
memory: z.ZodNumber;
swap: z.ZodNumber;
disk: z.ZodNumber;
io: z.ZodNumber;
threads: z.ZodOptional<z.ZodString>;
cpu: z.ZodNumber;
}, z.core.$strip>;
feature_limits: z.ZodObject<{
databases: z.ZodNumber;
allocations: z.ZodNumber;
backups: z.ZodNumber;
}, z.core.$strip>;
allocation: z.ZodOptional<z.ZodObject<{
default: z.ZodString;
additional: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strip>>;
deploy: z.ZodOptional<z.ZodObject<{
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
dedicated_ip: z.ZodOptional<z.ZodBoolean>;
port_range: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strip>>;
}, z.core.$strip>;
declare const UpdateDetailsSchema: z.ZodObject<{
user: z.ZodNumber;
description: z.ZodOptional<z.ZodString>;
name: z.ZodString;
external_id: z.ZodOptional<z.ZodString>;
docker_labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
}, z.core.$strip>;
declare const UpdateBuildSchema: z.ZodObject<{
oom_killer: z.ZodOptional<z.ZodBoolean>;
limits: z.ZodObject<{
memory: z.ZodNumber;
swap: z.ZodNumber;
disk: z.ZodNumber;
io: z.ZodNumber;
threads