Skip to main content

alien_core/import/data/
kubernetes_cluster.rs

1use serde::{Deserialize, Serialize};
2
3use crate::{KubernetesClusterOwnership, KubernetesClusterProvider};
4
5/// Application Gateway for Containers bootstrap data emitted by AKS setup.
6#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
7#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
8#[cfg_attr(feature = "jsonschema", derive(schemars::JsonSchema))]
9#[serde(rename_all = "camelCase")]
10pub struct AzureApplicationGatewayForContainersBootstrap {
11    pub alb_name: String,
12    pub alb_namespace: String,
13    pub association_subnet_id: String,
14}
15
16/// KubernetesCluster ImportData emitted by setup artifacts.
17#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
18#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
19#[cfg_attr(feature = "jsonschema", derive(schemars::JsonSchema))]
20#[serde(rename_all = "camelCase")]
21pub struct KubernetesClusterImportData {
22    pub provider: KubernetesClusterProvider,
23    pub ownership: KubernetesClusterOwnership,
24    pub namespace: String,
25    #[serde(default, skip_serializing_if = "Option::is_none")]
26    pub cluster_name: Option<String>,
27    #[serde(default, skip_serializing_if = "Option::is_none")]
28    pub cluster_id: Option<String>,
29    #[serde(default, skip_serializing_if = "Option::is_none")]
30    pub cloud_metadata_ready: Option<bool>,
31    #[serde(default, skip_serializing_if = "Option::is_none")]
32    pub azure_application_gateway_for_containers:
33        Option<AzureApplicationGatewayForContainersBootstrap>,
34}