#[allow(unused_imports)]
mod prelude {
pub use kube::CustomResource;
pub use serde::{Serialize, Deserialize};
pub use std::collections::BTreeMap;
pub use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString;
pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition;
}
use self::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[kube(group = "monitoring.coreos.com", version = "v1", kind = "PrometheusRule", plural = "prometheusrules")]
#[kube(namespaced)]
#[kube(status = "PrometheusRuleStatus")]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct PrometheusRuleSpec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub groups: Option<Vec<PrometheusRuleGroups>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PrometheusRuleGroups {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub interval: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub labels: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub partial_response_strategy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub query_offset: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rules: Option<Vec<PrometheusRuleGroupsRules>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PrometheusRuleGroupsRules {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub alert: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<BTreeMap<String, String>>,
pub expr: IntOrString,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "for")]
pub r#for: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub keep_firing_for: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub labels: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub record: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PrometheusRuleStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bindings: Option<Vec<PrometheusRuleStatusBindings>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub struct PrometheusRuleStatusBindings {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub conditions: Option<Vec<Condition>>,
pub group: PrometheusRuleStatusBindingsGroup,
pub name: String,
pub namespace: String,
pub resource: PrometheusRuleStatusBindingsResource,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum PrometheusRuleStatusBindingsGroup {
#[serde(rename = "monitoring.coreos.com")]
MonitoringCoreosCom,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum PrometheusRuleStatusBindingsResource {
#[serde(rename = "prometheuses")]
Prometheuses,
#[serde(rename = "prometheusagents")]
Prometheusagents,
#[serde(rename = "thanosrulers")]
Thanosrulers,
#[serde(rename = "alertmanagers")]
Alertmanagers,
}