web/src/lib/api-types.ts
Ref: Size: 56.2 KiB History
/**
* This file was auto-generated by openapi-typescript.
* Do not make direct changes to the file.
*/
export interface paths {
"/api/v1/audit": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Newest audit log rows. */
get: {
parameters: {
query?: {
/** @description max rows to return (default 100, cap 1000) */
limit?: string;
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AuditEvent"][];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/delegations": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Describe the caller tenant's live delegation, including when it expires. 404 when there is none. */
get: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Delegation"];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
/** Complete a delegation with the certificate your CA signed. The certificate must be a user certificate over the key this delegation issued, signed by a CA registered to your tenant, naming the guest login user as a principal. */
put: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["DelegationRequest"];
};
};
responses: {
/** @description success */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Delegation"];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
/** Start a delegation: returns the ephemeral public key eitri will authenticate with, the principal the certificate must carry, and the ssh-keygen command that signs it. The key is stable for the life of the process once delegated; a begin left unsigned for an hour is abandoned and the next call returns a new key. */
post: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["DelegationChallenge"];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
/** End the caller tenant's delegation now. eitri drops the certificate and can no longer reach that tenant's VMs. */
delete: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
204: {
headers: {
[name: string]: unknown;
};
content?: never;
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/enroll": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Redeem a one-time enrollment token: a new host joins the fleet and receives its credential. Unauthenticated but rate-limited; the token is the proof. */
post: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["EnrollRequest"];
};
};
responses: {
/** @description success */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["EnrollResponse"];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/enroll-tokens": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Mint a one-time host enrollment token plus the join blob agents consume. */
post: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["EnrollTokenResponse"];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/events": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Live fleet state stream (Server-Sent Events); each 'state' event carries a StateSnapshot. */
get: {
parameters: {
query?: {
/** @description one-time stream ticket */
ticket?: string;
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
200: {
headers: {
[name: string]: unknown;
};
content: {
"text/event-stream": components["schemas"]["StateSnapshot"];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/exposures/{id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
/** Revoke an exposure; its host closes the listener on the next converge. */
delete: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
204: {
headers: {
[name: string]: unknown;
};
content?: never;
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/hosts": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** List fleet hosts: durable rows merged with live agent state and allocation. */
get: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Host"][];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/hosts/{id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
/** Decommission a host: tombstone its VMs and drain gracefully (202). With ?force, purge and remove immediately, returning 200. */
delete: {
parameters: {
query?: {
/** @description purge VM rows and remove the host immediately (dead hardware escape hatch) */
force?: string;
};
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
202: {
headers: {
[name: string]: unknown;
};
content?: never;
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/hosts/{id}/revoke-credential": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Revoke a host's outstanding credential by bumping its generation; the host stays dark until re-enrolled. */
post: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
204: {
headers: {
[name: string]: unknown;
};
content?: never;
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/hosts/{id}/upgrade-agent": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Offer the host's agent a self-upgrade to the latest known release (per-host, human-controlled rollout). */
post: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
202: {
headers: {
[name: string]: unknown;
};
content?: never;
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/me": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** The signed-in identity: the caller's tenant handle, bound email, and the plane's SSH jump-gate address (empty when it runs no gate). */
get: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Me"];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/ssh-ca": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** The eitri SSH host CA public key (public material) for pinning `@cert-authority` in known_hosts. 404 when the jump gate is off. */
get: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["SSHCAResponse"];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/ssh-certs/revoke": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Revoke a minted SSH user certificate by serial or certificate line; the gate rejects it before its TTL expires. Idempotent. */
post: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["RevokeSSHCertRequest"];
};
};
responses: {
/** @description success */
204: {
headers: {
[name: string]: unknown;
};
content?: never;
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/ssh-certs/revoked": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** List revoked SSH user certificate serials (with reason and time), newest first. */
get: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["RevokedCert"][];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/stream-tickets": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Mint a one-time short-TTL ticket for the SSE stream or console WebSocket — the only credential that ever rides in a URL. */
post: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["StreamTicketResponse"];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/tenants/{tenant}/user-cas": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** List the tenant's registered SSH user CAs (pubkey, label, fingerprint). */
get: {
parameters: {
query?: never;
header?: never;
path: {
tenant: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["UserCA"][];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
put?: never;
/** Register a BYO SSH user CA public key for the tenant; eitri never holds a user signing key. */
post: {
parameters: {
query?: never;
header?: never;
path: {
tenant: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["UserCARequest"];
};
};
responses: {
/** @description success */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["UserCAUploadResponse"];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
/** Remove a registered SSH user CA by its public_key line. */
delete: {
parameters: {
query?: never;
header?: never;
path: {
tenant: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["UserCARequest"];
};
};
responses: {
/** @description success */
204: {
headers: {
[name: string]: unknown;
};
content?: never;
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/tokens": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** List the tenant's personal access tokens (metadata only — never the secret), newest first. */
get: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["APIToken"][];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
put?: never;
/** Mint a personal access token; the secret is returned exactly once. An optional TTL sets expiry (0 = non-expiring). */
post: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["CreateAPITokenRequest"];
};
};
responses: {
/** @description success */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CreateAPITokenResponse"];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/tokens/{id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
/** Revoke a personal access token by id; unknown or foreign ids answer 404 (no existence leak). */
delete: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
204: {
headers: {
[name: string]: unknown;
};
content?: never;
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/user-cas": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** List the caller's own tenant's registered SSH user CAs (pubkey, label, fingerprint). */
get: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["UserCA"][];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
put?: never;
/** Register a BYO SSH user CA public key for the caller's own tenant; eitri never holds a user signing key. */
post: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["UserCARequest"];
};
};
responses: {
/** @description success */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["UserCAUploadResponse"];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/vms": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** List VMs: durable rows merged with live agent-reported actual state. */
get: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["VM"][];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
put?: never;
/** Create a VM on a host. Omitted fields get one-click defaults; the tenant must have a registered SSH user CA first. */
post: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["CreateVMRequest"];
};
};
responses: {
/** @description success */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CreateVMResponse"];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/vms/{id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
/** Tombstone a VM for teardown; restorable within the grace window via restore. */
delete: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
204: {
headers: {
[name: string]: unknown;
};
content?: never;
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
options?: never;
head?: never;
/** Set a VM's desired power state (running or stopped). */
patch: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["PatchVMRequest"];
};
};
responses: {
/** @description success */
204: {
headers: {
[name: string]: unknown;
};
content?: never;
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
trace?: never;
};
"/api/v1/vms/{id}/console/ws": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Serial-console WebSocket: raw byte pipe to the VM's serial console. */
get: {
parameters: {
query?: {
/** @description one-time stream ticket */
ticket?: string;
};
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description switching protocols (WebSocket) */
101: {
headers: {
[name: string]: unknown;
};
content?: never;
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/vms/{id}/events": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** One VM's lifecycle timeline (audit rows carrying its vm_id), newest first; survives the VM row being reaped. */
get: {
parameters: {
query?: {
/** @description max rows to return (default 100, cap 1000) */
limit?: string;
};
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AuditEvent"][];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/vms/{id}/exposures": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** List the VM's published ports, with the host address to dial and each listener's reported state. */
get: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Exposure"][];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
put?: never;
/** Publish a guest port on the VM's host, protocol "tcp" (the default) or "udp". Omit host_port to allocate one from the reserved range 30000-32767; a named port must be >= 1024 and is honored or refused, and is taken only by another exposure of the same protocol. */
post: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["CreateExposureRequest"];
};
};
responses: {
/** @description success */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Exposure"];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/vms/{id}/restore": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Un-tombstone a VM still within the teardown grace window; the agent re-adopts the guest. */
post: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
204: {
headers: {
[name: string]: unknown;
};
content?: never;
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/volume-claims": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** List the tenant's claims: where each is bound, which VM holds it, and whether its host has the file. */
get: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["VolumeClaim"][];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
put?: never;
/** Claim durable storage. Pending until the first VM naming it is created; that VM's host then holds the bytes, and every later VM using the claim is placed there. */
post: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["CreateVolumeClaimRequest"];
};
};
responses: {
/** @description success */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["VolumeClaim"];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/volume-claims/{id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** One claim. */
get: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["VolumeClaim"];
};
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
put?: never;
post?: never;
/** Delete a claim and the data behind it. Refused (409) while a VM holds it. */
delete: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description success */
204: {
headers: {
[name: string]: unknown;
};
content?: never;
};
/** @description error (plain text) */
default: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
options?: never;
head?: never;
patch?: never;
trace?: never;
};
}
export type webhooks = Record<string, never>;
export interface components {
schemas: {
APIToken: {
created_at: string;
expires_at: string;
id: string;
last_used_at: string;
name: string;
revoked_at: string;
};
AuditEvent: {
action: string;
/** Format: date-time */
at: string;
detail: unknown;
};
Capacity: {
disk_gb: number;
mem_mb: number;
vcpus: number;
};
CreateAPITokenRequest: {
name?: string;
ttl_seconds?: number;
};
CreateAPITokenResponse: {
expires_at: string;
id: string;
name: string;
token: string;
};
CreateExposureRequest: {
guest_port?: number;
host_port?: number;
protocol?: string;
};
CreateVMRequest: {
cloud_init?: string;
disk_gb?: number;
host_id?: string;
image_sha256?: string;
image_url?: string;
mem_mb?: number;
name?: string;
network?: string;
power_state?: string;
ssh_authorized_key?: string;
vcpus?: number;
volume_claims?: string[];
};
CreateVMResponse: {
id: string;
name: string;
};
CreateVolumeClaimRequest: {
name?: string;
size_gb?: number;
};
Delegation: {
ca_fingerprint: string;
expires_at: string;
key_id: string;
principals: string[];
public_key: string;
serial: string;
};
DelegationChallenge: {
instructions: string;
principal: string;
public_key: string;
};
DelegationRequest: {
certificate?: string;
};
EnrollRequest: {
arch?: string;
bridge_cidr?: string | null;
name?: string;
os?: string;
provisioner?: string;
token?: string;
};
EnrollResponse: {
bridge_cidr: string;
credential: string;
host_id: string;
server_cert_sha256: string;
};
EnrollTokenResponse: {
join: string;
token: string;
};
Exposure: {
/** Format: date-time */
created_at: string;
guest_port: number;
host_addr: string;
host_id: string;
host_port: number;
id: string;
protocol: string;
reason: string;
scope: string;
sessions?: components["schemas"]["ExposureSessions"] | null;
state: string;
vm_id: string;
};
ExposureSessions: {
active: number;
dropped: number;
refused: number;
};
Host: {
agent_update_available: boolean;
agent_version: string;
allocated: components["schemas"]["Capacity"];
arch: string;
bridge_cidr: string;
capacity: components["schemas"]["Capacity"];
cpu_model: string;
/** Format: date-time */
enrolled_at: string;
host_networks: string[];
id: string;
kernel: string;
/** Format: date-time */
last_seen?: string | null;
metrics?: components["schemas"]["Metrics"] | null;
name: string;
online: boolean;
os: string;
os_id: string;
os_pretty: string;
os_version: string;
pending_upgrade?: components["schemas"]["PendingUpgrade"] | null;
provisioner: string;
seconds_since_last_seen?: number | null;
sessions: number;
stale: boolean;
status: string;
uplink_addr: string;
virt: string;
};
InjectedKey: {
comment: string;
fingerprint: string;
type: string;
};
Me: {
email: string;
ssh_gate: string;
tenant: string;
};
Metrics: {
disk_free_gb: number;
disk_used_gb: number;
load1: number;
load15: number;
load5: number;
mem_available_mb: number;
mem_used_mb: number;
uptime_s: number;
};
PatchVMRequest: {
power_state?: string;
};
PendingUpgrade: {
age_s: number;
version: string;
};
RevokeSSHCertRequest: {
certificate?: string;
reason?: string;
serial?: number | null;
};
RevokedCert: {
reason: string;
/** Format: date-time */
revoked_at: string;
serial: string;
};
SSHCAResponse: {
ca: string;
};
StateSnapshot: {
hosts: components["schemas"]["Host"][];
latest_version: string;
server_version: string;
vms: components["schemas"]["VM"][];
};
StreamTicketResponse: {
ticket: string;
};
TrustedCA: {
fingerprint: string;
label: string;
};
UserCA: {
fingerprint: string;
label: string;
pubkey: string;
};
UserCARequest: {
label?: string;
public_key?: string;
};
UserCAUploadResponse: {
fingerprint: string;
};
VM: {
actual_power: string;
assigned_ip: string;
/** Format: date-time */
created_at: string;
deleted: boolean;
destroy_at: number;
disk_gb: number;
host_id: string;
id: string;
image_url: string;
injected_key?: components["schemas"]["InjectedKey"] | null;
last_error: string;
lifecycle: string;
mem_mb: number;
name: string;
network: string;
network_ip: string;
phase: string;
power_state: string;
status: string;
status_detail: string;
trusted_cas?: components["schemas"]["TrustedCA"][] | null;
vcpus: number;
};
VolumeClaim: {
/** Format: date-time */
created_at: string;
host_id: string;
id: string;
name: string;
present?: boolean | null;
size_gb: number;
status: string;
vm_id: string;
};
};
responses: never;
parameters: never;
requestBodies: never;
headers: never;
pathItems: never;
}
export type $defs = Record<string, never>;
export type operations = Record<string, never>;