Should expose through something like one of these:
/api/disk/physical
/api/disk/physical/{disk_id}
/api/disk/physical/{disk_id}/smart
/api/disk/smart
If virtual, this should return Unsupported/Not Available/Unknown.
Possible data sources:
Linux:
smartctl / smartmontools where available
/sys/block, /dev/disk/by-id, lsblk, udev metadata
- NVMe data via smartctl or nvme-cli where available
Windows:
- WMI / CIM classes where sufficient
- PowerShell
Get-PhysicalDisk / storage health APIs where available
- smartctl as optional fallback if bundled or detected
macOS:
diskutil
- IOKit / SMART status where available
- smartctl as optional fallback
Should expose through something like one of these:
If virtual, this should return Unsupported/Not Available/Unknown.
Possible data sources:
Linux:
smartctl/ smartmontools where available/sys/block,/dev/disk/by-id,lsblk, udev metadataWindows:
Get-PhysicalDisk/ storage health APIs where availablemacOS:
diskutil