// This file is auto-generated by @hey-api/openapi-ts import type { Client, Options as Options2, TDataShape } from "./client"; import { client } from "./client.gen"; import type { BrowseFilesystemData, BrowseFilesystemResponses, ChangePasswordData, ChangePasswordResponses, CreateBackupScheduleData, CreateBackupScheduleResponses, CreateRepositoryData, CreateRepositoryResponses, CreateVolumeData, CreateVolumeResponses, DeleteBackupScheduleData, DeleteBackupScheduleResponses, DeleteRepositoryData, DeleteRepositoryResponses, DeleteVolumeData, DeleteVolumeResponses, DoctorRepositoryData, DoctorRepositoryResponses, DownloadResticPasswordData, DownloadResticPasswordResponses, GetBackupScheduleData, GetBackupScheduleForVolumeData, GetBackupScheduleForVolumeResponses, GetBackupScheduleResponses, GetContainersUsingVolumeData, GetContainersUsingVolumeErrors, GetContainersUsingVolumeResponses, GetMeData, GetMeResponses, GetRepositoryData, GetRepositoryResponses, GetSnapshotDetailsData, GetSnapshotDetailsResponses, GetStatusData, GetStatusResponses, GetSystemInfoData, GetSystemInfoResponses, GetVolumeData, GetVolumeErrors, GetVolumeResponses, HealthCheckVolumeData, HealthCheckVolumeErrors, HealthCheckVolumeResponses, ListBackupSchedulesData, ListBackupSchedulesResponses, ListFilesData, ListFilesResponses, ListRcloneRemotesData, ListRcloneRemotesResponses, ListRepositoriesData, ListRepositoriesResponses, ListSnapshotFilesData, ListSnapshotFilesResponses, ListSnapshotsData, ListSnapshotsResponses, ListVolumesData, ListVolumesResponses, LoginData, LoginResponses, LogoutData, LogoutResponses, MountVolumeData, MountVolumeResponses, RegisterData, RegisterResponses, RestoreSnapshotData, RestoreSnapshotResponses, RunBackupNowData, RunBackupNowResponses, StopBackupData, StopBackupErrors, StopBackupResponses, TestConnectionData, TestConnectionResponses, UnmountVolumeData, UnmountVolumeResponses, UpdateBackupScheduleData, UpdateBackupScheduleResponses, UpdateVolumeData, UpdateVolumeErrors, UpdateVolumeResponses, } from "./types.gen"; export type Options = Options2< 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 ?? client).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 ?? client).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 ?? client).post({ url: "/api/v1/auth/logout", ...options, }); }; /** * Get current authenticated user */ export const getMe = (options?: Options) => { return (options?.client ?? client).get({ url: "/api/v1/auth/me", ...options, }); }; /** * Get authentication system status */ export const getStatus = (options?: Options) => { return (options?.client ?? client).get({ url: "/api/v1/auth/status", ...options, }); }; /** * Change current user password */ export const changePassword = ( options?: Options, ) => { return (options?.client ?? client).post({ url: "/api/v1/auth/change-password", ...options, headers: { "Content-Type": "application/json", ...options?.headers, }, }); }; /** * List all volumes */ export const listVolumes = (options?: Options) => { return (options?.client ?? client).get({ url: "/api/v1/volumes", ...options, }); }; /** * Create a new volume */ export const createVolume = ( options?: Options, ) => { return (options?.client ?? client).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 ?? client).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 ?? client).delete({ url: "/api/v1/volumes/{name}", ...options, }); }; /** * Get a volume by name */ export const getVolume = (options: Options) => { return (options.client ?? client).get({ url: "/api/v1/volumes/{name}", ...options, }); }; /** * Update a volume's configuration */ export const updateVolume = ( options: Options, ) => { return (options.client ?? client).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 ?? client).get< GetContainersUsingVolumeResponses, GetContainersUsingVolumeErrors, ThrowOnError >({ url: "/api/v1/volumes/{name}/containers", ...options, }); }; /** * Mount a volume */ export const mountVolume = (options: Options) => { return (options.client ?? client).post({ url: "/api/v1/volumes/{name}/mount", ...options, }); }; /** * Unmount a volume */ export const unmountVolume = ( options: Options, ) => { return (options.client ?? client).post({ url: "/api/v1/volumes/{name}/unmount", ...options, }); }; /** * Perform a health check on a volume */ export const healthCheckVolume = ( options: Options, ) => { return (options.client ?? client).post({ url: "/api/v1/volumes/{name}/health-check", ...options, }); }; /** * List files in a volume directory */ export const listFiles = (options: Options) => { return (options.client ?? client).get({ url: "/api/v1/volumes/{name}/files", ...options, }); }; /** * Browse directories on the host filesystem */ export const browseFilesystem = ( options?: Options, ) => { return (options?.client ?? client).get({ url: "/api/v1/volumes/filesystem/browse", ...options, }); }; /** * List all repositories */ export const listRepositories = ( options?: Options, ) => { return (options?.client ?? client).get({ url: "/api/v1/repositories", ...options, }); }; /** * Create a new restic repository */ export const createRepository = ( options?: Options, ) => { return (options?.client ?? client).post({ url: "/api/v1/repositories", ...options, headers: { "Content-Type": "application/json", ...options?.headers, }, }); }; /** * List all configured rclone remotes on the host system */ export const listRcloneRemotes = ( options?: Options, ) => { return (options?.client ?? client).get({ url: "/api/v1/repositories/rclone-remotes", ...options, }); }; /** * Delete a repository */ export const deleteRepository = ( options: Options, ) => { return (options.client ?? client).delete({ url: "/api/v1/repositories/{name}", ...options, }); }; /** * Get a single repository by name */ export const getRepository = ( options: Options, ) => { return (options.client ?? client).get({ url: "/api/v1/repositories/{name}", ...options, }); }; /** * List all snapshots in a repository */ export const listSnapshots = ( options: Options, ) => { return (options.client ?? client).get({ url: "/api/v1/repositories/{name}/snapshots", ...options, }); }; /** * Get details of a specific snapshot */ export const getSnapshotDetails = ( options: Options, ) => { return (options.client ?? client).get({ url: "/api/v1/repositories/{name}/snapshots/{snapshotId}", ...options, }); }; /** * List files and directories in a snapshot */ export const listSnapshotFiles = ( options: Options, ) => { return (options.client ?? client).get({ url: "/api/v1/repositories/{name}/snapshots/{snapshotId}/files", ...options, }); }; /** * Restore a snapshot to a target path on the filesystem */ export const restoreSnapshot = ( options: Options, ) => { return (options.client ?? client).post({ url: "/api/v1/repositories/{name}/restore", ...options, headers: { "Content-Type": "application/json", ...options.headers, }, }); }; /** * Run doctor operations on a repository to fix common issues (unlock, check, repair index). Use this when the repository is locked or has errors. */ export const doctorRepository = ( options: Options, ) => { return (options.client ?? client).post({ url: "/api/v1/repositories/{name}/doctor", ...options, }); }; /** * List all backup schedules */ export const listBackupSchedules = ( options?: Options, ) => { return (options?.client ?? client).get({ url: "/api/v1/backups", ...options, }); }; /** * Create a new backup schedule for a volume */ export const createBackupSchedule = ( options?: Options, ) => { return (options?.client ?? client).post({ url: "/api/v1/backups", ...options, headers: { "Content-Type": "application/json", ...options?.headers, }, }); }; /** * Delete a backup schedule */ export const deleteBackupSchedule = ( options: Options, ) => { return (options.client ?? client).delete({ url: "/api/v1/backups/{scheduleId}", ...options, }); }; /** * Get a backup schedule by ID */ export const getBackupSchedule = ( options: Options, ) => { return (options.client ?? client).get({ url: "/api/v1/backups/{scheduleId}", ...options, }); }; /** * Update a backup schedule */ export const updateBackupSchedule = ( options: Options, ) => { return (options.client ?? client).patch({ url: "/api/v1/backups/{scheduleId}", ...options, headers: { "Content-Type": "application/json", ...options.headers, }, }); }; /** * Get a backup schedule for a specific volume */ export const getBackupScheduleForVolume = ( options: Options, ) => { return (options.client ?? client).get({ url: "/api/v1/backups/volume/{volumeId}", ...options, }); }; /** * Trigger a backup immediately for a schedule */ export const runBackupNow = ( options: Options, ) => { return (options.client ?? client).post({ url: "/api/v1/backups/{scheduleId}/run", ...options, }); }; /** * Stop a backup that is currently in progress */ export const stopBackup = (options: Options) => { return (options.client ?? client).post({ url: "/api/v1/backups/{scheduleId}/stop", ...options, }); }; /** * Get system information including available capabilities */ export const getSystemInfo = ( options?: Options, ) => { return (options?.client ?? client).get({ url: "/api/v1/system/info", ...options, }); }; /** * Download the Restic password file for backup recovery. Requires password re-authentication. */ export const downloadResticPassword = ( options?: Options, ) => { return (options?.client ?? client).post({ url: "/api/v1/system/restic-password", ...options, headers: { "Content-Type": "application/json", ...options?.headers, }, }); };