use crate::actions::ChartExtActionEndpoint;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub struct ChartExtFeaturesV0 {
#[serde(default)]
pub standard_ingress: bool,
pub status: Option<ChartExtStatusFeature>,
#[serde(default)]
pub cardinality: ChartExtCardinality,
#[serde(default = "yes")]
pub reinstall_dependencies: bool,
#[serde(default)]
pub node_selector_paths: Vec<Vec<String>>,
#[serde(default)]
pub tolerations_paths: Vec<Vec<String>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub struct ChartExtStatusFeature {
pub endpoint: ChartExtActionEndpoint,
pub path: String,
pub refresh_interval_secs: u64,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub enum ChartExtCardinality {
#[default]
Many,
OnePerCluster,
}
fn yes() -> bool {
true
}