#[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 = "iot.eclipse.org", version = "v1alpha1", kind = "Hawkbit", plural = "hawkbits")]
#[kube(namespaced)]
#[kube(status = "HawkbitStatus")]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct HawkbitSpec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub database: Option<HawkbitDatabase>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "imageOverrides")]
pub image_overrides: Option<BTreeMap<String, HawkbitImageOverrides>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rabbit: Option<HawkbitRabbit>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "signOn")]
pub sign_on: Option<HawkbitSignOn>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct HawkbitDatabase {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub embedded: Option<HawkbitDatabaseEmbedded>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mysql: Option<HawkbitDatabaseMysql>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub postgres: Option<HawkbitDatabasePostgres>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct HawkbitDatabaseEmbedded {
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct HawkbitDatabaseMysql {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub database: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "passwordSecret")]
pub password_secret: Option<HawkbitDatabaseMysqlPasswordSecret>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub port: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub username: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct HawkbitDatabaseMysqlPasswordSecret {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub field: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct HawkbitDatabasePostgres {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub database: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "passwordSecret")]
pub password_secret: Option<HawkbitDatabasePostgresPasswordSecret>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub port: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub username: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct HawkbitDatabasePostgresPasswordSecret {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub field: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct HawkbitImageOverrides {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub image: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "pullPolicy")]
pub pull_policy: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct HawkbitRabbit {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub external: Option<HawkbitRabbitExternal>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub managed: Option<HawkbitRabbitManaged>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct HawkbitRabbitExternal {
pub host: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "passwordSecret")]
pub password_secret: Option<HawkbitRabbitExternalPasswordSecret>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub port: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub username: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct HawkbitRabbitExternalPasswordSecret {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub field: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct HawkbitRabbitManaged {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<HawkbitRabbitManagedResources>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "storageSize")]
pub storage_size: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct HawkbitRabbitManagedResources {
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct HawkbitSignOn {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub keycloak: Option<HawkbitSignOnKeycloak>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct HawkbitSignOnKeycloak {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "hawkbitUrl")]
pub hawkbit_url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "instanceSelector")]
pub instance_selector: Option<HawkbitSignOnKeycloakInstanceSelector>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct HawkbitSignOnKeycloakInstanceSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<HawkbitSignOnKeycloakInstanceSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct HawkbitSignOnKeycloakInstanceSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct HawkbitStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub phase: Option<String>,
}