use serde::{Deserialize, Serialize};
use std::time::Duration;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum LoadBalancingStrategy {
RoundRobin,
WeightedRoundRobin,
LeastConnections,
LeastResponseTime,
IPHash,
GeographicProximity,
Custom(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct HealthCheckConfig {
pub interval: Duration,
pub timeout: Duration,
pub unhealthy_threshold: usize,
pub healthy_threshold: usize,
pub check_types: Vec<HealthCheckType>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum HealthCheckType {
HTTP,
HTTPS,
TCP,
UDP,
Custom(String),
}