1use chrono::{DateTime, Utc};2use serde::{Deserialize, Serialize};3use std::collections::BTreeMap;45#[derive(Serialize, Deserialize, Default)]6#[serde(rename_all = "camelCase")]7pub struct HostData {8 #[serde(default)]9 #[serde(skip_serializing_if = "String::is_empty")]10 pub encryption_key: String,11}1213#[derive(Serialize, Deserialize)]14pub struct FleetData {15 #[serde(default)]16 pub hosts: BTreeMap<String, HostData>,17 #[serde(default)]18 #[serde(skip_serializing_if = "BTreeMap::is_empty")]19 pub secrets: BTreeMap<String, FleetSecret>,20}2122#[derive(Serialize, Deserialize)]23#[serde(rename_all = "camelCase")]24pub struct FleetSecret {25 pub owners: Vec<String>,26 #[serde(default)]27 #[serde(skip_serializing_if = "Option::is_none")]28 pub expire_at: Option<DateTime<Utc>>,29 pub data: BTreeMap<String, String>,30}