1use derive_setters::Setters;
5use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Setters, Serialize, Deserialize, Clone, Default, PartialEq, Eq)]
9#[serde(rename_all = "kebab-case")]
10#[setters(strip_option, into)]
11pub struct Artifacts {
12 #[serde(skip_serializing_if = "Option::is_none")]
14 pub upload: Option<Vec<Artifact>>,
15
16 #[serde(skip_serializing_if = "Option::is_none")]
18 pub download: Option<Vec<Artifact>>,
19}
20
21#[derive(Debug, Setters, Serialize, Deserialize, Clone, Default, PartialEq, Eq)]
23#[serde(rename_all = "kebab-case")]
24#[setters(strip_option, into)]
25pub struct Artifact {
26 pub name: String,
28
29 pub path: String,
31
32 #[serde(skip_serializing_if = "Option::is_none")]
34 pub retention_days: Option<u32>,
35}