Download OpenAPI specification:Download
Kubernetes liveness probe. Returns 200 while the HTTP server is listening. Does not verify database, vault, or authentication readiness.
{- "status": "online",
- "timestamp": 0,
- "uptimeSec": 0,
- "versions": {
- "controller": "string",
- "ecnViewer": "string"
}
}Kubernetes readiness probe and Edgelet reconnect gate. Returns 200 when database, vault (if enabled), and auth subsystem checks pass. Returns 503 with Retry-After when dependencies are not ready.
{- "status": "online",
- "timestamp": 0,
- "uptimeSec": 0,
- "versions": {
- "controller": "string",
- "ecnViewer": "string"
}
}| key | string |
| value | string |
| condition | string |
[- {
- "key": "string",
- "value": "string",
- "condition": "string"
}
]{- "fogs": [
- {
- "lastActive": 0,
- "daemonOperatingDuration": 0,
- "daemonLastStart": 0,
- "repositoryCount": 0,
- "systemTime": 0,
- "lastStatusTime": 0,
- "lastCommandTime": 0,
- "logFileCount": 0,
- "uuid": "string",
- "name": "string",
- "location": "string",
- "gpsMode": "string",
- "latitude": 0,
- "longitude": 0,
- "description": "string",
- "daemonStatus": "string",
- "memoryUsage": 0,
- "diskUsage": 0,
- "cpuUsage": 0,
- "memoryViolation": true,
- "diskViolation": true,
- "cpuViolation": true,
- "systemAvailableDisk": 0,
- "systemAvailableMemory": 0,
- "systemTotalCpu": 0,
- "systemCpus": 0,
- "systemTotalMemory": 0,
- "systemTotalDisk": 0,
- "systemOs": "string",
- "systemOsVersion": "string",
- "systemKernelVersion": "string",
- "catalogItemStatus": "string",
- "repositoryStatus": "string",
- "ipAddress": "string",
- "ipAddressExternal": "string",
- "networkInterface": "string",
- "containerEngineUrl": "string",
- "containerEngine": "edgelet",
- "deploymentType": "string",
- "diskLimit": 0,
- "diskDirectory": "string",
- "memoryLimit": 0,
- "cpuLimit": 5,
- "logLimit": 0,
- "logDirectory": "string",
- "version": "string",
- "isReadyToUpgrade": true,
- "isReadyToRollback": true,
- "statusFrequency": 0,
- "changeFrequency": 0,
- "tunnel": "string",
- "watchdogEnabled": true,
- "pruningFrequency": 0,
- "availableDiskThreshold": 0,
- "logLevel": "string",
- "isSystem": true,
- "routerId": 0,
- "createAt": 0,
- "updatedAt": 0,
- "archId": 0,
- "arch": {
- "id": 0,
- "name": "string",
- "image": "string",
- "description": "string"
}, - "availableRuntimes": [
- "string"
], - "routerMode": "none",
- "messagingPort": 0,
- "upstreamRouters": [
- "string"
], - "natsMode": "none",
- "natsServerPort": 0,
- "natsLeafPort": 0,
- "natsClusterPort": 0,
- "natsMqttPort": 0,
- "natsHttpPort": 0,
- "jsStorageSize": "string",
- "jsMemoryStoreSize": "string",
- "upstreamNatsServers": [
- "string"
], - "runtimeClasses": "string",
- "availableCdiDevices": "string",
- "modelStatus": "string",
- "activeModels": 0,
- "modelLastUpdate": 0,
- "knowledgeStatus": "string",
- "activeKnowledge": 0,
- "knowledgeLastUpdate": 0,
- "platformStatus": {
- "phase": "Pending",
- "generation": 0,
- "observedGeneration": 0,
- "lastError": "string",
- "lastTransitionAt": "2019-08-24T14:15:22Z",
- "conditions": [
- {
- "type": "string",
- "status": "string",
- "reason": "string",
- "message": "string"
}
]
}
}
]
}Platform reconcile is asynchronous. Poll GET /iofog/{uuid} for platformStatus, or POST /iofog/{uuid}/reconcile to retry after failure.
| name | string |
| location | string |
| latitude | number |
| longitude | number |
| description | string |
| containerEngineUrl | string Default: "unix:///run/edgelet/contaienrd.sock" |
| containerEngine | string Default: "docker" Enum: "edgelet" "docker" "podman" |
| deploymentType | string Default: "native" |
| diskLimit | number Default: 50 |
| diskDirectory | string Default: "/var/lib/edgelet/" |
| memoryLimit | number <MB> Default: 4096 |
| cpuLimit | number <percent> [ 5 .. 400 ] Default: 80 |
| logLimit | number <GB> Default: 10 |
| logDirectory | string Default: "/var/log/iofog" |
| logFileCount | number Default: 10 |
| statusFrequency | number <seconds> Default: 10 |
| changeFrequency | number <seconds> Default: 20 |
| watchdogEnabled | boolean Default: true |
| archId | number [ 0 .. 4 ] |
| pruningFrequency | number |
| availableDiskThreshold | number |
| logLevel | string Default: "info" |
| isSystem | boolean |
| routerMode | string Default: "edge" Enum: "none" "edge" "interior" |
| messagingPort | number |
| interRouterPort | number |
| edgeRouterPort | number |
| natsMode | string Enum: "none" "leaf" "server" |
| natsServerPort | number |
| natsLeafPort | number |
| natsClusterPort | number |
| natsMqttPort | number |
| natsHttpPort | number |
| jsStorageSize | string JetStream max file store (e.g. 10g). Units m, mb, g, gb, t, tb. |
| jsMemoryStoreSize | string JetStream max memory store (e.g. 1g). Units m, mb, g, gb, t, tb. |
| upstreamNatsServers | Array of strings |
| host | string |
| tags | Array of strings |
| upstreamRouters | Array of strings |
| networkRouter | string |
{- "name": "string",
- "location": "string",
- "latitude": 0,
- "longitude": 0,
- "description": "string",
- "containerEngineUrl": "unix:///run/edgelet/contaienrd.sock",
- "containerEngine": "edgelet",
- "deploymentType": "native",
- "diskLimit": 50,
- "diskDirectory": "/var/lib/edgelet/",
- "memoryLimit": 4096,
- "cpuLimit": 80,
- "logLimit": 10,
- "logDirectory": "/var/log/iofog",
- "logFileCount": 10,
- "statusFrequency": 10,
- "changeFrequency": 20,
- "watchdogEnabled": true,
- "archId": 4,
- "pruningFrequency": 0,
- "availableDiskThreshold": 0,
- "logLevel": "info",
- "isSystem": true,
- "routerMode": "none",
- "messagingPort": 0,
- "interRouterPort": 0,
- "edgeRouterPort": 0,
- "natsMode": "none",
- "natsServerPort": 0,
- "natsLeafPort": 0,
- "natsClusterPort": 0,
- "natsMqttPort": 0,
- "natsHttpPort": 0,
- "jsStorageSize": "string",
- "jsMemoryStoreSize": "string",
- "upstreamNatsServers": [
- "string"
], - "host": "string",
- "tags": [
- "string"
], - "upstreamRouters": [
- "string"
], - "networkRouter": "string"
}{- "id": "string"
}Platform reconcile is asynchronous. Poll GET /iofog/{uuid} for platformStatus, or POST /iofog/{uuid}/reconcile to retry after failure.
| uuid required | string ioFog node id |
| name | string |
| location | string |
| latitude | number |
| longitude | number |
| description | string |
| containerEngineUrl | string Default: "unix:///run/edgelet/contaienrd.sock" |
| containerEngine | string Default: "docker" Enum: "edgelet" "docker" "podman" |
| deploymentType | string Default: "native" |
| diskLimit | number Default: 50 |
| diskDirectory | string Default: "/var/lib/edgelet/" |
| memoryLimit | number <MB> Default: 4096 |
| cpuLimit | number <percent> [ 5 .. 400 ] Default: 80 |
| logLimit | number <GB> Default: 10 |
| logDirectory | string Default: "/var/log/iofog" |
| logFileCount | number Default: 10 |
| statusFrequency | number <seconds> Default: 10 |
| changeFrequency | number <seconds> Default: 20 |
| watchdogEnabled | boolean Default: true |
| archId | number [ 0 .. 4 ] |
| pruningFrequency | number |
| availableDiskThreshold | number |
| logLevel | string Default: "info" |
| isSystem | boolean |
| routerMode | string Default: "edge" Enum: "none" "edge" "interior" |
| messagingPort | number |
| interRouterPort | number |
| edgeRouterPort | number |
| natsMode | string Enum: "none" "leaf" "server" |
| natsServerPort | number |
| natsLeafPort | number |
| natsClusterPort | number |
| natsMqttPort | number |
| natsHttpPort | number |
| jsStorageSize | string JetStream max file store (e.g. 10g). Units m, mb, g, gb, t, tb. |
| jsMemoryStoreSize | string JetStream max memory store (e.g. 1g). Units m, mb, g, gb, t, tb. |
| upstreamNatsServers | Array of strings |
| host | string |
| tags | Array of strings |
| upstreamRouters | Array of strings |
| networkRouter | string |
{- "name": "string",
- "location": "string",
- "latitude": 0,
- "longitude": 0,
- "description": "string",
- "containerEngineUrl": "unix:///run/edgelet/contaienrd.sock",
- "containerEngine": "edgelet",
- "deploymentType": "native",
- "diskLimit": 50,
- "diskDirectory": "/var/lib/edgelet/",
- "memoryLimit": 4096,
- "cpuLimit": 80,
- "logLimit": 10,
- "logDirectory": "/var/log/iofog",
- "logFileCount": 10,
- "statusFrequency": 10,
- "changeFrequency": 20,
- "watchdogEnabled": true,
- "archId": 4,
- "pruningFrequency": 0,
- "availableDiskThreshold": 0,
- "logLevel": "info",
- "isSystem": true,
- "routerMode": "none",
- "messagingPort": 0,
- "interRouterPort": 0,
- "edgeRouterPort": 0,
- "natsMode": "none",
- "natsServerPort": 0,
- "natsLeafPort": 0,
- "natsClusterPort": 0,
- "natsMqttPort": 0,
- "natsHttpPort": 0,
- "jsStorageSize": "string",
- "jsMemoryStoreSize": "string",
- "upstreamNatsServers": [
- "string"
], - "host": "string",
- "tags": [
- "string"
], - "upstreamRouters": [
- "string"
], - "networkRouter": "string"
}| uuid required | string ioFog node id |
{- "lastActive": 0,
- "daemonOperatingDuration": 0,
- "daemonLastStart": 0,
- "repositoryCount": 0,
- "systemTime": 0,
- "lastStatusTime": 0,
- "lastCommandTime": 0,
- "logFileCount": 0,
- "uuid": "string",
- "name": "string",
- "location": "string",
- "gpsMode": "string",
- "latitude": 0,
- "longitude": 0,
- "description": "string",
- "daemonStatus": "string",
- "memoryUsage": 0,
- "diskUsage": 0,
- "cpuUsage": 0,
- "memoryViolation": true,
- "diskViolation": true,
- "cpuViolation": true,
- "systemAvailableDisk": 0,
- "systemAvailableMemory": 0,
- "systemTotalCpu": 0,
- "systemCpus": 0,
- "systemTotalMemory": 0,
- "systemTotalDisk": 0,
- "systemOs": "string",
- "systemOsVersion": "string",
- "systemKernelVersion": "string",
- "catalogItemStatus": "string",
- "repositoryStatus": "string",
- "ipAddress": "string",
- "ipAddressExternal": "string",
- "networkInterface": "string",
- "containerEngineUrl": "string",
- "containerEngine": "edgelet",
- "deploymentType": "string",
- "diskLimit": 0,
- "diskDirectory": "string",
- "memoryLimit": 0,
- "cpuLimit": 5,
- "logLimit": 0,
- "logDirectory": "string",
- "version": "string",
- "isReadyToUpgrade": true,
- "isReadyToRollback": true,
- "statusFrequency": 0,
- "changeFrequency": 0,
- "tunnel": "string",
- "watchdogEnabled": true,
- "pruningFrequency": 0,
- "availableDiskThreshold": 0,
- "logLevel": "string",
- "isSystem": true,
- "routerId": 0,
- "createAt": 0,
- "updatedAt": 0,
- "archId": 0,
- "arch": {
- "id": 0,
- "name": "string",
- "image": "string",
- "description": "string"
}, - "availableRuntimes": [
- "string"
], - "routerMode": "none",
- "messagingPort": 0,
- "upstreamRouters": [
- "string"
], - "natsMode": "none",
- "natsServerPort": 0,
- "natsLeafPort": 0,
- "natsClusterPort": 0,
- "natsMqttPort": 0,
- "natsHttpPort": 0,
- "jsStorageSize": "string",
- "jsMemoryStoreSize": "string",
- "upstreamNatsServers": [
- "string"
], - "runtimeClasses": "string",
- "availableCdiDevices": "string",
- "modelStatus": "string",
- "activeModels": 0,
- "modelLastUpdate": 0,
- "knowledgeStatus": "string",
- "activeKnowledge": 0,
- "knowledgeLastUpdate": 0,
- "platformStatus": {
- "phase": "Pending",
- "generation": 0,
- "observedGeneration": 0,
- "lastError": "string",
- "lastTransitionAt": "2019-08-24T14:15:22Z",
- "conditions": [
- {
- "type": "string",
- "status": "string",
- "reason": "string",
- "message": "string"
}
]
}
}| uuid required | string ioFog node id |
| versionCommand required | string Enum: "upgrade" "rollback" change version command |
| semver | string^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?... Target semver for upgrade or rollback |
{- "semver": "string"
}{- "applications": [
- {
- "id": 0,
- "name": "string",
- "description": "string",
- "isActivated": true,
- "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "microservices": [
- {
- "uuid": "string",
- "name": "string",
- "application": "string",
- "flowId": 0,
- "config": "string",
- "annotations": "string",
- "catalogItemId": 0,
- "registryId": 0,
- "hostNetworkMode": true,
- "isPrivileged": true,
- "logSize": 0,
- "rebuild": true,
- "isActivated": true,
- "schedule": 100,
- "images": [
- {
- "containerImage": "string",
- "archId": 0
}
], - "iofogUuid": "string",
- "env": [
- {
- "key": "string",
- "value": "string",
- "valueFromSecret": "string",
- "valueFromConfigMap": "string"
}
], - "extraHosts": [
- {
- "name": "string",
- "address": "string",
- "value": "string"
}
], - "runAsUser": "string",
- "runAsGroup": "string",
- "readOnlyRootFilesystem": true,
- "platform": "string",
- "runtime": "string",
- "pidMode": "string",
- "ipcMode": "string",
- "cpuSetCpus": "string",
- "memoryLimit": 0,
- "cpus": 0,
- "memoryReservation": 0,
- "memorySwap": 0,
- "shmSize": 0,
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "string"
], - "commands": [
- "string"
], - "entrypoint": [
- "string"
], - "workingDir": "string",
- "volumeMappings": [
- {
- "id": 0,
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "type": "bind",
- "scope": "private"
}
], - "ports": [
- {
- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}
], - "healthCheck": {
- "test": [
- "string"
], - "interval": 0,
- "timeout": 0,
- "startPeriod": 0,
- "startInterval": 0,
- "retries": 0
}, - "natsAccess": true,
- "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "status": {
- "status": "string",
- "operatingDuration": 0,
- "startTime": 0,
- "cpuUsage": 0,
- "memoryUsage": 0,
- "containerId": "string",
- "podId": "string",
- "errorMessage": "string",
- "lastError": "string",
- "lastErrorAt": 0,
- "restartCount": 0
}, - "execStatus": { },
- "models": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "knowledge": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "sysctls": { },
- "ulimits": { },
- "devices": [
- {
- "hostPath": "string",
- "containerPath": "string",
- "permissions": "string"
}
], - "tmpfs": [
- {
- "containerPath": "string",
- "size": 0,
- "mode": "string"
}
], - "serviceAccount": {
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
}
}
]
}
]
}| name required | string |
| description | string |
| isActivated | boolean |
| isSystem | boolean |
Array of objects (NewMicroserviceRequest) Nested microservice objects use the same schema as POST /microservices. The application field on each item is set from the parent application name. | |
object (NatsConfigObject) |
{- "name": "string",
- "description": "string",
- "isActivated": true,
- "isSystem": true,
- "microservices": [
- {
- "name": "string",
- "config": "string",
- "annotations": "string",
- "catalogItemId": 0,
- "registryId": 0,
- "images": [
- {
- "containerImage": "string",
- "archId": 0
}
], - "application": "string",
- "iofogUuid": "string",
- "agentName": "string",
- "hostNetworkMode": true,
- "isPrivileged": true,
- "logSize": 0,
- "rebuild": true,
- "schedule": 100,
- "pidMode": "string",
- "ipcMode": "string",
- "volumeMappings": [
- {
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "scope": "private"
}
], - "ports": [
- {
- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}
], - "env": [
- {
- "key": "string",
- "value": "string",
- "valueFromSecret": "string",
- "valueFromConfigMap": "string"
}
], - "extraHosts": [
- {
- "name": "string",
- "address": "string",
- "value": "string"
}
], - "runAsUser": "string",
- "runAsGroup": "string",
- "readOnlyRootFilesystem": true,
- "platform": "string",
- "runtime": "string",
- "cpuSetCpus": "string",
- "memoryLimit": 0,
- "cpus": 0,
- "memoryReservation": 1,
- "memorySwap": 0,
- "shmSize": 1,
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "string"
], - "commands": [
- "string"
], - "entrypoint": [
- "string"
], - "workingDir": "string",
- "sysctls": { },
- "ulimits": { },
- "devices": [
- {
- "hostPath": "string",
- "containerPath": "string",
- "permissions": "string"
}
], - "tmpfs": [
- {
- "containerPath": "string",
- "size": 0,
- "mode": "string"
}
], - "healthCheck": {
- "test": [
- "string"
], - "interval": 0,
- "timeout": 0,
- "startPeriod": 0,
- "startInterval": 0,
- "retries": 0
}, - "models": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "knowledge": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "template": {
- "name": "string",
- "variables": { }
}, - "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "natsEnabled": true,
- "serviceAccount": {
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
}
}
], - "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}
}{- "id": 0,
- "name": "string"
}{- "applications": [
- {
- "id": 0,
- "name": "string",
- "description": "string",
- "isActivated": true,
- "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "microservices": [
- {
- "uuid": "string",
- "name": "string",
- "application": "string",
- "flowId": 0,
- "config": "string",
- "annotations": "string",
- "catalogItemId": 0,
- "registryId": 0,
- "hostNetworkMode": true,
- "isPrivileged": true,
- "logSize": 0,
- "rebuild": true,
- "isActivated": true,
- "schedule": 100,
- "images": [
- {
- "containerImage": "string",
- "archId": 0
}
], - "iofogUuid": "string",
- "env": [
- {
- "key": "string",
- "value": "string",
- "valueFromSecret": "string",
- "valueFromConfigMap": "string"
}
], - "extraHosts": [
- {
- "name": "string",
- "address": "string",
- "value": "string"
}
], - "runAsUser": "string",
- "runAsGroup": "string",
- "readOnlyRootFilesystem": true,
- "platform": "string",
- "runtime": "string",
- "pidMode": "string",
- "ipcMode": "string",
- "cpuSetCpus": "string",
- "memoryLimit": 0,
- "cpus": 0,
- "memoryReservation": 0,
- "memorySwap": 0,
- "shmSize": 0,
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "string"
], - "commands": [
- "string"
], - "entrypoint": [
- "string"
], - "workingDir": "string",
- "volumeMappings": [
- {
- "id": 0,
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "type": "bind",
- "scope": "private"
}
], - "ports": [
- {
- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}
], - "healthCheck": {
- "test": [
- "string"
], - "interval": 0,
- "timeout": 0,
- "startPeriod": 0,
- "startInterval": 0,
- "retries": 0
}, - "natsAccess": true,
- "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "status": {
- "status": "string",
- "operatingDuration": 0,
- "startTime": 0,
- "cpuUsage": 0,
- "memoryUsage": 0,
- "containerId": "string",
- "podId": "string",
- "errorMessage": "string",
- "lastError": "string",
- "lastErrorAt": 0,
- "restartCount": 0
}, - "execStatus": { },
- "models": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "knowledge": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "sysctls": { },
- "ulimits": { },
- "devices": [
- {
- "hostPath": "string",
- "containerPath": "string",
- "permissions": "string"
}
], - "tmpfs": [
- {
- "containerPath": "string",
- "size": 0,
- "mode": "string"
}
], - "serviceAccount": {
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
}
}
]
}
]
}| name required | string Application name |
{- "id": 0,
- "name": "string",
- "description": "string",
- "isActivated": true,
- "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "microservices": [
- {
- "uuid": "string",
- "name": "string",
- "application": "string",
- "flowId": 0,
- "config": "string",
- "annotations": "string",
- "catalogItemId": 0,
- "registryId": 0,
- "hostNetworkMode": true,
- "isPrivileged": true,
- "logSize": 0,
- "rebuild": true,
- "isActivated": true,
- "schedule": 100,
- "images": [
- {
- "containerImage": "string",
- "archId": 0
}
], - "iofogUuid": "string",
- "env": [
- {
- "key": "string",
- "value": "string",
- "valueFromSecret": "string",
- "valueFromConfigMap": "string"
}
], - "extraHosts": [
- {
- "name": "string",
- "address": "string",
- "value": "string"
}
], - "runAsUser": "string",
- "runAsGroup": "string",
- "readOnlyRootFilesystem": true,
- "platform": "string",
- "runtime": "string",
- "pidMode": "string",
- "ipcMode": "string",
- "cpuSetCpus": "string",
- "memoryLimit": 0,
- "cpus": 0,
- "memoryReservation": 0,
- "memorySwap": 0,
- "shmSize": 0,
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "string"
], - "commands": [
- "string"
], - "entrypoint": [
- "string"
], - "workingDir": "string",
- "volumeMappings": [
- {
- "id": 0,
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "type": "bind",
- "scope": "private"
}
], - "ports": [
- {
- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}
], - "healthCheck": {
- "test": [
- "string"
], - "interval": 0,
- "timeout": 0,
- "startPeriod": 0,
- "startInterval": 0,
- "retries": 0
}, - "natsAccess": true,
- "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "status": {
- "status": "string",
- "operatingDuration": 0,
- "startTime": 0,
- "cpuUsage": 0,
- "memoryUsage": 0,
- "containerId": "string",
- "podId": "string",
- "errorMessage": "string",
- "lastError": "string",
- "lastErrorAt": 0,
- "restartCount": 0
}, - "execStatus": { },
- "models": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "knowledge": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "sysctls": { },
- "ulimits": { },
- "devices": [
- {
- "hostPath": "string",
- "containerPath": "string",
- "permissions": "string"
}
], - "tmpfs": [
- {
- "containerPath": "string",
- "size": 0,
- "mode": "string"
}
], - "serviceAccount": {
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
}
}
]
}| name required | string Application name |
| name | string Application resource name is immutable; must match path name if provided. |
| description | string |
| isActivated | boolean |
| isSystem | boolean |
Array of objects (NewMicroserviceRequest) | |
object (NatsConfigObject) |
{- "name": "string",
- "description": "string",
- "isActivated": true,
- "isSystem": true,
- "microservices": [
- {
- "name": "string",
- "config": "string",
- "annotations": "string",
- "catalogItemId": 0,
- "registryId": 0,
- "images": [
- {
- "containerImage": "string",
- "archId": 0
}
], - "application": "string",
- "iofogUuid": "string",
- "agentName": "string",
- "hostNetworkMode": true,
- "isPrivileged": true,
- "logSize": 0,
- "rebuild": true,
- "schedule": 100,
- "pidMode": "string",
- "ipcMode": "string",
- "volumeMappings": [
- {
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "scope": "private"
}
], - "ports": [
- {
- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}
], - "env": [
- {
- "key": "string",
- "value": "string",
- "valueFromSecret": "string",
- "valueFromConfigMap": "string"
}
], - "extraHosts": [
- {
- "name": "string",
- "address": "string",
- "value": "string"
}
], - "runAsUser": "string",
- "runAsGroup": "string",
- "readOnlyRootFilesystem": true,
- "platform": "string",
- "runtime": "string",
- "cpuSetCpus": "string",
- "memoryLimit": 0,
- "cpus": 0,
- "memoryReservation": 1,
- "memorySwap": 0,
- "shmSize": 1,
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "string"
], - "commands": [
- "string"
], - "entrypoint": [
- "string"
], - "workingDir": "string",
- "sysctls": { },
- "ulimits": { },
- "devices": [
- {
- "hostPath": "string",
- "containerPath": "string",
- "permissions": "string"
}
], - "tmpfs": [
- {
- "containerPath": "string",
- "size": 0,
- "mode": "string"
}
], - "healthCheck": {
- "test": [
- "string"
], - "interval": 0,
- "timeout": 0,
- "startPeriod": 0,
- "startInterval": 0,
- "retries": 0
}, - "models": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "knowledge": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "template": {
- "name": "string",
- "variables": { }
}, - "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "natsEnabled": true,
- "serviceAccount": {
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
}
}
], - "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}
}| name required | string Application name |
| name | string Application resource name is immutable; must match path name if provided. |
| description | string |
| isActivated | boolean |
| isSystem | boolean |
object (NatsConfigObject) |
{- "name": "string",
- "description": "string",
- "isActivated": true,
- "isSystem": true,
- "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}
}| name required | string Application name |
{- "id": 0,
- "name": "string",
- "description": "string",
- "isActivated": true,
- "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "microservices": [
- {
- "uuid": "string",
- "name": "string",
- "application": "string",
- "flowId": 0,
- "config": "string",
- "annotations": "string",
- "catalogItemId": 0,
- "registryId": 0,
- "hostNetworkMode": true,
- "isPrivileged": true,
- "logSize": 0,
- "rebuild": true,
- "isActivated": true,
- "schedule": 100,
- "images": [
- {
- "containerImage": "string",
- "archId": 0
}
], - "iofogUuid": "string",
- "env": [
- {
- "key": "string",
- "value": "string",
- "valueFromSecret": "string",
- "valueFromConfigMap": "string"
}
], - "extraHosts": [
- {
- "name": "string",
- "address": "string",
- "value": "string"
}
], - "runAsUser": "string",
- "runAsGroup": "string",
- "readOnlyRootFilesystem": true,
- "platform": "string",
- "runtime": "string",
- "pidMode": "string",
- "ipcMode": "string",
- "cpuSetCpus": "string",
- "memoryLimit": 0,
- "cpus": 0,
- "memoryReservation": 0,
- "memorySwap": 0,
- "shmSize": 0,
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "string"
], - "commands": [
- "string"
], - "entrypoint": [
- "string"
], - "workingDir": "string",
- "volumeMappings": [
- {
- "id": 0,
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "type": "bind",
- "scope": "private"
}
], - "ports": [
- {
- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}
], - "healthCheck": {
- "test": [
- "string"
], - "interval": 0,
- "timeout": 0,
- "startPeriod": 0,
- "startInterval": 0,
- "retries": 0
}, - "natsAccess": true,
- "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "status": {
- "status": "string",
- "operatingDuration": 0,
- "startTime": 0,
- "cpuUsage": 0,
- "memoryUsage": 0,
- "containerId": "string",
- "podId": "string",
- "errorMessage": "string",
- "lastError": "string",
- "lastErrorAt": 0,
- "restartCount": 0
}, - "execStatus": { },
- "models": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "knowledge": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "sysctls": { },
- "ulimits": { },
- "devices": [
- {
- "hostPath": "string",
- "containerPath": "string",
- "permissions": "string"
}
], - "tmpfs": [
- {
- "containerPath": "string",
- "size": 0,
- "mode": "string"
}
], - "serviceAccount": {
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
}
}
]
}{- "applicationTemplates": [
- {
- "id": 0,
- "name": "string",
- "description": "string",
- "application": {
- "microservices": [
- {
- "name": "string",
- "config": "string",
- "annotations": "string",
- "catalogItemId": 0,
- "registryId": 0,
- "images": [
- {
- "containerImage": "string",
- "archId": 0
}
], - "application": "string",
- "iofogUuid": "string",
- "agentName": "string",
- "hostNetworkMode": true,
- "isPrivileged": true,
- "logSize": 0,
- "rebuild": true,
- "schedule": 100,
- "pidMode": "string",
- "ipcMode": "string",
- "volumeMappings": [
- {
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "scope": "private"
}
], - "ports": [
- {
- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}
], - "env": [
- {
- "key": "string",
- "value": "string",
- "valueFromSecret": "string",
- "valueFromConfigMap": "string"
}
], - "extraHosts": [
- {
- "name": "string",
- "address": "string",
- "value": "string"
}
], - "runAsUser": "string",
- "runAsGroup": "string",
- "readOnlyRootFilesystem": true,
- "platform": "string",
- "runtime": "string",
- "cpuSetCpus": "string",
- "memoryLimit": 0,
- "cpus": 0,
- "memoryReservation": 1,
- "memorySwap": 0,
- "shmSize": 1,
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "string"
], - "commands": [
- "string"
], - "entrypoint": [
- "string"
], - "workingDir": "string",
- "sysctls": { },
- "ulimits": { },
- "devices": [
- {
- "hostPath": "string",
- "containerPath": "string",
- "permissions": "string"
}
], - "tmpfs": [
- {
- "containerPath": "string",
- "size": 0,
- "mode": "string"
}
], - "healthCheck": {
- "test": [
- "string"
], - "interval": 0,
- "timeout": 0,
- "startPeriod": 0,
- "startInterval": 0,
- "retries": 0
}, - "models": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "knowledge": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "template": {
- "name": "string",
- "variables": { }
}, - "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "natsEnabled": true,
- "serviceAccount": {
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
}
}
], - "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}
}
}
]
}| name required | string Application template name |
{- "id": 0,
- "name": "string",
- "description": "string",
- "application": {
- "microservices": [
- {
- "name": "string",
- "config": "string",
- "annotations": "string",
- "catalogItemId": 0,
- "registryId": 0,
- "images": [
- {
- "containerImage": "string",
- "archId": 0
}
], - "application": "string",
- "iofogUuid": "string",
- "agentName": "string",
- "hostNetworkMode": true,
- "isPrivileged": true,
- "logSize": 0,
- "rebuild": true,
- "schedule": 100,
- "pidMode": "string",
- "ipcMode": "string",
- "volumeMappings": [
- {
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "scope": "private"
}
], - "ports": [
- {
- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}
], - "env": [
- {
- "key": "string",
- "value": "string",
- "valueFromSecret": "string",
- "valueFromConfigMap": "string"
}
], - "extraHosts": [
- {
- "name": "string",
- "address": "string",
- "value": "string"
}
], - "runAsUser": "string",
- "runAsGroup": "string",
- "readOnlyRootFilesystem": true,
- "platform": "string",
- "runtime": "string",
- "cpuSetCpus": "string",
- "memoryLimit": 0,
- "cpus": 0,
- "memoryReservation": 1,
- "memorySwap": 0,
- "shmSize": 1,
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "string"
], - "commands": [
- "string"
], - "entrypoint": [
- "string"
], - "workingDir": "string",
- "sysctls": { },
- "ulimits": { },
- "devices": [
- {
- "hostPath": "string",
- "containerPath": "string",
- "permissions": "string"
}
], - "tmpfs": [
- {
- "containerPath": "string",
- "size": 0,
- "mode": "string"
}
], - "healthCheck": {
- "test": [
- "string"
], - "interval": 0,
- "timeout": 0,
- "startPeriod": 0,
- "startInterval": 0,
- "retries": 0
}, - "models": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "knowledge": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "template": {
- "name": "string",
- "variables": { }
}, - "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "natsEnabled": true,
- "serviceAccount": {
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
}
}
], - "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}
}
}{- "catalogItems": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "category": "string",
- "publisher": "string",
- "diskRequired": 0,
- "ramRequired": 0,
- "picture": "string",
- "isPublic": true,
- "registryId": 0,
- "inputType": {
- "infoType": "string",
- "infoFormat": "string"
}, - "outputType": {
- "infoType": "string",
- "infoFormat": "string"
}, - "configExample": "string",
- "images": [
- {
- "containerImage": "string",
- "archId": 1
}
]
}
]
}Microservice Catalog Item Info
| name | string |
| description | string |
| category | string |
Array of objects (MicroserviceContainerImages) | |
| publisher | string |
| diskRequired | number |
| ramRequired | number |
| picture | string |
| isPublic | boolean |
| registryId | number |
object (InfoTypeResponse) | |
object (InfoTypeResponse) | |
| configExample | string |
{- "name": "string",
- "description": "string",
- "category": "string",
- "images": [
- {
- "containerImage": "string",
- "archId": 1
}
], - "publisher": "string",
- "diskRequired": 0,
- "ramRequired": 0,
- "picture": "string",
- "isPublic": true,
- "registryId": 0,
- "inputType": {
- "infoType": "string",
- "infoFormat": "string"
}, - "outputType": {
- "infoType": "string",
- "infoFormat": "string"
}, - "configExample": "string"
}{- "id": "string"
}| id required | string Catalog Item Id |
{- "id": "string",
- "name": "string",
- "description": "string",
- "category": "string",
- "publisher": "string",
- "diskRequired": 0,
- "ramRequired": 0,
- "picture": "string",
- "isPublic": true,
- "registryId": 0,
- "inputType": {
- "infoType": "string",
- "infoFormat": "string"
}, - "outputType": {
- "infoType": "string",
- "infoFormat": "string"
}, - "configExample": "string",
- "images": [
- {
- "containerImage": "string",
- "archId": 1
}
]
}| id required | string Catalog Item Id |
Microservice Catalog Item Info
| name | string |
| description | string |
| category | string |
Array of objects (MicroserviceContainerImages) | |
| publisher | string |
| diskRequired | number |
| ramRequired | number |
| picture | string |
| isPublic | boolean |
| registryId | number |
object (InfoTypeResponse) | |
object (InfoTypeResponse) | |
| configExample | string |
{- "name": "string",
- "description": "string",
- "category": "string",
- "images": [
- {
- "containerImage": "string",
- "archId": 1
}
], - "publisher": "string",
- "diskRequired": 0,
- "ramRequired": 0,
- "picture": "string",
- "isPublic": true,
- "registryId": 0,
- "inputType": {
- "infoType": "string",
- "infoFormat": "string"
}, - "outputType": {
- "infoType": "string",
- "infoFormat": "string"
}, - "configExample": "string"
}| url | string |
| isPublic | boolean |
| username | string |
| password | string |
string | |
| type | string Default: "oci" Enum: "oci" "hf" |
| ca | string Optional base64-encoded PEM CA bundle |
| insecure | boolean Default: false |
{- "url": "string",
- "isPublic": true,
- "username": "string",
- "password": "string",
- "email": "string",
- "type": "oci",
- "ca": "string",
- "insecure": false
}| id required | string Registry id |
| url | string |
| isPublic | boolean |
| username | string |
| password | string |
string | |
| type | string Default: "oci" Enum: "oci" "hf" |
| ca | string Optional base64-encoded PEM CA bundle |
| insecure | boolean Default: false |
{- "url": "string",
- "isPublic": true,
- "username": "string",
- "password": "string",
- "email": "string",
- "type": "oci",
- "ca": "string",
- "insecure": false
}| application | string Application name |
{- "microservices": [
- {
- "uuid": "string",
- "name": "string",
- "application": "string",
- "flowId": 0,
- "config": "string",
- "annotations": "string",
- "catalogItemId": 0,
- "registryId": 0,
- "hostNetworkMode": true,
- "isPrivileged": true,
- "logSize": 0,
- "rebuild": true,
- "isActivated": true,
- "schedule": 100,
- "images": [
- {
- "containerImage": "string",
- "archId": 0
}
], - "iofogUuid": "string",
- "env": [
- {
- "key": "string",
- "value": "string",
- "valueFromSecret": "string",
- "valueFromConfigMap": "string"
}
], - "extraHosts": [
- {
- "name": "string",
- "address": "string",
- "value": "string"
}
], - "runAsUser": "string",
- "runAsGroup": "string",
- "readOnlyRootFilesystem": true,
- "platform": "string",
- "runtime": "string",
- "pidMode": "string",
- "ipcMode": "string",
- "cpuSetCpus": "string",
- "memoryLimit": 0,
- "cpus": 0,
- "memoryReservation": 0,
- "memorySwap": 0,
- "shmSize": 0,
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "string"
], - "commands": [
- "string"
], - "entrypoint": [
- "string"
], - "workingDir": "string",
- "volumeMappings": [
- {
- "id": 0,
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "type": "bind",
- "scope": "private"
}
], - "ports": [
- {
- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}
], - "healthCheck": {
- "test": [
- "string"
], - "interval": 0,
- "timeout": 0,
- "startPeriod": 0,
- "startInterval": 0,
- "retries": 0
}, - "natsAccess": true,
- "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "status": {
- "status": "string",
- "operatingDuration": 0,
- "startTime": 0,
- "cpuUsage": 0,
- "memoryUsage": 0,
- "containerId": "string",
- "podId": "string",
- "errorMessage": "string",
- "lastError": "string",
- "lastErrorAt": 0,
- "restartCount": 0
}, - "execStatus": { },
- "models": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "knowledge": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "sysctls": { },
- "ulimits": { },
- "devices": [
- {
- "hostPath": "string",
- "containerPath": "string",
- "permissions": "string"
}
], - "tmpfs": [
- {
- "containerPath": "string",
- "size": 0,
- "mode": "string"
}
], - "serviceAccount": {
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
}
}
]
}Optional template overlay: send template.name plus optional template.variables. Request fields name, application, and iofogUuid/agentName win over the template. Catalog models.items[].name are auto-linked to the target fog. Non-empty runtime must exist as a RuntimeClass row and be in the fog availableRuntimes list. registryId must resolve to type oci.
| name required | string |
| config | string |
| annotations | string |
| catalogItemId | integer |
| registryId | integer |
Array of objects [ 1 .. 4 ] items | |
| application | string |
| iofogUuid | string |
| agentName | string |
| hostNetworkMode | boolean |
| isPrivileged | boolean |
| logSize | integer >= 0 |
| rebuild | boolean |
| schedule | integer [ 0 .. 100 ] |
| pidMode | string |
| ipcMode | string |
Array of objects (VolumeMapping) | |
Array of objects (PortMappingsRequest) | |
Array of objects (MicroserviceEnvVar) | |
Array of objects (MicroserviceExtraHost) | |
| runAsUser | string |
| runAsGroup | string |
| readOnlyRootFilesystem | boolean |
| platform | string |
| runtime | string |
| cpuSetCpus | string |
| memoryLimit | integer |
| cpus | number |
| memoryReservation | integer >= 1 |
| memorySwap | integer |
| shmSize | integer >= 1 |
| cdiDevices | Array of strings |
| capAdd | Array of strings |
| capDrop | Array of strings |
| cmd | Array of strings Alias of commands. commands wins when both are present. |
| commands | Array of strings |
| entrypoint | Array of strings |
| workingDir | string |
| sysctls | object |
| ulimits | object |
Array of objects (ContainerDevice) | |
Array of objects (ContainerTmpfs) | |
object (MicroserviceHealthCheck) | |
object (MicroserviceCatalog) | |
object (KnowledgeCatalog) | |
object (MicroserviceTemplateRef) | |
object (NatsConfigObject) | |
| natsEnabled | boolean YAML alias for natsConfig.natsAccess |
object |
{- "name": "string",
- "config": "string",
- "annotations": "string",
- "catalogItemId": 0,
- "registryId": 0,
- "images": [
- {
- "containerImage": "string",
- "archId": 0
}
], - "application": "string",
- "iofogUuid": "string",
- "agentName": "string",
- "hostNetworkMode": true,
- "isPrivileged": true,
- "logSize": 0,
- "rebuild": true,
- "schedule": 100,
- "pidMode": "string",
- "ipcMode": "string",
- "volumeMappings": [
- {
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "scope": "private"
}
], - "ports": [
- {
- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}
], - "env": [
- {
- "key": "string",
- "value": "string",
- "valueFromSecret": "string",
- "valueFromConfigMap": "string"
}
], - "extraHosts": [
- {
- "name": "string",
- "address": "string",
- "value": "string"
}
], - "runAsUser": "string",
- "runAsGroup": "string",
- "readOnlyRootFilesystem": true,
- "platform": "string",
- "runtime": "string",
- "cpuSetCpus": "string",
- "memoryLimit": 0,
- "cpus": 0,
- "memoryReservation": 1,
- "memorySwap": 0,
- "shmSize": 1,
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "string"
], - "commands": [
- "string"
], - "entrypoint": [
- "string"
], - "workingDir": "string",
- "sysctls": { },
- "ulimits": { },
- "devices": [
- {
- "hostPath": "string",
- "containerPath": "string",
- "permissions": "string"
}
], - "tmpfs": [
- {
- "containerPath": "string",
- "size": 0,
- "mode": "string"
}
], - "healthCheck": {
- "test": [
- "string"
], - "interval": 0,
- "timeout": 0,
- "startPeriod": 0,
- "startInterval": 0,
- "retries": 0
}, - "models": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "knowledge": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "template": {
- "name": "string",
- "variables": { }
}, - "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "natsEnabled": true,
- "serviceAccount": {
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
}
}{- "uuid": "string",
- "name": "string"
}YAML kind Microservice. Optional spec.template applies the same overlay as JSON POST /microservices (template.name plus optional template.variables). Request fields metadata.name, spec.application, and spec.agent.name win over the template.
| microservice | string <binary> |
{- "uuid": "string"
}| uuid required | string Microservice Uuid |
{- "uuid": "string",
- "name": "string",
- "application": "string",
- "flowId": 0,
- "config": "string",
- "annotations": "string",
- "catalogItemId": 0,
- "registryId": 0,
- "hostNetworkMode": true,
- "isPrivileged": true,
- "logSize": 0,
- "rebuild": true,
- "isActivated": true,
- "schedule": 100,
- "images": [
- {
- "containerImage": "string",
- "archId": 0
}
], - "iofogUuid": "string",
- "env": [
- {
- "key": "string",
- "value": "string",
- "valueFromSecret": "string",
- "valueFromConfigMap": "string"
}
], - "extraHosts": [
- {
- "name": "string",
- "address": "string",
- "value": "string"
}
], - "runAsUser": "string",
- "runAsGroup": "string",
- "readOnlyRootFilesystem": true,
- "platform": "string",
- "runtime": "string",
- "pidMode": "string",
- "ipcMode": "string",
- "cpuSetCpus": "string",
- "memoryLimit": 0,
- "cpus": 0,
- "memoryReservation": 0,
- "memorySwap": 0,
- "shmSize": 0,
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "string"
], - "commands": [
- "string"
], - "entrypoint": [
- "string"
], - "workingDir": "string",
- "volumeMappings": [
- {
- "id": 0,
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "type": "bind",
- "scope": "private"
}
], - "ports": [
- {
- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}
], - "healthCheck": {
- "test": [
- "string"
], - "interval": 0,
- "timeout": 0,
- "startPeriod": 0,
- "startInterval": 0,
- "retries": 0
}, - "natsAccess": true,
- "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "status": {
- "status": "string",
- "operatingDuration": 0,
- "startTime": 0,
- "cpuUsage": 0,
- "memoryUsage": 0,
- "containerId": "string",
- "podId": "string",
- "errorMessage": "string",
- "lastError": "string",
- "lastErrorAt": 0,
- "restartCount": 0
}, - "execStatus": { },
- "models": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "knowledge": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "sysctls": { },
- "ulimits": { },
- "devices": [
- {
- "hostPath": "string",
- "containerPath": "string",
- "permissions": "string"
}
], - "tmpfs": [
- {
- "containerPath": "string",
- "size": 0,
- "mode": "string"
}
], - "serviceAccount": {
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
}
}| uuid required | string Microservice Uuid |
{- "uuid": "string",
- "name": "string",
- "application": "string",
- "flowId": 0,
- "config": "string",
- "annotations": "string",
- "catalogItemId": 0,
- "registryId": 0,
- "hostNetworkMode": true,
- "isPrivileged": true,
- "logSize": 0,
- "rebuild": true,
- "isActivated": true,
- "schedule": 100,
- "images": [
- {
- "containerImage": "string",
- "archId": 0
}
], - "iofogUuid": "string",
- "env": [
- {
- "key": "string",
- "value": "string",
- "valueFromSecret": "string",
- "valueFromConfigMap": "string"
}
], - "extraHosts": [
- {
- "name": "string",
- "address": "string",
- "value": "string"
}
], - "runAsUser": "string",
- "runAsGroup": "string",
- "readOnlyRootFilesystem": true,
- "platform": "string",
- "runtime": "string",
- "pidMode": "string",
- "ipcMode": "string",
- "cpuSetCpus": "string",
- "memoryLimit": 0,
- "cpus": 0,
- "memoryReservation": 0,
- "memorySwap": 0,
- "shmSize": 0,
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "string"
], - "commands": [
- "string"
], - "entrypoint": [
- "string"
], - "workingDir": "string",
- "volumeMappings": [
- {
- "id": 0,
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "type": "bind",
- "scope": "private"
}
], - "ports": [
- {
- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}
], - "healthCheck": {
- "test": [
- "string"
], - "interval": 0,
- "timeout": 0,
- "startPeriod": 0,
- "startInterval": 0,
- "retries": 0
}, - "natsAccess": true,
- "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "status": {
- "status": "string",
- "operatingDuration": 0,
- "startTime": 0,
- "cpuUsage": 0,
- "memoryUsage": 0,
- "containerId": "string",
- "podId": "string",
- "errorMessage": "string",
- "lastError": "string",
- "lastErrorAt": 0,
- "restartCount": 0
}, - "execStatus": { },
- "models": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "knowledge": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "sysctls": { },
- "ulimits": { },
- "devices": [
- {
- "hostPath": "string",
- "containerPath": "string",
- "permissions": "string"
}
], - "tmpfs": [
- {
- "containerPath": "string",
- "size": 0,
- "mode": "string"
}
], - "serviceAccount": {
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
}
}| uuid required | string Microservice Uuid |
information about port mapping
| internal required | number |
| external required | number |
| protocol | string Enum: "tcp" "udp" |
{- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}{- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}| uuid required | string Microservice Uuid |
information about port mapping
| internal required | number |
| external required | number |
| protocol | string Enum: "tcp" "udp" |
{- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}{- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}| uuid required | string Microservice Uuid |
information about volume mapping
| hostDestination | string |
| containerDestination | string |
| accessMode | string |
| scope | string Default: "private" Enum: "private" "shared" Meaningful only when type is volume. Omit, null, or empty stores private. Unknown values on type volume return 400. Other mapping types always store private. Runtime accepts any case and stores lowercase. |
{- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "scope": "private"
}{- "id": 0
}| uuid required | string Microservice Uuid |
{- "volumeMappings": [
- {
- "id": 0,
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "type": "bind",
- "scope": "private"
}
]
}| uuid required | string Microservice Uuid |
information about volume mapping
| hostDestination | string |
| containerDestination | string |
| accessMode | string |
| scope | string Default: "private" Enum: "private" "shared" Meaningful only when type is volume. Omit, null, or empty stores private. Unknown values on type volume return 400. Other mapping types always store private. Runtime accepts any case and stores lowercase. |
{- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "scope": "private"
}{- "id": 0
}Catalog-only update. Sets the microserviceModels change flag only (does not set microserviceList). Rebuilds the workload when the catalog goes empty to non-empty or non-empty to empty, or when bindPath or permissions change. Adding or removing items with the same bindPath and permissions does not rebuild when the catalog is already non-empty. Catalog items reference managed model names only.
| uuid required | string Microservice Uuid |
| bindPath | string Required when items is non-empty. A non-empty bindPath requires at least one item. Absolute container path. |
| permissions | string Default: "ro" Enum: "ro" "rw" |
Array of objects (MicroserviceCatalogItem) |
{- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}User microservices only. Catalog-only update. Sets the microserviceKnowledge change flag only (does not set microserviceList). Rebuilds the workload when the catalog goes empty to non-empty or non-empty to empty, or when bindPath or permissions change. Adding or removing items with the same bindPath and permissions does not rebuild when the catalog is already non-empty. Catalog items reference managed Knowledge names only. System and controller microservices are rejected.
| uuid required | string Microservice Uuid |
| bindPath | string Required when items is non-empty. A non-empty bindPath requires at least one item. Absolute container path. Projection is {bindPath}/{name}/. |
| permissions | string Default: "ro" Enum: "ro" "rw" |
Array of objects (KnowledgeCatalogItem) |
{- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}{- "operatorJwt": "string",
- "operatorPublicKey": "string",
- "operatorSeed": "string",
- "systemAccountJwt": "string",
- "systemAccountPublicKey": "string",
- "sysUserCredsBase64": "string"
}| host required | string |
| serverPort | integer |
| clusterPort | integer |
| leafPort | integer |
| mqttPort | integer |
| httpPort | integer |
| jsStorageSize | string JetStream max file store (e.g. 10g, 1t). Units m, mb, g, gb, t, tb. |
| jsMemoryStoreSize | string JetStream max memory store (e.g. 1g). Units m, mb, g, gb, t, tb. |
{- "host": "string",
- "serverPort": 0,
- "clusterPort": 0,
- "leafPort": 0,
- "mqttPort": 0,
- "httpPort": 0,
- "jsStorageSize": "string",
- "jsMemoryStoreSize": "string"
}{- "host": "string",
- "serverPort": 0,
- "clusterPort": 0,
- "leafPort": 0,
- "mqttPort": 0,
- "httpPort": 0,
- "jsStorageSize": "string",
- "jsMemoryStoreSize": "string"
}{- "users": [
- {
- "id": 0,
- "name": "string",
- "publicKey": "string",
- "jwt": "string",
- "isBearer": true,
- "accountId": 0,
- "accountName": "string",
- "applicationId": 0,
- "applicationName": "string",
- "microserviceUuid": "838401cc-9537-4e6a-86a4-e6aefcb775d1"
}
]
}| appName required | string |
| natsRule | string Account rule name (defaults to default-account if omitted) |
{- "natsRule": "string"
}{- "id": 0,
- "name": "string",
- "publicKey": "string",
- "jwt": "string",
- "isSystem": true,
- "applicationId": 0
}| appName required | string |
| name required | string |
| expiresIn | string^[0-9]+[hdm]$ |
| natsRule | string |
{- "name": "string",
- "expiresIn": "7d",
- "natsRule": "string"
}{- "id": 0,
- "name": "string",
- "publicKey": "string",
- "jwt": "string",
- "isBearer": true
}Returns base64-encoded .creds file content for the user.
Path {appName} is an application name for app-linked accounts, or a NATS account name for platform/system accounts (SYS, leaf accounts, controller).
| appName required | string Application name or NATS account name (e.g. |
| userName required | string |
{- "credsBase64": "string"
}| appName required | string |
| name required | string |
| expiresIn | string^[0-9]+[hdm]$ |
| natsRule | string |
{- "name": "string",
- "expiresIn": "7d",
- "natsRule": "string"
}{- "id": 0,
- "name": "string",
- "publicKey": "string",
- "jwt": "string",
- "isBearer": true
}{- "rules": [
- {
- "name": "string",
- "description": "string",
- "infoUrl": "string",
- "maxConnections": -1,
- "maxLeafNodeConnections": -1,
- "maxData": -1,
- "maxExports": -1,
- "maxImports": -1,
- "maxMsgPayload": -1,
- "maxSubscriptions": -1,
- "exportsAllowWildcards": true,
- "disallowBearer": true,
- "responsePermissions": {
- "maxMsgs": 0,
- "expires": 0
}, - "respMax": 0,
- "respTtl": 0,
- "imports": [
- {
- "name": "string",
- "subject": "string",
- "type": "stream",
- "account": "string",
- "token": "string",
- "to": "string",
- "local_subject": "string",
- "share": true
}
], - "exports": [
- {
- "name": "string",
- "subject": "string",
- "type": "stream",
- "description": "string",
- "info_url": "string",
- "token_req": true,
- "response_type": "Singleton",
- "account_token_position": 0
}
], - "memStorage": -1,
- "diskStorage": -1,
- "streams": -1,
- "consumer": -1,
- "maxAckPending": -1,
- "memMaxStreamBytes": -1,
- "diskMaxStreamBytes": -1,
- "maxBytesRequired": true,
- "tieredLimits": { },
- "pubAllow": [
- "string"
], - "pubDeny": [
- "string"
], - "subAllow": [
- "string"
], - "subDeny": [
- "string"
]
}
]
}| name | string [ 1 .. 255 ] characters |
| description | string |
| infoUrl | string |
| maxConnections | integer >= -1 |
| maxLeafNodeConnections | integer >= -1 |
| maxData | integer >= -1 |
| maxExports | integer >= -1 |
| maxImports | integer >= -1 |
| maxMsgPayload | integer >= -1 |
| maxSubscriptions | integer >= -1 |
| exportsAllowWildcards | boolean |
| disallowBearer | boolean |
object | |
| respMax | integer >= 0 |
| respTtl | integer >= 0 |
Array of objects Stream/service imports (NATS account policy) | |
Array of objects Stream/service exports (NATS account policy) | |
| memStorage | integer >= -1 JetStream memory storage limit in bytes |
| diskStorage | integer >= -1 JetStream disk storage limit in bytes |
| streams | integer >= -1 JetStream max streams |
| consumer | integer >= -1 JetStream max consumers |
| maxAckPending | integer >= -1 |
| memMaxStreamBytes | integer >= -1 |
| diskMaxStreamBytes | integer >= -1 |
| maxBytesRequired | boolean |
object | |
| pubAllow | Array of strings |
| pubDeny | Array of strings |
| subAllow | Array of strings |
| subDeny | Array of strings |
{- "name": "string",
- "description": "string",
- "infoUrl": "string",
- "maxConnections": -1,
- "maxLeafNodeConnections": -1,
- "maxData": -1,
- "maxExports": -1,
- "maxImports": -1,
- "maxMsgPayload": -1,
- "maxSubscriptions": -1,
- "exportsAllowWildcards": true,
- "disallowBearer": true,
- "responsePermissions": {
- "maxMsgs": 0,
- "expires": 0
}, - "respMax": 0,
- "respTtl": 0,
- "imports": [
- {
- "name": "string",
- "subject": "string",
- "type": "stream",
- "account": "string",
- "token": "string",
- "to": "string",
- "local_subject": "string",
- "share": true
}
], - "exports": [
- {
- "name": "string",
- "subject": "string",
- "type": "stream",
- "description": "string",
- "info_url": "string",
- "token_req": true,
- "response_type": "Singleton",
- "account_token_position": 0
}
], - "memStorage": -1,
- "diskStorage": -1,
- "streams": -1,
- "consumer": -1,
- "maxAckPending": -1,
- "memMaxStreamBytes": -1,
- "diskMaxStreamBytes": -1,
- "maxBytesRequired": true,
- "tieredLimits": { },
- "pubAllow": [
- "string"
], - "pubDeny": [
- "string"
], - "subAllow": [
- "string"
], - "subDeny": [
- "string"
]
}{- "name": "string",
- "description": "string",
- "infoUrl": "string",
- "maxConnections": -1,
- "maxLeafNodeConnections": -1,
- "maxData": -1,
- "maxExports": -1,
- "maxImports": -1,
- "maxMsgPayload": -1,
- "maxSubscriptions": -1,
- "exportsAllowWildcards": true,
- "disallowBearer": true,
- "responsePermissions": {
- "maxMsgs": 0,
- "expires": 0
}, - "respMax": 0,
- "respTtl": 0,
- "imports": [
- {
- "name": "string",
- "subject": "string",
- "type": "stream",
- "account": "string",
- "token": "string",
- "to": "string",
- "local_subject": "string",
- "share": true
}
], - "exports": [
- {
- "name": "string",
- "subject": "string",
- "type": "stream",
- "description": "string",
- "info_url": "string",
- "token_req": true,
- "response_type": "Singleton",
- "account_token_position": 0
}
], - "memStorage": -1,
- "diskStorage": -1,
- "streams": -1,
- "consumer": -1,
- "maxAckPending": -1,
- "memMaxStreamBytes": -1,
- "diskMaxStreamBytes": -1,
- "maxBytesRequired": true,
- "tieredLimits": { },
- "pubAllow": [
- "string"
], - "pubDeny": [
- "string"
], - "subAllow": [
- "string"
], - "subDeny": [
- "string"
]
}Returns updated rule immediately and schedules downstream account JWT reissue/reconciliation in background.
| ruleName required | string |
| name | string [ 1 .. 255 ] characters |
| description | string |
| infoUrl | string |
| maxConnections | integer >= -1 |
| maxLeafNodeConnections | integer >= -1 |
| maxData | integer >= -1 |
| maxExports | integer >= -1 |
| maxImports | integer >= -1 |
| maxMsgPayload | integer >= -1 |
| maxSubscriptions | integer >= -1 |
| exportsAllowWildcards | boolean |
| disallowBearer | boolean |
object | |
| respMax | integer >= 0 |
| respTtl | integer >= 0 |
Array of objects Stream/service imports (NATS account policy) | |
Array of objects Stream/service exports (NATS account policy) | |
| memStorage | integer >= -1 JetStream memory storage limit in bytes |
| diskStorage | integer >= -1 JetStream disk storage limit in bytes |
| streams | integer >= -1 JetStream max streams |
| consumer | integer >= -1 JetStream max consumers |
| maxAckPending | integer >= -1 |
| memMaxStreamBytes | integer >= -1 |
| diskMaxStreamBytes | integer >= -1 |
| maxBytesRequired | boolean |
object | |
| pubAllow | Array of strings |
| pubDeny | Array of strings |
| subAllow | Array of strings |
| subDeny | Array of strings |
{- "name": "string",
- "description": "string",
- "infoUrl": "string",
- "maxConnections": -1,
- "maxLeafNodeConnections": -1,
- "maxData": -1,
- "maxExports": -1,
- "maxImports": -1,
- "maxMsgPayload": -1,
- "maxSubscriptions": -1,
- "exportsAllowWildcards": true,
- "disallowBearer": true,
- "responsePermissions": {
- "maxMsgs": 0,
- "expires": 0
}, - "respMax": 0,
- "respTtl": 0,
- "imports": [
- {
- "name": "string",
- "subject": "string",
- "type": "stream",
- "account": "string",
- "token": "string",
- "to": "string",
- "local_subject": "string",
- "share": true
}
], - "exports": [
- {
- "name": "string",
- "subject": "string",
- "type": "stream",
- "description": "string",
- "info_url": "string",
- "token_req": true,
- "response_type": "Singleton",
- "account_token_position": 0
}
], - "memStorage": -1,
- "diskStorage": -1,
- "streams": -1,
- "consumer": -1,
- "maxAckPending": -1,
- "memMaxStreamBytes": -1,
- "diskMaxStreamBytes": -1,
- "maxBytesRequired": true,
- "tieredLimits": { },
- "pubAllow": [
- "string"
], - "pubDeny": [
- "string"
], - "subAllow": [
- "string"
], - "subDeny": [
- "string"
]
}{- "rules": [
- {
- "name": "string",
- "description": "string",
- "maxSubscriptions": -1,
- "maxPayload": -1,
- "maxData": -1,
- "bearerToken": true,
- "proxyRequired": true,
- "allowedConnectionTypes": [
- "STANDARD"
], - "src": [
- "string"
], - "times": [
- {
- "start": "string",
- "end": "string"
}
], - "timesLocation": "string",
- "respMax": 0,
- "respTtl": 0,
- "pubAllow": [
- "string"
], - "pubDeny": [
- "string"
], - "subAllow": [
- "string"
], - "subDeny": [
- "string"
], - "tags": [
- "string"
]
}
]
}| name | string [ 1 .. 255 ] characters |
| description | string |
| maxSubscriptions | integer >= -1 |
| maxPayload | integer >= -1 |
| maxData | integer >= -1 |
| bearerToken | boolean |
| proxyRequired | boolean |
| allowedConnectionTypes | Array of strings Items Enum: "STANDARD" "WEBSOCKET" "LEAFNODE" "LEAFNODE_WS" "MQTT" "MQTT_WS" "IN_PROCESS" |
| src | Array of strings Allowed client connection source IP/CIDR |
Array of objects Allowed time windows for connections | |
| timesLocation | string |
| respMax | integer >= 0 |
| respTtl | integer >= 0 |
| pubAllow | Array of strings |
| pubDeny | Array of strings |
| subAllow | Array of strings |
| subDeny | Array of strings |
| tags | Array of strings |
{- "name": "string",
- "description": "string",
- "maxSubscriptions": -1,
- "maxPayload": -1,
- "maxData": -1,
- "bearerToken": true,
- "proxyRequired": true,
- "allowedConnectionTypes": [
- "STANDARD"
], - "src": [
- "string"
], - "times": [
- {
- "start": "string",
- "end": "string"
}
], - "timesLocation": "string",
- "respMax": 0,
- "respTtl": 0,
- "pubAllow": [
- "string"
], - "pubDeny": [
- "string"
], - "subAllow": [
- "string"
], - "subDeny": [
- "string"
], - "tags": [
- "string"
]
}{- "name": "string",
- "description": "string",
- "maxSubscriptions": -1,
- "maxPayload": -1,
- "maxData": -1,
- "bearerToken": true,
- "proxyRequired": true,
- "allowedConnectionTypes": [
- "STANDARD"
], - "src": [
- "string"
], - "times": [
- {
- "start": "string",
- "end": "string"
}
], - "timesLocation": "string",
- "respMax": 0,
- "respTtl": 0,
- "pubAllow": [
- "string"
], - "pubDeny": [
- "string"
], - "subAllow": [
- "string"
], - "subDeny": [
- "string"
], - "tags": [
- "string"
]
}Returns updated rule immediately and schedules bound user JWT+creds reissue/reconciliation in background.
| ruleName required | string |
| name | string [ 1 .. 255 ] characters |
| description | string |
| maxSubscriptions | integer >= -1 |
| maxPayload | integer >= -1 |
| maxData | integer >= -1 |
| bearerToken | boolean |
| proxyRequired | boolean |
| allowedConnectionTypes | Array of strings Items Enum: "STANDARD" "WEBSOCKET" "LEAFNODE" "LEAFNODE_WS" "MQTT" "MQTT_WS" "IN_PROCESS" |
| src | Array of strings Allowed client connection source IP/CIDR |
Array of objects Allowed time windows for connections | |
| timesLocation | string |
| respMax | integer >= 0 |
| respTtl | integer >= 0 |
| pubAllow | Array of strings |
| pubDeny | Array of strings |
| subAllow | Array of strings |
| subDeny | Array of strings |
| tags | Array of strings |
{- "name": "string",
- "description": "string",
- "maxSubscriptions": -1,
- "maxPayload": -1,
- "maxData": -1,
- "bearerToken": true,
- "proxyRequired": true,
- "allowedConnectionTypes": [
- "STANDARD"
], - "src": [
- "string"
], - "times": [
- {
- "start": "string",
- "end": "string"
}
], - "timesLocation": "string",
- "respMax": 0,
- "respTtl": 0,
- "pubAllow": [
- "string"
], - "pubDeny": [
- "string"
], - "subAllow": [
- "string"
], - "subDeny": [
- "string"
], - "tags": [
- "string"
]
}| type required | number [ 0 .. 4 ] Architecture code
|
| engine | string Enum: "edgelet" "docker" "podman" Container engine selected at provision time |
| key required | string provisioning key |
{- "type": 4,
- "engine": "edgelet",
- "key": "string"
}{- "id": "string",
- "token": "string"
}{- "networkInterface": "string",
- "containerEngineUrl": "string",
- "containerEngine": "edgelet",
- "deploymentType": "string",
- "diskLimit": 0,
- "diskDirectory": "string",
- "memoryLimit": 0,
- "cpuLimit": 5,
- "logLimit": 0,
- "logDirectory": "string",
- "logFileCount": 0,
- "statusFrequency": 0,
- "changeFrequency": 0,
- "watchdogEnabled": true,
- "latitude": 0,
- "longitude": 0,
- "logLevel": "string",
- "availableDiskThreshold": 0,
- "pruningFrequency": 0,
- "routerHost": "string",
- "routerPort": 0
}| networkInterface | string |
| containerEngineUrl | string |
| containerEngine | string Enum: "edgelet" "docker" "podman" |
| deploymentType | string |
| diskLimit | number |
| diskDirectory | string |
| memoryLimit | number |
| cpuLimit | number [ 5 .. 400 ] |
| logLimit | number |
| logDirectory | string |
| logFileCount | number |
| statusFrequency | number |
| changeFrequency | number |
| watchdogEnabled | boolean |
| latitude | number |
| longitude | number |
| gpsMode | string |
| logLevel | string |
| availableDiskThreshold | number |
| pruningFrequency | number |
{- "networkInterface": "string",
- "containerEngineUrl": "string",
- "containerEngine": "edgelet",
- "deploymentType": "string",
- "diskLimit": 0,
- "diskDirectory": "string",
- "memoryLimit": 0,
- "cpuLimit": 5,
- "logLimit": 0,
- "logDirectory": "string",
- "logFileCount": 0,
- "statusFrequency": 0,
- "changeFrequency": 0,
- "watchdogEnabled": true,
- "latitude": 0,
- "longitude": 0,
- "gpsMode": "string",
- "logLevel": "string",
- "availableDiskThreshold": 0,
- "pruningFrequency": 0
}{- "config": true,
- "version": true,
- "reboot": true,
- "deleteNode": true,
- "microserviceList": true,
- "microserviceConfig": true,
- "registries": true,
- "tunnel": true,
- "prune": true,
- "routerChanged": true,
- "volumeMounts": true,
- "execSessions": true,
- "microserviceLogs": true,
- "fogLogs": true,
- "models": true,
- "runtimeClasses": true,
- "microserviceModels": true,
- "knowledge": true,
- "microserviceKnowledge": true
}| daemonStatus | string |
| warningMessage | string |
| daemonOperatingDuration | number |
| daemonLastStart | number |
| memoryUsage | number |
| diskUsage | number Edgelet data-directory usage in GiB, not host filesystem total. |
| cpuUsage | number |
| memoryViolation | boolean |
| diskViolation | boolean |
| cpuViolation | boolean |
| systemAvailableDisk | integer Free space on the agent diskDirectory filesystem in bytes. |
| systemAvailableMemory | integer Host RAM available in bytes. |
| systemTotalCpu | number Host CPU busy percentage 0–100, not logical core count. |
| systemCpus | integer Host logical CPU count. |
| systemTotalMemory | integer Host RAM capacity in bytes. |
| systemTotalDisk | integer diskDirectory filesystem size in bytes. |
| systemOs | string Host OS family (linux, darwin, windows, …). |
| systemOsVersion | string Human-oriented distro or release; empty string when unknown. |
| systemKernelVersion | string Linux kernel release; empty string on non-Linux. |
| securityStatus | string |
| securityViolationInfo | string |
| microserviceStatus | string JSON array of per-microservice observed status objects. Items may include additive lastError, lastErrorAt, and restartCount. Unknown keys must not fail this PUT. |
| repositoryCount | number |
| repositoryStatus | string |
| systemTime | number |
| lastStatusTime | number Agent-supplied timestamp in milliseconds. Controller liveness uses the PUT receipt time instead of this value. |
| ipAddress | string |
| ipAddressExternal | string |
| lastCommandTime | number |
| availableRuntimes | Array of strings |
| runtimeAgentPhase | string |
| controlPlaneQuiesced | boolean |
| tunnelStatus | string |
| version | string |
| isReadyToUpgrade | boolean |
| isReadyToRollback | boolean |
| activeVolumeMounts | number |
| volumeMountLastUpdate | number |
| gpsStatus | string |
Array of objects Applied RuntimeClasses only, sorted by name. Docker/podman send []. | |
| availableCdiDevices | Array of strings Unique sorted fully-qualified CDI names (nvidia.com/gpu=0). |
| modelStatus | string JSON string of local and managed model status items. |
| activeModels | integer Count of managed fleet models only. |
| modelLastUpdate | integer Unix milliseconds; 0 when the managed list is empty. |
| knowledgeStatus | string JSON string of local and managed Knowledge status items. Managed rows include uuid; local rows omit uuid. source is local or managed. |
| activeKnowledge | integer Count of managed fleet Knowledge only, not the knowledgeStatus row count. |
| knowledgeLastUpdate | integer Unix milliseconds; 0 when the managed list is empty. |
{- "daemonStatus": "string",
- "warningMessage": "string",
- "daemonOperatingDuration": 0,
- "daemonLastStart": 0,
- "memoryUsage": 0,
- "diskUsage": 0,
- "cpuUsage": 0,
- "memoryViolation": true,
- "diskViolation": true,
- "cpuViolation": true,
- "systemAvailableDisk": 0,
- "systemAvailableMemory": 0,
- "systemTotalCpu": 0,
- "systemCpus": 0,
- "systemTotalMemory": 0,
- "systemTotalDisk": 0,
- "systemOs": "string",
- "systemOsVersion": "string",
- "systemKernelVersion": "string",
- "securityStatus": "string",
- "securityViolationInfo": "string",
- "microserviceStatus": "string",
- "repositoryCount": 0,
- "repositoryStatus": "string",
- "systemTime": 0,
- "lastStatusTime": 0,
- "ipAddress": "string",
- "ipAddressExternal": "string",
- "lastCommandTime": 0,
- "availableRuntimes": [
- "string"
], - "runtimeAgentPhase": "string",
- "controlPlaneQuiesced": true,
- "tunnelStatus": "string",
- "version": "string",
- "isReadyToUpgrade": true,
- "isReadyToRollback": true,
- "activeVolumeMounts": 0,
- "volumeMountLastUpdate": 0,
- "gpsStatus": "string",
- "runtimeClasses": [
- {
- "name": "string",
- "handler": "string",
- "source": "local"
}
], - "availableCdiDevices": [
- "string"
], - "modelStatus": "string",
- "activeModels": 0,
- "modelLastUpdate": 0,
- "knowledgeStatus": "string",
- "activeKnowledge": 0,
- "knowledgeLastUpdate": 0
}Agent-only endpoint (fog token). Edgelet registers the controller workload on system fogs. Not available via user RBAC - do not add to rbac-resources.yaml user resources.
| uuid required | string Edgelet-generated stable uuid for the controller microservice |
| name | string Value: "controller" Must be controller (default controller if omitted) |
required | Array of objects (MicroserviceContainerImage) [ 1 .. 4 ] items |
| registryId required | integer |
| config | string |
| annotations | string |
| hostNetworkMode | boolean |
| isPrivileged | boolean |
| logSize | integer >= 0 |
| runtime | string |
| pidMode | string |
| ipcMode | string |
| runAsUser | string |
| platform | string |
| cpuSetCpus | string |
| memoryLimit | integer |
Array of objects (PortMappingsResponse) | |
Array of objects (VolumeMappingRequest) | |
Array of objects | |
Array of objects (AgentEnvRequest) | |
| cmd | Array of strings |
| cdiDevices | Array of strings |
| capAdd | Array of strings |
| capDrop | Array of strings |
object | |
| schedule | integer Value: 0 Optional; controller workload schedule is always 0 (server-enforced) |
{- "uuid": "string",
- "name": "controller",
- "images": [
- {
- "containerImage": "string",
- "archId": 1
}
], - "registryId": 0,
- "config": "string",
- "annotations": "string",
- "hostNetworkMode": true,
- "isPrivileged": true,
- "logSize": 0,
- "runtime": "string",
- "pidMode": "string",
- "ipcMode": "string",
- "runAsUser": "string",
- "platform": "string",
- "cpuSetCpus": "string",
- "memoryLimit": 0,
- "ports": [
- {
- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}
], - "volumeMappings": [
- {
- "id": 0,
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "type": "bind",
- "scope": "private"
}
], - "extraHosts": [
- {
- "name": "string",
- "address": "string"
}
], - "env": [
- {
- "key": "string",
- "value": "string"
}
], - "cmd": [
- "string"
], - "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "healthCheck": {
- "test": [
- "string"
], - "interval": 0,
- "timeout": 0,
- "startPeriod": 0,
- "startInterval": 0,
- "retries": 0
}, - "schedule": 0
}{- "uuid": "string"
}{- "microservices": [
- {
- "uuid": "string",
- "imageId": "string",
- "config": "string",
- "annotations": "string",
- "rebuild": true,
- "hostNetworkMode": true,
- "isPrivileged": true,
- "logSize": 0,
- "registryId": 0,
- "portMappings": [
- {
- "portInternal": 80,
- "portExternal": 80
}
], - "volumeMappings": [
- {
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "scope": "private"
}
], - "delete": true,
- "deleteWithCleanUp": true,
- "env": [
- {
- "key": "string",
- "value": "string"
}
], - "runAsUser": "string",
- "platform": "string",
- "runtime": "string",
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "string"
], - "commands": [
- "string"
], - "entrypoint": [
- "string"
], - "runAsGroup": "string",
- "readOnlyRootFilesystem": true,
- "workingDir": "string",
- "cpus": 0,
- "memoryReservation": 0,
- "memorySwap": 0,
- "shmSize": 0,
- "sysctls": { },
- "ulimits": { },
- "devices": [
- {
- "hostPath": "string",
- "containerPath": "string",
- "permissions": "string"
}
], - "tmpfs": [
- {
- "containerPath": "string",
- "size": 0,
- "mode": "string"
}
], - "models": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "knowledge": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "idConsumer": true,
- "isRouter": true,
- "isNats": true,
- "isController": true
}
]
}| microserviceUuid required | string Microservice UUID |
{- "uuid": "string",
- "imageId": "string",
- "config": "string",
- "annotations": "string",
- "rebuild": true,
- "hostNetworkMode": true,
- "isPrivileged": true,
- "logSize": 0,
- "registryId": 0,
- "portMappings": [
- {
- "portInternal": 80,
- "portExternal": 80
}
], - "volumeMappings": [
- {
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "scope": "private"
}
], - "delete": true,
- "deleteWithCleanUp": true,
- "env": [
- {
- "key": "string",
- "value": "string"
}
], - "runAsUser": "string",
- "platform": "string",
- "runtime": "string",
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "string"
], - "commands": [
- "string"
], - "entrypoint": [
- "string"
], - "runAsGroup": "string",
- "readOnlyRootFilesystem": true,
- "workingDir": "string",
- "cpus": 0,
- "memoryReservation": 0,
- "memorySwap": 0,
- "shmSize": 0,
- "sysctls": { },
- "ulimits": { },
- "devices": [
- {
- "hostPath": "string",
- "containerPath": "string",
- "permissions": "string"
}
], - "tmpfs": [
- {
- "containerPath": "string",
- "size": 0,
- "mode": "string"
}
], - "models": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "knowledge": {
- "bindPath": "string",
- "permissions": "ro",
- "items": [
- {
- "name": "string"
}
]
}, - "idConsumer": true,
- "isRouter": true,
- "isNats": true,
- "isController": true
}Fog-token only. Returns models linked to the authenticated fog. Rows missing uuid or name are omitted. A missing route is treated as an empty list by the agent.
{- "models": [
- {
- "uuid": "string",
- "name": "string",
- "repo": "string",
- "revision": "string",
- "registryId": 0,
- "files": [
- "string"
], - "format": "gguf"
}
]
}Fog-token only. Returns Knowledge linked to the authenticated fog. Rows missing uuid or name are omitted. An unlinked fog returns { "knowledge": [] }. A missing route is treated as an empty list by the agent.
{- "knowledge": [
- {
- "uuid": "string",
- "name": "string",
- "repo": "string",
- "revision": "string",
- "registryId": 0,
- "files": [
- "string"
], - "format": "string"
}
]
}Fog-token only. Returns RuntimeClasses linked to the authenticated fog. Rows missing name or handler are omitted. Docker and podman agents store the snapshot and do not apply it.
{- "runtimeClasses": [
- {
- "name": "string",
- "handler": "string"
}
]
}| uuid required | string |
| sourceType | string |
| timestamp | number |
| type | string |
| data | object |
[- {
- "uuid": "string",
- "sourceType": "string",
- "timestamp": 0,
- "type": "string",
- "data": { }
}
]Returns exec sessions for microservices on the authenticated fog node.
Poll when GET /agent/changes reports execSessions: true (Plan 17).
Each entry includes microserviceUuid, sessionId, status (PENDING | ACTIVE),
and agentConnected. Agent connects with
WS /agent/exec/microservice/{microserviceUuid}/{sessionId}.
{- "execSessions": [
- {
- "microserviceUuid": "838401cc-9537-4e6a-86a4-e6aefcb775d1",
- "sessionId": "f6567dd8-e069-418e-8893-7d22fcf12459",
- "status": "PENDING",
- "agentConnected": true
}
]
}Interactive exec and log streaming WebSocket endpoints (MessagePack binary).
Multi-replica HA requires a relay backend per nats.enabled (AMQP when false, NATS Core when true) - see operations/ws-sessions.md.
Upgrades to a binary MessagePack WebSocket for interactive exec.
Auth: Bearer JWT in Authorization header or ?token= query param.
RBAC: execSessions on microservices resource.
Pairing: user connects directly via WebSocket; Controller creates a per-session row
in MicroserviceExecSessions and relays STDIN/STDOUT/STDERR by sessionId.
No prior REST enable step is required (Plan 17). Max 5 concurrent exec sessions
per microservice (close code 1008 when quota exceeded).
On connect, Controller sends ACTIVATION (type 5) with JSON
{ sessionId, microserviceUuid } in the data field and top-level sessionId,
followed by STDERR "waiting for agent…". Relay frames use execId equal to sessionId.
HA: Multi-replica deployments require a relay backend selected at startup by nats.enabled: AMQP router queues when false (default), NATS Core pub/sub on the platform hub when true. Cross-replica sessions fail fast with close code 1013 when the active relay backend is unavailable. See docs/operations/ws-sessions.md.
See #/components/schemas/WsExecMessageTypes and #/components/schemas/WsCloseCodes.
| microserviceUuid required | string <uuid> |
| token | string Bearer JWT for browser clients (redact in ingress access logs) |
Upgrades to binary MessagePack log stream (agent → user after pairing).
RBAC: logs. Max 5 concurrent user log WS per microservice.
Query params control tail behaviour (see parameters). Live relay only - no log persistence.
| uuid required | string <uuid> |
| token | string |
| tail | integer [ 1 .. 5000 ] Number of tail lines (1–5000, default from config) |
| follow | boolean Default: true Stream new lines after tail (default true) |
| since | string <date-time> ISO 8601 timestamp - include lines after this time |
| until | string <date-time> ISO 8601 timestamp - include lines before this time |
Agent-side exec pairing for a specific session. Auth: fog token (not OIDC).
Path includes the sessionId from GET /agent/exec/sessions or from user ACTIVATION.
Controller validates the session row and strict sessionId / microserviceUuid match
before relay. Legacy WS /agent/exec/{microserviceUuid} with initial MessagePack frame
is removed (Plan 17, R96).
Agent handlers validate fog token before accepting messages (R86).
| microserviceUuid required | string <uuid> |
| sessionId required | string <uuid> |
CLI login. The email field is the login identifier (username or email); bootstrap admin may use a non-email username. User creation via POST /users still requires a valid email address.
When the account has a temporary password (mustChangePassword), the access token includes JWT claim password_change_required: true. RBAC allows only GET /user/profile and POST /user/change-password until the password is changed.
| email required | string non-empty Login identifier (email for normal users; bootstrap admin may use a non-email username) |
| password required | string |
| totp | string TOTP or recovery code when MFA is enabled (optional otherwise; CLI may send empty string) |
{- "email": "string",
- "password": "string",
- "totp": "string"
}{- "accessToken": "string",
- "refreshToken": "string"
}In embedded auth mode, returns a flat profile object derived from the access token
plus embedded MFA enrollment state (mfaEnabled).
In external auth mode, returns the upstream IdP UserInfo payload (shape depends on the IdP).
{- "sub": "string",
- "email": "string",
- "preferred_username": "string",
- "groups": [
- "string"
], - "password_change_required": true,
- "mfaEnabled": true
}| currentPassword | string |
| newPassword required | string |
| resetToken | string |
{- "currentPassword": "string",
- "newPassword": "string",
- "resetToken": "string"
}{- "status": "string"
}Complete TOTP enrollment for the authenticated user.
| code required | string |
{- "code": "string"
}{- "status": "string"
}| password required | string |
| code | string |
{- "password": "string",
- "code": "string"
}{- "status": "string"
}Browser OAuth BFF entry point for EdgeOps Console. EdgeOps Console Sign in performs a full-page redirect here; do not POST credentials from the browser.
External mode: redirects to the external IdP authorize endpoint.
Embedded mode: redirects to the in-process issuer at {CONTROLLER_PUBLIC_URL}/oidc/auth, which starts an OAuth interaction and redirects the browser to {consoleUrl}{auth.oauthInteractionUrl}?interaction=<uid> for Console-owned login/MFA steps.
Redirect chain (external):
Console → GET /user/oauth/authorize → external IdP (login, MFA, password policy) → GET /user/oauth/callback → 302 {consoleUrl}/login#accessToken=...&refreshToken=...
Redirect chain (embedded):
Console → GET /user/oauth/authorize → /oidc/auth → {consoleUrl}/login/oauth?interaction=<uid> → interaction APIs → GET /user/oauth/callback → 302 {consoleUrl}/login#tokens
OAuth callback redirect URI: {CONTROLLER_PUBLIC_URL}/api/v3/user/oauth/callback. Requires CONSOLE_URL in embedded mode. External mode requires OIDC_ISSUER_URL, OIDC_CLIENT_ID, and OIDC_CLIENT_SECRET for the confidential Controller client.
{- "name": "RateLimitExceededError",
- "message": "Too many authentication requests from this IP address"
}Exchanges the authorization code for tokens using the confidential Controller OIDC client. Validates state and nonce from the server session (10-minute TTL). Works in embedded and external auth modes.
When CONSOLE_URL is configured (recommended for browser login), responds with 302 to {consoleUrl}/login#accessToken=...&refreshToken=.... EdgeOps Console /login parses the URL fragment, stores tokens, clears the hash, and navigates to the app. When the issuer returns an OAuth error (e.g. access_denied), responds with 302 to {consoleUrl}/login?oauthError=... instead of JSON on the API port. When CONSOLE_URL is unset, returns JSON 200 { accessToken, refreshToken } (CLI/automation only).
External forced password change is enforced by the IdP during authorize (e.g. Keycloak required actions: UPDATE_PASSWORD). Embedded forced password uses the interaction change-password step.
MFA in external browser login is IdP-owned; embedded browser MFA uses interaction endpoints.
{- "accessToken": "string",
- "refreshToken": "string"
}Embedded auth mode only. Returns the next interaction step for the OAuth BFF flow. Unauthenticated - the interaction uid comes from the Viewer redirect query string (?interaction=<uid>). Steps: login, mfa, enroll, confirm-enroll, change-password, complete.
| uid required | string |
{- "step": "login"
}Embedded auth mode only. Verifies email/login identifier and password for the OAuth interaction. Returns the next step on success. Failures return 401 (no custom MFA JSON).
| uid required | string |
| email required | string Login identifier (not required to be an email address) |
| password required | string |
{- "email": "string",
- "password": "string"
}{- "step": "login"
}Embedded auth mode only. Verifies TOTP for admin users with MFA enabled during the OAuth interaction. Returns the next step on success.
| uid required | string |
| code required | string |
{- "code": "string"
}{- "step": "login"
}Embedded auth mode only. Starts admin MFA enrollment during the browser OAuth interaction (browser-only first enrollment). Returns TOTP secret material for QR display.
| uid required | string |
{- "step": "string",
- "secret": "string",
- "otpauthUrl": "string"
}Embedded auth mode only. Confirms MFA enrollment with a TOTP code during the browser OAuth interaction. Returns recovery codes on success.
| uid required | string |
| code required | string |
{- "code": "string"
}{- "step": "string",
- "recoveryCodes": [
- "string"
]
}Embedded auth mode only. Forced password change step before OAuth tokens are issued when mustChangePassword is true. Requires currentPassword and newPassword in the body.
| uid required | string |
| currentPassword | string |
| newPassword required | string |
| resetToken | string |
{- "currentPassword": "string",
- "newPassword": "string",
- "resetToken": "string"
}{- "step": "login"
}Embedded auth mode only. Completes the oidc-provider interaction after all required steps are satisfied. Returns { redirectTo } - Viewer should navigate the browser to this URL to resume the OAuth authorize flow and reach /user/oauth/callback.
| uid required | string |
{- "redirectTo": "string",
- "step": "complete"
}| name required | string [ 1 .. 255 ] characters |
| type required | string Enum: "Opaque" "tls" |
| data required | object |
{- "name": "string",
- "type": "Opaque",
- "data": { }
}{- "id": 0,
- "name": "string",
- "type": "Opaque",
- "data": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| name required | string Secret name |
| data required | object |
{- "data": { }
}{- "id": 0,
- "name": "string",
- "type": "Opaque",
- "data": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| secret | string <binary> |
{- "id": 0,
- "name": "string",
- "type": "Opaque",
- "data": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| name required | string Secret name |
| secret | string <binary> |
{- "id": 0,
- "name": "string",
- "type": "Opaque",
- "data": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| name required | string CA name |
{- "name": "string",
- "subject": "string",
- "is_ca": true,
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_to": "2019-08-24T14:15:22Z",
- "serial_number": "string",
- "data": {
- "certificate": "string",
- "private_key": "string"
}
}| name required | string Name of the certificate |
| subject required | string Subject of the certificate (CN) |
| hosts required | string Comma-separated list of hosts |
| expiration | integer Expiration time in milliseconds |
object |
{- "name": "string",
- "subject": "string",
- "hosts": "string",
- "expiration": 0,
- "ca": {
- "type": "k8s-secret",
- "secretName": "string",
- "cert": "string",
- "key": "string"
}
}{- "name": "string",
- "subject": "string",
- "hosts": "string",
- "is_ca": true,
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_to": "2019-08-24T14:15:22Z",
- "serial_number": "string",
- "ca_name": "string",
- "certificate_chain": [
- {
- "name": "string",
- "subject": "string"
}
], - "days_remaining": 0,
- "is_expired": true,
- "data": {
- "certificate": "string",
- "private_key": "string"
}
}{- "certificates": [
- {
- "name": "string",
- "subject": "string",
- "hosts": "string",
- "is_ca": true,
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_to": "2019-08-24T14:15:22Z",
- "days_remaining": 0,
- "is_expired": true,
- "ca_name": "string"
}
]
}| days | integer Default: 30 Number of days ahead to check for expiration (default 30) |
{- "certificates": [
- {
- "name": "string",
- "subject": "string",
- "hosts": "string",
- "is_ca": true,
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_to": "2019-08-24T14:15:22Z",
- "days_remaining": 0,
- "is_expired": true,
- "ca_name": "string"
}
]
}| name required | string Certificate name |
{- "name": "string",
- "subject": "string",
- "hosts": "string",
- "is_ca": true,
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_to": "2019-08-24T14:15:22Z",
- "serial_number": "string",
- "ca_name": "string",
- "certificate_chain": [
- {
- "name": "string",
- "subject": "string"
}
], - "days_remaining": 0,
- "is_expired": true,
- "data": {
- "certificate": "string",
- "private_key": "string"
}
}| certificate | string <binary> |
{- "name": "string",
- "subject": "string",
- "is_ca": true,
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_to": "2019-08-24T14:15:22Z",
- "serial_number": "string",
- "data": {
- "certificate": "string",
- "private_key": "string"
}
}[- {
- "name": "string",
- "type": "string",
- "resource": "string",
- "defaultBridge": "string",
- "bridgePort": 0,
- "targetPort": 0,
- "servicePort": 0,
- "k8sType": "string",
- "serviceEndpoint": "string",
- "provisioningStatus": "pending",
- "provisioningError": "string",
- "tags": [
- "string"
]
}
]| name | string |
| type | string |
| resource | string |
| defaultBridge | string |
| bridgePort | number |
| targetPort | number |
| servicePort | number |
| k8sType | string K8s Service type when running on a Kubernetes control plane (e.g. LoadBalancer) |
| serviceEndpoint | string Hub-facing endpoint hostname or LoadBalancer IP after reconcile |
| provisioningStatus | string Enum: "pending" "ready" "failed" Hub provisioning lifecycle. |
| provisioningError | string or null Last hub reconcile error when |
| tags | Array of strings |
{- "name": "string",
- "type": "string",
- "resource": "string",
- "defaultBridge": "string",
- "bridgePort": 0,
- "targetPort": 0,
- "servicePort": 0,
- "k8sType": "string",
- "serviceEndpoint": "string",
- "provisioningStatus": "pending",
- "provisioningError": "string",
- "tags": [
- "string"
]
}{- "name": "string",
- "type": "string",
- "resource": "string",
- "defaultBridge": "string",
- "bridgePort": 0,
- "targetPort": 0,
- "servicePort": 0,
- "k8sType": "string",
- "serviceEndpoint": "string",
- "provisioningStatus": "pending",
- "provisioningError": "string",
- "tags": [
- "string"
]
}| name required | string Service name |
{- "name": "string",
- "type": "string",
- "resource": "string",
- "defaultBridge": "string",
- "bridgePort": 0,
- "targetPort": 0,
- "servicePort": 0,
- "k8sType": "string",
- "serviceEndpoint": "string",
- "provisioningStatus": "pending",
- "provisioningError": "string",
- "tags": [
- "string"
]
}| name required | string Service name |
| name | string |
| type | string |
| resource | string |
| defaultBridge | string |
| bridgePort | number |
| targetPort | number |
| servicePort | number |
| k8sType | string K8s Service type when running on a Kubernetes control plane (e.g. LoadBalancer) |
| serviceEndpoint | string Hub-facing endpoint hostname or LoadBalancer IP after reconcile |
| provisioningStatus | string Enum: "pending" "ready" "failed" Hub provisioning lifecycle. |
| provisioningError | string or null Last hub reconcile error when |
| tags | Array of strings |
{- "name": "string",
- "type": "string",
- "resource": "string",
- "defaultBridge": "string",
- "bridgePort": 0,
- "targetPort": 0,
- "servicePort": 0,
- "k8sType": "string",
- "serviceEndpoint": "string",
- "provisioningStatus": "pending",
- "provisioningError": "string",
- "tags": [
- "string"
]
}{- "name": "string",
- "type": "string",
- "resource": "string",
- "defaultBridge": "string",
- "bridgePort": 0,
- "targetPort": 0,
- "servicePort": 0,
- "k8sType": "string",
- "serviceEndpoint": "string",
- "provisioningStatus": "pending",
- "provisioningError": "string",
- "tags": [
- "string"
]
}Enqueues a service platform reconcile task. When provisioningStatus is failed, resets it to pending and clears provisioningError before enqueue. Hub connector/listener, K8s Service, and ConfigMap updates run asynchronously in the platform reconcile worker. provisioningStatus=ready means hub provisioning completed successfully; tagged edge fogs receive bridge updates via separate fog platform reconcile tasks.
| name required | string Service name |
{- "name": "string",
- "type": "string",
- "resource": "string",
- "defaultBridge": "string",
- "bridgePort": 0,
- "targetPort": 0,
- "servicePort": 0,
- "k8sType": "string",
- "serviceEndpoint": "string",
- "provisioningStatus": "pending",
- "provisioningError": "string",
- "tags": [
- "string"
]
}| service | string <binary> |
{- "id": 0,
- "name": "string",
- "type": "string",
- "resource": "string",
- "targetPort": 0,
- "defaultBridge": "string",
- "bridgePort": 0,
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z"
}| name required | string Service name |
| service | string <binary> |
{- "name": "string",
- "type": "string",
- "resource": "string",
- "defaultBridge": "string",
- "bridgePort": 0,
- "targetPort": 0,
- "servicePort": 0,
- "k8sType": "string",
- "serviceEndpoint": "string",
- "provisioningStatus": "pending",
- "provisioningError": "string",
- "tags": [
- "string"
]
}| name required | string |
| secretName required | string |
| configMapName | string |
{- "name": "string",
- "secretName": "string",
- "configMapName": "string"
}{- "uuid": "string",
- "name": "string",
- "secretName": "string",
- "configMapName": "string",
- "version": 0
}| name required | string Volume mount name |
| name | string |
| secretName required | string |
| configMapName | string |
{- "name": "string",
- "secretName": "string",
- "configMapName": "string"
}{- "uuid": "string",
- "name": "string",
- "secretName": "string",
- "configMapName": "string",
- "version": 0
}| name required | string Volume mount name |
{- "uuid": "string",
- "name": "string",
- "secretName": "string",
- "configMapName": "string",
- "version": 0
}| name required | string Volume mount name |
| fogUuids required | Array of strings non-empty |
{- "fogUuids": [
- "string"
]
}{- "uuid": "string",
- "name": "string",
- "secretName": "string",
- "configMapName": "string",
- "version": 0
}| name required | string Volume mount name |
| fogUuids required | Array of strings non-empty |
{- "fogUuids": [
- "string"
]
}{- "uuid": "string",
- "name": "string",
- "secretName": "string",
- "configMapName": "string",
- "version": 0
}Server generates uuid. Name is unique and immutable after create.
| name required | string |
| repo required | string |
| revision | string |
| registryId required | integer |
| files | Array of strings |
| format | string Enum: "gguf" "safetensors" "onnx" "pytorch" "tensorrt" "unknown" |
{- "name": "string",
- "repo": "string",
- "revision": "string",
- "registryId": 0,
- "files": [
- "string"
], - "format": "gguf"
}{- "uuid": "string",
- "name": "string",
- "repo": "string",
- "revision": "string",
- "registryId": 0,
- "files": [
- "string"
], - "format": "gguf"
}| model | string <binary> |
{- "uuid": "string",
- "name": "string",
- "repo": "string",
- "revision": "string",
- "registryId": 0,
- "files": [
- "string"
], - "format": "gguf"
}Does not include linked fog uuids. Use GET /models/{name}/link.
| name required | string Model name |
{- "uuid": "string",
- "name": "string",
- "repo": "string",
- "revision": "string",
- "registryId": 0,
- "files": [
- "string"
], - "format": "gguf"
}Name is immutable.
| name required | string Model name |
| repo | string |
| revision | string |
| registryId | integer |
| files | Array of strings |
| format | string Enum: "gguf" "safetensors" "onnx" "pytorch" "tensorrt" "unknown" |
{- "repo": "string",
- "revision": "string",
- "registryId": 0,
- "files": [
- "string"
], - "format": "gguf"
}{- "uuid": "string",
- "name": "string",
- "repo": "string",
- "revision": "string",
- "registryId": 0,
- "files": [
- "string"
], - "format": "gguf"
}| name required | string Model name |
| model | string <binary> |
{- "uuid": "string",
- "name": "string",
- "repo": "string",
- "revision": "string",
- "registryId": 0,
- "files": [
- "string"
], - "format": "gguf"
}| name required | string Model name |
| fogUuids required | Array of strings non-empty |
{- "fogUuids": [
- "string"
]
}{- "fogUuids": [
- "string"
]
}Refused when a microservice on that fog still binds the model name.
| name required | string Model name |
| fogUuids required | Array of strings non-empty |
{- "fogUuids": [
- "string"
]
}{- "fogUuids": [
- "string"
]
}Server generates uuid. Name is unique and immutable after create. Names are a separate namespace from Models. Hugging Face pulls use the dataset API. files is Hugging Face only; a non-empty files array on an OCI registry is rejected. format is an optional soft hint (see Knowledge.format).
| name required | string |
| repo required | string |
| revision | string |
| registryId required | integer |
| files | Array of strings |
| format | string Optional soft hint. Known values persist lowercase: markdown, pdf, jsonl, parquet, arrow, sqlite, faiss, chroma, lance. Any other non-empty string is stored as unknown. Omit, null, or empty stays omitted. Unknown format is not rejected. |
{- "name": "string",
- "repo": "string",
- "revision": "string",
- "registryId": 0,
- "files": [
- "string"
], - "format": "string"
}{- "uuid": "string",
- "name": "string",
- "repo": "string",
- "revision": "string",
- "registryId": 0,
- "files": [
- "string"
], - "format": "string"
}kind Knowledge. spec.registry is an alias of registryId. apiVersion iofog.org/v3 or datasance.com/v3.
| knowledge | string <binary> |
{- "uuid": "string",
- "name": "string",
- "repo": "string",
- "revision": "string",
- "registryId": 0,
- "files": [
- "string"
], - "format": "string"
}Does not include linked fog uuids. Use GET /knowledge/{name}/link.
| name required | string Knowledge name |
{- "uuid": "string",
- "name": "string",
- "repo": "string",
- "revision": "string",
- "registryId": 0,
- "files": [
- "string"
], - "format": "string"
}Name is immutable. format follows the same soft-hint rules as create.
| name required | string Knowledge name |
| repo | string |
| revision | string |
| registryId | integer |
| files | Array of strings |
| format | string Optional soft hint. Known values persist lowercase: markdown, pdf, jsonl, parquet, arrow, sqlite, faiss, chroma, lance. Any other non-empty string is stored as unknown. Omit, null, or empty stays omitted. Unknown format is not rejected. |
{- "repo": "string",
- "revision": "string",
- "registryId": 0,
- "files": [
- "string"
], - "format": "string"
}{- "uuid": "string",
- "name": "string",
- "repo": "string",
- "revision": "string",
- "registryId": 0,
- "files": [
- "string"
], - "format": "string"
}| name required | string Knowledge name |
| knowledge | string <binary> |
{- "uuid": "string",
- "name": "string",
- "repo": "string",
- "revision": "string",
- "registryId": 0,
- "files": [
- "string"
], - "format": "string"
}| name required | string Knowledge name |
| fogUuids required | Array of strings non-empty |
{- "fogUuids": [
- "string"
]
}{- "fogUuids": [
- "string"
]
}Refused when a microservice on that fog still binds the Knowledge name.
| name required | string Knowledge name |
| fogUuids required | Array of strings non-empty |
{- "fogUuids": [
- "string"
]
}{- "fogUuids": [
- "string"
]
}Name plus handler. Built-in catalog rows are not seeded.
| name required | string |
| handler required | string |
{- "name": "string",
- "handler": "string"
}{- "name": "string",
- "handler": "string"
}Name is immutable. Non-catalog handlers may bounce the data plane.
| name required | string RuntimeClass name |
| handler | string |
{- "handler": "string"
}{- "name": "string",
- "handler": "string"
}Attach is refused when fog containerEngine is not edgelet or when the RuntimeClass name is not in the fog availableRuntimes list.
| name required | string RuntimeClass name |
| fogUuids required | Array of strings non-empty |
{- "fogUuids": [
- "string"
]
}{- "fogUuids": [
- "string"
]
}Refused when a microservice on that fog still pins runtime to this name.
| name required | string RuntimeClass name |
| fogUuids required | Array of strings non-empty |
{- "fogUuids": [
- "string"
]
}{- "fogUuids": [
- "string"
]
}| name required | string [ 1 .. 255 ] characters |
| data required | object |
{- "name": "string",
- "data": { }
}{- "id": 0,
- "name": "string",
- "data": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| name required | string |
| data required | object |
{- "data": { }
}{- "id": 0,
- "name": "string",
- "data": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| name required | string |
| configMap | string <binary> |
{- "id": 0,
- "name": "string",
- "data": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Retrieve audit events with optional filters and pagination.
| limit | integer [ 1 .. 1000 ] Maximum number of events to return (default 200, max 1000) |
| offset | integer >= 0 Number of events to skip before collecting results |
| startTime | string Start of time range (Unix timestamp in ms or ISO 8601) |
| endTime | string End of time range (Unix timestamp in ms or ISO 8601) |
| endpointType | string Filter by endpoint type (agent or user) |
| resourceType | string Filter by resource type (agent, microservice, etc.) |
| status | string Filter by status (SUCCESS or FAILED) |
| method | Array of strings Filter by HTTP/WS method(s) |
| actorId | string Filter by actor identifier (username or fog UUID) |
| eventType | string Filter by event type (HTTP, WS_CONNECT, WS_DISCONNECT) |
{- "events": [
- {
- "id": 0,
- "timestamp": 0,
- "eventType": "string",
- "endpointType": "string",
- "actorId": "string",
- "method": "string",
- "resourceType": "string",
- "resourceId": "string",
- "endpointPath": "string",
- "ipAddress": "string",
- "status": "string",
- "statusCode": 0,
- "statusMessage": "string",
- "requestId": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "total": 0,
- "limit": 0,
- "offset": 0
}Delete all events when days is 0, or delete events older than the provided number of days.
| days required | integer [ 0 .. 365 ] |
{- "days": 365
}{- "deletedCount": 0,
- "deletedBefore": "2019-08-24T14:15:22Z",
- "deletedAt": "2019-08-24T14:15:22Z",
- "deletedAll": true
}| name required | string |
| apiVersion | string |
| kind | string |
required | Array of objects (RbacRule) |
{- "name": "string",
- "apiVersion": "string",
- "kind": "string",
- "rules": [
- {
- "apiGroups": [
- "string"
], - "resources": [
- "string"
], - "verbs": [
- "string"
], - "resourceNames": [
- "string"
]
}
]
}{- "id": 0,
- "name": "string",
- "apiVersion": "string",
- "kind": "string",
- "rules": [
- {
- "apiGroups": [
- "string"
], - "resources": [
- "string"
], - "verbs": [
- "string"
], - "resourceNames": [
- "string"
]
}
]
}| role | string <binary> |
{- "id": 0,
- "name": "string",
- "apiVersion": "string",
- "kind": "string",
- "rules": [
- {
- "apiGroups": [
- "string"
], - "resources": [
- "string"
], - "verbs": [
- "string"
], - "resourceNames": [
- "string"
]
}
]
}{- "id": 0,
- "name": "string",
- "apiVersion": "string",
- "kind": "string",
- "rules": [
- {
- "apiGroups": [
- "string"
], - "resources": [
- "string"
], - "verbs": [
- "string"
], - "resourceNames": [
- "string"
]
}
]
}| name required | string Role name |
| name required | string |
| apiVersion | string |
| kind | string |
required | Array of objects (RbacRule) |
{- "name": "string",
- "apiVersion": "string",
- "kind": "string",
- "rules": [
- {
- "apiGroups": [
- "string"
], - "resources": [
- "string"
], - "verbs": [
- "string"
], - "resourceNames": [
- "string"
]
}
]
}{- "id": 0,
- "name": "string",
- "apiVersion": "string",
- "kind": "string",
- "rules": [
- {
- "apiGroups": [
- "string"
], - "resources": [
- "string"
], - "verbs": [
- "string"
], - "resourceNames": [
- "string"
]
}
]
}| name required | string Role name |
| role | string <binary> |
{- "id": 0,
- "name": "string",
- "apiVersion": "string",
- "kind": "string",
- "rules": [
- {
- "apiGroups": [
- "string"
], - "resources": [
- "string"
], - "verbs": [
- "string"
], - "resourceNames": [
- "string"
]
}
]
}[- {
- "id": 0,
- "name": "string",
- "apiVersion": "string",
- "kind": "string",
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}, - "subjects": [
- {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
]
}
]| name required | string |
| apiVersion | string |
| kind | string |
required | object (RoleRef) |
required | Array of objects (Subject) |
{- "name": "string",
- "apiVersion": "string",
- "kind": "string",
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}, - "subjects": [
- {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
]
}{- "id": 0,
- "name": "string",
- "apiVersion": "string",
- "kind": "string",
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}, - "subjects": [
- {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
]
}| rolebinding | string <binary> |
{- "id": 0,
- "name": "string",
- "apiVersion": "string",
- "kind": "string",
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}, - "subjects": [
- {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
]
}| name required | string RoleBinding name |
{- "id": 0,
- "name": "string",
- "apiVersion": "string",
- "kind": "string",
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}, - "subjects": [
- {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
]
}| name required | string RoleBinding name |
| name required | string |
| apiVersion | string |
| kind | string |
required | object (RoleRef) |
required | Array of objects (Subject) |
{- "name": "string",
- "apiVersion": "string",
- "kind": "string",
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}, - "subjects": [
- {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
]
}{- "id": 0,
- "name": "string",
- "apiVersion": "string",
- "kind": "string",
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}, - "subjects": [
- {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
]
}| name required | string RoleBinding name |
| rolebinding | string <binary> |
{- "id": 0,
- "name": "string",
- "apiVersion": "string",
- "kind": "string",
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}, - "subjects": [
- {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
]
}| host required | string |
| messagingPort | integer [ 1 .. 65535 ] Defaults to 5671 when omitted |
| edgeRouterPort | integer [ 1 .. 65535 ] Defaults to 45671 when omitted |
| interRouterPort | integer [ 1 .. 65535 ] Defaults to 55671 when omitted |
| property name* additional property | any |
{- "host": "string",
- "messagingPort": 1,
- "edgeRouterPort": 1,
- "interRouterPort": 1
}{- "id": 0,
- "isEdge": true,
- "messagingPort": 0,
- "edgeRouterPort": 0,
- "interRouterPort": 0,
- "host": "string",
- "isDefault": true,
- "iofogUuid": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}{- "controlPlane": "kubernetes",
- "router": {
- "totalNodes": 0,
- "totalConnections": 0,
- "byRole": {
- "property1": 0,
- "property2": 0
}
}, - "nats": {
- "totalNodes": 0,
- "totalConnections": 0,
- "byRole": {
- "property1": 0,
- "property2": 0
}
}
}{- "defaultNode": {
- "id": "string",
- "iofogUuid": "string",
- "fogName": "string",
- "host": "string",
- "deploymentTarget": "kubernetes",
- "displayName": "string",
- "role": "string",
- "mode": "string"
}, - "interiorNodes": [
- {
- "id": "string",
- "iofogUuid": "string",
- "fogName": "string",
- "host": "string",
- "deploymentTarget": "kubernetes",
- "displayName": "string",
- "role": "string",
- "mode": "string"
}
], - "spokeGroups": [
- {
- "upstreamOf": "string",
- "role": "string",
- "count": 0
}
]
}{- "defaultNode": {
- "id": "string",
- "iofogUuid": "string",
- "fogName": "string",
- "host": "string",
- "deploymentTarget": "kubernetes",
- "displayName": "string",
- "role": "string",
- "mode": "string"
}, - "serverNodes": [
- {
- "id": "string",
- "iofogUuid": "string",
- "fogName": "string",
- "host": "string",
- "deploymentTarget": "kubernetes",
- "displayName": "string",
- "role": "string",
- "mode": "string"
}
], - "spokeGroups": [
- {
- "upstreamOf": "string",
- "role": "string",
- "count": 0
}
]
}| limit | integer [ 1 .. 500 ] Default: 100 |
| offset | integer >= 0 Default: 0 |
| role | string Enum: "default" "edge" "interior" |
| deploymentTarget | string Enum: "kubernetes" "remote" "edgelet" |
| search | string |
{- "total": 0,
- "limit": 0,
- "offset": 0,
- "nodes": [
- {
- "id": "string",
- "iofogUuid": "string",
- "fogName": "string",
- "host": "string",
- "deploymentTarget": "kubernetes",
- "displayName": "string",
- "role": "string",
- "mode": "string"
}
]
}| limit | integer [ 1 .. 500 ] Default: 100 |
| offset | integer >= 0 Default: 0 |
| role | string Enum: "hub" "leaf" "server" |
| deploymentTarget | string Enum: "kubernetes" "remote" "edgelet" |
| search | string |
{- "total": 0,
- "limit": 0,
- "offset": 0,
- "nodes": [
- {
- "id": "string",
- "iofogUuid": "string",
- "fogName": "string",
- "host": "string",
- "deploymentTarget": "kubernetes",
- "displayName": "string",
- "role": "string",
- "mode": "string"
}
]
}| id required | string Router node id ( |
{- "id": "string",
- "iofogUuid": "string",
- "fogName": "string",
- "host": "string",
- "deploymentTarget": "kubernetes",
- "displayName": "string",
- "role": "string",
- "mode": "string",
- "messagingPort": 0,
- "edgeRouterPort": 0,
- "interRouterPort": 0,
- "isDefault": true
}| id required | string NATS node id ( |
{- "id": "string",
- "iofogUuid": "string",
- "fogName": "string",
- "host": "string",
- "deploymentTarget": "kubernetes",
- "displayName": "string",
- "role": "string",
- "mode": "string",
- "serverPort": 0,
- "leafPort": 0,
- "clusterPort": 0,
- "mqttPort": 0,
- "httpPort": 0,
- "jsStorageSize": "string",
- "jsMemoryStoreSize": "string",
- "isHub": true
}| center required | string |
| depth | integer [ 1 .. 2 ] Default: 1 |
| limit | integer [ 1 .. 500 ] Default: 100 |
{- "nodes": [
- {
- "id": "string",
- "iofogUuid": "string",
- "fogName": "string",
- "host": "string",
- "deploymentTarget": "kubernetes",
- "displayName": "string",
- "role": "string",
- "mode": "string"
}
], - "connections": [
- {
- "id": 0,
- "source": "string",
- "dest": "string"
}
]
}| center required | string |
| depth | integer [ 1 .. 2 ] Default: 1 |
| limit | integer [ 1 .. 500 ] Default: 100 |
{- "nodes": [
- {
- "id": "string",
- "iofogUuid": "string",
- "fogName": "string",
- "host": "string",
- "deploymentTarget": "kubernetes",
- "displayName": "string",
- "role": "string",
- "mode": "string"
}
], - "connections": [
- {
- "id": 0,
- "source": "string",
- "dest": "string"
}
]
}| name required | string |
| applicationName required | string Application name this service account belongs to |
required | object (RoleRef) |
{- "name": "string",
- "applicationName": "string",
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
}{- "id": 0,
- "name": "string",
- "applicationName": "string",
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
}The YAML file must include metadata.applicationName (application name this service account belongs to), metadata.name (service account name), and roleRef with a name. Example: kind: ServiceAccount metadata: name: my-sa applicationName: my-app roleRef: kind: Role name: microservice
| serviceaccount | string <binary> |
{- "id": 0,
- "name": "string",
- "applicationName": "string",
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
}| appName required | string Application name |
| name required | string ServiceAccount name |
{- "id": 0,
- "name": "string",
- "applicationName": "string",
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
}| appName required | string Application name |
| name required | string ServiceAccount name |
| name required | string |
| applicationName required | string Application name this service account belongs to |
required | object (RoleRef) |
{- "name": "string",
- "applicationName": "string",
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
}{- "id": 0,
- "name": "string",
- "applicationName": "string",
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
}| appName required | string Application name |
| name required | string ServiceAccount name |
| serviceaccount | string <binary> |
{- "id": 0,
- "name": "string",
- "applicationName": "string",
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
}| includeInactive | boolean Default: false When true, include inactive controller rows (historical replicas from past rollouts). Default false returns only active replicas. |
[- {
- "uuid": "string",
- "host": "string",
- "processId": 0,
- "lastHeartbeat": "2019-08-24T14:15:22Z",
- "isActive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]| uuid required | string Cluster controller UUID |
{- "uuid": "string",
- "host": "string",
- "processId": 0,
- "lastHeartbeat": "2019-08-24T14:15:22Z",
- "isActive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| uuid required | string Cluster controller UUID |
| host | string |
{- "host": "string"
}{- "uuid": "string",
- "host": "string",
- "processId": 0,
- "lastHeartbeat": "2019-08-24T14:15:22Z",
- "isActive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Admin-only. Exports user UUIDs, emails, and group memberships. No secrets or password hashes.
{- "exportedAt": "2019-08-24T14:15:22Z",
- "authMode": "embedded",
- "users": [
- {
- "id": "string",
- "email": "string",
- "groups": [
- "string"
]
}
], - "groups": [
- {
- "id": 0,
- "name": "string",
- "isSystem": true
}
]
}Admin-only. Generates a new JWKS signing key and deactivates the previous active key. Restart Controller pods after rotation so the embedded issuer loads the new key.
{- "kid": "string",
- "rotatedAt": "2019-08-24T14:15:22Z",
- "restartRequired": true
}[- {
- "id": "string",
- "email": "string",
- "groups": [
- "string"
], - "mustChangePassword": true,
- "mfaEnabled": true,
- "isBootstrap": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]Admin-created users receive mustChangePassword: true so the first login forces a password change (browser interaction step or CLI JWT password_change_required gate).
| email required | string |
| password required | string |
| groups | Array of strings |
{- "email": "string",
- "password": "string",
- "groups": [
- "string"
]
}{- "id": "string",
- "email": "string",
- "groups": [
- "string"
], - "mustChangePassword": true,
- "mfaEnabled": true,
- "isBootstrap": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}{- "id": "string",
- "email": "string",
- "groups": [
- "string"
], - "mustChangePassword": true,
- "mfaEnabled": true,
- "isBootstrap": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| id required | string |
string | |
| groups | Array of strings |
{- "email": "string",
- "groups": [
- "string"
]
}{- "id": "string",
- "email": "string",
- "groups": [
- "string"
], - "mustChangePassword": true,
- "mfaEnabled": true,
- "isBootstrap": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| name required | string |
| mfaRequired | boolean Default: false When true, members of this group must enroll and use TOTP MFA at login |
{- "name": "string",
- "mfaRequired": false
}{- "id": 0,
- "name": "string",
- "isSystem": true,
- "mfaRequired": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| name required | string Unique auth group name (e.g. viewer, platform-ops) |
{- "id": 0,
- "name": "string",
- "isSystem": true,
- "mfaRequired": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Updates a custom auth group name and/or mfaRequired. System groups (admin, sre, developer, viewer) allow mfaRequired changes only; rename is forbidden. Requires RBAC authGroups resource with patch verb.
| name required | string Current auth group name |
| name | string |
| mfaRequired | boolean When true, members of this group must enroll and use TOTP MFA at login |
{- "name": "string",
- "mfaRequired": true
}{- "id": 0,
- "name": "string",
- "isSystem": true,
- "mfaRequired": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| name required | string |
| description | string |
Array of objects (MicroserviceTemplateVariable) | |
| microservice required | object |
{- "name": "string",
- "description": "string",
- "variables": [
- {
- "key": "string",
- "description": "string",
- "defaultValue": null
}
], - "microservice": { }
}{- "name": "string",
- "description": "string",
- "variables": [
- {
- "key": "string",
- "description": "string",
- "defaultValue": null
}
], - "microservice": { }
}| template | string <binary> |
{- "name": "string",
- "description": "string",
- "variables": [
- {
- "key": "string",
- "description": "string",
- "defaultValue": null
}
], - "microservice": { }
}Name is immutable.
| name required | string Template name |
| description | string |
Array of objects (MicroserviceTemplateVariable) | |
| microservice | object |
{- "description": "string",
- "variables": [
- {
- "key": "string",
- "description": "string",
- "defaultValue": null
}
], - "microservice": { }
}{- "name": "string",
- "description": "string",
- "variables": [
- {
- "key": "string",
- "description": "string",
- "defaultValue": null
}
], - "microservice": { }
}| name required | string Template name |
| template | string <binary> |
{- "name": "string",
- "description": "string",
- "variables": [
- {
- "key": "string",
- "description": "string",
- "defaultValue": null
}
], - "microservice": { }
}