use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString;
use kube_derive::CustomResource;
#[cfg(feature = "schemars")]
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use std::collections::BTreeMap;
#[cfg(feature = "builder")]
use typed_builder::TypedBuilder;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, PartialEq, Default)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
#[cfg_attr(not(feature = "schemars"), kube(schema = "disabled"))]
#[kube(
group = "helm.cattle.io",
version = "v1",
kind = "HelmChart",
plural = "helmcharts"
)]
#[kube(namespaced)]
pub struct HelmChartSpec {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "authPassCredentials"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub auth_pass_credentials: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "authSecret"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub auth_secret: Option<HelmChartAuthSecret>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "backOffLimit"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub back_off_limit: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub bootstrap: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub chart: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "chartContent"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub chart_content: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "createNamespace"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub create_namespace: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "dockerRegistrySecret"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub docker_registry_secret: Option<HelmChartDockerRegistrySecret>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "failurePolicy"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub failure_policy: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "helmVersion"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub helm_version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "jobImage")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub job_image: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub repo: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "repoCA")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub repo_ca: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "repoCAConfigMap"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub repo_ca_config_map: Option<HelmChartRepoCaConfigMap>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub set: Option<BTreeMap<String, IntOrString>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "targetNamespace"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub target_namespace: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub timeout: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "valuesContent"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub values_content: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub version: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Default)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct HelmChartAuthSecret {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Default)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct HelmChartDockerRegistrySecret {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Default)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct HelmChartRepoCaConfigMap {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Default)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct HelmChartStatus {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "jobName")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub job_name: Option<String>,
}