#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct CreateImageRequest {
#[serde(rename = "name", skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "root_volume")]
pub root_volume: String,
#[serde(rename = "arch")]
pub arch: Arch,
#[serde(
rename = "default_bootscript",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub default_bootscript: Option<Option<String>>,
#[serde(rename = "extra_volumes", skip_serializing_if = "Option::is_none")]
pub extra_volumes: Option<crate::models::CreateImageRequestExtraVolumes>,
#[serde(rename = "organization", skip_serializing_if = "Option::is_none")]
pub organization: Option<String>,
#[serde(rename = "project", skip_serializing_if = "Option::is_none")]
pub project: Option<String>,
#[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<String>>,
#[serde(
rename = "public",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub public: Option<Option<bool>>,
}
impl CreateImageRequest {
pub fn new(root_volume: String, arch: Arch) -> CreateImageRequest {
CreateImageRequest {
name: None,
root_volume,
arch,
default_bootscript: None,
extra_volumes: None,
organization: None,
project: None,
tags: None,
public: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Arch {
#[serde(rename = "x86_64")]
X8664,
#[serde(rename = "arm")]
Arm,
}
impl Default for Arch {
fn default() -> Arch {
Self::X8664
}
}