import * as Effect from "effect/Effect";
import { PrismaClient, type PrismaManagementClient } from "./Client.ts";
import type {
AppCreateInput,
AppDeploymentTarget,
AppUpdateInput,
BranchCreateInput,
BranchUpdateInput,
BucketCreateInput,
BucketKeyCreateInput,
BuildLogsQuery,
DatabaseConnectionCreateInput,
DeploymentCreateInput,
DeploymentLogsQuery,
ConnectionCreateInput,
CustomDomainCreateInput,
DatabaseCreateInput,
DatabaseUpdateInput,
EnvironmentVariableCreateInput,
EnvironmentVariableUpdateInput,
PrismaBranchIdFilter,
ProjectCreateInput,
ProjectDatabaseCreateInput,
ProjectTransferInput,
ProjectUpdateInput,
RestoreDatabaseInput,
ScmInstallIntentCreateInput,
SourceRepositoryCreateInput,
} from "./Types.ts";
const withClient = (
f: (client: PrismaManagementClient) => Effect.Effect,
) => Effect.flatMap(PrismaClient, f);
export const listWorkspaces = (query?: {
cursor?: string | null;
limit?: number;
}) => withClient((client) => client.listWorkspaces(query));
export const getWorkspace = (id: string) =>
withClient((client) => client.getWorkspace(id));
export const getCurrentPrincipal = () =>
withClient((client) => client.getCurrentPrincipal());
export const listRegions = (query?: { product?: "postgres" | "accelerate" }) =>
withClient((client) => client.listRegions(query));
export const listPostgresRegions = () =>
withClient((client) => client.listPostgresRegions());
export const listAccelerateRegions = () =>
withClient((client) => client.listAccelerateRegions());
export const listProjects = (query?: {
cursor?: string | null;
limit?: number;
}) => withClient((client) => client.listProjects(query));
export const getProject = (id: string) =>
withClient((client) => client.getProject(id));
export const createProject = (input: ProjectCreateInput) =>
withClient((client) => client.createProject(input));
export const updateProject = (id: string, input: ProjectUpdateInput) =>
withClient((client) => client.updateProject(id, input));
export const deleteProject = (id: string) =>
withClient((client) => client.deleteProject(id));
export const transferProject = (id: string, input: ProjectTransferInput) =>
withClient((client) => client.transferProject(id, input));
export const listDatabases = (query?: {
cursor?: string | null;
limit?: number;
projectId?: string;
branchId?: PrismaBranchIdFilter;
branchGitName?: string;
}) => withClient((client) => client.listDatabases(query));
export const listProjectDatabases = (
projectId: string,
query?: { cursor?: string | null; limit?: number },
) => withClient((client) => client.listProjectDatabases(projectId, query));
export const getDatabase = (id: string) =>
withClient((client) => client.getDatabase(id));
export const createDatabase = (input: DatabaseCreateInput) =>
withClient((client) => client.createDatabase(input));
export const createProjectDatabase = (
projectId: string,
input: ProjectDatabaseCreateInput,
) => withClient((client) => client.createProjectDatabase(projectId, input));
export const updateDatabase = (id: string, input: DatabaseUpdateInput) =>
withClient((client) => client.updateDatabase(id, input));
export const deleteDatabase = (id: string) =>
withClient((client) => client.deleteDatabase(id));
export const listBackups = (databaseId: string, query?: { limit?: number }) =>
withClient((client) => client.listBackups(databaseId, query));
export const restoreDatabase = (
targetDatabaseId: string,
input: RestoreDatabaseInput,
) => withClient((client) => client.restoreDatabase(targetDatabaseId, input));
export const getDatabaseUsage = (
databaseId: string,
query?: { startDate?: string; endDate?: string },
) => withClient((client) => client.getDatabaseUsage(databaseId, query));
export const listConnections = (query?: {
cursor?: string | null;
limit?: number;
databaseId?: string;
}) => withClient((client) => client.listConnections(query));
export const listDatabaseConnections = (
databaseId: string,
query?: { cursor?: string | null; limit?: number },
) => withClient((client) => client.listDatabaseConnections(databaseId, query));
export const getConnection = (id: string) =>
withClient((client) => client.getConnection(id));
export const createConnection = (input: ConnectionCreateInput) =>
withClient((client) => client.createConnection(input));
export const createDatabaseConnection = (
databaseId: string,
input: DatabaseConnectionCreateInput,
) => withClient((client) => client.createDatabaseConnection(databaseId, input));
export const deleteConnection = (id: string) =>
withClient((client) => client.deleteConnection(id));
export const rotateConnection = (id: string) =>
withClient((client) => client.rotateConnection(id));
export const listBranches = (
projectId: string,
query?: {
cursor?: string | null;
limit?: number;
gitName?: string;
gitNameContains?: string;
},
) => withClient((client) => client.listBranches(projectId, query));
export const getBranch = (id: string) =>
withClient((client) => client.getBranch(id));
export const createBranch = (projectId: string, input: BranchCreateInput) =>
withClient((client) => client.createBranch(projectId, input));
export const updateBranch = (id: string, input: BranchUpdateInput) =>
withClient((client) => client.updateBranch(id, input));
export const deleteBranch = (id: string) =>
withClient((client) => client.deleteBranch(id));
export const listBuckets = (query?: {
cursor?: string | null;
limit?: number;
projectId?: string;
branchId?: PrismaBranchIdFilter;
branchGitName?: string;
}) => withClient((client) => client.listBuckets(query));
export const getBucket = (id: string) =>
withClient((client) => client.getBucket(id));
export const createBucket = (input: BucketCreateInput) =>
withClient((client) => client.createBucket(input));
export const deleteBucket = (id: string) =>
withClient((client) => client.deleteBucket(id));
export const listBucketKeys = (
bucketId: string,
query?: { cursor?: string | null; limit?: number },
) => withClient((client) => client.listBucketKeys(bucketId, query));
export const createBucketKey = (
bucketId: string,
input: BucketKeyCreateInput,
) => withClient((client) => client.createBucketKey(bucketId, input));
export const deleteBucketKey = (bucketId: string, keyId: string) =>
withClient((client) => client.deleteBucketKey(bucketId, keyId));
export const getCustomDomain = (id: string) =>
withClient((client) => client.getCustomDomain(id));
export const deleteCustomDomain = (id: string) =>
withClient((client) => client.deleteCustomDomain(id));
export const retryCustomDomain = (id: string) =>
withClient((client) => client.retryCustomDomain(id));
export const listApps = (query?: {
cursor?: string | null;
limit?: number;
projectId?: string;
branchId?: PrismaBranchIdFilter;
branchGitName?: string;
}) => withClient((client) => client.listApps(query));
export const getApp = (id: string) => withClient((client) => client.getApp(id));
export const createApp = (input: AppCreateInput) =>
withClient((client) => client.createApp(input));
export const updateApp = (id: string, input: AppUpdateInput) =>
withClient((client) => client.updateApp(id, input));
export const deleteApp = (id: string) =>
withClient((client) => client.deleteApp(id));
export const promoteApp = (id: string, target: AppDeploymentTarget) =>
withClient((client) => client.promoteApp(id, target));
export const rollbackApp = (id: string, target: AppDeploymentTarget) =>
withClient((client) => client.rollbackApp(id, target));
export const listAppDomains = (appId: string) =>
withClient((client) => client.listAppDomains(appId));
export const createAppDomain = (
appId: string,
input: CustomDomainCreateInput,
) => withClient((client) => client.createAppDomain(appId, input));
export const listAppDeployments = (
appId: string,
query?: { cursor?: string | null; limit?: number },
) => withClient((client) => client.listAppDeployments(appId, query));
export const createAppDeployment = (
appId: string,
input?: DeploymentCreateInput,
) => withClient((client) => client.createAppDeployment(appId, input));
export const getDeployment = (id: string) =>
withClient((client) => client.getDeployment(id));
export const deleteDeployment = (id: string) =>
withClient((client) => client.deleteDeployment(id));
export const startDeployment = (id: string) =>
withClient((client) => client.startDeployment(id));
export const stopDeployment = (id: string) =>
withClient((client) => client.stopDeployment(id));
export const getDeploymentLogsRequest = (
id: string,
query?: DeploymentLogsQuery,
) => withClient((client) => client.getDeploymentLogsRequest(id, query));
export const getBuildLogsRequest = (buildId: string, query?: BuildLogsQuery) =>
withClient((client) => client.getBuildLogsRequest(buildId, query));
export const listEnvironmentVariables = (query?: {
cursor?: string | null;
limit?: number;
projectId?: string;
class?: "production" | "preview";
key?: string;
branchId?: string;
}) => withClient((client) => client.listEnvironmentVariables(query));
export const getEnvironmentVariable = (id: string) =>
withClient((client) => client.getEnvironmentVariable(id));
export const createEnvironmentVariable = (
input: EnvironmentVariableCreateInput,
) => withClient((client) => client.createEnvironmentVariable(input));
export const updateEnvironmentVariable = (
id: string,
input: EnvironmentVariableUpdateInput,
) => withClient((client) => client.updateEnvironmentVariable(id, input));
export const deleteEnvironmentVariable = (id: string) =>
withClient((client) => client.deleteEnvironmentVariable(id));
export const listIntegrations = (query: {
workspaceId: string;
cursor?: string | null;
limit?: number;
}) => withClient((client) => client.listIntegrations(query));
export const listWorkspaceIntegrations = (
workspaceId: string,
query?: { cursor?: string | null; limit?: number },
) =>
withClient((client) => client.listWorkspaceIntegrations(workspaceId, query));
export const getIntegration = (id: string) =>
withClient((client) => client.getIntegration(id));
export const deleteIntegration = (id: string) =>
withClient((client) => client.deleteIntegration(id));
export const revokeWorkspaceIntegration = (
workspaceId: string,
clientId: string,
) =>
withClient((client) =>
client.revokeWorkspaceIntegration(workspaceId, clientId),
);
export const listScmInstallations = (query: {
workspaceId: string;
cursor?: string | null;
limit?: number;
}) => withClient((client) => client.listScmInstallations(query));
export const createScmInstallIntent = (input: ScmInstallIntentCreateInput) =>
withClient((client) => client.createScmInstallIntent(input));
export const listScmInstallationRepositories = (
installationId: string,
query?: { cursor?: string | null; limit?: number },
) =>
withClient((client) =>
client.listScmInstallationRepositories(installationId, query),
);
export const listSourceRepositories = (query: {
projectId: string;
cursor?: string | null;
limit?: number;
}) => withClient((client) => client.listSourceRepositories(query));
export const getSourceRepository = (id: string) =>
withClient((client) => client.getSourceRepository(id));
export const createSourceRepository = (input: SourceRepositoryCreateInput) =>
withClient((client) => client.createSourceRepository(input));
export const deleteSourceRepository = (id: string) =>
withClient((client) => client.deleteSourceRepository(id));