cloud_hypervisor_client/models/
vm_config.rs

1/*
2 * Cloud Hypervisor API
3 *
4 * Local HTTP based API for managing and inspecting a cloud-hypervisor virtual machine.
5 *
6 * The version of the OpenAPI document: 0.3.0
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14/// VmConfig : Virtual machine configuration
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct VmConfig {
17    #[serde(rename = "cpus", skip_serializing_if = "Option::is_none")]
18    pub cpus: Option<models::CpusConfig>,
19    #[serde(rename = "memory", skip_serializing_if = "Option::is_none")]
20    pub memory: Option<models::MemoryConfig>,
21    #[serde(rename = "payload")]
22    pub payload: models::PayloadConfig,
23    #[serde(rename = "rate_limit_groups", skip_serializing_if = "Option::is_none")]
24    pub rate_limit_groups: Option<Vec<models::RateLimitGroupConfig>>,
25    #[serde(rename = "disks", skip_serializing_if = "Option::is_none")]
26    pub disks: Option<Vec<models::DiskConfig>>,
27    #[serde(rename = "net", skip_serializing_if = "Option::is_none")]
28    pub net: Option<Vec<models::NetConfig>>,
29    #[serde(rename = "rng", skip_serializing_if = "Option::is_none")]
30    pub rng: Option<models::RngConfig>,
31    #[serde(rename = "balloon", skip_serializing_if = "Option::is_none")]
32    pub balloon: Option<models::BalloonConfig>,
33    #[serde(rename = "fs", skip_serializing_if = "Option::is_none")]
34    pub fs: Option<Vec<models::FsConfig>>,
35    #[serde(rename = "pmem", skip_serializing_if = "Option::is_none")]
36    pub pmem: Option<Vec<models::PmemConfig>>,
37    #[serde(rename = "serial", skip_serializing_if = "Option::is_none")]
38    pub serial: Option<models::ConsoleConfig>,
39    #[serde(rename = "console", skip_serializing_if = "Option::is_none")]
40    pub console: Option<models::ConsoleConfig>,
41    #[serde(rename = "debug_console", skip_serializing_if = "Option::is_none")]
42    pub debug_console: Option<models::DebugConsoleConfig>,
43    #[serde(rename = "devices", skip_serializing_if = "Option::is_none")]
44    pub devices: Option<Vec<models::DeviceConfig>>,
45    #[serde(rename = "vdpa", skip_serializing_if = "Option::is_none")]
46    pub vdpa: Option<Vec<models::VdpaConfig>>,
47    #[serde(rename = "vsock", skip_serializing_if = "Option::is_none")]
48    pub vsock: Option<models::VsockConfig>,
49    #[serde(rename = "sgx_epc", skip_serializing_if = "Option::is_none")]
50    pub sgx_epc: Option<Vec<models::SgxEpcConfig>>,
51    #[serde(rename = "numa", skip_serializing_if = "Option::is_none")]
52    pub numa: Option<Vec<models::NumaConfig>>,
53    #[serde(rename = "iommu", skip_serializing_if = "Option::is_none")]
54    pub iommu: Option<bool>,
55    #[serde(rename = "watchdog", skip_serializing_if = "Option::is_none")]
56    pub watchdog: Option<bool>,
57    #[serde(rename = "pvpanic", skip_serializing_if = "Option::is_none")]
58    pub pvpanic: Option<bool>,
59    #[serde(rename = "pci_segments", skip_serializing_if = "Option::is_none")]
60    pub pci_segments: Option<Vec<models::PciSegmentConfig>>,
61    #[serde(rename = "platform", skip_serializing_if = "Option::is_none")]
62    pub platform: Option<models::PlatformConfig>,
63    #[serde(rename = "tpm", skip_serializing_if = "Option::is_none")]
64    pub tpm: Option<models::TpmConfig>,
65    #[serde(rename = "landlock_enable", skip_serializing_if = "Option::is_none")]
66    pub landlock_enable: Option<bool>,
67    #[serde(rename = "landlock_rules", skip_serializing_if = "Option::is_none")]
68    pub landlock_rules: Option<Vec<models::LandlockConfig>>,
69}
70
71impl VmConfig {
72    /// Virtual machine configuration
73    pub fn new(payload: models::PayloadConfig) -> VmConfig {
74        VmConfig {
75            cpus: None,
76            memory: None,
77            payload,
78            rate_limit_groups: None,
79            disks: None,
80            net: None,
81            rng: None,
82            balloon: None,
83            fs: None,
84            pmem: None,
85            serial: None,
86            console: None,
87            debug_console: None,
88            devices: None,
89            vdpa: None,
90            vsock: None,
91            sgx_epc: None,
92            numa: None,
93            iommu: None,
94            watchdog: None,
95            pvpanic: None,
96            pci_segments: None,
97            platform: None,
98            tpm: None,
99            landlock_enable: None,
100            landlock_rules: None,
101        }
102    }
103}