UNPKG

turso

Version:

Build and manage your Turso database with ease.

196 lines (180 loc) 3.69 kB
export type DatabaseAPI = { create({ name, location, image, group, }: { name: string; location?: string; image?: 'latest' | 'canary'; group?: string; seed?: { type: 'database'; name: string; }; }): Promise<{ database: LogicalDatabase; }>; }; export type GroupAPI = { getAll(): Promise<{ groups: Group[]; }>; create( name: string, location: string ): Promise<{ group: Group; }>; get(group: string): Promise<{ group: Group; }>; delete(group: string): Promise<{ group: Group; }>; addLocation( group: string, location: string ): Promise<{ group: Group; }>; removeLocation( group: string, location: string ): Promise<{ group: Group; }>; }; type Group = { locations: string[]; name: string; primary: string; }; export type AuthenticationAPI = { listTokens(): Promise<{ tokens: PlatformApiToken[]; }>; mintToken(token_name: string): Promise<PlatformApiToken & {token: string}>; revokeToken(token_name: string): Promise<{token: string}>; validateToken(): Promise<{exp: number}>; }; export type OrganizationAPI = { list(): Promise<{ organizations: Organization[]; }>; listMembers(org_slug: string): Promise<{ members: OrganizationMember[]; }>; }; export type LocationAPI = { list(): Promise<{ locations: Record<string, string>; }>; }; export type LogicalDatabaseAPI = { getAll(org_slug: string): Promise<{ databases: LogicalDatabase[]; }>; getByName( org_slug: string, db_name: string ): Promise<{ database: LogicalDatabase; }>; create( org_slug: string, name: string, image: 'latest' | 'canary' ): Promise<{ database: LogicalDatabase; }>; updateAll(org_slug: string, db_name: string): Promise<void>; destroy(org_slug: string, db_name: string): Promise<{database: string}>; mintAuthToken( org_slug: string, db_name: string, expiration?: string, authorization?: 'read-only' | 'full-access' ): Promise<{jwt: string}>; invalidateAllAuthTokens(org_slug: string, db_name: string): Promise<void>; getCurrentMonthUsage( org_slug: string, db_name: string ): Promise<{ database: LogicalDatabase; }>; }; export type DatabaseInstanceAPI = { getAll( org_slug: string, db_name: string ): Promise<{ instances: DatabaseInstance[]; }>; get( org_slug: string, db_name: string, instance_name: string ): Promise<{ instance: DatabaseInstance; }>; create( org_slug: string, db_name: string, location: string, image?: 'latest' | 'canary' ): Promise<{ instance: DatabaseInstance; }>; destroy( org_slug: string, db_name: string, instance_name: string ): Promise<{ instance: string; }>; }; export type Organization = { name: string; slug: string; type: 'personal' | 'team'; }; export type OrganizationMember = { username: string; role: 'owner' | 'member'; }; export type PlatformApiToken = { id: string; name: string; }; export type LogicalDatabase = { Name: string; Hostname: string; IssuedCertLimit: number; IssuedCertCount: number; DbId: string; regions: string[]; primaryRegion: string; type: 'logical'; }; export type LogicalDatabaseUsage = { uuid: string; instances: DatabaseInstanceUsage[]; }; export type DatabaseInstanceUsage = { uuid: string; usage: Usage; }; export type Usage = { rows_read: number; rows_written: number; storage_bytes: number; }; export type DatabaseInstance = { uuid: string; name: string; type: 'primary' | 'replica'; region: string; hostname: string; };