The board
Generated from the committed OpenAPI document, bmcd 2.28.0. Do not edit this file: just refresh-api rewrites it.
GET /api/bmc/about
Firmware, daemon, kernel and board identity
Legacy form: GET /api/bmc?opt=get&type=about with the same parameters in the query string. That form answers {"response":[{"result":…}]} and puts a refusal's message in result; this path answers the bare result and a refusal as application/problem+json.
| response |
body |
meaning |
200 |
application/json — About |
The result. |
204 |
empty |
Done, with nothing to report. |
default |
application/problem+json — Problem |
A refusal, RFC 9457. |
200 body (application/json): About
| field |
type |
required |
description |
api |
string |
yes |
The /api/bmc contract version, not a release of anything. |
bmcd_version |
string |
yes |
|
board_model |
string |
yes |
From the board's EEPROM. Empty on a board that cannot be read, rather than absent: upstream's shape, and the interface renders the blank. |
board_revision |
string |
yes |
|
board_serial |
string or null |
no |
None when the EEPROM field is missing or blank after trimming. |
build_version |
string |
yes |
The same value as bmcd_version. The web interface reads this key for its "Build version" field and renders vundefined without it, so it is duplicated deliberately rather than left for the client to alias. |
buildroot |
string |
yes |
|
buildtime |
string |
yes |
|
hostname |
string |
yes |
|
kernel |
string |
yes |
The running kernel. "unknown" when uname cannot be read; the one field an operator wants after a kernel bump. |
version |
string |
yes |
The firmware, from /etc/os-release. "unknown" when it cannot be read -- a string, because an About page with a gap is still worth rendering and this field has never been nullable. |
default body (application/problem+json): Problem
| field |
type |
required |
description |
detail |
string |
no |
|
status |
integer |
yes |
|
title |
string |
yes |
|
type |
string |
no |
|
GET /api/bmc/config
Everything configured on this board, as one document
Legacy form: GET /api/bmc?opt=get&type=config with the same parameters in the query string. That form answers {"response":[{"result":…}]} and puts a refusal's message in result; this path answers the bare result and a refusal as application/problem+json.
| response |
body |
meaning |
200 |
application/json — ConfigExport |
The result. |
204 |
empty |
Done, with nothing to report. |
default |
application/problem+json — Problem |
A refusal, RFC 9457. |
200 body (application/json): ConfigExport
| field |
type |
required |
description |
exported_at |
string |
yes |
When and from what. Not read back on import; it is what makes a file found on a workstation six months later identifiable. |
exported_from |
ExportOrigin |
yes |
|
firmware_sources |
object |
no |
|
format_version |
integer (uint32) |
yes |
|
hostname |
string or null |
no |
|
nodes |
array or null |
no |
|
ntp_servers |
array or null |
no |
|
default body (application/problem+json): Problem
| field |
type |
required |
description |
detail |
string |
no |
|
status |
integer |
yes |
|
title |
string |
yes |
|
type |
string |
no |
|
POST /api/bmc/config
Apply an exported configuration; reports per field
Legacy form: GET /api/bmc?opt=set&type=config with the same parameters in the query string. That form answers {"response":[{"result":…}]} and puts a refusal's message in result; this path answers the bare result and a refusal as application/problem+json.
Request body (application/json)
| field |
type |
required |
description |
config |
string |
no |
the exported document; a JSON body that is the document itself is accepted as-is |
Request body (application/x-www-form-urlencoded)
| field |
type |
required |
description |
config |
string |
no |
the exported document; a JSON body that is the document itself is accepted as-is |
| response |
body |
meaning |
200 |
application/json — — |
The result. Its shape is not described in this document. |
204 |
empty |
Done, with nothing to report. |
default |
application/problem+json — Problem |
A refusal, RFC 9457. |
default body (application/problem+json): Problem
| field |
type |
required |
description |
detail |
string |
no |
|
status |
integer |
yes |
|
title |
string |
yes |
|
type |
string |
no |
|
GET /api/bmc/health
The board's own condition: uptime, load, memory, NAND, clock
Legacy form: GET /api/bmc?opt=get&type=health with the same parameters in the query string. That form answers {"response":[{"result":…}]} and puts a refusal's message in result; this path answers the bare result and a refusal as application/problem+json.
| response |
body |
meaning |
200 |
application/json — Health |
The result. |
204 |
empty |
Done, with nothing to report. |
default |
application/problem+json — Problem |
A refusal, RFC 9457. |
200 body (application/json): Health
| field |
type |
required |
description |
clock |
Clock |
yes |
|
load |
Load |
yes |
|
memory |
Memory |
yes |
|
nand |
Nand |
yes |
|
uptime_seconds |
number or null |
no |
Seconds since the BMC booted, as /proc/uptime gives it. Not the uptime of any compute module. |
default body (application/problem+json): Problem
| field |
type |
required |
description |
detail |
string |
no |
|
status |
integer |
yes |
|
title |
string |
yes |
|
type |
string |
no |
|
GET /api/bmc/hostname
The board's name, live and after the next boot
Legacy form: GET /api/bmc?opt=get&type=hostname with the same parameters in the query string. That form answers {"response":[{"result":…}]} and puts a refusal's message in result; this path answers the bare result and a refusal as application/problem+json.
| response |
body |
meaning |
200 |
application/json — Hostname |
The result. |
204 |
empty |
Done, with nothing to report. |
default |
application/problem+json — Problem |
A refusal, RFC 9457. |
200 body (application/json): Hostname
| field |
type |
required |
description |
hostname |
string or null |
no |
What sethostname(2) currently says. None if it cannot be read. |
on_next_boot |
string or null |
no |
What /etc/hostname holds. None when the file is absent. |
default body (application/problem+json): Problem
| field |
type |
required |
description |
detail |
string |
no |
|
status |
integer |
yes |
|
title |
string |
yes |
|
type |
string |
no |
|
POST /api/bmc/hostname
Rename the board; the metrics instance label changes with it
Legacy form: GET /api/bmc?opt=set&type=hostname with the same parameters in the query string. That form answers {"response":[{"result":…}]} and puts a refusal's message in result; this path answers the bare result and a refusal as application/problem+json.
Request body (application/json)
| field |
type |
required |
description |
name |
string |
no |
one DNS label: letters, digits, hyphens; no dots |
Request body (application/x-www-form-urlencoded)
| field |
type |
required |
description |
name |
string |
no |
one DNS label: letters, digits, hyphens; no dots |
| response |
body |
meaning |
200 |
application/json — — |
The result. Its shape is not described in this document. |
204 |
empty |
Done, with nothing to report. |
default |
application/problem+json — Problem |
A refusal, RFC 9457. |
default body (application/problem+json): Problem
| field |
type |
required |
description |
detail |
string |
no |
|
status |
integer |
yes |
|
title |
string |
yes |
|
type |
string |
no |
|
GET /api/bmc/info
Storage and interfaces, as the Overview page reads them
Legacy form: GET /api/bmc?opt=get&type=info with the same parameters in the query string. That form answers {"response":[{"result":…}]} and puts a refusal's message in result; this path answers the bare result and a refusal as application/problem+json.
| response |
body |
meaning |
200 |
application/json — BoardInfo |
The result. |
204 |
empty |
Done, with nothing to report. |
default |
application/problem+json — Problem |
A refusal, RFC 9457. |
200 body (application/json): BoardInfo
| field |
type |
required |
description |
ip |
array of NetInfo |
yes |
|
storage |
array of StorageInfo |
yes |
|
default body (application/problem+json): Problem
| field |
type |
required |
description |
detail |
string |
no |
|
status |
integer |
yes |
|
title |
string |
yes |
|
type |
string |
no |
|
POST /api/bmc/reboot
Reboot the BMC; the compute modules keep running
Legacy form: GET /api/bmc?opt=set&type=reboot with the same parameters in the query string. That form answers {"response":[{"result":…}]} and puts a refusal's message in result; this path answers the bare result and a refusal as application/problem+json.
| response |
body |
meaning |
200 |
application/json — — |
The result. Its shape is not described in this document. |
204 |
empty |
Done, with nothing to report. |
default |
application/problem+json — Problem |
A refusal, RFC 9457. |
default body (application/problem+json): Problem
| field |
type |
required |
description |
detail |
string |
no |
|
status |
integer |
yes |
|
title |
string |
yes |
|
type |
string |
no |
|
POST /api/bmc/reload
Restart the daemon
Legacy form: GET /api/bmc?opt=set&type=reload with the same parameters in the query string. That form answers {"response":[{"result":…}]} and puts a refusal's message in result; this path answers the bare result and a refusal as application/problem+json.
| response |
body |
meaning |
200 |
application/json — — |
The result. Its shape is not described in this document. |
204 |
empty |
Done, with nothing to report. |
default |
application/problem+json — Problem |
A refusal, RFC 9457. |
default body (application/problem+json): Problem
| field |
type |
required |
description |
detail |
string |
no |
|
status |
integer |
yes |
|
title |
string |
yes |
|
type |
string |
no |
|