pub struct DynamicRules {Show 24 fields
pub rule_id: String,
pub version: u64,
pub timestamp: Option<DateTime<Utc>>,
pub expires_at: Option<DateTime<Utc>>,
pub ttl: u64,
pub ip_blacklist: Vec<String>,
pub ip_whitelist: Vec<String>,
pub ip_ban_duration: u64,
pub blocked_countries: Vec<String>,
pub whitelist_countries: Vec<String>,
pub global_rate_limit: Option<u64>,
pub global_rate_window: Option<u64>,
pub endpoint_rate_limits: BTreeMap<String, (u64, u64)>,
pub blocked_cloud_providers: BTreeSet<String>,
pub blocked_user_agents: Vec<String>,
pub suspicious_patterns: Vec<String>,
pub enable_penetration_detection: Option<bool>,
pub enable_ip_banning: Option<bool>,
pub enable_rate_limiting: Option<bool>,
pub auto_ban_threshold: Option<u64>,
pub auto_ban_duration: Option<u64>,
pub enable_rate_limit_auto_ban: Option<bool>,
pub emergency_mode: bool,
pub emergency_whitelist: Vec<String>,
}Expand description
The reference DynamicRules wire model, field for field (the same
shape the guard-agent models carry).
Eq is unreachable while the model carries a DateTime (chrono
answers PartialEq only), hence the pinpointed allowance.
Fields§
§rule_id: StringUnique rule ID.
version: u64Rule version number.
timestamp: Option<DateTime<Utc>>Rule creation/update timestamp.
expires_at: Option<DateTime<Utc>>Rule expiration time.
ttl: u64Cache TTL in seconds (drives the client-side rules cache).
ip_blacklist: Vec<String>IPs to ban.
ip_whitelist: Vec<String>IPs to allow.
ip_ban_duration: u64Ban duration in seconds.
blocked_countries: Vec<String>Countries to block.
whitelist_countries: Vec<String>Countries to allow.
global_rate_limit: Option<u64>Global rate limit.
global_rate_window: Option<u64>Global rate window in seconds.
endpoint_rate_limits: BTreeMap<String, (u64, u64)>Per-endpoint rate limits {endpoint: (requests, window)}.
blocked_cloud_providers: BTreeSet<String>Cloud providers to block (the AWS:!region scoping survives).
blocked_user_agents: Vec<String>User agents to block.
suspicious_patterns: Vec<String>Additional suspicious patterns.
enable_penetration_detection: Option<bool>Override penetration detection setting.
enable_ip_banning: Option<bool>Override IP banning setting.
enable_rate_limiting: Option<bool>Override rate limiting setting.
auto_ban_threshold: Option<u64>Override auto-ban threshold setting.
auto_ban_duration: Option<u64>Override auto-ban duration setting.
enable_rate_limit_auto_ban: Option<bool>Override rate-limit auto-ban setting.
emergency_mode: boolEmergency lockdown mode.
emergency_whitelist: Vec<String>Emergency whitelist IPs.
Implementations§
Source§impl DynamicRules
impl DynamicRules
Source§impl DynamicRules
impl DynamicRules
Sourcepub const fn auto_ban_overrides_valid(&self) -> bool
pub const fn auto_ban_overrides_valid(&self) -> bool
The pydantic ge=1 constraints on the auto-ban overrides: the
reference rejects the whole delivery when either is zero.