Download OpenAPI specification:Download
| 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,
- "systemTotalCpu": 0,
- "catalogItemStatus": "string",
- "repositoryStatus": "string",
- "ipAddress": "string",
- "ipAddressExternal": "string",
- "networkInterface": "string",
- "containerEngineUrl": "string",
- "containerEngine": "edgelet",
- "deploymentType": "string",
- "diskLimit": 0,
- "diskDirectory": "string",
- "memoryLimit": 0,
- "cpuLimit": 0,
- "logLimit": 0,
- "logDirectory": "string",
- "bluetoothEnabled": true,
- "abstractedHardwareEnabled": true,
- "version": "string",
- "isReadyToUpgrade": true,
- "isReadyToRollback": true,
- "statusFrequency": 0,
- "changeFrequency": 0,
- "deviceScanFrequency": 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"
], - "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> 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 |
| deviceScanFrequency | number <seconds> Default: 20 |
| bluetoothEnabled | boolean Default: false |
| watchdogEnabled | boolean Default: true |
| abstractedHardwareEnabled | boolean Default: false |
| 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,
- "deviceScanFrequency": 20,
- "bluetoothEnabled": false,
- "watchdogEnabled": true,
- "abstractedHardwareEnabled": false,
- "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> 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 |
| deviceScanFrequency | number <seconds> Default: 20 |
| bluetoothEnabled | boolean Default: false |
| watchdogEnabled | boolean Default: true |
| abstractedHardwareEnabled | boolean Default: false |
| 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,
- "deviceScanFrequency": 20,
- "bluetoothEnabled": false,
- "watchdogEnabled": true,
- "abstractedHardwareEnabled": false,
- "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,
- "systemTotalCpu": 0,
- "catalogItemStatus": "string",
- "repositoryStatus": "string",
- "ipAddress": "string",
- "ipAddressExternal": "string",
- "networkInterface": "string",
- "containerEngineUrl": "string",
- "containerEngine": "edgelet",
- "deploymentType": "string",
- "diskLimit": 0,
- "diskDirectory": "string",
- "memoryLimit": 0,
- "cpuLimit": 0,
- "logLimit": 0,
- "logDirectory": "string",
- "bluetoothEnabled": true,
- "abstractedHardwareEnabled": true,
- "version": "string",
- "isReadyToUpgrade": true,
- "isReadyToRollback": true,
- "statusFrequency": 0,
- "changeFrequency": 0,
- "deviceScanFrequency": 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"
], - "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": [
- {
- "microservices": [
- {
- "uuid": "string",
- "name": "string",
- "config": "string",
- "annotations": "string",
- "hostNetworkMode": true,
- "isPrivileged": true,
- "logLimit": 0,
- "images": [
- {
- "containerImage": "string",
- "archId": "string"
}
], - "iofogUuid": "string",
- "envs": [
- {
- "key": "string",
- "value": "string"
}
], - "runAsUser": "string",
- "platform": "string",
- "runtime": "string",
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "string"
], - "volumeMappings": [
- {
- "id": 0,
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "type": "bind"
}
], - "ports": [
- {
- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}
], - "natsAccess": true,
- "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "status": {
- "status": "string",
- "operatingDuration": 0,
- "startTime": 0,
- "cpuUsage": 0,
- "memoryUsage": 0,
- "containerId": "string"
}
}
]
}
]
}
]
}{- "applications": [
- {
- "id": 0,
- "name": "string",
- "description": "string",
- "isActivated": true,
- "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "microservices": [
- {
- "microservices": [
- {
- "uuid": "string",
- "name": "string",
- "config": "string",
- "annotations": "string",
- "hostNetworkMode": true,
- "isPrivileged": true,
- "logLimit": 0,
- "images": [
- {
- "containerImage": "string",
- "archId": "string"
}
], - "iofogUuid": "string",
- "envs": [
- {
- "key": "string",
- "value": "string"
}
], - "runAsUser": "string",
- "platform": "string",
- "runtime": "string",
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "string"
], - "volumeMappings": [
- {
- "id": 0,
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "type": "bind"
}
], - "ports": [
- {
- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}
], - "natsAccess": true,
- "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "status": {
- "status": "string",
- "operatingDuration": 0,
- "startTime": 0,
- "cpuUsage": 0,
- "memoryUsage": 0,
- "containerId": "string"
}
}
]
}
]
}
]
}| name required | string Application name |
{- "id": 0,
- "name": "string",
- "description": "string",
- "isActivated": true,
- "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "microservices": [
- {
- "microservices": [
- {
- "uuid": "string",
- "name": "string",
- "config": "string",
- "annotations": "string",
- "hostNetworkMode": true,
- "isPrivileged": true,
- "logLimit": 0,
- "images": [
- {
- "containerImage": "string",
- "archId": "string"
}
], - "iofogUuid": "string",
- "envs": [
- {
- "key": "string",
- "value": "string"
}
], - "runAsUser": "string",
- "platform": "string",
- "runtime": "string",
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "string"
], - "volumeMappings": [
- {
- "id": 0,
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "type": "bind"
}
], - "ports": [
- {
- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}
], - "natsAccess": true,
- "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "status": {
- "status": "string",
- "operatingDuration": 0,
- "startTime": 0,
- "cpuUsage": 0,
- "memoryUsage": 0,
- "containerId": "string"
}
}
]
}
]
}| name required | string Application name |
| name | string |
| description | string |
| isActivated | boolean |
{- "name": "string",
- "description": "string",
- "isActivated": true
}| name required | string Application name |
{- "id": 0,
- "name": "string",
- "description": "string",
- "isActivated": true,
- "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "microservices": [
- {
- "microservices": [
- {
- "uuid": "string",
- "name": "string",
- "config": "string",
- "annotations": "string",
- "hostNetworkMode": true,
- "isPrivileged": true,
- "logLimit": 0,
- "images": [
- {
- "containerImage": "string",
- "archId": "string"
}
], - "iofogUuid": "string",
- "envs": [
- {
- "key": "string",
- "value": "string"
}
], - "runAsUser": "string",
- "platform": "string",
- "runtime": "string",
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "string"
], - "volumeMappings": [
- {
- "id": 0,
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "type": "bind"
}
], - "ports": [
- {
- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}
], - "natsAccess": true,
- "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "status": {
- "status": "string",
- "operatingDuration": 0,
- "startTime": 0,
- "cpuUsage": 0,
- "memoryUsage": 0,
- "containerId": "string"
}
}
]
}
]
}{- "applicationTemplates": [
- {
- "id": 0,
- "name": "string",
- "description": "string",
- "application": {
- "microservices": [
- {
- "microservices": [
- {
- "uuid": "string",
- "name": "string",
- "config": "string",
- "annotations": "string",
- "hostNetworkMode": true,
- "isPrivileged": true,
- "logLimit": 0,
- "images": [
- {
- "containerImage": null,
- "archId": null
}
], - "iofogUuid": "string",
- "envs": [
- {
- "key": null,
- "value": null
}
], - "runAsUser": "string",
- "platform": "string",
- "runtime": "string",
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "string"
], - "volumeMappings": [
- {
- "id": null,
- "hostDestination": null,
- "containerDestination": null,
- "accessMode": null,
- "type": null
}
], - "ports": [
- {
- "internal": null,
- "external": null,
- "protocol": null
}
], - "natsAccess": true,
- "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "status": {
- "status": "string",
- "operatingDuration": 0,
- "startTime": 0,
- "cpuUsage": 0,
- "memoryUsage": 0,
- "containerId": "string"
}
}
]
}
], - "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}
}
}
]
}| name required | string Application template name |
{- "id": 0,
- "name": "string",
- "description": "string",
- "application": {
- "microservices": [
- {
- "microservices": [
- {
- "uuid": "string",
- "name": "string",
- "config": "string",
- "annotations": "string",
- "hostNetworkMode": true,
- "isPrivileged": true,
- "logLimit": 0,
- "images": [
- {
- "containerImage": "string",
- "archId": "string"
}
], - "iofogUuid": "string",
- "envs": [
- {
- "key": "string",
- "value": "string"
}
], - "runAsUser": "string",
- "platform": "string",
- "runtime": "string",
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "string"
], - "volumeMappings": [
- {
- "id": 0,
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "type": "bind"
}
], - "ports": [
- {
- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}
], - "natsAccess": true,
- "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "status": {
- "status": "string",
- "operatingDuration": 0,
- "startTime": 0,
- "cpuUsage": 0,
- "memoryUsage": 0,
- "containerId": "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 |
{- "url": "string",
- "isPublic": true,
- "username": "string",
- "password": "string",
- "email": "string"
}| id required | string Registry id |
| url | string |
| isPublic | boolean |
| username | string |
| password | string |
string |
{- "url": "string",
- "isPublic": true,
- "username": "string",
- "password": "string",
- "email": "string"
}| application | string Application name |
{- "microservices": [
- {
- "uuid": "string",
- "name": "string",
- "config": "string",
- "annotations": "string",
- "hostNetworkMode": true,
- "isPrivileged": true,
- "logLimit": 0,
- "images": [
- {
- "containerImage": "string",
- "archId": "string"
}
], - "iofogUuid": "string",
- "envs": [
- {
- "key": "string",
- "value": "string"
}
], - "runAsUser": "string",
- "platform": "string",
- "runtime": "string",
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "string"
], - "volumeMappings": [
- {
- "id": 0,
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "type": "bind"
}
], - "ports": [
- {
- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}
], - "natsAccess": true,
- "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "status": {
- "status": "string",
- "operatingDuration": 0,
- "startTime": 0,
- "cpuUsage": 0,
- "memoryUsage": 0,
- "containerId": "string"
}
}
]
}| name | string |
| config | string |
| annotations | string |
| catalogItemId | integer |
Array of objects | |
| application | string |
| iofogUuid | string |
| agentName | string |
| hostNetworkMode | boolean |
| isPrivileged | boolean |
| logSize | number |
Array of objects (VolumeMapping) | |
Array of objects (PortMappingsRequest) | |
| runAsUser | string |
| platform | string |
| runtime | string |
| cdiDevices | Array of strings |
| capAdd | Array of strings |
| capDrop | Array of strings |
| cmd | Array of strings |
object (NatsConfigObject) | |
object |
{- "name": "string",
- "config": "string",
- "annotations": "string",
- "catalogItemId": 0,
- "images": [
- {
- "containerImage": "string",
- "archId": "string"
}
], - "application": "string",
- "iofogUuid": "string",
- "agentName": "string",
- "hostNetworkMode": true,
- "isPrivileged": true,
- "logSize": 0,
- "volumeMappings": [
- {
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw"
}
], - "ports": [
- {
- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}
], - "runAsUser": "string",
- "platform": "string",
- "runtime": "string",
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "string"
], - "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "serviceAccount": {
- "roleRef": {
- "kind": "string",
- "name": "string",
- "apiGroup": "string"
}
}
}{- "uuid": "string",
- "name": "string"
}| uuid required | string Microservice Uuid |
{- "uuid": "string",
- "name": "string",
- "config": "string",
- "annotations": "string",
- "hostNetworkMode": true,
- "isPrivileged": true,
- "logLimit": 0,
- "images": [
- {
- "containerImage": "string",
- "archId": "string"
}
], - "iofogUuid": "string",
- "envs": [
- {
- "key": "string",
- "value": "string"
}
], - "runAsUser": "string",
- "platform": "string",
- "runtime": "string",
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "string"
], - "volumeMappings": [
- {
- "id": 0,
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "type": "bind"
}
], - "ports": [
- {
- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}
], - "natsAccess": true,
- "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "status": {
- "status": "string",
- "operatingDuration": 0,
- "startTime": 0,
- "cpuUsage": 0,
- "memoryUsage": 0,
- "containerId": "string"
}
}| uuid required | string Microservice Uuid |
{- "uuid": "string",
- "name": "string",
- "config": "string",
- "annotations": "string",
- "hostNetworkMode": true,
- "isPrivileged": true,
- "logLimit": 0,
- "images": [
- {
- "containerImage": "string",
- "archId": "string"
}
], - "iofogUuid": "string",
- "envs": [
- {
- "key": "string",
- "value": "string"
}
], - "runAsUser": "string",
- "platform": "string",
- "runtime": "string",
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "string"
], - "volumeMappings": [
- {
- "id": 0,
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "type": "bind"
}
], - "ports": [
- {
- "internal": 0,
- "external": 0,
- "protocol": "tcp"
}
], - "natsAccess": true,
- "natsConfig": {
- "natsAccess": true,
- "natsRule": "string"
}, - "status": {
- "status": "string",
- "operatingDuration": 0,
- "startTime": 0,
- "cpuUsage": 0,
- "memoryUsage": 0,
- "containerId": "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 |
{- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw"
}{- "id": 0
}| uuid required | string Microservice Uuid |
{- "volumeMappings": [
- {
- "id": 0,
- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw",
- "type": "bind"
}
]
}| uuid required | string Microservice Uuid |
information about volume mapping
| hostDestination | string |
| containerDestination | string |
| accessMode | string |
{- "hostDestination": "/var/dest",
- "containerDestination": "/var/dest",
- "accessMode": "rw"
}{- "id": 0
}{- "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": 0,
- "logLimit": 0,
- "logDirectory": "string",
- "logFileCount": 0,
- "statusFrequency": 0,
- "changeFrequency": 0,
- "deviceScanFrequency": 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 |
| logLimit | number |
| logDirectory | string |
| logFileCount | number |
| statusFrequency | number |
| changeFrequency | number |
| deviceScanFrequency | 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": 0,
- "logLimit": 0,
- "logDirectory": "string",
- "logFileCount": 0,
- "statusFrequency": 0,
- "changeFrequency": 0,
- "deviceScanFrequency": 0,
- "watchdogEnabled": true,
- "latitude": 0,
- "longitude": 0,
- "gpsMode": "string",
- "logLevel": "string",
- "availableDiskThreshold": 0,
- "pruningFrequency": 0
}| daemonStatus | string |
| warningMessage | string |
| daemonOperatingDuration | number |
| daemonLastStart | number |
| memoryUsage | number |
| diskUsage | number |
| cpuUsage | number |
| memoryViolation | boolean |
| diskViolation | boolean |
| cpuViolation | boolean |
| systemAvailableDisk | integer |
| systemAvailableMemory | integer |
| systemTotalCpu | number |
| securityStatus | string |
| securityViolationInfo | string |
| microserviceStatus | string |
| repositoryCount | number |
| repositoryStatus | string |
| systemTime | number |
| lastStatusTime | number |
| 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 |
{- "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,
- "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"
}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"
}
], - "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"
}
], - "delete": true,
- "deleteWithCleanUp": true,
- "env": [
- {
- "key": "string",
- "value": "string"
}
], - "runAsUser": "string",
- "platform": "string",
- "runtime": "string",
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "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"
}
], - "delete": true,
- "deleteWithCleanUp": true,
- "env": [
- {
- "key": "string",
- "value": "string"
}
], - "runAsUser": "string",
- "platform": "string",
- "runtime": "string",
- "cdiDevices": [
- "string"
], - "capAdd": [
- "string"
], - "capDrop": [
- "string"
], - "cmd": [
- "string"
], - "idConsumer": true,
- "isRouter": true,
- "isNats": true,
- "isController": true
}| 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 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
}| 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"
}