#[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 = "druid.apache.org", version = "v1alpha1", kind = "DruidIngestion", plural = "druidingestions")]
#[kube(namespaced)]
#[kube(status = "DruidIngestionStatus")]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct DruidIngestionSpec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub auth: Option<DruidIngestionAuth>,
#[serde(rename = "druidCluster")]
pub druid_cluster: String,
pub ingestion: DruidIngestionIngestion,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub suspend: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidIngestionAuth {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "passwordKey")]
pub password_key: Option<String>,
#[serde(rename = "secretRef")]
pub secret_ref: DruidIngestionAuthSecretRef,
#[serde(rename = "type")]
pub r#type: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "usernameKey")]
pub username_key: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidIngestionAuthSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidIngestionIngestion {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub compaction: Option<BTreeMap<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "nativeSpec")]
pub native_spec: Option<BTreeMap<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rules: Option<Vec<BTreeMap<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub spec: Option<String>,
#[serde(rename = "type")]
pub r#type: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidIngestionStatus {
#[serde(rename = "currentIngestionSpec.json")]
pub current_ingestion_spec_json: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "lastUpdateTime")]
pub last_update_time: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reason: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rules: Option<Vec<BTreeMap<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(rename = "taskId")]
pub task_id: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
pub r#type: Option<String>,
}