Files
yucca/packages/yucca-api-client/src/fetch-client.ts
T

446 lines
14 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* yucca
* 1.0.0
* DO NOT MODIFY - This file has been generated using oazapfts.
* See https://www.npmjs.com/package/oazapfts
*/
import * as Oazapfts from "@oazapfts/runtime";
import * as QS from "@oazapfts/runtime/query";
export const defaults: Oazapfts.Defaults<Oazapfts.CustomHeaders> = {
headers: {},
baseUrl: "/"
};
const oazapfts = Oazapfts.runtime(defaults);
export const servers = {
server1: "/"
};
export type AuthDto = {
id: string;
name: string;
email: string;
sessionId: string;
connectionId?: string | null;
features: {
[key: string]: boolean;
};
};
export type DeviceFlowEventType = "START" | "SUCCESS" | "FAILURE";
export type DeviceFlowFailureReason = "UNKNOWN" | "EMAIL_NOT_ALLOWED" | "FEATURE_NOT_ENABLED";
export type DeviceFlowEventDto = {
"type": DeviceFlowEventType;
userCode?: string;
verificationUri?: string;
accessToken?: string;
userId?: string;
reason?: DeviceFlowFailureReason;
};
export type TicketAction = "repository.delete" | "repository.disable-worm";
export type TicketCreateRequestDto = {
action: TicketAction;
/** Repository the ticket is bound to */
repositoryId: string;
};
export type TicketCreateResponseDto = {
/** IdP URL the browser must be sent to */
redirectTo: string;
};
export type RepositoryMetricsDto = {
lastBackup?: string;
lastSuccessfulBackup?: string;
lastBackupDuration?: number;
sizeBytes: number;
};
export type RepositoryMeterDto = {
sizeBytes: number;
objectCount: number;
lastUpdated?: string;
};
export type TicketDto = {
id: string;
action: TicketAction;
repositoryId: string;
repositoryName: string;
metrics: RepositoryMetricsDto;
meter?: RepositoryMeterDto;
};
export type MetaConfigDto = {
restic_pack_size_mib: number;
/** Client-evaluated expression: integers, cores, min, max, + - * / */
connections_math: string;
};
export type MetaConfigOverridesDto = {
restic_pack_size_mib?: number;
/** Client-evaluated expression: integers, cores, min, max, + - * / */
connections_math?: string;
};
export type MetaClusterDto = {
code: string;
display_name: string;
/** Per-cluster overrides of the global and site config */
cluster_config: MetaConfigOverridesDto;
};
export type MetaSiteDto = {
code: string;
display_name: string;
description: string;
rest_url: string;
default_cluster: string;
/** Per-site overrides of the global config */
site_config: MetaConfigOverridesDto;
clusters: MetaClusterDto[];
};
export type MetaResponseDto = {
api_root: string;
config: MetaConfigDto;
default_site: string;
sites: MetaSiteDto[];
};
export type ConnectionDto = {
id: string;
"type": "immich" | "standalone" | "restic";
name: string;
createdAt: string;
lastSeenAt?: string | null;
repositoryCount: number;
/** Rolled-up storage across this connection’s repositories (RGW size). */
sizeBytes: number;
/** Rolled-up object count across this connection’s repositories. */
objectCount: number;
/** Billed bytes: per-object min-size floor applied (immich exempt). */
billableBytes: number;
};
export type ConnectionListResponseDto = {
connections: ConnectionDto[];
};
export type ConnectionCreateRequestDto = {
"type": "immich" | "standalone" | "restic";
name: string;
};
export type ConnectionResponseDto = {
connection: ConnectionDto;
};
export type ConnectionUpdateRequestDto = {
name: string;
};
export type ConnectionAdoptRequestDto = {
/** Repositories to move from the default connection to this one */
repositoryIds: string[];
};
export type DiscordInviteResponseDto = {
discordUsername: string;
};
export type DiscordLinkRequestResponseDto = {
discordUsername: string;
};
export type SubmitBackupEndRequestDto = {
success: boolean;
durationMs: number;
};
export type SubmitUpdateSizeRequestDto = {
sizeBytes: number;
};
export type SubmitStructuredLogRequestDto = {
summary: string;
data: object;
};
export type RepositoryMetricsHistoryDto = {
id: string;
repositoryId: string;
createdAt: string;
sizeBytes?: number;
started?: string;
backup?: string;
successfulBackup?: string;
backupDuration?: number;
};
export type RepositoryMetricsHistoryListResponseDto = {
items: RepositoryMetricsHistoryDto[];
nextCursor?: string | null;
};
export type RepositoryCreateRequestDto = {
name: string;
worm: boolean;
/** Internal site code from /meta; defaults to default_site */
site?: string;
};
export type RepositoryWithMetricsDto = {
id: string;
worm: boolean;
name: string;
/** Stable internal site code the repository lives in */
siteCode: string | null;
/** Stable, globally unique internal storage cluster code */
storageClusterCode: string | null;
connectionId: string;
connectionType: string;
metrics: RepositoryMetricsDto;
meter?: RepositoryMeterDto;
};
export type RepositoryCreateResponseDto = {
repository: RepositoryWithMetricsDto;
};
export type RepositoryListResponseDto = {
repositories: RepositoryWithMetricsDto[];
};
export type RepositoryGetResponseDto = {
repository: RepositoryWithMetricsDto;
};
export type RepositoryUpdateRequestDto = {
name?: string;
worm?: boolean;
};
export type RepositoryUpdateResponseDto = {
repository: RepositoryWithMetricsDto;
};
export type RepositoryCreateResticUrlDto = {
url: string;
};
export function getAuth(opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: AuthDto;
}>("/api/auth", {
...opts
}));
}
export function logout(opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchText("/api/auth/logout", {
...opts
}));
}
export function oidcAuthorize(codeChallenge: string, state: string, { redirect, discordInvite, inviteCode }: {
redirect?: string;
discordInvite?: string;
inviteCode?: string;
} = {}, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchText(`/api/auth/oidc/login${QS.query(QS.explode({
code_challenge: codeChallenge,
state,
redirect,
discord_invite: discordInvite,
invite_code: inviteCode
}))}`, {
...opts
}));
}
export function oidcCallback(opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchText("/api/auth/oidc/callback", {
...opts
}));
}
export function oidcDeviceFlowIdentity(opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: DeviceFlowEventDto;
}>("/api/auth/oidc/device/identity", {
...opts
}));
}
export function oidcDeviceFlow({ connectionType, connectionName }: {
connectionType?: string;
connectionName?: string;
} = {}, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: DeviceFlowEventDto;
}>(`/api/auth/oidc/device${QS.query(QS.explode({
connection_type: connectionType,
connection_name: connectionName
}))}`, {
...opts
}));
}
export function createTicket(ticketCreateRequestDto: TicketCreateRequestDto, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: TicketCreateResponseDto;
}>("/api/auth/ticket", oazapfts.json({
...opts,
method: "POST",
body: ticketCreateRequestDto
})));
}
export function ticketCallback(opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchText("/api/auth/ticket/callback", {
...opts
}));
}
export function getTicket(id: string, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: TicketDto;
}>(`/api/auth/ticket/${encodeURIComponent(id)}`, {
...opts
}));
}
export function getMeta(opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: MetaResponseDto;
}>("/api/meta", {
...opts
}));
}
export function listConnections(opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: ConnectionListResponseDto;
}>("/api/connections", {
...opts
}));
}
export function createConnection(connectionCreateRequestDto: ConnectionCreateRequestDto, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: ConnectionResponseDto;
}>("/api/connections", oazapfts.json({
...opts,
method: "POST",
body: connectionCreateRequestDto
})));
}
export function updateConnection(id: string, connectionUpdateRequestDto: ConnectionUpdateRequestDto, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchText(`/api/connections/${encodeURIComponent(id)}`, oazapfts.json({
...opts,
method: "PATCH",
body: connectionUpdateRequestDto
})));
}
export function deleteConnection(id: string, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchText(`/api/connections/${encodeURIComponent(id)}`, {
...opts,
method: "DELETE"
}));
}
export function adoptRepositories(id: string, connectionAdoptRequestDto: ConnectionAdoptRequestDto, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchText(`/api/connections/${encodeURIComponent(id)}/adopt`, oazapfts.json({
...opts,
method: "POST",
body: connectionAdoptRequestDto
})));
}
export function getDiscordInvite(code: string, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: DiscordInviteResponseDto;
}>(`/api/discord/invites/${encodeURIComponent(code)}`, {
...opts
}));
}
export function getDiscordLinkRequest(code: string, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: DiscordLinkRequestResponseDto;
}>(`/api/discord/link-requests/${encodeURIComponent(code)}`, {
...opts
}));
}
export function confirmDiscordLinkRequest(code: string, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchText(`/api/discord/link-requests/${encodeURIComponent(code)}/confirm`, {
...opts,
method: "POST"
}));
}
export function submitMetricBackupStart(repositoryId: string, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchText(`/api/metrics/submit/${encodeURIComponent(repositoryId)}/backup/start`, {
...opts,
method: "POST"
}));
}
export function submitMetricBackupEnd(repositoryId: string, submitBackupEndRequestDto: SubmitBackupEndRequestDto, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchText(`/api/metrics/submit/${encodeURIComponent(repositoryId)}/backup/end`, oazapfts.json({
...opts,
method: "POST",
body: submitBackupEndRequestDto
})));
}
export function submitMetricRepositorySize(repositoryId: string, submitUpdateSizeRequestDto: SubmitUpdateSizeRequestDto, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchText(`/api/metrics/submit/${encodeURIComponent(repositoryId)}/size`, oazapfts.json({
...opts,
method: "PATCH",
body: submitUpdateSizeRequestDto
})));
}
export function submitStructuredLog(submitStructuredLogRequestDto: SubmitStructuredLogRequestDto, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchText("/api/metrics/submit/log", oazapfts.json({
...opts,
method: "POST",
body: submitStructuredLogRequestDto
})));
}
export function listMetricsHistory(repositoryId: string, { cursor, limit }: {
cursor?: string;
limit?: string;
} = {}, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: RepositoryMetricsHistoryListResponseDto;
}>(`/api/metrics/${encodeURIComponent(repositoryId)}/history${QS.query(QS.explode({
cursor,
limit
}))}`, {
...opts
}));
}
export function createRepository(repositoryCreateRequestDto: RepositoryCreateRequestDto, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: RepositoryCreateResponseDto;
}>("/api/repository", oazapfts.json({
...opts,
method: "POST",
body: repositoryCreateRequestDto
})));
}
export function getRepositories(opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: RepositoryListResponseDto;
}>("/api/repository", {
...opts
}));
}
export function getRepository(id: string, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: RepositoryGetResponseDto;
}>(`/api/repository/${encodeURIComponent(id)}`, {
...opts
}));
}
export function updateRepository(id: string, repositoryUpdateRequestDto: RepositoryUpdateRequestDto, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: RepositoryUpdateResponseDto;
}>(`/api/repository/${encodeURIComponent(id)}`, oazapfts.json({
...opts,
method: "PATCH",
body: repositoryUpdateRequestDto
})));
}
export function deleteRepository(id: string, ticketId: string, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchText(`/api/repository/${encodeURIComponent(id)}${QS.query(QS.explode({
ticketId
}))}`, {
...opts,
method: "DELETE"
}));
}
export function createResticUrl(id: string, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: RepositoryCreateResticUrlDto;
}>(`/api/repository/${encodeURIComponent(id)}/restic`, {
...opts,
method: "POST"
}));
}
export function disableWorm(id: string, ticketId: string, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchText(`/api/repository/${encodeURIComponent(id)}/worm${QS.query(QS.explode({
ticketId
}))}`, {
...opts,
method: "DELETE"
}));
}