greentic_types/
pack_spec.rs1use alloc::{string::String, vec::Vec};
4#[cfg(feature = "serde")]
5use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Clone, PartialEq, Default)]
11#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
12pub struct PackSpec {
13 pub id: String,
15 pub version: String,
17 #[cfg_attr(feature = "serde", serde(default))]
19 pub flow_files: Vec<String>,
20 #[cfg_attr(feature = "serde", serde(default))]
22 pub template_dirs: Vec<String>,
23 #[cfg_attr(feature = "serde", serde(default))]
25 pub imports_required: Vec<String>,
26 #[cfg_attr(feature = "serde", serde(default))]
28 pub tools: Vec<ToolSpec>,
29}
30
31#[derive(Debug, Clone, PartialEq)]
33#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
34pub struct ToolSpec {
35 pub name: String,
37 #[cfg_attr(feature = "serde", serde(default))]
39 pub source: Option<String>,
40 #[cfg_attr(feature = "serde", serde(default))]
42 pub path: Option<String>,
43 #[cfg_attr(feature = "serde", serde(default))]
45 pub actions: Vec<String>,
46}