#[allow(unused_imports)]
mod prelude {
pub use kube::CustomResource;
pub use serde::{Serialize, Deserialize};
pub use std::collections::BTreeMap;
}
use self::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[kube(group = "mutations.gatekeeper.sh", version = "v1beta1", kind = "ModifySet", plural = "modifyset")]
#[kube(status = "ModifySetStatus")]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct ModifySetSpec {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "applyTo")]
pub apply_to: Option<Vec<ModifySetApplyTo>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub location: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "match")]
pub r#match: Option<ModifySetMatch>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parameters: Option<ModifySetParameters>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ModifySetApplyTo {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub groups: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kinds: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub versions: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ModifySetMatch {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "excludedNamespaces")]
pub excluded_namespaces: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kinds: Option<Vec<ModifySetMatchKinds>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")]
pub label_selector: Option<ModifySetMatchLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")]
pub namespace_selector: Option<ModifySetMatchNamespaceSelector>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespaces: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scope: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source: Option<ModifySetMatchSource>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ModifySetMatchKinds {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroups")]
pub api_groups: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kinds: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ModifySetMatchLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<ModifySetMatchLabelSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ModifySetMatchLabelSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ModifySetMatchNamespaceSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<ModifySetMatchNamespaceSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ModifySetMatchNamespaceSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ModifySetMatchSource {
All,
Generated,
Original,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ModifySetParameters {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub operation: Option<ModifySetParametersOperation>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "pathTests")]
pub path_tests: Option<Vec<ModifySetParametersPathTests>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<BTreeMap<String, serde_json::Value>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ModifySetParametersOperation {
#[serde(rename = "merge")]
Merge,
#[serde(rename = "prune")]
Prune,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ModifySetParametersPathTests {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub condition: Option<ModifySetParametersPathTestsCondition>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "subPath")]
pub sub_path: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ModifySetParametersPathTestsCondition {
MustExist,
MustNotExist,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ModifySetStatus {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "byPod")]
pub by_pod: Option<Vec<ModifySetStatusByPod>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ModifySetStatusByPod {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enforced: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub errors: Option<Vec<ModifySetStatusByPodErrors>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "mutatorUID")]
pub mutator_uid: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")]
pub observed_generation: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub operations: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ModifySetStatusByPodErrors {
pub message: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
pub r#type: Option<String>,
}