#[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;
}
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(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>,
}