#[allow(unused_imports)]
mod prelude {
pub use kube::CustomResource;
pub use serde::{Serialize, Deserialize};
pub use std::collections::BTreeMap;
}
use self::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[kube(group = "getambassador.io", version = "v3alpha1", kind = "AuthService", plural = "authservices")]
#[kube(namespaced)]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct AuthServiceSpec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub add_auth_headers: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub add_linkerd_headers: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allow_request_body: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allowed_authorization_headers: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allowed_request_headers: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ambassador_id: Option<Vec<String>>,
pub auth_service: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub circuit_breakers: Option<Vec<AuthServiceCircuitBreakers>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub failure_mode_allow: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub include_body: Option<AuthServiceIncludeBody>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path_prefix: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub proto: Option<AuthServiceProto>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub protocol_version: Option<AuthServiceProtocolVersion>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub stats_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status_on_error: Option<AuthServiceStatusOnError>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timeout_ms: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tls: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "v2ExplicitTLS")]
pub v2_explicit_tls: Option<AuthServiceV2ExplicitTls>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct AuthServiceCircuitBreakers {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_connections: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_pending_requests: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_requests: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_retries: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub priority: Option<AuthServiceCircuitBreakersPriority>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum AuthServiceCircuitBreakersPriority {
#[serde(rename = "default")]
Default,
#[serde(rename = "high")]
High,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct AuthServiceIncludeBody {
pub allow_partial: bool,
pub max_bytes: i64,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum AuthServiceProto {
#[serde(rename = "http")]
Http,
#[serde(rename = "grpc")]
Grpc,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum AuthServiceProtocolVersion {
#[serde(rename = "v2")]
V2,
#[serde(rename = "v3")]
V3,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct AuthServiceStatusOnError {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub code: Option<i64>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct AuthServiceV2ExplicitTls {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceScheme")]
pub service_scheme: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tls: Option<AuthServiceV2ExplicitTlsTls>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum AuthServiceV2ExplicitTlsTls {
#[serde(rename = "")]
KopiumEmpty,
#[serde(rename = "null")]
Null,
#[serde(rename = "bool:true")]
BoolTrue,
#[serde(rename = "bool:false")]
BoolFalse,
#[serde(rename = "string")]
String,
}