use crate::engine::interfaces::{Layer, ProcessingStep};
use serde::{Deserialize, Serialize};
#[cfg(feature = "console")]
use utoipa::ToSchema;
use validator::{Validate, ValidationErrors};
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, ToSchema)]
pub struct ApplicationConfig {
pub pipeline: ProcessingStep,
#[serde(skip)]
#[schema(ignore)]
pub protocol: String,
}
impl Validate for ApplicationConfig {
fn validate(&self) -> Result<(), ValidationErrors> {
if self.protocol.is_empty() {
return Ok(());
}
use crate::layers::l4::validator;
validator::validate_flow_config(&self.pipeline, Layer::L7, &self.protocol)
}
}
pub const SUPPORTED_APP_PROTOCOLS: &[&str] = &["httpx"];