#[allow(unused_imports)]
mod prelude {
pub use kube::CustomResource;
pub use serde::{Serialize, Deserialize};
pub use std::collections::BTreeMap;
}
use self::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[kube(group = "submariner.io", version = "v1alpha1", kind = "ServiceDiscovery", plural = "servicediscoveries")]
#[kube(namespaced)]
#[kube(status = "ServiceDiscoveryStatus")]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct ServiceDiscoverySpec {
#[serde(rename = "brokerK8sApiServer")]
pub broker_k8s_api_server: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "brokerK8sApiServerToken")]
pub broker_k8s_api_server_token: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "brokerK8sCA")]
pub broker_k8s_ca: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "brokerK8sInsecure")]
pub broker_k8s_insecure: Option<bool>,
#[serde(rename = "brokerK8sRemoteNamespace")]
pub broker_k8s_remote_namespace: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "brokerK8sSecret")]
pub broker_k8s_secret: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clusterCIDR")]
pub cluster_cidr: Option<String>,
#[serde(rename = "clusterID")]
pub cluster_id: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clustersetIPCIDR")]
pub clusterset_ipcidr: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clustersetIPEnabled")]
pub clusterset_ip_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "coreDNSCustomConfig")]
pub core_dns_custom_config: Option<ServiceDiscoveryCoreDnsCustomConfig>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "customDomains")]
pub custom_domains: Option<Vec<String>>,
pub debug: bool,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "globalnetEnabled")]
pub globalnet_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "haltOnCertificateError")]
pub halt_on_certificate_error: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "imageOverrides")]
pub image_overrides: Option<BTreeMap<String, String>>,
pub namespace: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")]
pub node_selector: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub repository: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tolerations: Option<Vec<ServiceDiscoveryTolerations>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ServiceDiscoveryCoreDnsCustomConfig {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapName")]
pub config_map_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ServiceDiscoveryTolerations {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub effect: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub operator: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "tolerationSeconds")]
pub toleration_seconds: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ServiceDiscoveryStatus {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "deploymentInfo")]
pub deployment_info: Option<ServiceDiscoveryStatusDeploymentInfo>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ServiceDiscoveryStatusDeploymentInfo {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "cloudProvider")]
pub cloud_provider: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "kubernetesType")]
pub kubernetes_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "kubernetesTypeVersion")]
pub kubernetes_type_version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "kubernetesVersion")]
pub kubernetes_version: Option<String>,
}