Device

The Device-API following functionality matrix indicates which devices are required for an API call to be usable.

O - Optional: The device (column) is not required for a Firecracker microVM API call to succeed. If the device (column) is omitted from a uVM definition, a call to one of the API Endpoints will succeed.

R - Required: The device (column) is required for a Firecracker microVM API call to succeed. If the device (column) is omitted from a uVM definition, a call to one of the API Endpoints will fail with a 400 - BadRequest - HTTP response.

API Endpoints

Endpointkeyboardserial consolevirtio-blockvhost-user-blockvirtio-netvirtio-vsockvirtio-rng
boot-sourceOOOOOOO
cpu-configOOOOOOO
drives/{id}OORROOO
loggerOOOOOOO
machine-configOOOOOOO
metricsOOOOOOO
mmdsOOOOROO
mmds/configOOOOROO
network-interfaces/{id}OOOOROO
snapshot/createOOOOOOO
snapshot/loadOOOOOOO
vmOOOOOOO
vsockOOOOOOO
entropyOOOOOOR

Input Schema

All input schema fields can be found in the Swagger specification: firecracker.yaml.

SchemaPropertykeyboardserial consolevirtio-blockvhost-user-blockvirtio-netvirtio-vsockvirtio-rng
BootSourceboot_argsOOOOOOO
initrd_pathOOOOOOO
kernel_image_pathOOOOOOO
CpuConfigcpuid_modifiersOOOOOOO
msr_modifiersOOOOOOO
reg_modifiersOOOOOOO
CpuTemplateenumOOOOOOO
CreateSnapshotParamsmem_file_pathOOOOOOO
snapshot_pathOOOOOOO
snapshot_typeOOOOOOO
versionOOOOOOO
Drivedrive_id *OORROOO
is_read_onlyOOROOOO
is_root_device *OORROOO
partuuid *OORROOO
path_on_hostOOROOOO
rate_limiterOOROOOO
socketOOOROOO
InstanceActionInfoaction_typeOOOOOOO
LoadSnapshotParamsenable_diff_snapshotsOOOOOOO
mem_file_pathOOOOOOO
mem_backendOOOOOOO
snapshot_pathOOOOOOO
resume_vmOOOOOOO
LoggerlevelOOOOOOO
log_pathOOOOOOO
show_levelOOOOOOO
show_log_originOOOOOOO
MachineConfigurationcpu_templateOOOOOOO
smtOOOOOOO
mem_size_mibOOOOOOO
track_dirty_pagesOOOOOOO
vcpu_countOOOOOOO
Metricsmetrics_pathOOOOOOO
MmdsConfignetwork_interfacesOOOOROO
versionOOOOROO
ipv4_addressOOOOROO
NetworkInterfaceguest_macOOOOROO
host_dev_nameOOOOROO
iface_idOOOOROO
rx_rate_limiterOOOOROO
tx_rate_limiterOOOOROO
PartialDrivedrive_idOOROOOO
path_on_hostOOROOOO
PartialNetworkInterfaceiface_idOOOOROO
rx_rate_limiterOOOOROO
tx_rate_limiterOOOOROO
RateLimiterbandwidthOOOOROO
opsOOROOOO
TokenBucket **one_time_burstOOROOOO
refill_timeOOROOOO
sizeOOROOOO
TokenBucket **one_time_burstOOOOROO
refill_timeOOOOROO
sizeOOOOROO
VmstateOOOOOOO
Vsockguest_cidOOOOORO
uds_pathOOOOORO
vsock_idOOOOORO
EntropyDevicerate_limiterOOOOOOR

* Drive's drive_id, is_root_device and partuuid can be configured by either virtio-block or vhost-user-block devices.

** The TokenBucket can be configured with any combination of virtio-net, virtio-block and virtio-rng devices.

Output Schema

All output schema fields can be found in the Swagger specification: firecracker.yaml.

SchemaPropertykeyboardserial consolevirtio-blockvhost-user-blockvirtio-netvirtio-vsock
Errorfault_messageOOOOOO
InstanceInfoapp_nameOOOOOO
idOOOOOO
stateOOOOOO
vmm_versionOOOOOO
MachineConfigurationcpu_templateOOOOOO
smtOOOOOO
mem_size_mibOOOOOO
track_dirty_pagesOOOOOO
vcpu_countOOOOOO

Instance Actions

All instance actions can be found in the Swagger specification: firecracker.yaml.

Actionkeyboardserial consolevirtio-blockvhost-user-blockvirtio-netvirtio-vsock
FlushMetricsOOOOOO
InstanceStartOOOOOO
SendCtrlAltDelROOOOO