proto_pdk_api/api/
source.rs1use super::is_false;
2use warpgate_api::{api_enum, api_struct};
3
4api_struct!(
5 pub struct ArchiveSource {
7 pub url: String,
9
10 #[serde(default, skip_serializing_if = "Option::is_none")]
12 pub prefix: Option<String>,
13 }
14);
15
16api_struct!(
17 pub struct GitSource {
19 pub url: String,
21
22 #[serde(default, skip_serializing_if = "Option::is_none")]
24 pub reference: Option<String>,
25
26 #[serde(default, skip_serializing_if = "is_false")]
28 pub submodules: bool,
29 }
30);
31
32api_enum!(
33 #[serde(tag = "type", rename_all = "kebab-case")]
35 pub enum SourceLocation {
36 #[cfg_attr(feature = "schematic", schema(nested))]
38 Archive(ArchiveSource),
39
40 #[cfg_attr(feature = "schematic", schema(nested))]
42 Git(GitSource),
43 }
44);