kcr_flagger_app 3.20260117.223631

Kubernetes Custom Resource Bindings
Documentation
// WARNING: generated by kopium - manual changes will be overwritten
// kopium command: kopium --docs --derive=Default --derive=PartialEq --smart-derive-elision --filename crd-catalog/fluxcd/flagger/flagger.app/v1beta1/metrictemplates.yaml
// kopium version: 0.22.5

#[allow(unused_imports)]
mod prelude {
    pub use kube::CustomResource;
    pub use serde::{Serialize, Deserialize};
    pub use std::collections::BTreeMap;
}
use self::prelude::*;

/// MetricTemplateSpec defines the desired state of a MetricTemplate.
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, PartialEq)]
#[kube(group = "flagger.app", version = "v1beta1", kind = "MetricTemplate", plural = "metrictemplates")]
#[kube(namespaced)]
#[kube(schema = "disabled")]
#[kube(derive="PartialEq")]
pub struct MetricTemplateSpec {
    /// Provider of this metric template
    pub provider: MetricTemplateProvider,
    /// Query of this metric template
    pub query: String,
}

/// Provider of this metric template
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub struct MetricTemplateProvider {
    /// API address of this provider
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub address: Option<String>,
    /// Headers to add to HTTP(S) requests
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub headers: Option<BTreeMap<String, Vec<String>>>,
    /// Disable SSL certificate validation for the provider address
    #[serde(default, skip_serializing_if = "Option::is_none", rename = "insecureSkipVerify")]
    pub insecure_skip_verify: Option<bool>,
    /// Region of the provider
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub region: Option<String>,
    /// Kubernetes secret reference containing the provider credentials
    #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")]
    pub secret_ref: Option<MetricTemplateProviderSecretRef>,
    /// Type of this provider
    #[serde(rename = "type")]
    pub r#type: MetricTemplateProviderType,
}

/// Kubernetes secret reference containing the provider credentials
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct MetricTemplateProviderSecretRef {
    /// Name of the Kubernetes secret
    pub name: String,
}

/// Provider of this metric template
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum MetricTemplateProviderType {
    #[serde(rename = "prometheus")]
    Prometheus,
    #[serde(rename = "influxdb")]
    Influxdb,
    #[serde(rename = "datadog")]
    Datadog,
    #[serde(rename = "stackdriver")]
    Stackdriver,
    #[serde(rename = "cloudwatch")]
    Cloudwatch,
    #[serde(rename = "newrelic")]
    Newrelic,
    #[serde(rename = "graphite")]
    Graphite,
    #[serde(rename = "dynatrace")]
    Dynatrace,
    #[serde(rename = "keptn")]
    Keptn,
    #[serde(rename = "splunk")]
    Splunk,
}