55 lines
2.4 KiB
Rust
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,
|
|
}
|
|
}
|
|
}
|