#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct CreateClusterRequest {
#[serde(rename = "organization_id", skip_serializing_if = "Option::is_none")]
pub organization_id: Option<String>,
#[serde(rename = "project_id")]
pub project_id: String,
#[serde(rename = "type", skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "description", skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<String>>,
#[serde(rename = "version")]
pub version: String,
#[serde(rename = "cni")]
pub cni: Cni,
#[serde(rename = "enable_dashboard", skip_serializing_if = "Option::is_none")]
pub enable_dashboard: Option<bool>,
#[serde(rename = "ingress", skip_serializing_if = "Option::is_none")]
pub ingress: Option<Ingress>,
#[serde(rename = "pools", skip_serializing_if = "Option::is_none")]
pub pools: Option<
Vec<crate::models::ScalewayPeriodK8sPeriodV1PeriodCreateClusterRequestPeriodPoolConfig>,
>,
#[serde(rename = "autoscaler_config", skip_serializing_if = "Option::is_none")]
pub autoscaler_config: Option<Box<crate::models::CreateClusterRequestAutoscalerConfig>>,
#[serde(rename = "auto_upgrade", skip_serializing_if = "Option::is_none")]
pub auto_upgrade: Option<Box<crate::models::CreateClusterRequestAutoUpgrade>>,
#[serde(rename = "feature_gates", skip_serializing_if = "Option::is_none")]
pub feature_gates: Option<Vec<String>>,
#[serde(rename = "admission_plugins", skip_serializing_if = "Option::is_none")]
pub admission_plugins: Option<Vec<String>>,
#[serde(
rename = "open_id_connect_config",
skip_serializing_if = "Option::is_none"
)]
pub open_id_connect_config: Option<Box<crate::models::CreateClusterRequestOpenIdConnectConfig>>,
#[serde(
rename = "apiserver_cert_sans",
skip_serializing_if = "Option::is_none"
)]
pub apiserver_cert_sans: Option<Vec<String>>,
}
impl CreateClusterRequest {
pub fn new(
project_id: String,
name: String,
version: String,
cni: Cni,
) -> CreateClusterRequest {
CreateClusterRequest {
organization_id: None,
project_id,
r#type: None,
name,
description: None,
tags: None,
version,
cni,
enable_dashboard: None,
ingress: None,
pools: None,
autoscaler_config: None,
auto_upgrade: None,
feature_gates: None,
admission_plugins: None,
open_id_connect_config: None,
apiserver_cert_sans: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Cni {
#[serde(rename = "unknown_cni")]
UnknownCni,
#[serde(rename = "cilium")]
Cilium,
#[serde(rename = "calico")]
Calico,
#[serde(rename = "weave")]
Weave,
#[serde(rename = "flannel")]
Flannel,
#[serde(rename = "kilo")]
Kilo,
}
impl Default for Cni {
fn default() -> Cni {
Self::UnknownCni
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Ingress {
#[serde(rename = "unknown_ingress")]
UnknownIngress,
#[serde(rename = "none")]
None,
#[serde(rename = "nginx")]
Nginx,
#[serde(rename = "traefik")]
Traefik,
#[serde(rename = "traefik2")]
Traefik2,
}
impl Default for Ingress {
fn default() -> Ingress {
Self::UnknownIngress
}
}