a73x

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>;