UNPKG

niledatabase

Version:

Command line interface for Nile databases

87 lines (86 loc) 2.8 kB
import { Developer, Database, Credentials } from './types'; export interface Tenant { id: string; name?: string; } export interface CreateTenantRequest { name: string; id?: string; } export interface NileAPIOptions { token: string | undefined; debug?: boolean; controlPlaneUrl?: string; dbHost?: string; } export interface PostgresConnection { host: string; database: string; user: string; password: string; port?: number; } export interface Workspace { id: string; slug: string; name: string; created?: string; } export interface CreateUserRequest { email: string; password: string; name?: string; givenName?: string; familyName?: string; picture?: string; } export interface User { id: string; email: string; name?: string; givenName?: string; familyName?: string; picture?: string; emailVerified?: string; created: string; updated: string; tenants?: string[]; } export interface UpdateUserRequest { name?: string; givenName?: string; familyName?: string; picture?: string; } export declare class NileAPI { private controlPlaneClient; private userClient; private static DEFAULT_CONTROL_PLANE_URL; private static DEFAULT_USER_URL; private debug; private token; private controlPlaneUrl; private userUrl; private dbHost?; constructor(options: NileAPIOptions); private addDebugLogging; getDatabaseConnection(workspaceSlug: string, databaseName: string): Promise<PostgresConnection>; getDeveloperInfo(): Promise<Developer>; listDatabases(workspaceSlug: string): Promise<Database[]>; createDatabase(workspaceSlug: string, name: string, region: string): Promise<Database>; getDatabase(workspaceSlug: string, databaseName: string): Promise<Database>; deleteDatabase(workspaceSlug: string, databaseName: string): Promise<void>; listDatabaseCredentials(workspaceSlug: string, databaseName: string): Promise<Credentials[]>; createDatabaseCredentials(workspaceSlug: string, databaseName: string): Promise<Credentials>; listRegions(workspaceSlug: string): Promise<string[]>; listWorkspaces(): Promise<Workspace[]>; getWorkspace(workspaceSlug: string): Promise<Workspace>; getDatabaseId(workspaceSlug: string, databaseName: string): Promise<string>; createUser(databaseId: string, user: CreateUserRequest, options?: { tenantId?: string; newTenantName?: string; }): Promise<User>; getUserTenants(databaseId: string, userId: string): Promise<Tenant[]>; updateUser(databaseId: string, userId: string, updates: UpdateUserRequest): Promise<User>; removeUserFromTenant(databaseId: string, userId: string, tenantId: string): Promise<void>; }