use k8s_openapi::api::core;
use serde::{Deserialize, Serialize};
use super::*;
use crate::types::{self, artifact, http, metrics, sync, workflow};
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct Template {
#[serde(
rename = "activeDeadlineSeconds",
skip_serializing_if = "Option::is_none"
)]
pub active_deadline_seconds: Option<String>,
#[serde(rename = "affinity", skip_serializing_if = "Option::is_none")]
pub affinity: Option<Box<core::v1::Affinity>>,
#[serde(rename = "archiveLocation", skip_serializing_if = "Option::is_none")]
pub archive_location: Option<Box<artifact::ArtifactLocation>>,
#[serde(
rename = "automountServiceAccountToken",
skip_serializing_if = "Option::is_none"
)]
pub automount_service_account_token: Option<bool>,
#[serde(rename = "container", skip_serializing_if = "Option::is_none")]
pub container: Option<Box<core::v1::Container>>,
#[serde(rename = "containerSet", skip_serializing_if = "Option::is_none")]
pub container_set: Option<Box<ContainerSetTemplate>>,
#[serde(rename = "daemon", skip_serializing_if = "Option::is_none")]
pub daemon: Option<bool>,
#[serde(rename = "dag", skip_serializing_if = "Option::is_none")]
pub dag: Option<Box<DAGTemplate>>,
#[serde(rename = "data", skip_serializing_if = "Option::is_none")]
pub data: Option<Box<Data>>,
#[serde(rename = "executor", skip_serializing_if = "Option::is_none")]
pub executor: Option<Box<ExecutorConfig>>,
#[serde(rename = "failFast", skip_serializing_if = "Option::is_none")]
pub fail_fast: Option<bool>,
#[serde(rename = "hostAliases", skip_serializing_if = "Option::is_none")]
pub host_aliases: Option<Vec<core::v1::HostAlias>>,
#[serde(rename = "http", skip_serializing_if = "Option::is_none")]
pub http: Option<Box<http::HTTP>>,
#[serde(rename = "initContainers", skip_serializing_if = "Option::is_none")]
pub init_containers: Option<Vec<UserContainer>>,
#[serde(rename = "inputs", skip_serializing_if = "Option::is_none")]
pub inputs: Option<Box<Inputs>>,
#[serde(rename = "memoize", skip_serializing_if = "Option::is_none")]
pub memoize: Option<Box<Memoize>>,
#[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
pub metadata: Option<Box<types::Metadata>>,
#[serde(rename = "metrics", skip_serializing_if = "Option::is_none")]
pub metrics: Option<Box<metrics::Metrics>>,
#[serde(rename = "name", skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "nodeSelector", skip_serializing_if = "Option::is_none")]
pub node_selector: Option<::std::collections::HashMap<String, String>>,
#[serde(rename = "outputs", skip_serializing_if = "Option::is_none")]
pub outputs: Option<Box<Outputs>>,
#[serde(rename = "parallelism", skip_serializing_if = "Option::is_none")]
pub parallelism: Option<i32>,
#[serde(rename = "plugin", skip_serializing_if = "Option::is_none")]
pub plugin: Option<serde_json::Value>,
#[serde(rename = "podSpecPatch", skip_serializing_if = "Option::is_none")]
pub pod_spec_patch: Option<String>,
#[serde(rename = "priority", skip_serializing_if = "Option::is_none")]
pub priority: Option<i32>,
#[serde(rename = "priorityClassName", skip_serializing_if = "Option::is_none")]
pub priority_class_name: Option<String>,
#[serde(rename = "resource", skip_serializing_if = "Option::is_none")]
pub resource: Option<Box<ResourceTemplate>>,
#[serde(rename = "retryStrategy", skip_serializing_if = "Option::is_none")]
pub retry_strategy: Option<Box<types::RetryStrategy>>,
#[serde(rename = "schedulerName", skip_serializing_if = "Option::is_none")]
pub scheduler_name: Option<String>,
#[serde(rename = "script", skip_serializing_if = "Option::is_none")]
pub script: Option<Box<ScriptTemplate>>,
#[serde(rename = "securityContext", skip_serializing_if = "Option::is_none")]
pub security_context: Option<Box<core::v1::PodSecurityContext>>,
#[serde(rename = "serviceAccountName", skip_serializing_if = "Option::is_none")]
pub service_account_name: Option<String>,
#[serde(rename = "sidecars", skip_serializing_if = "Option::is_none")]
pub sidecars: Option<Vec<UserContainer>>,
#[serde(rename = "steps", skip_serializing_if = "Option::is_none")]
pub steps: Option<Vec<Vec<workflow::WorkflowStep>>>,
#[serde(rename = "suspend", skip_serializing_if = "Option::is_none")]
pub suspend: Option<Box<SuspendTemplate>>,
#[serde(rename = "synchronization", skip_serializing_if = "Option::is_none")]
pub synchronization: Option<Box<sync::Synchronization>>,
#[serde(rename = "timeout", skip_serializing_if = "Option::is_none")]
pub timeout: Option<String>,
#[serde(rename = "tolerations", skip_serializing_if = "Option::is_none")]
pub tolerations: Option<Vec<core::v1::Toleration>>,
#[serde(rename = "volumes", skip_serializing_if = "Option::is_none")]
pub volumes: Option<Vec<core::v1::Volume>>,
}
impl Template {
pub fn new() -> Self {
Template {
..Default::default()
}
}
}