"""Canonical domain enums for Aegis. These enums represent core domain concepts and are the single source of truth. ``models/enums.py`` re-exports them so that existing ORM code continues to work without changes. """ # Import enum import enum # Define class TechniqueStatus class TechniqueStatus(str, enum.Enum): """Coverage and evaluation status for a MITRE ATT&CK technique.""" # Assign not_evaluated = "not_evaluated" not_evaluated = "not_evaluated" # Assign in_progress = "in_progress" in_progress = "in_progress" # Assign validated = "validated" validated = "validated" # Assign partial = "partial" partial = "partial" # Assign not_covered = "not_covered" not_covered = "not_covered" # Assign review_required = "review_required" review_required = "review_required" # Define class TestState class TestState(str, enum.Enum): """Lifecycle states in the security test state machine.""" # Assign draft = "draft" draft = "draft" # Assign red_executing = "red_executing" red_executing = "red_executing" # Assign blue_evaluating = "blue_evaluating" blue_evaluating = "blue_evaluating" # Assign in_review = "in_review" in_review = "in_review" # Assign validated = "validated" validated = "validated" # Assign rejected = "rejected" rejected = "rejected" disputed = "disputed" # one lead approved, the other rejected # Define class TeamSide class TeamSide(str, enum.Enum): """Identifies which team (red or blue) an action belongs to.""" # Assign red = "red" red = "red" # Assign blue = "blue" blue = "blue" # Define class TestResult class TestResult(str, enum.Enum): """Outcome of a red-team test from a detection perspective.""" # Assign detected = "detected" detected = "detected" # Assign not_detected = "not_detected" not_detected = "not_detected" # Assign partially_detected = "partially_detected" partially_detected = "partially_detected" # Define class DataClassification class DataClassification(str, enum.Enum): """Data sensitivity classification levels for compliance and retention policies.""" # Assign public = "public" public = "public" # Assign internal = "internal" internal = "internal" # Assign sensitive = "sensitive" sensitive = "sensitive" # Assign restricted = "restricted" restricted = "restricted"