use std::collections::HashMap;
use serde::{Serialize, Deserialize};
use serde_with::*;
#[expect(unused_imports, reason = "Used in docs.")]
use crate::types::*;
use crate::util::*;
#[serde_as]
#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize, Suitability)]
#[serde(deny_unknown_fields)]
pub struct CleanerDocs {
#[serde(default, skip_serializing_if = "is_default")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "is_default")]
pub description: Option<Vec<String>>,
#[serde_with = "MapPreventDuplicates<_, _>"]
#[serde(default, skip_serializing_if = "is_default")]
pub flags: HashMap<String, String>,
#[serde_with = "MapPreventDuplicates<_, _>"]
#[serde(default, skip_serializing_if = "is_default")]
pub vars: HashMap<String, String>,
#[serde_with = "MapPreventDuplicates<_, _>"]
#[serde(default, skip_serializing_if = "is_default")]
pub environment_vars: HashMap<String, String>,
#[serde_with = "MapPreventDuplicates<_, _>"]
#[serde(default, skip_serializing_if = "is_default")]
pub sets: HashMap<String, String>,
#[serde_with = "MapPreventDuplicates<_, _>"]
#[serde(default, skip_serializing_if = "is_default")]
pub lists: HashMap<String, String>,
#[serde_with = "MapPreventDuplicates<_, _>"]
#[serde(default, skip_serializing_if = "is_default")]
pub maps: HashMap<String, String>,
#[serde_with = "MapPreventDuplicates<_, _>"]
#[serde(default, skip_serializing_if = "is_default")]
pub named_partitionings: HashMap<String, String>,
#[serde(default, skip_serializing_if = "is_default")]
pub job_context: JobContextDocs,
#[serde(default, skip_serializing_if = "is_default")]
pub task_context: TaskContextDocs
}
#[serde_as]
#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize, Suitability)]
pub struct JobContextDocs {
#[serde_with = "MapPreventDuplicates<_, _>"]
#[serde(default, skip_serializing_if = "is_default")]
pub vars: HashMap<String, String>
}
#[serde_as]
#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize, Suitability)]
pub struct TaskContextDocs {
#[serde_with = "MapPreventDuplicates<_, _>"]
#[serde(default, skip_serializing_if = "is_default")]
pub vars: HashMap<String, String>
}