#[allow(unused_imports)]
mod prelude {
pub use kube::CustomResource;
pub use serde::{Serialize, Deserialize};
pub use std::collections::BTreeMap;
pub use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString;
pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition;
}
use self::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, PartialEq)]
#[kube(group = "clusters.clusternet.io", version = "v1beta1", kind = "ManagedCluster", plural = "managedclusters")]
#[kube(namespaced)]
#[kube(status = "ManagedClusterStatus")]
#[kube(schema = "disabled")]
#[kube(derive="PartialEq")]
pub struct ManagedClusterSpec {
#[serde(rename = "clusterId")]
pub cluster_id: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clusterInitBaseName")]
pub cluster_init_base_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clusterType")]
pub cluster_type: Option<String>,
#[serde(rename = "syncMode")]
pub sync_mode: ManagedClusterSyncMode,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub taints: Option<Vec<ManagedClusterTaints>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ManagedClusterSyncMode {
Push,
Pull,
Dual,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ManagedClusterTaints {
pub effect: String,
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "timeAdded")]
pub time_added: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ManagedClusterStatus {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "agentVersion")]
pub agent_version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allocatable: Option<BTreeMap<String, IntOrString>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiserverURL")]
pub apiserver_url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "appPusher")]
pub app_pusher: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub capacity: Option<BTreeMap<String, IntOrString>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clusterCIDR")]
pub cluster_cidr: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub conditions: Option<Vec<Condition>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub healthz: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "heartbeatFrequencySeconds")]
pub heartbeat_frequency_seconds: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "k8sVersion")]
pub k8s_version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "kubeBurst")]
pub kube_burst: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "kubeQPS")]
pub kube_qps: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "lastObservedTime")]
pub last_observed_time: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub livez: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeStatistics")]
pub node_statistics: Option<ManagedClusterStatusNodeStatistics>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub platform: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "podStatistics")]
pub pod_statistics: Option<ManagedClusterStatusPodStatistics>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "predictorAddress")]
pub predictor_address: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "predictorDirectAccess")]
pub predictor_direct_access: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "predictorEnabled")]
pub predictor_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub readyz: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceUsage")]
pub resource_usage: Option<ManagedClusterStatusResourceUsage>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceCIDR")]
pub service_cidr: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "useSocket")]
pub use_socket: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ManagedClusterStatusNodeStatistics {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "lostNodes")]
pub lost_nodes: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "notReadyNodes")]
pub not_ready_nodes: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readyNodes")]
pub ready_nodes: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "unknownNodes")]
pub unknown_nodes: Option<i32>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ManagedClusterStatusPodStatistics {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "runningPods")]
pub running_pods: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "totalPods")]
pub total_pods: Option<i32>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ManagedClusterStatusResourceUsage {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "cpuUsage")]
pub cpu_usage: Option<IntOrString>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "memoryUsage")]
pub memory_usage: Option<IntOrString>,
}