List a node's PCI devices (operator-only).
curl --request GET \ --url https://stratum.example.com/v1/compute/nodes/example/pci-devices \ --header 'Authorization: Bearer <token>'. Returns every PCI function on the host — GPUs, accelerators, NICs, storage and USB controllers, audio functions and bridges — with its IDs, class, bound driver, IOMMU group, NUMA node, and SR-IOV capacity where the function has it.
Bridges are included so a consumer can see the whole tree (which root port
a card hangs off, what shares its IOMMU group); a console that only wants
the cards filters on category.
A display device carries bootVga. true marks the display the firmware
and host console drive — a workstation’s only card, or a server BMC’s
VGA — which is NOT a GPU for guests; capability.gpu.present on the node
counts only display devices with bootVga: false.
Read-only, collected by each node for itself on the same refresh pass as
the disk/NIC/DIMM/thermal inventory, by reading /sys/bus/pci/devices.
Vendor and device names come from the host’s pci.ids when it has one.
Cedar action compute:DescribeNode. Platform-tenant.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Responses
Section titled “Responses”The node’s PCI functions, in bus-address order.
object
One PCI function on a node, read from /sys/bus/pci/devices.
Multi-function cards appear once per function: a GPU and its HDMI audio are
two entries at .0 and .1 of the same slot, and usually share an IOMMU
group, which means they can only be passed through together.
object
PCI address, domain:bus:device.function. Stable for as long as the card stays in its slot.
16-bit vendor ID, four lowercase hex digits, no 0x.
16-bit device ID, four lowercase hex digits, no 0x.
24-bit class / subclass / programming interface, six lowercase hex digits. 030000 is a VGA-compatible controller.
Derived from classCode.
gpu— display controller, class03(VGA, XGA, 3D). Includes the host’s own console display; seebootVga.accelerator— processing accelerator, class12.network— network controller, class02.storage— mass storage controller, class01(NVMe, SATA, RAID).usb— USB controller, class0c03.audio— audio device, class0401or0403(a GPU’s HDMI audio lands here).bridge— bridge, class06(host bridges, root ports, switches).other— anything else.
Vendor name from the host’s pci.ids; empty when unknown.
Device name from the host’s pci.ids; empty when unknown.
Bound kernel driver; empty when none is bound. vfio-pci means the function is held for passthrough.
IOMMU group number; empty when the IOMMU is off or the function has no group. Functions sharing a group can only be passed through together.
NUMA node the device is attached to; -1 when the platform does not say.
Present on display devices (category: gpu) only. true is the display
the firmware and host console drive — a workstation’s only card or a
server BMC’s VGA — and is not a GPU for guests. false is a display
device that is not the console; the node’s capability.gpu.present is
true exactly when at least one of these exists.
Virtual functions this physical function supports. Absent when the function is not SR-IOV capable.
Virtual functions currently created. Absent when the function is not SR-IOV capable.
Example
{ "items": [ { "address": "0000:07:00.0", "vendorId": "10de", "deviceId": "128b", "classCode": "030000", "category": "gpu", "vendorName": "NVIDIA Corporation", "deviceName": "GK208B [GeForce GT 710]", "driver": "nouveau", "iommuGroup": "14", "numaNode": -1 } ]}Resource not found.
object
The findings of a rejected IAM policy document (custom and resource policies).
One finding of a rejected IAM policy document. A rejection lists every finding, so the author fixes the document in one round trip.
object
The finding, e.g. INVALID_DOCUMENT, UNKNOWN_ACTION, ACTION_NOT_APPLICABLE.
Index of the statement at fault; -1 for the document as a whole.
The offending action, where one is at fault (ACTION_NOT_APPLICABLE).
Field errors, for codes that carry them: each problem at its field
(see FieldError). Documented on the responses that set it, e.g.
approveNodeJoin’s INVALID_INPUT and JOIN_APPROVAL_REFUSED.
Absent otherwise.
One field’s problem, the stage-2 installer API’s shape.
field is the field’s path, message what is wrong with it.
object
The field’s path, e.g. links[0].interface, disks[1].confirm,
mgmt.address or role; empty for the whole request.
Structured facts about the refusal, for codes that carry them. The
shape is fixed per code and documented on the response that answers
it, e.g. IMAGE_POOL_MISMATCH (see ImagePoolMismatchDetails) and
IMAGE_IN_USE. Absent for codes that carry none.
object
Example
{ "issues": [ { "code": "ACTION_NOT_APPLICABLE", "action": "compute:CreateVpc" } ]}