platz_chart_ext/actions/
mod.rs1mod v0;
2mod v1beta1;
3
4pub use self::v0::{
5 ChartExtActionEndpoint, ChartExtActionMethod, ChartExtActionTarget,
6 ChartExtActionTargetResolver, ChartExtActionUserDeploymentRole, ChartExtActionV0,
7 ChartExtActionsV0,
8};
9pub use self::v1beta1::{ChartExtActionV1Beta1, ChartExtActionsV1Beta1};
10use serde::{Deserialize, Serialize};
11
12#[derive(Clone, Debug, Deserialize, Serialize)]
13#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
14#[serde(untagged)]
15pub enum ChartExtActions {
16 V1Beta1(ChartExtActionsV1Beta1),
17 V0(ChartExtActionsV0),
18}
19
20impl ChartExtActions {
21 pub fn find(&self, action_id: &str) -> Option<&v0::ChartExtActionV0> {
22 match self {
23 Self::V1Beta1(v1) => v1.find(action_id),
24 Self::V0(v0) => v0.find(action_id),
25 }
26 }
27
28 pub fn get_actions(&self) -> Vec<ChartExtActionV0> {
29 match self {
30 Self::V1Beta1(v1) => v1.get_actions(),
31 Self::V0(v0) => v0.get_actions(),
32 }
33 }
34}