ÿÿ Cloud Native Controller for Edge Native Workloads | Datasance PoT Documentation
Skip to main content

Cloud Native Controller for Edge Native Workloads (3.8.0)

Download OpenAPI specification:Download

Controller

Manage your controller

Returns service health status

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "timestamp": 0
}

Gets architecture list

Responses

Response samples

Content type
application/json
{
  • "architectures": [
    ]
}

ioFog

Manage your agents

Returns list of ioFog nodes

Authorizations:
authToken
Request Body schema: application/json
Array
key
string
value
string
condition
string

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "fogs": [
    ]
}

Creates a new ioFog node

Platform reconcile is asynchronous. Poll GET /iofog/{uuid} for platformStatus, or POST /iofog/{uuid}/reconcile to retry after failure.

Authorizations:
authToken
Request Body schema: application/json
required
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

Responses

Request samples

Content type
application/json
{
  • "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": [
    ],
  • "host": "string",
  • "tags": [
    ],
  • "upstreamRouters": [
    ],
  • "networkRouter": "string"
}

Response samples

Content type
application/json
{
  • "id": "string"
}

Updates existing ioFog node

Platform reconcile is asynchronous. Poll GET /iofog/{uuid} for platformStatus, or POST /iofog/{uuid}/reconcile to retry after failure.

Authorizations:
authToken
path Parameters
uuid
required
string

ioFog node id

Request Body schema: application/json
required
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

Responses

Request samples

Content type
application/json
{
  • "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": [
    ],
  • "host": "string",
  • "tags": [
    ],
  • "upstreamRouters": [
    ],
  • "networkRouter": "string"
}

Deletes an ioFog node

Authorizations:
authToken
path Parameters
uuid
required
string

ioFog node id

Responses

Gets ioFog node info

Authorizations:
authToken
path Parameters
uuid
required
string

ioFog node id

Responses

Response samples

Content type
application/json
{
  • "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": {
    },
  • "availableRuntimes": [
    ],
  • "routerMode": "none",
  • "messagingPort": 0,
  • "upstreamRouters": [
    ],
  • "natsMode": "none",
  • "natsServerPort": 0,
  • "natsLeafPort": 0,
  • "natsClusterPort": 0,
  • "natsMqttPort": 0,
  • "natsHttpPort": 0,
  • "jsStorageSize": "string",
  • "jsMemoryStoreSize": "string",
  • "upstreamNatsServers": [
    ],
  • "platformStatus": {
    }
}

Manually retries fog platform reconcile

Authorizations:
authToken
path Parameters
uuid
required
string

ioFog node id

Responses

Response samples

Content type
application/json
{
  • "uuid": "string"
}

Generates provisioning key for an ioFog node

Authorizations:
authToken
path Parameters
uuid
required
string

ioFog node id

Responses

Response samples

Content type
application/json
{
  • "key": "string",
  • "expirationTime": 0,
  • "caCert": "string"
}

Set change version command

Authorizations:
authToken
path Parameters
uuid
required
string

ioFog node id

versionCommand
required
string
Enum: "upgrade" "rollback"

change version command

Request Body schema: application/json
optional
semver
string^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?...

Target semver for upgrade or rollback

Responses

Request samples

Content type
application/json
{
  • "semver": "string"
}

remote reboot fog agent

Authorizations:
authToken
path Parameters
uuid
required
string

ioFog node id

Responses

prune remote fog agent

Authorizations:
authToken
path Parameters
uuid
required
string

ioFog node id

Responses

Retrieves HAL hardware info

Authorizations:
authToken
path Parameters
uuid
required
string

ioFog node id

Responses

Response samples

Content type
application/json
{
  • "info": "string"
}

Retrieves HAL USB info

Authorizations:
authToken
path Parameters
uuid
required
string

ioFog node id

Responses

Response samples

Content type
application/json
{
  • "info": "string"
}

Retrieves HAL USB info

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "info": "string"
}

Application

Manage your applications

Lists all applications

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "applications": [
    ]
}

Lists all system applications

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "applications": [
    ]
}

Gets an application details

Authorizations:
authToken
path Parameters
name
required
string

Application name

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "description": "string",
  • "isActivated": true,
  • "natsConfig": {
    },
  • "microservices": [
    ]
}

Deletes a system application

Authorizations:
authToken
path Parameters
name
required
string

Application name

Responses

Creates an application using a YAML file

Authorizations:
authToken
Request Body schema: multipart/form-data
required
application
string <binary>

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string"
}

Updates an application metadata

Authorizations:
authToken
path Parameters
name
required
string

Application name

Request Body schema: application/json
required
name
string
description
string
isActivated
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "isActivated": true
}

Deletes an application

Authorizations:
authToken
path Parameters
name
required
string

Application name

Responses

Gets an application details

Authorizations:
authToken
path Parameters
name
required
string

Application name

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "description": "string",
  • "isActivated": true,
  • "natsConfig": {
    },
  • "microservices": [
    ]
}

Updates an application using a YAML file

Authorizations:
authToken
path Parameters
name
required
string

Application name

Request Body schema: multipart/form-data
required
application
string <binary>

Responses

Application Template

Manage your application templates

Lists all application templates

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "applicationTemplates": [
    ]
}

Creates an application template using a YAML file

Authorizations:
authToken
Request Body schema: multipart/form-data
required
application
string <binary>

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string"
}

Patches an application template

Authorizations:
authToken
path Parameters
name
required
string

Application template name

Request Body schema: application/json
required
description
number
name
string

Responses

Request samples

Content type
application/json
{
  • "description": 0,
  • "name": "string"
}

Deletes an application template

Authorizations:
authToken
path Parameters
name
required
string

Application template name

Responses

Gets an application template

Authorizations:
authToken
path Parameters
name
required
string

Application template name

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "description": "string",
  • "application": {
    }
}

Updates or creates an application template

Authorizations:
authToken
path Parameters
name
required
string

Application template name

Request Body schema: multipart/form-data
required
template
string <binary>

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string"
}

Catalog

Manage your catalog

Gets microservices catalog

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "catalogItems": [
    ]
}

Creates a new microservice catalog item

Authorizations:
authToken
Request Body schema: application/json
required

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

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "category": "string",
  • "images": [
    ],
  • "publisher": "string",
  • "diskRequired": 0,
  • "ramRequired": 0,
  • "picture": "string",
  • "isPublic": true,
  • "registryId": 0,
  • "inputType": {
    },
  • "outputType": {
    },
  • "configExample": "string"
}

Response samples

Content type
application/json
{
  • "id": "string"
}

Gets microservice catalog item info

Authorizations:
authToken
path Parameters
id
required
string

Catalog Item Id

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "category": "string",
  • "publisher": "string",
  • "diskRequired": 0,
  • "ramRequired": 0,
  • "picture": "string",
  • "isPublic": true,
  • "registryId": 0,
  • "inputType": {
    },
  • "outputType": {
    },
  • "configExample": "string",
  • "images": [
    ]
}

Updates a microservice catalog item

Authorizations:
authToken
path Parameters
id
required
string

Catalog Item Id

Request Body schema: application/json
required

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

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "category": "string",
  • "images": [
    ],
  • "publisher": "string",
  • "diskRequired": 0,
  • "ramRequired": 0,
  • "picture": "string",
  • "isPublic": true,
  • "registryId": 0,
  • "inputType": {
    },
  • "outputType": {
    },
  • "configExample": "string"
}

Deletes a microservice catalog item

Authorizations:
authToken
path Parameters
id
required
string

Catalog Item Id

Responses

Registries

Manage your registries

Creates new registry

Authorizations:
authToken
Request Body schema: application/json
url
string
isPublic
boolean
username
string
password
string
email
string

Responses

Request samples

Content type
application/json
{
  • "url": "string",
  • "isPublic": true,
  • "username": "string",
  • "password": "string",
  • "email": "string"
}

Gets list of registries

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "registries": [
    ]
}

Deletes a registry

Authorizations:
authToken
path Parameters
id
required
string

Registry id

Responses

Updates a registry

Authorizations:
authToken
path Parameters
id
required
string

Registry id

Request Body schema: application/json
required
url
string
isPublic
boolean
username
string
password
string
email
string

Responses

Request samples

Content type
application/json
{
  • "url": "string",
  • "isPublic": true,
  • "username": "string",
  • "password": "string",
  • "email": "string"
}

Gets a registry

Authorizations:
authToken
path Parameters
id
required
string

Registry id

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "url": "string",
  • "isPublic": true,
  • "username": "string",
  • "password": "string",
  • "userEmail": "string"
}

Microservices

Manage your microservices

Gets list of microservices

Authorizations:
authToken
query Parameters
application
string

Application name

Responses

Response samples

Content type
application/json
{
  • "microservices": [
    ]
}

Creates a new microservice

Authorizations:
authToken
Request Body schema: application/json
required
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

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "config": "string",
  • "annotations": "string",
  • "catalogItemId": 0,
  • "images": [
    ],
  • "application": "string",
  • "iofogUuid": "string",
  • "agentName": "string",
  • "hostNetworkMode": true,
  • "isPrivileged": true,
  • "logSize": 0,
  • "volumeMappings": [
    ],
  • "ports": [
    ],
  • "runAsUser": "string",
  • "platform": "string",
  • "runtime": "string",
  • "cdiDevices": [
    ],
  • "capAdd": [
    ],
  • "capDrop": [
    ],
  • "cmd": [
    ],
  • "natsConfig": {
    },
  • "serviceAccount": {
    }
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "name": "string"
}

Creates a new microservice in an Application

Authorizations:
authToken
Request Body schema: multipart/form-data
required
microservice
string <binary>

Responses

Response samples

Content type
application/json
{
  • "uuid": "string"
}

Gets a microservice info

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

Responses

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "name": "string",
  • "config": "string",
  • "annotations": "string",
  • "hostNetworkMode": true,
  • "isPrivileged": true,
  • "logLimit": 0,
  • "images": [
    ],
  • "iofogUuid": "string",
  • "envs": [
    ],
  • "runAsUser": "string",
  • "platform": "string",
  • "runtime": "string",
  • "cdiDevices": [
    ],
  • "capAdd": [
    ],
  • "capDrop": [
    ],
  • "cmd": [
    ],
  • "volumeMappings": [
    ],
  • "ports": [
    ],
  • "natsAccess": true,
  • "natsConfig": {
    },
  • "status": {
    }
}

Deletes a microservice

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

Responses

Updates a microservice

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

Responses

Gets list of system microservices

Authorizations:
authToken
query Parameters
application
string

Application name

Responses

Response samples

Content type
application/json
{
  • "microservices": [
    ]
}

Gets a system microservice info

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

Responses

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "name": "string",
  • "config": "string",
  • "annotations": "string",
  • "hostNetworkMode": true,
  • "isPrivileged": true,
  • "logLimit": 0,
  • "images": [
    ],
  • "iofogUuid": "string",
  • "envs": [
    ],
  • "runAsUser": "string",
  • "platform": "string",
  • "runtime": "string",
  • "cdiDevices": [
    ],
  • "capAdd": [
    ],
  • "capDrop": [
    ],
  • "cmd": [
    ],
  • "volumeMappings": [
    ],
  • "ports": [
    ],
  • "natsAccess": true,
  • "natsConfig": {
    },
  • "status": {
    }
}

Updates a system microservice

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

Responses

Updates a microservice

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

Request Body schema: multipart/form-data
required
microservice
string <binary>

Responses

Gets a microservice config

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

Responses

Response samples

Content type
application/json
"string"

Updates a microservice config

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

Request Body schema: application/json
required

information about microservice config

string (microservicesConfig)

Responses

Request samples

Content type
application/json
"string"

Deletes a microservice config

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

Responses

Gets a system microservice config

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

Responses

Response samples

Content type
application/json
"string"

Updates a system microservice config

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

Request Body schema: application/json
required

information about microservice config

string (microservicesConfig)

Responses

Request samples

Content type
application/json
"string"

Deletes a system microservice config

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

Responses

Creates a port mapping for microservice

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

Request Body schema: application/json
required

information about port mapping

internal
required
number
external
required
number
protocol
string
Enum: "tcp" "udp"

Responses

Request samples

Content type
application/json
{
  • "internal": 0,
  • "external": 0,
  • "protocol": "tcp"
}

Response samples

Content type
application/json
{
  • "internal": 0,
  • "external": 0,
  • "protocol": "tcp"
}

Get a port mapping list for microservice

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

Responses

Response samples

Content type
application/json
{
  • "ports": [
    ]
}

Creates a port mapping for system microservice

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

Request Body schema: application/json
required

information about port mapping

internal
required
number
external
required
number
protocol
string
Enum: "tcp" "udp"

Responses

Request samples

Content type
application/json
{
  • "internal": 0,
  • "external": 0,
  • "protocol": "tcp"
}

Response samples

Content type
application/json
{
  • "internal": 0,
  • "external": 0,
  • "protocol": "tcp"
}

Deletes a port mapping for microservice

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

internalPort
required
string

Internal Port

Responses

Deletes a port mapping for system microservice

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

internalPort
required
string

Internal Port

Responses

Creates a volume mapping for microservice

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

Request Body schema: application/json
required

information about volume mapping

hostDestination
string
containerDestination
string
accessMode
string

Responses

Request samples

Content type
application/json
{
  • "hostDestination": "/var/dest",
  • "containerDestination": "/var/dest",
  • "accessMode": "rw"
}

Response samples

Content type
application/json
{
  • "id": 0
}

Get a volume mapping list for microservice

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

Responses

Response samples

Content type
application/json
{
  • "volumeMappings": [
    ]
}

Creates a volume mapping for system microservice

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

Request Body schema: application/json
required

information about volume mapping

hostDestination
string
containerDestination
string
accessMode
string

Responses

Request samples

Content type
application/json
{
  • "hostDestination": "/var/dest",
  • "containerDestination": "/var/dest",
  • "accessMode": "rw"
}

Response samples

Content type
application/json
{
  • "id": 0
}

Deletes a volume mapping for microservice

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

id
required
string

Volume id

Responses

Deletes a volume mapping for system microservice

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

id
required
string

Volume id

Responses

Rebuilds a system microservice

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

Responses

Rebuilds a microservice

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

Responses

Starts a microservice

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

Responses

Stops a microservice

Authorizations:
authToken
path Parameters
uuid
required
string

Microservice Uuid

Responses

NATS

Manage NATS operator, hub, accounts, users, and rules

Gets current NATS operator metadata

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "publicKey": "string",
  • "jwt": "string"
}

Rotates NATS operator keys and JWT

Schedules account/user re-sign and resolver reconciliation in background after operator rotation is accepted.

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "publicKey": "string",
  • "jwt": "string"
}

Returns NATS operator and hub system user bootstrap data for K8s installer

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "operatorJwt": "string",
  • "operatorPublicKey": "string",
  • "operatorSeed": "string",
  • "systemAccountJwt": "string",
  • "systemAccountPublicKey": "string",
  • "sysUserCredsBase64": "string"
}

Gets default NATS hub configuration

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "host": "string",
  • "serverPort": 0,
  • "clusterPort": 0,
  • "leafPort": 0,
  • "mqttPort": 0,
  • "httpPort": 0,
  • "jsStorageSize": "string",
  • "jsMemoryStoreSize": "string"
}

Creates or updates default NATS hub

Authorizations:
authToken
Request Body schema: application/json
required
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.

Responses

Request samples

Content type
application/json
{
  • "host": "string",
  • "serverPort": 0,
  • "clusterPort": 0,
  • "leafPort": 0,
  • "mqttPort": 0,
  • "httpPort": 0,
  • "jsStorageSize": "string",
  • "jsMemoryStoreSize": "string"
}

Response samples

Content type
application/json
{
  • "host": "string",
  • "serverPort": 0,
  • "clusterPort": 0,
  • "leafPort": 0,
  • "mqttPort": 0,
  • "httpPort": 0,
  • "jsStorageSize": "string",
  • "jsMemoryStoreSize": "string"
}

Lists all NATS users across accounts

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "users": [
    ]
}

Lists NATS accounts

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "accounts": [
    ]
}

Gets NATS account for application

Authorizations:
authToken
path Parameters
appName
required
string

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "publicKey": "string",
  • "jwt": "string",
  • "isSystem": true,
  • "applicationId": 0
}

Ensures NATS account for application

Authorizations:
authToken
path Parameters
appName
required
string
Request Body schema: application/json
optional
natsRule
string

Account rule name (defaults to default-account if omitted)

Responses

Request samples

Content type
application/json
{
  • "natsRule": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "publicKey": "string",
  • "jwt": "string",
  • "isSystem": true,
  • "applicationId": 0
}

Lists NATS users for application account

Authorizations:
authToken
path Parameters
appName
required
string

Responses

Response samples

Content type
application/json
{
  • "users": [
    ]
}

Creates NATS user for application account

Authorizations:
authToken
path Parameters
appName
required
string
Request Body schema: application/json
required
name
required
string
expiresIn
string^[0-9]+[hdm]$
natsRule
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "expiresIn": "7d",
  • "natsRule": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "publicKey": "string",
  • "jwt": "string",
  • "isBearer": true
}

Gets NATS creds for specific account user

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).

Authorizations:
authToken
path Parameters
appName
required
string

Application name or NATS account name (e.g. SYS, controller)

userName
required
string

Responses

Response samples

Content type
application/json
{
  • "credsBase64": "string"
}

Deletes NATS account user

Authorizations:
authToken
path Parameters
appName
required
string
userName
required
string

Responses

Creates MQTT bearer NATS user JWT

Authorizations:
authToken
path Parameters
appName
required
string
Request Body schema: application/json
required
name
required
string
expiresIn
string^[0-9]+[hdm]$
natsRule
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "expiresIn": "7d",
  • "natsRule": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "publicKey": "string",
  • "jwt": "string",
  • "isBearer": true
}

Deletes MQTT bearer NATS user

Authorizations:
authToken
path Parameters
appName
required
string
userName
required
string

Responses

Lists NATS account rules

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "rules": [
    ]
}

Creates NATS account rule

Authorizations:
authToken
Request Body schema: application/json
required
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

Responses

Request samples

Content type
application/json
{
  • "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": {
    },
  • "respMax": 0,
  • "respTtl": 0,
  • "imports": [
    ],
  • "exports": [
    ],
  • "memStorage": -1,
  • "diskStorage": -1,
  • "streams": -1,
  • "consumer": -1,
  • "maxAckPending": -1,
  • "memMaxStreamBytes": -1,
  • "diskMaxStreamBytes": -1,
  • "maxBytesRequired": true,
  • "tieredLimits": { },
  • "pubAllow": [
    ],
  • "pubDeny": [
    ],
  • "subAllow": [
    ],
  • "subDeny": [
    ]
}

Response samples

Content type
application/json
{
  • "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": {
    },
  • "respMax": 0,
  • "respTtl": 0,
  • "imports": [
    ],
  • "exports": [
    ],
  • "memStorage": -1,
  • "diskStorage": -1,
  • "streams": -1,
  • "consumer": -1,
  • "maxAckPending": -1,
  • "memMaxStreamBytes": -1,
  • "diskMaxStreamBytes": -1,
  • "maxBytesRequired": true,
  • "tieredLimits": { },
  • "pubAllow": [
    ],
  • "pubDeny": [
    ],
  • "subAllow": [
    ],
  • "subDeny": [
    ]
}

Creates NATS account rule from YAML

Authorizations:
authToken
Request Body schema: multipart/form-data
required
natsAccountRule
string <binary>

Responses

Updates NATS account rule

Returns updated rule immediately and schedules downstream account JWT reissue/reconciliation in background.

Authorizations:
authToken
path Parameters
ruleName
required
string
Request Body schema: application/json
required
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

Responses

Request samples

Content type
application/json
{
  • "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": {
    },
  • "respMax": 0,
  • "respTtl": 0,
  • "imports": [
    ],
  • "exports": [
    ],
  • "memStorage": -1,
  • "diskStorage": -1,
  • "streams": -1,
  • "consumer": -1,
  • "maxAckPending": -1,
  • "memMaxStreamBytes": -1,
  • "diskMaxStreamBytes": -1,
  • "maxBytesRequired": true,
  • "tieredLimits": { },
  • "pubAllow": [
    ],
  • "pubDeny": [
    ],
  • "subAllow": [
    ],
  • "subDeny": [
    ]
}

Deletes NATS account rule

Rebinds applications using this rule to default rule and schedules account JWT reissue/reconciliation in background.

Authorizations:
authToken
path Parameters
ruleName
required
string

Responses

Updates NATS account rule from YAML

Returns updated rule immediately and schedules downstream account JWT reissue/reconciliation in background.

Authorizations:
authToken
path Parameters
ruleName
required
string
Request Body schema: multipart/form-data
required
natsAccountRule
string <binary>

Responses

Lists NATS user rules

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "rules": [
    ]
}

Creates NATS user rule

Authorizations:
authToken
Request Body schema: application/json
required
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

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "maxSubscriptions": -1,
  • "maxPayload": -1,
  • "maxData": -1,
  • "bearerToken": true,
  • "proxyRequired": true,
  • "allowedConnectionTypes": [
    ],
  • "src": [
    ],
  • "times": [
    ],
  • "timesLocation": "string",
  • "respMax": 0,
  • "respTtl": 0,
  • "pubAllow": [
    ],
  • "pubDeny": [
    ],
  • "subAllow": [
    ],
  • "subDeny": [
    ],
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "maxSubscriptions": -1,
  • "maxPayload": -1,
  • "maxData": -1,
  • "bearerToken": true,
  • "proxyRequired": true,
  • "allowedConnectionTypes": [
    ],
  • "src": [
    ],
  • "times": [
    ],
  • "timesLocation": "string",
  • "respMax": 0,
  • "respTtl": 0,
  • "pubAllow": [
    ],
  • "pubDeny": [
    ],
  • "subAllow": [
    ],
  • "subDeny": [
    ],
  • "tags": [
    ]
}

Creates NATS user rule from YAML

Authorizations:
authToken
Request Body schema: multipart/form-data
required
natsUserRule
string <binary>

Responses

Updates NATS user rule

Returns updated rule immediately and schedules bound user JWT+creds reissue/reconciliation in background.

Authorizations:
authToken
path Parameters
ruleName
required
string
Request Body schema: application/json
required
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

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "maxSubscriptions": -1,
  • "maxPayload": -1,
  • "maxData": -1,
  • "bearerToken"<ÿÿ/span>: true,
  • "proxyRequired": true,
  • "allowedConnectionTypes": [
    ],
  • "src": [
    ],
  • "times": [
    ],
  • "timesLocation": "string",
  • "respMax": 0,
  • "respTtl": 0,
  • "pubAllow": [
    ],
  • "pubDeny": [
    ],
  • "subAllow": [
    ],
  • "subDeny": [
    ],
  • "tags": [
    ]
}

Deletes NATS user rule

Rebinds microservices using this rule to default rule and schedules user JWT+creds reissue/reconciliation in background.

Authorizations:
authToken
path Parameters
ruleName
required
string

Responses

Updates NATS user rule from YAML

Returns updated rule immediately and schedules bound user JWT+creds reissue/reconciliation in background.

Authorizations:
authToken
path Parameters
ruleName
required
string
Request Body schema: multipart/form-data
required
natsUserRule
string <binary>

Responses

Tunnel

Manage ssh tunnels

Opens/closes ssh tunnel

Authorizations:
authToken
path Parameters
uuid
required
string

ioFog node id

Request Body schema: application/json
required
action
string
Enum: "open" "close"

Responses

Request samples

Content type
application/json
{
  • "action": "open"
}

Gets current info about ioFog node ssh tunnel status

Authorizations:
authToken
path Parameters
uuid
required
string

ioFog node id

Responses

Response samples

Content type
application/json
{
  • "username": "string",
  • "host": "string",
  • "remotePort": 0,
  • "localPort": 0,
  • "status": "string"
}

Agent

Used by your agents to communicate with your controller

Provision agent with an ioFog node

Request Body schema: application/json
required
type
required
number [ 0 .. 4 ]

Architecture code

  • '0': auto
  • '1': amd64
  • '2': arm64
  • '3': riscv64
  • '4': arm
engine
string
Enum: "edgelet" "docker" "podman"

Container engine selected at provision time

key
required
string

provisioning key

Responses

Request samples

Content type
application/json
{
  • "type": 4,
  • "engine": "edgelet",
  • "key": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "token": "string"
}

Deprovision agent

Request Body schema: application/json
required
microserviceUuids
Array of strings

Responses

Request samples

Content type
application/json
{
  • "microserviceUuids": [
    ]
}

Move Controller CA to Agent

Authorizations:
authToken

Responses

Get an ioFog node configuration

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "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
}

Updates an ioFog node configuration

Authorizations:
authToken
Request Body schema: application/json
required
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

Responses

Request samples

Content type
application/json
{
  • "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
}

Updates an ioFog node GPS configuration

Authorizations:
authToken
Request Body schema: application/json
required
latitude
number
longitude
number

Responses

Request samples

Content type
application/json
{
  • "latitude": 0,
  • "longitude": 0
}

Gets ioFog node changes

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "config": true,
  • "version": true,
  • "reboot": true,
  • "deleteNode": true,
  • "microservicesList": true,
  • "microservicesConfig": true,
  • "registries": true,
  • "tunnel": true,
  • "prune": true,
  • "routerChanged": true
}

Resets ioFog node changes list

Authorizations:
authToken

Responses

Posts agent status to ioFog node

Authorizations:
authToken
Request Body schema: application/json
required
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

Responses

Request samples

Content type
application/json
{
  • "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": [
    ],
  • "runtimeAgentPhase": "string",
  • "controlPlaneQuiesced": true,
  • "tunnelStatus": "string",
  • "version": "string",
  • "isReadyToUpgrade": true,
  • "isReadyToRollback": true,
  • "activeVolumeMounts": 0,
  • "volumeMountLastUpdate": 0,
  • "gpsStatus": "string"
}

Register ControlPlane controller microservice

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.

Authorizations:
authToken
Request Body schema: application/json
required
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)

Responses

Request samples

Content type
application/json
{
  • "uuid": "string",
  • "name": "controller",
  • "images": [
    ],
  • "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": [
    ],
  • "volumeMappings": [
    ],
  • "extraHosts": [
    ],
  • "env": [
    ],
  • "cmd": [
    ],
  • "cdiDevices": [
    ],
  • "capAdd": [
    ],
  • "capDrop": [
    ],
  • "healthCheck": {
    },
  • "schedule": 0
}

Response samples

Content type
application/json
{
  • "uuid": "string"
}

Gets microservices running on an ioFog node

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "microservices": [
    ]
}

Gets microservices running on an ioFog node

Authorizations:
authToken
path Parameters
microserviceUuid
required
string

Microservice UUID

Responses

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "imageId": "string",
  • "config": "string",
  • "annotations": "string",
  • "rebuild": true,
  • "hostNetworkMode": true,
  • "isPrivileged": true,
  • "logSize": 0,
  • "registryId": 0,
  • "portMappings": [
    ],
  • "volumeMappings": [
    ],
  • "delete": true,
  • "deleteWithCleanUp": true,
  • "env": [
    ],
  • "runAsUser": "string",
  • "platform": "string",
  • "runtime": "string",
  • "cdiDevices": [
    ],
  • "capAdd": [
    ],
  • "capDrop": [
    ],
  • "cmd": [
    ],
  • "idConsumer": true,
  • "isRouter": true,
  • "isNats": true,
  • "isController": true
}

Gets list of Docker registries

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "registries": [
    ]
}

Get an ioFog node tunnel configuration

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "username": "string",
  • "password": "string",
  • "host": "string",
  • "remotePort": 0,
  • "localPort": 0,
  • "rsaKey": "string",
  • "closed": true
}

Get change version command

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "versionCommand": "string",
  • "provisionKey": "string",
  • "expirationTime": "string",
  • "semver": "string"
}

Updates HAL hardware info

Authorizations:
authToken
Request Body schema: application/json
required
info
required
string

Responses

Request samples

Content type
application/json
{
  • "info": "string"
}

Updates HAL USB info

Authorizations:
authToken
Request Body schema: application/json
required
info
required
string

Responses

Request samples

Content type
application/json
{
  • "info": "string"
}

Deletes an ioFog node

Authorizations:
authToken

Responses

Post tracking info

Authorizations:
authToken
Request Body schema: application/json
required
Array
uuid
required
string
sourceType
string
timestamp
number
type
string
data
object

Responses

Request samples

Content type
application/json
[
  • {
    }
]

List pending and active exec sessions for this agent

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}.

Authorizations:
fogToken

Responses

Response samples

Content type
application/json
{
  • "execSessions": [
    ]
}

WebSocketSessions

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.

User exec WebSocket (HTTP upgrade)

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.

Authorizations:
authToken
path Parameters
microserviceUuid
required
string <uuid>
query Parameters
token
string

Bearer JWT for browser clients (redact in ingress access logs)

Responses

User system microservice exec WebSocket

Same as user exec WS; RBAC systemExecSessions.

Authorizations:
authToken
path Parameters
microserviceUuid
required
string <uuid>
query Parameters
token
string

Responses

User microservice log streaming WebSocket

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.

Authorizations:
authToken
path Parameters
uuid
required
string <uuid>
query Parameters
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

Responses

User system microservice log WebSocket

Authorizations:
authToken
path Parameters
uuid
required
string <uuid>
query Parameters
token
string
tail
integer [ 1 .. 5000 ]
follow
boolean
since
string <date-time>
until
string <date-time>

Responses

User fog (node) log streaming WebSocket

Node-level logs; RBAC systemLogs. Max 5 concurrent sessions per fog.

Authorizations:
authToken
path Parameters
uuid
required
string <uuid>
query Parameters
token
string
tail
integer [ 1 .. 5000 ]
follow
boolean
since
string <date-time>
until
string <date-time>

Responses

Agent exec WebSocket (session-scoped)

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).

Authorizations:
fogToken
path Parameters
microserviceUuid
required
string <uuid>
sessionId
required
string <uuid>

Responses

Agent microservice log WebSocket

Authorizations:
fogToken
path Parameters
microserviceUuid
required
string <uuid>
sessionId
required
string <uuid>

Responses

Agent fog log WebSocket

Authorizations:
fogToken
path Parameters
iofogUuid
required
string <uuid>
sessionId
required
string <uuid>

Responses

User

Manage your users

Login

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.

Request Body schema: application/json
required
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)

Responses

Request samples

Content type
application/json
{
  • "email": "string",
  • "password": "string",
  • "totp": "string"
}

Response samples

Content type
application/json
{
  • "accessToken": "string",
  • "refreshToken": "string"
}

Refresh accessToken with refreshToken

Request Body schema: application/json
required
refreshToken
required
string

Responses

Request samples

Content type
application/json
{
  • "refreshToken": "string"
}

Response samples

Content type
application/json
{
  • "accessToken": "string",
  • "refreshToken": "string"
}

Logout

Authorizations:
authToken

Responses

Get current user profile data

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).

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "sub": "string",
  • "email": "string",
  • "preferred_username": "string",
  • "groups": [
    ],
  • "password_change_required": true,
  • "mfaEnabled": true
}

Change password (authenticated or via reset token)

Request Body schema: application/json
required
currentPassword
string
newPassword
required
string
resetToken
string

Responses

Request samples

Content type
application/json
{
  • "currentPassword": "string",
  • "newPassword": "string",
  • "resetToken": "string"
}

Response samples

Content type
application/json
{
  • "status": "string"
}

Begin MFA enrollment (embedded mode)

Start TOTP enrollment for the authenticated user.

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "secret": "string",
  • "otpauthUrl": "string"
}

Confirm MFA enrollment with TOTP code

Complete TOTP enrollment for the authenticated user.

Authorizations:
authToken
Request Body schema: application/json
required
code
required
string

Responses

Request samples

Content type
application/json
{
  • "code": "string"
}

Response samples

Content type
application/json
{
  • "status": "string"
}

Disable MFA for the current user

Authorizations:
authToken
Request Body schema: application/json
required
password
required
string
code
string

Responses

Request samples

Content type
application/json
{
  • "password": "string",
  • "code": "string"
}

Response samples

Content type
application/json
{
  • "status": "string"
}

Start OAuth authorization (BFF)

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.

Responses

Response samples

Content type
application/json
{
  • "name": "RateLimitExceededError",
  • "message": "Too many authentication requests from this IP address"
}

OAuth authorization callback (BFF)

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.

Responses

Response samples

Content type
application/json
{
  • "accessToken": "string",
  • "refreshToken": "string"
}

Get embedded OAuth interaction status

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.

path Parameters
uid
required
string

Responses

Response samples

Content type
application/json
{
  • "step": "login"
}

Submit credentials for embedded OAuth interaction

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).

path Parameters
uid
required
string
Request Body schema: application/json
required
email
required
string

Login identifier (not required to be an email address)

password
required
string

Responses

Request samples

Content type
application/json
{
  • "email": "string",
  • "password": "string"
}

Response samples

Content type
application/json
{
  • "step": "login"
}

Submit TOTP for embedded OAuth interaction

Embedded auth mode only. Verifies TOTP for admin users with MFA enabled during the OAuth interaction. Returns the next step on success.

path Parameters
uid
required
string
Request Body schema: application/json
required
code
required
string

Responses

Request samples

Content type
application/json
{
  • "code": "string"
}

Response samples

Content type
application/json
{
  • "step": "login"
}

Start MFA enrollment during embedded OAuth interaction

Embedded auth mode only. Starts admin MFA enrollment during the browser OAuth interaction (browser-only first enrollment). Returns TOTP secret material for QR display.

path Parameters
uid
required
string

Responses

Response samples

Content type
application/json
{
  • "step": "string",
  • "secret": "string",
  • "otpauthUrl": "string"
}

Confirm MFA enrollment during embedded OAuth interaction

Embedded auth mode only. Confirms MFA enrollment with a TOTP code during the browser OAuth interaction. Returns recovery codes on success.

path Parameters
uid
required
string
Request Body schema: application/json
required
code
required
string

Responses

Request samples

Content type
application/json
{
  • "code": "string"
}

Response samples

Content type
application/json
{
  • "step": "string",
  • "recoveryCodes": [
    ]
}

Forced password change during embedded OAuth interaction

Embedded auth mode only. Forced password change step before OAuth tokens are issued when mustChangePassword is true. Requires currentPassword and newPassword in the body.

path Parameters
uid
required
string
Request Body schema: application/json
required
currentPassword
string
newPassword
required
string
resetToken
string

Responses

Request samples

Content type
application/json
{
  • "currentPassword": "string",
  • "newPassword": "string",
  • "resetToken": "string"
}

Response samples

Content type
application/json
{
  • "step": "login"
}

Finish embedded OAuth interaction

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.

path Parameters
uid
required
string

Responses

Response samples

Content type
application/json
{
  • "redirectTo": "string",
  • "step": "complete"
}

Secrets

Manage your secrets

Creates a new secret

Authorizations:
authToken
Request Body schema: application/json
required
name
required
string [ 1 .. 255 ] characters
type
required
string
Enum: "Opaque" "tls"
data
required
object

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "type": "Opaque",
  • "data": { }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "type": "Opaque",
  • "data": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Lists all secrets

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "secrets": [
    ]
}

Gets a secret by name

Authorizations:
authToken
path Parameters
name
required
string

Secret name

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "type": "Opaque",
  • "data": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Updates an existing secret

Authorizations:
authToken
path Parameters
name
required
string

Secret name

Request Body schema: application/json
required
data
required
object

Responses

Request samples

Content type
application/json
{
  • "data": { }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "type": "Opaque",
  • "data": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Deletes a secret

Authorizations:
authToken
path Parameters
name
required
string

Secret name

Responses

Create a secret from YAML file

Authorizations:
authToken
Request Body schema: multipart/form-data
secret
string <binary>

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "type": "Opaque",
  • "data": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Updates an existing secret using YAML

Authorizations:
authToken
path Parameters
name
required
string

Secret name

Request Body schema: multipart/form-data
secret
string <binary>

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "type": "Opaque",
  • "data": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Certificates

Manage your certificates

Get a Certificate Authority (CA) by name

Authorizations:
authToken
path Parameters
name
required
string

CA name

Responses

Response samples

Content type
application/json
{
  • "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": {
    }
}

Delete a Certificate Authority (CA) by name

Authorizations:
authToken
path Parameters
name
required
string

CA name

Responses

Create a new certificate

Authorizations:
authToken
Request Body schema: application/json
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

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "subject": "string",
  • "hosts": "string",
  • "expiration": 0,
  • "ca": {
    }
}

Response samples

Content type
application/json
{
  • "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": [
    ],
  • "days_remaining": 0,
  • "is_expired": true,
  • "data": {
    }
}

List all certificates

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "certificates": [
    ]
}

List certificates that will expire soon

Authorizations:
authToken
query Parameters
days
integer
Default: 30

Number of days ahead to check for expiration (default 30)

Responses

Response samples

Content type
application/json
{
  • "certificates": [
    ]
}

Get a certificatÿÿe by name

Authorizations:
authToken
path Parameters
name
required
string

Certificate name

Responses

Response samples

Content type
application/json
{
  • "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": [
    ],
  • "days_remaining": 0,
  • "is_expired": true,
  • "data": {
    }
}

Delete a certificate by name

Authorizations:
authToken
path Parameters
name
required
string

Certificate name

Responses

Renew a certificate

Authorizations:
authToken
path Parameters
name
required
string

Certificate name

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "subject": "string",
  • "hosts": "string",
  • "valid_from": "2019-08-24T14:15:22Z",
  • "valid_to": "2019-08-24T14:15:22Z",
  • "renewed": true
}

Create a certificate or CA from YAML file

Authorizations:
authToken
Request Body schema: multipart/form-data
certificate
string <binary>

Responses

Response samples

Content type
application/json
Example
{
  • "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": {
    }
}

Services

Manage your services

Gets list of services

Authorizations:
authToken

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Creates a new service

Authorizations:
authToken
Request Body schema: application/json
required
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. pending after create/update/delete enqueue or manual retry; ready after hub connector/listener and K8s Service reconcile succeed; failed after max worker attempts (use POST reconcile to retry). Edge fog bridge updates are tracked separately via fog platform reconcile.

provisioningError
string or null

Last hub reconcile error when provisioningStatus is failed

tags
Array of strings

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "type": "string",
  • "resource": "string",
  • "defaultBridge": "string",
  • "bridgePort": 0,
  • "targetPort": 0,
  • "servicePort": 0,
  • "k8sType": "string",
  • "serviceEndpoint": "string",
  • "provisioningStatus": "pending",
  • "provisioningError": "string",
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "type": "string",
  • "resource": "string",
  • "defaultBridge": "string",
  • "bridgePort": 0,
  • "targetPort": 0,
  • "servicePort": 0,
  • "k8sType": "string",
  • "serviceEndpoint": "string",
  • "provisioningStatus": "pending",
  • "provisioningError": "string",
  • "tags": [
    ]
}

Gets a service info

Authorizations:
authToken
path Parameters
name
required
string

Service name

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "type": "string",
  • "resource": "string",
  • "defaultBridge": "string",
  • "bridgePort": 0,
  • "targetPort": 0,
  • "servicePort": 0,
  • "k8sType": "string",
  • "serviceEndpoint": "string",
  • "provisioningStatus": "pending",
  • "provisioningError": "string",
  • "tags": [
    ]
}

Deletes a service

Authorizations:
authToken
path Parameters
name
required
string

Service name

Responses

Patches a service

Authorizations:
authToken
path Parameters
name
required
string

Service name

Request Body schema: application/json
required
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. pending after create/update/delete enqueue or manual retry; ready after hub connector/listener and K8s Service reconcile succeed; failed after max worker attempts (use POST reconcile to retry). Edge fog bridge updates are tracked separately via fog platform reconcile.

provisioningError
string or null

Last hub reconcile error when provisioningStatus is failed

tags
Array of strings

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "type": "string",
  • "resource": "string",
  • "defaultBridge": "string",
  • "bridgePort": 0,
  • "targetPort": 0,
  • "servicePort": 0,
  • "k8sType": "string",
  • "serviceEndpoint": "string",
  • "provisioningStatus": "pending",
  • "provisioningError": "string",
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "type": "string",
  • "resource": "string",
  • "defaultBridge": "string",
  • "bridgePort": 0,
  • "targetPort": 0,
  • "servicePort": 0,
  • "k8sType": "string",
  • "serviceEndpoint": "string",
  • "provisioningStatus": "pending",
  • "provisioningError": "string",
  • "tags": [
    ]
}

Manually retries service platform reconcile

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.

Authorizations:
authToken
path Parameters
name
required
string

Service name

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "type": "string",
  • "resource": "string",
  • "defaultBridge": "string",
  • "bridgePort": 0,
  • "targetPort": 0,
  • "servicePort": 0,
  • "k8sType": "string",
  • "serviceEndpoint": "string",
  • "provisioningStatus": "pending",
  • "provisioningError": "string",
  • "tags": [
    ]
}

Creates a new service from YAML

Authorizations:
authToken
Request Body schema: multipart/form-data
required
service
string <binary>

Responses

Response samples

Content type
application/json
{
  • "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"
}

Updates a service using YAML

Authorizations:
authToken
path Parameters
name
required
string

Service name

Request Body schema: multipart/form-data
required
service
string <binary>

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "type": "string",
  • "resource": "string",
  • "defaultBridge": "string",
  • "bridgePort": 0,
  • "targetPort": 0,
  • "servicePort": 0,
  • "k8sType": "string",
  • "serviceEndpoint": "string",
  • "provisioningStatus": "pending",
  • "provisioningError": "string",
  • "tags": [
    ]
}

VolumeMounts

Manage your volume mounts

Returns list of volume mounts

Authorizations:
authToken

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Creates a new volume mount

Authorizations:
authToken
Request Body schema: application/json
required
One of
name
required
string
secretName
required
string
configMapName
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "secretName": "string",
  • "configMapName": "string"
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "name": "string",
  • "secretName": "string",
  • "configMapName": "string",
  • "version": 0
}

Creates a new volume mount from YAML

Authorizations:
authToken
Request Body schema: application/x-yaml
required
string

Responses

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "name": "string",
  • "secretName": "string",
  • "configMapName": "string",
  • "version": 0
}

Gets volume mount info

Authorizations:
authToken
path Parameters
name
required
string

Volume mount name

Responses

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "name": "string",
  • "secretName": "string",
  • "configMapName": "string",
  • "version": 0
}

Updates existing volume mount

Authorizations:
authToken
path Parameters
name
required
string

Volume mount name

Request Body schema: application/json
required
One of
name
string
secretName
required
string
configMapName
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "secretName": "string",
  • "configMapName": "string"
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "name": "string",
  • "secretName": "string",
  • "configMapName": "string",
  • "version": 0
}

Deletes a volume mount

Authorizations:
authToken
path Parameters
name
required
string

Volume mount name

Responses

Updates existing volume mount from YAML

Authorizations:
authToken
path Parameters
name
required
string

Volume mount name

Request Body schema: application/x-yaml
required
string

Responses

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "name": "string",
  • "secretName": "string",
  • "configMapName": "string",
  • "version": 0
}

Links volume mount to fog nodes

Authorizations:
authToken
path Parameters
name
required
string

Volume mount name

Request Body schema: application/json
required
fogUuids
required
Array of strings non-empty

Responses

Request samples

Content type
application/json
{
  • "fogUuids": [
    ]
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "name": "string",
  • "secretName": "string",
  • "configMapName": "string",
  • "version": 0
}

Unlinks volume mount from fog nodes

Authorizations:
authToken
path Parameters
name
required
string

Volume mount name

Request Body schema: application/json
required
fogUuids
required
Array of strings non-empty

Responses

Request samples

Content type
application/json
{
  • "fogUuids": [
    ]
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "name": "string",
  • "secretName": "string",
  • "configMapName": "string",
  • "version": 0
}

ConfigMap

Manage your config maps

Creates a new ConfigMap

Authorizations:
authToken
Request Body schema: application/json
name
required
string [ 1 .. 255 ] characters
data
required
object

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "data": { }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "data": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Lists all ConfigMaps

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "configMaps": [
    ]
}

Creates a new ConfigMap from YAML

Authorizations:
authToken
Request Body schema: multipart/form-data
configMap
string <binary>

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "data": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Gets a ConfigMap by name

Authorizations:
authToken
path Parameters
name
required
string

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "data": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Updates a ConfigMap

Authorizations:
authToken
path Parameters
name
required
string
Request Body schema: application/json
data
required
object

Responses

Request samples

Content type
application/json
{
  • "data": { }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "data": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Deletes a ConfigMap

Authorizations:
authToken
path Parameters
name
required
string

Responses

Updates a ConfigMap from YAML

Authorizations:
authToken
path Parameters
name
required
string
Request Body schema: multipart/form-data
configMap
string <binary>

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "data": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Events

Manage audit events

List audit events

Retrieve audit events with optional filters and pagination.

Authorizations:
authToken
query Parameters
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)

Responses

Response samples

Content type
application/json
{
  • "events": [
    ],
  • "total": 0,
  • "limit": 0,
  • "offset": 0
}

Delete audit events

Delete all events when days is 0, or delete events older than the provided number of days.

Authorizations:
authToken
Request Body schema: application/json
required
days
required
integer [ 0 .. 365 ]

Responses

Request samples

Content type
application/json
{
  • "days": 365
}

Response samples

Content type
application/json
{
  • "deletedCount": 0,
  • "deletedBefore": "2019-08-24T14:15:22Z",
  • "deletedAt": "2019-08-24T14:15:22Z",
  • "deletedAll": true
}

Roles

Manage RBAC roles

Lists all roles

Authorizations:
authToken

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Creates a new role

Authorizations:
authToken
Request Body schema: application/json
required
name
required
string
apiVersion
string
kind
string
required
Array of objects (RbacRule)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "apiVersion": "string",
  • "kind": "string",
  • "rules": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "apiVersion": "string",
  • "kind": "string",
  • "rules": [
    ]
}

Create a role from YAML file

Authorizations:
authToken
Request Body schema: multipart/form-data
required
role
string <binary>

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "apiVersion": "string",
  • "kind": "string",
  • "rules": [
    ]
}

Gets a role by name

Authorizations:
authToken
path Parameters
name
required
string

Role name

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "apiVersion": "string",
  • "kind": "string",
  • "rules": [
    ]
}

Updates an existing role

Authorizations:
authToken
path Parameters
name
required
string

Role name

Request Body schema: application/json
required
name
required
string
apiVersion
string
kind
string
required
Array of objects (RbacRule)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "apiVersion": "string",
  • "kind": "string",
  • "rules": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "apiVersion": "string",
  • "kind": "string",
  • "rules": [
    ]
}

Deletes a role

Authorizations:
authToken
path Parameters
name
required
string

Role name

Responses

Updates an existing role using YAML

Authorizations:
authToken
path Parameters
name
required
string

Role name

Request Body schema: multipart/form-data
required
role
string <binary>

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "apiVersion": "string",
  • "kind": "string",
  • "rules": [
    ]
}

RoleBindings

Manage RBAC role bindings

Lists all role bindings

Authorizations:
authToken

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Creates a new role binding

Authorizations:
authToken
Request Body schema: application/json
required
name
required
string
apiVersion
string
kind
string
required
object (RoleRef)
required
Array of objects (Subject)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "apiVersion": "string",
  • "kind": "string",
  • "roleRef": {
    },
  • "subjects": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "apiVersion": "string",
  • "kind": "string",
  • "roleRef": {
    },
  • "subjects": [
    ]
}

Create a role binding from YAML file

Authorizations:
authToken
Request Body schema: multipart/form-data
required
rolebinding
string <binary>

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "apiVersion": "string",
  • "kind": "string",
  • "roleRef": {
    },
  • "subjects": [
    ]
}

Gets a role binding by name

Authorizations:
authToken
path Parameters
name
required
string

RoleBinding name

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "apiVersion": "string",
  • "kind": "string",
  • "roleRef": {
    },
  • "subjects": [
    ]
}

Updates an existing role binding

Authorizations:
authToken
path Parameters
name
required
string

RoleBinding name

Request Body schema: application/json
required
name
required
string
apiVersion
string
kind
string
required
object (RoleRef)
required
Array of objects (Subject)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "apiVersion": "string",
  • "kind": "string",
  • "roleRef": {
    },
  • "subjects": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "apiVersion": "string",
  • "kind": "string",
  • "roleRef": {
    },
  • "subjects": [
    ]
}

Deletes a role binding

Authorizations:
authToken
path Parameters
name
required
string

RoleBinding name

Responses

Updates an existing role binding using YAML

Authorizations:
authToken
path Parameters
name
required
string

RoleBinding name

Request Body schema: multipart/form-data
required
rolebinding
string <binary>

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "apiVersion": "string",
  • "kind": "string",
  • "roleRef": {
    },
  • "subjects": [
    ]
}

Router

Manage the default router configuration

Gets the default network router configuration

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "host": "string",
  • "messagingPort": 0,
  • "edgeRouterPort": 0,
  • "interRouterPort": 0
}

Creates or updates the default network router

Authorizations:
authToken
Request Body schema: application/json
required
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

Responses

Request samples

Content type
application/json
{
  • "host": "string",
  • "messagingPort": 1,
  • "edgeRouterPort": 1,
  • "interRouterPort": 1
}

Response samples

Content type
application/json
{
  • "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"
}

NetworkTopology

Read-only router and NATS network topology for visualization

Network topology summary counts

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "controlPlane": "kubernetes",
  • "router": {
    },
  • "nats": {
    }
}

Router topology overview

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "defaultNode": {
    },
  • "interiorNodes": [
    ],
  • "spokeGroups": [
    ]
}

NATS topology overview

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "defaultNode": {
    },
  • "serverNodes": [
    ],
  • "spokeGroups": [
    ]
}

List router topology nodes

Authorizations:
authToken
query Parameters
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

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "limit": 0,
  • "offset": 0,
  • "nodes": [
    ]
}

List NATS topology nodes

Authorizations:
authToken
query Parameters
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

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "limit": 0,
  • "offset": 0,
  • "nodes": [
    ]
}

Get a router topology node

Authorizations:
authToken
path Parameters
id
required
string

Router node id (default-router or agent iofog UUID)

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "iofogUuid": "string",
  • "fogName": "string",
  • "host": "string",
  • "deploymentTarget": "kubernetes",
  • "displayName": "string",
  • "role": "string",
  • "mode": "string",
  • "messagingPort": 0,
  • "edgeRouterPort": 0,
  • "interRouterPort": 0,
  • "isDefault": true
}

Get a NATS topology node

Authorizations:
authToken
path Parameters
id
required
string

NATS node id (default-nats-hub or agent iofog UUID)

Responses

Response samples

Content type
application/json
{
  • "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
}

Get router node connections

Authorizations:
authToken
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "upstream": [
    ],
  • "downstream": [
    ]
}

Get NATS node connections

Authorizations:
authToken
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "upstream": [
    ],
  • "downstream": [
    ]
}

List router topology connections

Authorizations:
authToken
query Parameters
limit
integer [ 1 .. 500 ]
Default: 100
offset
integer >= 0
Default: 0

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "limit": 0,
  • "offset": 0,
  • "connections": [
    ]
}

List NATS topology connections

Authorizations:
authToken
query Parameters
limit
integer [ 1 .. 500 ]
Default: 100
offset
integer >= 0
Default: 0

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "limit": 0,
  • "offset": 0,
  • "connections": [
    ]
}

Get router topology subgraph

Authorizations:
authToken
query Parameters
center
required
string
depth
integer [ 1 .. 2 ]
Default: 1
limit
integer [ 1 .. 500 ]
Default: 100

Responses

Response samples

Content type
application/json
{
  • "nodes": [
    ],
  • "connections": [
    ]
}

Get NATS topology subgraph

Authorizations:
authToken
query Parameters
center
required
string
depth
integer [ 1 .. 2 ]
Default: 1
limit
integer [ 1 .. 500 ]
Default: 100

Responses

Response samples

Content type
application/json
{
  • "nodes": [
    ],
  • "connections": [
    ]
}

ServiceAccounts

Manage RBAC service accounts

Lists all service accounts

Authorizations:
authToken
query Parameters
applicationName
string

Filter by application name

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Creates a new service account

Authorizations:
authToken
Request Body schema: application/json
required
name
required
string
applicationName
required
string

Application name this service account belongs to

required
object (RoleRef)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "applicationName": "string",
  • "roleRef": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "applicationName": "string",
  • "roleRef": {
    }
}

Create a service account from YAML file

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

Authorizations:
authToken
Request Body schema: multipart/form-data
required
serviceaccount
string <binary>

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "applicationName": "string",
  • "roleRef": {
    }
}

Gets a service account by application name and service account name

Authorizations:
authToken
path Parameters
appName
required
string

Application name

name
required
string

ServiceAccount name

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "applicationName": "string",
  • "roleRef": {
    }
}

Updates an existing service account

Authorizations:
authToken
path Parameters
appName
required
string

Application name

name
required
string

ServiceAccount name

Request Body schema: application/json
required
name
required
string
applicationName
required
string

Application name this service account belongs to

required
object (RoleRef)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "applicationName": "string",
  • "roleRef": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "applicationName": "string",
  • "roleRef": {
    }
}

Deletes a service account

Authorizations:
authToken
path Parameters
appName
required
string

Application name

name
required
string

ServiceAccount name

Responses

Updates an existing service account using YAML

Authorizations:
authToken
path Parameters
appName
required
string

Application name

name
required
string

ServiceAccount name

Request Body schema: multipart/form-data
required
serviceaccount
string <binary>

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "applicationName": "string",
  • "roleRef": {
    }
}

Cluster

Lists cluster controllers (active replicas by default)

Authorizations:
authToken
query Parameters
includeInactive
boolean
Default: false

When true, include inactive controller rows (historical replicas from past rollouts). Default false returns only active replicas.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Gets a cluster controller details

Authorizations:
authToken
path Parameters
uuid
required
string

Cluster controller UUID

Responses

Response samples

Content type
application/json
{
  • "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"
}

Updates a cluster controller

Authorizations:
authToken
path Parameters
uuid
required
string

Cluster controller UUID

Request Body schema: application/json
host
string

Responses

Request samples

Content type
application/json
{
  • "host": "string"
}

Response samples

Content type
application/json
{
  • "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"
}

Deletes a cluster controller

Authorizations:
authToken
path Parameters
uuid
required
string

Cluster controller UUID

Responses

Auth Admin

Export embedded auth users for external IdP migration

Admin-only. Exports user UUIDs, emails, and group memberships. No secrets or password hashes.

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "exportedAt": "2019-08-24T14:15:22Z",
  • "authMode": "embedded",
  • "users": [
    ],
  • "groups": [
    ]
}

Rotate embedded OIDC signing keys (manual)

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.

Authorizations:
authToken

Responses

Response samples

Content type
application/json
{
  • "kid": "string",
  • "rotatedAt": "2019-08-24T14:15:22Z",
  • "restartRequired": true
}

Auth Users

List embedded auth users

Authorizations:
authToken

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create embedded auth user

Admin-created users receive mustChangePassword: true so the first login forces a password change (browser interaction step or CLI JWT password_change_required gate).

Authorizations:
authToken
Request Body schema: application/json
required
email
required
string
password
required
string
groups
Array of strings

Responses

Request samples

Content type
application/json
{
  • "email": "string",
  • "password": "string",
  • "groups": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "email": "string",
  • "groups": [
    ],
  • "mustChangePassword": true,
  • "mfaEnabled": true,
  • "isBootstrap": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Get embedded auth user

Authorizations:
authToken
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "email": "string",
  • "groups": [
    ],
  • "mustChangePassword": true,
  • "mfaEnabled": true,
  • "isBootstrap": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Update embedded auth user

Authorizations:
authToken
path Parameters
id
required
string
Request Body schema: application/json
required
email
string
groups
Array of strings

Responses

Request samples

Content type
application/json
{
  • "email": "string",
  • "groups": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "email": "string",
  • "groups": [
    ],
  • "mustChangePassword": true,
  • "mfaEnabled": true,
  • "isBootstrap": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Soft-delete embedded auth user

Authorizations:
authToken
path Parameters
id
required
string

Responses

Reset user password to a temporary value

Authorizations:
authToken
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "temporaryPassword": "string",
  • "mustChangePassword": true
}

Issue a one-time password reset token

Authorizations:
authToken
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "resetToken": "string",
  • "expiresIn": 0
}

Auth Groups

List auth groups

Authorizations:
authToken

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create custom auth group

Authorizations:
authToken
Request Body schema: application/json
required
name
required
string
mfaRequired
boolean
Default: false

When true, members of this group must enroll and use TOTP MFA at login

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "mfaRequired": false
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "isSystem": true,
  • "mfaRequired": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Get auth group

Authorizations:
authToken
path Parameters
name
required
string

Unique auth group name (e.g. viewer, platform-ops)

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "isSystem": true,
  • "mfaRequired": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Update auth group

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.

Authorizations:
authToken
path Parameters
name
required
string

Current auth group name

Request Body schema: application/json
required
name
string
mfaRequired
boolean

When true, members of this group must enroll and use TOTP MFA at login

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "mfaRequired": true
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "isSystem": true,
  • "mfaRequired": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Delete custom auth group

Authorizations:
authToken
path Parameters
name
required
string

Auth group name

Responses

ÿÿÿÿ