Skip to main content

platz_chart_ext/actions/
v1beta1.rs

1use super::v0::ChartExtActionV0;
2use crate::versions::{ChartExtKindAction, ChartExtVersionV1Beta1};
3use serde::{Deserialize, Serialize};
4
5#[derive(Clone, Debug, Deserialize, Serialize)]
6#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
7pub struct ChartExtActionsV1Beta1(Vec<ChartExtActionV1Beta1>);
8
9impl ChartExtActionsV1Beta1 {
10    pub fn get_actions(&self) -> Vec<ChartExtActionV0> {
11        self.0.iter().map(|x| x.spec.clone()).collect()
12    }
13    pub fn find(&self, action_id: &str) -> Option<&ChartExtActionV0> {
14        self.0
15            .iter()
16            .find(|action| action.spec.id == action_id)
17            .map(|action| &action.spec)
18    }
19}
20
21#[derive(Clone, Debug, Deserialize, Serialize)]
22#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
23#[serde(rename_all = "camelCase")]
24pub struct ChartExtActionV1Beta1 {
25    pub api_version: ChartExtVersionV1Beta1,
26    pub kind: ChartExtKindAction,
27    pub spec: ChartExtActionV0,
28}