#[allow(unused_imports)]
mod prelude {
pub use kube::CustomResource;
pub use schemars::JsonSchema;
pub use serde::{Serialize, Deserialize};
pub use std::collections::BTreeMap;
}
use self::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, JsonSchema)]
#[kube(group = "telemetry.istio.io", version = "v1alpha1", kind = "Telemetry", plural = "telemetries")]
#[kube(namespaced)]
pub struct TelemetrySpec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<TelemetrySelector>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tracing: Option<Vec<TelemetryTracing>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct TelemetrySelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct TelemetryTracing {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "customTags")]
pub custom_tags: Option<BTreeMap<String, TelemetryTracingCustomTags>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "disableSpanReporting")]
pub disable_span_reporting: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub providers: Option<Vec<TelemetryTracingProviders>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "randomSamplingPercentage")]
pub random_sampling_percentage: Option<f64>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct TelemetryTracingCustomTags {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub environment: Option<TelemetryTracingCustomTagsEnvironment>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub header: Option<TelemetryTracingCustomTagsHeader>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub literal: Option<TelemetryTracingCustomTagsLiteral>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct TelemetryTracingCustomTagsEnvironment {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultValue")]
pub default_value: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct TelemetryTracingCustomTagsHeader {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultValue")]
pub default_value: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct TelemetryTracingCustomTagsLiteral {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct TelemetryTracingProviders {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}