1use indexmap::IndexMap;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
6pub struct ServerVariable {
7 pub default: String,
8
9 #[serde(skip_serializing_if = "Option::is_none")]
10 pub description: Option<String>,
11
12 #[serde(rename = "enum", default, skip_serializing_if = "Vec::is_empty")]
13 pub enum_values: Vec<String>,
14}
15
16#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
18pub struct Server {
19 pub url: String,
20
21 #[serde(skip_serializing_if = "Option::is_none")]
22 pub description: Option<String>,
23
24 #[serde(default, skip_serializing_if = "IndexMap::is_empty")]
25 pub variables: IndexMap<String, ServerVariable>,
26}