use serde::{Deserialize, Serialize};
use super::*;
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct Artifact {
#[serde(rename = "archive", skip_serializing_if = "Option::is_none")]
pub archive: Option<Box<ArchiveStrategy>>,
#[serde(rename = "archiveLogs", skip_serializing_if = "Option::is_none")]
pub archive_logs: Option<bool>,
#[serde(rename = "artifactGC", skip_serializing_if = "Option::is_none")]
pub artifact_gc: Option<Box<ArtifactGC>>,
#[serde(rename = "artifactory", skip_serializing_if = "Option::is_none")]
pub artifactory: Option<Box<ArtifactoryArtifact>>,
#[serde(rename = "azure", skip_serializing_if = "Option::is_none")]
pub azure: Option<Box<AzureArtifact>>,
#[serde(rename = "deleted", skip_serializing_if = "Option::is_none")]
pub deleted: Option<bool>,
#[serde(rename = "from", skip_serializing_if = "Option::is_none")]
pub from: Option<String>,
#[serde(rename = "fromExpression", skip_serializing_if = "Option::is_none")]
pub from_expression: Option<String>,
#[serde(rename = "gcs", skip_serializing_if = "Option::is_none")]
pub gcs: Option<Box<GCSArtifact>>,
#[serde(rename = "git", skip_serializing_if = "Option::is_none")]
pub git: Option<Box<GitArtifact>>,
#[serde(rename = "globalName", skip_serializing_if = "Option::is_none")]
pub global_name: Option<String>,
#[serde(rename = "hdfs", skip_serializing_if = "Option::is_none")]
pub hdfs: Option<Box<HDFSArtifact>>,
#[serde(rename = "http", skip_serializing_if = "Option::is_none")]
pub http: Option<Box<HTTPArtifact>>,
#[serde(rename = "mode", skip_serializing_if = "Option::is_none")]
pub mode: Option<i32>,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "optional", skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
#[serde(rename = "oss", skip_serializing_if = "Option::is_none")]
pub oss: Option<Box<OSSArtifact>>,
#[serde(rename = "path", skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
#[serde(rename = "raw", skip_serializing_if = "Option::is_none")]
pub raw: Option<Box<RawArtifact>>,
#[serde(rename = "recurseMode", skip_serializing_if = "Option::is_none")]
pub recurse_mode: Option<bool>,
#[serde(rename = "s3", skip_serializing_if = "Option::is_none")]
pub s3: Option<Box<S3Artifact>>,
#[serde(rename = "subPath", skip_serializing_if = "Option::is_none")]
pub sub_path: Option<String>,
}
impl Artifact {
pub fn new(name: &str) -> Self {
Artifact {
name: name.to_string(),
..Default::default()
}
}
}