platz-chart-ext 0.7.0

Platz Helm chart extensions
Documentation
mod v0;
mod v1beta1;

pub use self::v0::{
    ChartExtActionEndpoint, ChartExtActionMethod, ChartExtActionTarget,
    ChartExtActionTargetResolver, ChartExtActionUserDeploymentRole, ChartExtActionV0,
    ChartExtActionsV0,
};
pub use self::v1beta1::{ChartExtActionV1Beta1, ChartExtActionsV1Beta1};
use serde::{Deserialize, Serialize};

#[derive(Clone, Debug, Deserialize, Serialize)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde(untagged)]
pub enum ChartExtActions {
    V1Beta1(ChartExtActionsV1Beta1),
    V0(ChartExtActionsV0),
}

impl ChartExtActions {
    pub fn find(&self, action_id: &str) -> Option<&v0::ChartExtActionV0> {
        match self {
            Self::V1Beta1(v1) => v1.find(action_id),
            Self::V0(v0) => v0.find(action_id),
        }
    }

    pub fn get_actions(&self) -> Vec<ChartExtActionV0> {
        match self {
            Self::V1Beta1(v1) => v1.get_actions(),
            Self::V0(v0) => v0.get_actions(),
        }
    }
}