# © Crown-owned copyright 2024, Defence Science and Technology Laboratory UK
from typing import List

from pydantic import BaseModel, ConfigDict


class NMNEConfig(BaseModel):
    """Store all the information to perform NMNE operations."""

    model_config = ConfigDict(extra="forbid")

    capture_nmne: bool = False
    """Indicates whether Malicious Network Events (MNEs) should be captured."""
    nmne_capture_keywords: List[str] = []
    """List of keywords to identify malicious network events."""
    capture_by_direction: bool = True
    """Captures should be organized by traffic direction (inbound/outbound)."""
    capture_by_ip_address: bool = False
    """Captures should be organized by source or destination IP address."""
    capture_by_protocol: bool = False
    """Captures should be organized by network protocol (e.g., TCP, UDP)."""
    capture_by_port: bool = False
    """Captures should be organized by source or destination port."""
    capture_by_keyword: bool = False
    """Captures should be filtered and categorised based on specific keywords."""
