Delete a StartupProfile
const url = 'https://example.com/apis/nodus.dev/v1/startupprofiles/example';const options = {method: 'DELETE'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request DELETE \ --url https://example.com/apis/nodus.dev/v1/startupprofiles/exampleParameters
Section titled “ Parameters ”Path Parameters
Section titled “ Path Parameters ”The object’s name.
Query Parameters
Section titled “ Query Parameters ”Header Parameters
Section titled “ Header Parameters ”Responses
Section titled “ Responses ”OK
StartupProfile is versioned organization-owned Sandbox launch configuration. Writing one creates no compute.
object
object
object
object
object
object
object
StartupProfileSpec contains references and launch defaults, never credential values or setup hooks.
object
SandboxStartupDefaults is the bounded subset of SandboxSpec accepted in a startup profile. Objects merge recursively; lists replace. resources.gpu and virtualization accept null to clear an inherited value; all other fields reject null. Explicit empty lists and false remain present across storage/replay.
object
SandboxContinuity sets what survives a stop.
object
Mode is Snapshotted (the CPU default) or Ephemeral (the GPU default). GPU Snapshotted requires StateDir; An explicit StateDir saves after process exit; CPU without one saves /nodus/state before shutdown. Every start launches a fresh process from the image, without rootfs or GPU-memory recovery.
StateDir opts a Sandbox into saving one local directory on stop and restoring it on start. The path is immutable, starts empty, and must not contain remote filesystem mounts. Requires Snapshotted mode.
EnvVar is one environment variable: a literal value or a Secret key.
object
Name matches ^[A-Za-z_][A-Za-z0-9_]*$.
Value is the literal value.
EnvVarSource names where an env value comes from.
object
SecretKeySelector selects one key of a Secret.
object
Key is the key within it.
Name is the Secret.
SandboxLifecycleSpec sets when a Sandbox stops or is deleted without being asked.
object
IdleTimeout stops (or deletes, with onIdle Delete) the Sandbox after this long with no running command, no file request and no terminal input: 0s never, or 1m–24h (default 5m). A silent open terminal is idle.
MaxLifetime deletes the Sandbox this long after it was created, counting stopped time: 1m–720h (default 24h).
OnIdle is Stop (the default) or Delete.
SandboxPlacement carries the placement fields supported by a Sandbox. It intentionally excludes Job-only profile, pool, community and interruptibility settings, so a Sandbox request cannot silently ignore them.
object
Regions are Nodus region classes such as us or ca; empty means any region.
Resources are capacity floors. For GPU work the offering’s host shape applies if larger.
object
CPU is the vCPU floor.
Disk is the ephemeral disk floor.
GPURequest asks for accelerators. A family (H100) matches any of its variants and never another family.
object
Count is the GPUs per node: 1, 2, 4 or 8.
Exact pins the exact variant instead of matching the family.
Interconnect is Any or NVLink.
MinMemory is the per-GPU memory floor.
Type lists 1–8 accelerator ids or families from the catalog.
Memory is the host memory floor.
Nodes above 1 is shorthand for spec.distributed.nodes and is stored in that form.
SecretMount mounts one Secret, optionally pinned to a version. The bare name is accepted on write.
object
Name is the Secret.
Version pins a version; unset pins the latest at admission.
SandboxVirtualization selects a parent capability, not a child VM count or a GPU partition.
object
Profile is gpu-child-v1: one exclusive GPU parent with KVM for customer-managed child VMs (Alpha). Children share the parent’s GPU; this does not promise hardware isolation or saved GPU memory.
Disabled refuses new resolutions without changing existing Sandboxes.
Example generated
{ "apiVersion": "example", "kind": "example", "metadata": { "annotations": { "additionalProperty": "example" }, "creationTimestamp": "example", "deletionGracePeriodSeconds": 1, "deletionTimestamp": "example", "finalizers": [ "example" ], "generateName": "example", "generation": 1, "labels": { "additionalProperty": "example" }, "managedFields": [ { "apiVersion": "example", "fieldsType": "example", "fieldsV1": { "additionalProperty": "example" }, "manager": "example", "operation": "example", "subresource": "example", "time": "example" } ], "name": "example", "namespace": "example", "ownerReferences": [ { "apiVersion": "example", "blockOwnerDeletion": true, "controller": true, "kind": "example", "name": "example", "uid": "example" } ], "resourceVersion": "example", "selfLink": "example", "uid": "example" }, "spec": { "defaults": { "args": [ "example" ], "command": [ "example" ], "continuity": { "mode": "example", "stateDir": "example" }, "env": [ { "name": "example", "value": "example", "valueFrom": { "secretKeyRef": { "key": "example", "name": "example" } } } ], "fuseMount": true, "image": "example", "imagePullSecrets": [ "example" ], "lifecycle": { "idleTimeout": "example", "maxLifetime": "example", "onIdle": "example" }, "placement": { "regions": [ "example" ] }, "resources": { "cpu": "example", "disk": "example", "gpu": { "count": 1, "exact": true, "interconnect": "example", "minMemory": "example", "type": [ "example" ] }, "memory": "example", "nodes": 1 }, "secrets": [ { "name": "example", "version": 1 } ], "virtualization": { "profile": "example" }, "workingDir": "example" }, "disabled": true }}default
Section titled “ default ”An error: a metav1.Status whose reason is a registered code.
Status is the error body of every API response: a Kubernetes metav1.Status (so kubectl and client-go understand it) plus three top-level extensions that those clients ignore (ADR-028).
object
object
object
Docs is the URL of the code’s docs page.
Fix says what to do next, for example a CLI command or the field to change.
object
object
RequestID identifies the request in logs and support tickets.
Example generated
{ "apiVersion": "example", "code": 1, "details": { "causes": [ { "field": "example", "message": "example", "reason": "example" } ], "group": "example", "kind": "example", "name": "example", "retryAfterSeconds": 1, "uid": "example" }, "docs": "example", "fix": "example", "kind": "example", "message": "example", "metadata": { "continue": "example", "remainingItemCount": 1, "resourceVersion": "example", "selfLink": "example", "shardInfo": { "selector": "example" } }, "reason": "example", "requestId": "example", "status": "example"}