// This file is auto-generated by @hey-api/openapi-ts import type { Options as ClientOptions, TDataShape, Client } from "./client"; import type { RegisterData, RegisterResponses, RegisterErrors, LoginData, LoginResponses, LoginErrors, LogoutData, LogoutResponses, GetMeData, GetMeResponses, GetMeErrors, GetStatusData, GetStatusResponses, ListVolumesData, ListVolumesResponses, CreateVolumeData, CreateVolumeResponses, TestConnectionData, TestConnectionResponses, DeleteVolumeData, DeleteVolumeResponses, GetVolumeData, GetVolumeResponses, GetVolumeErrors, UpdateVolumeData, UpdateVolumeResponses, UpdateVolumeErrors, GetContainersUsingVolumeData, GetContainersUsingVolumeResponses, GetContainersUsingVolumeErrors, MountVolumeData, MountVolumeResponses, MountVolumeErrors, UnmountVolumeData, UnmountVolumeResponses, UnmountVolumeErrors, HealthCheckVolumeData, HealthCheckVolumeResponses, HealthCheckVolumeErrors, ListFilesData, ListFilesResponses, ListFilesErrors, ListRepositoriesData, ListRepositoriesResponses, CreateRepositoryData, CreateRepositoryResponses, DeleteRepositoryData, DeleteRepositoryResponses, GetRepositoryData, GetRepositoryResponses, ListSnapshotsData, ListSnapshotsResponses, } from "./types.gen"; import { client as _heyApiClient } from "./client.gen"; export type Options = ClientOptions< TData, ThrowOnError > & { /** * 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; }; /** * Register a new user */ export const register = (options?: Options) => { return (options?.client ?? _heyApiClient).post({ url: "/api/v1/auth/register", ...options, headers: { "Content-Type": "application/json", ...options?.headers, }, }); }; /** * Login with username and password */ export const login = (options?: Options) => { return (options?.client ?? _heyApiClient).post({ url: "/api/v1/auth/login", ...options, headers: { "Content-Type": "application/json", ...options?.headers, }, }); }; /** * Logout current user */ export const logout = (options?: Options) => { return (options?.client ?? _heyApiClient).post({ url: "/api/v1/auth/logout", ...options, }); }; /** * Get current authenticated user */ export const getMe = (options?: Options) => { return (options?.client ?? _heyApiClient).get({ url: "/api/v1/auth/me", ...options, }); }; /** * Get authentication system status */ export const getStatus = (options?: Options) => { return (options?.client ?? _heyApiClient).get({ url: "/api/v1/auth/status", ...options, }); }; /** * List all volumes */ export const listVolumes = (options?: Options) => { return (options?.client ?? _heyApiClient).get({ url: "/api/v1/volumes", ...options, }); }; /** * Create a new volume */ export const createVolume = ( options?: Options, ) => { return (options?.client ?? _heyApiClient).post({ url: "/api/v1/volumes", ...options, headers: { "Content-Type": "application/json", ...options?.headers, }, }); }; /** * Test connection to backend */ export const testConnection = ( options?: Options, ) => { return (options?.client ?? _heyApiClient).post({ url: "/api/v1/volumes/test-connection", ...options, headers: { "Content-Type": "application/json", ...options?.headers, }, }); }; /** * Delete a volume */ export const deleteVolume = ( options: Options, ) => { return (options.client ?? _heyApiClient).delete({ url: "/api/v1/volumes/{name}", ...options, }); }; /** * Get a volume by name */ export const getVolume = (options: Options) => { return (options.client ?? _heyApiClient).get({ url: "/api/v1/volumes/{name}", ...options, }); }; /** * Update a volume's configuration */ export const updateVolume = ( options: Options, ) => { return (options.client ?? _heyApiClient).put({ url: "/api/v1/volumes/{name}", ...options, headers: { "Content-Type": "application/json", ...options.headers, }, }); }; /** * Get containers using a volume by name */ export const getContainersUsingVolume = ( options: Options, ) => { return (options.client ?? _heyApiClient).get< GetContainersUsingVolumeResponses, GetContainersUsingVolumeErrors, ThrowOnError >({ url: "/api/v1/volumes/{name}/containers", ...options, }); }; /** * Mount a volume */ export const mountVolume = (options: Options) => { return (options.client ?? _heyApiClient).post({ url: "/api/v1/volumes/{name}/mount", ...options, }); }; /** * Unmount a volume */ export const unmountVolume = ( options: Options, ) => { return (options.client ?? _heyApiClient).post({ url: "/api/v1/volumes/{name}/unmount", ...options, }); }; /** * Perform a health check on a volume */ export const healthCheckVolume = ( options: Options, ) => { return (options.client ?? _heyApiClient).post({ url: "/api/v1/volumes/{name}/health-check", ...options, }); }; /** * List files in a volume directory */ export const listFiles = (options: Options) => { return (options.client ?? _heyApiClient).get({ url: "/api/v1/volumes/{name}/files", ...options, }); }; /** * List all repositories */ export const listRepositories = ( options?: Options, ) => { return (options?.client ?? _heyApiClient).get({ url: "/api/v1/repositories", ...options, }); }; /** * Create a new restic repository */ export const createRepository = ( options?: Options, ) => { return (options?.client ?? _heyApiClient).post({ url: "/api/v1/repositories", ...options, headers: { "Content-Type": "application/json", ...options?.headers, }, }); }; /** * Delete a repository */ export const deleteRepository = ( options: Options, ) => { return (options.client ?? _heyApiClient).delete({ url: "/api/v1/repositories/{name}", ...options, }); }; /** * Get a single repository by name */ export const getRepository = ( options: Options, ) => { return (options.client ?? _heyApiClient).get({ url: "/api/v1/repositories/{name}", ...options, }); }; /** * List all snapshots in a repository */ export const listSnapshots = ( options: Options, ) => { return (options.client ?? _heyApiClient).get({ url: "/api/v1/repositories/{name}/snapshots", ...options, }); };