@liara/cli
Version:
The command line interface for Liara
180 lines (179 loc) • 4.86 kB
TypeScript
import WebSocket from 'ws';
import { Ora } from 'ora';
import { Command } from '@oclif/core';
import IBrowserLogin from './types/browser-login.js';
import { IVMOperations, IVMs } from './types/vm.js';
export interface IAccount {
email: string;
api_token?: string;
'api-token'?: string;
region: string;
fullname: string;
avatar: string;
current: boolean;
accountName?: string;
}
export interface IAccounts {
[key: string]: IAccount;
}
export interface IGlobalLiaraConfig {
version: string;
accounts: IAccounts;
}
export interface IConfig {
'api-token'?: string;
account?: string;
region?: string;
image?: string;
'team-id'?: string;
}
export interface IProject {
_id: string;
planID: string;
bundlePlanID: string;
scale: number;
type: string;
status: string;
project_id: string;
created_at: string;
isDeployed: boolean;
network?: string;
}
export interface IGetProjectsResponse {
projects: IProject[];
}
export interface IDomains {
_id: string;
name: string;
type: string;
project: {
_id: string;
project_id: string;
};
status: string;
certificatesStatus: string;
redirectTo: string;
redirectStatus: number;
created_at: string;
CNameRecord: string;
}
export interface IGetDomainsResponse {
domains: IDomains[];
}
export interface IEnvs {
key: string;
value: string;
encrypted: boolean;
_id: string;
}
export interface IProjectDetails {
_id: string;
project_id: string;
type: string;
status: string;
defaultSubdomain: boolean;
zeroDowntime: boolean;
scale: number;
envs: IEnvs[];
planID: string;
bundlePlanID: string;
fixedIPStatus: string;
created_at: string;
node: {
_id: string;
IP: string;
};
hourlyPrice: number;
isDeployed: boolean;
reservedDiskSpace: number;
network: string;
}
export interface IProjectDetailsResponse {
project: IProjectDetails;
}
export interface IBucket {
id: string;
name: string;
plan: number;
status: string;
permission: string;
project_id: string;
createdAt: string;
updatedAt: boolean;
}
export interface IGetBucketsResponse {
status: string;
buckets: IBucket[];
}
export interface IMailboxes {
plan: {
name: string;
};
domain: string;
recordsStatus: string;
mode: string;
status: string;
createdAt: string;
id: string;
smtp_server: string;
smtp_port: number;
}
export interface IGetMailboxesResponse {
status: string;
data: {
mailServers: IMailboxes[];
};
}
export interface IMailPlan {
available: boolean;
maxAccount: number;
maxForwarder: number;
maxInbound: string;
maxInboundMailRetention: number;
maxOutboundMailRetention: number;
maxOutboundPerDay: number;
maxOutboundPerMonth: number;
name: string;
price: number;
}
export interface IGetMailsAccounts {
name: string;
createdAt: string;
id: string;
}
export interface IGetMailsAccountsResponse {
status: string;
data: {
accounts: IGetMailsAccounts[];
domain: string;
};
}
export interface Files {
content_type: string | null;
data: string;
name: string;
}
export default abstract class extends Command {
static flags: {
help: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<void>;
dev: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
debug: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
'api-token': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
account: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
'team-id': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
};
got: import("got").Got;
spinner: Ora;
readGlobalConfig(): Promise<IGlobalLiaraConfig>;
catch(error: any): Promise<void>;
setGotConfig(config: IConfig): Promise<void>;
createProxiedWebsocket(endpoint: string): WebSocket;
promptProject(): Promise<string>;
getCurrentAccount(): Promise<IAccount>;
getAccount(accountName: string): Promise<IAccount>;
browser(browser?: string): Promise<IBrowserLogin[]>;
promptNetwork(): Promise<import("./types/network.js").default | undefined>;
getNetwork(name: string): Promise<import("./types/network.js").default>;
getVms(errorMessage: string, filter?: (vm: IVMs) => any): Promise<IVMs[]>;
getVMOperations(vm: IVMs): Promise<IVMOperations[]>;
}