1use crate::error::OciSpecError;
2use derive_builder::Builder;
3use getset::{Getters, Setters};
4use serde::{Deserialize, Serialize};
5
6#[derive(
7 Builder, Clone, Debug, Default, Deserialize, Getters, Setters, Eq, PartialEq, Serialize,
8)]
9#[serde(rename_all = "camelCase")]
10#[builder(
11 default,
12 pattern = "owned",
13 setter(into, strip_option),
14 build_fn(error = "OciSpecError")
15)]
16#[getset(get = "pub", set = "pub")]
17pub struct Solaris {
20 #[serde(default, skip_serializing_if = "Option::is_none")]
21 milestone: Option<String>,
24
25 #[serde(default, skip_serializing_if = "Option::is_none")]
26 limitpriv: Option<String>,
28
29 #[serde(default, skip_serializing_if = "Option::is_none")]
30 max_shm_memory: Option<String>,
32
33 #[serde(default, skip_serializing_if = "Option::is_none")]
34 anet: Option<Vec<SolarisAnet>>,
37
38 #[serde(default, skip_serializing_if = "Option::is_none", rename = "cappedCPU")]
39 capped_cpu: Option<SolarisCappedCPU>,
41
42 #[serde(default, skip_serializing_if = "Option::is_none")]
43 capped_memory: Option<SolarisCappedMemory>,
46}
47
48#[derive(
49 Builder, Clone, Debug, Default, Deserialize, Getters, Setters, Eq, PartialEq, Serialize,
50)]
51#[serde(rename_all = "camelCase")]
52#[builder(
53 default,
54 pattern = "owned",
55 setter(into, strip_option),
56 build_fn(error = "OciSpecError")
57)]
58#[getset(get = "pub", set = "pub")]
59pub struct SolarisAnet {
62 #[serde(default, skip_serializing_if = "Option::is_none")]
63 linkname: Option<String>,
65
66 #[serde(default, skip_serializing_if = "Option::is_none")]
67 lower_link: Option<String>,
69
70 #[serde(default, skip_serializing_if = "Option::is_none")]
71 allowed_address: Option<String>,
73
74 #[serde(default, skip_serializing_if = "Option::is_none")]
75 configure_allowed_address: Option<String>,
78
79 #[serde(default, skip_serializing_if = "Option::is_none")]
80 defrouter: Option<String>,
82
83 #[serde(default, skip_serializing_if = "Option::is_none")]
84 link_protection: Option<String>,
86
87 #[serde(default, skip_serializing_if = "Option::is_none")]
88 mac_address: Option<String>,
90}
91
92#[derive(
93 Builder, Clone, Debug, Default, Deserialize, Getters, Setters, Eq, PartialEq, Serialize,
94)]
95#[builder(
96 default,
97 pattern = "owned",
98 setter(into, strip_option),
99 build_fn(error = "OciSpecError")
100)]
101#[getset(get = "pub", set = "pub")]
102pub struct SolarisCappedCPU {
105 #[serde(default, skip_serializing_if = "Option::is_none")]
106 ncpus: Option<String>,
108}
109
110#[derive(
111 Builder, Clone, Debug, Default, Deserialize, Getters, Setters, Eq, PartialEq, Serialize,
112)]
113#[builder(
114 default,
115 pattern = "owned",
116 setter(into, strip_option),
117 build_fn(error = "OciSpecError")
118)]
119#[getset(get = "pub", set = "pub")]
120pub struct SolarisCappedMemory {
123 #[serde(default, skip_serializing_if = "Option::is_none")]
124 physical: Option<String>,
126
127 #[serde(default, skip_serializing_if = "Option::is_none")]
128 swap: Option<String>,
130}