forked from wrenn/python-sdk
v0.1.5 (#13)
Co-authored-by: Tasnim Kabir Sadik <tksadik92@gmail.com> Reviewed-on: wrenn/python-sdk#13
This commit is contained in:
108
api/openapi.yaml
108
api/openapi.yaml
@ -1421,10 +1421,19 @@ paths:
|
||||
- apiKeyAuth: []
|
||||
- sessionAuth: []
|
||||
description: |
|
||||
Live snapshot: briefly pauses the capsule, writes its VM state +
|
||||
memory + flattened rootfs to a new template directory, then resumes
|
||||
the capsule. The source capsule keeps running after the snapshot;
|
||||
the resulting template can be used to create new capsules.
|
||||
Snapshot a capsule, processed asynchronously. The call returns
|
||||
immediately with the capsule in the `snapshotting` state, then it
|
||||
returns to its original state on completion. The capsule must be
|
||||
`running` or `paused`.
|
||||
|
||||
A `running` capsule is snapshotted live: it briefly pauses while its VM
|
||||
state + memory + flattened rootfs are written to a new template, then
|
||||
resumes to `running`. A `paused` capsule is snapshotted directly from
|
||||
its on-disk state without reviving the VM, and stays `paused`.
|
||||
|
||||
Because it is async, the response does NOT contain the template. Watch
|
||||
for the `template.snapshot.create` SSE event (its `outcome` reports
|
||||
success or failure) or poll `GET /v1/snapshots` to observe completion.
|
||||
|
||||
Snapshots are immutable: each call must use a fresh name. Re-using
|
||||
an existing name returns 409 Conflict.
|
||||
@ -1435,14 +1444,14 @@ paths:
|
||||
schema:
|
||||
$ref: "#/components/schemas/CreateSnapshotRequest"
|
||||
responses:
|
||||
"201":
|
||||
description: Snapshot created
|
||||
"202":
|
||||
description: Snapshot accepted; capsule is now snapshotting
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Template"
|
||||
$ref: "#/components/schemas/Capsule"
|
||||
"409":
|
||||
description: Name already exists or capsule not running
|
||||
description: Name already exists, or capsule is not running or paused
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
@ -2813,7 +2822,7 @@ paths:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/components/schemas/Template"
|
||||
$ref: "#/components/schemas/AdminTemplate"
|
||||
|
||||
/v1/admin/templates/{name}:
|
||||
delete:
|
||||
@ -2899,6 +2908,26 @@ paths:
|
||||
"204":
|
||||
description: Cancelled
|
||||
|
||||
/v1/admin/builds/{id}/stream:
|
||||
get:
|
||||
summary: Stream a build's live console (admin, WebSocket)
|
||||
description: >
|
||||
WebSocket endpoint. On connect, replays the completed-step history,
|
||||
then live-tails JSON events (step-start, output, step-end,
|
||||
build-status, ping) until the build finishes.
|
||||
operationId: adminStreamBuild
|
||||
tags: [admin]
|
||||
security:
|
||||
- sessionAuth: []
|
||||
parameters:
|
||||
- name: id
|
||||
in: path
|
||||
required: true
|
||||
schema: {type: string}
|
||||
responses:
|
||||
"101":
|
||||
description: WebSocket upgrade — streams build console events
|
||||
|
||||
/v1/admin/capsules:
|
||||
post:
|
||||
summary: Create a capsule on behalf of any team (admin)
|
||||
@ -2969,6 +2998,10 @@ paths:
|
||||
summary: Create snapshot from any capsule (admin)
|
||||
operationId: adminCreateSnapshotFromCapsule
|
||||
tags: [admin]
|
||||
description: |
|
||||
Snapshots a `running` or `paused` capsule into a platform template,
|
||||
processed asynchronously (see `POST /v1/snapshots`). A running capsule
|
||||
resumes to `running`; a paused capsule stays `paused`.
|
||||
security:
|
||||
- sessionAuth: []
|
||||
parameters:
|
||||
@ -2977,21 +3010,22 @@ paths:
|
||||
required: true
|
||||
schema: {type: string}
|
||||
requestBody:
|
||||
required: true
|
||||
required: false
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required: [name]
|
||||
properties:
|
||||
name: {type: string}
|
||||
name:
|
||||
type: string
|
||||
description: Optional; an auto-generated name is used when omitted.
|
||||
responses:
|
||||
"201":
|
||||
description: Snapshot created
|
||||
"202":
|
||||
description: Snapshot accepted; capsule is now snapshotting
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Template"
|
||||
$ref: "#/components/schemas/Capsule"
|
||||
|
||||
/v1/admin/capsules/{id}/exec:
|
||||
parameters:
|
||||
@ -3486,7 +3520,7 @@ components:
|
||||
properties:
|
||||
template:
|
||||
type: string
|
||||
default: minimal
|
||||
default: minimal-ubuntu
|
||||
vcpus:
|
||||
type: integer
|
||||
default: 1
|
||||
@ -3590,7 +3624,7 @@ components:
|
||||
type: string
|
||||
status:
|
||||
type: string
|
||||
enum: [pending, starting, running, pausing, paused, resuming, stopping, hibernated, stopped, missing, error]
|
||||
enum: [pending, starting, running, pausing, paused, snapshotting, resuming, stopping, hibernated, stopped, missing, error]
|
||||
template:
|
||||
type: string
|
||||
vcpus:
|
||||
@ -3664,13 +3698,51 @@ components:
|
||||
type: boolean
|
||||
description: |
|
||||
True when the template is platform-managed (visible to all teams,
|
||||
e.g. the built-in `minimal` rootfs). False for team-owned
|
||||
e.g. the built-in `minimal-ubuntu` rootfs). False for team-owned
|
||||
snapshot templates.
|
||||
protected:
|
||||
type: boolean
|
||||
description: |
|
||||
True for built-in system base templates (minimal-ubuntu,
|
||||
minimal-alpine, minimal-arch, minimal-fedora). Protected templates
|
||||
cannot be deleted.
|
||||
metadata:
|
||||
type: object
|
||||
additionalProperties: {type: string}
|
||||
nullable: true
|
||||
|
||||
AdminTemplate:
|
||||
type: object
|
||||
description: |
|
||||
Template as returned by the admin templates list. Unlike `Template`
|
||||
(the team-facing snapshot shape), this includes the owning `team_id`
|
||||
and omits `platform`/`metadata`.
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
type:
|
||||
type: string
|
||||
enum: [base, snapshot]
|
||||
vcpus:
|
||||
type: integer
|
||||
memory_mb:
|
||||
type: integer
|
||||
size_bytes:
|
||||
type: integer
|
||||
format: int64
|
||||
team_id:
|
||||
type: string
|
||||
description: Owning team ID (formatted, e.g. `team-…`). Platform team for global templates.
|
||||
created_at:
|
||||
type: string
|
||||
format: date-time
|
||||
protected:
|
||||
type: boolean
|
||||
description: |
|
||||
True for built-in system base templates (minimal-ubuntu,
|
||||
minimal-alpine, minimal-arch, minimal-fedora). Protected templates
|
||||
cannot be deleted.
|
||||
|
||||
ExecRequest:
|
||||
type: object
|
||||
required: [cmd]
|
||||
|
||||
Reference in New Issue
Block a user