#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct CreateClusterRequestAutoscalerConfig {
#[serde(
rename = "scale_down_disabled",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub scale_down_disabled: Option<Option<bool>>,
#[serde(
rename = "scale_down_delay_after_add",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub scale_down_delay_after_add: Option<Option<String>>,
#[serde(rename = "estimator", skip_serializing_if = "Option::is_none")]
pub estimator: Option<Estimator>,
#[serde(rename = "expander", skip_serializing_if = "Option::is_none")]
pub expander: Option<Expander>,
#[serde(
rename = "ignore_daemonsets_utilization",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub ignore_daemonsets_utilization: Option<Option<bool>>,
#[serde(
rename = "balance_similar_node_groups",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub balance_similar_node_groups: Option<Option<bool>>,
#[serde(
rename = "expendable_pods_priority_cutoff",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub expendable_pods_priority_cutoff: Option<Option<i32>>,
#[serde(
rename = "scale_down_unneeded_time",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub scale_down_unneeded_time: Option<Option<String>>,
#[serde(
rename = "scale_down_utilization_threshold",
skip_serializing_if = "Option::is_none"
)]
pub scale_down_utilization_threshold: Option<
Box<crate::models::CreateClusterRequestAutoscalerConfigScaleDownUtilizationThreshold>,
>,
#[serde(
rename = "max_graceful_termination_sec",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub max_graceful_termination_sec: Option<Option<i32>>,
}
impl CreateClusterRequestAutoscalerConfig {
pub fn new() -> CreateClusterRequestAutoscalerConfig {
CreateClusterRequestAutoscalerConfig {
scale_down_disabled: None,
scale_down_delay_after_add: None,
estimator: None,
expander: None,
ignore_daemonsets_utilization: None,
balance_similar_node_groups: None,
expendable_pods_priority_cutoff: None,
scale_down_unneeded_time: None,
scale_down_utilization_threshold: None,
max_graceful_termination_sec: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Estimator {
#[serde(rename = "unknown_estimator")]
UnknownEstimator,
#[serde(rename = "binpacking")]
Binpacking,
}
impl Default for Estimator {
fn default() -> Estimator {
Self::UnknownEstimator
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Expander {
#[serde(rename = "unknown_expander")]
UnknownExpander,
#[serde(rename = "random")]
Random,
#[serde(rename = "most_pods")]
MostPods,
#[serde(rename = "least_waste")]
LeastWaste,
#[serde(rename = "priority")]
Priority,
#[serde(rename = "price")]
Price,
}
impl Default for Expander {
fn default() -> Expander {
Self::UnknownExpander
}
}