use super::is_false;
use warpgate_api::{api_enum, api_struct};
api_struct!(
pub struct ArchiveSource {
pub url: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prefix: Option<String>,
}
);
api_struct!(
pub struct GitSource {
pub url: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reference: Option<String>,
#[serde(default, skip_serializing_if = "is_false")]
pub submodules: bool,
}
);
api_enum!(
#[serde(tag = "type", rename_all = "kebab-case")]
pub enum SourceLocation {
#[cfg_attr(feature = "schematic", schema(nested))]
Archive(ArchiveSource),
#[cfg_attr(feature = "schematic", schema(nested))]
Git(GitSource),
}
);