firecracker_sdk/domain/config/
mod.rs

1use std::{collections::HashMap, path::PathBuf};
2
3use serde::Serialize;
4
5use crate::api::startup::FirecrackerStartup;
6
7#[derive(Serialize)]
8pub struct FirecrackerConfiguration {
9    pub(crate) startup_config: FirecrackerStartup,
10    pub(crate) boot_source: BootSource,
11    pub(crate) drives: Drives,
12}
13
14impl FirecrackerConfiguration {
15    pub fn kernel_image_path(&self) -> PathBuf {
16        self.boot_source.kernel_image_path.clone()
17    }
18
19    pub fn drive_path(&self) -> PathBuf {
20        self.drives.path_on_host.clone()
21    }
22}
23
24#[derive(Serialize)]
25pub(crate) struct BootSource {
26    pub(crate) kernel_image_path: PathBuf,
27    pub(crate) boot_args: HashMap<String, String>,
28}
29
30#[derive(Serialize)]
31pub(crate) struct Drives {
32    pub(crate) drive_id: String,
33    pub(crate) path_on_host: PathBuf,
34    pub(crate) is_root_device: bool,
35    pub(crate) is_read_only: bool,
36}