// This file is auto-generated by @hey-api/openapi-ts import type { Client, Options as Options2, TDataShape, } from "../../util/api/client/index.ts"; import { client } from "./client.gen.ts"; import type { CreateDatabaseConnectionStringData, CreateDatabaseConnectionStringErrors, CreateDatabaseConnectionStringResponses, CreateDatabaseData, CreateDatabaseErrors, CreateDatabaseResponses, CreateProjectWithPostgresDatabaseData, CreateProjectWithPostgresDatabaseErrors, CreateProjectWithPostgresDatabaseResponses, DeleteDatabaseConnectionStringData, DeleteDatabaseConnectionStringErrors, DeleteDatabaseConnectionStringResponses, DeleteDatabaseData, DeleteDatabaseErrors, DeleteDatabaseResponses, DeleteProjectData, DeleteProjectErrors, DeleteProjectResponses, GetDatabaseData, GetDatabaseErrors, GetDatabaseResponses, GetDatabaseUsageMetricsData, GetDatabaseUsageMetricsErrors, GetDatabaseUsageMetricsResponses, GetPrismaAccelerateRegionsData, GetPrismaAccelerateRegionsErrors, GetPrismaAccelerateRegionsResponses, GetPrismaPostgresRegionsData, GetPrismaPostgresRegionsErrors, GetPrismaPostgresRegionsResponses, GetProjectData, GetProjectErrors, GetProjectResponses, ListBackupsData, ListBackupsErrors, ListBackupsResponses, ListDatabaseConnectionsData, ListDatabaseConnectionsErrors, ListDatabaseConnectionsResponses, ListDatabasesData, ListDatabasesErrors, ListDatabasesResponses, ListIntegrationsData, ListIntegrationsErrors, ListIntegrationsResponses, ListProjectsData, ListProjectsErrors, ListProjectsResponses, ListWorkspacesData, ListWorkspacesErrors, ListWorkspacesResponses, RevokeIntegrationTokensData, RevokeIntegrationTokensErrors, RevokeIntegrationTokensResponses, TransferProjectData, TransferProjectErrors, TransferProjectResponses, } from "./types.gen.ts"; export type Options< TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, > = Options2 & { /** * You can provide a client instance returned by `createClient()` instead of * individual options. This might be also useful if you want to implement a * custom client. */ client?: Client; /** * You can pass arbitrary values through the `meta` object. This can be * used to access values that aren't defined as part of the SDK function. */ meta?: Record; }; class _HeyApiClient { protected _client: Client = client; constructor(args?: { client?: Client }) { if (args?.client) { this._client = args.client; } } } export class PrismaClient extends _HeyApiClient { /** * Delete database connection string * Deletes the database connection string with the given ID. */ public deleteDatabaseConnectionString( options: Options, ) { return (options.client ?? this._client).delete< DeleteDatabaseConnectionStringResponses, DeleteDatabaseConnectionStringErrors, ThrowOnError >({ url: "/v1/connections/{id}", ...options, }); } /** * Delete database * Deletes the database with the given ID. */ public deleteDatabase( options: Options, ) { return (options.client ?? this._client).delete< DeleteDatabaseResponses, DeleteDatabaseErrors, ThrowOnError >({ url: "/v1/databases/{databaseId}", ...options, }); } /** * Get database * Returns the database with the given ID. */ public getDatabase( options: Options, ) { return (options.client ?? this._client).get< GetDatabaseResponses, GetDatabaseErrors, ThrowOnError >({ url: "/v1/databases/{databaseId}", ...options, }); } /** * Get list of database connections * Returns all connections for the given database. */ public listDatabaseConnections( options: Options, ) { return (options.client ?? this._client).get< ListDatabaseConnectionsResponses, ListDatabaseConnectionsErrors, ThrowOnError >({ url: "/v1/databases/{databaseId}/connections", ...options, }); } /** * Create database connection string * Creates a new connection string for the given database. */ public createDatabaseConnectionString( options: Options, ) { return (options.client ?? this._client).post< CreateDatabaseConnectionStringResponses, CreateDatabaseConnectionStringErrors, ThrowOnError >({ url: "/v1/databases/{databaseId}/connections", ...options, headers: { "Content-Type": "application/json", ...options.headers, }, }); } /** * Get list of backups * Returns backups for the specified database. */ public listBackups( options: Options, ) { return (options.client ?? this._client).get< ListBackupsResponses, ListBackupsErrors, ThrowOnError >({ url: "/v1/databases/{databaseId}/backups", ...options, }); } /** * Get database usage metrics * Returns usage metrics for the specified database. */ public getDatabaseUsageMetrics( options: Options, ) { return (options.client ?? this._client).get< GetDatabaseUsageMetricsResponses, GetDatabaseUsageMetricsErrors, ThrowOnError >({ url: "/v1/databases/{databaseId}/usage", ...options, }); } /** * Get list of projects * Returns the list of projects the token has access to. */ public listProjects( options?: Options, ) { return (options?.client ?? this._client).get< ListProjectsResponses, ListProjectsErrors, ThrowOnError >({ url: "/v1/projects", ...options, }); } /** * Create project with a postgres database * Creates a new project with a postgres database. */ public createProjectWithPostgresDatabase( options?: Options, ) { return (options?.client ?? this._client).post< CreateProjectWithPostgresDatabaseResponses, CreateProjectWithPostgresDatabaseErrors, ThrowOnError >({ url: "/v1/projects", ...options, headers: { "Content-Type": "application/json", ...options?.headers, }, }); } /** * Delete project * Deletes the project with the given ID. */ public deleteProject( options: Options, ) { return (options.client ?? this._client).delete< DeleteProjectResponses, DeleteProjectErrors, ThrowOnError >({ url: "/v1/projects/{id}", ...options, }); } /** * Get project * Returns the project with the given ID. */ public getProject( options: Options, ) { return (options.client ?? this._client).get< GetProjectResponses, GetProjectErrors, ThrowOnError >({ url: "/v1/projects/{id}", ...options, }); } /** * Transfer project * Transfer the project with the given ID to the new owner's workspace */ public transferProject( options: Options, ) { return (options.client ?? this._client).post< TransferProjectResponses, TransferProjectErrors, ThrowOnError >({ url: "/v1/projects/{id}/transfer", ...options, headers: { "Content-Type": "application/json", ...options.headers, }, }); } /** * Get list of databases * Returns databases for the given project. */ public listDatabases( options: Options, ) { return (options.client ?? this._client).get< ListDatabasesResponses, ListDatabasesErrors, ThrowOnError >({ url: "/v1/projects/{projectId}/databases", ...options, }); } /** * Create database * Creates a new database for the given project. */ public createDatabase( options: Options, ) { return (options.client ?? this._client).post< CreateDatabaseResponses, CreateDatabaseErrors, ThrowOnError >({ url: "/v1/projects/{projectId}/databases", ...options, headers: { "Content-Type": "application/json", ...options.headers, }, }); } /** * Get list of integrations * Returns integrations for the given workspace. */ public listIntegrations( options: Options, ) { return (options.client ?? this._client).get< ListIntegrationsResponses, ListIntegrationsErrors, ThrowOnError >({ url: "/v1/workspaces/{workspaceId}/integrations", ...options, }); } /** * Revoke integration tokens * Revokes the integration tokens with the given client ID. */ public revokeIntegrationTokens( options: Options, ) { return (options.client ?? this._client).delete< RevokeIntegrationTokensResponses, RevokeIntegrationTokensErrors, ThrowOnError >({ url: "/v1/workspaces/{workspaceId}/integrations/{clientId}", ...options, }); } /** * Get Prisma Postgres regions * Returns all available regions for Prisma Postgres. */ public getPrismaPostgresRegions( options?: Options, ) { return (options?.client ?? this._client).get< GetPrismaPostgresRegionsResponses, GetPrismaPostgresRegionsErrors, ThrowOnError >({ url: "/v1/regions/postgres", ...options, }); } /** * Get Prisma Accelerate regions * Returns all available regions for Prisma Accelerate. */ public getPrismaAccelerateRegions( options?: Options, ) { return (options?.client ?? this._client).get< GetPrismaAccelerateRegionsResponses, GetPrismaAccelerateRegionsErrors, ThrowOnError >({ url: "/v1/regions/accelerate", ...options, }); } /** * Get list of workspaces * Returns the list of workspaces the current token can access. */ public listWorkspaces( options?: Options, ) { return (options?.client ?? this._client).get< ListWorkspacesResponses, ListWorkspacesErrors, ThrowOnError >({ url: "/v1/workspaces", ...options, }); } }