diff --git a/src/meta/dashboards.rs b/src/meta/dashboards.rs index 161776b8ae..93aa73848e 100644 --- a/src/meta/dashboards.rs +++ b/src/meta/dashboards.rs @@ -41,6 +41,7 @@ pub struct Dashboard { pub panels: Vec, #[serde(skip_serializing_if = "Option::is_none")] pub layouts: Option>, + pub variables: Option, } fn datetime_now() -> DateTime { @@ -129,6 +130,41 @@ pub struct PanelConfig { promql_legend: Option, } +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Variables { + pub list: Vec, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct List { + #[serde(rename = "type")] + pub type_field: String, + pub name: String, + pub label: String, + #[serde(rename = "query_data")] + pub query_data: Option, + pub value: Option, + pub options: Option>, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct QueryData { + #[serde(rename = "stream_type")] + pub stream_type: StreamType, + pub stream: String, + pub field: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct CustomFieldsOption { + pub label: String, + pub value: String, +} + #[cfg(test)] mod tests { use super::*; @@ -283,6 +319,7 @@ mod tests { }, ], ), + variables: None, } "##]].assert_debug_eq(&dashboard); } @@ -450,6 +487,7 @@ mod tests { }, ], ), + variables: None, } "##]].assert_debug_eq(&dashboard); }