cyberstorm/src/domains/mod.rs

55 lines
2.4 KiB
Rust

use common::DomainModelKind;
use crate::document::Document;
pub mod common;
pub mod mitigate;
pub mod observe;
pub mod react;
pub mod source;
pub mod threat;
pub enum GenericDocument {
SourceIntelligence(Document<source::Intelligence>),
SourceProvider(Document<source::Provider>),
SourceRequirement(Document<source::Requirement>),
ThreatTactic(Document<threat::Tactic>),
ThreatTechnique(Document<threat::Technique>),
ThreatSoftware(Document<threat::Software>),
ThreatSimulation(Document<threat::Simulation>),
ObserveEvent(Document<observe::Event>),
ObserveDetection(Document<observe::Detection>),
ObserveProvider(Document<observe::Provider>),
ObserveConfiguration(Document<observe::Configuration>),
ReactStage(Document<react::Stage>),
ReactAction(Document<react::Action>),
ReactPlaybook(Document<react::Playbook>),
MitigateStrategy(Document<mitigate::Strategy>),
MitigatePlatform(Document<mitigate::Platform>),
MitigateConfiguration(Document<mitigate::Configuration>),
}
impl GenericDocument {
pub fn kind(&self) -> DomainModelKind {
match self {
Self::SourceIntelligence(_) => DomainModelKind::SourceIntelligence,
Self::SourceProvider(_) => DomainModelKind::SourceProvider,
Self::SourceRequirement(_) => DomainModelKind::SourceRequirement,
Self::ThreatTactic(_) => DomainModelKind::ThreatTactic,
Self::ThreatTechnique(_) => DomainModelKind::ThreatTechnique,
Self::ThreatSoftware(_) => DomainModelKind::ThreatSoftware,
Self::ThreatSimulation(_) => DomainModelKind::ThreatSimulation,
Self::ObserveEvent(_) => DomainModelKind::ObserveEvent,
Self::ObserveDetection(_) => DomainModelKind::ObserveDetection,
Self::ObserveProvider(_) => DomainModelKind::ObserveProvider,
Self::ObserveConfiguration(_) => DomainModelKind::ObserveConfiguration,
Self::ReactStage(_) => DomainModelKind::ReactStage,
Self::ReactAction(_) => DomainModelKind::ReactAction,
Self::ReactPlaybook(_) => DomainModelKind::ReactPlaybook,
Self::MitigateStrategy(_) => DomainModelKind::MitigateStrategy,
Self::MitigatePlatform(_) => DomainModelKind::MitigatePlatform,
Self::MitigateConfiguration(_) => DomainModelKind::MitigateConfiguration,
}
}
}