#[allow(unused_imports)]
mod prelude {
pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition;
pub use kube_derive::CustomResource;
#[cfg(feature = "schemars")]
pub use schemars::JsonSchema;
pub use serde::{Deserialize, Serialize};
pub use std::collections::BTreeMap;
#[cfg(feature = "builder")]
pub use typed_builder::TypedBuilder;
}
use self::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
#[cfg_attr(not(feature = "schemars"), kube(schema = "disabled"))]
#[kube(
group = "runtime.cluster.x-k8s.io",
version = "v1beta2",
kind = "ExtensionConfig",
plural = "extensionconfigs"
)]
#[kube(status = "ExtensionConfigStatus")]
#[kube(derive = "Default")]
#[kube(derive = "PartialEq")]
pub struct ExtensionConfigSpec {
#[serde(rename = "clientConfig")]
pub client_config: ExtensionConfigClientConfig,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "namespaceSelector"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub namespace_selector: Option<ExtensionConfigNamespaceSelector>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub settings: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ExtensionConfigClientConfig {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "caBundle")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub ca_bundle: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub service: Option<ExtensionConfigClientConfigService>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub url: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ExtensionConfigClientConfigService {
pub name: String,
pub namespace: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub port: Option<i32>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ExtensionConfigNamespaceSelector {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "matchExpressions"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub match_expressions: Option<Vec<ExtensionConfigNamespaceSelectorMatchExpressions>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "matchLabels"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ExtensionConfigNamespaceSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ExtensionConfigStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub conditions: Option<Vec<Condition>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub deprecated: Option<ExtensionConfigStatusDeprecated>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub handlers: Option<Vec<ExtensionConfigStatusHandlers>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ExtensionConfigStatusDeprecated {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub v1beta1: Option<ExtensionConfigStatusDeprecatedV1beta1>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ExtensionConfigStatusDeprecatedV1beta1 {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub conditions: Option<Vec<Condition>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ExtensionConfigStatusHandlers {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "failurePolicy"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub failure_policy: Option<ExtensionConfigStatusHandlersFailurePolicy>,
pub name: String,
#[serde(rename = "requestHook")]
pub request_hook: ExtensionConfigStatusHandlersRequestHook,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "timeoutSeconds"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub timeout_seconds: Option<i32>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub enum ExtensionConfigStatusHandlersFailurePolicy {
Ignore,
Fail,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct ExtensionConfigStatusHandlersRequestHook {
#[serde(rename = "apiVersion")]
pub api_version: String,
pub hook: String,
}