Skip to main content

tachyon_types/
playbook.rs

1use myko_macros::myko_item;
2use serde::{Deserialize, Serialize};
3use ts_rs::TS;
4
5#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, TS)]
6#[serde(rename_all = "camelCase")]
7pub enum VarType {
8    String,
9    Bool,
10    Integer,
11}
12
13myko::register_ts_export!(VarType);
14
15#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, TS)]
16#[serde(rename_all = "camelCase")]
17pub struct VarDef {
18    pub name: String,
19    pub var_type: VarType,
20    pub default: serde_json::Value,
21}
22
23myko::register_ts_export!(VarDef);
24
25#[myko_item]
26pub struct Playbook {
27    pub name: String,
28    pub description: String,
29    pub hosts: Vec<String>,
30    pub vars: Vec<VarDef>,
31}