Download OpenAPI specification:Download
Edgelet API v1 baseline for Edgelet daemon and CLI. Canonical namespace is /v1. Any path/schema/auth deviation must be explicitly approved before implementation.
Optional scope controls cleanup behavior. Default scope is all. scope=local preserves local microservices while deprovisioning from controller.
| scope | string Enum: "all" "local" |
{ }| mode | string Default: "dangling" Enum: "dangling" "containers" "volumes" "all" |
{- "success": false,
- "error": {
- "code": "string",
- "message": "string",
- "details": { },
- "requestId": "string"
}
}required | string or number |
required | string or number |
{- "lat": "string",
- "lon": "string"
}{- "success": false,
- "error": {
- "code": "string",
- "message": "string",
- "details": { },
- "requestId": "string"
}
}| certificate required | string Base64-encoded PEM certificate string |
{- "certificate": "string"
}{- "success": false,
- "error": {
- "code": "string",
- "message": "string",
- "details": { },
- "requestId": "string"
}
}Admin-only. Returns singleton controller deployment status.
{- "controllerUuid": "string",
- "namespace": "string",
- "name": "string",
- "image": "string",
- "containerId": "string",
- "state": "string",
- "desiredState": "string",
- "runtimeState": "string",
- "lastError": "string",
- "restartCount": 0,
- "generation": 0,
- "observedGeneration": 0,
- "lastTransitionAt": 0,
- "source": "controlplane",
- "type": "controlplane"
}Admin-only. Stops the controller container, removes volumes, and deletes the SQLite row.
{- "success": false,
- "error": {
- "code": "string",
- "message": "string",
- "details": { },
- "requestId": "string"
}
}Admin-only. Bounces the singleton controller container without deprovisioning. Allowed when the agent is provisioned.
| pull | boolean Default: false When true, recreate the container and pull the image. |
{- "controllerUuid": "string",
- "namespace": "string",
- "name": "string",
- "image": "string",
- "containerId": "string",
- "state": "string",
- "desiredState": "string",
- "runtimeState": "string",
- "lastError": "string",
- "restartCount": 0,
- "generation": 0,
- "observedGeneration": 0,
- "lastTransitionAt": 0,
- "source": "controlplane",
- "type": "controlplane",
- "status": "ok"
}Alias of GET /v1/system/controlplane. Delete is not supported on this path.
{- "controllerUuid": "string",
- "namespace": "string",
- "name": "string",
- "image": "string",
- "containerId": "string",
- "state": "string",
- "desiredState": "string",
- "runtimeState": "string",
- "lastError": "string",
- "restartCount": 0,
- "generation": 0,
- "observedGeneration": 0,
- "lastTransitionAt": 0,
- "source": "controlplane",
- "type": "controlplane"
}| tailLines | integer >= 1 |
| since | string <date-time> |
| until | string <date-time> |
{- "success": false,
- "error": {
- "code": "string",
- "message": "string",
- "details": { },
- "requestId": "string"
}
}| id required | string |
| tailLines | integer >= 1 |
| since | string <date-time> |
| until | string <date-time> |
| timestamps | boolean |
{- "entries": [
- {
- "ts": "2019-08-24T14:15:22Z",
- "stream": "stdout",
- "line": "string"
}
]
}{- "success": true,
- "data": {
- "items": [
- {
- "id": "string",
- "shortId": "string",
- "repository": "string",
- "tag": "string",
- "digest": "string",
- "createdAt": "string",
- "contentSizeBytes": 0,
- "contentSizeHuman": "string",
- "diskUsageBytes": 0,
- "diskUsageHuman": "string",
- "inUse": 0,
- "engine": "string"
}
], - "count": 0
}
}| image required | string |
| registryId | integer |
| platform | string |
| async | boolean When true, starts asynchronous pull operation and returns operationId. |
{- "image": "string",
- "registryId": 0,
- "platform": "string",
- "async": true
}{- "success": true,
- "data": {
- "status": "string",
- "image": "string",
- "resolvedImage": "string",
- "registryId": 0,
- "platform": "string",
- "engine": "string",
- "message": "string",
- "operationId": "string",
- "progress": 0
}
}| operationId required | string |
{- "success": true,
- "data": {
- "operationId": "string",
- "status": "pending",
- "progress": 0,
- "image": "string",
- "resolvedImage": "string",
- "registryId": 0,
- "platform": "string",
- "engine": "string",
- "error": "string",
- "startedAt": "string",
- "endedAt": "string"
}
}Accepts load work and returns operationId. Poll GET /v1/images:load/{operationId}.
| path required | string |
{- "path": "string"
}{- "success": false,
- "error": {
- "code": "string",
- "message": "string",
- "details": { },
- "requestId": "string"
}
}| mode | string Default: "dangling" Value: "dangling" |
{- "success": true,
- "data": {
- "status": "string",
- "mode": "dangling",
- "deleted": [
- "string"
], - "deletedCount": 0,
- "containersDeletedCount": 0,
- "volumesDeletedCount": 0,
- "imagesDeletedCount": 0,
- "spaceReclaimedBytes": 0,
- "spaceReclaimedHuman": "string",
- "engine": "string",
- "message": "string"
}
}| selector required | string |
{- "selector": "string"
}{- "success": true,
- "data": {
- "status": "string",
- "selector": "string",
- "removed": "string",
- "engine": "string",
- "message": "string"
}
}{- "controllerUrl": "string",
- "containerEngine": "string",
- "containerEngineUrl": "string",
- "pruningFrequency": 0,
- "watchdogEnabled": true,
- "networkInterface": "string",
- "diskLimitGiB": 0,
- "memoryLimitMiB": 0,
- "cpuLimitPercent": 0,
- "logLevel": "string",
- "statusFrequencySeconds": 0,
- "changeFrequencySeconds": 0,
- "secureMode": true,
- "devMode": true,
- "timezone": "string"
}object (ConfigView) | |||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
{- "set": {
- "controllerUrl": "string",
- "containerEngine": "string",
- "containerEngineUrl": "string",
- "pruningFrequency": 0,
- "watchdogEnabled": true,
- "networkInterface": "string",
- "diskLimitGiB": 0,
- "memoryLimitMiB": 0,
- "cpuLimitPercent": 0,
- "logLevel": "string",
- "statusFrequencySeconds": 0,
- "changeFrequencySeconds": 0,
- "secureMode": true,
- "devMode": true,
- "timezone": "string"
}
}{ }| profile required | string Enum: "dev" "prod" "def" "development" "production" "default" |
{- "profile": "dev"
}{- "success": false,
- "error": {
- "code": "string",
- "message": "string",
- "details": { },
- "requestId": "string"
}
}Upgrades to WSS control channel for the calling microservice identity. Server resolves microservice UUID from JWT claim iofog.org.microservice.uuid. Server may push binary opcodes: 0xC (config changed - fetch GET /v1/microservices/config), 0xF (agent resource limits changed).
{- "success": false,
- "error": {
- "code": "string",
- "message": "string",
- "details": { },
- "requestId": "string"
}
}| source | string Enum: "managed" "local" "controlplane" "all" Filter by workload source (default all). |
{- "items": [
- {
- "uuid": "string",
- "name": "string",
- "application": "string",
- "source": "string",
- "state": "string",
- "image": "string",
- "containerId": "string"
}
]
}Selector supports UUID, container ID prefix, or dotted application/name. Local microservices can be resolved as edgelet.
| id required | string |
{- "uuid": "string",
- "name": "string",
- "application": "string",
- "source": "string",
- "state": "string",
- "image": "string",
- "containerId": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "env": {
- "property1": "string",
- "property2": "string"
}, - "ports": [
- { }
], - "labels": {
- "property1": "string",
- "property2": "string"
}, - "healthStatus": "string",
- "errorMessage": "string"
}| id required | string |
| signal | string |
{- "signal": "string"
}{- "success": false,
- "error": {
- "code": "string",
- "message": "string",
- "details": { },
- "requestId": "string"
}
}| id required | string |
| command required | Array of strings |
| tty | boolean Default: true |
| stdin | boolean Default: true |
| stdout | boolean Default: true |
| stderr | boolean Default: true |
| cols | integer >= 1 |
| rows | integer >= 1 |
{- "command": [
- "string"
], - "tty": true,
- "stdin": true,
- "stdout": true,
- "stderr": true,
- "cols": 1,
- "rows": 1
}{- "sessionId": "string",
- "wsUrl": "string",
- "expiresAt": "2019-08-24T14:15:22Z"
}| manifest required | string <binary> YAML document; microservice deploys use LocalDeployMicroserviceManifest (spec.image) |
| sourceName | string |
| dryRun | boolean |
| async | string Optional boolean-like field used by deploy handlers that support operation polling. |
{- "success": true,
- "data": {
- "operationId": "dep_apply_4f3b2a9f",
- "status": "running",
- "startedAt": "2026-05-14T00:10:12Z",
- "kind": "Deployment",
- "name": "router",
- "image": "quay.io/skupper/skupper-router:latest"
}
}| operationId required | string |
{- "success": true,
- "data": {
- "operationId": "dep_apply_4f3b2a9f",
- "status": "running",
- "startedAt": "2026-05-14T00:10:12Z",
- "stage": "pulling"
}
}| manifest required | string <binary> YAML document; microservice deploys use LocalDeployMicroserviceManifest (spec.image) |
| sourceName | string |
| dryRun | boolean |
| async | string Optional boolean-like field used by deploy handlers that support operation polling. |
{ }| manifest required | string <binary> YAML document; microservice deploys use LocalDeployMicroserviceManifest (spec.image) |
| sourceName | string |
| dryRun | boolean |
| async | string Optional boolean-like field used by deploy handlers that support operation polling. |
{- "success": false,
- "error": {
- "code": "string",
- "message": "string",
- "details": { },
- "requestId": "string"
}
}| manifest required | string <binary> YAML document; microservice deploys use LocalDeployMicroserviceManifest (spec.image) |
| sourceName | string |
| dryRun | boolean |
| async | string Optional boolean-like field used by deploy handlers that support operation polling. |
{- "success": false,
- "error": {
- "code": "string",
- "message": "string",
- "details": { },
- "requestId": "string"
}
}Admin-only. Accepts the manifest and runs apply in the background. Poll GET /v1/deploy/controlplane:apply/{operationId}. At most one apply may be running; a second POST returns 409 APPLY_IN_PROGRESS.
| manifest required | string <binary> YAML document; microservice deploys use LocalDeployMicroserviceManifest (spec.image) |
| sourceName | string |
| dryRun | boolean |
| async | string Optional boolean-like field used by deploy handlers that support operation polling. |
{- "success": true,
- "data": {
- "operationId": "cp_apply_8a1c3d2e",
- "status": "running",
- "startedAt": "2026-05-14T00:10:12Z",
- "namespace": "datasance",
- "name": "controller",
- "image": "ghcr.io/datasance/controller:3.8.0"
}
}| operationId required | string |
{- "success": true,
- "data": {
- "operationId": "cp_apply_8a1c3d2e",
- "status": "running",
- "startedAt": "2026-05-14T00:10:12Z",
- "stage": "parsing",
- "namespace": "datasance",
- "name": "controller",
- "image": "ghcr.io/datasance/controller:3.8.0"
}
}| manifest required | string <binary> YAML document; microservice deploys use LocalDeployMicroserviceManifest (spec.image) |
| sourceName | string |
| dryRun | boolean |
| async | string Optional boolean-like field used by deploy handlers that support operation polling. |
{- "success": false,
- "error": {
- "code": "string",
- "message": "string",
- "details": { },
- "requestId": "string"
}
}| manifest required | string <binary> |
| dryRun | boolean Default: false |
| async | boolean Default: false |
{- "success": true,
- "data": {
- "operationId": "string",
- "status": "queued",
- "stage": "write_config",
- "kind": "RuntimeClass",
- "name": "string",
- "dryRun": true,
- "startedAt": "2019-08-24T14:15:22Z",
- "endedAt": "2019-08-24T14:15:22Z",
- "runtimeClass": {
- "name": "string",
- "handler": "string",
- "runtimeName": "string"
}, - "error": {
- "code": "INVALID_ARGUMENT",
- "message": "string",
- "details": { }
}
}
}| operationId required | string |
{- "success": true,
- "data": {
- "operationId": "string",
- "status": "queued",
- "stage": "write_config",
- "kind": "RuntimeClass",
- "name": "string",
- "dryRun": true,
- "startedAt": "2019-08-24T14:15:22Z",
- "endedAt": "2019-08-24T14:15:22Z",
- "runtimeClass": {
- "name": "string",
- "handler": "string",
- "runtimeName": "string"
}, - "error": {
- "code": "INVALID_ARGUMENT",
- "message": "string",
- "details": { }
}
}
}| manifest required | string <binary> YAML document; microservice deploys use LocalDeployMicroserviceManifest (spec.image) |
| sourceName | string |
| dryRun | boolean |
| async | string Optional boolean-like field used by deploy handlers that support operation polling. |
{- "success": false,
- "error": {
- "code": "string",
- "message": "string",
- "details": { },
- "requestId": "string"
}
}| name required | string |
| async | boolean Default: false |
{- "success": true,
- "data": {
- "operationId": "string",
- "status": "queued",
- "stage": "write_config",
- "kind": "RuntimeClassDelete",
- "name": "string",
- "startedAt": "2019-08-24T14:15:22Z",
- "endedAt": "2019-08-24T14:15:22Z",
- "runtimeClass": {
- "name": "string",
- "handler": "string",
- "runtimeName": "string"
}, - "error": {
- "code": "INVALID_ARGUMENT",
- "message": "string",
- "details": { }
}
}
}| operationId required | string |
{- "success": true,
- "data": {
- "operationId": "string",
- "status": "queued",
- "stage": "write_config",
- "kind": "RuntimeClassDelete",
- "name": "string",
- "startedAt": "2019-08-24T14:15:22Z",
- "endedAt": "2019-08-24T14:15:22Z",
- "runtimeClass": {
- "name": "string",
- "handler": "string",
- "runtimeName": "string"
}, - "error": {
- "code": "INVALID_ARGUMENT",
- "message": "string",
- "details": { }
}
}
}{- "subject": "string",
- "tokenType": "string",
- "issuer": "string",
- "audience": [
- "string"
], - "jti": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "claims": {
- "iofog.org": {
- "namespace": "datasance",
- "node": {
- "uuid": "c65a473a-c760-4625-968a-41940fd1c949",
- "publicKey": "NXIMkiTU6lYkyh-U64j2vzZKxiT6q9pI4w4qd-zfpSA"
}, - "microservice": {
- "application": "nats-test",
- "name": "box-2",
- "uuid": "e45331a6-ba0b-48ea-976b-0250aaab1a9a"
}, - "rbac": {
- "version": "v1",
- "rulesByGroup": {
- "edgelet.iofog.org/v1": [
- {
- "resources": [
- "config"
], - "verbs": [
- "get",
- "update"
]
}
], - "kuksa.val/v2": [
- {
- "resources": [
- "Vehicle.Speed"
], - "verbs": [
- "get",
- "update"
]
}
]
}
}
}
}
}| jti | string |
| subject | string |
{- "jti": "string",
- "subject": "string"
}{- "success": false,
- "error": {
- "code": "string",
- "message": "string",
- "details": { },
- "requestId": "string"
}
}