use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct Storage {
pub name: String,
pub backend: Option<String>,
pub size: String,
pub provision: Vec<Provision>,
pub preserve: Vec<String>,
pub artifacts: Vec<Artifact>,
pub retainment: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct Provision {
pub resource_type: String, pub name: String,
pub source: Option<String>,
pub url: Option<String>,
pub destination: String,
pub mode: Option<String>,
pub checksum: Option<String>,
pub from: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct Artifact {
pub name: String,
pub path: String,
pub retention: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct StorageMount {
pub name: String,
pub mount_path: String,
pub read_only: Option<bool>,
#[serde(default)]
pub preserve: Option<Vec<String>>,
}