mod config;
mod hardware;
mod network;
mod secret;
mod service;
mod storage;
pub(crate) use config::{Config, ConfigMount};
pub(crate) use hardware::{DeviceRequest, Reservations, ServiceDevice};
pub(crate) use network::{Attachment, Block, Ipam, Network};
pub(crate) use secret::{Secret, ServiceSecret};
pub(crate) use service::{Build, Condition, Deploy, Healthcheck, Limits, NetworkMode, Resources, Restart, Seconds, Service, Ulimit};
pub(crate) use storage::{LongMount, Mount, TmpfsOptions, Volume, VolumeOptions};
use indexmap::IndexMap;
use serde::Serialize;
#[derive(Debug, Clone, Default, Serialize)]
pub(crate) struct ComposeFile {
pub(crate) name: String,
pub(crate) services: IndexMap<String, Service>,
pub(crate) networks: IndexMap<String, Network>,
#[serde(skip_serializing_if = "IndexMap::is_empty")]
pub(crate) volumes: IndexMap<String, Volume>,
#[serde(skip_serializing_if = "IndexMap::is_empty")]
pub(crate) secrets: IndexMap<String, Secret>,
#[serde(skip_serializing_if = "IndexMap::is_empty")]
pub(crate) configs: IndexMap<String, Config>,
}