#[allow(unused_imports)]
mod prelude {
pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition;
pub use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString;
pub use kube_derive::CustomResource;
#[cfg(feature = "schemars")]
pub use schemars::JsonSchema;
pub use serde::{Deserialize, Serialize};
pub use std::collections::BTreeMap;
#[cfg(feature = "builder")]
pub use typed_builder::TypedBuilder;
}
use self::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
#[cfg_attr(not(feature = "schemars"), kube(schema = "disabled"))]
#[kube(
group = "cluster.x-k8s.io",
version = "v1beta2",
kind = "ClusterClass",
plural = "clusterclasses"
)]
#[kube(namespaced)]
#[kube(status = "ClusterClassStatus")]
#[kube(derive = "Default")]
#[kube(derive = "PartialEq")]
pub struct ClusterClassSpec {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "availabilityGates"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub availability_gates: Option<Vec<ClusterClassAvailabilityGates>>,
#[serde(rename = "controlPlane")]
pub control_plane: ClusterClassControlPlane,
pub infrastructure: ClusterClassInfrastructure,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "kubernetesVersions"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub kubernetes_versions: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub patches: Option<Vec<ClusterClassPatches>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub upgrade: Option<ClusterClassUpgrade>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub variables: Option<Vec<ClusterClassVariables>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub workers: Option<ClusterClassWorkers>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassAvailabilityGates {
#[serde(rename = "conditionType")]
pub condition_type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub polarity: Option<ClusterClassAvailabilityGatesPolarity>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub enum ClusterClassAvailabilityGatesPolarity {
Positive,
Negative,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassControlPlane {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub deletion: Option<ClusterClassControlPlaneDeletion>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "healthCheck"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub health_check: Option<ClusterClassControlPlaneHealthCheck>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "machineInfrastructure"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub machine_infrastructure: Option<ClusterClassControlPlaneMachineInfrastructure>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub metadata: Option<ClusterClassControlPlaneMetadata>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub naming: Option<ClusterClassControlPlaneNaming>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "readinessGates"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub readiness_gates: Option<Vec<ClusterClassControlPlaneReadinessGates>>,
#[serde(rename = "templateRef")]
pub template_ref: ClusterClassControlPlaneTemplateRef,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassControlPlaneDeletion {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "nodeDeletionTimeoutSeconds"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub node_deletion_timeout_seconds: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "nodeDrainTimeoutSeconds"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub node_drain_timeout_seconds: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "nodeVolumeDetachTimeoutSeconds"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub node_volume_detach_timeout_seconds: Option<i32>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassControlPlaneHealthCheck {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub checks: Option<ClusterClassControlPlaneHealthCheckChecks>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub remediation: Option<ClusterClassControlPlaneHealthCheckRemediation>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassControlPlaneHealthCheckChecks {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "nodeStartupTimeoutSeconds"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub node_startup_timeout_seconds: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "unhealthyMachineConditions"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub unhealthy_machine_conditions:
Option<Vec<ClusterClassControlPlaneHealthCheckChecksUnhealthyMachineConditions>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "unhealthyNodeConditions"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub unhealthy_node_conditions:
Option<Vec<ClusterClassControlPlaneHealthCheckChecksUnhealthyNodeConditions>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassControlPlaneHealthCheckChecksUnhealthyMachineConditions {
pub status: ClusterClassControlPlaneHealthCheckChecksUnhealthyMachineConditionsStatus,
#[serde(rename = "timeoutSeconds")]
pub timeout_seconds: i32,
#[serde(rename = "type")]
pub r#type: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub enum ClusterClassControlPlaneHealthCheckChecksUnhealthyMachineConditionsStatus {
True,
False,
Unknown,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassControlPlaneHealthCheckChecksUnhealthyNodeConditions {
pub status: String,
#[serde(rename = "timeoutSeconds")]
pub timeout_seconds: i32,
#[serde(rename = "type")]
pub r#type: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassControlPlaneHealthCheckRemediation {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "templateRef"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub template_ref: Option<ClusterClassControlPlaneHealthCheckRemediationTemplateRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "triggerIf")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub trigger_if: Option<ClusterClassControlPlaneHealthCheckRemediationTriggerIf>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassControlPlaneHealthCheckRemediationTemplateRef {
#[serde(rename = "apiVersion")]
pub api_version: String,
pub kind: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassControlPlaneHealthCheckRemediationTriggerIf {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "unhealthyInRange"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub unhealthy_in_range: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "unhealthyLessThanOrEqualTo"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub unhealthy_less_than_or_equal_to: Option<IntOrString>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassControlPlaneMachineInfrastructure {
#[serde(rename = "templateRef")]
pub template_ref: ClusterClassControlPlaneMachineInfrastructureTemplateRef,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassControlPlaneMachineInfrastructureTemplateRef {
#[serde(rename = "apiVersion")]
pub api_version: String,
pub kind: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassControlPlaneMetadata {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub annotations: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassControlPlaneNaming {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub template: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassControlPlaneReadinessGates {
#[serde(rename = "conditionType")]
pub condition_type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub polarity: Option<ClusterClassControlPlaneReadinessGatesPolarity>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub enum ClusterClassControlPlaneReadinessGatesPolarity {
Positive,
Negative,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassControlPlaneTemplateRef {
#[serde(rename = "apiVersion")]
pub api_version: String,
pub kind: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassInfrastructure {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub naming: Option<ClusterClassInfrastructureNaming>,
#[serde(rename = "templateRef")]
pub template_ref: ClusterClassInfrastructureTemplateRef,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassInfrastructureNaming {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub template: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassInfrastructureTemplateRef {
#[serde(rename = "apiVersion")]
pub api_version: String,
pub kind: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassPatches {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub definitions: Option<Vec<ClusterClassPatchesDefinitions>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "enabledIf")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub enabled_if: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub external: Option<ClusterClassPatchesExternal>,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassPatchesDefinitions {
#[serde(rename = "jsonPatches")]
#[cfg_attr(feature = "builder", builder(default))]
pub json_patches: Vec<ClusterClassPatchesDefinitionsJsonPatches>,
pub selector: ClusterClassPatchesDefinitionsSelector,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassPatchesDefinitionsJsonPatches {
pub op: ClusterClassPatchesDefinitionsJsonPatchesOp,
pub path: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub value: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "valueFrom")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub value_from: Option<ClusterClassPatchesDefinitionsJsonPatchesValueFrom>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub enum ClusterClassPatchesDefinitionsJsonPatchesOp {
#[serde(rename = "add")]
Add,
#[serde(rename = "replace")]
Replace,
#[serde(rename = "remove")]
Remove,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassPatchesDefinitionsJsonPatchesValueFrom {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub template: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub variable: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassPatchesDefinitionsSelector {
#[serde(rename = "apiVersion")]
pub api_version: String,
pub kind: String,
#[serde(rename = "matchResources")]
pub match_resources: ClusterClassPatchesDefinitionsSelectorMatchResources,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassPatchesDefinitionsSelectorMatchResources {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "controlPlane"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub control_plane: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "infrastructureCluster"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub infrastructure_cluster: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "machineDeploymentClass"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub machine_deployment_class:
Option<ClusterClassPatchesDefinitionsSelectorMatchResourcesMachineDeploymentClass>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "machinePoolClass"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub machine_pool_class:
Option<ClusterClassPatchesDefinitionsSelectorMatchResourcesMachinePoolClass>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassPatchesDefinitionsSelectorMatchResourcesMachineDeploymentClass {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub names: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassPatchesDefinitionsSelectorMatchResourcesMachinePoolClass {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub names: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassPatchesExternal {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "discoverVariablesExtension"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub discover_variables_extension: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "generatePatchesExtension"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub generate_patches_extension: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub settings: Option<BTreeMap<String, String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "validateTopologyExtension"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub validate_topology_extension: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassUpgrade {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub external: Option<ClusterClassUpgradeExternal>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassUpgradeExternal {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "generateUpgradePlanExtension"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub generate_upgrade_plan_extension: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassVariables {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "deprecatedV1Beta1Metadata"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub deprecated_v1_beta1_metadata: Option<ClusterClassVariablesDeprecatedV1Beta1Metadata>,
pub name: String,
pub required: bool,
pub schema: ClusterClassVariablesSchema,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassVariablesDeprecatedV1Beta1Metadata {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub annotations: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassVariablesSchema {
#[serde(rename = "openAPIV3Schema")]
pub open_apiv3_schema: ClusterClassVariablesSchemaOpenApiv3Schema,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassVariablesSchemaOpenApiv3Schema {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "additionalProperties"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub additional_properties: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "allOf")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub all_of: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "anyOf")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub any_of: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub default: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "enum")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub r#enum: Option<Vec<serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub example: Option<serde_json::Value>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "exclusiveMaximum"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub exclusive_maximum: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "exclusiveMinimum"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub exclusive_minimum: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub format: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub items: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxItems")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub max_items: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxLength")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub max_length: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "maxProperties"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub max_properties: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub maximum: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "minItems")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub min_items: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "minLength")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub min_length: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "minProperties"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub min_properties: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub minimum: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub not: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "oneOf")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub one_of: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub pattern: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub properties: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub required: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub r#type: Option<ClusterClassVariablesSchemaOpenApiv3SchemaType>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "uniqueItems"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub unique_items: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "x-kubernetes-int-or-string"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub x_kubernetes_int_or_string: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "x-kubernetes-preserve-unknown-fields"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub x_kubernetes_preserve_unknown_fields: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "x-kubernetes-validations"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub x_kubernetes_validations:
Option<Vec<ClusterClassVariablesSchemaOpenApiv3SchemaXKubernetesValidations>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "x-metadata"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub x_metadata: Option<ClusterClassVariablesSchemaOpenApiv3SchemaXMetadata>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub enum ClusterClassVariablesSchemaOpenApiv3SchemaType {
#[serde(rename = "object")]
Object,
#[serde(rename = "array")]
Array,
#[serde(rename = "string")]
String,
#[serde(rename = "integer")]
Integer,
#[serde(rename = "number")]
Number,
#[serde(rename = "boolean")]
Boolean,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassVariablesSchemaOpenApiv3SchemaXKubernetesValidations {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub field_path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub message: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "messageExpression"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub message_expression: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub reason: Option<ClusterClassVariablesSchemaOpenApiv3SchemaXKubernetesValidationsReason>,
pub rule: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub enum ClusterClassVariablesSchemaOpenApiv3SchemaXKubernetesValidationsReason {
FieldValueInvalid,
FieldValueForbidden,
FieldValueRequired,
FieldValueDuplicate,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassVariablesSchemaOpenApiv3SchemaXMetadata {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub annotations: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkers {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "machineDeployments"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub machine_deployments: Option<Vec<ClusterClassWorkersMachineDeployments>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "machinePools"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub machine_pools: Option<Vec<ClusterClassWorkersMachinePools>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachineDeployments {
pub bootstrap: ClusterClassWorkersMachineDeploymentsBootstrap,
pub class: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub deletion: Option<ClusterClassWorkersMachineDeploymentsDeletion>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "failureDomain"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub failure_domain: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "healthCheck"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub health_check: Option<ClusterClassWorkersMachineDeploymentsHealthCheck>,
pub infrastructure: ClusterClassWorkersMachineDeploymentsInfrastructure,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub metadata: Option<ClusterClassWorkersMachineDeploymentsMetadata>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "minReadySeconds"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub min_ready_seconds: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub naming: Option<ClusterClassWorkersMachineDeploymentsNaming>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "readinessGates"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub readiness_gates: Option<Vec<ClusterClassWorkersMachineDeploymentsReadinessGates>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub rollout: Option<ClusterClassWorkersMachineDeploymentsRollout>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachineDeploymentsBootstrap {
#[serde(rename = "templateRef")]
pub template_ref: ClusterClassWorkersMachineDeploymentsBootstrapTemplateRef,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachineDeploymentsBootstrapTemplateRef {
#[serde(rename = "apiVersion")]
pub api_version: String,
pub kind: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachineDeploymentsDeletion {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "nodeDeletionTimeoutSeconds"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub node_deletion_timeout_seconds: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "nodeDrainTimeoutSeconds"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub node_drain_timeout_seconds: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "nodeVolumeDetachTimeoutSeconds"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub node_volume_detach_timeout_seconds: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub order: Option<ClusterClassWorkersMachineDeploymentsDeletionOrder>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub enum ClusterClassWorkersMachineDeploymentsDeletionOrder {
Random,
Newest,
Oldest,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachineDeploymentsHealthCheck {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub checks: Option<ClusterClassWorkersMachineDeploymentsHealthCheckChecks>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub remediation: Option<ClusterClassWorkersMachineDeploymentsHealthCheckRemediation>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachineDeploymentsHealthCheckChecks {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "nodeStartupTimeoutSeconds"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub node_startup_timeout_seconds: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "unhealthyMachineConditions"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub unhealthy_machine_conditions: Option<
Vec<ClusterClassWorkersMachineDeploymentsHealthCheckChecksUnhealthyMachineConditions>,
>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "unhealthyNodeConditions"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub unhealthy_node_conditions:
Option<Vec<ClusterClassWorkersMachineDeploymentsHealthCheckChecksUnhealthyNodeConditions>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachineDeploymentsHealthCheckChecksUnhealthyMachineConditions {
pub status:
ClusterClassWorkersMachineDeploymentsHealthCheckChecksUnhealthyMachineConditionsStatus,
#[serde(rename = "timeoutSeconds")]
pub timeout_seconds: i32,
#[serde(rename = "type")]
pub r#type: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub enum ClusterClassWorkersMachineDeploymentsHealthCheckChecksUnhealthyMachineConditionsStatus {
True,
False,
Unknown,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachineDeploymentsHealthCheckChecksUnhealthyNodeConditions {
pub status: String,
#[serde(rename = "timeoutSeconds")]
pub timeout_seconds: i32,
#[serde(rename = "type")]
pub r#type: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachineDeploymentsHealthCheckRemediation {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "maxInFlight"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub max_in_flight: Option<IntOrString>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "templateRef"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub template_ref:
Option<ClusterClassWorkersMachineDeploymentsHealthCheckRemediationTemplateRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "triggerIf")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub trigger_if: Option<ClusterClassWorkersMachineDeploymentsHealthCheckRemediationTriggerIf>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachineDeploymentsHealthCheckRemediationTemplateRef {
#[serde(rename = "apiVersion")]
pub api_version: String,
pub kind: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachineDeploymentsHealthCheckRemediationTriggerIf {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "unhealthyInRange"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub unhealthy_in_range: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "unhealthyLessThanOrEqualTo"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub unhealthy_less_than_or_equal_to: Option<IntOrString>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachineDeploymentsInfrastructure {
#[serde(rename = "templateRef")]
pub template_ref: ClusterClassWorkersMachineDeploymentsInfrastructureTemplateRef,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachineDeploymentsInfrastructureTemplateRef {
#[serde(rename = "apiVersion")]
pub api_version: String,
pub kind: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachineDeploymentsMetadata {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub annotations: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachineDeploymentsNaming {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub template: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachineDeploymentsReadinessGates {
#[serde(rename = "conditionType")]
pub condition_type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub polarity: Option<ClusterClassWorkersMachineDeploymentsReadinessGatesPolarity>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub enum ClusterClassWorkersMachineDeploymentsReadinessGatesPolarity {
Positive,
Negative,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachineDeploymentsRollout {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub strategy: Option<ClusterClassWorkersMachineDeploymentsRolloutStrategy>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachineDeploymentsRolloutStrategy {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "rollingUpdate"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub rolling_update: Option<ClusterClassWorkersMachineDeploymentsRolloutStrategyRollingUpdate>,
#[serde(rename = "type")]
pub r#type: ClusterClassWorkersMachineDeploymentsRolloutStrategyType,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachineDeploymentsRolloutStrategyRollingUpdate {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxSurge")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub max_surge: Option<IntOrString>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "maxUnavailable"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub max_unavailable: Option<IntOrString>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub enum ClusterClassWorkersMachineDeploymentsRolloutStrategyType {
RollingUpdate,
OnDelete,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachinePools {
pub bootstrap: ClusterClassWorkersMachinePoolsBootstrap,
pub class: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub deletion: Option<ClusterClassWorkersMachinePoolsDeletion>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "failureDomains"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub failure_domains: Option<Vec<String>>,
pub infrastructure: ClusterClassWorkersMachinePoolsInfrastructure,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub metadata: Option<ClusterClassWorkersMachinePoolsMetadata>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "minReadySeconds"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub min_ready_seconds: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub naming: Option<ClusterClassWorkersMachinePoolsNaming>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachinePoolsBootstrap {
#[serde(rename = "templateRef")]
pub template_ref: ClusterClassWorkersMachinePoolsBootstrapTemplateRef,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachinePoolsBootstrapTemplateRef {
#[serde(rename = "apiVersion")]
pub api_version: String,
pub kind: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachinePoolsDeletion {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "nodeDeletionTimeoutSeconds"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub node_deletion_timeout_seconds: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "nodeDrainTimeoutSeconds"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub node_drain_timeout_seconds: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "nodeVolumeDetachTimeoutSeconds"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub node_volume_detach_timeout_seconds: Option<i32>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachinePoolsInfrastructure {
#[serde(rename = "templateRef")]
pub template_ref: ClusterClassWorkersMachinePoolsInfrastructureTemplateRef,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachinePoolsInfrastructureTemplateRef {
#[serde(rename = "apiVersion")]
pub api_version: String,
pub kind: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachinePoolsMetadata {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub annotations: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassWorkersMachinePoolsNaming {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub template: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub conditions: Option<Vec<Condition>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub deprecated: Option<ClusterClassStatusDeprecated>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "observedGeneration"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub observed_generation: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub variables: Option<Vec<ClusterClassStatusVariables>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassStatusDeprecated {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub v1beta1: Option<ClusterClassStatusDeprecatedV1beta1>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassStatusDeprecatedV1beta1 {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub conditions: Option<Vec<Condition>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassStatusVariables {
#[cfg_attr(feature = "builder", builder(default))]
pub definitions: Vec<ClusterClassStatusVariablesDefinitions>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "definitionsConflict"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub definitions_conflict: Option<bool>,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassStatusVariablesDefinitions {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "deprecatedV1Beta1Metadata"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub deprecated_v1_beta1_metadata:
Option<ClusterClassStatusVariablesDefinitionsDeprecatedV1Beta1Metadata>,
pub from: String,
pub required: bool,
pub schema: ClusterClassStatusVariablesDefinitionsSchema,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassStatusVariablesDefinitionsDeprecatedV1Beta1Metadata {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub annotations: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassStatusVariablesDefinitionsSchema {
#[serde(rename = "openAPIV3Schema")]
pub open_apiv3_schema: ClusterClassStatusVariablesDefinitionsSchemaOpenApiv3Schema,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassStatusVariablesDefinitionsSchemaOpenApiv3Schema {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "additionalProperties"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub additional_properties: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "allOf")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub all_of: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "anyOf")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub any_of: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub default: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "enum")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub r#enum: Option<Vec<serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub example: Option<serde_json::Value>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "exclusiveMaximum"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub exclusive_maximum: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "exclusiveMinimum"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub exclusive_minimum: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub format: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub items: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxItems")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub max_items: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxLength")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub max_length: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "maxProperties"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub max_properties: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub maximum: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "minItems")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub min_items: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "minLength")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub min_length: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "minProperties"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub min_properties: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub minimum: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub not: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "oneOf")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub one_of: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub pattern: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub properties: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub required: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub r#type: Option<ClusterClassStatusVariablesDefinitionsSchemaOpenApiv3SchemaType>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "uniqueItems"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub unique_items: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "x-kubernetes-int-or-string"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub x_kubernetes_int_or_string: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "x-kubernetes-preserve-unknown-fields"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub x_kubernetes_preserve_unknown_fields: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "x-kubernetes-validations"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub x_kubernetes_validations: Option<
Vec<ClusterClassStatusVariablesDefinitionsSchemaOpenApiv3SchemaXKubernetesValidations>,
>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "x-metadata"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub x_metadata: Option<ClusterClassStatusVariablesDefinitionsSchemaOpenApiv3SchemaXMetadata>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub enum ClusterClassStatusVariablesDefinitionsSchemaOpenApiv3SchemaType {
#[serde(rename = "object")]
Object,
#[serde(rename = "array")]
Array,
#[serde(rename = "string")]
String,
#[serde(rename = "integer")]
Integer,
#[serde(rename = "number")]
Number,
#[serde(rename = "boolean")]
Boolean,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassStatusVariablesDefinitionsSchemaOpenApiv3SchemaXKubernetesValidations {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub field_path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub message: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "messageExpression"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub message_expression: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub reason: Option<
ClusterClassStatusVariablesDefinitionsSchemaOpenApiv3SchemaXKubernetesValidationsReason,
>,
pub rule: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub enum ClusterClassStatusVariablesDefinitionsSchemaOpenApiv3SchemaXKubernetesValidationsReason {
FieldValueInvalid,
FieldValueForbidden,
FieldValueRequired,
FieldValueDuplicate,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ClusterClassStatusVariablesDefinitionsSchemaOpenApiv3SchemaXMetadata {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub annotations: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub labels: Option<BTreeMap<String, String>>,
}